summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--hash/fidel_msc.xml11
-rw-r--r--hash/fmtowns_cd.xml808
-rw-r--r--hash/msx1_cart.xml13
-rw-r--r--scripts/src/bus.lua4
-rw-r--r--scripts/src/cpu.lua17
-rw-r--r--scripts/target/mame/arcade.lua1
-rw-r--r--scripts/target/mame/mess.lua11
-rw-r--r--src/devices/bus/bbc/tube/tube_80186.cpp2
-rw-r--r--src/devices/bus/coleco/cartridge/exp.cpp15
-rw-r--r--src/devices/bus/coleco/cartridge/megacart.cpp95
-rw-r--r--src/devices/bus/coleco/cartridge/megacart.h49
-rw-r--r--src/devices/bus/coleco/cartridge/xin1.cpp1
-rw-r--r--src/devices/bus/hp_hil/hlebase.cpp6
-rw-r--r--src/devices/bus/hp_hil/hlebase.h1
-rw-r--r--src/devices/bus/hp_hil/hlekbd.cpp53
-rw-r--r--src/devices/bus/hp_hil/hlekbd.h13
-rw-r--r--src/devices/bus/interpro/sr/gt.cpp1
-rw-r--r--src/devices/bus/isa/3c503.cpp6
-rw-r--r--src/devices/bus/isa/eis_sad8852.cpp2
-rw-r--r--src/devices/bus/isa/ne1000.cpp12
-rw-r--r--src/devices/bus/isa/ne2000.cpp16
-rw-r--r--src/devices/bus/lpci/pci.cpp16
-rw-r--r--src/devices/bus/lpci/pci.h8
-rw-r--r--src/devices/bus/msx_cart/cartridge.cpp2
-rw-r--r--src/devices/bus/msx_cart/ink.cpp55
-rw-r--r--src/devices/bus/msx_cart/ink.h36
-rw-r--r--src/devices/bus/nubus/nubus_asntmc3b.cpp13
-rw-r--r--src/devices/bus/spectrum/beta128.cpp6
-rw-r--r--src/devices/bus/x68k/x68k_neptunex.cpp19
-rw-r--r--src/devices/cpu/mips/r4000.cpp2
-rw-r--r--src/devices/cpu/mn1880/mn1880.cpp114
-rw-r--r--src/devices/cpu/mn1880/mn1880.h57
-rw-r--r--src/devices/cpu/mn1880/mn1880d.cpp568
-rw-r--r--src/devices/cpu/mn1880/mn1880d.h55
-rw-r--r--src/devices/cpu/powerpc/ppc.h12
-rw-r--r--src/devices/cpu/powerpc/ppccom.cpp16
-rw-r--r--src/devices/machine/dp8390.cpp73
-rw-r--r--src/devices/machine/dp8390.h8
-rw-r--r--src/devices/machine/generalplus_gpl16250soc.cpp4
-rw-r--r--src/devices/machine/generalplus_gpl16250soc_video.cpp779
-rw-r--r--src/devices/machine/generalplus_gpl16250soc_video.h38
-rw-r--r--src/devices/machine/intelfsh.cpp8
-rw-r--r--src/devices/machine/spg2xx_video.cpp11
-rw-r--r--src/devices/machine/spg_renderer.cpp541
-rw-r--r--src/devices/machine/spg_renderer.h35
-rw-r--r--src/mame/audio/asteroid.cpp6
-rw-r--r--src/mame/audio/astrof.cpp8
-rw-r--r--src/mame/audio/avalnche.cpp2
-rw-r--r--src/mame/audio/aztarac.cpp10
-rw-r--r--src/mame/audio/bsktball.cpp4
-rw-r--r--src/mame/audio/llander.cpp4
-rw-r--r--src/mame/drivers/abc1600.cpp34
-rw-r--r--src/mame/drivers/actfancr.cpp2
-rw-r--r--src/mame/drivers/adam.cpp24
-rw-r--r--src/mame/drivers/aeroboto.cpp8
-rw-r--r--src/mame/drivers/aerofgt.cpp24
-rw-r--r--src/mame/drivers/airbustr.cpp20
-rw-r--r--src/mame/drivers/ajax.cpp4
-rw-r--r--src/mame/drivers/aliens.cpp8
-rw-r--r--src/mame/drivers/altos486.cpp2
-rw-r--r--src/mame/drivers/ampoker2.cpp16
-rw-r--r--src/mame/drivers/amspdwy.cpp6
-rw-r--r--src/mame/drivers/angelkds.cpp8
-rw-r--r--src/mame/drivers/apollo.cpp72
-rw-r--r--src/mame/drivers/appoooh.cpp2
-rw-r--r--src/mame/drivers/aquarius.cpp18
-rw-r--r--src/mame/drivers/arkanoid.cpp20
-rw-r--r--src/mame/drivers/artmagic.cpp8
-rw-r--r--src/mame/drivers/asterix.cpp12
-rw-r--r--src/mame/drivers/asteroid.cpp6
-rw-r--r--src/mame/drivers/astrocde.cpp28
-rw-r--r--src/mame/drivers/astrof.cpp38
-rw-r--r--src/mame/drivers/atarig1.cpp10
-rw-r--r--src/mame/drivers/atarig42.cpp20
-rw-r--r--src/mame/drivers/atarigt.cpp24
-rw-r--r--src/mame/drivers/atarigx2.cpp27
-rw-r--r--src/mame/drivers/atarist.cpp58
-rw-r--r--src/mame/drivers/atetris.cpp6
-rw-r--r--src/mame/drivers/aussiebyte.cpp22
-rw-r--r--src/mame/drivers/avalnche.cpp2
-rw-r--r--src/mame/drivers/avigo.cpp28
-rw-r--r--src/mame/drivers/aztarac.cpp2
-rw-r--r--src/mame/drivers/badlands.cpp2
-rw-r--r--src/mame/drivers/badlandsbl.cpp10
-rw-r--r--src/mame/drivers/bagman.cpp4
-rw-r--r--src/mame/drivers/basssta.cpp84
-rw-r--r--src/mame/drivers/batman.cpp2
-rw-r--r--src/mame/drivers/battlane.cpp2
-rw-r--r--src/mame/drivers/battlnts.cpp4
-rw-r--r--src/mame/drivers/bbusters.cpp14
-rw-r--r--src/mame/drivers/beathead.cpp8
-rw-r--r--src/mame/drivers/bebox.cpp8
-rw-r--r--src/mame/drivers/beehive.cpp120
-rw-r--r--src/mame/drivers/bfm_sc4.cpp28
-rw-r--r--src/mame/drivers/bfm_sc5.cpp16
-rw-r--r--src/mame/drivers/bigevglf.cpp22
-rw-r--r--src/mame/drivers/bishi.cpp10
-rw-r--r--src/mame/drivers/bking.cpp18
-rw-r--r--src/mame/drivers/bladestl.cpp8
-rw-r--r--src/mame/drivers/blktiger.cpp8
-rw-r--r--src/mame/drivers/blmbycar.cpp14
-rw-r--r--src/mame/drivers/blockout.cpp4
-rw-r--r--src/mame/drivers/bloodbro.cpp2
-rw-r--r--src/mame/drivers/blueprnt.cpp8
-rw-r--r--src/mame/drivers/bogeyman.cpp4
-rw-r--r--src/mame/drivers/bombjack.cpp4
-rw-r--r--src/mame/drivers/boogwing.cpp6
-rw-r--r--src/mame/drivers/bottom9.cpp30
-rw-r--r--src/mame/drivers/brkthru.cpp4
-rw-r--r--src/mame/drivers/btime.cpp8
-rw-r--r--src/mame/drivers/btoads.cpp18
-rw-r--r--src/mame/drivers/buggychl.cpp12
-rw-r--r--src/mame/drivers/bullet.cpp38
-rw-r--r--src/mame/drivers/busicom.cpp12
-rw-r--r--src/mame/drivers/bwidow.cpp14
-rw-r--r--src/mame/drivers/bwing.cpp10
-rw-r--r--src/mame/drivers/ccs300.cpp2
-rw-r--r--src/mame/drivers/ckz80.cpp (renamed from src/mame/drivers/czk80.cpp)66
-rw-r--r--src/mame/drivers/cobra.cpp24
-rw-r--r--src/mame/drivers/coleco.cpp3
-rw-r--r--src/mame/drivers/consola_emt.cpp28
-rw-r--r--src/mame/drivers/dccons.cpp1
-rw-r--r--src/mame/drivers/dcheese.cpp12
-rw-r--r--src/mame/drivers/dotrikun.cpp9
-rw-r--r--src/mame/drivers/drumsta.cpp67
-rw-r--r--src/mame/drivers/fidel_msc.cpp2
-rw-r--r--src/mame/drivers/firebeat.cpp6
-rw-r--r--src/mame/drivers/generalplus_gpl16250_nand.cpp2
-rw-r--r--src/mame/drivers/gticlub.cpp45
-rw-r--r--src/mame/drivers/hornet.cpp39
-rw-r--r--src/mame/drivers/hp_ipc.cpp5
-rw-r--r--src/mame/drivers/leapster.cpp2
-rw-r--r--src/mame/drivers/macpci.cpp9
-rw-r--r--src/mame/drivers/mephisto_modular.cpp57
-rw-r--r--src/mame/drivers/mephisto_mondial68k.cpp6
-rw-r--r--src/mame/drivers/neogeo.cpp102
-rw-r--r--src/mame/drivers/nes_clone.cpp24
-rw-r--r--src/mame/drivers/nes_sh6578.cpp130
-rw-r--r--src/mame/drivers/nes_vt.cpp22
-rw-r--r--src/mame/drivers/ngen.cpp2
-rw-r--r--src/mame/drivers/novag_sexpert.cpp12
-rw-r--r--src/mame/drivers/nwk-tr.cpp113
-rw-r--r--src/mame/drivers/pencil2.cpp9
-rw-r--r--src/mame/drivers/pipbug.cpp26
-rw-r--r--src/mame/drivers/plan80.cpp145
-rw-r--r--src/mame/drivers/pro80.cpp46
-rw-r--r--src/mame/drivers/pyl601.cpp47
-rw-r--r--src/mame/drivers/rainbow.cpp8
-rw-r--r--src/mame/drivers/ravens.cpp172
-rw-r--r--src/mame/drivers/rx78.cpp98
-rw-r--r--src/mame/drivers/sacstate.cpp35
-rw-r--r--src/mame/drivers/slc1.cpp22
-rw-r--r--src/mame/drivers/slicer.cpp2
-rw-r--r--src/mame/drivers/snes.cpp242
-rw-r--r--src/mame/drivers/spec128.cpp26
-rw-r--r--src/mame/drivers/taito.cpp8
-rw-r--r--src/mame/drivers/taitogn.cpp46
-rw-r--r--src/mame/drivers/taitopjc.cpp64
-rw-r--r--src/mame/drivers/taitotz.cpp58
-rw-r--r--src/mame/drivers/taitowlf.cpp85
-rw-r--r--src/mame/drivers/talkingbb.cpp12
-rw-r--r--src/mame/drivers/talkingfb.cpp12
-rw-r--r--src/mame/drivers/tamag1.cpp21
-rw-r--r--src/mame/drivers/tandy1t.cpp56
-rw-r--r--src/mame/drivers/tapatune.cpp66
-rw-r--r--src/mame/drivers/tasc.cpp12
-rw-r--r--src/mame/drivers/tasman.cpp20
-rw-r--r--src/mame/drivers/tattack.cpp16
-rw-r--r--src/mame/drivers/tec1.cpp66
-rw-r--r--src/mame/drivers/techno.cpp50
-rw-r--r--src/mame/drivers/tecnbras.cpp12
-rw-r--r--src/mame/drivers/tempest.cpp28
-rw-r--r--src/mame/drivers/terak.cpp16
-rw-r--r--src/mame/drivers/tgtpanic.cpp4
-rw-r--r--src/mame/drivers/thayers.cpp64
-rw-r--r--src/mame/drivers/thedealr.cpp20
-rw-r--r--src/mame/drivers/ti990_4.cpp8
-rw-r--r--src/mame/drivers/ti99_2.cpp4
-rw-r--r--src/mame/drivers/tickee.cpp40
-rw-r--r--src/mame/drivers/tim011.cpp20
-rw-r--r--src/mame/drivers/tk80.cpp8
-rw-r--r--src/mame/drivers/tm990189.cpp16
-rw-r--r--src/mame/drivers/tmaster.cpp8
-rw-r--r--src/mame/drivers/tmmjprd.cpp28
-rw-r--r--src/mame/drivers/tmspoker.cpp8
-rw-r--r--src/mame/drivers/toki_ms.cpp40
-rw-r--r--src/mame/drivers/tomcat.cpp36
-rw-r--r--src/mame/drivers/toratora.cpp12
-rw-r--r--src/mame/drivers/tosh1000.cpp13
-rw-r--r--src/mame/drivers/toypop.cpp48
-rw-r--r--src/mame/drivers/tr175.cpp12
-rw-r--r--src/mame/drivers/triforce.cpp16
-rw-r--r--src/mame/drivers/trivrus.cpp32
-rw-r--r--src/mame/drivers/trkfldch.cpp62
-rw-r--r--src/mame/drivers/ts802.cpp24
-rw-r--r--src/mame/drivers/ts803.cpp28
-rw-r--r--src/mame/drivers/ts816.cpp24
-rw-r--r--src/mame/drivers/ttchamp.cpp44
-rw-r--r--src/mame/drivers/tugboat.cpp14
-rw-r--r--src/mame/drivers/tutor.cpp36
-rw-r--r--src/mame/drivers/tv912.cpp20
-rw-r--r--src/mame/drivers/tv950.cpp4
-rw-r--r--src/mame/drivers/tv965.cpp4
-rw-r--r--src/mame/drivers/tv990.cpp16
-rw-r--r--src/mame/drivers/twinkle.cpp55
-rw-r--r--src/mame/drivers/twins.cpp60
-rw-r--r--src/mame/drivers/uapce.cpp12
-rw-r--r--src/mame/drivers/ultim809.cpp173
-rw-r--r--src/mame/drivers/umipoker.cpp60
-rw-r--r--src/mame/drivers/unixpc.cpp48
-rw-r--r--src/mame/drivers/unkhorse.cpp4
-rw-r--r--src/mame/drivers/uzebox.cpp32
-rw-r--r--src/mame/drivers/v100.cpp20
-rw-r--r--src/mame/drivers/vamphalf.cpp180
-rw-r--r--src/mame/drivers/vax11.cpp16
-rw-r--r--src/mame/drivers/vboy.cpp88
-rw-r--r--src/mame/drivers/vcombat.cpp48
-rw-r--r--src/mame/drivers/vcs80.cpp4
-rw-r--r--src/mame/drivers/vd.cpp20
-rw-r--r--src/mame/drivers/vegaeo.cpp16
-rw-r--r--src/mame/drivers/vegas.cpp70
-rw-r--r--src/mame/drivers/vg5k.cpp28
-rw-r--r--src/mame/drivers/vgmplay.cpp150
-rw-r--r--src/mame/drivers/vic20.cpp12
-rw-r--r--src/mame/drivers/video21.cpp12
-rw-r--r--src/mame/drivers/videopkr.cpp16
-rw-r--r--src/mame/drivers/viper.cpp136
-rw-r--r--src/mame/drivers/vis.cpp8
-rw-r--r--src/mame/drivers/vk100.cpp48
-rw-r--r--src/mame/drivers/vlc.cpp24
-rw-r--r--src/mame/drivers/voyager.cpp4
-rw-r--r--src/mame/drivers/vp101.cpp34
-rw-r--r--src/mame/drivers/vpoker.cpp8
-rw-r--r--src/mame/drivers/vroulet.cpp12
-rw-r--r--src/mame/drivers/vt1682.cpp674
-rw-r--r--src/mame/drivers/vt240.cpp100
-rw-r--r--src/mame/drivers/vt520.cpp4
-rw-r--r--src/mame/drivers/vta2000.cpp4
-rw-r--r--src/mame/drivers/vtech1.cpp16
-rw-r--r--src/mame/drivers/wacky_gator.cpp8
-rw-r--r--src/mame/drivers/wallc.cpp20
-rw-r--r--src/mame/drivers/wangpc.cpp176
-rw-r--r--src/mame/drivers/wardner.cpp4
-rw-r--r--src/mame/drivers/warpsped.cpp8
-rw-r--r--src/mame/drivers/wheelfir.cpp22
-rw-r--r--src/mame/drivers/whitestar.cpp16
-rw-r--r--src/mame/drivers/wicat.cpp60
-rw-r--r--src/mame/drivers/wico.cpp60
-rw-r--r--src/mame/drivers/wildpkr.cpp44
-rw-r--r--src/mame/drivers/wink.cpp27
-rw-r--r--src/mame/drivers/wms.cpp4
-rw-r--r--src/mame/drivers/wpc_95.cpp40
-rw-r--r--src/mame/drivers/wpc_an.cpp8
-rw-r--r--src/mame/drivers/wpc_dcs.cpp48
-rw-r--r--src/mame/drivers/wpc_s.cpp40
-rw-r--r--src/mame/drivers/wxstar4000.cpp2
-rw-r--r--src/mame/drivers/wyvernf0.cpp32
-rw-r--r--src/mame/drivers/xtheball.cpp8
-rw-r--r--src/mame/drivers/xyonix.cpp20
-rw-r--r--src/mame/drivers/zr107.cpp27
-rw-r--r--src/mame/includes/abc1600.h22
-rw-r--r--src/mame/includes/actfancr.h2
-rw-r--r--src/mame/includes/adam.h18
-rw-r--r--src/mame/includes/aeroboto.h16
-rw-r--r--src/mame/includes/aerofgt.h48
-rw-r--r--src/mame/includes/airbustr.h20
-rw-r--r--src/mame/includes/ajax.h14
-rw-r--r--src/mame/includes/aliens.h8
-rw-r--r--src/mame/includes/amiga.h12
-rw-r--r--src/mame/includes/ampoker2.h18
-rw-r--r--src/mame/includes/amspdwy.h12
-rw-r--r--src/mame/includes/angelkds.h26
-rw-r--r--src/mame/includes/apollo.h110
-rw-r--r--src/mame/includes/appoooh.h14
-rw-r--r--src/mame/includes/aquarius.h22
-rw-r--r--src/mame/includes/arabian.h4
-rw-r--r--src/mame/includes/archimds.h18
-rw-r--r--src/mame/includes/arkanoid.h26
-rw-r--r--src/mame/includes/artmagic.h10
-rw-r--r--src/mame/includes/asterix.h10
-rw-r--r--src/mame/includes/asteroid.h22
-rw-r--r--src/mame/includes/astrocde.h46
-rw-r--r--src/mame/includes/astrof.h30
-rw-r--r--src/mame/includes/atarifb.h28
-rw-r--r--src/mame/includes/atarig1.h8
-rw-r--r--src/mame/includes/atarig42.h16
-rw-r--r--src/mame/includes/atarigt.h22
-rw-r--r--src/mame/includes/atarigx2.h18
-rw-r--r--src/mame/includes/atarist.h152
-rw-r--r--src/mame/includes/atarisy1.h10
-rw-r--r--src/mame/includes/atarisy2.h10
-rw-r--r--src/mame/includes/atetris.h8
-rw-r--r--src/mame/includes/aussiebyte.h36
-rw-r--r--src/mame/includes/avalnche.h4
-rw-r--r--src/mame/includes/avigo.h38
-rw-r--r--src/mame/includes/aztarac.h12
-rw-r--r--src/mame/includes/b2m.h10
-rw-r--r--src/mame/includes/badlands.h14
-rw-r--r--src/mame/includes/bagman.h10
-rw-r--r--src/mame/includes/balsente.h46
-rw-r--r--src/mame/includes/bankp.h12
-rw-r--r--src/mame/includes/baraduke.h18
-rw-r--r--src/mame/includes/batman.h2
-rw-r--r--src/mame/includes/battlane.h16
-rw-r--r--src/mame/includes/battlex.h12
-rw-r--r--src/mame/includes/battlnts.h6
-rw-r--r--src/mame/includes/bbusters.h16
-rw-r--r--src/mame/includes/beathead.h30
-rw-r--r--src/mame/includes/bebox.h42
-rw-r--r--src/mame/includes/bfm_sc4.h18
-rw-r--r--src/mame/includes/bfm_sc5.h12
-rw-r--r--src/mame/includes/bigevglf.h32
-rw-r--r--src/mame/includes/bigstrkb.h6
-rw-r--r--src/mame/includes/bishi.h10
-rw-r--r--src/mame/includes/bk.h22
-rw-r--r--src/mame/includes/bking.h48
-rw-r--r--src/mame/includes/bladestl.h8
-rw-r--r--src/mame/includes/blktiger.h26
-rw-r--r--src/mame/includes/blmbycar.h14
-rw-r--r--src/mame/includes/blockout.h4
-rw-r--r--src/mame/includes/bloodbro.h8
-rw-r--r--src/mame/includes/blueprnt.h14
-rw-r--r--src/mame/includes/bogeyman.h12
-rw-r--r--src/mame/includes/bombjack.h12
-rw-r--r--src/mame/includes/boogwing.h6
-rw-r--r--src/mame/includes/bosco.h8
-rw-r--r--src/mame/includes/bottom9.h22
-rw-r--r--src/mame/includes/brkthru.h10
-rw-r--r--src/mame/includes/bsktball.h8
-rw-r--r--src/mame/includes/btime.h38
-rw-r--r--src/mame/includes/btoads.h46
-rw-r--r--src/mame/includes/bublbobl.h48
-rw-r--r--src/mame/includes/buggychl.h22
-rw-r--r--src/mame/includes/bullet.h38
-rw-r--r--src/mame/includes/busicom.h12
-rw-r--r--src/mame/includes/bwidow.h14
-rw-r--r--src/mame/includes/bwing.h22
-rw-r--r--src/mame/includes/macpci.h1
-rw-r--r--src/mame/includes/namcos22.h22
-rw-r--r--src/mame/includes/neogeo.h4
-rw-r--r--src/mame/includes/snes.h16
-rw-r--r--src/mame/layout/dotrikun.lay11
-rw-r--r--src/mame/machine/abc1600mac.cpp38
-rw-r--r--src/mame/machine/abc1600mac.h22
-rw-r--r--src/mame/machine/ajax.cpp14
-rw-r--r--src/mame/machine/amiga.cpp14
-rw-r--r--src/mame/machine/apollo.cpp41
-rw-r--r--src/mame/machine/archimds.cpp22
-rw-r--r--src/mame/machine/arkanoid.cpp10
-rw-r--r--src/mame/machine/asteroid.cpp8
-rw-r--r--src/mame/machine/atarifb.cpp22
-rw-r--r--src/mame/machine/atarixga.cpp12
-rw-r--r--src/mame/machine/atarixga.h16
-rw-r--r--src/mame/machine/awboard.cpp16
-rw-r--r--src/mame/machine/awboard.h16
-rw-r--r--src/mame/machine/b2m.cpp18
-rw-r--r--src/mame/machine/bagman.cpp25
-rw-r--r--src/mame/machine/balsente.cpp40
-rw-r--r--src/mame/machine/bebox.cpp70
-rw-r--r--src/mame/machine/bk.cpp22
-rw-r--r--src/mame/machine/bsktball.cpp2
-rw-r--r--src/mame/machine/btime.cpp4
-rw-r--r--src/mame/machine/bublbobl.cpp48
-rw-r--r--src/mame/machine/interpro_ioga.cpp3
-rw-r--r--src/mame/machine/konppc.cpp43
-rw-r--r--src/mame/machine/konppc.h2
-rw-r--r--src/mame/machine/nes_vt_soc.cpp100
-rw-r--r--src/mame/machine/nes_vt_soc.h90
-rw-r--r--src/mame/machine/snes.cpp24
-rw-r--r--src/mame/machine/vt1682_timer.cpp14
-rw-r--r--src/mame/machine/vt1682_timer.h14
-rw-r--r--src/mame/machine/vt1682_uio.cpp24
-rw-r--r--src/mame/machine/vt1682_uio.h26
-rw-r--r--src/mame/mame.lst15
-rw-r--r--src/mame/mess.flt5
-rw-r--r--src/mame/video/aeroboto.cpp8
-rw-r--r--src/mame/video/aerofgt.cpp24
-rw-r--r--src/mame/video/airbustr.cpp2
-rw-r--r--src/mame/video/ampoker2.cpp2
-rw-r--r--src/mame/video/amspdwy.cpp6
-rw-r--r--src/mame/video/angelkds.cpp18
-rw-r--r--src/mame/video/apollo.cpp36
-rw-r--r--src/mame/video/appoooh.cpp12
-rw-r--r--src/mame/video/aquarius.cpp10
-rw-r--r--src/mame/video/arabian.cpp4
-rw-r--r--src/mame/video/arkanoid.cpp12
-rw-r--r--src/mame/video/artmagic.cpp4
-rw-r--r--src/mame/video/asterix.cpp2
-rw-r--r--src/mame/video/astrocde.cpp20
-rw-r--r--src/mame/video/atarifb.cpp6
-rw-r--r--src/mame/video/atarigx2.cpp2
-rw-r--r--src/mame/video/atarist.cpp84
-rw-r--r--src/mame/video/atarisy1.cpp10
-rw-r--r--src/mame/video/atarisy2.cpp10
-rw-r--r--src/mame/video/atetris.cpp11
-rw-r--r--src/mame/video/aussiebyte.cpp14
-rw-r--r--src/mame/video/avigo.cpp4
-rw-r--r--src/mame/video/badlands.cpp2
-rw-r--r--src/mame/video/bagman.cpp6
-rw-r--r--src/mame/video/balsente.cpp10
-rw-r--r--src/mame/video/bankp.cpp12
-rw-r--r--src/mame/video/baraduke.cpp22
-rw-r--r--src/mame/video/battlane.cpp14
-rw-r--r--src/mame/video/battlex.cpp12
-rw-r--r--src/mame/video/battlnts.cpp2
-rw-r--r--src/mame/video/bbusters.cpp2
-rw-r--r--src/mame/video/beathead.cpp14
-rw-r--r--src/mame/video/bigevglf.cpp16
-rw-r--r--src/mame/video/bigstrkb.cpp6
-rw-r--r--src/mame/video/bking.cpp30
-rw-r--r--src/mame/video/blktiger.cpp26
-rw-r--r--src/mame/video/bloodbro.cpp6
-rw-r--r--src/mame/video/blueprnt.cpp6
-rw-r--r--src/mame/video/bogeyman.cpp8
-rw-r--r--src/mame/video/bombjack.cpp10
-rw-r--r--src/mame/video/bosco.cpp8
-rw-r--r--src/mame/video/brkthru.cpp6
-rw-r--r--src/mame/video/bsktball.cpp2
-rw-r--r--src/mame/video/btime.cpp32
-rw-r--r--src/mame/video/btoads.cpp28
-rw-r--r--src/mame/video/buggychl.cpp10
-rw-r--r--src/mame/video/bwing.cpp12
-rw-r--r--src/tools/unidasm.cpp3
423 files changed, 7663 insertions, 6162 deletions
diff --git a/hash/fidel_msc.xml b/hash/fidel_msc.xml
index e48585f301e..18058356c1e 100644
--- a/hash/fidel_msc.xml
+++ b/hash/fidel_msc.xml
@@ -24,4 +24,15 @@ The 1st half is for Z8, 2nd half is for MCS48. A12 is forced high or low.
</part>
</software>
+ <software name="cbo">
+ <description>Challenger Book Openings</description>
+ <year>1982</year>
+ <publisher>Fidelity Electronics</publisher>
+ <part name="cart" interface="fidel_msc">
+ <dataarea name="rom" size="0x2000">
+ <rom name="mk36a43n-4_101-1043a01" size="0x2000" crc="430d0969" sha1="34a436fdf26c5feb503228ffcf6ce5ac2632168e" /> <!-- MK36000 -->
+ </dataarea>
+ </part>
+ </software>
+
</softwarelist>
diff --git a/hash/fmtowns_cd.xml b/hash/fmtowns_cd.xml
index dc00f200166..89dad02e536 100644
--- a/hash/fmtowns_cd.xml
+++ b/hash/fmtowns_cd.xml
@@ -128,7 +128,6 @@ Dick Amorphous
Digital Pinup Girls Vol. 2 Transpegasus Limited 1993/6 CD
* Doki Doki Vacation Cocktail Soft 1995/3 SET(CD+FD)
Do-Re-Mi Canvas Tokyo Shoseki 1994/12 CD
-Dracula Hakushaku Fairytale 1993/3 CD
Dragon Souseiki Basho House 1993/12 CD
Drive Simulator Home Navi Fujitsu Ten 1994/8 SET(CD+FD)
Dynamic Business English 1 DynEd Japan 1994/11 SET(CD+FD)
@@ -228,7 +227,6 @@ Gram Cats 2 Dot Kikaku
Grand Prix Densetsu Soft Studio Wing 1993/9 CD
Green Box Chihi Shokubutsu Database On 1993/4 ?
Green Box Flower Database On 1991/10 ?
-Grimm Douwa 2: Bremen no Ongakutai Gyousei 1989/11 CD
Grimm Douwa 3: Ookami to Nana-hiki Komagi Gyousei 1990/11 CD
Grimm Douwa 4: Ibarahime (Nemurihime) Gyousei 1990/11 CD
Gyoukai Arijigoku TAC 1994/6 CD
@@ -290,7 +288,6 @@ Hyper Media NHK Zoku Kiso Eigo: Dai-2-kan CSK Research Insti
* Hyper Media NHK Zoku Kiso Eigo: Dai-3-kan CSK Research Institute (CRI) 1991/9 SET(CD+FD)
Hyper Note Datt Japan 1991/12 SET(CD+FD)
Hyper Photo DB Fujitsu 1993/9 CD
-Hyper Planet Datt Japan 1990/9 SET(CD+FD)
Hyper Planet for Marty Datt Japan 1993/6 SET(CD+FD)
Hyper Planet Shiki Vol. 1 Datt Japan 1992/7 CD
Hyper Planet Shiki Vol. 2: Utsukushii Fuyu no Seiza Hen Datt Japan 1993/12 CD
@@ -358,15 +355,15 @@ Kousoku Choujin Foster
Kusuriyubi no Kyoukasho Active 1996/4 CD
Kyouiku & FM Towns Vol. 1 Fujitsu ? CD
Kyouiku & FM Towns Vol. 2 Fujitsu ? CD
+Kyouiku & FM Towns Vol. 4 Fujitsu ? CD
Kyouko no Ijiwaru!! Hachamecha Daishingeki Ponytail Soft 1994/10 CD
-Lemon Cocktail Collection Cocktail Soft 1993/3 CD
L'Empereur Koei 1991/1 SET(CD+FD)
Let's go 1-1 DynEd Japan 1995/7 SET(CD+FD)
Let's go 1-2 DynEd Japan 1995/7 SET(CD+FD)
Let's go 2-1 DynEd Japan 1995/7 SET(CD+FD)
Let's go 2-2 DynEd Japan 1995/7 SET(CD+FD)
Lettuce Cooking 2: Tanoshiku Tsukureru Obentou SS Communications 1990/8 SET(CD+FD)
-Lipstick Adventure 3 Fairytale 1993/5 CD
+* Lipstick Adventure 3 Fairytale 1993/5 CD
Little Big Adventure Electronic Arts Victor 1995/12 CD
LiveAnimation V1.1 Fujitsu 1992/12 CD
LiveAnimation V2.1 Fujitsu 1994/5 CD
@@ -389,6 +386,7 @@ Maruanki Eitango: Chuugaku 1-nensei CSK Research Insti
Maruanki Eitango: Chuugaku 2-nensei CSK Research Institute (CRI) 1989/12 SET(CD+FD)
Maruanki Eitango: Chuugaku 3-nensei CSK Research Institute (CRI) 1990/2 SET(CD+FD)
Masuo per Masuo: Ikeda Masuo Hanga-shuu Kazadama Vol. 2 Fujitsu 1994/7 CD
+Megamorph Demo Fujitsu ? CD
Meisou Toshi Tiara 1995/12 CD
Microsoft Windows 95 (Upgrade Package) Fujitsu 1996/6 CD
Mietarou V2.0 Uchida Youkou 1992/12 SET(CD+FD)
@@ -466,7 +464,6 @@ Nihon no Chou (Marty-compatible) Fujitsu Social Sci
Nihon no Kaisuigyo Inter Limited Logic 1995/10 CD
Nihon no Kusabana Fujitsu Social Science Laboratory 1997/10 CD
Nihon no Rekishi 4-hen Set Uchida Youkou 1993/8 CD×04
-Nihon no Rekishi: Ishin-hen CSK Research Institute (CRI) 1990/8 CD
Nihon no Rekishi: Sengoku-hen CSK Research Institute (CRI) 1990/6 CD
Nihon no Tansuigyo Inter Limited Logic 1995/12 CD
Nihon no Tenki Uchida Youkou 1992/9 CD
@@ -496,7 +493,6 @@ Otto Anime-kun Nihon Micom Hanbai
Palamedes Ving 1991/10 CD
Pasocon de Tanoshimu Yama to Chizu Inter Limited Logic 1995/10 CD
Petit Collage Pandora Box 1994/3 CD
-Phobos Himeya Soft 1995/8 CD
Pi's Solitaire Royale Fujitsu 1989/7 CD
Planet Harmony Datt Japan 1993/9 SET(CD+FD)
Pocky 1-2 & Ponyon Ponytail Soft 1994/6 CD
@@ -645,12 +641,14 @@ Touch the Music by Casiopea Fujitsu
Tougenkyou (Shichuusuimeigaku Nyuumon) Nanken Koubou 1991/2 CD
Toukyou Genshikai - Tokyo Sexy Ave. HOP 1994/7 SET(CD+FD)
Towns Amone Kozu System 1990/4 SET(CD+FD)
-Towns Chiri Jigsaw World Fujitsu Ooita Software Laboratory 1991/3 CD
Towns Chiri Shizen no Naritachi Fujitsu Ooita Software Laboratory 1991/9 CD
Towns Cruising Chart Raison 1991/4 SET(CD+FD)
Towns E to Oto de Manabu Suugaku Rand Computer 1993/3 CD
Towns Family Genki Yohou Kozu System 1990/12 CD
Towns Magazine Vol. 3 Fujitsu 1995/4 CD×02
+Towns Magazine for School Vol. 1 Fujitsu ? CD
+Towns Magazine for School Vol. 2 Fujitsu ? CD
+Towns Magazine for School Vol. 3 Fujitsu ? CD
Towns Magazine for School Vol. 4 Fujitsu ? CD
Towns Meikyoku Master Fujitsu Ooita Software Laboratory 1991/9 CD
Towns Meikyoku Master (Marty-compatible) Fujitsu Ooita Software Laboratory 1993/3 CD
@@ -2535,28 +2533,45 @@ User/save disks that can be created from the game itself are not included.
<software name="bfmaria">
<!--
- Origin: Neo Kobe Collection
- <rom name="Ballade for Maria.ccd" size="4201" crc="69ad79f8" sha1="0883c0808b086ceb52b6815bd355fd7306322b43"/>
- <rom name="Ballade for Maria.cue" size="793" crc="3758d2c4" sha1="055e261c3291f4eeb642033572e710db86a40493"/>
- <rom name="Ballade for Maria.img" size="675788400" crc="b143b770" sha1="c7b09416b175dcd71a8b85a01722c06546b7dc00"/>
- <rom name="Ballade for Maria.sub" size="27583200" crc="585890ad" sha1="b39e379ece89bef03ed577ec1093bdf8c3d3782f"/>
+ Origin: redump.org
+ <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 01).bin" size="52567200" crc="a0453251" sha1="f8057115c857d2820933923930f5ec5bac629217"/>
+ <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 02).bin" size="32281200" crc="f009519a" sha1="60326053000bd97a3f282d6ee76c67cd33892bee"/>
+ <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 03).bin" size="40219200" crc="2ac49aa7" sha1="2f8190ab686b70bce2dc617e4237a4d196d43fdf"/>
+ <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 04).bin" size="35456400" crc="be7f38ec" sha1="33815592642c529d45d43e91604d055f713c66c7"/>
+ <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 05).bin" size="39513600" crc="8bf229a2" sha1="ac14747d52774ae4b694acb0b3780f42611a1652"/>
+ <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 06).bin" size="39513600" crc="ca5d1686" sha1="4bf32b892a8e797fcab0dbf2cf38666696a4296d"/>
+ <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 07).bin" size="38808000" crc="1572806b" sha1="2e8dbf7bd01103e1fc70139a22ae5393672bc6c5"/>
+ <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 08).bin" size="34045200" crc="0e589363" sha1="18deb2fc2df4764d80bdd47e21f374291eeb0960"/>
+ <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 09).bin" size="37396800" crc="d19511b9" sha1="dda8f39f51e2b91f43832a72d5ddfe8e5f4b5f46"/>
+ <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 10).bin" size="45687600" crc="c63395e7" sha1="ee36833da0872755acdd5f32cca5c9ff687f1f59"/>
+ <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 11).bin" size="34045200" crc="35388255" sha1="c76553a6170d379bac7758f118547f511cc73190"/>
+ <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 12).bin" size="42865200" crc="06d8519d" sha1="4091506be83a4500a6b24d8d248c67530021b1e2"/>
+ <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 13).bin" size="40572000" crc="e23fc4d2" sha1="205ccf0c17f88663463b79fd707d1865dcb606c3"/>
+ <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 14).bin" size="40924800" crc="e5e984e8" sha1="43beb44e70d15d3845277c82bdbadf682dc1b46d"/>
+ <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 15).bin" size="42865200" crc="2e73d466" sha1="8bb6a428e689dfeb4ba83f69e78a39f204eb44dd"/>
+ <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 16).bin" size="40395600" crc="6d281276" sha1="b91ad24acb3bc38740520a5fc5e01da173e6b2ff"/>
+ <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 17).bin" size="20286000" crc="4ce7c4d1" sha1="a63d41984208d311c2ada4848efba9e75cdeb7bf"/>
+ <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 18).bin" size="17110800" crc="1b0ce5c1" sha1="1c146d54e8701a773fb2f814d45ad431add9d0c8"/>
+ <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan) (Track 19).bin" size="1234800" crc="93480c7c" sha1="501ee7f044118543907ae2da4b1aca40b499359b"/>
+ <rom name="Ballade for Maria - Maria ni Sasageru Ballade (Japan).cue" size="2817" crc="e380c2b0" sha1="fdb112aebeee6632838efa531fbf02434ee93506"/>
-->
<description>Ballade for Maria</description>
<year>1995</year>
<publisher>フェアリーテール (Fairytale)</publisher>
<info name="serial" value="HMG-125"/>
<info name="alt_title" value="マリアに捧げるバラード" />
+ <info name="serial" value="HMG-125"/>
<info name="release" value="199506xx" />
<info name="usage" value="Requires 2 MB RAM"/>
<part name="flop1" interface="floppy_3_5">
- <feature name="part_id" value="User Disk" />
+ <feature name="part_id" value="Disk A" />
<dataarea name="flop" size="1261568">
- <rom name="ballade for maria (user disk).hdm" size="1261568" crc="200678ab" sha1="c658fd357318eb5f1522c88ea333f70bda75a72a" offset="000000" />
+ <rom name="ballade for maria (disk a).hdm" size="1261568" crc="200678ab" sha1="c658fd357318eb5f1522c88ea333f70bda75a72a" offset="000000" />
</dataarea>
</part>
<part name="cdrom" interface="fmt_cdrom">
<diskarea name="cdrom">
- <disk name="ballade for maria" sha1="1f9e39ca63a8a896c5487b4a21100dd67e6a1ffd" />
+ <disk name="ballade for maria - maria ni sasageru ballade (japan)" sha1="30aaffec9c420d87dc0b0ffce34c703861ad07c1" />
</diskarea>
</part>
</software>
@@ -4240,6 +4255,34 @@ User/save disks that can be created from the game itself are not included.
</part>
</software>
+ <software name="dracula">
+ <!--
+ Origin: redump.org
+ <rom name="Dracula Hakushaku - Bishoujo-tachi no Chi no Shitatari (Japan) (Track 1).bin" size="10231200" crc="2255328c" sha1="72de510b3ba1173cb809befa3de3b32838c518a8"/>
+ <rom name="Dracula Hakushaku - Bishoujo-tachi no Chi no Shitatari (Japan) (Track 2).bin" size="49921200" crc="55813a81" sha1="239f91a2e4dfa1494d080aad2c43c1bdf6ade158"/>
+ <rom name="Dracula Hakushaku - Bishoujo-tachi no Chi no Shitatari (Japan) (Track 3).bin" size="39690000" crc="69ea0568" sha1="5f0b0827bf50d153213106d0f7863528145c65a8"/>
+ <rom name="Dracula Hakushaku - Bishoujo-tachi no Chi no Shitatari (Japan) (Track 4).bin" size="18169200" crc="76305cf7" sha1="fc946cea8b28842657ec52133d2f554eaef9d5d9"/>
+ <rom name="Dracula Hakushaku - Bishoujo-tachi no Chi no Shitatari (Japan) (Track 5).bin" size="37926000" crc="4835e60b" sha1="2a3cab192a3e314be2756eed4ccf8ef2a1346a16"/>
+ <rom name="Dracula Hakushaku - Bishoujo-tachi no Chi no Shitatari (Japan) (Track 6).bin" size="19404000" crc="88b26112" sha1="0e874c0acc0f3a8320259fb6599425d8f5ed29f8"/>
+ <rom name="Dracula Hakushaku - Bishoujo-tachi no Chi no Shitatari (Japan) (Track 7).bin" size="26636400" crc="43a78467" sha1="47e38ded387ba21b3a630c48092864ccbe96f5e6"/>
+ <rom name="Dracula Hakushaku - Bishoujo-tachi no Chi no Shitatari (Japan) (Track 8).bin" size="30870000" crc="3f3c70dc" sha1="539c22f7ccce658ecc0af316ccf290fd218d8f99"/>
+ <rom name="Dracula Hakushaku - Bishoujo-tachi no Chi no Shitatari (Japan) (Track 9).bin" size="43747200" crc="04bd8701" sha1="18a08d656acd100e5e65fcd8446b04abcb963dea"/>
+ <rom name="Dracula Hakushaku - Bishoujo-tachi no Chi no Shitatari (Japan).cue" size="1386" crc="56362c0e" sha1="a59a6af26679604460a8c4f183e15db79d75792d"/>
+ -->
+ <description>Dracula Hakushaku - Bishoujo-tachi no Chi no Shitatari</description>
+ <year>1993</year>
+ <publisher>フェアリーテール (Fairytale)</publisher>
+ <info name="alt_title" value="ドラキュラ伯爵 「美少女たちの血のしたたり」" />
+ <info name="serial" value="HME-103"/>
+ <info name="release" value="199303xx" />
+ <info name="usage" value="Requires 2 MB RAM"/>
+ <part name="cdrom" interface="fmt_cdrom">
+ <diskarea name="cdrom">
+ <disk name="dracula hakushaku - bishoujo-tachi no chi no shitatari (japan)" sha1="9287fda1d1148c86fe280b2f4ab012bb89a73976" />
+ </diskarea>
+ </part>
+ </software>
+
<software name="draghalf">
<!--
Origin: Neo Kobe Collection
@@ -6057,7 +6100,7 @@ User/save disks that can be created from the game itself are not included.
</part>
</software>
- <software name="grimm">
+ <software name="grimmaka">
<!--
Origin: P2P
<rom name="Image.cdm" size="5668" crc="3b07aab8" sha1="8730e1aa92035db646f0353e642f3cdcd0b5f097"/>
@@ -6079,6 +6122,57 @@ User/save disks that can be created from the game itself are not included.
</part>
</software>
+ <software name="grimmbre">
+ <!--
+ Origin: redump.org
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 01).bin" size="105840000" crc="b0e135f6" sha1="0958fbcc6ac7a77df9e6e9033315c7daab5ddf09"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 02).bin" size="15868944" crc="3a452e17" sha1="e8f501b4a21c37842da494ddf55fd256c919c96d"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 03).bin" size="16623936" crc="9904cb77" sha1="eab60421ef4851cdebc83e5d258809e97ba44b53"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 04).bin" size="5002704" crc="17119d40" sha1="67e2ba4d4d529976a27cfac981ad8586eac59dfa"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 05).bin" size="18098640" crc="2b92b14e" sha1="210a853a55e713a7766750f0853117f49822d11b"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 06).bin" size="1500576" crc="22ca4630" sha1="b35e47642109eb256740102edd1d706a57d66596"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 07).bin" size="4245360" crc="dd59e4af" sha1="eeacfcb890e68022a866e60e0b19f45e52827002"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 08).bin" size="5609520" crc="ef83d09d" sha1="19f040ff2f4c660daddd63b7fbdee330fa01017d"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 09).bin" size="8542464" crc="43b622e0" sha1="1c950e1e8b2ff3a625a43f177801ed3fb42e14c8"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 10).bin" size="10595760" crc="747e1042" sha1="8195a7ca65ab15be9a4aa002731527ad1ac09e36"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 11).bin" size="17317776" crc="6b51b167" sha1="d4fe42d18a87bf00594ac75fffb7baf69c614230"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 12).bin" size="5320224" crc="36234d75" sha1="c92a17c7d170a7c37c3e790832420e4d31717490"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 13).bin" size="3528000" crc="d14610b4" sha1="9501a0237835b3babd75d929bbe0dd0a0d72e641"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 14).bin" size="8874096" crc="738ce546" sha1="938e11f0914663c0b255a94d18aaf49161e69ec2"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 15).bin" size="11865840" crc="ccdc7e7b" sha1="4a48f32b91ce9bc59fb21281f1ff38a9d62a8a83"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 16).bin" size="6143424" crc="3f218f7a" sha1="5c8cb4b8c31efb7e0a7943932e9b9f3ab0eb47c1"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 17).bin" size="15765456" crc="dcc883da" sha1="bd72c227d9b046963b0a550ff2da95da4a9fdfc0"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 18).bin" size="7705152" crc="2cbdaa20" sha1="f5b79acbbf9def2583afb581db55ef1ef0dbab86"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 19).bin" size="4224192" crc="d3e5e166" sha1="a33d59cf6814bfc8178fb551cdfa595382cf2b7d"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 20).bin" size="2535456" crc="1bbbf61d" sha1="cfa4c0e5f5f4b04b3a8569f84a2ebfb991545049"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 21).bin" size="2352000" crc="7ded364a" sha1="fcdbdfed00e83bbfff7dc32a297793f38ac63af8"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 22).bin" size="13382880" crc="eedce739" sha1="c6a8b05a6aac6afb8628dee81915f9bb2eeddfbc"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 23).bin" size="1545264" crc="86d45815" sha1="a09136f74748ea717d7b32a6f57276c563489779"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 24).bin" size="2328480" crc="38015576" sha1="9012a741a43ffdc3a40e7db4e112f3dc0a217679"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 25).bin" size="2312016" crc="215bee1d" sha1="0a58b32476f7a4e9b55d886e499c270521268147"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 26).bin" size="1975680" crc="bd5e1936" sha1="bc24ba261ac14a4355b82eb93f0644d4903bc956"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 27).bin" size="2297904" crc="7d0859e5" sha1="1f23a01c4317f9788b3d964b650f12dac57189d9"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 28).bin" size="1528800" crc="32d14d3b" sha1="ba32d268a9f9f13e43c13b7acb671e9f7bdfd60d"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 29).bin" size="2340240" crc="580d4700" sha1="dbdd55a19d092ace67ebc6ca951de83c1263014f"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 30).bin" size="2069760" crc="4279cf4a" sha1="8bfc39d87c308cf8b12772b999a057eac26295ed"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 31).bin" size="22379280" crc="c11b3c3a" sha1="0e8bffea5a644f911d23825732e949bc02169b14"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan) (Track 32).bin" size="16652160" crc="356a309b" sha1="d35c70b0f30cbad511c7b7b4742c60f287764ad7"/>
+ <rom name="Maerchen Toshokan Grimm Douwa - Grimm Maerchen - Bremen no Ongakutai (Japan).cue" size="5477" crc="228262b4" sha1="9a3e9bd3b43793f3ff33e75ae47a5661a39a224e"/>
+ -->
+ <description>Märchen Toshokan - Grimm Douwa - Bremen no Ongakutai</description>
+ <year>1989</year>
+ <publisher>ぎょうせい (Gyousei)</publisher>
+ <info name="alt_title" value="メルヘン図書館 グリム童話 ブレーメンの音楽隊" />
+ <info name="serial" value="HMA-270"/>
+ <info name="release" value="198911xx" />
+ <info name="usage" value="Requires 2 MB RAM"/>
+ <part name="cdrom" interface="fmt_cdrom">
+ <diskarea name="cdrom">
+ <disk name="maerchen toshokan grimm douwa - grimm maerchen - bremen no ongakutai (japan)" sha1="083ccc5752f6c472df658ee3cd524013e136649a" />
+ </diskarea>
+ </part>
+ </software>
+
<software name="gulfwar">
<!--
Origin: redump.org
@@ -6167,11 +6261,28 @@ User/save disks that can be created from the game itself are not included.
<software name="gundamhd">
<!--
- Origin: Neo Kobe Collection
- <rom name="Mobile Suit Gundam Hyper Desert Operation.ccd" size="4393" crc="c146c679" sha1="8d76c9cfbaaa32f7515c7fcfe810d4e7a214d28a"/>
- <rom name="Mobile Suit Gundam Hyper Desert Operation.cue" size="857" crc="adfa275d" sha1="ad93554e89d56d9ce51348089341572ea7f1d709"/>
- <rom name="Mobile Suit Gundam Hyper Desert Operation.img" size="251633424" crc="44eb68ec" sha1="5e8827afe57acf7de620c468c9cd6bd3903dea9c"/>
- <rom name="Mobile Suit Gundam Hyper Desert Operation.sub" size="10270752" crc="e9e722da" sha1="6a695055bdc6f144e532271952bc785bb3d5c9b3"/>
+ Origin: redump.org
+ <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 01).bin" size="105840000" crc="39827446" sha1="d829a9bdf5394b5e74b8a29776ab4cb6a0135316"/>
+ <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 02).bin" size="10377024" crc="e70f6e0a" sha1="78aea1ebff8fbfe24974a240d8400a8c61e0d973"/>
+ <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 03).bin" size="8843520" crc="5c6d98a4" sha1="6ad28626f2a55c42dad3487b670eb882184b8fc9"/>
+ <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 04).bin" size="7573440" crc="73653488" sha1="9d8d2438678ef983c6ca568a9ec6b03dcd21f019"/>
+ <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 05).bin" size="11226096" crc="25ccd2a2" sha1="53f4c36075dfe913aa1c937a2aca4002c0798ab7"/>
+ <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 06).bin" size="6684384" crc="4a88a15d" sha1="50c0d88b805bd1473de43edb73a95de419921b80"/>
+ <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 07).bin" size="6851376" crc="36566a2b" sha1="83a3e77f3f8a7e1e547b46627d5c5845c1f3bfbc"/>
+ <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 08).bin" size="10501680" crc="a6e99e47" sha1="15223cbec954109a53f76dfa7b174d3ee168d599"/>
+ <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 09).bin" size="8714160" crc="b2aab6bc" sha1="1b08e5319171899812a17df211c74968258bd2b2"/>
+ <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 10).bin" size="9836064" crc="3855eb68" sha1="d6e89532ffd6c488072b8e85bc7c0f1da95453a1"/>
+ <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 11).bin" size="11543616" crc="c1bb08c4" sha1="13a360b1604b7bc77f2749902efcb3e53c43fed8"/>
+ <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 12).bin" size="9090480" crc="c337cf61" sha1="e5d225bc0a81c4c61801a53a9d1665b48abe7300"/>
+ <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 13).bin" size="9459744" crc="65768c24" sha1="b7eb6495ea25f8cc2ce29aaac3879ad361a7147d"/>
+ <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 14).bin" size="4245360" crc="3bc22466" sha1="1234e1d7b803ed057f5c31950efe6c0ac4e317e7"/>
+ <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 15).bin" size="6169296" crc="6cc732f7" sha1="5e3934c8a7267b299e385143263c2aef7e92ed54"/>
+ <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 16).bin" size="3692640" crc="86045f73" sha1="14b1d7050354f9814c719591102aa875039541d4"/>
+ <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 17).bin" size="4273584" crc="1ec2ee8d" sha1="fae286094839370b6ef5aa7ebc481a2bb1b9b148"/>
+ <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 18).bin" size="8255520" crc="8fbdc8fc" sha1="79f7c5765e2cc6f35e1b0062fb8b3fa8bf1d415b"/>
+ <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 19).bin" size="3687936" crc="0b75a350" sha1="3ce1c833e5bc486cb42155e3d44c997af9a6b0d8"/>
+ <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan) (Track 20).bin" size="4767504" crc="ec9c7a09" sha1="0f7df177c1d7401d9baf9159d5bea318b8a67544"/>
+ <rom name="Mobile Suit Gundam - Hyper Desert Operation (Japan).cue" size="2925" crc="eeb3779b" sha1="6adcb7c0ad515fbb0d709096a7e828a36373fafc"/>
-->
<description>Mobile Suit Gundam - Hyper Desert Operation</description>
<year>1992</year>
@@ -6182,7 +6293,7 @@ User/save disks that can be created from the game itself are not included.
<info name="usage" value="Requires 2 MB RAM"/>
<part name="cdrom" interface="fmt_cdrom">
<diskarea name="cdrom">
- <disk name="mobile suit gundam hyper desert operation" sha1="05410dc1fe303c5613650f2a697d76ad769644ea" />
+ <disk name="mobile suit gundam - hyper desert operation (japan)" sha1="11b91659de9bdb5678ee9eb776bedd0ace620923" />
</diskarea>
</part>
</software>
@@ -6599,6 +6710,44 @@ User/save disks that can be created from the game itself are not included.
</part>
</software>
+ <software name="hyplanet">
+ <!--
+ Origin: redump.org / wiggy2k
+ <rom name="Hyper Planet (Japan) (Track 01).bin" size="36338400" crc="c6a1c2f8" sha1="88a71285ceafe9a6714260773a226c051433c7e8"/>
+ <rom name="Hyper Planet (Japan) (Track 02).bin" size="63527520" crc="6b42d003" sha1="c7735206da1a94a84554848a3193ce5e88ffc381"/>
+ <rom name="Hyper Planet (Japan) (Track 03).bin" size="68871264" crc="bf5e21f5" sha1="75c7dbfb99a58f11ccc0e585262d2418092c29cd"/>
+ <rom name="Hyper Planet (Japan) (Track 04).bin" size="23879856" crc="42bca228" sha1="794f3d08c1a3a43482ce162b367d378e4c2c9001"/>
+ <rom name="Hyper Planet (Japan) (Track 05).bin" size="25448640" crc="e90acf65" sha1="56627df5222560c61d1737826bfec0de64e100bb"/>
+ <rom name="Hyper Planet (Japan) (Track 06).bin" size="26394144" crc="c11ad65c" sha1="e90c27d74397dffb85bc9482f9670a4535e1fe55"/>
+ <rom name="Hyper Planet (Japan) (Track 07).bin" size="25589760" crc="9da466ec" sha1="ea7f47f2fdc6a3e80be8deb4195811e57c72fe62"/>
+ <rom name="Hyper Planet (Japan) (Track 08).bin" size="22515696" crc="5b723176" sha1="84f07581d29d524bd8fe0bd604808e9b10ba8c35"/>
+ <rom name="Hyper Planet (Japan) (Track 09).bin" size="23395344" crc="f84e6fcd" sha1="faf5822563d9d94677b7665441978c5db6feaa93"/>
+ <rom name="Hyper Planet (Japan) (Track 10).bin" size="23374176" crc="08c038e7" sha1="ebd900a5bfbcc87250208765b6d2c1ab7d066a17"/>
+ <rom name="Hyper Planet (Japan) (Track 11).bin" size="23214240" crc="c227678c" sha1="5b9e8037740f8c4c6b3e7e0ffcf18066160c5a2f"/>
+ <rom name="Hyper Planet (Japan) (Track 12).bin" size="23501184" crc="66d6d682" sha1="07285d15c568aca76893bb116742ce42f73651fe"/>
+ <rom name="Hyper Planet (Japan) (Track 13).bin" size="24025680" crc="ae889eb6" sha1="8051e01d0b7a83c27cee58a2a22351cd014f2c28"/>
+ <rom name="Hyper Planet (Japan) (Track 14).bin" size="24467856" crc="09d23cef" sha1="d39fe2d5b9b2da5ae6227c541e13de760e57d614"/>
+ <rom name="Hyper Planet (Japan) (Track 15).bin" size="23437680" crc="36f76375" sha1="c603ed76df9baa767bc5c70ded268bc353fb2d06"/>
+ <rom name="Hyper Planet (Japan) (Track 16).bin" size="167737584" crc="c31cb371" sha1="103f14a00b4caa526076341e214fe5ee3b6c12db"/>
+ <rom name="Hyper Planet (Japan).cue" size="1822" crc="48c4f947" sha1="a43de891e62bfac8797422ac3f6cfc920846b8b6"/>
+ -->
+ <description>Hyper Planet</description>
+ <year>1990</year>
+ <publisher>ダットジャパン (Datt Japan)</publisher>
+ <info name="serial" value="HMB-107"/>
+ <info name="release" value="199009xx" />
+ <part name="flop1" interface="floppy_3_5">
+ <dataarea name="flop" size="1261568">
+ <rom name="hyper-planet.hdm" size="1261568" crc="ec701443" sha1="345ba017d784e42d926dc73548e8149c3a10c6c1" offset="000000" />
+ </dataarea>
+ </part>
+ <part name="cdrom" interface="fmt_cdrom">
+ <diskarea name="cdrom">
+ <disk name="hyper planet (japan)" sha1="489ede661a707adef7868526cfbbbb9d0bc6e55c" />
+ </diskarea>
+ </part>
+ </software>
+
<!-- Missing a floppy disk -->
<software name="nhkzkei3" supported="no">
<!--
@@ -7118,6 +7267,76 @@ User/save disks that can be created from the game itself are not included.
</part>
</software>
+ <software name="jigwld">
+ <!--
+ Origin: redump.org
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 01).bin" size="69336960" crc="c7171dbf" sha1="3cfc81580f52b6a137b19a69c80b9ca00fe4a508"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 02).bin" size="18703104" crc="e48b7b9f" sha1="0dc1898b6c8144c7b3503b8bcf00449f89461af7"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 03).bin" size="11760000" crc="27cfc935" sha1="f59216e413bd1649bc01c9f1f9f28324e13c435e"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 04).bin" size="12860736" crc="d5e59703" sha1="af741fe64d81aa8f3e7f91853ef817d89d9dd6e5"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 05).bin" size="45010224" crc="4756d3ff" sha1="6a98fe2f2d06ee93442762b686c9869513b8cd18"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 06).bin" size="8937600" crc="fbabe923" sha1="efa0a7e04da272fffcc032d1946e04b7839099cf"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 07).bin" size="17393040" crc="8c36ced2" sha1="2de80fe9062789970b6f9222b8676359f6974356"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 08).bin" size="11771760" crc="e771bacb" sha1="289615a53edbd175cedd5b0ea62127abb881867f"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 09).bin" size="15177456" crc="6b8aa063" sha1="5962e46c6026e38092a15550708da04eef90b3c5"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 10).bin" size="11200224" crc="2ee221aa" sha1="c00140aa7f88d92eccaf11a6990ecc2e92229510"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 11).bin" size="11595360" crc="118260ea" sha1="94f701cacd0edae8b50de9c2a9e841d941946f92"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 12).bin" size="16106496" crc="02083627" sha1="f96cadbcb1adee3039a00d2bd5830df4df8372ee"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 13).bin" size="9455040" crc="18d84170" sha1="94b7c391bf79947a7e026829ae102eea3e5dad8b"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 14).bin" size="14711760" crc="66f5d0b6" sha1="e1324f8fa34b7b9a601c82e9a47c6ab02baa5690"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 15).bin" size="16845024" crc="8bcaa750" sha1="dcbdf9cba056ae76afcb8c3fe9abcdb8ed480c0f"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 16).bin" size="12395040" crc="a593e8d9" sha1="f806f6057e179a0b0a349ee01735fa1d11a93089"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 17).bin" size="7785120" crc="f76d25b6" sha1="198393c831dfd5cc8109c23321d954f8d2a91a36"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 18).bin" size="25542720" crc="5dce89b1" sha1="c42aecb6a21b49340f4367028309d429a0db4864"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 19).bin" size="19234656" crc="7274ca6c" sha1="1a8c8df5e779e0f89bfb0648557b8dd9b98ae289"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 20).bin" size="9337440" crc="2df62687" sha1="f4d1fe75e89074439bacb8f92fd0441c815d008d"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 21).bin" size="17315424" crc="1889e6be" sha1="c4921b79121b99051c90872ff4429e7b329dbd26"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 22).bin" size="14013216" crc="0e98d8dd" sha1="03971616fbbb1b921b7c74311a3fb952bee145d4"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 23).bin" size="6867840" crc="1c467f69" sha1="6f7a7ea357eeffa5eaa3d4721aca0a4774c886ce"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 24).bin" size="12771360" crc="06cc2f2b" sha1="13f89a019fa2881adf4f189091798b8bf59598ec"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 25).bin" size="20008464" crc="8de5dfe0" sha1="154e3507349ea11465c55100d148d7841f95737a"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 26).bin" size="7714560" crc="cd1aeb39" sha1="8dd75d20ac4c61dbb59385cb12ac4a91a2f38ebf"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 27).bin" size="11442480" crc="6f96dd3e" sha1="a04898207c6299d19c1967d71249cbf55f3ababf"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 28).bin" size="12489120" crc="e15dfab3" sha1="69258e4bdd3fa043dd04a69f67ec8ad939e3a618"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 29).bin" size="10226496" crc="7cdf5afb" sha1="f5f7b67f20f374c2f44ee27a275acc9d2ec89529"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 30).bin" size="10290000" crc="7511854e" sha1="39e809df55b29295d5241e35b8f231faaf189888"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 31).bin" size="11952864" crc="3a81d950" sha1="d00e847dfbb526a3b4c4e2e362e9fbd39cceecc8"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 32).bin" size="9360960" crc="05493e8e" sha1="c8c33670611259a55395dc5aa0c6d47086efde67"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 33).bin" size="12771360" crc="fab7bf34" sha1="e58917e4de1eb78da9be20cc34b2572e97809aa9"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 34).bin" size="19458096" crc="4d910d3f" sha1="33f34ee1e99a7c15b12956901ed13f69a4ad008c"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 35).bin" size="11501280" crc="74ddae06" sha1="126f2b03e861f6c68e50c580a9f774a6dbbdc36c"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 36).bin" size="8820000" crc="75485aeb" sha1="286fb09862999d4a68e8ecf67d90000b85857bcf"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 37).bin" size="36009120" crc="ec58feb2" sha1="64f6342531966b01adf9f6b690ae757dcc9f28f2"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 38).bin" size="11007360" crc="cf1bb7fc" sha1="04b288144ceacffa779f26483542d6e064fbd68f"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 39).bin" size="15005760" crc="b2c0cefc" sha1="92e69950eff589d5992380b3835b3ecb0ddee1e1"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 40).bin" size="14676480" crc="8526ae4c" sha1="73a7da58b8b9ba4382c93550a934b3888e0dfc08"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 41).bin" size="11541264" crc="c312c1fe" sha1="b4a68b115c90eba99c1f02e19a0506f107137f2e"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 42).bin" size="9226896" crc="e9a557ae" sha1="abd407582b6bacb9f2c28c07932709920844e720"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 43).bin" size="15817200" crc="a04abf09" sha1="45b5c04196de98054c19cc42a8b170d0fe3faeb2"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 44).bin" size="12477360" crc="d924092c" sha1="996566bf278fd7496a108fbf9c132db252429b3d"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 45).bin" size="10753344" crc="bd1cdeca" sha1="98aeed60dfec887e8e8dd6c84329941de73bd390"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 46).bin" size="12943056" crc="8cb6da9a" sha1="e3d910d83617672e63c3d45b23fa286595978ffc"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 47).bin" size="16068864" crc="c0199cc5" sha1="7899073e0a882bde62c890cf73b6f6c4507c0eaa"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 48).bin" size="8526000" crc="786ca98d" sha1="8d098f547889231912102e3bde31074684012a38"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 49).bin" size="8380176" crc="31bbd00a" sha1="05cf5230dd87377e10e61456bb85a497c00670f2"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 50).bin" size="18627840" crc="239ca3b7" sha1="b50ae18e815ba1f906bebd5bbd3d5e55da609472"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan) (Track 51).bin" size="18780720" crc="b49be182" sha1="d3082377511ac59e7159825a4ac9eb85d4ace083"/>
+ <rom name="Towns Chiri - Jigsaw World (Japan).cue" size="6561" crc="1b27d40d" sha1="2327c0cda0a4a3e6088d9c5c5834b2d42690d1f7"/>
+ -->
+ <description>Towns Chiri - Jigsaw World</description>
+ <year>1991</year>
+ <publisher>富士通大分ソフトウェアラボラトリ (Fujitsu Ooita Software Laboratory)</publisher>
+ <info name="alt_title" value="TOWNS地理 ジグソー・ワールド" />
+ <info name="serial" value="HMB-514"/>
+ <info name="release" value="199103xx" />
+ <info name="usage" value="Requires 2 MB RAM"/>
+ <part name="cdrom" interface="fmt_cdrom">
+ <diskarea name="cdrom">
+ <disk name="towns chiri - jigsaw world (japan)" sha1="a4887948ed3c8e1a3429946460dd9603c5c1b5d3" />
+ </diskarea>
+ </part>
+ </software>
+
<software name="joker">
<!--
Origin: redump.org
@@ -8152,6 +8371,44 @@ User/save disks that can be created from the game itself are not included.
</part>
</software>
+ <software name="lemoncc">
+ <!--
+ Origin: redump.org
+ <rom name="Lemon Cocktail Collection (Japan) (Track 01).bin" size="31399200" crc="ed3b3b75" sha1="941364b602e9c0fe9c0682ba342a052de6d4ea03"/>
+ <rom name="Lemon Cocktail Collection (Japan) (Track 02).bin" size="30164400" crc="6d056e4e" sha1="f08fd5b36730246fa9346858839bb756c640cdde"/>
+ <rom name="Lemon Cocktail Collection (Japan) (Track 03).bin" size="46746000" crc="1eea2fc5" sha1="27dd006784be1902f58bb88fb726909da6aca250"/>
+ <rom name="Lemon Cocktail Collection (Japan) (Track 04).bin" size="43747200" crc="eb597d0a" sha1="ab76557a1ca57953592edb9987098cf3364a8098"/>
+ <rom name="Lemon Cocktail Collection (Japan) (Track 05).bin" size="30340800" crc="4cf5eb6d" sha1="27fdcc111fd63b6844724fabbd94018ff64a957d"/>
+ <rom name="Lemon Cocktail Collection (Japan) (Track 06).bin" size="37926000" crc="b6356045" sha1="6d35c9872ad7da946a1d06917a030fc7f8809309"/>
+ <rom name="Lemon Cocktail Collection (Japan) (Track 07).bin" size="38808000" crc="d17604fd" sha1="8f208d1779c1b0e2a4e6238dcf44d73a4dd3baf0"/>
+ <rom name="Lemon Cocktail Collection (Japan) (Track 08).bin" size="39513600" crc="9fd04581" sha1="e7a09ba8dd070fa4ecd34b6cc309a0a4cf948dfb"/>
+ <rom name="Lemon Cocktail Collection (Japan) (Track 09).bin" size="33868800" crc="5af50c83" sha1="19672e4e73b0ef9e438b90ffa1a634db7e5e5cb4"/>
+ <rom name="Lemon Cocktail Collection (Japan) (Track 10).bin" size="30870000" crc="9e43d498" sha1="8d3067f23310b4731a690b4270e46bdfa3c125fe"/>
+ <rom name="Lemon Cocktail Collection (Japan) (Track 11).bin" size="32457600" crc="00f3d2c0" sha1="f43426a61850877f614895f478ac2dc214d03f29"/>
+ <rom name="Lemon Cocktail Collection (Japan) (Track 12).bin" size="29282400" crc="3285f41e" sha1="904cf11e4326521897434cf85e4524676405bb21"/>
+ <rom name="Lemon Cocktail Collection (Japan) (Track 13).bin" size="7408800" crc="dc332186" sha1="e529334b5c58665c70e91d316f0849eb694ba65a"/>
+ <rom name="Lemon Cocktail Collection (Japan) (Track 14).bin" size="31046400" crc="7a5933cd" sha1="12a5d3b61da4d32c84c23435e79cd7f727215489"/>
+ <rom name="Lemon Cocktail Collection (Japan) (Track 15).bin" size="32457600" crc="2f2b4fcd" sha1="d67fd767a926fb0874745857ad0f1906945cc1b1"/>
+ <rom name="Lemon Cocktail Collection (Japan) (Track 16).bin" size="40924800" crc="37f417b1" sha1="25bae598fe25ccd19fd839985c22dc14a80225af"/>
+ <rom name="Lemon Cocktail Collection (Japan) (Track 17).bin" size="28576800" crc="de0575a8" sha1="a010aedd53a02cdac4930e19e872140382a06748"/>
+ <rom name="Lemon Cocktail Collection (Japan) (Track 18).bin" size="17463600" crc="1ed23af9" sha1="7628aace5c65598355d2f64f55f243e9892190f2"/>
+ <rom name="Lemon Cocktail Collection (Japan) (Track 19).bin" size="26107200" crc="89b3a0d3" sha1="4e6dd9a07d655aacad7a2461407ee2ba16b2dc0f"/>
+ <rom name="Lemon Cocktail Collection (Japan).cue" size="2414" crc="bf6e3f6a" sha1="8c903aa24570e9ea4c9aa6b722504eb7a29b0d73"/>
+ -->
+ <description>Lemon Cocktail Collection</description>
+ <year>1993</year>
+ <publisher>カクテル・ソフト (Cocktail Soft)</publisher>
+ <info name="alt_title" value="レモン・カクテル・コレクション" />
+ <info name="serial" value="HME-101"/>
+ <info name="release" value="199303xx" />
+ <info name="usage" value="Requires 2 MB RAM"/>
+ <part name="cdrom" interface="fmt_cdrom">
+ <diskarea name="cdrom">
+ <disk name="lemon cocktail collection (japan)" sha1="a17512ebc210b781310d79a35cf8da325ed1374a" />
+ </diskarea>
+ </part>
+ </software>
+
<software name="lesserm">
<!--
Origin: Neo Kobe Collection
@@ -8283,6 +8540,37 @@ User/save disks that can be created from the game itself are not included.
</part>
</software>
+ <!-- Missing a floppy disk? -->
+ <software name="lipsadv3" supported="no">
+ <!--
+ Origin: redump.org
+ <rom name="Lip 3 - Lipstick Adventure 3 (Japan) (Track 01).bin" size="52567200" crc="7462e0c3" sha1="48900be15c74d4099e25710dcd5e6f26123c1d7f"/>
+ <rom name="Lip 3 - Lipstick Adventure 3 (Japan) (Track 02).bin" size="43923600" crc="12c3a386" sha1="853c797694005ab58666f5c21e2fa0f461c9fc5d"/>
+ <rom name="Lip 3 - Lipstick Adventure 3 (Japan) (Track 03).bin" size="32281200" crc="7fe731f3" sha1="c831ad5520e846d0d2f7145e6358b092ae80ff2f"/>
+ <rom name="Lip 3 - Lipstick Adventure 3 (Japan) (Track 04).bin" size="19404000" crc="0caf8555" sha1="be705a4209922d7253771c9042a9a055b7f46b69"/>
+ <rom name="Lip 3 - Lipstick Adventure 3 (Japan) (Track 05).bin" size="28224000" crc="cb3c404d" sha1="cd06c6312a80fed619c8f1a0d37de35239654a37"/>
+ <rom name="Lip 3 - Lipstick Adventure 3 (Japan) (Track 06).bin" size="33692400" crc="e6832e70" sha1="41424966a28305fbae01f69ad499942a3b145249"/>
+ <rom name="Lip 3 - Lipstick Adventure 3 (Japan) (Track 07).bin" size="27871200" crc="82d18093" sha1="87850e07f580fd8d0c03b712824a91990bc35be4"/>
+ <rom name="Lip 3 - Lipstick Adventure 3 (Japan) (Track 08).bin" size="34574400" crc="ba15484d" sha1="afbfa37d18570433b4786823622eb31caff106c7"/>
+ <rom name="Lip 3 - Lipstick Adventure 3 (Japan) (Track 09).bin" size="46040400" crc="09bcb43a" sha1="9611971fdbf918086742f169b53f860e03be299c"/>
+ <rom name="Lip 3 - Lipstick Adventure 3 (Japan) (Track 10).bin" size="46393200" crc="f2b00612" sha1="d1cd805d5ec73615cc22683f2687c6d67b023f88"/>
+ <rom name="Lip 3 - Lipstick Adventure 3 (Japan) (Track 11).bin" size="33516000" crc="f6b1128f" sha1="c22c7c63a7c0b42f10350581a937b12312aebe3b"/>
+ <rom name="Lip 3 - Lipstick Adventure 3 (Japan).cue" size="1423" crc="583e7d8b" sha1="68abb3c69843d9a1297c90a04f0613d98962d691"/>
+ -->
+ <description>Lip 3 - Lipstick Adventure 3</description>
+ <year>1993</year>
+ <publisher>フェアリーテール (Fairytale)</publisher>
+ <info name="alt_title" value="LIP3 リップスティック・アドベンチャー3" />
+ <info name="serial" value="HME-221"/>
+ <info name="release" value="199305xx" />
+ <info name="usage" value="Requires 2 MB RAM"/>
+ <part name="cdrom" interface="fmt_cdrom">
+ <diskarea name="cdrom">
+ <disk name="lip 3 - lipstick adventure 3 (japan)" sha1="c0507c340b55c1fa08a8080e0fc3d53d271f6a1e" />
+ </diskarea>
+ </part>
+ </software>
+
<software name="lodoss">
<!--
Origin: Neo Kobe Collection
@@ -9743,76 +10031,76 @@ User/save disks that can be created from the game itself are not included.
<software name="nhkeigo1">
<!--
Origin: redump.org
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 01).bin" size="105487200" crc="92184b93" sha1="5de258e7a0ebb796b56f6dd276a815a7b85209c4"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 02).bin" size="12877200" crc="af6e94a6" sha1="097633403b5e5f9885ef62092d0f71769643a9ba"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 03).bin" size="5468400" crc="32c70401" sha1="795f6d61389111bad66a9b1c7ef5ac972f376b4b"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 04).bin" size="1764000" crc="37f81cfb" sha1="e2bd192da4a7dd3ae4fdd0f777db0232886af159"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 05).bin" size="1587600" crc="c5f974d7" sha1="b453c83887b531703d17fb60a5d05b58f425d33d"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 06).bin" size="1058400" crc="3bad5619" sha1="a6bc00634b5bae5376715cc34966a5b4640bd9dd"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 07).bin" size="1058400" crc="0e2b802c" sha1="eae47bdf712515236c56b4138dae2496837c992c"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 08).bin" size="5821200" crc="28336d0b" sha1="9b9ff92a32a5f42f79494aebfd2d9cae03489e5d"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 09).bin" size="7056000" crc="7bce374a" sha1="fd79f79b6936fbe9bd25fded81a7cb6b1548d524"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 10).bin" size="6703200" crc="ea70dc70" sha1="746d3cbb081261eeba621086fca1daf5f5105487"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 11).bin" size="6526800" crc="39aee815" sha1="963d69c541ce8ae2c7c88d9124334db6afb17223"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 12).bin" size="1058400" crc="b73c05a1" sha1="4cd536e395cfbc07b8562cf44e936243bad67a6d"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 13).bin" size="4762800" crc="78c227c1" sha1="b40ec02b8a2b587ad9c12346b9aba44a22861aec"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 14).bin" size="1940400" crc="71b8a3cd" sha1="bdd065ea15b5a051014fb87721810eeafbcd60aa"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 15).bin" size="5115600" crc="2da901cb" sha1="7d12932152014d55ddbdb12af91bcdbf73ac5a93"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 16).bin" size="12171600" crc="1eeb0234" sha1="dbae00d67b77c8b8bea9caa3c2ef1e7ef4c1e8c0"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 17).bin" size="6703200" crc="6a73bae0" sha1="bebf8444895052055050a2826c02bfa955d5a68c"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 18).bin" size="1411200" crc="f5bb8748" sha1="4f1f97fff875fb1642afa05fb41b0e375401f9db"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 19).bin" size="3704400" crc="bbe795ff" sha1="ba27dccc30fce69b8966d93e11bfc0e2d372c624"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 20).bin" size="4057200" crc="7fc1d42f" sha1="d0bcc2f35355e49ccccb31bd8079d0cf04c45c53"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 21).bin" size="2646000" crc="b645af79" sha1="3dd006fa58742a7c6f00c03e586df5faa4f035a5"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 22).bin" size="3880800" crc="5418b6a1" sha1="5c299a977e578c8b33c3f4fa8b47121c8a0d21b5"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 23).bin" size="5821200" crc="9aebd3c3" sha1="be68e9faa8eb7102151918c93d292a50183441ab"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 24).bin" size="3528000" crc="f7b61586" sha1="402f68bde2fdfacbf08e689a42a51abceaaab3ee"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 25).bin" size="3880800" crc="cb9a22e3" sha1="f6123fef617ce1ba3ec55126aac00a862079bf15"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 26).bin" size="2646000" crc="56e8224b" sha1="9b94a533a527a75a872a6ad6da472a0622739db9"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 27).bin" size="2116800" crc="cf480706" sha1="99cfb86580b397b0f3917ef720d6977a7e2c30cc"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 28).bin" size="7408800" crc="9cee9e96" sha1="c418850b7f71ce0f0d515b91533e69ba5bda95b3"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 29).bin" size="7408800" crc="3788edd5" sha1="246b89235cb81fc4637a9798a8d6f3530ffe9695"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 30).bin" size="7408800" crc="baf95695" sha1="853d54df167d99ea13b3f128447a02e3e5961167"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 31).bin" size="7232400" crc="43f5e582" sha1="716513cd9fc90d53bdd27e5817c0ee2641078bd0"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 32).bin" size="4057200" crc="a19a0367" sha1="637953a15d5adb6399b5b9a9c0f02c8a5cc1f6de"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 33).bin" size="3351600" crc="1ddbdabf" sha1="b9356775a142acd044c40c19760bf0ad49b7bf83"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 34).bin" size="2998800" crc="9cffff08" sha1="d834c4bf1484324e3e702865bd35d2055cb9e28d"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 35).bin" size="7408800" crc="62f861c0" sha1="ce2285aae14afb06f228dc0629c225d8ebddce7a"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 36).bin" size="7408800" crc="57555eb9" sha1="b4945ac39a6da77d1a4145d78a1cd61e48385adf"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 37).bin" size="7408800" crc="af7ee12e" sha1="0a5bd54de12faef36c69dda745dd213aa4e89bfb"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 38).bin" size="7408800" crc="7a6197aa" sha1="dac6f6f6eb61636686c8d895465c96611cc265e8"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 39).bin" size="4939200" crc="0490fb0a" sha1="57050b32313e69590399c61dd17005254842b7e2"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 40).bin" size="4939200" crc="7b2dadaf" sha1="5efa427a342504fd94349a612c2533c4ea6a9d6b"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 41).bin" size="13230000" crc="aeb3bac7" sha1="3009d9a631d6ceded059f40362f72aff2f2c0f68"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 42).bin" size="9878400" crc="b3c1574c" sha1="28b9f34c8103dab675f734b24989860187a97332"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 43).bin" size="2116800" crc="d99d95d9" sha1="594f5b601c622767cce9516b634d72b239ec0250"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 44).bin" size="3880800" crc="2857768f" sha1="6f75a48c61318eb60c908f2066d73c0dc411cb5c"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 45).bin" size="6879600" crc="b04a6a7e" sha1="29e70ee94dd72d85cf055c8ce29f9782c6b43361"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 46).bin" size="3880800" crc="55a5533f" sha1="2cce545b05c98ccdae401b34c53ee2f6817b1a03"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 47).bin" size="5644800" crc="ed18aed7" sha1="668e12bd591382bf83b88edfd431551d3211e6f4"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 48).bin" size="5468400" crc="5a728c16" sha1="d06e1ef5a8bfcf34abd8974c8762f16e82a0706c"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 49).bin" size="6350400" crc="54b6330a" sha1="7d1a94f9202fc27bd99509bfa3bb1d6bd7bc30a9"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 50).bin" size="1764000" crc="b6306af2" sha1="338074731ac4fb641be6ce63e97c8ca2df952bfb"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 51).bin" size="1411200" crc="6386b436" sha1="bffb67de18ed640a6ef9c3d3a213bfc73b303ce9"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 52).bin" size="17816400" crc="4a5ab967" sha1="0818e97b8f96f675ccd76ffba3a02c8fcbe204b8"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 53).bin" size="20638800" crc="3a9cff5e" sha1="0e3260dbb7a3e08ee2f735d0240c2128a8b42e2f"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 54).bin" size="8467200" crc="ceeae035" sha1="ecec2e11ea7c6c0b5cea01a9fddfbee20fe9b2c2"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 55).bin" size="17287200" crc="8ff1553c" sha1="2325f98d96532338faec2688fb54be226005add9"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 56).bin" size="7408800" crc="e141302b" sha1="0c5bd42cee6820017d871465157ed2aaa18bcc97"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 57).bin" size="21344400" crc="c9109649" sha1="e09ec870f41babc0db56cbf0b191e818de9b1390"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 58).bin" size="8643600" crc="1798cb9e" sha1="51143e80a272f802bcf7e9bb313a295ac09101be"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 59).bin" size="11466000" crc="c1e62618" sha1="466666e2e2fa1e197860022b706c70b496a75f73"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 60).bin" size="8643600" crc="058d0c40" sha1="45a2d06451dd743845b46222e1f18ac9efbd5383"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 61).bin" size="4410000" crc="18d6772a" sha1="94104f7519f59ad6c1fdb3a7770f510f73eaa8c3"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 62).bin" size="7938000" crc="d8dff326" sha1="c509d807641f4bb461d69e3406982defe0d96385"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 63).bin" size="1234800" crc="8aee4359" sha1="df0b04ba46413ee10a9013b9ce06d5d3ad2171e6"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 64).bin" size="1940400" crc="838744ea" sha1="df499e1cc6a1833b177ba2b83af8cc3840fbdd95"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 65).bin" size="3880800" crc="d86aaea5" sha1="739655b0daa349c420b6bdb09ec4f2dfd727698e"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 66).bin" size="4762800" crc="e7b4a6c5" sha1="166314035f71e81852638f9379659d7c3f58a349"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 67).bin" size="3528000" crc="bee4e2b5" sha1="07ae1b8cbe06370ad54ee1348e2e3853d74ce626"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 68).bin" size="4233600" crc="7af7ea94" sha1="f211fa772ef0e5b43777776365173ce3541044b7"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan) (Track 69).bin" size="4762800" crc="d886d260" sha1="51dcf2dc4c1975f9f2954210a55dcaa1a80e3b45"/>
- <rom name="NHK Eigo de Asobo Vol. 1 (Japan).cue" size="8745" crc="209eca07" sha1="cd71c0fca0490ee2df8d1f2da27a75c6fa970b87"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 01).bin" size="105487200" crc="92184b93" sha1="5de258e7a0ebb796b56f6dd276a815a7b85209c4"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 02).bin" size="12877200" crc="af6e94a6" sha1="097633403b5e5f9885ef62092d0f71769643a9ba"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 03).bin" size="5468400" crc="32c70401" sha1="795f6d61389111bad66a9b1c7ef5ac972f376b4b"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 04).bin" size="1764000" crc="37f81cfb" sha1="e2bd192da4a7dd3ae4fdd0f777db0232886af159"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 05).bin" size="1587600" crc="c5f974d7" sha1="b453c83887b531703d17fb60a5d05b58f425d33d"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 06).bin" size="1058400" crc="3bad5619" sha1="a6bc00634b5bae5376715cc34966a5b4640bd9dd"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 07).bin" size="1058400" crc="0e2b802c" sha1="eae47bdf712515236c56b4138dae2496837c992c"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 08).bin" size="5821200" crc="28336d0b" sha1="9b9ff92a32a5f42f79494aebfd2d9cae03489e5d"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 09).bin" size="7056000" crc="7bce374a" sha1="fd79f79b6936fbe9bd25fded81a7cb6b1548d524"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 10).bin" size="6703200" crc="ea70dc70" sha1="746d3cbb081261eeba621086fca1daf5f5105487"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 11).bin" size="6526800" crc="39aee815" sha1="963d69c541ce8ae2c7c88d9124334db6afb17223"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 12).bin" size="1058400" crc="b73c05a1" sha1="4cd536e395cfbc07b8562cf44e936243bad67a6d"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 13).bin" size="4762800" crc="78c227c1" sha1="b40ec02b8a2b587ad9c12346b9aba44a22861aec"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 14).bin" size="1940400" crc="71b8a3cd" sha1="bdd065ea15b5a051014fb87721810eeafbcd60aa"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 15).bin" size="5115600" crc="2da901cb" sha1="7d12932152014d55ddbdb12af91bcdbf73ac5a93"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 16).bin" size="12171600" crc="1eeb0234" sha1="dbae00d67b77c8b8bea9caa3c2ef1e7ef4c1e8c0"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 17).bin" size="6703200" crc="6a73bae0" sha1="bebf8444895052055050a2826c02bfa955d5a68c"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 18).bin" size="1411200" crc="f5bb8748" sha1="4f1f97fff875fb1642afa05fb41b0e375401f9db"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 19).bin" size="3704400" crc="bbe795ff" sha1="ba27dccc30fce69b8966d93e11bfc0e2d372c624"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 20).bin" size="4057200" crc="7fc1d42f" sha1="d0bcc2f35355e49ccccb31bd8079d0cf04c45c53"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 21).bin" size="2646000" crc="b645af79" sha1="3dd006fa58742a7c6f00c03e586df5faa4f035a5"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 22).bin" size="3880800" crc="5418b6a1" sha1="5c299a977e578c8b33c3f4fa8b47121c8a0d21b5"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 23).bin" size="5821200" crc="9aebd3c3" sha1="be68e9faa8eb7102151918c93d292a50183441ab"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 24).bin" size="3528000" crc="f7b61586" sha1="402f68bde2fdfacbf08e689a42a51abceaaab3ee"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 25).bin" size="3880800" crc="cb9a22e3" sha1="f6123fef617ce1ba3ec55126aac00a862079bf15"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 26).bin" size="2646000" crc="56e8224b" sha1="9b94a533a527a75a872a6ad6da472a0622739db9"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 27).bin" size="2116800" crc="cf480706" sha1="99cfb86580b397b0f3917ef720d6977a7e2c30cc"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 28).bin" size="7408800" crc="9cee9e96" sha1="c418850b7f71ce0f0d515b91533e69ba5bda95b3"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 29).bin" size="7408800" crc="3788edd5" sha1="246b89235cb81fc4637a9798a8d6f3530ffe9695"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 30).bin" size="7408800" crc="baf95695" sha1="853d54df167d99ea13b3f128447a02e3e5961167"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 31).bin" size="7232400" crc="43f5e582" sha1="716513cd9fc90d53bdd27e5817c0ee2641078bd0"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 32).bin" size="4057200" crc="a19a0367" sha1="637953a15d5adb6399b5b9a9c0f02c8a5cc1f6de"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 33).bin" size="3351600" crc="1ddbdabf" sha1="b9356775a142acd044c40c19760bf0ad49b7bf83"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 34).bin" size="2998800" crc="9cffff08" sha1="d834c4bf1484324e3e702865bd35d2055cb9e28d"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 35).bin" size="7408800" crc="62f861c0" sha1="ce2285aae14afb06f228dc0629c225d8ebddce7a"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 36).bin" size="7408800" crc="57555eb9" sha1="b4945ac39a6da77d1a4145d78a1cd61e48385adf"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 37).bin" size="7408800" crc="af7ee12e" sha1="0a5bd54de12faef36c69dda745dd213aa4e89bfb"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 38).bin" size="7408800" crc="7a6197aa" sha1="dac6f6f6eb61636686c8d895465c96611cc265e8"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 39).bin" size="4939200" crc="0490fb0a" sha1="57050b32313e69590399c61dd17005254842b7e2"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 40).bin" size="4939200" crc="7b2dadaf" sha1="5efa427a342504fd94349a612c2533c4ea6a9d6b"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 41).bin" size="13230000" crc="aeb3bac7" sha1="3009d9a631d6ceded059f40362f72aff2f2c0f68"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 42).bin" size="9878400" crc="b3c1574c" sha1="28b9f34c8103dab675f734b24989860187a97332"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 43).bin" size="2116800" crc="d99d95d9" sha1="594f5b601c622767cce9516b634d72b239ec0250"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 44).bin" size="3880800" crc="2857768f" sha1="6f75a48c61318eb60c908f2066d73c0dc411cb5c"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 45).bin" size="6879600" crc="b04a6a7e" sha1="29e70ee94dd72d85cf055c8ce29f9782c6b43361"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 46).bin" size="3880800" crc="55a5533f" sha1="2cce545b05c98ccdae401b34c53ee2f6817b1a03"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 47).bin" size="5644800" crc="ed18aed7" sha1="668e12bd591382bf83b88edfd431551d3211e6f4"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 48).bin" size="5468400" crc="5a728c16" sha1="d06e1ef5a8bfcf34abd8974c8762f16e82a0706c"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 49).bin" size="6350400" crc="54b6330a" sha1="7d1a94f9202fc27bd99509bfa3bb1d6bd7bc30a9"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 50).bin" size="1764000" crc="b6306af2" sha1="338074731ac4fb641be6ce63e97c8ca2df952bfb"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 51).bin" size="1411200" crc="6386b436" sha1="bffb67de18ed640a6ef9c3d3a213bfc73b303ce9"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 52).bin" size="17816400" crc="4a5ab967" sha1="0818e97b8f96f675ccd76ffba3a02c8fcbe204b8"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 53).bin" size="20638800" crc="3a9cff5e" sha1="0e3260dbb7a3e08ee2f735d0240c2128a8b42e2f"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 54).bin" size="8467200" crc="ceeae035" sha1="ecec2e11ea7c6c0b5cea01a9fddfbee20fe9b2c2"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 55).bin" size="17287200" crc="8ff1553c" sha1="2325f98d96532338faec2688fb54be226005add9"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 56).bin" size="7408800" crc="e141302b" sha1="0c5bd42cee6820017d871465157ed2aaa18bcc97"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 57).bin" size="21344400" crc="c9109649" sha1="e09ec870f41babc0db56cbf0b191e818de9b1390"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 58).bin" size="8643600" crc="1798cb9e" sha1="51143e80a272f802bcf7e9bb313a295ac09101be"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 59).bin" size="11466000" crc="c1e62618" sha1="466666e2e2fa1e197860022b706c70b496a75f73"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 60).bin" size="8643600" crc="058d0c40" sha1="45a2d06451dd743845b46222e1f18ac9efbd5383"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 61).bin" size="4410000" crc="18d6772a" sha1="94104f7519f59ad6c1fdb3a7770f510f73eaa8c3"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 62).bin" size="7938000" crc="d8dff326" sha1="c509d807641f4bb461d69e3406982defe0d96385"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 63).bin" size="1234800" crc="8aee4359" sha1="df0b04ba46413ee10a9013b9ce06d5d3ad2171e6"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 64).bin" size="1940400" crc="838744ea" sha1="df499e1cc6a1833b177ba2b83af8cc3840fbdd95"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 65).bin" size="3880800" crc="d86aaea5" sha1="739655b0daa349c420b6bdb09ec4f2dfd727698e"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 66).bin" size="4762800" crc="e7b4a6c5" sha1="166314035f71e81852638f9379659d7c3f58a349"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 67).bin" size="3528000" crc="bee4e2b5" sha1="07ae1b8cbe06370ad54ee1348e2e3853d74ce626"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 68).bin" size="4233600" crc="7af7ea94" sha1="f211fa772ef0e5b43777776365173ce3541044b7"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan) (Track 69).bin" size="4762800" crc="d886d260" sha1="51dcf2dc4c1975f9f2954210a55dcaa1a80e3b45"/>
+ <rom name="NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy (Japan).cue" size="10539" crc="1bec6955" sha1="f989a704e12b27d702f19a3a5d20d253ec4eb2e4"/>
-->
<description>NHK Eigo de Asobo Vol. 1 - Daitanken! Hotel Galaxy</description>
<year>1993</year>
@@ -9823,7 +10111,7 @@ User/save disks that can be created from the game itself are not included.
<info name="usage" value="Requires 2 MB RAM"/>
<part name="cdrom" interface="fmt_cdrom">
<diskarea name="cdrom">
- <disk name="nhk eigo de asobo vol. 1 (japan)" sha1="ee7667cbdfbd8e1ee0586861745b7e9ea5182164" />
+ <disk name="nhk eigo de asobo vol. 1 - daitanken hotel galaxy (japan)" sha1="ee7667cbdfbd8e1ee0586861745b7e9ea5182164" />
</diskarea>
</part>
</software>
@@ -9831,82 +10119,82 @@ User/save disks that can be created from the game itself are not included.
<software name="nhkeigo2">
<!--
Origin: redump.org
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 01).bin" size="105487200" crc="3e917fd7" sha1="d1102ca205b660bd09b220a99c070909bf7c6855"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 02).bin" size="8820000" crc="f0f34c31" sha1="980514f926eb57a853807f05204cdc734824a714"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 03).bin" size="4586400" crc="b4ef3dc9" sha1="49455b30f84690635c88ce60aaee7f37db32be34"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 04).bin" size="37749600" crc="65622717" sha1="371e73f3414b4b059aaf535d98cbcea2c6becd6a"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 05).bin" size="2822400" crc="16c10ba0" sha1="23e5852151f41c5ec1ff77d98447c0d3962f5efd"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 06).bin" size="7938000" crc="d8fa731e" sha1="d45557a8624ac5ab84fa76d51b00b64ffec9f2a1"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 07).bin" size="1058400" crc="e6ccd65f" sha1="e24fef9a985538da579cbe303ac23fb57271c7b6"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 08).bin" size="1058400" crc="273fa64f" sha1="4331bb7ca8164628352bb77b57396bb376aec43e"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 09).bin" size="1058400" crc="55d2e767" sha1="f13d16f645f198b59d2e2000b1d107215ffe9f39"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 10).bin" size="4410000" crc="be1a5e7b" sha1="ced1fa21fed44fb010dd7a5b0055ccbb80c9d26a"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 11).bin" size="4939200" crc="97a38c6a" sha1="edd62c80dbd127ba370f682660f25dc09fc6ee5d"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 12).bin" size="7408800" crc="d3b78f2f" sha1="bd087408726079d410d242af230a3ff6b3d3ebe9"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 13).bin" size="10407600" crc="2e6ee0af" sha1="47d7c13d34a081f408c8b92563a1bbaaca1a36d2"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 14).bin" size="7938000" crc="d0a1cfb8" sha1="c88b38f62fa3b8533a4a27728e59dac2a97da5fb"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 15).bin" size="7585200" crc="e38f99d0" sha1="23e6397d4e48cc69c8ff16716ad529c520596f81"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 16).bin" size="5997600" crc="5aa16911" sha1="61057ab1e800527b3db374f3a925043611fca6ec"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 17).bin" size="3528000" crc="cbec8543" sha1="95e7276754370a64a1e46ec02b96a5c17fcf492d"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 18).bin" size="2293200" crc="ca539fb7" sha1="1bdb5294434afd151392f79483b3fb5c64a200a8"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 19).bin" size="1940400" crc="5d371ca2" sha1="0569d7d870b7dc902fca1bfe7a2983933ea150c4"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 20).bin" size="1058400" crc="8e52ec5e" sha1="2912db4c80fd6502218a2834a8484abdddaa977f"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 21).bin" size="1411200" crc="aa1e8bb9" sha1="de32768b3885b39c45e19b2a596f724149abee36"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 22).bin" size="1411200" crc="24c0638a" sha1="d4d59aad3bec95ae6c75c30204516c5dd4ee7f26"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 23).bin" size="7761600" crc="96f40f18" sha1="8270faea321c3ca4b866fbddfe2ae29cb0107ff8"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 24).bin" size="1411200" crc="9c11a189" sha1="7e7242a51eac313238c693341db906550125af62"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 25).bin" size="1411200" crc="35b50acd" sha1="85c74db3a9a2be3dc8b7df0b2273441852304f28"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 26).bin" size="1411200" crc="a08eafc4" sha1="5b8c7fdf1512bd0c9aeb0cf4819dd73339b09fb9"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 27).bin" size="1411200" crc="f6fcac01" sha1="1717bcbaadced5e3b454a77e8f93ea2937901e36"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 28).bin" size="1411200" crc="aecd621c" sha1="fd75bd4fcb6cb92158624254e3679cc933fcd58a"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 29).bin" size="1411200" crc="3f4e610d" sha1="6d0fcc50b6afeaf67af8b39ad15dbec650767c8e"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 30).bin" size="1411200" crc="3bec5ff4" sha1="6a553da2533afb28d9f87162bcddcf869425e680"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 31).bin" size="1411200" crc="8087095b" sha1="7e08b3f458ecf07405f79a039cb47d8bbb01d995"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 32).bin" size="1411200" crc="808f23e8" sha1="942e01449a4b3ec5c5f4d950ac90ed203ee0b94b"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 33).bin" size="1587600" crc="8d113f02" sha1="ff776d5b0dbbd585a20661f517a3784b7260e776"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 34).bin" size="1411200" crc="588a31d5" sha1="c34a45593bbfb3d91cd0a25b5f63331be172ca37"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 35).bin" size="1411200" crc="a31e48ba" sha1="ab80ea00ecdd705a31c96c9c1b0278ab8e46947d"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 36).bin" size="1411200" crc="7de3a375" sha1="7118ed3cb3bbd435beb2a25e14a8eba26706b344"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 37).bin" size="1411200" crc="063d851d" sha1="fd4f7d19aaa6586b184b5a4746c8777c45f28858"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 38).bin" size="1411200" crc="857e0a72" sha1="fa7471df0594005920ccd878b6b57ac7f8e84f2e"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 39).bin" size="1411200" crc="502e8d51" sha1="7547eabf631e07d130e25d7354dec089b97f9841"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 40).bin" size="1764000" crc="07a345e4" sha1="9fbf6de1bf903208df1ac81cc364f4ad157359f1"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 41).bin" size="1587600" crc="0a65b3a8" sha1="56d2e3e6e76b41c1c0f89a537b0e920f7c0ccd08"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 42).bin" size="1234800" crc="854f6a88" sha1="50b98b081a096d678e85bccf0ecf0fad965c717a"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 43).bin" size="1587600" crc="c672d5ff" sha1="6952c170e60924444b28fbb165abc25d7918b01f"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 44).bin" size="1058400" crc="2b19a0d7" sha1="f1c39117474ccee17fd36afdba404843196829a4"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 45).bin" size="1058400" crc="171a05bc" sha1="d80b37c49d83972d1a2bb0e4a9e50ac9d410d4f8"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 46).bin" size="1058400" crc="4d2cda67" sha1="a0c04bedf4854d1f52e4eb499ce13f262d6c1290"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 47).bin" size="1058400" crc="ce0e8e8d" sha1="f5682dd5271bce4280bd407e88b65063572ace4a"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 48).bin" size="1058400" crc="d6e9f797" sha1="b6bf601b73019b94b5ac0f9e88dda7d9356f5299"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 49).bin" size="4410000" crc="d32538c6" sha1="230773999dca8aff3099391a4af6d333bccc8c66"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 50).bin" size="1764000" crc="14c78a30" sha1="6b1c85739f3710c49e41afb893bc40183528d6c8"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 51).bin" size="6526800" crc="badb95e0" sha1="06fabfcca828218481a08c662fdc9bff13fe9463"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 52).bin" size="7056000" crc="7673a3d5" sha1="39b26f657fe7a161b2e910a7fddb359ef695c538"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 53).bin" size="1411200" crc="10492a28" sha1="45cc55839aefa05c6d809db092743eab5936e312"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 54).bin" size="9702000" crc="4a614e49" sha1="724d6f5d66e5c10119dadf32365541556563c05d"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 55).bin" size="7408800" crc="04c8a7b5" sha1="b28d2a872ea98d7756198c1fb4455a7907190c2e"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 56).bin" size="7056000" crc="f73d5aa4" sha1="ba92ccca7adb38b0e80bfe6b73263c04fb6bb43b"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 57).bin" size="6703200" crc="6c7b1140" sha1="0460663ea04b9cf16a0048d45147ba171cccf1cf"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 58).bin" size="6174000" crc="ba1ec1d0" sha1="44ddb7a5426e98793a6165d5cc998e3022e813b0"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 59).bin" size="5821200" crc="8010d878" sha1="560398ff3145a863c4deba9d9100fdd5279cd82c"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 60).bin" size="7056000" crc="9a539341" sha1="fbf1071b8f96c31a6edde42148ae096b95c65085"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 61).bin" size="5468400" crc="c298f15f" sha1="30e3c3452388345e80cd5ad68735c9283b337f8c"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 62).bin" size="35632800" crc="55e7885d" sha1="607e18e9132d238fdcf3e0ca06a8f3549a73840b"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 63).bin" size="1234800" crc="a4676df3" sha1="31a11b2966d49c3c6be985e16ee111978ec37d9c"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan) (Track 64).bin" size="5115600" crc="4c98c047" sha1="426fa91f9b9e941c1fbf9d9eb9ed5c5e83224897"/>
- <rom name="NHK Eigo de Asobo Vol. 2 (Japan).cue" size="8110" crc="6b243018" sha1="104a034e7bccf9266db5ddef5e31f0cfb91f4121"/>
- -->
- <description>NHK Eigo de Asobo Vol. 2</description>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 01).bin" size="105487200" crc="3e917fd7" sha1="d1102ca205b660bd09b220a99c070909bf7c6855"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 02).bin" size="8820000" crc="f0f34c31" sha1="980514f926eb57a853807f05204cdc734824a714"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 03).bin" size="4586400" crc="b4ef3dc9" sha1="49455b30f84690635c88ce60aaee7f37db32be34"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 04).bin" size="37749600" crc="65622717" sha1="371e73f3414b4b059aaf535d98cbcea2c6becd6a"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 05).bin" size="2822400" crc="16c10ba0" sha1="23e5852151f41c5ec1ff77d98447c0d3962f5efd"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 06).bin" size="7938000" crc="d8fa731e" sha1="d45557a8624ac5ab84fa76d51b00b64ffec9f2a1"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 07).bin" size="1058400" crc="e6ccd65f" sha1="e24fef9a985538da579cbe303ac23fb57271c7b6"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 08).bin" size="1058400" crc="273fa64f" sha1="4331bb7ca8164628352bb77b57396bb376aec43e"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 09).bin" size="1058400" crc="55d2e767" sha1="f13d16f645f198b59d2e2000b1d107215ffe9f39"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 10).bin" size="4410000" crc="be1a5e7b" sha1="ced1fa21fed44fb010dd7a5b0055ccbb80c9d26a"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 11).bin" size="4939200" crc="97a38c6a" sha1="edd62c80dbd127ba370f682660f25dc09fc6ee5d"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 12).bin" size="7408800" crc="d3b78f2f" sha1="bd087408726079d410d242af230a3ff6b3d3ebe9"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 13).bin" size="10407600" crc="2e6ee0af" sha1="47d7c13d34a081f408c8b92563a1bbaaca1a36d2"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 14).bin" size="7938000" crc="d0a1cfb8" sha1="c88b38f62fa3b8533a4a27728e59dac2a97da5fb"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 15).bin" size="7585200" crc="e38f99d0" sha1="23e6397d4e48cc69c8ff16716ad529c520596f81"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 16).bin" size="5997600" crc="5aa16911" sha1="61057ab1e800527b3db374f3a925043611fca6ec"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 17).bin" size="3528000" crc="cbec8543" sha1="95e7276754370a64a1e46ec02b96a5c17fcf492d"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 18).bin" size="2293200" crc="ca539fb7" sha1="1bdb5294434afd151392f79483b3fb5c64a200a8"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 19).bin" size="1940400" crc="5d371ca2" sha1="0569d7d870b7dc902fca1bfe7a2983933ea150c4"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 20).bin" size="1058400" crc="8e52ec5e" sha1="2912db4c80fd6502218a2834a8484abdddaa977f"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 21).bin" size="1411200" crc="aa1e8bb9" sha1="de32768b3885b39c45e19b2a596f724149abee36"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 22).bin" size="1411200" crc="24c0638a" sha1="d4d59aad3bec95ae6c75c30204516c5dd4ee7f26"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 23).bin" size="7761600" crc="96f40f18" sha1="8270faea321c3ca4b866fbddfe2ae29cb0107ff8"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 24).bin" size="1411200" crc="9c11a189" sha1="7e7242a51eac313238c693341db906550125af62"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 25).bin" size="1411200" crc="35b50acd" sha1="85c74db3a9a2be3dc8b7df0b2273441852304f28"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 26).bin" size="1411200" crc="a08eafc4" sha1="5b8c7fdf1512bd0c9aeb0cf4819dd73339b09fb9"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 27).bin" size="1411200" crc="f6fcac01" sha1="1717bcbaadced5e3b454a77e8f93ea2937901e36"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 28).bin" size="1411200" crc="aecd621c" sha1="fd75bd4fcb6cb92158624254e3679cc933fcd58a"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 29).bin" size="1411200" crc="3f4e610d" sha1="6d0fcc50b6afeaf67af8b39ad15dbec650767c8e"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 30).bin" size="1411200" crc="3bec5ff4" sha1="6a553da2533afb28d9f87162bcddcf869425e680"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 31).bin" size="1411200" crc="8087095b" sha1="7e08b3f458ecf07405f79a039cb47d8bbb01d995"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 32).bin" size="1411200" crc="808f23e8" sha1="942e01449a4b3ec5c5f4d950ac90ed203ee0b94b"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 33).bin" size="1587600" crc="8d113f02" sha1="ff776d5b0dbbd585a20661f517a3784b7260e776"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 34).bin" size="1411200" crc="588a31d5" sha1="c34a45593bbfb3d91cd0a25b5f63331be172ca37"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 35).bin" size="1411200" crc="a31e48ba" sha1="ab80ea00ecdd705a31c96c9c1b0278ab8e46947d"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 36).bin" size="1411200" crc="7de3a375" sha1="7118ed3cb3bbd435beb2a25e14a8eba26706b344"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 37).bin" size="1411200" crc="063d851d" sha1="fd4f7d19aaa6586b184b5a4746c8777c45f28858"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 38).bin" size="1411200" crc="857e0a72" sha1="fa7471df0594005920ccd878b6b57ac7f8e84f2e"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 39).bin" size="1411200" crc="502e8d51" sha1="7547eabf631e07d130e25d7354dec089b97f9841"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 40).bin" size="1764000" crc="07a345e4" sha1="9fbf6de1bf903208df1ac81cc364f4ad157359f1"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 41).bin" size="1587600" crc="0a65b3a8" sha1="56d2e3e6e76b41c1c0f89a537b0e920f7c0ccd08"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 42).bin" size="1234800" crc="854f6a88" sha1="50b98b081a096d678e85bccf0ecf0fad965c717a"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 43).bin" size="1587600" crc="c672d5ff" sha1="6952c170e60924444b28fbb165abc25d7918b01f"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 44).bin" size="1058400" crc="2b19a0d7" sha1="f1c39117474ccee17fd36afdba404843196829a4"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 45).bin" size="1058400" crc="171a05bc" sha1="d80b37c49d83972d1a2bb0e4a9e50ac9d410d4f8"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 46).bin" size="1058400" crc="4d2cda67" sha1="a0c04bedf4854d1f52e4eb499ce13f262d6c1290"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 47).bin" size="1058400" crc="ce0e8e8d" sha1="f5682dd5271bce4280bd407e88b65063572ace4a"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 48).bin" size="1058400" crc="d6e9f797" sha1="b6bf601b73019b94b5ac0f9e88dda7d9356f5299"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 49).bin" size="4410000" crc="d32538c6" sha1="230773999dca8aff3099391a4af6d333bccc8c66"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 50).bin" size="1764000" crc="14c78a30" sha1="6b1c85739f3710c49e41afb893bc40183528d6c8"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 51).bin" size="6526800" crc="badb95e0" sha1="06fabfcca828218481a08c662fdc9bff13fe9463"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 52).bin" size="7056000" crc="7673a3d5" sha1="39b26f657fe7a161b2e910a7fddb359ef695c538"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 53).bin" size="1411200" crc="10492a28" sha1="45cc55839aefa05c6d809db092743eab5936e312"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 54).bin" size="9702000" crc="4a614e49" sha1="724d6f5d66e5c10119dadf32365541556563c05d"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 55).bin" size="7408800" crc="04c8a7b5" sha1="b28d2a872ea98d7756198c1fb4455a7907190c2e"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 56).bin" size="7056000" crc="f73d5aa4" sha1="ba92ccca7adb38b0e80bfe6b73263c04fb6bb43b"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 57).bin" size="6703200" crc="6c7b1140" sha1="0460663ea04b9cf16a0048d45147ba171cccf1cf"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 58).bin" size="6174000" crc="ba1ec1d0" sha1="44ddb7a5426e98793a6165d5cc998e3022e813b0"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 59).bin" size="5821200" crc="8010d878" sha1="560398ff3145a863c4deba9d9100fdd5279cd82c"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 60).bin" size="7056000" crc="9a539341" sha1="fbf1071b8f96c31a6edde42148ae096b95c65085"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 61).bin" size="5468400" crc="c298f15f" sha1="30e3c3452388345e80cd5ad68735c9283b337f8c"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 62).bin" size="35632800" crc="55e7885d" sha1="607e18e9132d238fdcf3e0ca06a8f3549a73840b"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 63).bin" size="1234800" crc="a4676df3" sha1="31a11b2966d49c3c6be985e16ee111978ec37d9c"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan) (Track 64).bin" size="5115600" crc="4c98c047" sha1="426fa91f9b9e941c1fbf9d9eb9ed5c5e83224897"/>
+ <rom name="NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken (Japan).cue" size="9582" crc="be6d870a" sha1="1323490f25db42f71ec276f1873d27e5000f8488"/>
+ -->
+ <description>NHK Eigo de Asobo Vol. 2 - Bernard no Daibouken</description>
<year>1993</year>
<publisher>富士通 (Fujitsu)</publisher>
<info name="serial" value="HME-206 / A2760461"/>
- <info name="alt_title" value="NHK英語であそぼ 2" />
+ <info name="alt_title" value="NHK英語であそぼ 2 ~ベルナールの大ぼうけん~" />
<info name="release" value="199312xx" />
<info name="usage" value="Requires 2 MB RAM"/>
<part name="cdrom" interface="fmt_cdrom">
<diskarea name="cdrom">
- <disk name="nhk eigo de asobo vol. 2 (japan)" sha1="7a0772ba3044392a6df13eeeedb14ea6b1005f21" />
+ <disk name="nhk eigo de asobo vol. 2 - bernard no daibouken (japan)" sha1="7a0772ba3044392a6df13eeeedb14ea6b1005f21" />
</diskarea>
</part>
</software>
@@ -10082,6 +10370,86 @@ User/save disks that can be created from the game itself are not included.
</part>
</software>
+ <software name="nihonris">
+ <!--
+ Origin: redump.org
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 01).bin" size="105494256" crc="d12afc6f" sha1="a3e5399bd4684fd83ac0e9919da6f6e3b22dd440"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 02).bin" size="7683984" crc="56cab59b" sha1="a5552688fb2663f054fd734f5b4f4973566d2e41"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 03).bin" size="6750240" crc="7fa6c0f6" sha1="cbbeffdf249eea5b4851f1a78bb832171bd5940c"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 04).bin" size="6479760" crc="dcfb952f" sha1="44f64e65d1503b5477fe34db5f99b70bdeea5341"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 05).bin" size="7213584" crc="a120b133" sha1="4b52a2fa9a252f14072e5f182cfb867db73a55e9"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 06).bin" size="6938400" crc="5d7f94cd" sha1="59ee2103f3057275f98ddeddacba7e6141b736bd"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 07).bin" size="7239456" crc="e8f9f31e" sha1="1152383be6ccf9d8fd5579863c14f232249ff516"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 08).bin" size="5985840" crc="35455b63" sha1="b09d9af1d177c4bf24f56110cdf9074e58e1c18f"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 09).bin" size="7632240" crc="7a1a4985" sha1="59d2b7c81eac284d10d464366cd16a8a1a231646"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 10).bin" size="7890960" crc="8e159584" sha1="ca801aee9ca08b1b512ccad28504e68d65a26c68"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 11).bin" size="8055600" crc="8b9b967c" sha1="f6ffa7c2c3805b5f344ef025fa25eeffe1a1f24f"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 12).bin" size="7267680" crc="1b1ac158" sha1="55c703c10494c30dca27f970ec624e187572472d"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 13).bin" size="8925840" crc="11701307" sha1="af726353d42abf0875852e575154b20af5905bb4"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 14).bin" size="8808240" crc="d279acc3" sha1="63eb072dbf746288a1a12925eb6b7aa44ff81713"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 15).bin" size="7977984" crc="c922deda" sha1="bc973219d9a29583e69af8d6dbc6d94961257705"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 16).bin" size="6867840" crc="6451b676" sha1="7b5a317d0a97861619681332796f3e3d2af00f41"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 17).bin" size="7451136" crc="58c275e1" sha1="3761f32b189503ff97e7cf2830c02cc6ec0f62de"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 18).bin" size="8314320" crc="d4261a94" sha1="66b0986f021b3d3e4b2247018f0e870f36ab668b"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 19).bin" size="6820800" crc="9be91639" sha1="4260c83d760a05eb426c56a21de231cc117e438b"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 20).bin" size="7749840" crc="34bafa84" sha1="2d580bafc14f0b4942e6937b1bee7da0a0f654c8"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 21).bin" size="4873344" crc="7ef5ef74" sha1="1db414d2f2ca26967911aa786a7bb4dcf888081f"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 22).bin" size="8180256" crc="9822be6f" sha1="3991590c2d7182d15d7f18d825bcf8a081e9de64"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 23).bin" size="8495424" crc="fcd0b7f1" sha1="078722502058d97195a69a7d397e8d32f27a2b28"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 24).bin" size="7514640" crc="3b95af83" sha1="07b5e317705452015e579a1765138ee61845797d"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 25).bin" size="6816096" crc="52a284d4" sha1="4fc8ceb3b4ac9ba71fb0edb8228c4b60945f51ad"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 26).bin" size="6072864" crc="ce5bfc8a" sha1="907c4d425e6a017be16a3252b2a8c7359a0c7215"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 27).bin" size="8427216" crc="e5b5260c" sha1="75590fa0df94efcfeb234c15b74180edff327f1f"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 28).bin" size="9443280" crc="2e97a600" sha1="23dc969a355c84471420508e70fb756989b7d201"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 29).bin" size="7502880" crc="d2f9ef11" sha1="fa905835d57deeb44fbc5cb8bea93edb54b2569d"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 30).bin" size="8361360" crc="b62bcb4a" sha1="694f72ea5586788f39dbaadc496ed19303a73c7d"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 31).bin" size="7625184" crc="3dc9db00" sha1="cb31088d16f7df2b43b75b9ed2d6c95eb1dc9b61"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 32).bin" size="6216336" crc="7b37b0f9" sha1="7dd3bbd2e59b292adec773bdbd1ea627aeb93cec"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 33).bin" size="9184560" crc="70981892" sha1="204fd50c62c77aff43356f878c9668e7f9ef3a51"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 34).bin" size="5543664" crc="e038fb17" sha1="616275a857476700dc7e4d6b00cab9951a5ef297"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 35).bin" size="7533456" crc="83cbe3fe" sha1="ea84dec18f414bc14d839fe4f2c5fa76dc935366"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 36).bin" size="7401744" crc="16478b69" sha1="322c5aabc8ea0730fc9304645f0d47fb08e7f50d"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 37).bin" size="7008960" crc="f85dbf6c" sha1="14e45308e4e7c89f17d6192bd99351aa78775899"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 38).bin" size="7686336" crc="3f3c5143" sha1="da6d2d913f6444d23428bab8ec2807529d7310f3"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 39).bin" size="8213184" crc="04487ecb" sha1="87771c997d880ebb06549ab5904b94326fb489b5"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 40).bin" size="7580496" crc="ba31ac27" sha1="bdd232b1fe30a1138ae8e37699c3811d03b4a17a"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 41).bin" size="7742784" crc="d5596b05" sha1="f4d6d99f605cd7d02eac7cd96115548b70185f81"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 42).bin" size="8584800" crc="6e9e0503" sha1="438fad6142f0eed16fcfff76e5c9d8a34e4849df"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 43).bin" size="8184960" crc="1662c585" sha1="92d585d273450b866e8eaf96cddb774b26e88149"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 44).bin" size="6769056" crc="9ecb450b" sha1="79186781ceebc36a4ddf0d26c269a2335aaca822"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 45).bin" size="8366064" crc="d8c9e404" sha1="bb6fca0d9f2d6ea77c0f885dc954c821a3209d0a"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 46).bin" size="8097936" crc="0cb834ac" sha1="8e9157b16171e49c1ffeaa50ec3674ab8b473863"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 47).bin" size="9419760" crc="84d31d9a" sha1="1344b7b74bc4e6d4a44e4d8672e735c552fbe1cb"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 48).bin" size="7079520" crc="fda95ac1" sha1="9acbbb7de8f5f9185c576563fd684879e78a7e21"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 49).bin" size="6197520" crc="8b0dd186" sha1="b745ee7935e355897649029d16bf3f53639604b3"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 50).bin" size="7890960" crc="e105acf3" sha1="d1531b56fc1bbac4a7af0cc0d39e9bef6c2fa92d"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 51).bin" size="7738080" crc="05dbc3ad" sha1="2b0d720e8b6f4471b29b3bcb34692233ffc06629"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 52).bin" size="6072864" crc="251db906" sha1="488d14591f46e228f0d9ffc0dc496737c0077847"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 53).bin" size="9497376" crc="d6b7f63f" sha1="def16ec8b3d6ffb49162dc653db36950b09c9c2a"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 54).bin" size="7667520" crc="b7964f15" sha1="a61bf8e9299458b687b5c2ab71a028f687da5bd6"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 55).bin" size="7879200" crc="848b8d34" sha1="731eb6748dc58cbfe3be0554757240b2ac2b73b3"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 56).bin" size="6609120" crc="f07c62e4" sha1="2d10c61e64b359b813d5599d73f26ece056179a8"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 57).bin" size="7942704" crc="3901d450" sha1="fd9700c22db02cf3be8dfeb8a376fcbcdd0a3550"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 58).bin" size="6968976" crc="645e4dd7" sha1="d73b1a09141dd6529ed918b285e29712451ad09d"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 59).bin" size="8812944" crc="986c0e49" sha1="655073f2d797bf0b0fb7fb1cfbd077d9c871254a"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 60).bin" size="7714560" crc="d9f11f49" sha1="e463ac807c312a188bd4f2345210fe801c66aaa9"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 61).bin" size="7291200" crc="94aa52d5" sha1="ad72fb3b30f9a0903b05210fc1b9b6afe91b15e1"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan) (Track 62).bin" size="8255520" crc="33a4089b" sha1="df493718de84f6452f5913eed070e7e16de4636b"/>
+ <rom name="Nihon no Rekishi - Ishin-hen - Kurofune Raikou (Japan).cue" size="7840" crc="636acff9" sha1="be94d66771a1068c43817c45af66c8a6b43e1221"/>
+ -->
+ <description>Nihon no Rekishi - Ishin-hen - Kurofune Raikou</description>
+ <year>1990</year>
+ <publisher>CRI</publisher>
+ <info name="alt_title" value="日本の歴史 維新編 ~黒船来航~" />
+ <info name="release" value="199008xx" />
+ <info name="usage" value="Requires 2 MB RAM"/>
+ <part name="cdrom" interface="fmt_cdrom">
+ <diskarea name="cdrom">
+ <disk name="nihon no rekishi - ishin-hen - kurofune raikou (japan)" sha1="399338fde2608f98b8fd14ae41cbe72009fe5b95" />
+ </diskarea>
+ </part>
+ </software>
+
<software name="nihonrki">
<!--
Origin: Neo Kobe Collection
@@ -10182,7 +10550,7 @@ User/save disks that can be created from the game itself are not included.
<rom name="Nihon no Rekishi - Kodai-hen - Nihon Tanjou (Japan) (Track 73).bin" size="11009712" crc="49d37230" sha1="6e29e7a54e7df9b2458a396235f05615fe01ca9d"/>
<rom name="Nihon no Rekishi - Kodai-hen - Nihon Tanjou (Japan).cue" size="9030" crc="75c7321c" sha1="778875ac2a965fb7c6d152a866639530835cb30e"/>
-->
- <description>Nihon no Rekishi - Kodai-hen</description>
+ <description>Nihon no Rekishi - Kodai-hen - Nihon Tanjou</description>
<year>1990</year>
<publisher>CRI</publisher>
<info name="serial" value="HMB-127 / T2016-005"/>
@@ -10773,6 +11141,26 @@ User/save disks that can be created from the game itself are not included.
</part>
</software>
+ <software name="phobos">
+ <!--
+ Origin: redump.org
+ <rom name="Phobos (Japan).bin" size="109074000" crc="7d8a4ad6" sha1="04848bc5e17007c4422dab14934eef29dd50accc"/>
+ <rom name="Phobos (Japan).cue" size="80" crc="d4091963" sha1="b6ee8af14fbd01ad236d5523acb554ddd6141542"/>
+ -->
+ <description>Phobos</description>
+ <year>1995</year>
+ <publisher>姫屋ソフト (Himeya Soft)</publisher>
+ <info name="alt_title" value="フォボス" />
+ <info name="serial" value="HMS-0002"/>
+ <info name="release" value="199508xx" />
+ <info name="usage" value="Requires 2 MB RAM"/>
+ <part name="cdrom" interface="fmt_cdrom">
+ <diskarea name="cdrom">
+ <disk name="phobos (japan)" sha1="3ef091b02523c332e6c423b02618022a01b8a46b" />
+ </diskarea>
+ </part>
+ </software>
+
<software name="pleasure">
<!--
Origin: redump.org / r09
@@ -10889,11 +11277,9 @@ User/save disks that can be created from the game itself are not included.
<software name="populous">
<!--
- Origin: Neo Kobe Collection
- <rom name="Populous &amp; The Promised Lands.ccd" size="768" crc="5186640f" sha1="f1487992f0c7ef1154468791b67813359f9d2b15"/>
- <rom name="Populous &amp; The Promised Lands.cue" size="93" crc="363e2845" sha1="cdc9250932ae9e121e3e6554bfdeff4dbf7c7ad2"/>
- <rom name="Populous &amp; The Promised Lands.img" size="11816448" crc="7dbb4b5d" sha1="15dbb35d8f513b5309b04d497218a62bbc35a7f5"/>
- <rom name="Populous &amp; The Promised Lands.sub" size="482304" crc="246862d1" sha1="7886b7a398d5e0f1385e242a7952071187c634cc"/>
+ Origin: redump.org
+ <rom name="Populous &amp; The Promised Lands (Japan).bin" size="11818800" crc="e01cec99" sha1="b3c5cdd2478f2793f10cd38464941d6dfc6d7abd"/>
+ <rom name="Populous &amp; The Promised Lands (Japan).cue" size="126" crc="41219b98" sha1="6acaceb805e5575af1933613dc752e83a929193d"/>
-->
<description>Populous &amp; The Promised Lands</description>
<year>1990</year>
@@ -10903,7 +11289,7 @@ User/save disks that can be created from the game itself are not included.
<info name="release" value="199007xx" />
<part name="cdrom" interface="fmt_cdrom">
<diskarea name="cdrom">
- <disk name="populous &amp; the promised lands" sha1="5e32724bd10a871146b38ecf1991b3f42f91f984" />
+ <disk name="populous &amp; the promised lands (japan)" sha1="e08575a9fe2333a5a473324e48104cad6bbb6f10" />
</diskarea>
</part>
</software>
@@ -12603,13 +12989,39 @@ User/save disks that can be created from the game itself are not included.
<software name="simearth">
<!--
- Origin: Neo Kobe Collection
- <rom name="SimEarth.ccd" size="6113" crc="4f860edf" sha1="198af871373683d7af8eb221ae81cae78762d398"/>
- <rom name="SimEarth.cue" size="1184" crc="1e1aa2c4" sha1="987b81262a49ae2dece42ce1e11ce510f0416ad7"/>
- <rom name="SimEarth.img" size="372521520" crc="20c3d4b4" sha1="87a87ac199a3f0e2b551bedf656182a56bddbfdd"/>
- <rom name="SimEarth.sub" size="15204960" crc="8168beff" sha1="a3ed345ca53f58e0267c6689f79eb2a64d04ed03"/>
- -->
- <description>SimEarth</description>
+ Origin: redump.org
+ <rom name="SimEarth - The Living Planet (Japan) (Track 01).bin" size="20286000" crc="2c03c1fd" sha1="f4b34db329ea14c96ae2e333272aa3fae434b7a8"/>
+ <rom name="SimEarth - The Living Planet (Japan) (Track 02).bin" size="12594960" crc="e6a14806" sha1="b716b663357b8c03c81baf2b4b341df22b2d68f7"/>
+ <rom name="SimEarth - The Living Planet (Japan) (Track 03).bin" size="6291600" crc="fa791846" sha1="a85b1372cb12c10c1f5afc6c8463e82169159cae"/>
+ <rom name="SimEarth - The Living Planet (Japan) (Track 04).bin" size="15534960" crc="58e6c405" sha1="e51e5e4dc9b38c253675aafe20af0dce1a8cddfa"/>
+ <rom name="SimEarth - The Living Planet (Japan) (Track 05).bin" size="21803040" crc="8d1a3e72" sha1="ee960a62db79bb5346c56e914cad3a3d238bc43f"/>
+ <rom name="SimEarth - The Living Planet (Japan) (Track 06).bin" size="20521200" crc="b5810d5a" sha1="ebf6338bd7d1bf282bf47bdefcd68a41c7737c81"/>
+ <rom name="SimEarth - The Living Planet (Japan) (Track 07).bin" size="15758400" crc="8b5ee9e6" sha1="80992289fa495c485022c588179564d026f4c800"/>
+ <rom name="SimEarth - The Living Planet (Japan) (Track 08).bin" size="13888560" crc="7a83a8c2" sha1="d90037a41c2bba5121fe0c7e6b56a909c97decf8"/>
+ <rom name="SimEarth - The Living Planet (Japan) (Track 09).bin" size="7173600" crc="e1fbd819" sha1="8d1e740331c385f62571fd47caf70b939e1a1773"/>
+ <rom name="SimEarth - The Living Planet (Japan) (Track 10).bin" size="9055200" crc="d615f788" sha1="2722d169d285ec18cc94fcc518773165141fbb15"/>
+ <rom name="SimEarth - The Living Planet (Japan) (Track 11).bin" size="13253520" crc="1d70bd4e" sha1="101ed4d0bf6a20909ed442dd862600080eb55586"/>
+ <rom name="SimEarth - The Living Planet (Japan) (Track 12).bin" size="14794080" crc="8a9e6f2a" sha1="2bd0845d19b45f624c6687d7d3134968b65f4617"/>
+ <rom name="SimEarth - The Living Planet (Japan) (Track 13).bin" size="22155840" crc="afdf1f7b" sha1="ad499ea3feda3fb933bb02d4b68d7a686f994c9d"/>
+ <rom name="SimEarth - The Living Planet (Japan) (Track 14).bin" size="9008160" crc="880dbaad" sha1="9956bad631dc00ffab3954752c30e39c440d9eb2"/>
+ <rom name="SimEarth - The Living Planet (Japan) (Track 15).bin" size="14511840" crc="a101aa69" sha1="c92edf55444b10f6c4547d87a6478c88c96fda52"/>
+ <rom name="SimEarth - The Living Planet (Japan) (Track 16).bin" size="3269280" crc="30f4422b" sha1="bef613e049f25d4e147cd34df184377bafc4f968"/>
+ <rom name="SimEarth - The Living Planet (Japan) (Track 17).bin" size="8267280" crc="412fa033" sha1="6b2dbced27a5b2f9df844bf4bd92b1d7d5146418"/>
+ <rom name="SimEarth - The Living Planet (Japan) (Track 18).bin" size="17393040" crc="cdbe203e" sha1="cde2b2fabde77d165d4f518fbdbc96cf45e06cfc"/>
+ <rom name="SimEarth - The Living Planet (Japan) (Track 19).bin" size="9901920" crc="df0b5914" sha1="579992c40735584119120afe1120baabf8023bb8"/>
+ <rom name="SimEarth - The Living Planet (Japan) (Track 20).bin" size="20356560" crc="ea0d59b6" sha1="028a130bbf48f03ff1db27540b7fc2a26be038f5"/>
+ <rom name="SimEarth - The Living Planet (Japan) (Track 21).bin" size="9408000" crc="f85f4f7b" sha1="acde9fd6d7b60de1f9641193c3e292d38a03ccae"/>
+ <rom name="SimEarth - The Living Planet (Japan) (Track 22).bin" size="12183360" crc="383d0c9b" sha1="741e110a976429f7eebd1c2ad7730c7ccf707bf5"/>
+ <rom name="SimEarth - The Living Planet (Japan) (Track 23).bin" size="16181760" crc="456b9480" sha1="3e0482c4126087633479f9d01d84673e1ef07248"/>
+ <rom name="SimEarth - The Living Planet (Japan) (Track 24).bin" size="15958320" crc="a125ec07" sha1="ae1790f597729a64d58bb48c5e2db3f23763afce"/>
+ <rom name="SimEarth - The Living Planet (Japan) (Track 25).bin" size="7890960" crc="cdf39fab" sha1="8f9580f2f4f57a6e1fbb16dbffbe98a321d7d112"/>
+ <rom name="SimEarth - The Living Planet (Japan) (Track 26).bin" size="6221040" crc="eeece809" sha1="50102585c1455fff3e256d8516efdd23f7605b36"/>
+ <rom name="SimEarth - The Living Planet (Japan) (Track 27).bin" size="11019120" crc="e1119b05" sha1="d150c6314965ac6f030aa921f056748785bd8a64"/>
+ <rom name="SimEarth - The Living Planet (Japan) (Track 28).bin" size="10960320" crc="3b59465e" sha1="70375f03e00aafdd6c3417e29f094854271af1b5"/>
+ <rom name="SimEarth - The Living Planet (Japan) (Track 29).bin" size="6879600" crc="c49cec7a" sha1="118058985a1b6c376b5fd6df6a369fac9a52e419"/>
+ <rom name="SimEarth - The Living Planet (Japan).cue" size="3781" crc="93045407" sha1="6be41a9772dcc19039feba30e7390594ae3628ad"/>
+ -->
+ <description>SimEarth - The Living Planet</description>
<year>1991</year>
<publisher>イマジニア (Imagineer)</publisher>
<info name="serial" value="HMC-141"/>
@@ -12618,7 +13030,7 @@ User/save disks that can be created from the game itself are not included.
<info name="usage" value="Requires 2 MB RAM"/>
<part name="cdrom" interface="fmt_cdrom">
<diskarea name="cdrom">
- <disk name="simearth" sha1="e14823bae0e649313d2dec35d889e06d2a42986a" />
+ <disk name="simearth - the living planet (japan)" sha1="619b96b4f860e1d10de9f82c6ceac3544377540a" />
</diskarea>
</part>
</software>
@@ -14413,27 +14825,23 @@ User/save disks that can be created from the game itself are not included.
<software name="tuntroll">
<!--
- Origin: Neo Kobe Collection
- <rom name="Tunnels and Trolls.mdf" size="176929200" crc="5f61e6c3" sha1="12f1c1c6a718d9837a2e8d09f6d1c971d9062e03"/>
- <rom name="Tunnels and Trolls.mds" size="1550" crc="6d577287" sha1="ff70c805befbbc024f8dfa4595b12109c40fb5fc"/>
-
- *after conversion with IsoBuster+EAC *
- <rom name="track01.bin" size="20286000" crc="c2414a55" sha1="8a889a9d14f8509bd592f145efbbcf825af3a5c1"/>
- <rom name="track02.bin" size="19404000" crc="dfaf532f" sha1="45b19968f41500a58c0a49e2cb930c14ebaba057"/>
- <rom name="track03.bin" size="28047600" crc="88189cc0" sha1="35c497395900fdf29f45dc0ab564cebd3014bc0a"/>
- <rom name="track04.bin" size="12171600" crc="b2e4193a" sha1="e104286ecac9e986c6445ab013bbf8ad066ab35b"/>
- <rom name="track05.bin" size="9525600" crc="b6d6d389" sha1="280e2d5d44dcfdef33ea8a657ca8a85c445afb68"/>
- <rom name="track06.bin" size="17287200" crc="a178227c" sha1="31c3006059aa40e5f63a059e0b83fcbef37321b1"/>
- <rom name="track07.bin" size="20991600" crc="f9a6bff7" sha1="7a3ebdea92b0a61ee77028a83a6fe6d6bc01f15e"/>
- <rom name="track08.bin" size="8290800" crc="80f1b504" sha1="b390db22f6c64fa256995a089a54d9dce9fa6460"/>
- <rom name="track09.bin" size="8643600" crc="d5f63b96" sha1="bf051374dc14bc6ca929ddb9e5c3688615788751"/>
- <rom name="track10.bin" size="3175200" crc="5f1dcbe5" sha1="866ca8b0849507227d67012ddae39b0e9c439a9d"/>
- <rom name="track11.bin" size="13230000" crc="79959a32" sha1="a119b7e25fee2e97f8af96cbf0d2d2a9bb378d9a"/>
- <rom name="track12.bin" size="9349200" crc="4ada562f" sha1="aaa443c92a747e323ee9d772126372da37904558"/>
- <rom name="track13.bin" size="6879600" crc="c2191ed4" sha1="7bf96bff35197f435dc5f248f538097073cd06db"/>
- <rom name="tunnels and trolls.cue" size="1710" crc="a7fbc735" sha1="32aa1fe7d45d852f53ac99a8906296677d22faa9"/>
- -->
- <description>Tunnels and Trolls - Khazan no Senshi-tachi</description>
+ Origin: redump.org
+ <rom name="Tunnels &amp; Trolls - Crusaders of Khazan (Japan) (Track 01).bin" size="9702000" crc="e9592b1f" sha1="12fe8f3653d6634d205937160152495f53a5b4fd"/>
+ <rom name="Tunnels &amp; Trolls - Crusaders of Khazan (Japan) (Track 02).bin" size="28929600" crc="c80ea9e1" sha1="7f5d9d3e7d066e44e00a776164cb736557dbb0d4"/>
+ <rom name="Tunnels &amp; Trolls - Crusaders of Khazan (Japan) (Track 03).bin" size="28400400" crc="4d695ce6" sha1="7d4a717db68ec0a453f78f111d140b5906d37caa"/>
+ <rom name="Tunnels &amp; Trolls - Crusaders of Khazan (Japan) (Track 04).bin" size="12171600" crc="10269ad4" sha1="852a14cfdbd581e92bbf23295730f22bd7606589"/>
+ <rom name="Tunnels &amp; Trolls - Crusaders of Khazan (Japan) (Track 05).bin" size="9878400" crc="938b3d01" sha1="c008735555eb22d2767724ffe07be801e5eb55a2"/>
+ <rom name="Tunnels &amp; Trolls - Crusaders of Khazan (Japan) (Track 06).bin" size="17110800" crc="47bcec2f" sha1="d098c05e8747533d4d7df1d6abc6dc6bb0c6fb4b"/>
+ <rom name="Tunnels &amp; Trolls - Crusaders of Khazan (Japan) (Track 07).bin" size="20638800" crc="96a2c441" sha1="ebfe5d5453aa990e8740c899f8a5b70b205aabb4"/>
+ <rom name="Tunnels &amp; Trolls - Crusaders of Khazan (Japan) (Track 08).bin" size="8467200" crc="0bacc3cc" sha1="bba2a10df18a524280f173b5223a8ad2ae57ccac"/>
+ <rom name="Tunnels &amp; Trolls - Crusaders of Khazan (Japan) (Track 09).bin" size="8643600" crc="e92d9c81" sha1="685762abc6a8774a687536a93387143ebf403f15"/>
+ <rom name="Tunnels &amp; Trolls - Crusaders of Khazan (Japan) (Track 10).bin" size="3528000" crc="26da0753" sha1="03d345da449a8aee9c55630b65345ebe7a6a5084"/>
+ <rom name="Tunnels &amp; Trolls - Crusaders of Khazan (Japan) (Track 11).bin" size="13230000" crc="a646d8a2" sha1="0faa87ac0a7a9f2dc05881b81873f308c8b6ff43"/>
+ <rom name="Tunnels &amp; Trolls - Crusaders of Khazan (Japan) (Track 12).bin" size="9172800" crc="6fe02270" sha1="00920d4aab7716c3f224751cbc3f863e37cce9f7"/>
+ <rom name="Tunnels &amp; Trolls - Crusaders of Khazan (Japan) (Track 13).bin" size="7408800" crc="2d6dfc54" sha1="e882c93c6639116f01aab8317f3aefdd603deb27"/>
+ <rom name="Tunnels &amp; Trolls - Crusaders of Khazan (Japan).cue" size="1815" crc="0877d1eb" sha1="7fd7aa51c6634e6081fece496240b3d854f66403"/>
+ -->
+ <description>Tunnels &amp; Trolls - Crusaders of Khazan</description>
<year>1990</year>
<publisher>スタークラフト (Starcraft)</publisher>
<info name="serial" value="HMB-196"/>
@@ -14442,7 +14850,7 @@ User/save disks that can be created from the game itself are not included.
<info name="usage" value="Requires 2 MB RAM"/>
<part name="cdrom" interface="fmt_cdrom">
<diskarea name="cdrom">
- <disk name="tunnels and trolls" sha1="098e7889db2229e69fe4ebbb9af0728154c94658" />
+ <disk name="tunnels &amp; trolls - crusaders of khazan (japan)" sha1="98ac021e4c4e1549692fa9395a388a2e4efc864f" />
</diskarea>
</part>
</software>
diff --git a/hash/msx1_cart.xml b/hash/msx1_cart.xml
index 53fe52b1d71..59cce75f4a6 100644
--- a/hash/msx1_cart.xml
+++ b/hash/msx1_cart.xml
@@ -6469,6 +6469,19 @@ kept for now until finding out what those bytes affect...
</part>
</software>
+ <software name="ink">
+ <description>Ink - Exxon Surfing</description>
+ <year>2006</year>
+ <publisher>Matra</publisher>
+ <part name="cart" interface="msx_cart">
+ <feature name="slot" value="ink" />
+ <dataarea name="rom" size="524288">
+ <!-- Am29F040B flashrom dump -->
+ <rom name="ink.bin" size="524288" crc="23049642" sha1="4d74d3bad55a9b1deb88b81bd4ad5165383508d5" offset="0" />
+ </dataarea>
+ </part>
+ </software>
+
<software name="theseus">
<description>Theseus - Iligks I (Jpn)</description>
<year>1984</year>
diff --git a/scripts/src/bus.lua b/scripts/src/bus.lua
index 0130cf9e40e..0fb2ad140d9 100644
--- a/scripts/src/bus.lua
+++ b/scripts/src/bus.lua
@@ -909,6 +909,8 @@ if (BUSES["COLECO_CART"]~=null) then
files {
MAME_DIR .. "src/devices/bus/coleco/cartridge/exp.cpp",
MAME_DIR .. "src/devices/bus/coleco/cartridge/exp.h",
+ MAME_DIR .. "src/devices/bus/coleco/cartridge/megacart.cpp",
+ MAME_DIR .. "src/devices/bus/coleco/cartridge/megacart.h",
MAME_DIR .. "src/devices/bus/coleco/cartridge/std.cpp",
MAME_DIR .. "src/devices/bus/coleco/cartridge/std.h",
MAME_DIR .. "src/devices/bus/coleco/cartridge/xin1.h",
@@ -1608,6 +1610,8 @@ if (BUSES["MSX_SLOT"]~=null) then
MAME_DIR .. "src/devices/bus/msx_cart/hfox.h",
MAME_DIR .. "src/devices/bus/msx_cart/holy_quran.cpp",
MAME_DIR .. "src/devices/bus/msx_cart/holy_quran.h",
+ MAME_DIR .. "src/devices/bus/msx_cart/ink.cpp",
+ MAME_DIR .. "src/devices/bus/msx_cart/ink.h",
MAME_DIR .. "src/devices/bus/msx_cart/konami.cpp",
MAME_DIR .. "src/devices/bus/msx_cart/konami.h",
MAME_DIR .. "src/devices/bus/msx_cart/korean.cpp",
diff --git a/scripts/src/cpu.lua b/scripts/src/cpu.lua
index 2f6ed7aabff..ea56fd2b1f7 100644
--- a/scripts/src/cpu.lua
+++ b/scripts/src/cpu.lua
@@ -2063,6 +2063,23 @@ if (CPUS["RSP"]~=null or _OPTIONS["with-tools"]) then
end
--------------------------------------------------
+-- Panasonic MN1880
+--@src/devices/cpu/mn1800/mn1880.h,CPUS["MN1880"] = true
+--------------------------------------------------
+
+if (CPUS["MN1880"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/cpu/mn1880/mn1880.cpp",
+ MAME_DIR .. "src/devices/cpu/mn1880/mn1880.h",
+ }
+end
+
+if (CPUS["MN1880"]~=null or _OPTIONS["with-tools"]) then
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/mn1880/mn1880d.cpp")
+ table.insert(disasm_files , MAME_DIR .. "src/devices/cpu/mn1880/mn1880d.h")
+end
+
+--------------------------------------------------
-- Panasonic MN10200
--@src/devices/cpu/mn10200/mn10200.h,CPUS["MN10200"] = true
--------------------------------------------------
diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua
index d605fab6068..8d31b543f9a 100644
--- a/scripts/target/mame/arcade.lua
+++ b/scripts/target/mame/arcade.lua
@@ -108,6 +108,7 @@ CPUS["SUPERFX"] = true
CPUS["Z8"] = true
CPUS["I8008"] = true
CPUS["SCMP"] = true
+--CPUS["MN1880"] = true
CPUS["MN10200"] = true
CPUS["COSMAC"] = true
CPUS["UNSP"] = true
diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua
index 1ed1bd1c464..e1c22a78722 100644
--- a/scripts/target/mame/mess.lua
+++ b/scripts/target/mame/mess.lua
@@ -109,6 +109,7 @@ CPUS["SUPERFX"] = true
CPUS["Z8"] = true
CPUS["I8008"] = true
CPUS["SCMP"] = true
+CPUS["MN1880"] = true
--CPUS["MN10200"] = true
CPUS["COSMAC"] = true
CPUS["UNSP"] = true
@@ -1256,6 +1257,7 @@ function linkProjects_mame_mess(_target, _subtarget)
"nokia",
"northstar",
"novag",
+ "novation",
"olivetti",
"olympia",
"omnibyte",
@@ -3079,6 +3081,12 @@ files {
MAME_DIR .. "src/mame/drivers/novag_supremo.cpp",
}
+createMESSProjects(_target, _subtarget, "novation")
+files {
+ MAME_DIR .. "src/mame/drivers/basssta.cpp",
+ MAME_DIR .. "src/mame/drivers/drumsta.cpp",
+}
+
createMESSProjects(_target, _subtarget, "olivetti")
files {
MAME_DIR .. "src/mame/drivers/m20.cpp",
@@ -4279,7 +4287,7 @@ files {
MAME_DIR .. "src/mame/drivers/cp1.cpp",
MAME_DIR .. "src/mame/drivers/cxhumax.cpp",
MAME_DIR .. "src/mame/includes/cxhumax.h",
- MAME_DIR .. "src/mame/drivers/czk80.cpp",
+ MAME_DIR .. "src/mame/drivers/ckz80.cpp",
MAME_DIR .. "src/mame/drivers/d400.cpp",
MAME_DIR .. "src/mame/drivers/d6800.cpp",
MAME_DIR .. "src/mame/drivers/d6809.cpp",
@@ -4488,6 +4496,7 @@ files {
MAME_DIR .. "src/mame/drivers/gs6809.cpp",
MAME_DIR .. "src/mame/drivers/gscpm.cpp",
MAME_DIR .. "src/mame/drivers/gsz80.cpp",
+ MAME_DIR .. "src/mame/drivers/ultim809.cpp",
}
end
diff --git a/src/devices/bus/bbc/tube/tube_80186.cpp b/src/devices/bus/bbc/tube/tube_80186.cpp
index 9621110e7ca..874a5b00013 100644
--- a/src/devices/bus/bbc/tube/tube_80186.cpp
+++ b/src/devices/bus/bbc/tube/tube_80186.cpp
@@ -66,7 +66,7 @@ ROM_END
void bbc_tube_80186_device::device_add_mconfig(machine_config &config)
{
- I80186(config, m_i80186, 20_MHz_XTAL / 2);
+ I80186(config, m_i80186, 20_MHz_XTAL);
m_i80186->set_addrmap(AS_PROGRAM, &bbc_tube_80186_device::tube_80186_mem);
m_i80186->set_addrmap(AS_IO, &bbc_tube_80186_device::tube_80186_io);
m_i80186->tmrout0_handler().set_inputline(m_i80186, INPUT_LINE_HALT).invert();
diff --git a/src/devices/bus/coleco/cartridge/exp.cpp b/src/devices/bus/coleco/cartridge/exp.cpp
index 0cc3e3db90e..27c8bdff12c 100644
--- a/src/devices/bus/coleco/cartridge/exp.cpp
+++ b/src/devices/bus/coleco/cartridge/exp.cpp
@@ -109,6 +109,12 @@ std::string colecovision_cartridge_slot_device::get_default_card_software(get_de
uint32_t length = hook.image_file()->size();
if (length == 0x100000 || length == 0x200000)
return software_get_default_slot("xin1");
+
+ if (length > 0x8000)
+ {
+ // Assume roms longer than 32K are megacarts.
+ return software_get_default_slot("megacart");
+ }
}
return software_get_default_slot("standard");
}
@@ -118,12 +124,11 @@ std::string colecovision_cartridge_slot_device::get_default_card_software(get_de
// bd_r - cartridge data read
//-------------------------------------------------
+
uint8_t colecovision_cartridge_slot_device::bd_r(offs_t offset, uint8_t data, int _8000, int _a000, int _c000, int _e000)
{
- if (m_card != nullptr)
- {
- data = m_card->bd_r(offset, data, _8000, _a000, _c000, _e000);
- }
+ if (m_card)
+ data = m_card->bd_r(offset , data, _8000, _a000, _c000, _e000);
return data;
}
@@ -133,12 +138,14 @@ uint8_t colecovision_cartridge_slot_device::bd_r(offs_t offset, uint8_t data, in
// SLOT_INTERFACE( colecovision_cartridges )
//-------------------------------------------------
+#include "megacart.h"
#include "std.h"
#include "xin1.h"
void colecovision_cartridges(device_slot_interface &device)
{
// the following need ROMs from the software list
+ device.option_add_internal("megacart", COLECOVISION_MEGACART);
device.option_add_internal("standard", COLECOVISION_STANDARD);
device.option_add_internal("xin1", COLECOVISION_XIN1);
}
diff --git a/src/devices/bus/coleco/cartridge/megacart.cpp b/src/devices/bus/coleco/cartridge/megacart.cpp
new file mode 100644
index 00000000000..68b84af653b
--- /dev/null
+++ b/src/devices/bus/coleco/cartridge/megacart.cpp
@@ -0,0 +1,95 @@
+// license:BSD-3-Clause
+// copyright-holders:Mark/Space Inc.
+/**********************************************************************
+
+ ColecoVision MegaCart emulation
+
+**********************************************************************/
+
+#include "emu.h"
+#include "megacart.h"
+
+
+
+//**************************************************************************
+// DEVICE DEFINITIONS
+//**************************************************************************
+
+DEFINE_DEVICE_TYPE(COLECOVISION_MEGACART, colecovision_megacart_cartridge_device, "colecovision_megacart", "ColecoVision MegaCart")
+
+
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// colecovision_megacart_cartridge_device - constructor
+//-------------------------------------------------
+
+colecovision_megacart_cartridge_device::colecovision_megacart_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ device_t(mconfig, COLECOVISION_MEGACART, tag, owner, clock),
+ device_colecovision_cartridge_interface(mconfig, *this),
+ m_bankcount(0),
+ m_activebank(0)
+{
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void colecovision_megacart_cartridge_device::device_start()
+{
+ save_item(NAME(m_bankcount));
+ save_item(NAME(m_activebank));
+}
+
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+
+void colecovision_megacart_cartridge_device::device_reset()
+{
+ m_bankcount = m_rom_size >> 14;
+ m_activebank = 0;
+}
+
+
+//-------------------------------------------------
+// read - cartridge data read
+//-------------------------------------------------
+
+uint8_t colecovision_megacart_cartridge_device::bd_r(offs_t offset, uint8_t data, int _8000, int _a000, int _c000, int _e000)
+{
+ if (!_8000 || !_a000 || !_c000 || !_e000)
+ {
+ if (m_bankcount > 2)
+ {
+ // offset as passed to us is a delta from address 0x8000.
+
+ if (offset >= 0x7FC0)
+ {
+ // Reads within the final 64 bytes select which megacart bank is active.
+ m_activebank = offset & (m_bankcount - 1);
+ }
+
+ if (offset >= 0x4000)
+ {
+ // The offset is within the active megacart bank.
+ offset = (m_activebank << 14) + (offset - 0x4000);
+ }
+ else
+ {
+ // The offset is within the last bank.
+ offset = (m_bankcount << 14) + (offset - 0x4000);
+ }
+ }
+
+ data = m_rom[offset];
+ }
+
+ return data;
+}
diff --git a/src/devices/bus/coleco/cartridge/megacart.h b/src/devices/bus/coleco/cartridge/megacart.h
new file mode 100644
index 00000000000..6a0b73f5124
--- /dev/null
+++ b/src/devices/bus/coleco/cartridge/megacart.h
@@ -0,0 +1,49 @@
+// license:BSD-3-Clause
+// copyright-holders:Mark/Space Inc.
+/**********************************************************************
+
+ ColecoVision MegaCart emulation
+
+**********************************************************************/
+
+#ifndef MAME_BUS_COLECO_MEGACART_H
+#define MAME_BUS_COLECO_MEGACART_H
+
+#pragma once
+
+#include "exp.h"
+
+
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> colecovision_megacart_cartridge_device
+
+class colecovision_megacart_cartridge_device : public device_t,
+ public device_colecovision_cartridge_interface
+{
+public:
+ // construction/destruction
+ colecovision_megacart_cartridge_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+protected:
+ // device_t overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
+ // device_colecovision_cartridge_interface overrides
+ virtual uint8_t bd_r(offs_t offset, uint8_t data, int _8000, int _a000, int _c000, int _e000) override;
+
+private:
+ uint32_t m_bankcount;
+ uint32_t m_activebank;
+};
+
+
+// device type definition
+DECLARE_DEVICE_TYPE(COLECOVISION_MEGACART, colecovision_megacart_cartridge_device)
+
+
+#endif // MAME_BUS_COLECO_MEGACART_H
diff --git a/src/devices/bus/coleco/cartridge/xin1.cpp b/src/devices/bus/coleco/cartridge/xin1.cpp
index 140d2132ee4..954c4a6e483 100644
--- a/src/devices/bus/coleco/cartridge/xin1.cpp
+++ b/src/devices/bus/coleco/cartridge/xin1.cpp
@@ -41,6 +41,7 @@ colecovision_xin1_cartridge_device::colecovision_xin1_cartridge_device(const mac
void colecovision_xin1_cartridge_device::device_start()
{
+ save_item(NAME(m_current_offset));
}
diff --git a/src/devices/bus/hp_hil/hlebase.cpp b/src/devices/bus/hp_hil/hlebase.cpp
index c7b121dcb44..dc849d9f65b 100644
--- a/src/devices/bus/hp_hil/hlebase.cpp
+++ b/src/devices/bus/hp_hil/hlebase.cpp
@@ -141,6 +141,12 @@ bool hle_device_base::hil_write(uint16_t *pdata)
return true;
break;
+ case HPHIL_DKA:
+ case HPHIL_EK1:
+ case HPHIL_EK2:
+ hil_typematic(data);
+ break;
+
default:
LOG("command %02X unknown\n", data);
break;
diff --git a/src/devices/bus/hp_hil/hlebase.h b/src/devices/bus/hp_hil/hlebase.h
index b5cbfa84bef..ebffc3455b2 100644
--- a/src/devices/bus/hp_hil/hlebase.h
+++ b/src/devices/bus/hp_hil/hlebase.h
@@ -30,6 +30,7 @@ protected:
// device_hp_hil_interface overrides
virtual bool hil_write(uint16_t *data) override;
virtual void hil_idd() = 0;
+ virtual void hil_typematic(uint8_t command) {};
virtual int hil_poll() = 0;
private:
diff --git a/src/devices/bus/hp_hil/hlekbd.cpp b/src/devices/bus/hp_hil/hlekbd.cpp
index 398579e7f08..b3709676d30 100644
--- a/src/devices/bus/hp_hil/hlekbd.cpp
+++ b/src/devices/bus/hp_hil/hlekbd.cpp
@@ -439,6 +439,7 @@ void hle_hp_itf_device::transmit_byte(uint8_t byte)
hle_hp_ipc_device::hle_hp_ipc_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock)
: hle_device_base(mconfig, HP_IPC_HLE_KEYBOARD, tag, owner, clock)
, device_matrix_keyboard_interface(mconfig, *this, "COL1", "COL2", "COL3", "COL4", "COL5", "COL6", "COL7", "COL8", "COL9", "COL10", "COL11", "COL12", "COL13", "COL14", "COL15")
+ , m_modifiers(*this, "COL8")
{ }
void hle_hp_ipc_device::device_reset()
@@ -446,6 +447,9 @@ void hle_hp_ipc_device::device_reset()
m_fifo.clear();
reset_key_state();
start_processing(attotime::from_hz(1'200));
+ typematic_stop();
+ m_typematic = false;
+ m_typematic_rate = 0;
}
void hle_hp_ipc_device::hil_idd()
@@ -454,17 +458,66 @@ void hle_hp_ipc_device::hil_idd()
m_hp_hil_mlc->hil_write(m_device_id16 | 0);
}
+void hle_hp_ipc_device::hil_typematic(uint8_t command)
+{
+ switch (command)
+ {
+ case HPHIL_DKA:
+ typematic_stop();
+ m_typematic = false;
+ m_typematic_rate = 0;
+ break;
+
+ case HPHIL_EK1:
+ m_typematic = true;
+ m_typematic_rate = 30;
+ break;
+
+ case HPHIL_EK2:
+ m_typematic = true;
+ m_typematic_rate = 60;
+ break;
+ }
+}
+
void hle_hp_ipc_device::key_make(uint8_t row, uint8_t column)
{
transmit_byte((((row + 1) ^ 8) << 4) + (column << 1));
+ if (m_typematic)
+ typematic_start(row, column, typematic_delay(), typematic_period());
}
+void hle_hp_ipc_device::key_repeat(uint8_t row, uint8_t column)
+{
+ transmit_byte((((row + 1) ^ 8) << 4) + (column << 1));
+}
void hle_hp_ipc_device::key_break(uint8_t row, uint8_t column)
{
transmit_byte((((row + 1) ^ 8) << 4) + (column << 1) + 1);
+ typematic_stop();
}
+void hle_hp_ipc_device::will_scan_row(u8 row)
+{
+ u16 const modifiers(m_modifiers->read() & 0x7c);
+ if (modifiers != m_last_modifiers && m_typematic)
+ typematic_restart(typematic_delay(), typematic_period());
+
+ m_last_modifiers = modifiers;
+}
+
+attotime hle_hp_ipc_device::typematic_delay() const
+{
+ return attotime::from_msec(250); // XXX
+}
+
+attotime hle_hp_ipc_device::typematic_period() const
+{
+ return attotime::from_hz(m_typematic_rate);
+}
+
+
int hle_hp_ipc_device::hil_poll()
{
int frames = 1;
diff --git a/src/devices/bus/hp_hil/hlekbd.h b/src/devices/bus/hp_hil/hlekbd.h
index 25df57da3b3..c9bb59faaad 100644
--- a/src/devices/bus/hp_hil/hlekbd.h
+++ b/src/devices/bus/hp_hil/hlekbd.h
@@ -24,12 +24,25 @@ public:
// device_matrix_keyboard_interface overrides
virtual void key_make(uint8_t row, uint8_t column) override;
+ virtual void key_repeat(uint8_t row, uint8_t column) override;
virtual void key_break(uint8_t row, uint8_t column) override;
virtual int hil_poll() override;
virtual void hil_idd() override;
+ virtual void hil_typematic(uint8_t command) override;
+
+ required_ioport m_modifiers;
+
private:
+ virtual void will_scan_row(u8 row) override;
+
util::fifo<uint8_t, 8> m_fifo;
void transmit_byte(uint8_t byte);
+ attotime typematic_delay() const;
+ attotime typematic_period() const;
+
+ u16 m_last_modifiers;
+ bool m_typematic;
+ int m_typematic_rate;
};
class hle_hp_itf_device
diff --git a/src/devices/bus/interpro/sr/gt.cpp b/src/devices/bus/interpro/sr/gt.cpp
index a01017fe2ac..a5411ce7c19 100644
--- a/src/devices/bus/interpro/sr/gt.cpp
+++ b/src/devices/bus/interpro/sr/gt.cpp
@@ -506,6 +506,7 @@ gt_device_base::gt_device_base(const machine_config &mconfig, device_type type,
, m_vram(*this, "vram%u", 0)
, m_mram(*this, "mram%u", 0)
, m_bpu(*this, "bpu%u", 0)
+ , m_control(0)
, m_double_buffered(double_buffered)
, m_masked_reads(masked_reads)
{
diff --git a/src/devices/bus/isa/3c503.cpp b/src/devices/bus/isa/3c503.cpp
index 71e783c5830..de7363ceb26 100644
--- a/src/devices/bus/isa/3c503.cpp
+++ b/src/devices/bus/isa/3c503.cpp
@@ -110,8 +110,7 @@ void el2_3c503_device::dack_w(int line, uint8_t data) {
uint8_t el2_3c503_device::el2_3c503_loport_r(offs_t offset) {
switch((m_regs.ctrl >> 2) & 3) {
case 0:
- m_dp8390->dp8390_cs(CLEAR_LINE);
- return m_dp8390->dp8390_r(offset);
+ return m_dp8390->cs_read(offset);
case 1:
return m_prom[offset];
case 2:
@@ -125,8 +124,7 @@ uint8_t el2_3c503_device::el2_3c503_loport_r(offs_t offset) {
void el2_3c503_device::el2_3c503_loport_w(offs_t offset, uint8_t data) {
switch((m_regs.ctrl >> 2) & 3) {
case 0:
- m_dp8390->dp8390_cs(CLEAR_LINE);
- return m_dp8390->dp8390_w(offset, data);
+ return m_dp8390->cs_write(offset, data);
case 1:
case 2:
logerror("3c503: invalid attempt to write to prom\n");
diff --git a/src/devices/bus/isa/eis_sad8852.cpp b/src/devices/bus/isa/eis_sad8852.cpp
index 8908831350a..d8b1fec4d87 100644
--- a/src/devices/bus/isa/eis_sad8852.cpp
+++ b/src/devices/bus/isa/eis_sad8852.cpp
@@ -201,7 +201,7 @@ ioport_constructor isa16_sad8852_device::device_input_ports() const
//-------------------------------------------------
void isa16_sad8852_device::device_add_mconfig(machine_config &config)
{
- i80188_cpu_device &cpu(I80188(config, I80188_TAG, XTAL(12'000'000) / 2)); // Chip revision is 6 MHz
+ i80188_cpu_device &cpu(I80188(config, I80188_TAG, XTAL(12'000'000))); // Chip revision is 6 MHz
cpu.set_addrmap(AS_PROGRAM, &isa16_sad8852_device::sad8852_mem);
cpu.set_addrmap(AS_IO, &isa16_sad8852_device::sad8852_io);
diff --git a/src/devices/bus/isa/ne1000.cpp b/src/devices/bus/isa/ne1000.cpp
index 86e0f9b7afe..d2234098c34 100644
--- a/src/devices/bus/isa/ne1000.cpp
+++ b/src/devices/bus/isa/ne1000.cpp
@@ -41,13 +41,11 @@ void ne1000_device::device_reset() {
uint8_t ne1000_device::ne1000_port_r(offs_t offset) {
if(offset < 16) {
- m_dp8390->dp8390_cs(CLEAR_LINE);
- return m_dp8390->dp8390_r(offset);
+ return m_dp8390->cs_read(offset);
}
switch(offset) {
case 16:
- m_dp8390->dp8390_cs(ASSERT_LINE);
- return m_dp8390->dp8390_r(offset);
+ return m_dp8390->remote_read();
case 31:
m_dp8390->dp8390_reset(CLEAR_LINE);
return 0;
@@ -59,14 +57,12 @@ uint8_t ne1000_device::ne1000_port_r(offs_t offset) {
void ne1000_device::ne1000_port_w(offs_t offset, uint8_t data) {
if(offset < 16) {
- m_dp8390->dp8390_cs(CLEAR_LINE);
- m_dp8390->dp8390_w(offset, data);
+ m_dp8390->cs_write(offset, data);
return;
}
switch(offset) {
case 16:
- m_dp8390->dp8390_cs(ASSERT_LINE);
- m_dp8390->dp8390_w(offset, data);
+ m_dp8390->remote_write(data);
return;
case 31:
m_dp8390->dp8390_reset(ASSERT_LINE);
diff --git a/src/devices/bus/isa/ne2000.cpp b/src/devices/bus/isa/ne2000.cpp
index 17c8466ce50..3fc60df6b21 100644
--- a/src/devices/bus/isa/ne2000.cpp
+++ b/src/devices/bus/isa/ne2000.cpp
@@ -42,15 +42,13 @@ void ne2000_device::device_reset() {
READ16_MEMBER(ne2000_device::ne2000_port_r) {
offset <<= 1;
if(offset < 16) {
- m_dp8390->dp8390_cs(CLEAR_LINE);
- return m_dp8390->dp8390_r(offset) |
- m_dp8390->dp8390_r(offset+1) << 8;
+ return m_dp8390->cs_read(offset) |
+ m_dp8390->cs_read(offset+1) << 8;
}
if(mem_mask == 0xff00) offset++;
switch(offset) {
case 16:
- m_dp8390->dp8390_cs(ASSERT_LINE);
- return m_dp8390->dp8390_r(offset);
+ return m_dp8390->remote_read();
case 31:
m_dp8390->dp8390_reset(CLEAR_LINE);
return 0;
@@ -63,20 +61,18 @@ READ16_MEMBER(ne2000_device::ne2000_port_r) {
WRITE16_MEMBER(ne2000_device::ne2000_port_w) {
offset <<= 1;
if(offset < 16) {
- m_dp8390->dp8390_cs(CLEAR_LINE);
if(mem_mask == 0xff00) {
data >>= 8;
offset++;
}
- m_dp8390->dp8390_w(offset, data & 0xff);
- if(mem_mask == 0xffff) m_dp8390->dp8390_w(offset+1, data>>8);
+ m_dp8390->cs_write(offset, data & 0xff);
+ if(mem_mask == 0xffff) m_dp8390->cs_write(offset+1, data>>8);
return;
}
if(mem_mask == 0xff00) offset++;
switch(offset) {
case 16:
- m_dp8390->dp8390_cs(ASSERT_LINE);
- m_dp8390->dp8390_w(offset, data);
+ m_dp8390->remote_write(data);
return;
case 31:
m_dp8390->dp8390_reset(ASSERT_LINE);
diff --git a/src/devices/bus/lpci/pci.cpp b/src/devices/bus/lpci/pci.cpp
index 41591758c7d..bb9f8f4c113 100644
--- a/src/devices/bus/lpci/pci.cpp
+++ b/src/devices/bus/lpci/pci.cpp
@@ -104,7 +104,7 @@ pci_bus_device::pci_bus_device(const machine_config &mconfig, const char *tag, d
INLINE FUNCTIONS
***************************************************************************/
-READ32_MEMBER( pci_bus_device::read )
+uint32_t pci_bus_device::read(offs_t offset, uint32_t mem_mask)
{
uint32_t result = 0xffffffff;
int function, reg;
@@ -158,7 +158,7 @@ pci_bus_device *pci_bus_device::pci_search_bustree(int busnum, int devicenum, pc
-WRITE32_MEMBER( pci_bus_device::write )
+void pci_bus_device::write(offs_t offset, uint32_t data, uint32_t mem_mask)
{
offset %= 2;
@@ -206,25 +206,25 @@ WRITE32_MEMBER( pci_bus_device::write )
-READ64_MEMBER(pci_bus_device::read_64be)
+uint64_t pci_bus_device::read_64be(offs_t offset, uint64_t mem_mask)
{
uint64_t result = 0;
mem_mask = swapendian_int64(mem_mask);
if (ACCESSING_BITS_0_31)
- result |= (uint64_t)read(space, offset * 2 + 0, mem_mask >> 0) << 0;
+ result |= (uint64_t)read(offset * 2 + 0, mem_mask >> 0) << 0;
if (ACCESSING_BITS_32_63)
- result |= (uint64_t)read(space, offset * 2 + 1, mem_mask >> 32) << 32;
+ result |= (uint64_t)read(offset * 2 + 1, mem_mask >> 32) << 32;
return swapendian_int64(result);
}
-WRITE64_MEMBER(pci_bus_device::write_64be)
+void pci_bus_device::write_64be(offs_t offset, uint64_t data, uint64_t mem_mask)
{
data = swapendian_int64(data);
mem_mask = swapendian_int64(mem_mask);
if (ACCESSING_BITS_0_31)
- write(space, offset * 2 + 0, data >> 0, mem_mask >> 0);
+ write(offset * 2 + 0, data >> 0, mem_mask >> 0);
if (ACCESSING_BITS_32_63)
- write(space, offset * 2 + 1, data >> 32, mem_mask >> 32);
+ write(offset * 2 + 1, data >> 32, mem_mask >> 32);
}
diff --git a/src/devices/bus/lpci/pci.h b/src/devices/bus/lpci/pci.h
index 83606aec5da..81fe3b759e5 100644
--- a/src/devices/bus/lpci/pci.h
+++ b/src/devices/bus/lpci/pci.h
@@ -72,11 +72,11 @@ public:
// construction/destruction
pci_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- DECLARE_READ32_MEMBER( read );
- DECLARE_WRITE32_MEMBER( write );
+ uint32_t read(offs_t offset, uint32_t mem_mask = ~0);
+ void write(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
- DECLARE_READ64_MEMBER( read_64be );
- DECLARE_WRITE64_MEMBER( write_64be );
+ uint64_t read_64be(offs_t offset, uint64_t mem_mask = ~0);
+ void write_64be(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
void set_busnum(int busnum) { m_busnum = busnum; }
template <typename T>
diff --git a/src/devices/bus/msx_cart/cartridge.cpp b/src/devices/bus/msx_cart/cartridge.cpp
index 967732b3ae3..9c1e03a05fb 100644
--- a/src/devices/bus/msx_cart/cartridge.cpp
+++ b/src/devices/bus/msx_cart/cartridge.cpp
@@ -14,6 +14,7 @@
#include "halnote.h"
#include "hfox.h"
#include "holy_quran.h"
+#include "ink.h"
#include "konami.h"
#include "korean.h"
#include "majutsushi.h"
@@ -58,6 +59,7 @@ void msx_cart(device_slot_interface &device)
device.option_add_internal("msxaud_nms1205", MSX_CART_MSX_AUDIO_NMS1205);
device.option_add_internal("super_swangi", MSX_CART_SUPER_SWANGI);
device.option_add_internal("hfox", MSX_CART_HFOX);
+ device.option_add_internal("ink", MSX_CART_INK);
device.option_add_internal("keyboard_master", MSX_CART_KEYBOARD_MASTER);
device.option_add_internal("holy_quran", MSX_CART_HOLY_QURAN);
device.option_add_internal("dooly", MSX_CART_DOOLY);
diff --git a/src/devices/bus/msx_cart/ink.cpp b/src/devices/bus/msx_cart/ink.cpp
new file mode 100644
index 00000000000..e3053a5da7d
--- /dev/null
+++ b/src/devices/bus/msx_cart/ink.cpp
@@ -0,0 +1,55 @@
+// license:BSD-3-Clause
+// copyright-holders:hap
+/******************************************************************************
+
+Ink cartridge (Matra, 2006)
+
+48KB ROM data on an AMD Am29F040B(label scratched off), the game uses it
+for protection.
+
+******************************************************************************/
+
+#include "emu.h"
+#include "ink.h"
+
+DEFINE_DEVICE_TYPE(MSX_CART_INK, msx_cart_ink_device, "msx_cart_ink", "MSX Cartridge - Ink")
+
+
+msx_cart_ink_device::msx_cart_ink_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : device_t(mconfig, MSX_CART_INK, tag, owner, clock)
+ , msx_cart_interface(mconfig, *this)
+ , m_flash(*this, "flash")
+{
+}
+
+ROM_START( msx_cart_ink )
+ ROM_REGION(0x80000, "flash", ROMREGION_ERASEFF)
+ROM_END
+
+const tiny_rom_entry *msx_cart_ink_device::device_rom_region() const
+{
+ return ROM_NAME( msx_cart_ink );
+}
+
+void msx_cart_ink_device::device_add_mconfig(machine_config &config)
+{
+ AMD_29F040(config, m_flash);
+}
+
+void msx_cart_ink_device::initialize_cartridge()
+{
+ size_t size = get_rom_size() > 0x80000 ? 0x80000 : get_rom_size();
+ memcpy(memregion("flash")->base(), get_rom_base(), size);
+}
+
+
+uint8_t msx_cart_ink_device::read_cart(offs_t offset)
+{
+ return m_flash->read(offset);
+}
+
+void msx_cart_ink_device::write_cart(offs_t offset, uint8_t data)
+{
+ // /RD connects to flashrom A16-A18
+ m_flash->write(offset | 0x70000, data);
+}
diff --git a/src/devices/bus/msx_cart/ink.h b/src/devices/bus/msx_cart/ink.h
new file mode 100644
index 00000000000..933385c575d
--- /dev/null
+++ b/src/devices/bus/msx_cart/ink.h
@@ -0,0 +1,36 @@
+// license:BSD-3-Clause
+// copyright-holders:hap
+#ifndef MAME_BUS_MSX_CART_INK_H
+#define MAME_BUS_MSX_CART_INK_H
+
+#pragma once
+
+#include "bus/msx_cart/cartridge.h"
+#include "machine/intelfsh.h"
+
+
+DECLARE_DEVICE_TYPE(MSX_CART_INK, msx_cart_ink_device)
+
+
+class msx_cart_ink_device : public device_t, public msx_cart_interface
+{
+public:
+ msx_cart_ink_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ virtual void initialize_cartridge() override;
+
+ virtual uint8_t read_cart(offs_t offset) override;
+ virtual void write_cart(offs_t offset, uint8_t data) override;
+
+protected:
+ // device-level overrides
+ virtual void device_start() override { ; }
+ virtual void device_add_mconfig(machine_config &config) override;
+ virtual const tiny_rom_entry *device_rom_region() const override;
+
+private:
+ required_device<amd_29f040_device> m_flash;
+};
+
+
+#endif // MAME_BUS_MSX_CART_INK_H
diff --git a/src/devices/bus/nubus/nubus_asntmc3b.cpp b/src/devices/bus/nubus/nubus_asntmc3b.cpp
index a96dbcfc655..f68328ef45f 100644
--- a/src/devices/bus/nubus/nubus_asntmc3b.cpp
+++ b/src/devices/bus/nubus/nubus_asntmc3b.cpp
@@ -124,7 +124,6 @@ void nubus_mac8390_device::device_start()
void nubus_mac8390_device::device_reset()
{
m_dp83902->dp8390_reset(0);
- m_dp83902->dp8390_cs(0);
memcpy(m_prom, m_dp83902->get_mac(), 6);
}
@@ -145,13 +144,11 @@ WRITE32_MEMBER( nubus_mac8390_device::en_w )
if (mem_mask == 0xff000000)
{
// printf("%02x to 8390 @ %x\n", data>>24, 0xf-offset);
- m_dp83902->dp8390_w(0xf-offset, data>>24);
+ m_dp83902->cs_write(0xf-offset, data>>24);
}
else if (mem_mask == 0xffff0000)
{
- m_dp83902->dp8390_cs(1);
- m_dp83902->dp8390_w(0xf-offset, data>>16);
- m_dp83902->dp8390_cs(0);
+ m_dp83902->remote_write(data>>16);
}
else
{
@@ -163,13 +160,11 @@ READ32_MEMBER( nubus_mac8390_device::en_r )
{
if (mem_mask == 0xff000000)
{
- return (m_dp83902->dp8390_r(0xf-offset)<<24);
+ return (m_dp83902->cs_read(0xf-offset)<<24);
}
else if (mem_mask == 0xffff0000)
{
- m_dp83902->dp8390_cs(1);
- return (m_dp83902->dp8390_r(0xf-offset)<<16);
- m_dp83902->dp8390_cs(0);
+ return (m_dp83902->remote_read()<<16);
}
else
{
diff --git a/src/devices/bus/spectrum/beta128.cpp b/src/devices/bus/spectrum/beta128.cpp
index 85423618b79..e528fbc8154 100644
--- a/src/devices/bus/spectrum/beta128.cpp
+++ b/src/devices/bus/spectrum/beta128.cpp
@@ -11,6 +11,7 @@
is moved from 3cxx to 3dxx for example)
TODO:
+ original ROMs should have bits 0 and 7 swapped
there were many unofficial ROMs available for this, make them
available for use.
@@ -39,7 +40,8 @@ INPUT_PORTS_START(beta128)
PORT_START("SWITCH")
PORT_CONFNAME(0x03, 0x01, "System Switch") //PORT_CHANGED_MEMBER(DEVICE_SELF, spectrum_beta128_device, switch_changed, 0)
PORT_CONFSETTING(0x00, "Off (128)")
- PORT_CONFSETTING(0x01, "Normal (auto-boot)")
+ PORT_CONFSETTING(0x01, "Normal (auto-boot)") // also enable Beta-disk V3/V4 compatibility, auto-boot feature does not work on Spectrum128.
+ //PORT_CONFSETTING(0x02, "Reset") // TODO: implement RESET callback
INPUT_PORTS_END
//-------------------------------------------------
@@ -154,7 +156,7 @@ void spectrum_beta128_device::device_reset()
else
m_romcs = 0;
- m_128rom_bit = false;
+ m_128rom_bit = true;
}
//**************************************************************************
diff --git a/src/devices/bus/x68k/x68k_neptunex.cpp b/src/devices/bus/x68k/x68k_neptunex.cpp
index b1fd9d4542f..608acd4587c 100644
--- a/src/devices/bus/x68k/x68k_neptunex.cpp
+++ b/src/devices/bus/x68k/x68k_neptunex.cpp
@@ -62,17 +62,15 @@ READ16_MEMBER(x68k_neptune_device::x68k_neptune_port_r)
return 0xffff;
if(offset < 0x100+16)
{
- m_dp8390->dp8390_cs(CLEAR_LINE);
- return (m_dp8390->dp8390_r(offset) << 8)|
- m_dp8390->dp8390_r(offset+1);
+ return (m_dp8390->cs_read(offset) << 8)|
+ m_dp8390->cs_read(offset+1);
}
//if(mem_mask == 0x00ff) offset++;
switch(offset)
{
case 0x100+16:
- m_dp8390->dp8390_cs(ASSERT_LINE);
- data = m_dp8390->dp8390_r(offset);
- data = ((data & 0x00ff) << 8) | ((data & 0xff00) >> 8);
+ data = m_dp8390->remote_read();
+ data = swapendian_int16(data);
return data;
case 0x100+31:
m_dp8390->dp8390_reset(CLEAR_LINE);
@@ -89,23 +87,20 @@ WRITE16_MEMBER(x68k_neptune_device::x68k_neptune_port_w)
return;
if(offset < 0x100+16)
{
- m_dp8390->dp8390_cs(CLEAR_LINE);
if(mem_mask == 0x00ff)
{
data <<= 8;
offset++;
}
- m_dp8390->dp8390_w(offset, data>>8);
- if(mem_mask == 0xffff) m_dp8390->dp8390_w(offset+1, data & 0xff);
+ m_dp8390->cs_write(offset, data>>8);
+ if(mem_mask == 0xffff) m_dp8390->cs_write(offset+1, data & 0xff);
return;
}
//if(mem_mask == 0x00ff) offset++;
switch(offset)
{
case 0x100+16:
- m_dp8390->dp8390_cs(ASSERT_LINE);
- data = ((data & 0x00ff) << 8) | ((data & 0xff00) >> 8);
- m_dp8390->dp8390_w(offset, data);
+ m_dp8390->remote_write(swapendian_int16(data));
return;
case 0x100+31:
m_dp8390->dp8390_reset(ASSERT_LINE);
diff --git a/src/devices/cpu/mips/r4000.cpp b/src/devices/cpu/mips/r4000.cpp
index 2d51e7d0e8a..9d126121b1c 100644
--- a/src/devices/cpu/mips/r4000.cpp
+++ b/src/devices/cpu/mips/r4000.cpp
@@ -212,6 +212,8 @@ void r4000_base_device::device_reset()
m_ll_active = false;
m_bus_error = false;
+ m_cp0[CP0_Cause] = 0;
+
m_cp0[CP0_WatchLo] = 0;
m_cp0[CP0_WatchHi] = 0;
diff --git a/src/devices/cpu/mn1880/mn1880.cpp b/src/devices/cpu/mn1880/mn1880.cpp
new file mode 100644
index 00000000000..cf837a53d28
--- /dev/null
+++ b/src/devices/cpu/mn1880/mn1880.cpp
@@ -0,0 +1,114 @@
+// license:BSD-3-Clause
+// copyright-holders:AJR
+/***************************************************************************
+
+ Panasonic MN1880 family
+
+ Currently this device is just a stub with no actual execution core.
+
+***************************************************************************/
+
+#include "emu.h"
+#include "mn1880.h"
+#include "mn1880d.h"
+
+// device type definitions
+DEFINE_DEVICE_TYPE(MN1880, mn1880_device, "mn1880", "Panasonic MN1880")
+
+mn1880_device::mn1880_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
+ : cpu_device(mconfig, MN1880, tag, owner, clock)
+ , m_program_config("program", ENDIANNESS_BIG, 8, 16, 0)
+ , m_data_config("data", ENDIANNESS_LITTLE, 8, 16, 0)
+ , m_ip(0)
+ , m_fs(0)
+ , m_xp(0)
+ , m_yp(0)
+ , m_sp(0)
+ , m_lp(0)
+ , m_icount(0)
+{
+}
+
+std::unique_ptr<util::disasm_interface> mn1880_device::create_disassembler()
+{
+ return std::make_unique<mn1880_disassembler>();
+}
+
+device_memory_interface::space_config_vector mn1880_device::memory_space_config() const
+{
+ return space_config_vector {
+ std::make_pair(AS_PROGRAM, &m_program_config),
+ std::make_pair(AS_DATA, &m_data_config)
+ };
+}
+
+void mn1880_device::device_start()
+{
+ space(AS_PROGRAM).cache(m_cache);
+ space(AS_DATA).specific(m_data);
+ set_icountptr(m_icount);
+
+ state_add(MN1880_IP, "IP", m_ip);
+ state_add(STATE_GENPC, "GENPC", m_ip).noshow();
+ state_add(STATE_GENPCBASE, "CURPC", m_ip).noshow();
+ state_add(MN1880_FS, "FS", m_fs);
+ state_add(STATE_GENFLAGS, "FLAGS", m_fs).formatstr("%10s").noshow();
+ state_add(MN1880_XP, "XP", m_xp);
+ state_add(MN1880_YP, "YP", m_yp);
+ state_add<u8>(MN1880_XPL, "XPl",
+ [this] () { return m_xp & 0x00ff; },
+ [this] (u8 data) { m_xp = (m_xp & 0xff00) | data; }
+ ).noshow();
+ state_add<u8>(MN1880_XPH, "XPh",
+ [this] () { return (m_xp & 0xff00) >> 8; },
+ [this] (u8 data) { m_xp = (m_xp & 0x00ff) | u16(data) << 8; }
+ ).noshow();
+ state_add<u8>(MN1880_YPL, "YPl",
+ [this] () { return m_yp & 0x00ff; },
+ [this] (u8 data) { m_yp = (m_yp & 0xff00) | data; }
+ ).noshow();
+ state_add<u8>(MN1880_YPH, "YPh",
+ [this] () { return (m_yp & 0xff00) >> 8; },
+ [this] (u8 data) { m_yp = (m_yp & 0x00ff) | u16(data) << 8; }
+ ).noshow();
+ state_add(MN1880_SP, "SP", m_sp);
+ state_add(MN1880_LP, "LP", m_lp);
+
+ save_item(NAME(m_ip));
+ save_item(NAME(m_fs));
+ save_item(NAME(m_xp));
+ save_item(NAME(m_yp));
+ save_item(NAME(m_sp));
+ save_item(NAME(m_lp));
+}
+
+void mn1880_device::device_reset()
+{
+ m_fs &= 0xc0; // CF & ZF might or might not be cleared as well
+ m_sp = 0x0100;
+ // TBD: is LP also initialized at reset?
+}
+
+void mn1880_device::execute_run()
+{
+ m_ip = m_cache.read_word(0);
+
+ debugger_instruction_hook(m_ip);
+
+ m_icount = 0;
+}
+
+void mn1880_device::state_string_export(const device_state_entry &entry, std::string &str) const
+{
+ switch (entry.index())
+ {
+ case STATE_GENFLAGS:
+ str = string_format("%c%c%c%c:RC=%-2d",
+ BIT(m_fs, 7) ? 'C' : '.', // Carry flag
+ BIT(m_fs, 6) ? 'Z' : '.', // Zero flag
+ BIT(m_fs, 5) ? 'D' : '.', // Direct flag
+ BIT(m_fs, 4) ? 'A' : '.', // Auto-repeat flag
+ m_fs & 0x0f);
+ break;
+ }
+}
diff --git a/src/devices/cpu/mn1880/mn1880.h b/src/devices/cpu/mn1880/mn1880.h
new file mode 100644
index 00000000000..e4ab2427f46
--- /dev/null
+++ b/src/devices/cpu/mn1880/mn1880.h
@@ -0,0 +1,57 @@
+// license:BSD-3-Clause
+// copyright-holders:AJR
+
+#ifndef MAME_CPU_MN1880_MN1880_H
+#define MAME_CPU_MN1880_MN1880_H
+
+#pragma once
+
+class mn1880_device : public cpu_device
+{
+public:
+ mn1880_device(const machine_config &config, const char *tag, device_t *owner, u32 clock);
+
+ enum {
+ MN1880_IP, MN1880_FS,
+ MN1880_XP, MN1880_YP,
+ MN1880_XPL, MN1880_XPH, MN1880_YPL, MN1880_YPH,
+ MN1880_SP, MN1880_LP
+ };
+
+protected:
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
+ // device_execute_interface overrides
+ virtual void execute_run() override;
+
+ // device_disasm_interface overrides
+ virtual std::unique_ptr<util::disasm_interface> create_disassembler() override;
+
+ // device_memory_interface overrides
+ virtual space_config_vector memory_space_config() const override;
+
+ // device_state_interface overrides
+ virtual void state_string_export(const device_state_entry &entry, std::string &str) const override;
+
+private:
+ // address spaces
+ address_space_config m_program_config;
+ address_space_config m_data_config;
+ memory_access<16, 0, 0, ENDIANNESS_BIG>::cache m_cache;
+ memory_access<16, 0, 0, ENDIANNESS_LITTLE>::specific m_data;
+
+ // internal state
+ u16 m_ip;
+ u8 m_fs;
+ u16 m_xp;
+ u16 m_yp;
+ u16 m_sp;
+ u16 m_lp;
+ s32 m_icount;
+};
+
+DECLARE_DEVICE_TYPE(MN1880, mn1880_device)
+
+#endif // MAME_CPU_MN1880_MN1880_H
diff --git a/src/devices/cpu/mn1880/mn1880d.cpp b/src/devices/cpu/mn1880/mn1880d.cpp
new file mode 100644
index 00000000000..01ab3fac038
--- /dev/null
+++ b/src/devices/cpu/mn1880/mn1880d.cpp
@@ -0,0 +1,568 @@
+// license:BSD-3-Clause
+// copyright-holders:AJR
+/***************************************************************************
+
+ Panasonic MN1880 family disassembler
+
+ Due to the dearth of available documentation for the MN1880 series,
+ its instruction list has been reconstructed from MN1870 and MN1890
+ manuals, a (decidedly incomplete) list of MN1880 instructions not
+ provided in the MN1870 series, and a few educated guesses based on
+ reverse engineering (which include CALL XP actually being provided by
+ the MN1880 despite the MN1870 manual claiming it as exclusive).
+
+ The direct flag (bit 5 of the flag status register) is the key to
+ data memory addressing. When DF is cleared, the upper bytes of direct
+ addresses are zeroed; when DF is set, the upper address bytes are
+ taken from YPh for source operands and XPh for destination operands.
+
+ Note that the REP opcode causes a temporary mode switch, decoding
+ up to 15 extra sets of operands for the following instruction.
+ REPEAT_COMBINED attempts to process this correctly by treating the
+ full sequence as a single instruction, but this option has been
+ disabled by default because it results in some repeated instructions
+ being dozens of bytes long and the formatted output being difficult
+ to read anyway since MAME requires it all be on a single line.
+
+***************************************************************************/
+
+#include "emu.h"
+#include "mn1880d.h"
+
+#define REPEAT_COMBINED 0
+
+mn1880_disassembler::mn1880_disassembler(const char *const *inst_names)
+ : util::disasm_interface()
+ , m_inst_names(inst_names)
+{
+}
+
+mn1880_disassembler::mn1880_disassembler()
+ : mn1880_disassembler(s_inst_names)
+{
+}
+
+// MOV, RDTBL, MOV1 and MOV1N may also be known as MV, MVROM, MV1 and MV1CPL
+const char *const mn1880_disassembler::s_inst_names[256] =
+{
+ "nop", "rep", "rep", "rep", "rep", "rep", "rep", "rep",
+ "rep", "rep", "rep", "rep", "rep", "rep", "rep", "rep",
+ "clr", "clr", "clr", "clr", "clr", "clr", "clr", "clr",
+ "set", "set", "set", "set", "set", "set", "set", "set",
+ "t1bnz", "t1bnz", "t1bnz", "t1bnz", "t1bnz", "t1bnz", "t1bnz", "t1bnz",
+ "t1bz", "t1bz", "t1bz", "t1bz", "t1bz", "t1bz", "t1bz", "t1bz",
+ nullptr, "movl", nullptr, "movl", "movl", "movl", "mov", "mov",
+ "movl", "movl", "movl", "movl", "asl", "asl", "asr", "asr",
+ "dec", "dec", "not", "not", "cmpm", "cmpm", "xch4", "xch4",
+ "inc", "inc", "clr", "clr", "rol", "rol", "ror", "ror",
+ "cmpm", "div", "cmpm", "movda", "mov", "mov", "mov", "mov",
+ "xch", "mul", "xch", nullptr, "movl", "movl", "movl", "movl",
+ "cmp", "cmp", "cmp", "cmp", "and", "and", "and", "and",
+ "xor", "xor", "xor", "xor", "or", "or", "or", "or",
+ "subc", "subc", "subc", "subc", "subd", "subd", "subd", "subd",
+ "addc", "addc", "addc", "addc", "addd", "addd", "addd", "addd",
+ "skip", "bc", "bz", "ble", "cmpl", "clr", "cmpl", "clr",
+ "br", "bnc", "bnz", "bgt", nullptr, "set", nullptr, "set",
+ "call", "call", "call", "call", "call", "call", "call", "call",
+ "call", "call", "call", "call", "call", "call", "call", "call",
+ "br", "br", "br", "br", "br", "br", "br", "br",
+ "br", "br", "br", "br", "br", "br", "br", "br",
+ nullptr, "pop", nullptr, "pop", "pop", "pop", "pop", "pop",
+ nullptr, "push", nullptr, "push", "push", "push", "push", "push",
+ "subcl", "div", "subcl", nullptr, "xch", "xch", "xch", "xch",
+ "addcl", "mul", "addcl", nullptr, "mov", "mov", "mov", "mov",
+ "cmp", "cmp", "cmp", "cmp", "xch", "xch", nullptr, "xch",
+ "mov", "mov", "mov", "mov", "mov", "mov", "mov", "mov",
+ "loop", "rloop", "loop", "rloop", "dec", "inc", "dec", "inc",
+ "addr", "addr", "addr", "addr", "addr", "addr", "addr", "addr",
+ "cmpbne", "cmpbne", "mov1", "wait", "ret", "reti", "br", "call",
+ "cmpbe", "cmpbe", "mov1n", "push", "br", "call", "rdtbl", "pi"
+};
+
+mn1870_disassembler::mn1870_disassembler()
+ : mn1880_disassembler(s_inst_names)
+{
+}
+
+// STOP and HALT appear to be macros each implemented as a SET followed by a T1BNZ
+// (their machine language codes are given as 19 16 21 16 FD and 18 16 20 16 FD)
+const char *const mn1870_disassembler::s_inst_names[256] =
+{
+ "nop", nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
+ nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr,
+ "clr", "clr", "clr", "clr", "clr", "clr", "clr", "clr",
+ "set", "set", "set", "set", "set", "set", "set", "set",
+ "t1bnz", "t1bnz", "t1bnz", "t1bnz", "t1bnz", "t1bnz", "t1bnz", "t1bnz",
+ "t1bz", "t1bz", "t1bz", "t1bz", "t1bz", "t1bz", "t1bz", "t1bz",
+ nullptr, "movl", nullptr, "movl", nullptr, nullptr, "mov", "mov",
+ "movl", "movl", "movl", "movl", nullptr, nullptr, nullptr, nullptr,
+ "dec", "dec", "not", "not", "cmpm", "cmpm", "xch4", "xch4",
+ "inc", "inc", "clr", "clr", "rol", "rol", "ror", "ror",
+ "cmpm", "div", "cmpm", nullptr, "mov", "mov", "mov", "mov",
+ "xch", "mul", "xch", nullptr, "movl", "movl", "movl", "movl",
+ "cmp", "cmp", "cmp", "cmp", "and", "and", "and", "and",
+ "xor", "xor", "xor", "xor", "or", "or", "or", "or",
+ "subc", "subc", "subc", "subc", "subd", "subd", "subd", "subd",
+ "addc", "addc", "addc", "addc", "addd", "addd", "addd", "addd",
+ "skip", "bc", "bz", "ble", "cmpl", "clr", nullptr, "clr",
+ "br", "bnc", "bnz", "bgt", nullptr, "set", nullptr, "set",
+ "call", "call", "call", "call", "call", "call", "call", "call",
+ "call", "call", "call", "call", "call", "call", "call", "call",
+ "br", "br", "br", "br", "br", "br", "br", "br",
+ "br", "br", "br", "br", "br", "br", "br", "br",
+ "clr", "pop", "t1bnz", "pop", "pop", "pop", "pop", "pop",
+ "set", "push", "t1bz", "push", "push", "push", "push", "push",
+ nullptr, "div", nullptr, "decl", nullptr, nullptr, nullptr, nullptr,
+ nullptr, "mul", nullptr, "incl", "mov", "mov", "mov", "mov",
+ nullptr, "cmp", nullptr, "cmp", nullptr, "xch", nullptr, "xch",
+ "mov", "mov", "mov", "mov", nullptr, nullptr, nullptr, nullptr,
+ "loop", "rloop", "loop", "rloop", "dec", "inc", "dec", "inc",
+ nullptr, "addr", nullptr, "addr", nullptr, "addr", nullptr, "addr",
+ "cmpbne", "cmpbne", "mov1", nullptr, "ret", "reti", "br", "call",
+ "cmpbe", "cmpbe", "mov1n", "push", "br", "call", "rdtbl", nullptr
+};
+
+u32 mn1880_disassembler::opcode_alignment() const
+{
+ return 1;
+}
+
+void mn1880_disassembler::format_direct(std::ostream &stream, u8 da) const
+{
+ util::stream_format(stream, "(x'%02X')", da);
+}
+
+void mn1880_disassembler::format_direct16(std::ostream &stream, u16 da) const
+{
+ util::stream_format(stream, "(x'%04X')", da);
+}
+
+void mn1880_disassembler::format_direct_bp(std::ostream &stream, u8 da, u8 bp) const
+{
+ util::stream_format(stream, "(x'%02X')%d", da, bp);
+}
+
+void mn1880_disassembler::format_indirect_bp(std::ostream &stream, const char *ptr, u8 bp) const
+{
+ util::stream_format(stream, "(%s)%d", ptr, bp);
+}
+
+void mn1880_disassembler::format_direct_masked(std::ostream &stream, u8 da, u8 mask) const
+{
+ util::stream_format(stream, "(x'%02X')x'%02X'", da, mask);
+}
+
+void mn1880_disassembler::format_indirect_masked(std::ostream &stream, const char *ptr, u8 mask) const
+{
+ util::stream_format(stream, "(%s)x'%02X'", ptr, mask);
+}
+
+void mn1880_disassembler::format_imm(std::ostream &stream, u8 imm) const
+{
+ util::stream_format(stream, "x'%02X'", imm);
+}
+
+void mn1880_disassembler::format_imm4(std::ostream &stream, u8 imm) const
+{
+ util::stream_format(stream, "%d", imm & 0x0f);
+}
+
+void mn1880_disassembler::format_imm16(std::ostream &stream, u16 imm) const
+{
+ util::stream_format(stream, "x'%04X'", imm);
+}
+
+void mn1880_disassembler::format_rel(std::ostream &stream, u16 base, s8 disp) const
+{
+ util::stream_format(stream, "$x'%04X'", (base + disp) & 0xffff);
+}
+
+void mn1880_disassembler::format_abs4k(std::ostream &stream, u16 label) const
+{
+ util::stream_format(stream, "x'%04X'", label);
+}
+
+void mn1880_disassembler::format_abs64k(std::ostream &stream, u16 label) const
+{
+ util::stream_format(stream, "/x'%04X'", label);
+}
+
+void mn1880_disassembler::dasm_operands(std::ostream &stream, u8 opcode, offs_t &pc, offs_t &flags, const mn1880_disassembler::data_buffer &opcodes)
+{
+ if (opcode < 0x10)
+ {
+ // REP
+ format_imm4(stream, opcode);
+ }
+ else if (opcode < 0x30)
+ {
+ // CLR, SET, T1BNZ, T1BZ direct
+ format_direct_bp(stream, opcodes.r8(pc++), opcode & 0x07);
+ if (opcode >= 0x20)
+ {
+ stream << ", ";
+ format_rel(stream, pc + 1, opcodes.r8(pc));
+ ++pc;
+ }
+ }
+ else if (opcode < 0x34)
+ {
+ // MOVL immediate to pointer register
+ if (BIT(opcode, 0))
+ {
+ util::stream_format(stream, "%s, ", BIT(opcode, 1) ? "yp" : "xp");
+ format_imm16(stream, swapendian_int16(opcodes.r16(pc)));
+ pc += 2;
+ }
+ else
+ stream << "(unknown)";
+ }
+ else if (opcode < 0x3c)
+ {
+ // MOV/MOVL direct
+ if (BIT(opcode, 0))
+ {
+ format_direct(stream, opcodes.r8(pc++));
+ stream << ", ";
+ }
+ if (opcode < 0x38)
+ util::stream_format(stream, "(%s)", BIT(opcode, 0) ? "yp" : "xp");
+ else if (BIT(opcode, 1))
+ stream << "yp";
+ else
+ stream << "xp";
+ if (!BIT(opcode, 0))
+ {
+ stream << ", ";
+ format_direct(stream, opcodes.r8(pc++));
+ }
+ }
+ else if ((opcode & 0xfe) == 0x44)
+ {
+ // CMPM immediate
+ if (BIT(opcode, 0))
+ {
+ format_direct_masked(stream, opcodes.r8(pc), opcodes.r8(pc + 1));
+ pc += 2;
+ }
+ else
+ format_indirect_masked(stream, "xp", opcodes.r8(pc++));
+ stream << ", ";
+ format_imm(stream, opcodes.r8(pc++));
+ }
+ else if (opcode < 0x50 || (opcode & 0xf7) == 0xb5 || (opcode & 0xf7) == 0xc3)
+ {
+ // Unary operations
+ if (BIT(opcode, 0))
+ format_direct(stream, opcodes.r8(pc++));
+ else
+ stream << "(xp)";
+ }
+ else if ((opcode & 0xfd) == 0x50)
+ {
+ // CMPM with two memory operands
+ if (BIT(opcode, 1))
+ {
+ u8 da2 = opcodes.r8(pc++);
+ u8 mask = opcodes.r8(pc++);
+ format_direct_masked(stream, opcodes.r8(pc++), mask);
+ stream << ", ";
+ format_direct_masked(stream, da2, mask);
+ }
+ else
+ {
+ u8 mask = opcodes.r8(pc++);
+ format_indirect_masked(stream, "xp", mask);
+ stream << ", ";
+ format_indirect_masked(stream, "yp", mask);
+ }
+ }
+ else if ((opcode & 0xf7) == 0x51 || (opcode & 0xf7) == 0xb7)
+ {
+ // MUL, DIV, POP, PUSH indirect
+ stream << "(xp)";
+ }
+ else if (opcode == 0x53)
+ {
+ // MOVDA (MN1880 only)
+ format_direct16(stream, opcodes.r16(pc + 2));
+ stream << ", ";
+ format_direct16(stream, opcodes.r16(pc));
+ pc += 4;
+ }
+ else if (opcode < 0x80 || (opcode & 0xfd) == 0x84 || (opcode & 0xf4) == 0xc0)
+ {
+ // Binary operations
+ if (BIT(opcode, 1))
+ {
+ // Direct modes
+ u8 op2 = opcodes.r8(pc++);
+ format_direct(stream, opcodes.r8(pc++));
+ stream << ", ";
+ if (BIT(opcode, 0))
+ {
+ if (opcode == 0x5f)
+ format_imm16(stream, op2 | u16(opcodes.r8(pc++)) << 8);
+ else if ((opcode & 0xf4) == 0x74)
+ format_imm4(stream, op2);
+ else
+ format_imm(stream, op2);
+ }
+ else
+ format_direct(stream, op2);
+ }
+ else
+ {
+ // Indirect modes
+ stream << "(xp), ";
+ if (opcode == 0x5d)
+ {
+ format_imm16(stream, swapendian_int16(opcodes.r16(pc)));
+ pc += 2;
+ }
+ else if (BIT(opcode, 0))
+ {
+ if ((opcode & 0xf4) == 0x74)
+ format_imm4(stream, opcodes.r8(pc++));
+ else
+ format_imm(stream, opcodes.r8(pc++));
+ }
+ else
+ stream << "(yp)";
+ }
+ }
+ else if (opcode < 0x90 || (opcode & 0xfc) == 0xe0)
+ {
+ if (BIT(opcode, 2))
+ {
+ if (BIT(opcode, 0))
+ {
+ // CLR, SET special flag
+ if (BIT(opcode, 1))
+ stream << "cf";
+ else
+ stream << "df";
+ }
+ else
+ stream << "(unknown)";
+ }
+ else
+ {
+ // Relative branches and loops
+ if ((opcode & 0xfd) == 0xe1)
+ util::stream_format(stream, "%s, ", BIT(opcode, 1) ? "yp" : "xp");
+ format_rel(stream, pc + 1, opcodes.r8(pc));
+ ++pc;
+ }
+ }
+ else if (opcode < 0xb0)
+ {
+ // CALL, BR within 4K page
+ format_abs4k(stream, ((pc + 1) & 0xf000) | u16(opcode & 0x0f) << 8 | opcodes.r8(pc));
+ ++pc;
+ if (opcode < 0xa0)
+ flags |= STEP_OVER;
+ }
+ else if ((opcode & 0xf4) == 0xb0)
+ {
+ if (BIT(opcode, 0))
+ stream << "fs";
+ else
+ {
+ // CLR, SET, T1BNZ, T1BZ indirect (MN1870 only)
+ format_indirect_bp(stream, "xp", opcodes.r8(pc++) & 0x07);
+ if (BIT(opcode, 1))
+ {
+ stream << ", ";
+ format_rel(stream, pc + 1, opcodes.r8(pc));
+ ++pc;
+ }
+ }
+ }
+ else if (opcode < 0xc0 || (opcode & 0xfc) == 0xe4 || (opcode & 0xfe) == 0xfc)
+ {
+ // PUSH, POP, DEC, INC, BR, CALL pointer
+ if (BIT(opcode, 1))
+ stream << "yp";
+ else
+ stream << "xp";
+ if (opcode == 0xfd)
+ flags |= STEP_OVER;
+ }
+ else if (opcode < 0xd0)
+ {
+ // XCH, MOV lower half of register
+ if ((opcode & 0xf5) == 0xc5)
+ {
+ util::stream_format(stream, "%sl, ", BIT(opcode, 1) ? "yp" : "xp");
+ format_direct(stream, opcodes.r8(pc++));
+ }
+ else if (BIT(opcode, 3))
+ {
+ format_direct(stream, opcodes.r8(pc++));
+ util::stream_format(stream, ", %sl", BIT(opcode, 1) ? "yp" : "xp");
+ }
+ else
+ util::stream_format(stream, "%sl, %sh", BIT(opcode, 1) ? "yp" : "xp", BIT(opcode, 1) ? "yp" : "xp");
+ }
+ else if (opcode < 0xe0)
+ {
+ if (BIT(opcode, 2))
+ {
+ // XCH, MOV between pointer registers
+ if (opcode == 0xd4)
+ stream << "xp, lp";
+ else
+ {
+ if (BIT(opcode, 0))
+ stream << "xp, ";
+ if (BIT(opcode, 1))
+ stream << "yp";
+ else
+ stream << "sp";
+ if (!BIT(opcode, 0))
+ stream << ", xp";
+ }
+ }
+ else
+ {
+ // CMP, MOV 8-bit
+ util::stream_format(stream, "%s%c, ", BIT(opcode, 1) ? "yp" : "xp", (opcode & 0xfd) == 0xd9 ? 'h' : 'l');
+ if ((opcode & 0xfd) == 0xd0)
+ format_direct(stream, opcodes.r8(pc++));
+ else
+ format_imm(stream, opcodes.r8(pc++));
+ }
+ }
+ else if (opcode < 0xf0)
+ {
+ // ADDR
+ util::stream_format(stream, "%sl, ", BIT(opcode, 1) ? "yp" : "xp");
+ if (BIT(opcode, 2))
+ {
+ util::stream_format(stream, "%sl, ", BIT(opcode, 1) ? "yp" : "xp");
+ if (BIT(opcode, 0))
+ format_imm(stream, opcodes.r8(pc++));
+ else
+ util::stream_format(stream, "%sh", BIT(opcode, 1) ? "yp" : "xp");
+ }
+ else
+ {
+ u8 op2 = opcodes.r8(pc++);
+ format_direct(stream, opcodes.r8(pc++));
+ stream << ", ";
+ if (BIT(opcode, 0))
+ format_imm(stream, op2);
+ else
+ format_direct(stream, op2);
+ }
+ }
+ else if ((opcode & 0xf6) == 0xf0)
+ {
+ // CMPBNE, CMPBE
+ u8 imm = opcodes.r8(pc++);
+ if (BIT(opcode, 0))
+ format_direct(stream, opcodes.r8(pc++));
+ else
+ stream << "(xp)";
+ stream << ", ";
+ format_imm(stream, imm);
+ stream << ", ";
+ format_rel(stream, pc + 1, opcodes.r8(pc));
+ ++pc;
+ }
+ else if ((opcode & 0xf7) == 0xf2)
+ {
+ // MOV1, MOV1N
+ u8 da2 = opcodes.r8(pc++);
+ u8 bp = opcodes.r8(pc++);
+ format_direct_bp(stream, opcodes.r8(pc++), (bp & 0x70) >> 4);
+ stream << ", ";
+ format_direct_bp(stream, da2, bp & 0x07);
+ }
+ else if (opcode == 0xf3)
+ {
+ // WAIT (MN1880 only)
+ format_imm16(stream, opcodes.r16(pc));
+ pc += 2;
+ }
+ else if ((opcode & 0xfe) == 0xf6)
+ {
+ // BR, CALL absolute
+ format_abs64k(stream, opcodes.r16(pc));
+ pc += 2;
+ if (BIT(opcode, 0))
+ flags |= STEP_OVER;
+ }
+ else if (opcode == 0xfb)
+ {
+ // PUSH immediate
+ format_imm(stream, opcodes.r8(pc++));
+ }
+ else if (opcode == 0xfe)
+ {
+ // RDTBL
+ stream << "(xp), (yp)";
+ }
+ else
+ stream << "(unknown)";
+}
+
+offs_t mn1880_disassembler::disassemble(std::ostream &stream, offs_t pc, const mn1880_disassembler::data_buffer &opcodes, const mn1880_disassembler::data_buffer &params)
+{
+ const offs_t pc0 = pc;
+ offs_t flags = SUPPORTED;
+
+ u8 opcode = opcodes.r8(pc++);
+ const char *mnemonic = m_inst_names[opcode];
+
+ u8 rc = 0;
+ if (REPEAT_COMBINED && mnemonic != nullptr && opcode > 0x00 && opcode < 0x10)
+ {
+ rc = opcode;
+ opcode = opcodes.r8(pc++);
+ mnemonic = m_inst_names[opcode];
+ }
+
+ if (mnemonic == nullptr)
+ {
+ util::stream_format(stream, "%-8s", "db");
+ format_imm(stream, opcode);
+ }
+ else if (opcode == 0x00 || opcode == 0x80)
+ {
+ // NOP, SKIP (latter actually executes in immediate mode)
+ stream << mnemonic;
+ }
+ else if (opcode == 0xff)
+ {
+ // PI (software interrupt)
+ stream << mnemonic;
+ flags |= STEP_OVER;
+ }
+ else if ((opcode & 0xfe) == 0xf4)
+ {
+ // RET, RETI
+ stream << mnemonic;
+ flags |= STEP_OUT;
+ }
+ else
+ {
+ util::stream_format(stream, "%-8s", mnemonic);
+ offs_t pc1 = pc;
+ dasm_operands(stream, opcode, pc, flags, opcodes);
+ if (REPEAT_COMBINED && rc != 0 && pc1 != pc)
+ {
+ do {
+ stream << ", ";
+ dasm_operands(stream, opcode, pc, flags, opcodes);
+ }
+ while (--rc != 0);
+ }
+ }
+
+ if (REPEAT_COMBINED && rc != 0)
+ util::stream_format(stream, ", rep %d", rc);
+
+ return (pc - pc0) | flags;
+}
diff --git a/src/devices/cpu/mn1880/mn1880d.h b/src/devices/cpu/mn1880/mn1880d.h
new file mode 100644
index 00000000000..453522aa43b
--- /dev/null
+++ b/src/devices/cpu/mn1880/mn1880d.h
@@ -0,0 +1,55 @@
+// license:BSD-3-Clause
+// copyright-holders:AJR
+
+#ifndef MAME_CPU_MN1880_MN1880D_H
+#define MAME_CPU_MN1880_MN1880D_H
+
+#pragma once
+
+class mn1880_disassembler : public util::disasm_interface
+{
+public:
+ // construction/destruction
+ mn1880_disassembler();
+
+protected:
+ mn1880_disassembler(const char *const *inst_names);
+
+ // disassembler overrides
+ virtual u32 opcode_alignment() const override;
+ virtual offs_t disassemble(std::ostream &stream, offs_t pc, const data_buffer &opcodes, const data_buffer &params) override;
+
+private:
+ // instruction mnemonic table
+ static const char *const s_inst_names[256];
+
+ // internal helpers
+ void format_direct(std::ostream &stream, u8 da) const;
+ void format_direct16(std::ostream &stream, u16 da) const;
+ void format_direct_bp(std::ostream &stream, u8 da, u8 bp) const;
+ void format_indirect_bp(std::ostream &stream, const char *ptr, u8 bp) const;
+ void format_direct_masked(std::ostream &stream, u8 da, u8 mask) const;
+ void format_indirect_masked(std::ostream &stream, const char *ptr, u8 mask) const;
+ void format_imm(std::ostream &stream, u8 imm) const;
+ void format_imm4(std::ostream &stream, u8 imm) const;
+ void format_imm16(std::ostream &stream, u16 imm) const;
+ void format_rel(std::ostream &stream, u16 base, s8 disp) const;
+ void format_abs4k(std::ostream &stream, u16 label) const;
+ void format_abs64k(std::ostream &stream, u16 label) const;
+ void dasm_operands(std::ostream &stream, u8 opcode, offs_t &pc, offs_t &flags, const data_buffer &opcodes);
+
+ const char *const *m_inst_names;
+};
+
+class mn1870_disassembler : public mn1880_disassembler
+{
+public:
+ // construction/destruction
+ mn1870_disassembler();
+
+private:
+ // instruction mnemonic table
+ static const char *const s_inst_names[256];
+};
+
+#endif // MAME_CPU_PIC17_PIC17D_H
diff --git a/src/devices/cpu/powerpc/ppc.h b/src/devices/cpu/powerpc/ppc.h
index 8b935f4e58f..80407ed60f7 100644
--- a/src/devices/cpu/powerpc/ppc.h
+++ b/src/devices/cpu/powerpc/ppc.h
@@ -212,7 +212,7 @@ public:
void set_bus_frequency(uint32_t bus_frequency) { c_bus_frequency = bus_frequency; }
void set_bus_frequency(const XTAL &xtal) { set_bus_frequency(xtal.value()); }
- void ppc_set_dcstore_callback(write32_delegate callback);
+ void ppc_set_dcstore_callback(write32sm_delegate callback);
void ppcdrc_set_options(uint32_t options);
void ppcdrc_add_fastram(offs_t start, offs_t end, uint8_t readonly, void *base);
@@ -479,7 +479,7 @@ protected:
emu_timer * timer;
uint8_t rxbuffer[256];
uint32_t rxin, rxout;
- write8_delegate tx_cb;
+ write8smo_delegate tx_cb;
};
ppc4xx_spu_state m_spu;
@@ -504,10 +504,10 @@ protected:
read32_delegate m_dcr_read_func;
write32_delegate m_dcr_write_func;
- write32_delegate m_dcstore_cb;
+ write32sm_delegate m_dcstore_cb;
read32_delegate::array<4> m_ext_dma_read_cb;
- write32_delegate::array<4> m_ext_dma_write_cb;
+ write32sm_delegate::array<4> m_ext_dma_write_cb;
/* PowerPC function pointers for memory accesses/exceptions */
#ifdef PPC_H_INCLUDED_FROM_PPC_C
@@ -751,11 +751,11 @@ public:
class ppc4xx_device : public ppc_device
{
public:
- void ppc4xx_spu_set_tx_handler(write8_delegate callback);
+ void ppc4xx_spu_set_tx_handler(write8smo_delegate callback);
void ppc4xx_spu_receive_byte(uint8_t byteval);
void ppc4xx_set_dma_read_handler(int channel, read32_delegate callback, int rate);
- void ppc4xx_set_dma_write_handler(int channel, write32_delegate callback, int rate);
+ void ppc4xx_set_dma_write_handler(int channel, write32sm_delegate callback, int rate);
void ppc4xx_set_dcr_read_handler(read32_delegate dcr_read_func);
void ppc4xx_set_dcr_write_handler(write32_delegate dcr_write_func);
diff --git a/src/devices/cpu/powerpc/ppccom.cpp b/src/devices/cpu/powerpc/ppccom.cpp
index 9624afe4c23..4cb57917035 100644
--- a/src/devices/cpu/powerpc/ppccom.cpp
+++ b/src/devices/cpu/powerpc/ppccom.cpp
@@ -1214,7 +1214,7 @@ void ppc_device::ppccom_dcstore_callback()
{
if (!m_dcstore_cb.isnull())
{
- m_dcstore_cb(*m_program, m_core->param0, 0, 0xffffffff);
+ m_dcstore_cb(m_core->param0, 0);
}
}
@@ -2099,7 +2099,7 @@ TIMER_CALLBACK_MEMBER( ppc_device::decrementer_int_callback )
for detecting datacache stores with dcbst
-------------------------------------------------*/
-void ppc_device::ppc_set_dcstore_callback(write32_delegate callback)
+void ppc_device::ppc_set_dcstore_callback(write32sm_delegate callback)
{
m_dcstore_cb = callback;
}
@@ -2371,7 +2371,7 @@ TIMER_CALLBACK_MEMBER( ppc_device::ppc4xx_buffered_dma_callback )
{
uint8_t data = m_program->read_byte(dmaregs[DCR4XX_DMADA0]);
if (!m_ext_dma_write_cb[dmachan].isnull())
- (m_ext_dma_write_cb[dmachan])(*m_program, 1, data, 0xffffffff);
+ (m_ext_dma_write_cb[dmachan])(1, data);
dmaregs[DCR4XX_DMADA0] += destinc;
} while (!ppc4xx_dma_decrement_count(dmachan));
break;
@@ -2382,7 +2382,7 @@ TIMER_CALLBACK_MEMBER( ppc_device::ppc4xx_buffered_dma_callback )
{
uint16_t data = m_program->read_word(dmaregs[DCR4XX_DMADA0]);
if (!m_ext_dma_write_cb[dmachan].isnull())
- (m_ext_dma_write_cb[dmachan])(*m_program, 2, data, 0xffffffff);
+ (m_ext_dma_write_cb[dmachan])(2, data);
dmaregs[DCR4XX_DMADA0] += destinc;
} while (!ppc4xx_dma_decrement_count(dmachan));
break;
@@ -2393,7 +2393,7 @@ TIMER_CALLBACK_MEMBER( ppc_device::ppc4xx_buffered_dma_callback )
{
uint32_t data = m_program->read_dword(dmaregs[DCR4XX_DMADA0]);
if (!m_ext_dma_write_cb[dmachan].isnull())
- (m_ext_dma_write_cb[dmachan])(*m_program, 4, data, 0xffffffff);
+ (m_ext_dma_write_cb[dmachan])(4, data);
dmaregs[DCR4XX_DMADA0] += destinc;
} while (!ppc4xx_dma_decrement_count(dmachan));
break;
@@ -2716,7 +2716,7 @@ TIMER_CALLBACK_MEMBER( ppc_device::ppc4xx_spu_callback )
{
/* if we have a transmit handler, send it that way */
if (!m_spu.tx_cb.isnull())
- (m_spu.tx_cb)(*m_program, 0, m_spu.txbuf, 0xff);
+ (m_spu.tx_cb)(m_spu.txbuf);
/* indicate that we have moved it to the shift register */
m_spu.regs[SPU4XX_LINE_STATUS] |= 0x04;
@@ -2861,7 +2861,7 @@ void ppc4xx_device::ppc4xx_spu_w(offs_t offset, uint8_t data)
specific TX handler configuration
-------------------------------------------------*/
-void ppc4xx_device::ppc4xx_spu_set_tx_handler(write8_delegate callback)
+void ppc4xx_device::ppc4xx_spu_set_tx_handler(write8smo_delegate callback)
{
m_spu.tx_cb = callback;
}
@@ -2893,7 +2893,7 @@ void ppc4xx_device::ppc4xx_set_dma_read_handler(int channel, read32_delegate cal
specific external DMA write handler configuration
-------------------------------------------------*/
-void ppc4xx_device::ppc4xx_set_dma_write_handler(int channel, write32_delegate callback, int rate)
+void ppc4xx_device::ppc4xx_set_dma_write_handler(int channel, write32sm_delegate callback, int rate)
{
m_ext_dma_write_cb[channel] = callback;
m_buffered_dma_rate[channel] = rate;
diff --git a/src/devices/machine/dp8390.cpp b/src/devices/machine/dp8390.cpp
index c898332d1f4..c238801122b 100644
--- a/src/devices/machine/dp8390.cpp
+++ b/src/devices/machine/dp8390.cpp
@@ -28,7 +28,6 @@ dp8390_device::dp8390_device(const machine_config &mconfig, device_type type, co
, m_mem_read_cb(*this)
, m_mem_write_cb(*this)
, m_reset(0)
- , m_cs(false)
, m_rdma_active(0)
{
}
@@ -172,33 +171,29 @@ void dp8390_device::recv_cb(uint8_t *buf, int len) {
if(!LOOPBACK) recv(buf, len);
}
-WRITE_LINE_MEMBER(dp8390_device::dp8390_cs) {
- m_cs = state;
-}
-
WRITE_LINE_MEMBER(dp8390_device::dp8390_reset) {
if(!state) device_reset();
}
-uint16_t dp8390_device::dp8390_r(offs_t offset) {
- uint16_t data;
- if(m_cs) {
- uint32_t high16 = (m_regs.dcr & 4)?m_regs.rsar<<16:0;
- if(m_regs.dcr & 1) {
- m_regs.crda &= ~1;
- data = m_mem_read_cb(high16 + m_regs.crda++);
- data |= m_mem_read_cb(high16 + m_regs.crda++) << 8;
- m_regs.rbcr -= (m_regs.rbcr < 2)?m_regs.rbcr:2;
- check_dma_complete();
- return DP8390_BYTE_ORDER(data);
- } else {
- m_regs.rbcr -= (m_regs.rbcr)?1:0;
- data = m_mem_read_cb(high16 + m_regs.crda++);
- check_dma_complete();
- return data;
- }
+uint16_t dp8390_device::remote_read() {
+ uint32_t high16 = (m_regs.dcr & 4)?m_regs.rsar<<16:0;
+ if(m_regs.dcr & 1) {
+ m_regs.crda &= ~1;
+ uint16_t data = m_mem_read_cb(high16 + m_regs.crda++);
+ data |= m_mem_read_cb(high16 + m_regs.crda++) << 8;
+ m_regs.rbcr -= (m_regs.rbcr < 2)?m_regs.rbcr:2;
+ check_dma_complete();
+ return DP8390_BYTE_ORDER(data);
+ } else {
+ m_regs.rbcr -= (m_regs.rbcr)?1:0;
+ uint16_t data = m_mem_read_cb(high16 + m_regs.crda++);
+ check_dma_complete();
+ return data;
}
+}
+uint8_t dp8390_device::cs_read(offs_t offset) {
+ uint8_t data;
switch((offset & 0x0f)|(m_regs.cr & 0xc0)) {
case 0x00:
case 0x40:
@@ -350,26 +345,24 @@ uint16_t dp8390_device::dp8390_r(offs_t offset) {
return data;
}
-void dp8390_device::dp8390_w(offs_t offset, uint16_t data) {
- if(m_cs) {
- uint32_t high16 = (m_regs.dcr & 4)?m_regs.rsar<<16:0;
- if(m_regs.dcr & 1) {
- data = DP8390_BYTE_ORDER(data);
- m_regs.crda &= ~1;
- m_mem_write_cb(high16 + m_regs.crda++, data & 0xff);
- m_mem_write_cb(high16 + m_regs.crda++, data >> 8);
- m_regs.rbcr -= (m_regs.rbcr < 2)?m_regs.rbcr:2;
- check_dma_complete();
- } else {
- data &= 0xff;
- m_mem_write_cb(high16 + m_regs.crda++, data);
- m_regs.rbcr -= (m_regs.rbcr)?1:0;
- check_dma_complete();
- }
- return;
+void dp8390_device::remote_write(uint16_t data) {
+ uint32_t high16 = (m_regs.dcr & 4)?m_regs.rsar<<16:0;
+ if(m_regs.dcr & 1) {
+ data = DP8390_BYTE_ORDER(data);
+ m_regs.crda &= ~1;
+ m_mem_write_cb(high16 + m_regs.crda++, data & 0xff);
+ m_mem_write_cb(high16 + m_regs.crda++, data >> 8);
+ m_regs.rbcr -= (m_regs.rbcr < 2)?m_regs.rbcr:2;
+ check_dma_complete();
+ } else {
+ data &= 0xff;
+ m_mem_write_cb(high16 + m_regs.crda++, data);
+ m_regs.rbcr -= (m_regs.rbcr)?1:0;
+ check_dma_complete();
}
+}
- data &= 0xff;
+void dp8390_device::cs_write(offs_t offset, uint8_t data) {
switch((offset & 0x0f)|(m_regs.cr & 0xc0)) {
case 0x00:
case 0x40:
diff --git a/src/devices/machine/dp8390.h b/src/devices/machine/dp8390.h
index adaed69d529..64bc6436733 100644
--- a/src/devices/machine/dp8390.h
+++ b/src/devices/machine/dp8390.h
@@ -16,9 +16,10 @@ public:
auto mem_read_callback() { return m_mem_read_cb.bind(); }
auto mem_write_callback() { return m_mem_write_cb.bind(); }
- void dp8390_w(offs_t offset, uint16_t data);
- uint16_t dp8390_r(offs_t offset);
- DECLARE_WRITE_LINE_MEMBER( dp8390_cs );
+ void remote_write(uint16_t data);
+ void cs_write(offs_t offset, uint8_t data);
+ uint16_t remote_read();
+ uint8_t cs_read(offs_t offset);
DECLARE_WRITE_LINE_MEMBER( dp8390_reset );
void recv_cb(uint8_t *buf, int len) override;
@@ -52,7 +53,6 @@ private:
void recv(uint8_t *buf, int len);
int m_reset;
- bool m_cs;
int m_rdma_active;
struct {
diff --git a/src/devices/machine/generalplus_gpl16250soc.cpp b/src/devices/machine/generalplus_gpl16250soc.cpp
index dc16e9985f7..29c7f7a2585 100644
--- a/src/devices/machine/generalplus_gpl16250soc.cpp
+++ b/src/devices/machine/generalplus_gpl16250soc.cpp
@@ -1538,6 +1538,9 @@ void sunplus_gcm394_base_device::device_reset()
m_system_dma_memtype = 0x0000;
m_unk_timer->adjust(attotime::from_hz(60), 0, attotime::from_hz(60));
+
+ m_spg_video->set_video_spaces(this->space(AS_PROGRAM), *m_cs_space, m_csbase);
+ m_spg_video->reset();
}
void generalplus_gpac800_device::device_reset()
@@ -1649,7 +1652,6 @@ uint16_t sunplus_gcm394_base_device::read_space(uint32_t offset)
-
void sunplus_gcm394_base_device::write_space(uint32_t offset, uint16_t data)
{
address_space& space = this->space(AS_PROGRAM);
diff --git a/src/devices/machine/generalplus_gpl16250soc_video.cpp b/src/devices/machine/generalplus_gpl16250soc_video.cpp
index a45961389cf..fe6e03e534f 100644
--- a/src/devices/machine/generalplus_gpl16250soc_video.cpp
+++ b/src/devices/machine/generalplus_gpl16250soc_video.cpp
@@ -8,97 +8,6 @@
**********************************************************************/
-/* lots of games, including wrlshunt are not copying tilemap data properly
- the analysis below is for wrlshunt, although gormiti could prove to be an easier case to look at
- while jak_ths and jak_swc might be more difficult (the latter uses line/bitmap mode, but still
- fails to copy the line data)
-
-
- --
-
- wrlshunt BG Tilemap location note
-
- background tilemap appears to be at 24ad30 - 24af87 (byte address) in RAM == 125698 - 1257c3 (word address)
- there are pointers to this
- (2879-287a) = 98 56 12 00 (00125698) (main background tilemap data is at this address)
- (287b-287c) = 30 5e 12 00 (00125e30) (address for other layer tilemap) (or 'end' of above)
- where do we get these copied to registers or used as a source to copy from?
-
-
- -- callled from here
- 058F79: call 054e56 (with values above, for tilemap 0)
- and
- 058FB1: call 054e56 (for tilemap 1)
- (both of these are at the start of the function at 058F46, which we loop in at the moment, possible main loop for the menu?)
-
- there are other calls in the code, but those are the ones before sprites are uploaded for the menu
-
- --
- 054E91: r4 = [bp+27] (contains lower part of address)
- 054E92: ds:[r1++] = r4 -- write 5698 to 2879
- 054E93: r4 = [bp+28] (contains upper part of address)
- 054E94: ds:[r1] = r4 -- write 0012 to 287a
-
- (this is a huge function that ends at 55968, also has lots of calls in it)
-
- ---
-
- the base for tilemap params being written to RAM is 2879 + 0xe * tilmap number (0,1,2,3)
- the code to calculate this offset from base uses 32-bit multiplication and even sign extends the tilemap number before using it, making it
- look more complex than it really is!
-
- 054E7B: 0B0D 0088 bp = bp + 0088
- 054E7D: 9800 r4 = [bp+00] -- which tilemap? (0,1,2,3)
- 054E7E: 2B0D 0088 bp = bp - 0088
-
- 054E80: 973C r3 = r4 asr 4 -- sign extend tilemap 16-bit register r4 with r3 forming the upper word (always 0)
- 054E81: 973B r3 = r3 asr 4
- 054E82: 973B r3 = r3 asr 4
- 054E83: 973B r3 = r3 asr 4
-
- 054E84: D688 push r3, r3 to [sp] -- push onto stack for use in call below
- 054E85: D888 push r4, r4 to [sp]
-
- 054E86: 964E r3 = 0e -- store 0000 000e as the 32-bit value to multply with
- 054E87: 9840 r4 = 00
- 054E88: D890 push r3, r4 to [sp] -- push that onto stack for function call below
-
- 054E89: F045 D706 call 05d706 -- returns result in r1,r2
-
- the result of this is then added to the base value of 2879 (which was stored earlier)
- an additional offset is then added for each parameter.
-
- this code is repeated multiple times, with slight changes
-
- ---
-
- by the time you hit 055098 (which is a switch on tilemap type to disable a tilemap) the following params have been put at
- 2879 ( tilemap 0 call )
- 2879 + 0x0e (tilemap 1 call )
-
- tmap0 params
- 5698 0012 | 5E30 0012 | 0280 01E0 | 0002 0020 0020 0000 0000 0100 0000 0000
- 125698 | 125e30 | = 640 = 480
-
- tmap1 params
- 7280 000D | 89F0 000D | 0280 01E0 | 0002 0020 0020 0002 0000 0040 0000 0000
- 0d7280 | 0d89f0 | = 640 = 480 |
-
- these parameter lists are not read after this? is there some kind of indirect dma mode, or is code not being called that should use them.
- plenty more code is called, including more that looks a lot like the above, some use of 707f and at the end of the funciton, code to
- write various tilemap registers, including reenabling the tilemap that was disabled around 055098.
-
- --
-
-
- if you return rand() on 707f reads sometimes you see
- [:maincpu] pc:053775: r4 = r4 lsr r3 (5698 0009) : [:maincpu] result 002b (possible unrelated)
-
- (bg tile addressing is also done by tile #, like the sprites, not fixed step like smartfp)
-
-
-*/
-
#include "emu.h"
#include "generalplus_gpl16250soc_video.h"
@@ -118,20 +27,15 @@ DEFINE_DEVICE_TYPE(GCM394_VIDEO, gcm394_video_device, "gcm394_video", "GeneralPl
gcm394_base_video_device::gcm394_base_video_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_gfx_interface(mconfig, *this, nullptr),
device_video_interface(mconfig, *this),
m_cpu(*this, finder_base::DUMMY_TAG),
m_screen(*this, finder_base::DUMMY_TAG),
-// m_scrollram(*this, "scrollram"),
m_video_irq_cb(*this),
m_palette(*this, "palette"),
m_gfxdecode(*this, "gfxdecode"),
m_space_read_cb(*this),
m_rowscroll(*this, "^rowscroll"),
m_rowzoom(*this, "^rowzoom"),
-// m_pal_displaybank_high(0),
-// m_pal_sprites(0x100),
-// m_pal_back(0x000),
m_alt_extrasprite_hack(0),
m_alt_tile_addressing(0),
m_renderer(*this, "renderer")
@@ -295,17 +199,6 @@ void gcm394_base_video_device::decodegfx(const char* tag)
void gcm394_base_video_device::device_start()
{
- for (uint8_t i = 0; i < 32; i++)
- {
- m_rgb5_to_rgb8[i] = (i << 3) | (i >> 2);
- }
- for (uint16_t i = 0; i < 0x8000; i++)
- {
- m_rgb555_to_rgb888[i] = (m_rgb5_to_rgb8[(i >> 10) & 0x1f] << 16) |
- (m_rgb5_to_rgb8[(i >> 5) & 0x1f] << 8) |
- (m_rgb5_to_rgb8[(i >> 0) & 0x1f] << 0);
- }
-
m_video_irq_cb.resolve();
m_maxgfxelement = 0;
@@ -319,10 +212,6 @@ void gcm394_base_video_device::device_start()
m_screenpos_timer = timer_alloc(TIMER_SCREENPOS);
m_screenpos_timer->adjust(attotime::never);
-
- save_item(NAME(m_screenbuf));
- save_item(NAME(m_rgb5_to_rgb8));
- save_item(NAME(m_rgb555_to_rgb888));
save_item(NAME(m_page0_addr_lsb));
save_item(NAME(m_page0_addr_msb));
save_item(NAME(m_page1_addr_lsb));
@@ -365,10 +254,8 @@ void gcm394_base_video_device::device_start()
save_item(NAME(m_page3_addr_lsb));
save_item(NAME(m_page3_addr_msb));
save_item(NAME(m_spriteram));
- save_item(NAME(m_spriteextra));
save_item(NAME(m_paletteram));
save_item(NAME(m_maxgfxelement));
-// save_item(NAME(m_pal_displaybank_high));
save_item(NAME(m_alt_tile_addressing));
}
@@ -390,16 +277,14 @@ void gcm394_base_video_device::device_reset()
m_tmap1_scroll[i] = 0x0000;
}
- for (int i = 0; i < 0x400; i++)
+ for (int i = 0; i < 0x400*2; i++)
{
- m_spriteextra[i] = 0x0000;
m_spriteram[i] = 0x0000;
}
for (int i=0;i<0x100 * 0x10;i++)
m_paletteram[i] = machine().rand()&0x7fff;
-
m_707f = 0x0000;
m_703a_palettebank = 0x0000;
m_video_irq_enable = 0x0000;
@@ -435,546 +320,7 @@ void gcm394_base_video_device::device_reset()
m_page3_addr_lsb = 0;
m_page3_addr_msb = 0;
-}
-
-/*************************
-* Video Hardware *
-*************************/
-
-template<gcm394_base_video_device::blend_enable_t Blend, gcm394_base_video_device::rowscroll_enable_t RowScroll, gcm394_base_video_device::flipx_t FlipX>
-void gcm394_base_video_device::draw(const rectangle &cliprect, uint32_t line, uint32_t xoff, uint32_t yoff, uint32_t bitmap_addr, uint32_t tile, int32_t h, int32_t w, uint8_t bpp, uint32_t yflipmask, uint32_t palette_offset, int addressing_mode)
-{
- uint32_t nc_bpp = ((bpp) + 1) << 1;
-
- // probably don't do this here as this SoC has extended palette for higher bpp modes
- //palette_offset >>= nc_bpp;
- //palette_offset <<= nc_bpp;
-
- uint32_t bits_per_row = nc_bpp * w / 16;
- uint32_t words_per_tile;
-
- if (addressing_mode == 1)
- {
- words_per_tile = bits_per_row * h;
- }
- else
- {
- words_per_tile = 8; // seems to be correct for sprites regardless of size / bpp on smartfp
- }
-
- int x_max;
- if (m_707f & 0x0010)
- {
- x_max = 0x400;
- }
- else
- {
- x_max = 0x200;
- }
-
-
- uint32_t m = (bitmap_addr) + (words_per_tile * tile + bits_per_row * (line ^ yflipmask));
-
-
- uint32_t bits = 0;
- uint32_t nbits = 0;
- uint32_t y = line;
-
- int yy = (yoff + y);// &0x1ff;
- //if (yy >= 0x01c0)
- // yy -= 0x0200;
-
- if (yy > cliprect.max_y || yy < 0)
- return;
-
- int y_index = yy * m_screen->width();
-
- for (int32_t x = FlipX ? (w - 1) : 0; FlipX ? x >= 0 : x < w; FlipX ? x-- : x++)
- {
- int xx = xoff + x;
-
- bits <<= nc_bpp;
-
- if (nbits < nc_bpp)
- {
- uint16_t b = m_space_read_cb((m++)&0x7ffffff); // smartfp suggests either 0x7ffffff mask, or some bits are being set incorrectly, jak_s500 needs over 0x3ffffff at least
- b = (b << 8) | (b >> 8);
- bits |= b << (nc_bpp - nbits);
- nbits += 16;
- }
- nbits -= nc_bpp;
-
- int pen = bits >> 16;
-
- int current_palette_offset = palette_offset;
-
- uint32_t pal = current_palette_offset + pen;
- bits &= 0xffff;
-
- if (RowScroll)
- xx -= 0;// (int16_t)m_scrollram[yy & 0x1ff];
-
- xx &= (x_max-1);
- if (xx >= (x_max-0x40))
- xx -= x_max;
-
- if (xx >= 0 && xx <= cliprect.max_x)
- {
- int pix_index = xx + y_index;
-
- uint16_t rgb = m_paletteram[pal];
-
- if (!(rgb & 0x8000))
- {
- if (Blend)
- {
- /*
- m_screenbuf[pix_index] = (mix_channel((uint8_t)(m_screenbuf[pix_index] >> 16), m_rgb5_to_rgb8[(rgb >> 10) & 0x1f]) << 16) |
- (mix_channel((uint8_t)(m_screenbuf[pix_index] >> 8), m_rgb5_to_rgb8[(rgb >> 5) & 0x1f]) << 8) |
- (mix_channel((uint8_t)(m_screenbuf[pix_index] >> 0), m_rgb5_to_rgb8[rgb & 0x1f]));
- */
- m_screenbuf[pix_index] = m_rgb555_to_rgb888[rgb];
- }
- else
- {
- m_screenbuf[pix_index] = m_rgb555_to_rgb888[rgb];
- }
- }
- }
- }
-}
-
-void gcm394_base_video_device::draw_page(const rectangle &cliprect, uint32_t scanline, int priority, uint32_t bitmap_addr, uint16_t *regs, uint16_t *scroll, int which)
-{
- uint32_t xscroll = scroll[0];
- uint32_t yscroll = scroll[1];
- uint32_t attr_reg = regs[0];
- uint32_t ctrl_reg = regs[1];
- uint32_t tilemap = regs[2];
- uint32_t palette_map = regs[3];
- address_space &space = m_cpu->space(AS_PROGRAM);
-
- // attr_reg bits
- // -Bzz pppp hhww ffbb
- //
- // B = blend
- // zz = depth
- // pppp = palette
- // ff = flips
- // bb = bpp
- // hh = height
- // ww = width
-
- // ctrl_reg bits
- // ---- ---B h--r ewRl
- //
- // e = enable
- // l = bitmape/line mode
- // r = rowscroll
- // w = wallpaper mode
- // R = regset mode
- // h = high colour
- // B = blend
-
-
- if (!(ctrl_reg & 0x0008))
- {
- return;
- }
-
- if (((attr_reg & 0x3000) >> 12) != priority)
- {
- return;
- }
-
- if (ctrl_reg & 0x0001) // bitmap mode jak_car2 and jak_s500 use for the ingame race sections, also have a bitmap test in test mode
- {
- if (0)
- {
- if (ctrl_reg & 0x0010)
- popmessage("bitmap mode %08x with rowscroll\n", bitmap_addr);
- else
- popmessage("bitmap mode %08x\n", bitmap_addr);
- }
-
- // note, in interlace modes it appears every other line is unused? (480 entry table, but with blank values)
- // and furthermore the rowscroll and rowzoom tables only have 240 entries, not enough for every line
- // the end of the rowscroll table (entries 240-255) contain something else, maybe garbage data as it's offscreen, maybe not
-
- uint32_t linebase = space.read_word(tilemap + scanline); // every other word is unused, but there are only enough entries for 240 lines then, sometimes to do with interlace mode?
- uint16_t palette = space.read_word(palette_map + (scanline / 2));
-
- if (scanline & 1)
- palette >>= 8;
- else
- palette &= 0xff;
-
- if (!linebase)
- return;
-
- linebase = linebase | (palette << 16);
-
- // this logic works for jak_s500 and the test modes to get the correct base, doesn't seem to work for jak_car2 ingame, maybe data is copied to wrong place?
- int gfxbase = (bitmap_addr&0x7ffffff) + (linebase&0x7ffffff);
-
- for (int i = 0; i < 160; i++) // will have to be 320 for jak_car2 ingame, jak_s500 lines are wider than screen, and zoomed
- {
- uint16_t pix = m_space_read_cb((gfxbase++)&0x7ffffff);
- int xx;
- int y_index = scanline * m_screen->width();
- uint16_t pal;
-
- if ((scanline >= 0) && (scanline < 480))
- {
- xx = i * 2;
-
- pal = (pix & 0xff) | 0x100;
-
- if (xx >= 0 && xx <= cliprect.max_x)
- {
- int pix_index = xx + y_index;
-
- uint16_t rgb = m_paletteram[pal];
-
- if (!(rgb & 0x8000))
- {
- m_screenbuf[pix_index] = m_rgb555_to_rgb888[rgb];
- }
- }
-
- xx = (i * 2)+1;
- pal = (pix >> 8) + 0x100;
-
- if (xx >= 0 && xx <= cliprect.max_x)
- {
- int pix_index = xx + y_index;
-
- uint16_t rgb = m_paletteram[pal];
-
- if (!(rgb & 0x8000))
- {
- m_screenbuf[pix_index] = m_rgb555_to_rgb888[rgb];
- }
- }
- }
- }
- }
- else
- {
- uint32_t tile_h = 8 << ((attr_reg & 0x00c0) >> 6);
- uint32_t tile_w = 8 << ((attr_reg & 0x0030) >> 4);
-
- int total_width;
- int use_alt_drawmode = m_alt_tile_addressing;
- int y_mask = 0;
-
- // just a guess based on this being set on the higher resolution tilemaps we've seen, could be 100% incorrect register
- if ((attr_reg >> 15) & 0x1)
- {
- total_width = 1024;
- y_mask = 0x1ff;
- // use_alt_drawmode = 1; // probably doesn't control this
- }
- else
- {
- total_width = 512;
- y_mask = 0xff;
- // use_alt_drawmode = 0; // probably doesn't control this
- }
-
- uint32_t tile_count_x = total_width / tile_w;
-
- uint32_t bitmap_y = (scanline + yscroll) & y_mask;
- uint32_t y0 = bitmap_y / tile_h;
- uint32_t tile_scanline = bitmap_y % tile_h;
- uint32_t tile_address = tile_count_x * y0;
-
- for (uint32_t x0 = 0; x0 < tile_count_x; x0++, tile_address++)
- {
- uint32_t yy = ((tile_h * y0 - yscroll + 0x10) & y_mask) - 0x10;
- uint32_t xx = (tile_w * x0 - xscroll) & (total_width-1);
- uint32_t tile = (ctrl_reg & 0x0004) ? space.read_word(tilemap) : space.read_word(tilemap + tile_address);
-
- if (!tile)
- continue;
-
- bool blend;
- bool row_scroll;
- bool flip_x;
- uint32_t yflipmask;
- uint32_t palette_offset;
-
- blend = (attr_reg & 0x4000 || ctrl_reg & 0x0100);
- row_scroll = (ctrl_reg & 0x0010);
-
- if ((ctrl_reg & 0x0002) == 0) // RegSet:0
- {
- uint16_t palette = (ctrl_reg & 0x0004) ? space.read_word(palette_map) : space.read_word(palette_map + tile_address / 2);
- if (x0 & 1)
- palette >>= 8;
-
- // 'palette' format
- // --ff pppp
- //
- // f = flip bits
- // p = palette
-
- flip_x = palette & 0x10;
- yflipmask = (palette & 0x20) ? tile_h - 1 : 0;
- palette_offset = (palette & 0x0f) << 4;
- }
- else // RegSet:1
- {
- if (m_alt_tile_addressing == 0)
- {
- // smartfp needs the attribute table to contain extra tile bits even if regset is 1
- uint16_t palette = (ctrl_reg & 0x0004) ? space.read_word(palette_map) : space.read_word(palette_map + tile_address / 2);
- if (x0 & 1)
- palette >>= 8;
-
- // 'palette' format
- // -- -ttt
- //
- // t = extra tile number bits
-
- tile |= (palette & 0x0007) << 16;
- }
-
- flip_x = (attr_reg & 0x0004);
- yflipmask = attr_reg & 0x0008 ? tile_h - 1 : 0;
- palette_offset = (attr_reg & 0x0f00) >> 4;
- }
-
- const uint8_t bpp = attr_reg & 0x0003;
-
- // HACKS
- // There must be a select bit for the tilemap palettes somewhere, but where?!
-
- // the different games in paccon also expect a variety of different configs here, maybe a good place to look
-
- if (m_703a_palettebank & 1) // this actually seems to be the sprite palette bank enable, but for tkmag220 it gives us an easy way to ignore the logic below
- {
- if (which == 0) // tilemap 0
- {
- if (ctrl_reg & 0x0002) // RegSet:1
- {
- // smartfp has a conflict between the bootlogos and the first screen, it's in regset mode, no obvious difference in registers but needs palette from different places?
- // not even m_707f changes here, which makes the m_707f case specific hacks for jak_s500 below very unlikely to actually be related
- if ((bpp + 1) * 2 == 4)
- if (m_alt_tile_addressing == 0)
- palette_offset |= 0x200;
- }
- }
-
- if (which == 1)
- {
- // can't do this for jak_s500 logos
- // jak_s500 also uses this tilemap in both 4 and 6bpp modes expecting the same palette base, so the hack used for smartfp on tilemap 0 is not applicable here
-
- // m_707f != 0x2d3 for jak_S500 main menu
- if ((m_707f != 0x53) && (m_707f != 0x63) && (m_707f != 0x2d3))
- palette_offset |= 0x200;
- }
-
- // jak_car2 screen transitions use layers 2 and 3 the same way, alternating each frame
- if (which == 2)
- {
- // jak_s500 title screen + loading screen before race
- if ((m_707f == 0x2d3) || (m_707f == 0x2db))
- palette_offset |= 0x200;
- }
-
- }
- //palette_offset |= m_pal_back;
-
- if (blend)
- {
- if (row_scroll)
- {
- if (flip_x)
- draw<BlendOn, RowScrollOn, FlipXOn>(cliprect, tile_scanline, xx, yy, bitmap_addr, tile, tile_h, tile_w, bpp, yflipmask, palette_offset, use_alt_drawmode);
- else
- draw<BlendOn, RowScrollOn, FlipXOff>(cliprect, tile_scanline, xx, yy, bitmap_addr, tile, tile_h, tile_w, bpp, yflipmask, palette_offset, use_alt_drawmode);
- }
- else
- {
- if (flip_x)
- draw<BlendOn, RowScrollOff, FlipXOn>(cliprect, tile_scanline, xx, yy, bitmap_addr, tile, tile_h, tile_w, bpp, yflipmask, palette_offset, use_alt_drawmode);
- else
- draw<BlendOn, RowScrollOff, FlipXOff>(cliprect, tile_scanline, xx, yy, bitmap_addr, tile, tile_h, tile_w, bpp, yflipmask, palette_offset, use_alt_drawmode);
- }
- }
- else
- {
- if (row_scroll)
- {
- if (flip_x)
- draw<BlendOff, RowScrollOn, FlipXOn>(cliprect, tile_scanline, xx, yy, bitmap_addr, tile, tile_h, tile_w, bpp, yflipmask, palette_offset, use_alt_drawmode);
- else
- draw<BlendOff, RowScrollOn, FlipXOff>(cliprect, tile_scanline, xx, yy, bitmap_addr, tile, tile_h, tile_w, bpp, yflipmask, palette_offset, use_alt_drawmode);
- }
- else
- {
- if (flip_x)
- draw<BlendOff, RowScrollOff, FlipXOn>(cliprect, tile_scanline, xx, yy, bitmap_addr, tile, tile_h, tile_w, bpp, yflipmask, palette_offset, use_alt_drawmode);
- else
- draw<BlendOff, RowScrollOff, FlipXOff>(cliprect, tile_scanline, xx, yy, bitmap_addr, tile, tile_h, tile_w, bpp, yflipmask, palette_offset, use_alt_drawmode);
- }
- }
- }
- }
-}
-
-
-void gcm394_base_video_device::draw_sprite(const rectangle& cliprect, uint32_t scanline, int priority, uint32_t base_addr)
-{
- uint32_t bitmap_addr = (m_sprite_702d_gfxbase_msb << 16) | m_sprite_7022_gfxbase_lsb;
- uint32_t tile = m_spriteram[base_addr + 0];
- int16_t x = m_spriteram[base_addr + 1];
- int16_t y = m_spriteram[base_addr + 2];
- uint16_t attr = m_spriteram[base_addr + 3];
-
-
- if (!tile) // this check needs to come before the additional attribute bits are added in? (smartfp title)
- {
- return;
- }
-
- int addressing_mode = 0;
-
- int screenwidth, screenheight, x_max;
- if (m_707f & 0x0010)
- {
- screenwidth = 640;
- screenheight = 480;
- x_max = 0x400;
- }
- else
- {
- screenwidth = 320;
- screenheight = 240;
- x_max = 0x200;
- }
-
-
- // good for gormiti, smartfp, wrlshunt, paccon, jak_totm, jak_s500, jak_gtg
- if ((m_7042_sprite & 0x0010) == 0x10)
- addressing_mode = 0; // smartfp, paccon
- else
- addressing_mode = 1;
-
- if (m_alt_extrasprite_hack == 0)
- if (addressing_mode == 0) // smartfp, paccon
- tile |= m_spriteextra[base_addr / 4] << 16;
-
- if (m_alt_extrasprite_hack == 1) // jak_prft
- tile |= (m_spriteextra[base_addr] & 0x000f) << 16;
-
- if (((attr & 0x3000) >> 12) != priority)
- {
- return;
- }
-
- // attr PBzz pppp hhww ffdd
-
- // P = high palette bit
- // b = blend enable
- // zz = priority
- // pppp = palette
- // hh = height
- // ww = width
- // ff = flips
- // dd = depth
-
- const uint32_t h = 8 << ((attr & 0x00c0) >> 6);
- const uint32_t w = 8 << ((attr & 0x0030) >> 4);
-
-
- if (!(m_7042_sprite & 0x0002))
- {
- x = ((screenwidth / 2) + x) - w / 2;
- y = ((screenheight / 2) - y) - (h / 2) + 8;
- }
-
- x &= (x_max - 1);
- y &= 0x01ff;
-
- uint32_t tile_line = ((scanline - y) + 0x200) % h;
- int16_t test_y = (y + tile_line) & 0x1ff;
- if (test_y >= 0x01c0)
- test_y -= 0x0200;
-
- if (test_y != scanline)
- {
- return;
- }
-
- bool blend = (attr & 0x4000);
-
- bool flip_x;
- uint8_t bpp;
- uint32_t yflipmask;
- uint32_t palette_offset;
-
- // different attribute use?
- if (screenwidth == 320)
- {
- if (m_alt_extrasprite_hack == 0)
- {
- flip_x = (attr & 0x0004);
- yflipmask = attr & 0x0008 ? h - 1 : 0;
- }
- else
- {
- flip_x = 0;
- yflipmask = 0;
- }
-
- bpp = attr & 0x0003;
- palette_offset = (attr & 0x0f00) >> 4;
- }
- else
- {
- flip_x = 0;// (attr & 0x0004);
- yflipmask = 0;// attr& 0x0008 ? h - 1 : 0;
-
- bpp = attr & 0x0003;
- palette_offset = (attr & 0x0f00) >> 4;
- }
-
- if (m_703a_palettebank & 1)
- palette_offset |= 0x100;
-
- if (attr & 0x8000)
- palette_offset |= 0x200;
-
- if (blend)
- {
- if (flip_x)
- draw<BlendOn, RowScrollOff, FlipXOn>(cliprect, tile_line, x, y, bitmap_addr, tile, h, w, bpp, yflipmask, palette_offset, addressing_mode);
- else
- draw<BlendOn, RowScrollOff, FlipXOff>(cliprect, tile_line, x, y, bitmap_addr, tile, h, w, bpp, yflipmask, palette_offset, addressing_mode);
- }
- else
- {
- if (flip_x)
- draw<BlendOff, RowScrollOff, FlipXOn>(cliprect, tile_line, x, y, bitmap_addr, tile, h, w, bpp, yflipmask, palette_offset, addressing_mode);
- else
- draw<BlendOff, RowScrollOff, FlipXOff>(cliprect, tile_line, x, y, bitmap_addr, tile, h, w, bpp, yflipmask, palette_offset, addressing_mode);
- }
-}
-
-void gcm394_base_video_device::draw_sprites(const rectangle &cliprect, uint32_t scanline, int priority)
-{
- // paccon suggests this, does older hardware have similar?
- int numsprites = (m_7042_sprite & 0xff00) >> 8;
- if (numsprites == 0)
- numsprites = 0x100;
-
- for (uint32_t n = 0; n < numsprites; n++)
- {
- draw_sprite(cliprect, scanline, priority, 4 * n);
- }
+ m_renderer->set_video_spaces(m_cpuspace, m_cs_space, m_csbase);
}
uint32_t gcm394_base_video_device::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
@@ -987,6 +333,12 @@ uint32_t gcm394_base_video_device::screen_update(screen_device &screen, bitmap_r
// jak_s500 briely sets pen 0 of the layer to magenta, but then ends up erasing it
+ const uint32_t page0_addr = (m_page0_addr_msb << 16) | m_page0_addr_lsb;
+ const uint32_t page1_addr = (m_page1_addr_msb << 16) | m_page1_addr_lsb;
+ const uint32_t page2_addr = (m_page2_addr_msb << 16) | m_page2_addr_lsb;
+ const uint32_t page3_addr = (m_page3_addr_msb << 16) | m_page3_addr_lsb;
+
+
if (0)
{
uint16_t attr0 = m_tmap0_regs[0];
@@ -999,70 +351,63 @@ uint32_t gcm394_base_video_device::screen_update(screen_device &screen, bitmap_r
uint16_t ctrl3 = m_tmap3_regs[1];
popmessage(
- "p0ctrl u:%02x Bl:%d HC:%d Ycmp:%d Hcmp:%d RS:%d E:%d WP:%d Rg:%d Bm:%d\n"
- "p1ctrl u:%02x Bl:%d HC:%d Ycmp:%d Hcmp:%d RS:%d E:%d WP:%d Rg:%d Bm:%d\n"
- "p2ctrl u:%02x Bl:%d HC:%d Ycmp:%d Hcmp:%d RS:%d E:%d WP:%d Rg:%d Bm:%d\n"
- "p3ctrl u:%02x Bl:%d HC:%d Ycmp:%d Hcmp:%d RS:%d E:%d WP:%d Rg:%d Bm:%d\n"
- "p0attr u:%01x Z:%d P:%d V:%d H:%d FY:%d FX:%d D:%d\n"
- "p1attr u:%01x Z:%d P:%d V:%d H:%d FY:%d FX:%d D:%d\n"
- "p2attr u:%01x Z:%d P:%d V:%d H:%d FY:%d FX:%d D:%d\n"
- "p3attr u:%01x Z:%d P:%d V:%d H:%d FY:%d FX:%d D:%d\n"
- "palbank %04x 707e: %04x 707f: %04x\n",
- (ctrl0 & 0xfe00) >> 9, BIT(ctrl0, 8), BIT(ctrl0, 7), BIT(ctrl0, 6), BIT(ctrl0, 5), BIT(ctrl0, 4), BIT(ctrl0, 3), BIT(ctrl0, 2), BIT(ctrl0, 1), BIT(ctrl0, 0),
- (ctrl1 & 0xfe00) >> 9, BIT(ctrl1, 8), BIT(ctrl1, 7), BIT(ctrl1, 6), BIT(ctrl1, 5), BIT(ctrl1, 4), BIT(ctrl1, 3), BIT(ctrl1, 2), BIT(ctrl1, 1), BIT(ctrl1, 0),
- (ctrl2 & 0xfe00) >> 9, BIT(ctrl2, 8), BIT(ctrl2, 7), BIT(ctrl2, 6), BIT(ctrl2, 5), BIT(ctrl2, 4), BIT(ctrl2, 3), BIT(ctrl2, 2), BIT(ctrl2, 1), BIT(ctrl2, 0),
- (ctrl3 & 0xfe00) >> 9, BIT(ctrl3, 8), BIT(ctrl3, 7), BIT(ctrl3, 6), BIT(ctrl3, 5), BIT(ctrl3, 4), BIT(ctrl3, 3), BIT(ctrl3, 2), BIT(ctrl3, 1), BIT(ctrl3, 0),
- (attr0 & 0xc000) >> 14, (attr0 >> 12) & 3, (attr0 >> 8) & 15, 8 << ((attr0 >> 6) & 3), 8 << ((attr0 >> 4) & 3), BIT(attr0, 3), BIT(attr0, 2), 2 * ((attr0 & 3) + 1),
- (attr1 & 0xc000) >> 14, (attr1 >> 12) & 3, (attr1 >> 8) & 15, 8 << ((attr1 >> 6) & 3), 8 << ((attr1 >> 4) & 3), BIT(attr1, 3), BIT(attr1, 2), 2 * ((attr1 & 3) + 1),
- (attr2 & 0xc000) >> 14, (attr2 >> 12) & 3, (attr2 >> 8) & 15, 8 << ((attr2 >> 6) & 3), 8 << ((attr2 >> 4) & 3), BIT(attr2, 3), BIT(attr2, 2), 2 * ((attr2 & 3) + 1),
- (attr3 & 0xc000) >> 14, (attr3 >> 12) & 3, (attr3 >> 8) & 15, 8 << ((attr3 >> 6) & 3), 8 << ((attr3 >> 4) & 3), BIT(attr3, 3), BIT(attr3, 2), 2 * ((attr3 & 3) + 1),
- m_703a_palettebank, m_707e_spritebank, m_707f
+ "p0ct u:%02x Bl:%d HC:%d Ycmp:%d Hcmp:%d RS:%d E:%d WP:%d Rg:%d Bm:%d gfxadr: %08x t:%04x p:%04x\n"
+ "p1ct u:%02x Bl:%d HC:%d Ycmp:%d Hcmp:%d RS:%d E:%d WP:%d Rg:%d Bm:%d gfxadr: %08x t:%04x p:%04x\n"
+ "p2ct u:%02x Bl:%d HC:%d Ycmp:%d Hcmp:%d RS:%d E:%d WP:%d Rg:%d Bm:%d gfxadr: %08x t:%04x p:%04x\n"
+ "p3ct u:%02x Bl:%d HC:%d Ycmp:%d Hcmp:%d RS:%d E:%d WP:%d Rg:%d Bm:%d gfxadr: %08x t:%04x p:%04x\n"
+ "p0attr dw:%01x dh:%01x Z:%d P:%d V:%d H:%d FY:%d FX:%d D:%d xs: %04x ys %04x\n"
+ "p1attr dw:%01x dh:%01x Z:%d P:%d V:%d H:%d FY:%d FX:%d D:%d xs: %04x ys %04x\n"
+ "p2attr dw:%01x dh:%01x Z:%d P:%d V:%d H:%d FY:%d FX:%d D:%d xs: %04x ys %04x\n"
+ "p3attr dw:%01x dh:%01x Z:%d P:%d V:%d H:%d FY:%d FX:%d D:%d xs: %04x ys %04x\n"
+ "palbank %04x 707e: %04x 707f: %04x tvc703c: %04x spr7042: %04x\n",
+ (ctrl0 & 0xfe00) >> 9, BIT(ctrl0, 8), BIT(ctrl0, 7), BIT(ctrl0, 6), BIT(ctrl0, 5), BIT(ctrl0, 4), BIT(ctrl0, 3), BIT(ctrl0, 2), BIT(ctrl0, 1), BIT(ctrl0, 0), page0_addr, m_tmap0_regs[2], m_tmap0_regs[3],
+ (ctrl1 & 0xfe00) >> 9, BIT(ctrl1, 8), BIT(ctrl1, 7), BIT(ctrl1, 6), BIT(ctrl1, 5), BIT(ctrl1, 4), BIT(ctrl1, 3), BIT(ctrl1, 2), BIT(ctrl1, 1), BIT(ctrl1, 0), page1_addr, m_tmap1_regs[2], m_tmap1_regs[3],
+ (ctrl2 & 0xfe00) >> 9, BIT(ctrl2, 8), BIT(ctrl2, 7), BIT(ctrl2, 6), BIT(ctrl2, 5), BIT(ctrl2, 4), BIT(ctrl2, 3), BIT(ctrl2, 2), BIT(ctrl2, 1), BIT(ctrl2, 0), page2_addr, m_tmap2_regs[2], m_tmap2_regs[3],
+ (ctrl3 & 0xfe00) >> 9, BIT(ctrl3, 8), BIT(ctrl3, 7), BIT(ctrl3, 6), BIT(ctrl3, 5), BIT(ctrl3, 4), BIT(ctrl3, 3), BIT(ctrl3, 2), BIT(ctrl3, 1), BIT(ctrl3, 0), page3_addr, m_tmap3_regs[2], m_tmap3_regs[3],
+ BIT(attr0, 15), BIT(attr0, 14), (attr0 >> 12) & 3, (attr0 >> 8) & 15, 8 << ((attr0 >> 6) & 3), 8 << ((attr0 >> 4) & 3), BIT(attr0, 3), BIT(attr0, 2), 2 * ((attr0 & 3) + 1), m_tmap0_scroll[0], m_tmap0_scroll[1],
+ BIT(attr1, 15), BIT(attr1, 14), (attr1 >> 12) & 3, (attr1 >> 8) & 15, 8 << ((attr1 >> 6) & 3), 8 << ((attr1 >> 4) & 3), BIT(attr1, 3), BIT(attr1, 2), 2 * ((attr1 & 3) + 1), m_tmap1_scroll[0], m_tmap1_scroll[1],
+ BIT(attr2, 15), BIT(attr2, 14), (attr2 >> 12) & 3, (attr2 >> 8) & 15, 8 << ((attr2 >> 6) & 3), 8 << ((attr2 >> 4) & 3), BIT(attr2, 3), BIT(attr2, 2), 2 * ((attr2 & 3) + 1), m_tmap2_scroll[0], m_tmap2_scroll[1],
+ BIT(attr3, 15), BIT(attr3, 14), (attr3 >> 12) & 3, (attr3 >> 8) & 15, 8 << ((attr3 >> 6) & 3), 8 << ((attr3 >> 4) & 3), BIT(attr3, 3), BIT(attr3, 2), 2 * ((attr3 & 3) + 1), m_tmap3_scroll[0], m_tmap3_scroll[1],
+ m_703a_palettebank, m_707e_spritebank, m_707f, m_703c_tvcontrol1, m_7042_sprite
);
}
//const uint16_t bgcol = 0x7c1f; // magenta
- const uint16_t bgcol = 0x0000; // black
-
-
+// const uint16_t bgcol = 0x0000; // black
+ bool highres;
if (m_707f & 0x0010)
{
+ highres = true;
m_screen->set_visible_area(0, 640-1, 0, 480-1);
}
else
{
+ highres = false;
m_screen->set_visible_area(0, 320-1, 0, 240-1);
}
+ address_space &mem = m_cpu->space(AS_PROGRAM);
+
+
+ const uint32_t sprites_addr = (m_sprite_702d_gfxbase_msb << 16) | m_sprite_7022_gfxbase_lsb;
+
+ bitmap.fill(0, cliprect);
+
for (uint32_t scanline = (uint32_t)cliprect.min_y; scanline <= (uint32_t)cliprect.max_y; scanline++)
{
- uint32_t* bufferline = &m_screenbuf[scanline * m_screen->width()];
-
- for (int x = 0; x < m_screen->width(); x++)
- {
- bufferline[x] = m_rgb555_to_rgb888[bgcol];
- }
+ uint32_t* dst = &bitmap.pix32(scanline, cliprect.min_x);
for (int i = 0; i < 4; i++)
{
- const int draw_all = 1;
-
- if (1)
- {
- if ((!(machine().input().code_pressed(KEYCODE_Q))) || draw_all) draw_page(cliprect, scanline, i, (m_page0_addr_lsb | (m_page0_addr_msb<<16)), m_tmap0_regs, m_tmap0_scroll, 0);
- if ((!(machine().input().code_pressed(KEYCODE_W))) || draw_all) draw_page(cliprect, scanline, i, (m_page1_addr_lsb | (m_page1_addr_msb<<16)), m_tmap1_regs, m_tmap1_scroll, 1);
- if ((!(machine().input().code_pressed(KEYCODE_E))) || draw_all) draw_page(cliprect, scanline, i, (m_page2_addr_lsb | (m_page2_addr_msb<<16)), m_tmap2_regs, m_tmap2_scroll, 2);
- if ((!(machine().input().code_pressed(KEYCODE_R))) || draw_all) draw_page(cliprect, scanline, i, (m_page3_addr_lsb | (m_page3_addr_msb<<16)), m_tmap3_regs, m_tmap3_scroll, 3);
+ m_renderer->draw_page(true, true, m_alt_tile_addressing ? false : true, m_703a_palettebank, cliprect, dst, scanline, i, page0_addr, m_tmap0_scroll, m_tmap0_regs, mem, m_paletteram, m_rowscroll, 0);
+ m_renderer->draw_page(true, true, m_alt_tile_addressing ? false : true, m_703a_palettebank, cliprect, dst, scanline, i, page1_addr, m_tmap1_scroll, m_tmap1_regs, mem, m_paletteram, m_rowscroll, 1);
+ m_renderer->draw_page(true, true, m_alt_tile_addressing ? false : true, m_703a_palettebank, cliprect, dst, scanline, i, page2_addr, m_tmap2_scroll, m_tmap2_regs, mem, m_paletteram, m_rowscroll, 2);
+ m_renderer->draw_page(true, true, m_alt_tile_addressing ? false : true, m_703a_palettebank, cliprect, dst, scanline, i, page3_addr, m_tmap3_scroll, m_tmap3_regs, mem, m_paletteram, m_rowscroll, 3);
- }
- if ((!(machine().input().code_pressed(KEYCODE_T))) || draw_all) draw_sprites(cliprect, scanline, i);
+ m_renderer->draw_sprites(true, true, m_alt_extrasprite_hack ? true : false, m_703a_palettebank, highres, cliprect, dst, scanline, i, sprites_addr, mem, m_paletteram, m_spriteram, -1);
}
- }
- for (int y = cliprect.min_y; y <= cliprect.max_y; y++)
- {
- uint32_t *dest = &bitmap.pix32(y, cliprect.min_x);
- uint32_t *src = &m_screenbuf[cliprect.min_x + m_screen->width() * y];
- memcpy(dest, src, sizeof(uint32_t) * ((cliprect.max_x - cliprect.min_x) + 1));
+ m_renderer->apply_saturation_and_fade(bitmap, cliprect, scanline);
}
return 0;
@@ -1391,6 +736,8 @@ WRITE16_MEMBER(gcm394_base_video_device::sprite_7042_extra_w)
{
LOGMASKED(LOG_GCM394_VIDEO, "%s:gcm394_base_video_device::sprite_7042_extra_w %04x\n", machine().describe_context(), data);
m_7042_sprite = data;
+ m_renderer->set_video_reg_42(data);
+
//popmessage("extra modes %04x\n", data);
}
@@ -1470,7 +817,7 @@ READ16_MEMBER(gcm394_base_video_device::video_707c_r)
READ16_MEMBER(gcm394_base_video_device::video_707f_r)
{
- uint16_t retdata = m_707f;
+ uint16_t retdata = m_renderer->get_video_reg_7f();
LOGMASKED(LOG_GCM394_VIDEO, "%s:gcm394_base_video_device::video_707f_r (returning %04x)\n", machine().describe_context(), retdata);
return retdata;
}
@@ -1496,7 +843,7 @@ WRITE16_MEMBER(gcm394_base_video_device::video_707f_w)
}
m_707f = data;
-
+ m_renderer->set_video_reg_7f(data);
//popmessage("707f is %04x\n", data);
}
@@ -1558,6 +905,7 @@ WRITE16_MEMBER(gcm394_base_video_device::video_702a_w)
{
LOGMASKED(LOG_GCM394_VIDEO, "%s:gcm394_base_video_device::video_702a_w %04x\n", machine().describe_context(), data);
m_702a = data;
+ m_renderer->set_video_reg_2a(data);
}
READ16_MEMBER(gcm394_base_video_device::video_curline_r)
@@ -1582,15 +930,17 @@ WRITE16_MEMBER(gcm394_base_video_device::video_7030_brightness_w)
{
LOGMASKED(LOG_GCM394_VIDEO, "%s:gcm394_base_video_device::video_7030_brightness_w %04x\n", machine().describe_context(), data);
m_7030_brightness = data;
+ m_renderer->set_video_reg_30(data);
}
void gcm394_base_video_device::update_raster_split_position()
{
// this might need updating to handle higher res modes
LOGMASKED(LOG_GCM394_VIDEO, "update_raster_split_position: %04x,%04x\n", m_yirqpos, m_xirqpos);
- if (m_xirqpos < 300 && m_yirqpos < 240)
+ if (m_xirqpos < 300 && m_yirqpos < 256)
{
- m_screenpos_timer->adjust(m_screen->time_until_pos(m_yirqpos, m_xirqpos));
+ // where does -19 come from? needed for raster on paccon xevious to fire at correct line for bg scrolling to be seamless
+ m_screenpos_timer->adjust(m_screen->time_until_pos(m_yirqpos-19, m_xirqpos));
//printf("setting irq timer for y:%d x:%d", m_yirqpos, m_xirqpos);
}
else
@@ -1623,6 +973,7 @@ WRITE16_MEMBER(gcm394_base_video_device::video_703c_tvcontrol1_w)
{
LOGMASKED(LOG_GCM394_VIDEO, "%s:gcm394_base_video_device::video_703c_tvcontrol1_w %04x\n", machine().describe_context(), data);
m_703c_tvcontrol1 = data;
+ m_renderer->set_video_reg_3c(data);
}
READ16_MEMBER(gcm394_base_video_device::video_7051_r)
@@ -1668,7 +1019,7 @@ WRITE16_MEMBER(gcm394_base_video_device::spriteram_w)
}
else if (m_707e_spritebank == 0x0001)
{
- m_spriteextra[offset] = data;
+ m_spriteram[offset + 0x400] = data;
}
else
{
@@ -1684,7 +1035,7 @@ READ16_MEMBER(gcm394_base_video_device::spriteram_r)
}
else if (m_707e_spritebank == 0x0001)
{
- return m_spriteextra[offset];
+ return m_spriteram[offset + 0x400];
}
else
{
@@ -1705,13 +1056,12 @@ WRITE16_MEMBER(gcm394_base_video_device::palette_w)
{
offset |= (m_703a_palettebank & 0x000c) << 6;
m_paletteram[offset] = data;
-
- uint32_t pal = m_rgb555_to_rgb888[data & 0x7fff];
- int r = (pal >> 16) & 0xff;
- int g = (pal >> 8) & 0xff;
- int b = (pal >> 0) & 0xff;
-
- m_palette->set_pen_color(offset, rgb_t(r, g, b));
+
+ // for debug
+ m_palette->set_pen_color(offset, rgb_t(
+ (((data >> 10) & 0x1f)<<3),
+ (((data >> 5) & 0x1f)<<3),
+ (((data >> 0) & 0x1f)<<3)));
}
}
@@ -1731,16 +1081,19 @@ READ16_MEMBER(gcm394_base_video_device::palette_r)
WRITE16_MEMBER(gcm394_base_video_device::video_701c_w)
{
LOGMASKED(LOG_GCM394_VIDEO, "%s:gcm394_base_video_device::video_701c_w (unknown video reg?) %04x\n", machine().describe_context(), data);
+ m_renderer->set_video_reg_1c(data);
}
WRITE16_MEMBER(gcm394_base_video_device::video_701d_w)
{
LOGMASKED(LOG_GCM394_VIDEO, "%s:gcm394_base_video_device::video_701d_w (unknown video reg?) %04x\n", machine().describe_context(), data);
+ m_renderer->set_video_reg_1d(data);
}
WRITE16_MEMBER(gcm394_base_video_device::video_701e_w)
{
LOGMASKED(LOG_GCM394_VIDEO, "%s:gcm394_base_video_device::video_701e_w (unknown video reg?) %04x\n", machine().describe_context(), data);
+ m_renderer->set_video_reg_1e(data);
}
@@ -1787,7 +1140,7 @@ void gcm394_base_video_device::device_timer(emu_timer &timer, device_timer_id id
m_screen->update_partial(m_screen->vpos());
// fire again, jak_dbz pinball needs this
- m_screenpos_timer->adjust(m_screen->time_until_pos(m_yirqpos, m_xirqpos));
+ m_screenpos_timer->adjust(m_screen->time_until_pos(m_yirqpos-19, m_xirqpos));
break;
}
}
diff --git a/src/devices/machine/generalplus_gpl16250soc_video.h b/src/devices/machine/generalplus_gpl16250soc_video.h
index 5edbbe76735..a04540dd5a1 100644
--- a/src/devices/machine/generalplus_gpl16250soc_video.h
+++ b/src/devices/machine/generalplus_gpl16250soc_video.h
@@ -36,6 +36,8 @@ public:
void set_alt_extrasprite(int alt_extrasprite_hack) { m_alt_extrasprite_hack = alt_extrasprite_hack; }
+ void set_video_spaces(address_space& cpuspace, address_space& cs_space, int csbase) { m_cpuspace = &cpuspace; m_cs_space = &cs_space; m_csbase = csbase; }
+
//void set_pal_sprites(int pal_sprites) { m_pal_sprites = pal_sprites; }
//void set_pal_back(int pal_back) { m_pal_back = pal_back; }
@@ -147,37 +149,8 @@ protected:
virtual void device_start() override;
virtual void device_reset() override;
- enum blend_enable_t : bool
- {
- BlendOff = false,
- BlendOn = true
- };
-
- enum rowscroll_enable_t : bool
- {
- RowScrollOff = false,
- RowScrollOn = true
- };
-
- enum flipx_t : bool
- {
- FlipXOff = false,
- FlipXOn = true
- };
-
- template<blend_enable_t Blend, rowscroll_enable_t RowScroll, flipx_t FlipX>
- void draw(const rectangle &cliprect, uint32_t line, uint32_t xoff, uint32_t yoff, uint32_t bitmap_addr, uint32_t tile, int32_t h, int32_t w, uint8_t bpp, uint32_t yflipmask, uint32_t palette_offset, int addressing_mode);
- void draw_page(const rectangle &cliprect, uint32_t scanline, int priority, uint32_t bitmap_addr, uint16_t *regs, uint16_t *scroll, int which);
- void draw_sprites(const rectangle& cliprect, uint32_t scanline, int priority);
- void draw_sprite(const rectangle& cliprect, uint32_t scanline, int priority, uint32_t base_addr);
-
- uint32_t m_screenbuf[640 * 480];
- uint8_t m_rgb5_to_rgb8[32];
- uint32_t m_rgb555_to_rgb888[0x8000];
-
required_device<unsp_device> m_cpu;
required_device<screen_device> m_screen;
-// required_shared_ptr<uint16_t> m_scrollram;
uint16_t m_page0_addr_lsb;
uint16_t m_page0_addr_msb;
@@ -242,8 +215,7 @@ protected:
emu_timer *m_screenpos_timer;
- uint16_t m_spriteram[0x400];
- uint16_t m_spriteextra[0x400];
+ uint16_t m_spriteram[0x400*2];
uint16_t m_paletteram[0x100*0x10];
required_device<palette_device> m_palette;
@@ -263,6 +235,10 @@ protected:
int m_alt_tile_addressing;
required_device<spg_renderer_device> m_renderer;
+
+ address_space* m_cpuspace;
+ address_space* m_cs_space;
+ int m_csbase;
};
class gcm394_video_device : public gcm394_base_video_device
diff --git a/src/devices/machine/intelfsh.cpp b/src/devices/machine/intelfsh.cpp
index 027340e4736..b8293cad26e 100644
--- a/src/devices/machine/intelfsh.cpp
+++ b/src/devices/machine/intelfsh.cpp
@@ -623,7 +623,7 @@ uint32_t intelfsh_device::read_full(uint32_t address)
{
// used in Fujitsu 29DL16X 8bits mode
// used in AMD 29LV200 8bits mode
- switch (address)
+ switch (address & 0xff)
{
case 0: data = m_maker_id; break;
case 2: data = m_device_id; break;
@@ -632,7 +632,7 @@ uint32_t intelfsh_device::read_full(uint32_t address)
}
else
{
- switch (address)
+ switch (address & 0xff)
{
case 0: data = m_maker_id; break;
case 1: data = m_device_id; break;
@@ -643,7 +643,7 @@ uint32_t intelfsh_device::read_full(uint32_t address)
case FM_READID:
if (m_maker_id == MFG_INTEL && m_device_id == 0x16)
{
- switch (address)
+ switch (address & 0xff)
{
case 0: data = m_maker_id; break;
case 2: data = m_device_id; break;
@@ -652,7 +652,7 @@ uint32_t intelfsh_device::read_full(uint32_t address)
}
else
{
- switch (address)
+ switch (address & 0xff)
{
case 0: // maker ID
data = m_maker_id;
diff --git a/src/devices/machine/spg2xx_video.cpp b/src/devices/machine/spg2xx_video.cpp
index b7615c76a38..d62e6998ea2 100644
--- a/src/devices/machine/spg2xx_video.cpp
+++ b/src/devices/machine/spg2xx_video.cpp
@@ -103,6 +103,8 @@ uint32_t spg2xx_video_device::screen_update(screen_device &screen, bitmap_rgb32
const uint32_t page1_addr = 0x40 * m_video_regs[0x20];
const uint32_t page2_addr = 0x40 * m_video_regs[0x21];
+ const uint32_t sprite_addr = 0x40 * m_video_regs[0x22];
+
uint16_t *page1_scroll = m_video_regs + 0x10;
uint16_t *page2_scroll = m_video_regs + 0x16;
uint16_t *page1_regs = m_video_regs + 0x12;
@@ -116,9 +118,9 @@ uint32_t spg2xx_video_device::screen_update(screen_device &screen, bitmap_rgb32
for (int i = 0; i < 4; i++)
{
- m_renderer->draw_page(cliprect, dst, scanline, i, page1_addr, page1_scroll, page1_regs, mem, m_paletteram, m_scrollram);
- m_renderer->draw_page(cliprect, dst, scanline, i, page2_addr, page2_scroll, page2_regs, mem, m_paletteram, m_scrollram);
- m_renderer->draw_sprites(cliprect, dst, scanline, i, mem, m_paletteram, m_spriteram, m_sprlimit_read_cb());
+ m_renderer->draw_page(false, false, false, 0, cliprect, dst, scanline, i, page1_addr, page1_scroll, page1_regs, mem, m_paletteram, m_scrollram, 0);
+ m_renderer->draw_page(false, false, false, 0, cliprect, dst, scanline, i, page2_addr, page2_scroll, page2_regs, mem, m_paletteram, m_scrollram, 1);
+ m_renderer->draw_sprites(false, false, false, 0, false, cliprect, dst, scanline, i, sprite_addr, mem, m_paletteram, m_spriteram, m_sprlimit_read_cb());
}
m_renderer->apply_saturation_and_fade(bitmap, cliprect, scanline);
@@ -177,7 +179,7 @@ READ16_MEMBER(spg2xx_video_device::video_r)
case 0x22: // Sprite Segment Address
LOGMASKED(LOG_PPU_READS, "video_r: Sprite Segment Address\n");
- return m_renderer->get_video_reg_22();
+ return m_video_regs[offset];
case 0x2a: // Blend Level Control
LOGMASKED(LOG_PPU_READS, "video_r: Blend Level Control\n");
@@ -334,7 +336,6 @@ WRITE16_MEMBER(spg2xx_video_device::video_w)
case 0x22: // Sprite Segment Address
LOGMASKED(LOG_PPU_WRITES, "video_w: Sprite Segment Address = %04x\n", data);
m_video_regs[offset] = data;
- m_renderer->set_video_reg_22(data);
break;
case 0x2a: // Blend Level Control
diff --git a/src/devices/machine/spg_renderer.cpp b/src/devices/machine/spg_renderer.cpp
index ded2c8ebe25..19a0cbaff05 100644
--- a/src/devices/machine/spg_renderer.cpp
+++ b/src/devices/machine/spg_renderer.cpp
@@ -7,7 +7,8 @@
DEFINE_DEVICE_TYPE(SPG_RENDERER, spg_renderer_device, "spg_renderer", "SunPlus / GeneralPlus video rendering")
spg_renderer_device::spg_renderer_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_t(mconfig, type, tag, owner, clock),
+ m_space_read_cb(*this)
{
}
@@ -18,6 +19,8 @@ spg_renderer_device::spg_renderer_device(const machine_config &mconfig, const ch
void spg_renderer_device::device_start()
{
+ m_space_read_cb.resolve_safe(0);
+
for (uint8_t i = 0; i < 32; i++)
{
m_rgb5_to_rgb8[i] = (i << 3) | (i >> 2);
@@ -33,7 +36,6 @@ void spg_renderer_device::device_start()
save_item(NAME(m_video_regs_1d));
save_item(NAME(m_video_regs_1e));
- save_item(NAME(m_video_regs_22));
save_item(NAME(m_video_regs_2a));
save_item(NAME(m_video_regs_30));
@@ -41,6 +43,8 @@ void spg_renderer_device::device_start()
save_item(NAME(m_video_regs_42));
+ save_item(NAME(m_video_regs_7f));
+
save_item(NAME(m_ycmp_table));
}
@@ -50,7 +54,6 @@ void spg_renderer_device::device_reset()
m_video_regs_1d = 0x0000;
m_video_regs_1e = 0x0000;
- m_video_regs_22 = 0x0000;
m_video_regs_2a = 0x0000;
m_video_regs_30 = 0x0000;
@@ -58,6 +61,8 @@ void spg_renderer_device::device_reset()
m_video_regs_42 = 0x0001;
+ m_video_regs_7f = 0x0000;
+
for (int i = 0; i < 480; i++)
{
m_ycmp_table[i] = 0xffffffff;
@@ -66,14 +71,13 @@ void spg_renderer_device::device_reset()
// Perform a lerp between a and b
-inline uint8_t spg_renderer_device::mix_channel(uint8_t bottom, uint8_t top)
+inline uint8_t spg_renderer_device::mix_channel(uint8_t bottom, uint8_t top, uint8_t alpha)
{
- uint8_t alpha = (m_video_regs_2a & 3) << 6;
return ((256 - alpha) * bottom + alpha * top) >> 8;
}
template<spg_renderer_device::blend_enable_t Blend, spg_renderer_device::flipx_t FlipX>
-void spg_renderer_device::draw_tilestrip(const rectangle& cliprect, uint32_t* dst, uint32_t tile_h, uint32_t tile_w, uint32_t tilegfxdata_addr, uint16_t tile, uint32_t tile_scanline, int drawx, bool flip_y, uint32_t palette_offset, const uint32_t nc_bpp, const uint32_t bits_per_row, const uint32_t words_per_tile, address_space &spc, uint16_t* paletteram)
+void spg_renderer_device::draw_tilestrip(bool read_from_csspace, uint32_t screenwidth, uint32_t drawwidthmask, const rectangle& cliprect, uint32_t* dst, uint32_t tile_h, uint32_t tile_w, uint32_t tilegfxdata_addr, uint32_t tile, uint32_t tile_scanline, int drawx, bool flip_y, uint32_t palette_offset, const uint32_t nc_bpp, const uint32_t bits_per_row, const uint32_t words_per_tile, address_space &spc, uint16_t* paletteram, uint8_t blendlevel)
{
const uint32_t yflipmask = flip_y ? tile_h - 1 : 0;
uint32_t m = tilegfxdata_addr + words_per_tile * tile + bits_per_row * (tile_scanline ^ yflipmask);
@@ -82,23 +86,44 @@ void spg_renderer_device::draw_tilestrip(const rectangle& cliprect, uint32_t* ds
for (int32_t x = FlipX ? (tile_w - 1) : 0; FlipX ? x >= 0 : x < tile_w; FlipX ? x-- : x++)
{
- int realdrawpos = (drawx + x) & 0x1ff;
+ int realdrawpos = (drawx + x) & drawwidthmask;
bits <<= nc_bpp;
if (nbits < nc_bpp)
{
- uint16_t b = spc.read_word(m++ & 0x3fffff);
- b = (b << 8) | (b >> 8);
- bits |= b << (nc_bpp - nbits);
- nbits += 16;
+ if (!read_from_csspace)
+ {
+ uint16_t b = spc.read_word(m++ & 0x3fffff);
+ b = (b << 8) | (b >> 8);
+ bits |= b << (nc_bpp - nbits);
+ nbits += 16;
+ }
+ else
+ {
+ uint16_t b;
+ const int addr = m & 0x7ffffff;
+ if (addr < m_csbase)
+ {
+ b = m_cpuspace->read_word(addr);
+ }
+ else
+ {
+ b = m_cs_space->read_word(addr-m_csbase);
+ }
+ m++;
+ b = (b << 8) | (b >> 8);
+ bits |= b << (nc_bpp - nbits);
+ nbits += 16;
+ }
}
nbits -= nc_bpp;
uint32_t pal = palette_offset + (bits >> 16);
bits &= 0xffff;
- if (realdrawpos >= 0 && realdrawpos < 320)
+
+ if (realdrawpos >= 0 && realdrawpos < screenwidth)
{
uint16_t rgb = paletteram[pal];
@@ -106,9 +131,10 @@ void spg_renderer_device::draw_tilestrip(const rectangle& cliprect, uint32_t* ds
{
if (Blend)
{
- dst[realdrawpos] = (mix_channel((uint8_t)(dst[realdrawpos] >> 16), m_rgb5_to_rgb8[(rgb >> 10) & 0x1f]) << 16) |
- (mix_channel((uint8_t)(dst[realdrawpos] >> 8), m_rgb5_to_rgb8[(rgb >> 5) & 0x1f]) << 8) |
- (mix_channel((uint8_t)(dst[realdrawpos] >> 0), m_rgb5_to_rgb8[rgb & 0x1f]));
+
+ dst[realdrawpos] = (mix_channel((uint8_t)(dst[realdrawpos] >> 16), m_rgb5_to_rgb8[(rgb >> 10) & 0x1f], blendlevel) << 16) |
+ (mix_channel((uint8_t)(dst[realdrawpos] >> 8), m_rgb5_to_rgb8[(rgb >> 5) & 0x1f], blendlevel) << 8) |
+ (mix_channel((uint8_t)(dst[realdrawpos] >> 0), m_rgb5_to_rgb8[(rgb >> 0) & 0x1f], blendlevel) << 0);
}
else
{
@@ -120,122 +146,178 @@ void spg_renderer_device::draw_tilestrip(const rectangle& cliprect, uint32_t* ds
}
-void spg_renderer_device::draw_linemap(const rectangle& cliprect, uint32_t* dst, uint32_t scanline, int priority, uint32_t tilegfxdata_addr, uint16_t* scrollregs, uint16_t* tilemapregs, address_space &spc, uint16_t* paletteram)
+void spg_renderer_device::draw_linemap(bool has_extended_tilemaps, const rectangle& cliprect, uint32_t* dst, uint32_t scanline, int priority, uint32_t tilegfxdata_addr, uint16_t* scrollregs, uint16_t* tilemapregs, address_space &spc, uint16_t* paletteram)
{
- if ((scanline < 0) || (scanline >= 240))
- return;
-
-
- uint32_t tilemap = tilemapregs[2];
- uint32_t palette_map = tilemapregs[3];
-
- //printf("draw bitmap bases %04x %04x\n", tilemap, palette_map);
+ if (has_extended_tilemaps)
+ {
+ uint32_t ctrl = tilemapregs[1];
+
+ if (0)
+ {
+ if (ctrl & 0x0010)
+ popmessage("bitmap mode %08x with rowscroll\n", tilegfxdata_addr);
+ else
+ popmessage("bitmap mode %08x\n", tilegfxdata_addr);
+ }
- //uint32_t xscroll = scrollregs[0];
- uint32_t yscroll = scrollregs[1];
+ // note, in interlace modes it appears every other line is unused? (480 entry table, but with blank values)
+ // and furthermore the rowscroll and rowzoom tables only have 240 entries, not enough for every line
+ // the end of the rowscroll table (entries 240-255) contain something else, maybe garbage data as it's offscreen, maybe not
+ uint32_t tilemap = tilemapregs[2];
+ uint32_t palette_map = tilemapregs[3];
- int realline = (scanline + yscroll) & 0xff;
+ uint32_t linebase = spc.read_word(tilemap + scanline); // every other word is unused, but there are only enough entries for 240 lines then, sometimes to do with interlace mode?
+ uint16_t palette = spc.read_word(palette_map + (scanline / 2));
+ if (scanline & 1)
+ palette >>= 8;
+ else
+ palette &= 0xff;
- uint16_t tile = spc.read_word(tilemap + realline);
- uint16_t palette = 0;
+ if (!linebase)
+ return;
- //if (!tile)
- // continue;
+ linebase = linebase | (palette << 16);
- palette = spc.read_word(palette_map + realline / 2);
- if (scanline & 1)
- palette >>= 8;
- else
- palette &= 0x00ff;
+ int upperpalselect = 0;
+ if (has_extended_tilemaps && (tilegfxdata_addr & 0x80000000))
+ upperpalselect = 1;
- //const int linewidth = 320 / 2;
- int sourcebase = tile | (palette << 16);
+ tilegfxdata_addr &= 0x7ffffff;
- uint32_t ctrl = tilemapregs[1];
+ // this logic works for jak_s500 and the test modes to get the correct base, doesn't seem to work for jak_car2 ingame, maybe data is copied to wrong place?
+ int gfxbase = (tilegfxdata_addr&0x7ffffff) + (linebase&0x7ffffff);
- if (ctrl & 0x80) // HiColor mode (rad_digi)
- {
- for (int i = 0; i < 320; i++)
+ for (int i = 0; i < 160; i++) // will have to be 320 for jak_car2 ingame, jak_s500 lines are wider than screen, and zoomed
{
- const uint16_t data = spc.read_word(sourcebase + i);
-
- if (!(data & 0x8000))
+ uint16_t pix;
+ const int addr = gfxbase & 0x7ffffff;
+ if (addr < m_csbase)
{
- dst[i] = m_rgb555_to_rgb888[data & 0x7fff];
+ pix = m_cpuspace->read_word(addr);
}
- }
- }
- else
- {
- for (int i = 0; i < 320 / 2; i++)
- {
- uint8_t palette_entry;
- uint16_t color;
- const uint16_t data = spc.read_word(sourcebase + i);
-
- palette_entry = (data & 0x00ff);
- color = paletteram[palette_entry];
-
- if (!(color & 0x8000))
+ else
{
- dst[(i * 2) + 0] = m_rgb555_to_rgb888[color & 0x7fff];
+ pix = m_cs_space->read_word(addr-m_csbase);
}
+ gfxbase++;
- palette_entry = (data & 0xff00) >> 8;
- color = paletteram[palette_entry];
+ int xx;
+ uint16_t pal;
- if (!(color & 0x8000))
+ if ((scanline >= 0) && (scanline < 480))
{
- dst[(i * 2) + 1] = m_rgb555_to_rgb888[color & 0x7fff];
+ xx = i * 2;
+
+ pal = (pix & 0xff) | 0x100;
+
+ if (upperpalselect)
+ pal |= 0x200;
+
+ if (xx >= 0 && xx <= cliprect.max_x)
+ {
+ uint16_t rgb = paletteram[pal];
+
+ if (!(rgb & 0x8000))
+ {
+ dst[xx] = m_rgb555_to_rgb888[rgb];
+ }
+ }
+
+ xx = (i * 2)+1;
+ pal = (pix >> 8) | 0x100;
+
+ if (upperpalselect)
+ pal |= 0x200;
+
+ if (xx >= 0 && xx <= cliprect.max_x)
+ {
+ uint16_t rgb = paletteram[pal];
+
+ if (!(rgb & 0x8000))
+ {
+ dst[xx] = m_rgb555_to_rgb888[rgb];
+ }
+ }
}
}
}
-}
+ else // code used for spg2xx cases
+ {
+ if ((scanline < 0) || (scanline >= 240))
+ return;
+ uint32_t tilemap = tilemapregs[2];
+ uint32_t palette_map = tilemapregs[3];
-bool spg_renderer_device::get_tile_info(uint32_t tilemap_rambase, uint32_t palettemap_rambase, uint32_t x0, uint32_t y0, uint32_t tile_count_x, uint32_t ctrl, uint32_t attr, uint16_t& tile, spg_renderer_device::blend_enable_t& blend, spg_renderer_device::flipx_t& flip_x, bool& flip_y, uint32_t& palette_offset, address_space &spc)
-{
- uint32_t tile_address = x0 + (tile_count_x * y0);
+ popmessage("draw draw_linemap bases %04x %04x\n", tilemap, palette_map);
- tile = (ctrl & 0x0004) ? spc.read_word(tilemap_rambase) : spc.read_word(tilemap_rambase + tile_address);
+ //uint32_t xscroll = scrollregs[0];
+ uint32_t yscroll = scrollregs[1];
+
+ int realline = (scanline + yscroll) & 0xff;
- if (!tile)
- return false;
- uint32_t tileattr = attr;
- uint32_t tilectrl = ctrl;
- if ((ctrl & 2) == 0)
- { // -(1) bld(1) flip(2) pal(4)
+ uint32_t tile = spc.read_word(tilemap + realline);
+ uint16_t palette = 0;
- uint16_t palette = (ctrl & 0x0004) ? spc.read_word(palettemap_rambase) : spc.read_word(palettemap_rambase + tile_address / 2);
- if (x0 & 1)
+ //if (!tile)
+ // continue;
+
+ palette = spc.read_word(palette_map + realline / 2);
+ if (scanline & 1)
palette >>= 8;
else
palette &= 0x00ff;
+ //const int linewidth = 320 / 2;
+ int sourcebase = tile | (palette << 16);
- tileattr &= ~0x000c;
- tileattr |= (palette >> 2) & 0x000c; // flip
+ uint32_t ctrl = tilemapregs[1];
- tileattr &= ~0x0f00;
- tileattr |= (palette << 8) & 0x0f00; // palette
+ if (ctrl & 0x80) // HiColor mode (rad_digi)
+ {
+ for (int i = 0; i < 320; i++)
+ {
+ const uint16_t data = spc.read_word(sourcebase + i);
- tilectrl &= ~0x0100;
- tilectrl |= (palette << 2) & 0x0100; // blend
- }
+ if (!(data & 0x8000))
+ {
+ dst[i] = m_rgb555_to_rgb888[data & 0x7fff];
+ }
+ }
+ }
+ else
+ {
+ for (int i = 0; i < 320 / 2; i++)
+ {
+ uint8_t palette_entry;
+ uint16_t color;
+ const uint16_t data = spc.read_word(sourcebase + i);
- blend = ((tileattr & 0x4000 || tilectrl & 0x0100)) ? BlendOn : BlendOff;
- flip_x = (tileattr & 0x0004) ? FlipXOn : FlipXOff;
- flip_y= (tileattr & 0x0008);
+ palette_entry = (data & 0x00ff);
+ color = paletteram[palette_entry];
- palette_offset = (tileattr & 0x0f00) >> 4;
+ if (!(color & 0x8000))
+ {
+ dst[(i * 2) + 0] = m_rgb555_to_rgb888[color & 0x7fff];
+ }
+ palette_entry = (data & 0xff00) >> 8;
+ color = paletteram[palette_entry];
- return true;
+ if (!(color & 0x8000))
+ {
+ dst[(i * 2) + 1] = m_rgb555_to_rgb888[color & 0x7fff];
+ }
+ }
+ }
+ }
}
+
+
// this builds up a line table for the vcmp effect, this is not correct when step is used
void spg_renderer_device::update_vcmp_table()
{
@@ -257,7 +339,7 @@ void spg_renderer_device::update_vcmp_table()
}
else
{
- if ((currentline >= 0) && (currentline < 240))
+ if ((currentline >= 0) && (currentline < 256))
{
m_ycmp_table[i] = currentline;
}
@@ -275,33 +357,33 @@ void spg_renderer_device::update_vcmp_table()
}
}
-void spg_renderer_device::draw_tilestrip(spg_renderer_device::blend_enable_t blend, spg_renderer_device::flipx_t flip_x, const rectangle& cliprect, uint32_t* dst, uint32_t tile_h, uint32_t tile_w, uint32_t tilegfxdata_addr, uint16_t tile, uint32_t tile_scanline, int drawx, bool flip_y, uint32_t palette_offset, const uint32_t nc_bpp, const uint32_t bits_per_row, const uint32_t words_per_tile, address_space& spc, uint16_t* paletteram)
+void spg_renderer_device::draw_tilestrip(bool read_from_csspace, uint32_t screenwidth, uint32_t drawwidthmask, spg_renderer_device::blend_enable_t blend, spg_renderer_device::flipx_t flip_x, const rectangle& cliprect, uint32_t* dst, uint32_t tile_h, uint32_t tile_w, uint32_t tilegfxdata_addr, uint32_t tile, uint32_t tile_scanline, int drawx, bool flip_y, uint32_t palette_offset, const uint32_t nc_bpp, const uint32_t bits_per_row, const uint32_t words_per_tile, address_space& spc, uint16_t* paletteram, uint8_t blendlevel)
{
if (blend)
{
if (flip_x)
{
- draw_tilestrip<BlendOn, FlipXOn>(cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, tile_scanline, drawx, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram);
+ draw_tilestrip<BlendOn, FlipXOn>(read_from_csspace, screenwidth, drawwidthmask, cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, tile_scanline, drawx, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram, blendlevel);
}
else
{
- draw_tilestrip<BlendOn, FlipXOff>(cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, tile_scanline, drawx, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram);
+ draw_tilestrip<BlendOn, FlipXOff>(read_from_csspace, screenwidth, drawwidthmask, cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, tile_scanline, drawx, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram, blendlevel);
}
}
else
{
if (flip_x)
{
- draw_tilestrip<BlendOff, FlipXOn>(cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, tile_scanline, drawx, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram);
+ draw_tilestrip<BlendOff, FlipXOn>(read_from_csspace, screenwidth, drawwidthmask, cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, tile_scanline, drawx, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram, blendlevel);
}
else
{
- draw_tilestrip<BlendOff, FlipXOff>(cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, tile_scanline, drawx, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram);
+ draw_tilestrip<BlendOff, FlipXOff>(read_from_csspace, screenwidth, drawwidthmask, cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, tile_scanline, drawx, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram, blendlevel);
}
}
}
-void spg_renderer_device::draw_page(const rectangle& cliprect, uint32_t* dst, uint32_t scanline, int priority, uint32_t tilegfxdata_addr, uint16_t* scrollregs, uint16_t* tilemapregs, address_space& spc, uint16_t* paletteram, uint16_t* scrollram)
+void spg_renderer_device::draw_page(bool read_from_csspace, bool has_extended_tilemaps, bool use_alt_tile_addressing, uint32_t palbank, const rectangle& cliprect, uint32_t* dst, uint32_t scanline, int priority, uint32_t tilegfxdata_addr, uint16_t* scrollregs, uint16_t* tilemapregs, address_space& spc, uint16_t* paletteram, uint16_t* scrollram, uint32_t which)
{
const uint32_t attr = tilemapregs[0];
const uint32_t ctrl = tilemapregs[1];
@@ -318,7 +400,7 @@ void spg_renderer_device::draw_page(const rectangle& cliprect, uint32_t* dst, ui
if (ctrl & 0x0001) // Bitmap / Linemap mode! (basically screen width tile mode)
{
- draw_linemap(cliprect, dst, scanline, priority, tilegfxdata_addr, scrollregs, tilemapregs, spc, paletteram);
+ draw_linemap(has_extended_tilemaps, cliprect, dst, scanline, priority, tilegfxdata_addr, scrollregs, tilemapregs, spc, paletteram);
return;
}
@@ -328,61 +410,189 @@ void spg_renderer_device::draw_page(const rectangle& cliprect, uint32_t* dst, ui
{
if (m_video_regs_1e != 0x0000)
popmessage("vertical compression mode with non-0 step amount %04x offset %04x step %04x\n", m_video_regs_1c, m_video_regs_1d, m_video_regs_1e);
-
+
logical_scanline = m_ycmp_table[scanline];
if (logical_scanline == 0xffffffff)
return;
}
+ uint32_t total_width;
+ uint32_t y_mask;
+ uint32_t screenwidth;
+
+
+ if (read_from_csspace && (attr & 0x8000)) // is this only available in high res mode, or always?
+ {
+ // just a guess based on this being set on the higher resolution tilemaps we've seen, could be 100% incorrect register
+ total_width = 1024;
+ y_mask = 0x200;
+ screenwidth = 640;
+ }
+ else
+ {
+ total_width = 512;
+ y_mask = 0x100;
+ screenwidth = 320;
+ }
+
+ if (has_extended_tilemaps && (attr & 0x4000)) // is this only available in high res mode, or always?
+ {
+ y_mask <<= 1; // double height tilemap?
+ }
+
+ const uint32_t drawwidthmask = total_width - 1;
+ y_mask--; // turn into actual mask
+
const uint32_t xscroll = scrollregs[0];
const uint32_t yscroll = scrollregs[1];
const uint32_t tilemap_rambase = tilemapregs[2];
- const uint32_t palettemap_rambase = tilemapregs[3];
+ const uint32_t exattributemap_rambase = tilemapregs[3];
const int tile_width = (attr & 0x0030) >> 4;
const uint32_t tile_h = 8 << ((attr & 0x00c0) >> 6);
const uint32_t tile_w = 8 << (tile_width);
- const uint32_t tile_count_x = 512 / tile_w; // all tilemaps are 512 pixels wide
- const uint32_t bitmap_y = (logical_scanline + yscroll) & 0xff; // all tilemaps are 256 pixels high
+ const uint32_t tile_count_x = total_width / tile_w; // tilemaps are 512 or 1024 wide depending on screen mode?
+ const uint32_t bitmap_y = (logical_scanline + yscroll) & y_mask; // tilemaps are 256 or 512 high depending on screen mode?
const uint32_t y0 = bitmap_y / tile_h;
const uint32_t tile_scanline = bitmap_y % tile_h;
const uint8_t bpp = attr & 0x0003;
const uint32_t nc_bpp = ((bpp)+1) << 1;
const uint32_t bits_per_row = nc_bpp * tile_w / 16;
- const uint32_t words_per_tile = bits_per_row * tile_h;
+ //const uint32_t words_per_tile = bits_per_row * tile_h;
const bool row_scroll = (ctrl & 0x0010);
+ uint8_t blendlevel = (m_video_regs_2a & 3) << 6;
+
+ uint32_t words_per_tile;
+
+ // good for gormiti, smartfp, wrlshunt, paccon, jak_totm, jak_s500, jak_gtg
+ if (has_extended_tilemaps && use_alt_tile_addressing)
+ {
+ words_per_tile = 8;
+ }
+ else
+ {
+ words_per_tile = bits_per_row * tile_h;
+ }
int realxscroll = xscroll;
if (row_scroll)
{
- // Tennis in My Wireless Sports confirms the need to add the scroll value here rather than rowscroll being screen-aligned
- realxscroll += (int16_t)scrollram[(logical_scanline+yscroll) & 0xff];
+ if (!has_extended_tilemaps)
+ {
+ // Tennis in My Wireless Sports confirms the need to add the scroll value here rather than rowscroll being screen-aligned
+ realxscroll += (int16_t)scrollram[(logical_scanline + yscroll) & 0xff];
+ }
+ else
+ {
+ // the logic seems to be different on GPL16250, see Galaxian in paccon and Crazy Moto in myac220, is this mode be selected or did behavior just change?
+ realxscroll += (int16_t)scrollram[logical_scanline & 0xff];
+ }
}
const int upperscrollbits = (realxscroll >> (tile_width + 3));
- const int endpos = (320 + tile_w) / tile_w;
+ const int endpos = (screenwidth + tile_w) / tile_w;
+
+ int upperpalselect = 0;
+ if (has_extended_tilemaps && (tilegfxdata_addr & 0x80000000))
+ upperpalselect = 1;
+
+ tilegfxdata_addr &= 0x7ffffff;
+
for (uint32_t x0 = 0; x0 < endpos; x0++)
{
spg_renderer_device::blend_enable_t blend;
spg_renderer_device::flipx_t flip_x;
bool flip_y;
- uint16_t tile;
+ uint32_t tile;
uint32_t palette_offset;
- if (!get_tile_info(tilemap_rambase, palettemap_rambase, (x0 + upperscrollbits) & (tile_count_x-1) , y0, tile_count_x, ctrl, attr, tile, blend, flip_x, flip_y, palette_offset, spc))
- continue;
+ // get tile info
+ const int realx0 = (x0 + upperscrollbits) & (tile_count_x - 1);
+ uint32_t tile_address = realx0 + (tile_count_x * y0);
+
+ tile = (ctrl & 0x0004) ? spc.read_word(tilemap_rambase) : spc.read_word(tilemap_rambase + tile_address);
+
+ if (!tile)
+ {
+ if (!has_extended_tilemaps)
+ {
+ // always skip on older SPG types?
+ continue;
+ }
+ else if (m_video_regs_7f & 0x0002)
+ {
+ // Galaga in paccon won't render '0' characters in the scoring table if you skip empty tiles, so maybe GPL16250 doesn't skip? - extra tile bits from extended read make no difference
+
+ // probably not based on register m_video_regs_7f, but paccon galaga needs no skip, jak_gtg and jak_hmhsm needs to skip
+ //49 0100 1001 no skip (paccon galaga)
+ //4b 0100 1011 skip (paccon pacman)
+ //53 0101 0011 skip (jak_gtg, jak_hmhsm)
+ continue;
+ }
+ }
+
+
+ uint32_t tileattr = attr;
+ uint32_t tilectrl = ctrl;
+
+ if (has_extended_tilemaps && use_alt_tile_addressing)
+ {
+ // in this mode what would be the 'palette' bits get used for extra tile bits (even if the usual 'extended table' mode is disabled?)
+ // used by smartfp
+ uint16_t exattribute = (ctrl & 0x0004) ? spc.read_word(exattributemap_rambase) : spc.read_word(exattributemap_rambase + tile_address / 2);
+ if (realx0 & 1)
+ exattribute >>= 8;
+ else
+ exattribute &= 0x00ff;
+
+ tile |= (exattribute & 0x07) << 16;
+ //blendlevel = 0x1f; // hack
+ }
+ else if ((ctrl & 2) == 0)
+ { // -(1) bld(1) flip(2) pal(4)
+
+ uint16_t exattribute = (ctrl & 0x0004) ? spc.read_word(exattributemap_rambase) : spc.read_word(exattributemap_rambase + tile_address / 2);
+ if (realx0 & 1)
+ exattribute >>= 8;
+ else
+ exattribute &= 0x00ff;
+
+
+ tileattr &= ~0x000c;
+ tileattr |= (exattribute >> 2) & 0x000c; // flip
+
+ tileattr &= ~0x0f00;
+ tileattr |= (exattribute << 8) & 0x0f00; // palette
+
+ tilectrl &= ~0x0100;
+ tilectrl |= (exattribute << 2) & 0x0100; // blend
+ }
+
+ if (!has_extended_tilemaps)
+ blend = (tilectrl & 0x0100) ? BlendOn : BlendOff;
+ else
+ blend = ((/*tileattr & 0x4000 ||*/ tilectrl & 0x0100)) ? BlendOn : BlendOff; // is this logic even correct or should it just be like above? where is the extra enable needed?
+
+ flip_x = (tileattr & 0x0004) ? FlipXOn : FlipXOff;
+ flip_y = (tileattr & 0x0008);
+
+ palette_offset = (tileattr & 0x0f00) >> 4;
+ // got tile info
+
+ if (upperpalselect)
+ palette_offset |= 0x200;
palette_offset >>= nc_bpp;
palette_offset <<= nc_bpp;
- const int drawx = (x0 * tile_w) - (realxscroll & (tile_w-1));
- draw_tilestrip(blend,flip_x, cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, tile_scanline, drawx, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram);
+ const int drawx = (x0 * tile_w) - (realxscroll & (tile_w - 1));
+ draw_tilestrip(read_from_csspace, screenwidth, drawwidthmask, blend, flip_x, cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, tile_scanline, drawx, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram, blendlevel);
}
}
-void spg_renderer_device::draw_sprite(const rectangle& cliprect, uint32_t* dst, uint32_t scanline, int priority, uint32_t base_addr, address_space &spc, uint16_t* paletteram, uint16_t* spriteram)
+void spg_renderer_device::draw_sprite(bool read_from_csspace, bool has_extended_sprites, bool alt_extrasprite_hack, uint32_t palbank, bool highres, const rectangle& cliprect, uint32_t* dst, uint32_t scanline, int priority, uint32_t spritegfxdata_addr, uint32_t base_addr, address_space &spc, uint16_t* paletteram, uint16_t* spriteram)
{
- uint32_t tilegfxdata_addr = 0x40 * m_video_regs_22;
- uint16_t tile = spriteram[base_addr + 0];
+ uint32_t tilegfxdata_addr = spritegfxdata_addr;
+ uint32_t tile = spriteram[base_addr + 0];
int16_t x = spriteram[base_addr + 1];
int16_t y = spriteram[base_addr + 2];
uint16_t attr = spriteram[base_addr + 3];
@@ -397,79 +607,152 @@ void spg_renderer_device::draw_sprite(const rectangle& cliprect, uint32_t* dst,
return;
}
+
+ uint32_t screenwidth = 320;
+// uint32_t screenheight = 240;
+ uint32_t screenheight = 256;
+ uint32_t xmask = 0x1ff;
+ uint32_t ymask = 0x1ff;
+
+ if (highres)
+ {
+ screenwidth = 640;
+// screenheight = 480;
+ screenheight = 512;
+ xmask = 0x3ff;
+ ymask = 0x3ff;
+ }
+
const uint32_t tile_h = 8 << ((attr & 0x00c0) >> 6);
const uint32_t tile_w = 8 << ((attr & 0x0030) >> 4);
if (!(m_video_regs_42 & 0x0002))
{
- x = (160 + x) - tile_w / 2;
- y = (120 - y) - (tile_h / 2) + 8;
+ x = ((screenwidth/2) + x) - tile_w / 2;
+// y = ((screenheight/2) - y) - (tile_h / 2) + 8;
+ y = ((screenheight/2) - y) - (tile_h / 2);
}
- x &= 0x01ff;
- y &= 0x01ff;
+ x &= xmask;
+ y &= ymask;
int firstline = y;
int lastline = y + (tile_h - 1);
- lastline &= 0x1ff;
+ lastline &= ymask;
const spg_renderer_device::blend_enable_t blend = (attr & 0x4000) ? BlendOn : BlendOff;
- const spg_renderer_device::flipx_t flip_x = (attr & 0x0004) ? FlipXOn : FlipXOff;
+ spg_renderer_device::flipx_t flip_x = (attr & 0x0004) ? FlipXOn : FlipXOff;
const uint8_t bpp = attr & 0x0003;
const uint32_t nc_bpp = ((bpp)+1) << 1;
const uint32_t bits_per_row = nc_bpp * tile_w / 16;
- const uint32_t words_per_tile = bits_per_row * tile_h;
+ uint8_t blendlevel = (m_video_regs_2a & 3) << 6;
+
+ uint32_t words_per_tile;
+
+ // good for gormiti, smartfp, wrlshunt, paccon, jak_totm, jak_s500, jak_gtg
+ if (has_extended_sprites && ((m_video_regs_42 & 0x0010) == 0x10))
+ {
+ // paccon and smartfp use this mode
+ words_per_tile = 8;
+
+ if (!alt_extrasprite_hack) // 1 extra word for each sprite
+ {
+ // before or after the 0 tile check?
+ tile |= (spriteram[(base_addr / 4) + 0x400] & 0x01ff) << 16;
+ blendlevel = ((spriteram[(base_addr / 4) + 0x400] & 0x3e00) >> 9) << 3;
+ }
+ else // jak_prft - no /4 to offset in this mode - 4 extra words per sprite instead ? (or is RAM content incorrect for one of these cases?)
+ {
+ tile |= spriteram[(base_addr) + 0x400] << 16;
+ blendlevel = ((spriteram[(base_addr) + 0x400] & 0x3e00) >> 9) << 3;
+ }
+ }
+ else
+ {
+ words_per_tile = bits_per_row * tile_h;
+ }
+
bool flip_y = (attr & 0x0008);
+
+ // various games don't want the flip bits in the usual place, wrlshunt for example, there's probably a bit to control this
+ // and likewise these bits probably now have a different meaning, so this shouldn't be trusted
+ if (has_extended_sprites)
+ {
+ if (highres || alt_extrasprite_hack)
+ {
+ flip_x = FlipXOff;
+ flip_y = 0;
+ }
+ }
+
uint32_t palette_offset = (attr & 0x0f00) >> 4;
+ if (has_extended_sprites)
+ {
+ // guess, tkmag220 / myac220 don't set this bit and expect all sprite palettes to be from the same bank as background palettes
+ if (palbank & 1)
+ palette_offset |= 0x100;
+
+ // many other gpl16250 sets have this bit set when they want the upper 256 colours on a per-sprite basis, seems like an extended feature
+ if (attr & 0x8000)
+ palette_offset |= 0x200;
+ }
+
// the Circuit Racing game in PDC100 needs this or some graphics have bad colours at the edges when turning as it leaves stray lower bits set
palette_offset >>= nc_bpp;
palette_offset <<= nc_bpp;
-
if (firstline < lastline)
{
int scanx = scanline - firstline;
if ((scanx >= 0) && (scanline <= lastline))
{
- draw_tilestrip(blend, flip_x, cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, scanx, x, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram);
+ draw_tilestrip(read_from_csspace, screenwidth, xmask, blend, flip_x, cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, scanx, x, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram, blendlevel);
}
}
else
{
// clipped from top
- int tempfirstline = firstline - 0x200;
+ int tempfirstline = firstline - (screenheight<<1);
int templastline = lastline;
int scanx = scanline - tempfirstline;
if ((scanx >= 0) && (scanline <= templastline))
{
- draw_tilestrip(blend, flip_x, cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, scanx, x, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram);
+ draw_tilestrip(read_from_csspace, screenwidth, xmask, blend, flip_x, cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, scanx, x, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram, blendlevel);
}
// clipped against the bottom
tempfirstline = firstline;
- templastline = lastline + 0x200;
+ templastline = lastline + (screenheight<<1);
scanx = scanline - tempfirstline;
if ((scanx >= 0) && (scanline <= templastline))
{
- draw_tilestrip(blend, flip_x, cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, scanx, x, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram);
+ draw_tilestrip(read_from_csspace, screenwidth, xmask, blend, flip_x, cliprect, dst, tile_h, tile_w, tilegfxdata_addr, tile, scanx, x, flip_y, palette_offset, nc_bpp, bits_per_row, words_per_tile, spc, paletteram, blendlevel);
}
}
}
-void spg_renderer_device::draw_sprites(const rectangle &cliprect, uint32_t* dst, uint32_t scanline, int priority, address_space &spc, uint16_t* paletteram, uint16_t* spriteram, int sprlimit)
+void spg_renderer_device::draw_sprites(bool read_from_csspace, bool has_extended_sprites, bool alt_extrasprite_hack, uint32_t palbank, bool highres, const rectangle &cliprect, uint32_t* dst, uint32_t scanline, int priority, uint32_t spritegfxdata_addr, address_space &spc, uint16_t* paletteram, uint16_t* spriteram, int sprlimit)
{
if (!(m_video_regs_42 & 0x0001))
{
return;
}
+ // paccon suggests this, does older hardware have similar (if so, starting at what point?) or only GPL16250?
+ if (sprlimit == -1)
+ {
+ sprlimit = (m_video_regs_42 & 0xff00) >> 8;
+ if (sprlimit == 0)
+ sprlimit = 0x100;
+ }
+
for (uint32_t n = 0; n < sprlimit; n++)
{
- draw_sprite(cliprect, dst, scanline, priority, 4 * n, spc, paletteram, spriteram);
+ draw_sprite(read_from_csspace, has_extended_sprites, alt_extrasprite_hack, palbank, highres, cliprect, dst, scanline, priority, spritegfxdata_addr, 4 * n, spc, paletteram, spriteram);
}
}
diff --git a/src/devices/machine/spg_renderer.h b/src/devices/machine/spg_renderer.h
index cbdb7ccd8d2..50ecf6ff11c 100644
--- a/src/devices/machine/spg_renderer.h
+++ b/src/devices/machine/spg_renderer.h
@@ -14,14 +14,14 @@ public:
spg_renderer_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
spg_renderer_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- void draw_sprites(const rectangle& cliprect, uint32_t* dst, uint32_t scanline, int priority, address_space& spc, uint16_t* paletteram, uint16_t* spriteram, int sprlimit);
- void draw_page(const rectangle& cliprect, uint32_t* dst, uint32_t scanline, int priority, uint32_t tilegfxdata_addr, uint16_t* scrollregs, uint16_t* tilemapregs, address_space& spc, uint16_t* paletteram, uint16_t* scrollram);
+ void draw_sprites(bool read_from_csspace, bool has_extended_sprites, bool alt_extrasprite_hack, uint32_t palbank, bool highres, const rectangle& cliprect, uint32_t* dst, uint32_t scanline, int priority, uint32_t spritegfxdata_addr, address_space& spc, uint16_t* paletteram, uint16_t* spriteram, int sprlimit);
+ void draw_page(bool read_from_csspace, bool has_extended_tilemaps, bool use_alt_tile_addressing, uint32_t palbank, const rectangle& cliprect, uint32_t* dst, uint32_t scanline, int priority, uint32_t tilegfxdata_addr, uint16_t* scrollregs, uint16_t* tilemapregs, address_space& spc, uint16_t* paletteram, uint16_t* scrollram, uint32_t which);
+
void apply_saturation_and_fade(bitmap_rgb32& bitmap, const rectangle& cliprect, int scanline);
void set_video_reg_1c(uint16_t val) { m_video_regs_1c = val; update_vcmp_table(); }
void set_video_reg_1d(uint16_t val) { m_video_regs_1d = val; update_vcmp_table(); }
void set_video_reg_1e(uint16_t val) { m_video_regs_1e = val; update_vcmp_table(); }
- void set_video_reg_22(uint16_t val) { m_video_regs_22 = val; }
void set_video_reg_2a(uint16_t val) { m_video_regs_2a = val; }
void set_video_reg_30(uint16_t val) { m_video_regs_30 = val; }
void set_video_reg_3c(uint16_t val) { m_video_regs_3c = val; }
@@ -30,12 +30,18 @@ public:
uint16_t get_video_reg_1c(void) { return m_video_regs_1c; }
uint16_t get_video_reg_1d(void) { return m_video_regs_1d; }
uint16_t get_video_reg_1e(void) { return m_video_regs_1e; }
- uint16_t get_video_reg_22(void) { return m_video_regs_22; }
uint16_t get_video_reg_2a(void) { return m_video_regs_2a; }
uint16_t get_video_reg_30(void) { return m_video_regs_30; }
uint16_t get_video_reg_3c(void) { return m_video_regs_3c; }
uint16_t get_video_reg_42(void) { return m_video_regs_42; }
+ // used by some hack logic for the gpl16250 rendering for now
+ void set_video_reg_7f(uint16_t val) { m_video_regs_7f = val; }
+ uint16_t get_video_reg_7f(void) { return m_video_regs_7f; }
+
+ auto space_read_callback() { return m_space_read_cb.bind(); }
+ void set_video_spaces(address_space* cpuspace, address_space* cs_space, int csbase) { m_cpuspace = cpuspace; m_cs_space = cs_space; m_csbase = csbase; }
+
protected:
virtual void device_start() override;
@@ -54,22 +60,21 @@ protected:
};
template<spg_renderer_device::blend_enable_t Blend, spg_renderer_device::flipx_t FlipX>
- inline void draw_tilestrip(const rectangle& cliprect, uint32_t* dst, uint32_t tile_h, uint32_t tile_w, uint32_t tilegfxdata_addr, uint16_t tile, uint32_t tile_scanline, int drawx, bool flip_y, uint32_t palette_offset, const uint32_t nc_bpp, const uint32_t bits_per_row, const uint32_t words_per_tile, address_space &spc, uint16_t* palette);
-
- inline void draw_tilestrip(spg_renderer_device::blend_enable_t blend, spg_renderer_device::flipx_t flip_x, const rectangle& cliprect, uint32_t* dst, uint32_t tile_h, uint32_t tile_w, uint32_t tilegfxdata_addr, uint16_t tile, uint32_t tile_scanline, int drawx, bool flip_y, uint32_t palette_offset, const uint32_t nc_bpp, const uint32_t bits_per_row, const uint32_t words_per_tile, address_space& spc, uint16_t* paletteram);
+ inline void draw_tilestrip(bool read_from_csspace, uint32_t screenwidth, uint32_t drawwidthmask, const rectangle& cliprect, uint32_t* dst, uint32_t tile_h, uint32_t tile_w, uint32_t tilegfxdata_addr, uint32_t tile, uint32_t tile_scanline, int drawx, bool flip_y, uint32_t palette_offset, const uint32_t nc_bpp, const uint32_t bits_per_row, const uint32_t words_per_tile, address_space &spc, uint16_t* palette, uint8_t blendlevel);
+ inline void draw_tilestrip(bool read_from_csspace, uint32_t screenwidth, uint32_t drawwidthmask, spg_renderer_device::blend_enable_t blend, spg_renderer_device::flipx_t flip_x, const rectangle& cliprect, uint32_t* dst, uint32_t tile_h, uint32_t tile_w, uint32_t tilegfxdata_addr, uint32_t tile, uint32_t tile_scanline, int drawx, bool flip_y, uint32_t palette_offset, const uint32_t nc_bpp, const uint32_t bits_per_row, const uint32_t words_per_tile, address_space& spc, uint16_t* paletteram, uint8_t blendlevel);
- void draw_sprite(const rectangle& cliprect, uint32_t* dst, uint32_t scanline, int priority, uint32_t base_addr, address_space& spc, uint16_t* paletteram, uint16_t* spriteram);
+ inline void draw_sprite(bool read_from_csspace, bool has_extended_sprites, bool alt_extrasprite_hack, uint32_t palbank, bool highres, const rectangle& cliprect, uint32_t* dst, uint32_t scanline, int priority, uint32_t spritegfxdata_addr, uint32_t base_addr, address_space& spc, uint16_t* paletteram, uint16_t* spriteram);
- inline bool get_tile_info(uint32_t tilemap_rambase, uint32_t palettemap_rambase, uint32_t x0, uint32_t y0, uint32_t tile_count_x, uint32_t ctrl, uint32_t attr, uint16_t& tile, spg_renderer_device::blend_enable_t& blend, spg_renderer_device::flipx_t& flip_x, bool& flip_y, uint32_t& palette_offset, address_space& spc);
- inline void draw_linemap(const rectangle& cliprect, uint32_t* dst, uint32_t scanline, int priority, uint32_t tilegfxdata_addr, uint16_t* scrollregs, uint16_t* tilemapregs, address_space& spc, uint16_t* paletteram);
+ inline void draw_linemap(bool has_extended_tilemaps, const rectangle& cliprect, uint32_t* dst, uint32_t scanline, int priority, uint32_t tilegfxdata_addr, uint16_t* scrollregs, uint16_t* tilemapregs, address_space& spc, uint16_t* paletteram);
- uint8_t mix_channel(uint8_t a, uint8_t b);
+ inline uint8_t mix_channel(uint8_t a, uint8_t b, uint8_t alpha);
uint8_t m_rgb5_to_rgb8[32];
uint32_t m_rgb555_to_rgb888[0x8000];
private:
+
void update_vcmp_table();
uint16_t m_video_regs_1c;
@@ -77,14 +82,20 @@ private:
uint16_t m_video_regs_1e;
uint16_t m_video_regs_2a;
- uint16_t m_video_regs_22;
uint16_t m_video_regs_42;
uint16_t m_video_regs_30;
uint16_t m_video_regs_3c;
+ uint16_t m_video_regs_7f;
uint32_t m_ycmp_table[480];
+
+ devcb_read16 m_space_read_cb;
+
+ address_space* m_cpuspace;
+ address_space* m_cs_space;
+ int m_csbase;
};
DECLARE_DEVICE_TYPE(SPG_RENDERER, spg_renderer_device)
diff --git a/src/mame/audio/asteroid.cpp b/src/mame/audio/asteroid.cpp
index cbae5ac9efb..ba965b77f4f 100644
--- a/src/mame/audio/asteroid.cpp
+++ b/src/mame/audio/asteroid.cpp
@@ -281,7 +281,7 @@ static DISCRETE_SOUND_START(astdelux_discrete)
DISCRETE_SOUND_END
-WRITE8_MEMBER(asteroid_state::asteroid_explode_w)
+void asteroid_state::asteroid_explode_w(uint8_t data)
{
m_discrete->write(ASTEROID_EXPLODE_DATA,(data&0x3c)>>2); // Volume
/* We will modify the pitch data to send the divider value. */
@@ -303,13 +303,13 @@ WRITE8_MEMBER(asteroid_state::asteroid_explode_w)
m_discrete->write(ASTEROID_EXPLODE_PITCH, data);
}
-WRITE8_MEMBER(asteroid_state::asteroid_thump_w)
+void asteroid_state::asteroid_thump_w(uint8_t data)
{
m_discrete->write(ASTEROID_THUMP_EN, data & 0x10);
m_discrete->write(ASTEROID_THUMP_DATA, data & 0x0f);
}
-WRITE8_MEMBER(asteroid_state::asteroid_noise_reset_w)
+void asteroid_state::asteroid_noise_reset_w(uint8_t data)
{
m_discrete->write(ASTEROID_NOISE_RESET, 0);
}
diff --git a/src/mame/audio/astrof.cpp b/src/mame/audio/astrof.cpp
index 663013e1bc8..63ea0bdf085 100644
--- a/src/mame/audio/astrof.cpp
+++ b/src/mame/audio/astrof.cpp
@@ -33,7 +33,7 @@
#define CHANNEL_FUEL 3
-WRITE8_MEMBER(astrof_state::astrof_audio_1_w)
+void astrof_state::astrof_audio_1_w(uint8_t data)
{
uint8_t rising_bits = data & ~m_port_1_last;
@@ -78,7 +78,7 @@ WRITE8_MEMBER(astrof_state::astrof_audio_1_w)
}
-WRITE8_MEMBER(astrof_state::astrof_audio_2_w)
+void astrof_state::astrof_audio_2_w(uint8_t data)
{
uint8_t rising_bits = data & ~m_port_2_last;
@@ -156,7 +156,7 @@ void astrof_state::astrof_audio(machine_config &config)
*
*************************************/
-WRITE8_MEMBER(astrof_state::spfghmk2_audio_w)
+void astrof_state::spfghmk2_audio_w(uint8_t data)
{
/* nothing yet */
}
@@ -175,7 +175,7 @@ void astrof_state::spfghmk2_audio(machine_config &config)
*
*************************************/
-WRITE8_MEMBER(astrof_state::tomahawk_audio_w)
+void astrof_state::tomahawk_audio_w(uint8_t data)
{
/* D0 - sonar */
diff --git a/src/mame/audio/avalnche.cpp b/src/mame/audio/avalnche.cpp
index 471c73a8e5c..3f63d9ca6b1 100644
--- a/src/mame/audio/avalnche.cpp
+++ b/src/mame/audio/avalnche.cpp
@@ -24,7 +24,7 @@
Avalanche memory audio output handlers
***************************************************************************/
-WRITE8_MEMBER(avalnche_state::avalnche_noise_amplitude_w)
+void avalnche_state::avalnche_noise_amplitude_w(uint8_t data)
{
m_discrete->write(AVALNCHE_SOUNDLVL_DATA, data & 0x3f);
}
diff --git a/src/mame/audio/aztarac.cpp b/src/mame/audio/aztarac.cpp
index 24d0a930fd3..4297509c8a7 100644
--- a/src/mame/audio/aztarac.cpp
+++ b/src/mame/audio/aztarac.cpp
@@ -11,12 +11,12 @@
#include "includes/aztarac.h"
-READ16_MEMBER(aztarac_state::sound_r)
+uint16_t aztarac_state::sound_r()
{
return m_sound_status & 0x01;
}
-WRITE16_MEMBER(aztarac_state::sound_w)
+void aztarac_state::sound_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
if (ACCESSING_BITS_0_7)
{
@@ -28,19 +28,19 @@ WRITE16_MEMBER(aztarac_state::sound_w)
}
}
-READ8_MEMBER(aztarac_state::snd_command_r)
+uint8_t aztarac_state::snd_command_r()
{
m_sound_status |= 0x01;
m_sound_status &= ~0x20;
return m_soundlatch->read();
}
-READ8_MEMBER(aztarac_state::snd_status_r)
+uint8_t aztarac_state::snd_status_r()
{
return m_sound_status & ~0x01;
}
-WRITE8_MEMBER(aztarac_state::snd_status_w)
+void aztarac_state::snd_status_w(uint8_t data)
{
m_sound_status &= ~0x10;
}
diff --git a/src/mame/audio/bsktball.cpp b/src/mame/audio/bsktball.cpp
index 3acf428145b..082322e41ff 100644
--- a/src/mame/audio/bsktball.cpp
+++ b/src/mame/audio/bsktball.cpp
@@ -12,13 +12,13 @@
/***************************************************************************
Sound handlers
***************************************************************************/
-WRITE8_MEMBER(bsktball_state::bsktball_bounce_w)
+void bsktball_state::bsktball_bounce_w(uint8_t data)
{
m_discrete->write(BSKTBALL_CROWD_DATA, data & 0x0f); // Crowd
m_discrete->write(BSKTBALL_BOUNCE_EN, data & 0x10); // Bounce
}
-WRITE8_MEMBER(bsktball_state::bsktball_note_w)
+void bsktball_state::bsktball_note_w(uint8_t data)
{
m_discrete->write(BSKTBALL_NOTE_DATA, data); // Note
}
diff --git a/src/mame/audio/llander.cpp b/src/mame/audio/llander.cpp
index 80429f032f4..82324455beb 100644
--- a/src/mame/audio/llander.cpp
+++ b/src/mame/audio/llander.cpp
@@ -83,13 +83,13 @@ static DISCRETE_SOUND_START(llander_discrete)
DISCRETE_OUTPUT(NODE_90, 65534.0/(9.2+9.2+600+1000)) // Take the output from the mixer
DISCRETE_SOUND_END
-WRITE8_MEMBER(asteroid_state::llander_snd_reset_w)
+void asteroid_state::llander_snd_reset_w(uint8_t data)
{
/* Resets the LFSR that is used for the white noise generator */
m_discrete->write(LLANDER_NOISE_RESET, 0); /* Reset */
}
-WRITE8_MEMBER(asteroid_state::llander_sounds_w)
+void asteroid_state::llander_sounds_w(uint8_t data)
{
m_discrete->write(LLANDER_THRUST_DATA, data & 0x07); /* Thrust volume */
m_discrete->write(LLANDER_TONE3K_EN, data & 0x10); /* Tone 3KHz enable */
diff --git a/src/mame/drivers/abc1600.cpp b/src/mame/drivers/abc1600.cpp
index 01d1f86e677..89e2ab0bb6b 100644
--- a/src/mame/drivers/abc1600.cpp
+++ b/src/mame/drivers/abc1600.cpp
@@ -122,7 +122,7 @@ enum
// bus_r -
//-------------------------------------------------
-READ8_MEMBER( abc1600_state::bus_r )
+uint8_t abc1600_state::bus_r(offs_t offset)
{
uint8_t data = 0;
@@ -264,7 +264,7 @@ READ8_MEMBER( abc1600_state::bus_r )
// bus_w -
//-------------------------------------------------
-WRITE8_MEMBER( abc1600_state::bus_w )
+void abc1600_state::bus_w(offs_t offset, uint8_t data)
{
uint8_t cs = (m_cs7 << 7) | ((offset >> 5) & 0x3f);
@@ -360,7 +360,7 @@ WRITE8_MEMBER( abc1600_state::bus_w )
// fw0_w -
//-------------------------------------------------
-WRITE8_MEMBER( abc1600_state::fw0_w )
+void abc1600_state::fw0_w(uint8_t data)
{
/*
@@ -397,7 +397,7 @@ WRITE8_MEMBER( abc1600_state::fw0_w )
// fw1_w -
//-------------------------------------------------
-WRITE8_MEMBER( abc1600_state::fw1_w )
+void abc1600_state::fw1_w(uint8_t data)
{
/*
@@ -428,7 +428,7 @@ WRITE8_MEMBER( abc1600_state::fw1_w )
// spec_contr_reg_w -
//-------------------------------------------------
-WRITE8_MEMBER( abc1600_state::spec_contr_reg_w )
+void abc1600_state::spec_contr_reg_w(uint8_t data)
{
int state = BIT(data, 3);
@@ -602,41 +602,41 @@ void abc1600_state::update_drdy2()
// Z80DART
//-------------------------------------------------
-READ8_MEMBER( abc1600_state::dart_r )
+uint8_t abc1600_state::dart_r(offs_t offset)
{
return m_dart->ba_cd_r(A2_A1 ^ 0x03);
}
-WRITE8_MEMBER( abc1600_state::dart_w )
+void abc1600_state::dart_w(offs_t offset, uint8_t data)
{
m_dart->ba_cd_w(A2_A1 ^ 0x03, data);
}
//-------------------------------------------------
-// SCC8530_INTERFACE( sc_intf )
+// SCC8530
//-------------------------------------------------
-READ8_MEMBER( abc1600_state::scc_r )
+uint8_t abc1600_state::scc_r(offs_t offset)
{
return m_scc->ab_dc_r(A2_A1);
}
-WRITE8_MEMBER( abc1600_state::scc_w )
+void abc1600_state::scc_w(offs_t offset, uint8_t data)
{
m_scc->ab_dc_w(A2_A1, data);
}
//-------------------------------------------------
-// Z8536_INTERFACE( cio_intf )
+// Z8536
//-------------------------------------------------
-READ8_MEMBER( abc1600_state::cio_r )
+uint8_t abc1600_state::cio_r(offs_t offset)
{
return m_cio->read(A2_A1);
}
-WRITE8_MEMBER( abc1600_state::cio_w )
+void abc1600_state::cio_w(offs_t offset, uint8_t data)
{
m_cio->write(A2_A1, data);
}
@@ -828,17 +828,15 @@ void abc1600_state::machine_start()
void abc1600_state::machine_reset()
{
- address_space &program = m_maincpu->space(AS_PROGRAM);
-
// clear special control register
for (int i = 0; i < 8; i++)
{
- spec_contr_reg_w(program, 0, i);
+ spec_contr_reg_w(i);
}
// clear floppy registers
- fw0_w(program, 0, 0);
- fw1_w(program, 0, 0);
+ fw0_w(0);
+ fw1_w(0);
// clear NMI
m_maincpu->set_input_line(M68K_IRQ_7, CLEAR_LINE);
diff --git a/src/mame/drivers/actfancr.cpp b/src/mame/drivers/actfancr.cpp
index 496d0bbb17a..14c6642b530 100644
--- a/src/mame/drivers/actfancr.cpp
+++ b/src/mame/drivers/actfancr.cpp
@@ -51,7 +51,7 @@ uint8_t actfancr_state::triothep_control_r()
/******************************************************************************/
-WRITE8_MEMBER(actfancr_state::buffer_spriteram_w)
+void actfancr_state::buffer_spriteram_w(uint8_t data)
{
uint8_t *src = reinterpret_cast<uint8_t *>(memshare("spriteram")->ptr());
// copy to a 16-bit region for our sprite draw code too
diff --git a/src/mame/drivers/adam.cpp b/src/mame/drivers/adam.cpp
index eb4b4e4387b..c4052ae3162 100644
--- a/src/mame/drivers/adam.cpp
+++ b/src/mame/drivers/adam.cpp
@@ -347,7 +347,7 @@ enum
// mreq_r - memory request read
//-------------------------------------------------
-READ8_MEMBER( adam_state::mreq_r )
+uint8_t adam_state::mreq_r(offs_t offset)
{
int bmreq = 0, biorq = 1, eos_enable = 1, boot_rom_cs = 1, aux_decode_1 = 1, aux_rom_cs = 1, cas1 = 1, cas2 = 1, cs1 = 1, cs2 = 1, cs3 = 1, cs4 = 1;
@@ -470,7 +470,7 @@ READ8_MEMBER( adam_state::mreq_r )
// mreq_w - memory request write
//-------------------------------------------------
-WRITE8_MEMBER( adam_state::mreq_w )
+void adam_state::mreq_w(offs_t offset, uint8_t data)
{
int bmreq = 0, biorq = 1, aux_rom_cs = 1, cas1 = 1, cas2 = 1;
@@ -526,7 +526,7 @@ WRITE8_MEMBER( adam_state::mreq_w )
// iorq_r - I/O request read
//-------------------------------------------------
-READ8_MEMBER( adam_state::iorq_r )
+uint8_t adam_state::iorq_r(offs_t offset)
{
int bmreq = 1, biorq = 0, aux_rom_cs = 1, cas1 = 1, cas2 = 1;
@@ -535,11 +535,11 @@ READ8_MEMBER( adam_state::iorq_r )
switch ((offset >> 5) & 0x07)
{
case 1:
- data = adamnet_r(space, 0);
+ data = adamnet_r();
break;
case 3:
- data = mioc_r(space, 0);
+ data = mioc_r();
break;
case 5:
@@ -569,18 +569,18 @@ READ8_MEMBER( adam_state::iorq_r )
// iorq_w - I/O request write
//-------------------------------------------------
-WRITE8_MEMBER( adam_state::iorq_w )
+void adam_state::iorq_w(offs_t offset, uint8_t data)
{
int bmreq = 1, biorq = 0, aux_rom_cs = 1, cas1 = 1, cas2 = 1;
switch ((offset >> 5) & 0x07)
{
case 1:
- adamnet_w(space, 0, data);
+ adamnet_w(data);
break;
case 3:
- mioc_w(space, 0, data);
+ mioc_w(data);
break;
case 4:
@@ -619,7 +619,7 @@ WRITE8_MEMBER( adam_state::iorq_w )
// mioc_r -
//-------------------------------------------------
-READ8_MEMBER( adam_state::mioc_r )
+uint8_t adam_state::mioc_r()
{
return m_mioc & 0x0f;
}
@@ -629,7 +629,7 @@ READ8_MEMBER( adam_state::mioc_r )
// mioc_w -
//-------------------------------------------------
-WRITE8_MEMBER( adam_state::mioc_w )
+void adam_state::mioc_w(uint8_t data)
{
/*
@@ -659,7 +659,7 @@ WRITE8_MEMBER( adam_state::mioc_w )
// adamnet_r -
//-------------------------------------------------
-READ8_MEMBER( adam_state::adamnet_r )
+uint8_t adam_state::adamnet_r()
{
return m_an & 0x0f;
}
@@ -669,7 +669,7 @@ READ8_MEMBER( adam_state::adamnet_r )
// adamnet_w -
//-------------------------------------------------
-WRITE8_MEMBER( adam_state::adamnet_w )
+void adam_state::adamnet_w(uint8_t data)
{
/*
diff --git a/src/mame/drivers/aeroboto.cpp b/src/mame/drivers/aeroboto.cpp
index 9ec149faaa6..7957ef66f23 100644
--- a/src/mame/drivers/aeroboto.cpp
+++ b/src/mame/drivers/aeroboto.cpp
@@ -36,7 +36,7 @@ Revisions:
#include "speaker.h"
-READ8_MEMBER(aeroboto_state::aeroboto_201_r)
+uint8_t aeroboto_state::aeroboto_201_r()
{
/* if you keep a button pressed during boot, the game will expect this */
/* serie of values to be returned from 3004, and display "PASS 201" if it is */
@@ -60,19 +60,19 @@ WRITE_LINE_MEMBER(aeroboto_state::vblank_irq)
}
}
-READ8_MEMBER(aeroboto_state::aeroboto_irq_ack_r)
+uint8_t aeroboto_state::aeroboto_irq_ack_r()
{
m_maincpu->set_input_line(0, CLEAR_LINE);
return 0xff;
}
-READ8_MEMBER(aeroboto_state::aeroboto_2973_r)
+uint8_t aeroboto_state::aeroboto_2973_r()
{
m_mainram[0x02be] = 0;
return 0xff;
}
-WRITE8_MEMBER(aeroboto_state::aeroboto_1a2_w)
+void aeroboto_state::aeroboto_1a2_w(uint8_t data)
{
m_mainram[0x01a2] = data;
if (data)
diff --git a/src/mame/drivers/aerofgt.cpp b/src/mame/drivers/aerofgt.cpp
index 0c1ee42e98e..638208e532b 100644
--- a/src/mame/drivers/aerofgt.cpp
+++ b/src/mame/drivers/aerofgt.cpp
@@ -75,34 +75,34 @@ Verification still needed for the other PCBs.
#include "speaker.h"
-WRITE8_MEMBER(aerofgt_state::karatblzbl_soundlatch_w)
+void aerofgt_state::karatblzbl_soundlatch_w(uint8_t data)
{
m_soundlatch->write(data);
m_audiocpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
}
-READ8_MEMBER(aerofgt_state::pending_command_r)
+uint8_t aerofgt_state::pending_command_r()
{
return m_soundlatch->pending_r();
}
-WRITE8_MEMBER(aerofgt_state::aerofgt_sh_bankswitch_w)
+void aerofgt_state::aerofgt_sh_bankswitch_w(uint8_t data)
{
m_soundbank->set_entry(data & 0x03);
}
-WRITE8_MEMBER(aerofgt_state::spinlbrk_sh_bankswitch_w)
+void aerofgt_state::spinlbrk_sh_bankswitch_w(uint8_t data)
{
m_soundbank->set_entry(data & 0x01);
}
-WRITE16_MEMBER(aerofgt_state::pspikesb_oki_banking_w)
+void aerofgt_state::pspikesb_oki_banking_w(uint16_t data)
{
m_oki->set_rom_bank(data & 3);
}
/*TODO: sound banking. */
-WRITE16_MEMBER(aerofgt_state::aerfboo2_okim6295_banking_w)
+void aerofgt_state::aerfboo2_okim6295_banking_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
// if(ACCESSING_BITS_8_15)
// {
@@ -110,40 +110,40 @@ WRITE16_MEMBER(aerofgt_state::aerfboo2_okim6295_banking_w)
// }
}
-WRITE8_MEMBER(aerofgt_state::aerfboot_okim6295_banking_w)
+void aerofgt_state::aerfboot_okim6295_banking_w(uint8_t data)
{
/*bit 2 (0x4) set too?*/
if (data & 0x4)
m_okibank->set_entry(data & 0x3);
}
-WRITE8_MEMBER(aerofgt_state::karatblzbl_d7759_write_port_0_w)
+void aerofgt_state::karatblzbl_d7759_write_port_0_w(uint8_t data)
{
m_upd7759->port_w(data);
m_upd7759->start_w(0);
m_upd7759->start_w(1);
}
-WRITE8_MEMBER(aerofgt_state::karatblzbl_d7759_reset_w)
+void aerofgt_state::karatblzbl_d7759_reset_w(uint8_t data)
{
m_upd7759->reset_w(BIT(data, 7));
}
template<int Layer>
-WRITE16_MEMBER(aerofgt_state::vram_w)
+void aerofgt_state::vram_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_vram[Layer][offset]);
m_tilemap[Layer]->mark_tile_dirty(offset);
}
template<int Layer>
-WRITE16_MEMBER(aerofgt_state::scrollx_w)
+void aerofgt_state::scrollx_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_scrollx[Layer]);
}
template<int Layer>
-WRITE16_MEMBER(aerofgt_state::scrolly_w)
+void aerofgt_state::scrolly_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_scrolly[Layer]);
}
diff --git a/src/mame/drivers/airbustr.cpp b/src/mame/drivers/airbustr.cpp
index 9c757d3f2e5..50d0d447d76 100644
--- a/src/mame/drivers/airbustr.cpp
+++ b/src/mame/drivers/airbustr.cpp
@@ -229,7 +229,7 @@ Code at 505: waits for bit 1 to go low, writes command, waits for bit
/* Read/Write Handlers */
-READ8_MEMBER(airbustr_state::devram_r)
+uint8_t airbustr_state::devram_r(address_space &space, offs_t offset)
{
// There's an MCU here, possibly
switch (offset)
@@ -262,17 +262,17 @@ READ8_MEMBER(airbustr_state::devram_r)
}
}
-WRITE8_MEMBER(airbustr_state::master_nmi_trigger_w)
+void airbustr_state::master_nmi_trigger_w(uint8_t data)
{
m_slave->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
}
-WRITE8_MEMBER(airbustr_state::master_bankswitch_w)
+void airbustr_state::master_bankswitch_w(uint8_t data)
{
m_masterbank->set_entry(data & 0x07);
}
-WRITE8_MEMBER(airbustr_state::slave_bankswitch_w)
+void airbustr_state::slave_bankswitch_w(uint8_t data)
{
m_slavebank->set_entry(data & 0x07);
@@ -285,12 +285,12 @@ WRITE8_MEMBER(airbustr_state::slave_bankswitch_w)
m_pandora->set_clear_bitmap(BIT(data, 5));
}
-WRITE8_MEMBER(airbustr_state::sound_bankswitch_w)
+void airbustr_state::sound_bankswitch_w(uint8_t data)
{
m_audiobank->set_entry(data & 0x07);
}
-READ8_MEMBER(airbustr_state::soundcommand_status_r)
+uint8_t airbustr_state::soundcommand_status_r()
{
// bits: 2 <-> ? 1 <-> soundlatch full 0 <-> soundlatch2 empty
return 4 | (m_soundlatch[0]->pending_r() << 1) | !m_soundlatch[1]->pending_r();
@@ -298,20 +298,20 @@ READ8_MEMBER(airbustr_state::soundcommand_status_r)
template<int Layer>
-WRITE8_MEMBER(airbustr_state::videoram_w)
+void airbustr_state::videoram_w(offs_t offset, uint8_t data)
{
m_videoram[Layer][offset] = data;
m_tilemap[Layer]->mark_tile_dirty(offset);
}
template<int Layer>
-WRITE8_MEMBER(airbustr_state::colorram_w)
+void airbustr_state::colorram_w(offs_t offset, uint8_t data)
{
m_colorram[Layer][offset] = data;
m_tilemap[Layer]->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(airbustr_state::coin_counter_w)
+void airbustr_state::coin_counter_w(uint8_t data)
{
machine().bookkeeping().coin_counter_w(0, data & 1);
machine().bookkeeping().coin_counter_w(1, data & 2);
@@ -699,7 +699,7 @@ ROM_END
void airbustr_state::init_airbustr()
{
- m_master->space(AS_PROGRAM).install_read_handler(0xe000, 0xefff, read8_delegate(*this, FUNC(airbustr_state::devram_r))); // protection device lives here
+ m_master->space(AS_PROGRAM).install_read_handler(0xe000, 0xefff, read8m_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 cba3c579e0e..6daf1ff2c29 100644
--- a/src/mame/drivers/ajax.cpp
+++ b/src/mame/drivers/ajax.cpp
@@ -136,7 +136,7 @@ INPUT_PORTS_END
0 / 2MBANK
*/
-WRITE8_MEMBER(ajax_state::sound_bank_w)
+void ajax_state::sound_bank_w(uint8_t data)
{
int bank_A, bank_B;
@@ -157,7 +157,7 @@ void ajax_state::volume_callback0(uint8_t data)
m_k007232_1->set_volume(1, 0, (data & 0x0f) * 0x11);
}
-WRITE8_MEMBER(ajax_state::k007232_extvol_w)
+void ajax_state::k007232_extvol_w(uint8_t data)
{
/* channel A volume (mono) */
m_k007232_2->set_volume(0, (data & 0x0f) * 0x11/2, (data & 0x0f) * 0x11/2);
diff --git a/src/mame/drivers/aliens.cpp b/src/mame/drivers/aliens.cpp
index ddf4af77576..61323201803 100644
--- a/src/mame/drivers/aliens.cpp
+++ b/src/mame/drivers/aliens.cpp
@@ -20,7 +20,7 @@ Preliminary driver by:
#include "speaker.h"
-WRITE8_MEMBER(aliens_state::aliens_coin_counter_w)
+void aliens_state::aliens_coin_counter_w(uint8_t data)
{
/* bits 0-1 = coin counters */
machine().bookkeeping().coin_counter_w(0, data & 0x01);
@@ -42,7 +42,7 @@ WRITE8_MEMBER(aliens_state::aliens_coin_counter_w)
#endif
}
-WRITE8_MEMBER(aliens_state::aliens_sh_irqtrigger_w)
+void aliens_state::aliens_sh_irqtrigger_w(uint8_t data)
{
m_soundlatch->write(data);
m_audiocpu->set_input_line(0, HOLD_LINE);
@@ -60,7 +60,7 @@ void aliens_state::aliens_snd_bankswitch_w(uint8_t data)
}
-READ8_MEMBER(aliens_state::k052109_051960_r)
+uint8_t aliens_state::k052109_051960_r(offs_t offset)
{
if (m_k052109->get_rmrd_line() == CLEAR_LINE)
{
@@ -75,7 +75,7 @@ READ8_MEMBER(aliens_state::k052109_051960_r)
return m_k052109->read(offset);
}
-WRITE8_MEMBER(aliens_state::k052109_051960_w)
+void aliens_state::k052109_051960_w(offs_t offset, uint8_t data)
{
if (offset >= 0x3800 && offset < 0x3808)
m_k051960->k051937_w(offset - 0x3800, data);
diff --git a/src/mame/drivers/altos486.cpp b/src/mame/drivers/altos486.cpp
index c7c8825e5c6..7a62b912028 100644
--- a/src/mame/drivers/altos486.cpp
+++ b/src/mame/drivers/altos486.cpp
@@ -134,7 +134,7 @@ void altos486_state::altos486_z80_io(address_map &map)
void altos486_state::altos486(machine_config &config)
{
- I80186(config, m_maincpu, 32_MHz_XTAL / 4);
+ I80186(config, m_maincpu, 32_MHz_XTAL / 2); // divided by 2 externally and by 2 again internally to operate at 8 MHz
m_maincpu->set_addrmap(AS_PROGRAM, &altos486_state::altos486_mem);
m_maincpu->set_addrmap(AS_IO, &altos486_state::altos486_io);
m_maincpu->set_irq_acknowledge_callback("pic8259", FUNC(pic8259_device::inta_cb)); // yes, really
diff --git a/src/mame/drivers/ampoker2.cpp b/src/mame/drivers/ampoker2.cpp
index c216303d114..8f660b72250 100644
--- a/src/mame/drivers/ampoker2.cpp
+++ b/src/mame/drivers/ampoker2.cpp
@@ -482,7 +482,7 @@ void ampoker2_state::machine_start()
*/
-WRITE8_MEMBER(ampoker2_state::port30_w)
+void ampoker2_state::port30_w(uint8_t data)
/*-------------------------------------------------
PORT_30 C000H ;OUTPUT PORT 30H
---------------------------------------------------
@@ -496,7 +496,7 @@ WRITE8_MEMBER(ampoker2_state::port30_w)
}
-WRITE8_MEMBER(ampoker2_state::port31_w)
+void ampoker2_state::port31_w(uint8_t data)
/*-------------------------------------------------
PORT_31 C001H ;OUTPUT PORT 31H
---------------------------------------------------
@@ -514,7 +514,7 @@ WRITE8_MEMBER(ampoker2_state::port31_w)
}
-WRITE8_MEMBER(ampoker2_state::port32_w)
+void ampoker2_state::port32_w(uint8_t data)
/*-------------------------------------------------
PORT_32 C002H ;OUTPUT PORT 32H
---------------------------------------------------
@@ -529,7 +529,7 @@ WRITE8_MEMBER(ampoker2_state::port32_w)
}
-WRITE8_MEMBER(ampoker2_state::port33_w)
+void ampoker2_state::port33_w(uint8_t data)
/*-------------------------------------------------
PORT_33 C003H ;OUTPUT PORT 33H
---------------------------------------------------
@@ -543,7 +543,7 @@ WRITE8_MEMBER(ampoker2_state::port33_w)
}
-WRITE8_MEMBER(ampoker2_state::port34_w)
+void ampoker2_state::port34_w(uint8_t data)
/*-------------------------------------------------
PORT_34 C004H ;OUTPUT PORT 34H
---------------------------------------------------
@@ -558,7 +558,7 @@ WRITE8_MEMBER(ampoker2_state::port34_w)
}
-WRITE8_MEMBER(ampoker2_state::port35_w)
+void ampoker2_state::port35_w(uint8_t data)
/*-------------------------------------------------
PORT_35 C005H ;OUTPUT PORT 35H
---------------------------------------------------
@@ -572,7 +572,7 @@ WRITE8_MEMBER(ampoker2_state::port35_w)
}
-WRITE8_MEMBER(ampoker2_state::port36_w)
+void ampoker2_state::port36_w(uint8_t data)
/*-------------------------------------------------
PORT_36 C006H ;OUTPUT PORT 36H
---------------------------------------------------
@@ -590,7 +590,7 @@ WRITE8_MEMBER(ampoker2_state::port36_w)
}
-WRITE8_MEMBER(ampoker2_state::watchdog_reset_w)
+void ampoker2_state::watchdog_reset_w(uint8_t data)
/*-------------------------------------------------
PORT_37 C007H ;OUTPUT PORT 37H
---------------------------------------------------
diff --git a/src/mame/drivers/amspdwy.cpp b/src/mame/drivers/amspdwy.cpp
index c25682bca61..4acfac17ad0 100644
--- a/src/mame/drivers/amspdwy.cpp
+++ b/src/mame/drivers/amspdwy.cpp
@@ -54,19 +54,19 @@ uint8_t amspdwy_state::amspdwy_wheel_r( int index )
return m_wheel_return[index] | ioport(portnames[index])->read();
}
-READ8_MEMBER(amspdwy_state::amspdwy_wheel_0_r)
+uint8_t amspdwy_state::amspdwy_wheel_0_r()
{
// player 1
return amspdwy_wheel_r(0);
}
-READ8_MEMBER(amspdwy_state::amspdwy_wheel_1_r)
+uint8_t amspdwy_state::amspdwy_wheel_1_r()
{
// player 2
return amspdwy_wheel_r(1);
}
-READ8_MEMBER(amspdwy_state::amspdwy_sound_r)
+uint8_t amspdwy_state::amspdwy_sound_r()
{
return (m_ym2151->status_r() & ~0x30) | ioport("IN0")->read();
}
diff --git a/src/mame/drivers/angelkds.cpp b/src/mame/drivers/angelkds.cpp
index 6de1129f59c..15e2457d6bf 100644
--- a/src/mame/drivers/angelkds.cpp
+++ b/src/mame/drivers/angelkds.cpp
@@ -427,22 +427,22 @@ sound related ?
*/
-WRITE8_MEMBER(angelkds_state::angelkds_main_sound_w)
+void angelkds_state::angelkds_main_sound_w(offs_t offset, uint8_t data)
{
m_sound[offset] = data;
}
-READ8_MEMBER(angelkds_state::angelkds_main_sound_r)
+uint8_t angelkds_state::angelkds_main_sound_r(offs_t offset)
{
return m_sound2[offset];
}
-WRITE8_MEMBER(angelkds_state::angelkds_sub_sound_w)
+void angelkds_state::angelkds_sub_sound_w(offs_t offset, uint8_t data)
{
m_sound2[offset] = data;
}
-READ8_MEMBER(angelkds_state::angelkds_sub_sound_r)
+uint8_t angelkds_state::angelkds_sub_sound_r(offs_t offset)
{
return m_sound[offset];
}
diff --git a/src/mame/drivers/apollo.cpp b/src/mame/drivers/apollo.cpp
index 8fb2137437b..a20a69a1fc1 100644
--- a/src/mame/drivers/apollo.cpp
+++ b/src/mame/drivers/apollo.cpp
@@ -206,7 +206,7 @@ uint8_t apollo_get_ram_config_byte(void) {
apollo_instruction_hook
must be called by the CPU core before executing each instruction
***************************************************************************/
-READ32_MEMBER(apollo_state::apollo_instruction_hook)
+uint32_t apollo_state::apollo_instruction_hook(offs_t offset)
{
static uint16_t idle_counter = 0;
@@ -289,7 +289,7 @@ u16 apollo_state::apollo_irq_acknowledge(offs_t offset)
DN3500 Cache Control/Status Register at 0x10200
***************************************************************************/
-WRITE8_MEMBER(apollo_state::cache_control_register_w){
+void apollo_state::cache_control_register_w(offs_t offset, uint8_t data){
if (apollo_is_dn5500())
{
SLOG1(("Error: writing DN5500 Cache Status Register at offset %02x = %02x", offset, data));
@@ -302,7 +302,7 @@ WRITE8_MEMBER(apollo_state::cache_control_register_w){
}
}
-READ8_MEMBER(apollo_state::cache_status_register_r){
+uint8_t apollo_state::cache_status_register_r(offs_t offset){
uint8_t data = cache_status_register;
if (apollo_is_dn5500()) {
@@ -328,13 +328,13 @@ void apollo_set_cache_status_register(device_t *device,uint8_t mask, uint8_t dat
DN3500 Task Alias Register at 0x10300
***************************************************************************/
-WRITE8_MEMBER(apollo_state::task_alias_register_w){
+void apollo_state::task_alias_register_w(offs_t offset, uint8_t data){
task_alias_register = data;
apollo_set_cache_status_register(this,0x07, data);
SLOG(("writing Task Alias Register at offset %02x = %02x",offset, data));
}
-READ8_MEMBER(apollo_state::task_alias_register_r){
+uint8_t apollo_state::task_alias_register_r(offs_t offset){
uint8_t data = 0xff;
SLOG(("reading Task Alias Register at offset %02x = %02x", offset, data));
return data;
@@ -344,12 +344,12 @@ READ8_MEMBER(apollo_state::task_alias_register_r){
DN3000/DN3500 Latch Page on Parity Error Register at 0x9300/0x11300
***************************************************************************/
-WRITE16_MEMBER(apollo_state::latch_page_on_parity_error_register_w){
+void apollo_state::latch_page_on_parity_error_register_w(offs_t offset, uint16_t data){
latch_page_on_parity_error_register = data;
SLOG1(("writing Latch Page on Error Parity Register at offset %02x = %04x", offset*2, data));
}
-READ16_MEMBER(apollo_state::latch_page_on_parity_error_register_r){
+uint16_t apollo_state::latch_page_on_parity_error_register_r(offs_t offset){
uint16_t data = latch_page_on_parity_error_register;
SLOG2(("reading Latch Page on Error Parity Register at offset %02x = %04x", offset*2, data));
return data;
@@ -359,12 +359,12 @@ READ16_MEMBER(apollo_state::latch_page_on_parity_error_register_r){
DN3500 Master REQ Register at 0x11600
***************************************************************************/
-WRITE8_MEMBER(apollo_state::master_req_register_w){
+void apollo_state::master_req_register_w(offs_t offset, uint8_t data){
master_req_register = data;
SLOG2(("writing Master REQ Register at offset %02x = %02x", offset, data));
}
-READ8_MEMBER(apollo_state::master_req_register_r){
+uint8_t apollo_state::master_req_register_r(offs_t offset){
uint8_t data = 0xff;
SLOG1(("reading Master REQ Register at offset %02x = %02x", offset, data));
return data;
@@ -374,7 +374,7 @@ READ8_MEMBER(apollo_state::master_req_register_r){
DN3500 Selective Clear Locations at 0x11600
***************************************************************************/
-WRITE16_MEMBER(apollo_state::selective_clear_locations_w){
+void apollo_state::selective_clear_locations_w(offs_t offset, uint16_t data){
SLOG2(("writing Selective Clear Locations at offset %02x = %02x", offset*2, data));
switch (offset * 2) {
case 0x00: // Clear All
@@ -394,7 +394,7 @@ WRITE16_MEMBER(apollo_state::selective_clear_locations_w){
}
}
-READ16_MEMBER(apollo_state::selective_clear_locations_r){
+uint16_t apollo_state::selective_clear_locations_r(offs_t offset){
uint16_t data = 0xffff;
SLOG1(("reading Selective Clear Locations at offset %02x = %02x", offset*2, data));
return data;
@@ -404,7 +404,7 @@ READ16_MEMBER(apollo_state::selective_clear_locations_r){
DN3000/DN3500 RAM with parity (and null proc loop delay for DomainOS)
***************************************************************************/
-READ32_MEMBER(apollo_state::ram_with_parity_r){
+uint32_t apollo_state::ram_with_parity_r(offs_t offset, uint32_t mem_mask){
uint32_t data = m_messram_ptr[parity_error_offset+offset];
SLOG2(("memory dword read with parity error at %08x = %08x & %08x parity_byte=%04x",
@@ -424,7 +424,7 @@ READ32_MEMBER(apollo_state::ram_with_parity_r){
return data;
}
-WRITE32_MEMBER(apollo_state::ram_with_parity_w){
+void apollo_state::ram_with_parity_w(offs_t offset, uint32_t data, uint32_t mem_mask){
COMBINE_DATA(m_messram_ptr+offset);
if (apollo_csr_get_control_register() & APOLLO_CSR_CR_FORCE_BAD_PARITY) {
@@ -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(*this, FUNC(apollo_state::ram_with_parity_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(ram_base_address+offset*4, ram_base_address+offset*4+3, read32s_delegate(*this, FUNC(apollo_state::ram_with_parity_r)));
parity_error_handler_is_installed = 1;
parity_error_handler_install_counter++;
}
@@ -467,7 +467,7 @@ WRITE32_MEMBER(apollo_state::ram_with_parity_w){
DN3000/DN3500 unmapped memory
***************************************************************************/
-READ32_MEMBER(apollo_state::apollo_unmapped_r)
+uint32_t apollo_state::apollo_unmapped_r(offs_t offset, uint32_t mem_mask)
{
offs_t address = offset * 4;
@@ -496,7 +496,7 @@ READ32_MEMBER(apollo_state::apollo_unmapped_r)
return 0xffffffff;
}
-WRITE32_MEMBER(apollo_state::apollo_unmapped_w)
+void apollo_state::apollo_unmapped_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
SLOG(("unmapped memory dword write to %08x = %08x & %08x", offset * 4, data, mem_mask));
@@ -508,7 +508,7 @@ WRITE32_MEMBER(apollo_state::apollo_unmapped_w)
DN3000/DN3500 ROM write
***************************************************************************/
-WRITE32_MEMBER(apollo_state::apollo_rom_w)
+void apollo_state::apollo_rom_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
offs_t address = offset * 4;
offs_t pc = m_maincpu->pcbase();
@@ -524,7 +524,7 @@ WRITE32_MEMBER(apollo_state::apollo_rom_w)
DN3000/DN3500 AT Bus I/O space
***************************************************************************/
-READ16_MEMBER(apollo_state::apollo_atbus_io_r)
+uint16_t apollo_state::apollo_atbus_io_r(offs_t offset, uint16_t mem_mask)
{
uint32_t isa_addr = (offset & 3) + ((offset & ~0x1ff) >> 7);
@@ -536,7 +536,7 @@ READ16_MEMBER(apollo_state::apollo_atbus_io_r)
return data;
}
-WRITE16_MEMBER(apollo_state::apollo_atbus_io_w)
+void apollo_state::apollo_atbus_io_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
uint32_t isa_addr = (offset & 3) + ((offset & ~0x1ff) >> 7);
@@ -550,7 +550,7 @@ WRITE16_MEMBER(apollo_state::apollo_atbus_io_w)
DN3000/DN3500 AT Bus memory space
***************************************************************************/
-READ16_MEMBER(apollo_state::apollo_atbus_memory_r)
+uint16_t apollo_state::apollo_atbus_memory_r(offs_t offset, uint16_t mem_mask)
{
uint16_t data;
@@ -561,7 +561,7 @@ READ16_MEMBER(apollo_state::apollo_atbus_memory_r)
return data;
}
-WRITE16_MEMBER(apollo_state::apollo_atbus_memory_w)
+void apollo_state::apollo_atbus_memory_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
SLOG2(("apollo_atbus_memory_w at %08x = %04x & %04x", ATBUS_MEMORY_BASE + offset*2, data, mem_mask));
@@ -573,7 +573,7 @@ WRITE16_MEMBER(apollo_state::apollo_atbus_memory_w)
DN3000/DN3500 AT Bus unmapped read/write
***************************************************************************/
-READ16_MEMBER(apollo_state::apollo_atbus_unmap_io_r)
+uint16_t apollo_state::apollo_atbus_unmap_io_r(offs_t offset, uint16_t mem_mask)
{
// ISA bus has 0xff for unmapped addresses
uint16_t data = 0xffff;
@@ -582,13 +582,13 @@ READ16_MEMBER(apollo_state::apollo_atbus_unmap_io_r)
return data;
}
-WRITE16_MEMBER(apollo_state::apollo_atbus_unmap_io_w)
+void apollo_state::apollo_atbus_unmap_io_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
uint32_t isa_addr = (offset & 3) + ((offset & ~0x1ff) >> 7);
SLOG1(("apollo_atbus_unmap_io_w at %08x -> %04x = %04x & %04x", ATBUS_IO_BASE + offset*2, isa_addr*2, data, mem_mask));
}
-READ8_MEMBER(apollo_state::apollo_atbus_unmap_r)
+uint8_t apollo_state::apollo_atbus_unmap_r(offs_t offset, uint8_t mem_mask)
{
// ISA bus has 0xff for unmapped addresses
uint8_t data = 0xff;
@@ -596,7 +596,7 @@ READ8_MEMBER(apollo_state::apollo_atbus_unmap_r)
return data;
}
-WRITE8_MEMBER(apollo_state::apollo_atbus_unmap_w)
+void apollo_state::apollo_atbus_unmap_w(offs_t offset, uint8_t data, uint8_t mem_mask)
{
SLOG1(("apollo_atbus_unmap_w at %08x = %02x & %02x", ATBUS_MEMORY_BASE + offset, data, mem_mask));
}
@@ -606,11 +606,11 @@ WRITE8_MEMBER(apollo_state::apollo_atbus_unmap_w)
Strange: documented but not used
***************************************************************************/
-WRITE8_MEMBER(apollo_state::dn5500_memory_present_register_w){
+void apollo_state::dn5500_memory_present_register_w(offs_t offset, uint8_t data){
SLOG(("Error: writing DN5500 Memory Present Register at offset %02x = %02x", offset, data));
}
-READ8_MEMBER(apollo_state::dn5500_memory_present_register_r){
+uint8_t apollo_state::dn5500_memory_present_register_r(offs_t offset){
uint8_t data = DN5500_MEM_PRESENT_BYTE;
SLOG(("reading DN5500 Memory Present Register at offset %02x = %02x", offset, data));
return data;
@@ -620,11 +620,11 @@ READ8_MEMBER(apollo_state::dn5500_memory_present_register_r){
DN5500 11500 Registers at 0x11500-0x115ff (undocumented, what does it do?)
***************************************************************************/
-WRITE8_MEMBER(apollo_state::dn5500_11500_w){
+void apollo_state::dn5500_11500_w(offs_t offset, uint8_t data){
SLOG1(("writing DN5500 11500 at offset %02x = %02x", offset, data));
}
-READ8_MEMBER(apollo_state::dn5500_11500_r){
+uint8_t apollo_state::dn5500_11500_r(offs_t offset){
uint8_t data = 0xff;
SLOG1(("reading DN5500 11500 at offset %02x = %02x", offset, data));
return data;
@@ -634,12 +634,12 @@ READ8_MEMBER(apollo_state::dn5500_11500_r){
DN5500 I/O Protection Map at 0x7000000-0x700FFFF
***************************************************************************/
-WRITE8_MEMBER(apollo_state::dn5500_io_protection_map_w){
+void apollo_state::dn5500_io_protection_map_w(offs_t offset, uint8_t data){
// TODO
SLOG1(("writing DN5500 I/O Protection Map at offset %02x = %02x", offset, data));
}
-READ8_MEMBER(apollo_state::dn5500_io_protection_map_r){
+uint8_t apollo_state::dn5500_io_protection_map_r(offs_t offset){
uint8_t data = 0xff;
SLOG1(("reading DN5500 I/O Protection Map at offset %02x = %02x", offset, data));
return data;
@@ -650,7 +650,7 @@ READ8_MEMBER(apollo_state::dn5500_io_protection_map_r){
DN3000/DN3500 at f8000000 - ffffffff (used by fpa and/or color7?)
***************************************************************************/
-READ32_MEMBER(apollo_state::apollo_f8_r){
+uint32_t apollo_state::apollo_f8_r(offs_t offset, uint32_t mem_mask){
offs_t address = 0xf8000000 + offset * 4;
uint32_t data = 0xffffffff;
SLOG2(("unexpected memory dword read from %08x = %08x & %08x",
@@ -658,7 +658,7 @@ READ32_MEMBER(apollo_state::apollo_f8_r){
return data;
}
-WRITE32_MEMBER(apollo_state::apollo_f8_w){
+void apollo_state::apollo_f8_w(offs_t offset, uint32_t data, uint32_t mem_mask){
offs_t address = 0xf8000000 +offset * 4;
SLOG2(("unexpected memory dword write to %08x = %08x & %08x",
@@ -916,7 +916,7 @@ void apollo_state::machine_reset()
}
#if 0
- m_maincpu->set_instruction_hook(read32_delegate(*this, FUNC(apollo_state::apollo_instruction_hook)));
+ m_maincpu->set_instruction_hook(read32sm_delegate(*this, FUNC(apollo_state::apollo_instruction_hook)));
#endif
}
@@ -954,8 +954,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(*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)));
+ m_isa->install16_device((ATBUS_IO_BASE - 0x40000) >> 7, (ATBUS_IO_END - 0x40000) >> 7, read16s_delegate(*this, FUNC(apollo_state::apollo_atbus_unmap_io_r)), write16s_delegate(*this, FUNC(apollo_state::apollo_atbus_unmap_io_w)));
+ m_isa->install_memory(0, ATBUS_MEMORY_END, read8s_delegate(*this, FUNC(apollo_state::apollo_atbus_unmap_r)), write8s_delegate(*this, FUNC(apollo_state::apollo_atbus_unmap_w)));
}
/***************************************************************************
diff --git a/src/mame/drivers/appoooh.cpp b/src/mame/drivers/appoooh.cpp
index 839da3daa58..86e97564fb5 100644
--- a/src/mame/drivers/appoooh.cpp
+++ b/src/mame/drivers/appoooh.cpp
@@ -199,7 +199,7 @@ WRITE_LINE_MEMBER(appoooh_state::adpcm_int)
}
/* adpcm address write */
-WRITE8_MEMBER(appoooh_state::adpcm_w)
+void appoooh_state::adpcm_w(uint8_t data)
{
m_adpcm_address = data << 8;
m_msm->reset_w(0);
diff --git a/src/mame/drivers/aquarius.cpp b/src/mame/drivers/aquarius.cpp
index 8ee2e9f7b3c..b1d9abb6d3b 100644
--- a/src/mame/drivers/aquarius.cpp
+++ b/src/mame/drivers/aquarius.cpp
@@ -67,7 +67,7 @@ X-6026 : Roll of paper for the printer
mark cycle. Control must be returned at that time to the cassette routine
in order to maintain data integrity.
*/
-READ8_MEMBER(aquarius_state::cassette_r)
+uint8_t aquarius_state::cassette_r()
{
return ((m_cassette)->input() < +0.0) ? 0 : 1;
}
@@ -78,7 +78,7 @@ READ8_MEMBER(aquarius_state::cassette_r)
will appear on audio output. Sound port is a simple one bit I/O and therefore
it must be toggled at a specific rate under software control.
*/
-WRITE8_MEMBER(aquarius_state::cassette_w)
+void aquarius_state::cassette_w(uint8_t data)
{
m_speaker->level_w(BIT(data, 0));
m_cassette->output(BIT(data, 0) ? +1.0 : -1.0);
@@ -97,7 +97,7 @@ WRITE8_MEMBER(aquarius_state::cassette_w)
+ + +
+++++ +++++++++
*/
-READ8_MEMBER(aquarius_state::vsync_r)
+uint8_t aquarius_state::vsync_r()
{
return m_screen->vblank() ? 0 : 1;
}
@@ -108,7 +108,7 @@ READ8_MEMBER(aquarius_state::vsync_r)
map with the upper 16K. A 1 in this bit indicates swapping. This bit is reset
after power up initialization.
*/
-WRITE8_MEMBER(aquarius_state::mapper_w)
+void aquarius_state::mapper_w(uint8_t data)
{
}
@@ -118,7 +118,7 @@ WRITE8_MEMBER(aquarius_state::mapper_w)
to send status from PRNHASK pin at bit D0. A 1 indicates printer is ready,
0 means not ready.
*/
-READ8_MEMBER(aquarius_state::printer_r)
+uint8_t aquarius_state::printer_r()
{
return 1; /* ready */
}
@@ -130,7 +130,7 @@ READ8_MEMBER(aquarius_state::printer_r)
baudrate is variable. In BASIC this is a 1200 baud printer port for
the 40 column thermal printer.
*/
-WRITE8_MEMBER(aquarius_state::printer_w)
+void aquarius_state::printer_w(uint8_t data)
{
}
@@ -146,7 +146,7 @@ WRITE8_MEMBER(aquarius_state::printer_w)
Therefore the keyboard can be scanned by placing a specific scanning
pattern in (A) or (B) and reading the result returned on rows.
*/
-READ8_MEMBER(aquarius_state::keyboard_r)
+uint8_t aquarius_state::keyboard_r(offs_t offset)
{
uint8_t result = 0xff;
@@ -181,12 +181,12 @@ READ8_MEMBER(aquarius_state::keyboard_r)
routine. For game cartridge the lock pattern is generated from data in the
game cartridge itself.
*/
-WRITE8_MEMBER(aquarius_state::scrambler_w)
+void aquarius_state::scrambler_w(uint8_t data)
{
m_scrambler = data;
}
-READ8_MEMBER(aquarius_state::cartridge_r)
+uint8_t aquarius_state::cartridge_r(offs_t offset)
{
uint8_t data = 0;
if (m_cart->exists())
diff --git a/src/mame/drivers/arkanoid.cpp b/src/mame/drivers/arkanoid.cpp
index 0af2be3c662..a9a9687eb90 100644
--- a/src/mame/drivers/arkanoid.cpp
+++ b/src/mame/drivers/arkanoid.cpp
@@ -873,13 +873,13 @@ void arkanoid_state::hexa_map(address_map &map)
map(0xe000, 0xe7ff).ram().w(FUNC(arkanoid_state::arkanoid_videoram_w)).share("videoram");
}
-READ8_MEMBER(arkanoid_state::hexaa_f000_r)
+uint8_t arkanoid_state::hexaa_f000_r()
{
// return m_hexaa_from_sub;
return machine().rand();
}
-WRITE8_MEMBER(arkanoid_state::hexaa_f000_w)
+void arkanoid_state::hexaa_f000_w(uint8_t data)
{
m_hexaa_from_main = data;
}
@@ -904,12 +904,12 @@ void arkanoid_state::hexaa_sub_map(address_map &map)
}
-WRITE8_MEMBER(arkanoid_state::hexaa_sub_80_w)
+void arkanoid_state::hexaa_sub_80_w(uint8_t data)
{
m_hexaa_from_sub = data;
}
-READ8_MEMBER(arkanoid_state::hexaa_sub_90_r)
+uint8_t arkanoid_state::hexaa_sub_90_r()
{
return m_hexaa_from_main;
// return machine().rand();
@@ -2114,10 +2114,10 @@ ROM_END
void arkanoid_state::arkanoid_bootleg_init()
{
- 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)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xf000, 0xf000, read8smo_delegate(*this, FUNC(arkanoid_state::arkanoid_bootleg_f000_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xf002, 0xf002, read8smo_delegate(*this, FUNC(arkanoid_state::arkanoid_bootleg_f002_r)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd018, 0xd018, write8smo_delegate(*this, FUNC(arkanoid_state::arkanoid_bootleg_d018_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xd008, 0xd008, read8smo_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(*this, FUNC(arkanoid_state::tetrsark_d008_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd008, 0xd008, write8smo_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(*this, FUNC(arkanoid_state::tetrsark_d008_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd008, 0xd008, write8smo_delegate(*this, FUNC(arkanoid_state::tetrsark_d008_w)));
}
diff --git a/src/mame/drivers/artmagic.cpp b/src/mame/drivers/artmagic.cpp
index cebde8ce792..4c7f43c87b2 100644
--- a/src/mame/drivers/artmagic.cpp
+++ b/src/mame/drivers/artmagic.cpp
@@ -98,7 +98,7 @@ void artmagic_state::machine_reset()
*
*************************************/
-WRITE16_MEMBER(artmagic_state::control_w)
+void artmagic_state::control_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_control[offset]);
@@ -133,7 +133,7 @@ void artmagic_state::device_timer(emu_timer &timer, device_timer_id id, int para
}
-READ16_MEMBER(artmagic_state::ultennis_hack_r)
+uint16_t artmagic_state::ultennis_hack_r()
{
/* IRQ5 points to: jsr (a5); rte */
uint32_t pc = m_maincpu->pc();
@@ -377,7 +377,7 @@ READ_LINE_MEMBER(artmagic_state::prot_r)
}
-WRITE16_MEMBER(artmagic_state::protection_bit_w)
+void artmagic_state::protection_bit_w(offs_t offset, uint16_t data)
{
/* shift in the new bit based on the offset */
m_prot_input[m_prot_input_index] <<= 1;
@@ -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(*this, FUNC(artmagic_state::ultennis_hack_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x300000, 0x300001, read16smo_delegate(*this, FUNC(artmagic_state::ultennis_hack_r)));
}
diff --git a/src/mame/drivers/asterix.cpp b/src/mame/drivers/asterix.cpp
index 97cff42f8e8..086d4477dbf 100644
--- a/src/mame/drivers/asterix.cpp
+++ b/src/mame/drivers/asterix.cpp
@@ -27,13 +27,13 @@ TODO:
#if 0
-READ16_MEMBER(asterix_state::control2_r)
+uint16_t asterix_state::control2_r()
{
return m_cur_control2;
}
#endif
-WRITE16_MEMBER(asterix_state::control2_w)
+void asterix_state::control2_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
if (ACCESSING_BITS_0_7)
{
@@ -77,13 +77,13 @@ void asterix_state::device_timer(emu_timer &timer, device_timer_id id, int param
}
}
-WRITE8_MEMBER(asterix_state::sound_arm_nmi_w)
+void asterix_state::sound_arm_nmi_w(uint8_t data)
{
m_audiocpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
timer_set(attotime::from_usec(5), TIMER_NMI);
}
-WRITE16_MEMBER(asterix_state::sound_irq_w)
+void asterix_state::sound_irq_w(uint16_t data)
{
m_audiocpu->set_input_line(0, HOLD_LINE);
}
@@ -92,7 +92,7 @@ WRITE16_MEMBER(asterix_state::sound_irq_w)
// You're not supposed to laugh.
// This emulation is grossly overkill but hey, I'm having fun.
#if 0
-WRITE16_MEMBER(asterix_state::protection_w)
+void asterix_state::protection_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(m_prot + offset);
@@ -130,7 +130,7 @@ WRITE16_MEMBER(asterix_state::protection_w)
}
#endif
-WRITE16_MEMBER(asterix_state::protection_w)
+void asterix_state::protection_w(address_space &space, offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(m_prot + offset);
diff --git a/src/mame/drivers/asteroid.cpp b/src/mame/drivers/asteroid.cpp
index d3480749f66..3162a133510 100644
--- a/src/mame/drivers/asteroid.cpp
+++ b/src/mame/drivers/asteroid.cpp
@@ -291,12 +291,12 @@ WRITE_LINE_MEMBER(asteroid_state::coin_counter_right_w)
*
*************************************/
-READ8_MEMBER(asteroid_state::earom_read)
+uint8_t asteroid_state::earom_read()
{
return m_earom->data();
}
-WRITE8_MEMBER(asteroid_state::earom_write)
+void asteroid_state::earom_write(offs_t offset, uint8_t data)
{
m_earom->set_address(offset & 0x3f);
m_earom->set_data(data);
@@ -1174,7 +1174,7 @@ void asteroid_state::init_asteroidb()
void asteroid_state::init_asterock()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x2000, 0x2007, read8_delegate(*this, FUNC(asteroid_state::asterock_IN0_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x2000, 0x2007, read8sm_delegate(*this, FUNC(asteroid_state::asterock_IN0_r)));
}
diff --git a/src/mame/drivers/astrocde.cpp b/src/mame/drivers/astrocde.cpp
index f3123075e8a..cb8c2cb98ae 100644
--- a/src/mame/drivers/astrocde.cpp
+++ b/src/mame/drivers/astrocde.cpp
@@ -141,20 +141,20 @@
*
*************************************/
-WRITE8_MEMBER(astrocde_state::protected_ram_enable_w)
+void astrocde_state::protected_ram_enable_w(uint8_t data)
{
m_ram_write_enable = true;
}
-READ8_MEMBER(astrocde_state::protected_ram_r)
+uint8_t astrocde_state::protected_ram_r(offs_t offset)
{
m_ram_write_enable = false;
return m_protected_ram ? m_protected_ram[offset] : m_nvram[offset];
}
-WRITE8_MEMBER(astrocde_state::protected_ram_w)
+void astrocde_state::protected_ram_w(offs_t offset, uint8_t data)
{
if (m_ram_write_enable)
(m_protected_ram ? m_protected_ram : m_nvram)[offset] = data;
@@ -169,7 +169,7 @@ WRITE8_MEMBER(astrocde_state::protected_ram_w)
*
*************************************/
-WRITE8_MEMBER(seawolf2_state::sound_1_w)// Port 40
+void seawolf2_state::sound_1_w(uint8_t data) // Port 40
{
uint8_t rising_bits = data & ~m_port_1_last;
m_port_1_last = data;
@@ -183,7 +183,7 @@ WRITE8_MEMBER(seawolf2_state::sound_1_w)// Port 40
}
-WRITE8_MEMBER(seawolf2_state::sound_2_w)// Port 41
+void seawolf2_state::sound_2_w(uint8_t data) // Port 41
{
uint8_t rising_bits = data & ~m_port_2_last;
m_port_2_last = data;
@@ -253,13 +253,13 @@ CUSTOM_INPUT_MEMBER(ebases_state::trackball_r)
}
-WRITE8_MEMBER(ebases_state::trackball_select_w)
+void ebases_state::trackball_select_w(uint8_t data)
{
m_input_select = data & 3;
}
-WRITE8_MEMBER(ebases_state::coin_w)
+void ebases_state::coin_w(uint8_t data)
{
machine().bookkeeping().coin_counter_w(0, data & 1);
}
@@ -286,7 +286,7 @@ WRITE_LINE_MEMBER(astrocde_state::gorf_sound_switch_w)
*
*************************************/
-WRITE8_MEMBER(astrocde_state::demndrgn_banksw_w)
+void astrocde_state::demndrgn_banksw_w(uint8_t data)
{
int bank = (data >> 5) & 3;
m_bank4000->set_bank(bank);
@@ -304,7 +304,7 @@ CUSTOM_INPUT_MEMBER(demndrgn_state::joystick_r)
}
-WRITE8_MEMBER(demndrgn_state::sound_w)
+void demndrgn_state::sound_w(uint8_t data)
{
logerror("Trigger sound sample 0x%02x\n",data);
}
@@ -318,9 +318,9 @@ WRITE8_MEMBER(demndrgn_state::sound_w)
*************************************/
-WRITE8_MEMBER(astrocde_state::profpac_banksw_w)
+void astrocde_state::profpac_banksw_w(uint8_t data)
{
- demndrgn_banksw_w(space, 0, data);
+ demndrgn_banksw_w(data);
if (data & 0x80)
{
@@ -343,7 +343,7 @@ WRITE8_MEMBER(astrocde_state::profpac_banksw_w)
*
*************************************/
-WRITE8_MEMBER(tenpindx_state::lamp_w)
+void tenpindx_state::lamp_w(offs_t offset, uint8_t data)
{
/* lamps */
if (offset == 0)
@@ -365,14 +365,14 @@ WRITE8_MEMBER(tenpindx_state::lamp_w)
}
-WRITE8_MEMBER(tenpindx_state::counter_w)
+void tenpindx_state::counter_w(uint8_t data)
{
machine().bookkeeping().coin_counter_w(0, BIT(data, 0));
if (data & 0xfc) osd_printf_debug("tenpindx_counter_w = %02X\n", data);
}
-WRITE8_MEMBER(tenpindx_state::lights_w)
+void tenpindx_state::lights_w(uint8_t data)
{
/* "flashlights" */
int which = data >> 4;
diff --git a/src/mame/drivers/astrof.cpp b/src/mame/drivers/astrof.cpp
index 8862a3ff6d0..0418872e0de 100644
--- a/src/mame/drivers/astrof.cpp
+++ b/src/mame/drivers/astrof.cpp
@@ -81,7 +81,7 @@
*
*************************************/
-READ8_MEMBER(astrof_state::irq_clear_r)
+uint8_t astrof_state::irq_clear_r()
{
m_maincpu->set_input_line(0, CLEAR_LINE);
@@ -270,21 +270,21 @@ void astrof_state::tomahawk_get_pens( pen_t *pens )
}
-WRITE8_MEMBER(astrof_state::astrof_videoram_w)
+void astrof_state::astrof_videoram_w(offs_t offset, uint8_t data)
{
m_videoram[offset] = data;
m_colorram[offset >> 1] = *m_astrof_color & 0x0e;
}
-WRITE8_MEMBER(astrof_state::tomahawk_videoram_w)
+void astrof_state::tomahawk_videoram_w(offs_t offset, uint8_t data)
{
m_videoram[offset] = data;
m_colorram[offset >> 1] = (*m_astrof_color & 0x0e) | ((*m_astrof_color & 0x01) << 4);
}
-WRITE8_MEMBER(astrof_state::video_control_1_w)
+void astrof_state::video_control_1_w(uint8_t data)
{
m_flipscreen = ((data >> 0) & 0x01) & ioport("CAB")->read();
@@ -312,7 +312,7 @@ void astrof_state::astrof_set_video_control_2( uint8_t data )
/* D4-D7 - not connected */
}
-WRITE8_MEMBER(astrof_state::astrof_video_control_2_w)
+void astrof_state::astrof_video_control_2_w(uint8_t data)
{
astrof_set_video_control_2(data);
m_screen->update_partial(m_screen->vpos());
@@ -330,7 +330,7 @@ void astrof_state::spfghmk2_set_video_control_2( uint8_t data )
/* D3-D7 - not connected */
}
-WRITE8_MEMBER(astrof_state::spfghmk2_video_control_2_w)
+void astrof_state::spfghmk2_video_control_2_w(uint8_t data)
{
spfghmk2_set_video_control_2(data);
m_screen->update_partial(m_screen->vpos());
@@ -347,7 +347,7 @@ void astrof_state::tomahawk_set_video_control_2( uint8_t data )
m_red_on = (data & 0x08) ? true : false;
}
-WRITE8_MEMBER(astrof_state::tomahawk_video_control_2_w)
+void astrof_state::tomahawk_video_control_2_w(uint8_t data)
{
tomahawk_set_video_control_2(data);
m_screen->update_partial(m_screen->vpos());
@@ -429,28 +429,28 @@ uint32_t astrof_state::screen_update_tomahawk(screen_device &screen, bitmap_rgb3
*
*************************************/
-READ8_MEMBER(astrof_state::shoot_r)
+uint8_t astrof_state::shoot_r()
{
/* not really sure about this */
return machine().rand() & 8;
}
-READ8_MEMBER(astrof_state::abattle_coin_prot_r)
+uint8_t astrof_state::abattle_coin_prot_r()
{
m_abattle_count = (m_abattle_count + 1) % 0x0101;
return m_abattle_count ? 0x07 : 0x00;
}
-READ8_MEMBER(astrof_state::afire_coin_prot_r)
+uint8_t astrof_state::afire_coin_prot_r()
{
m_abattle_count = m_abattle_count ^ 0x01;
return m_abattle_count ? 0x07 : 0x00;
}
-READ8_MEMBER(astrof_state::tomahawk_protection_r)
+uint8_t astrof_state::tomahawk_protection_r()
{
/* flip the byte */
return bitswap<8>(*m_tomahawk_protection, 0, 1, 2, 3, 4, 5, 6, 7);
@@ -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(*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)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa003, 0xa003, read8smo_delegate(*this, FUNC(astrof_state::shoot_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa004, 0xa004, read8smo_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(*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)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa003, 0xa003, read8smo_delegate(*this, FUNC(astrof_state::shoot_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa004, 0xa004, read8smo_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(*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)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa003, 0xa003, read8smo_delegate(*this, FUNC(astrof_state::shoot_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa004, 0xa004, read8smo_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(*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)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa003, 0xa003, read8smo_delegate(*this, FUNC(astrof_state::shoot_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa004, 0xa004, read8smo_delegate(*this, FUNC(astrof_state::abattle_coin_prot_r)));
}
diff --git a/src/mame/drivers/atarig1.cpp b/src/mame/drivers/atarig1.cpp
index 78e6253ac26..a7859b9ad14 100644
--- a/src/mame/drivers/atarig1.cpp
+++ b/src/mame/drivers/atarig1.cpp
@@ -48,7 +48,7 @@ void atarig1_state::video_int_ack_w(uint16_t data)
*
*************************************/
-WRITE16_MEMBER(atarig1_state::mo_command_w)
+void atarig1_state::mo_command_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(m_mo_command);
m_rle->command_write((data == 0 && m_is_pitfight) ? ATARIRLE_COMMAND_CHECKSUM : ATARIRLE_COMMAND_DRAW);
@@ -62,14 +62,14 @@ WRITE16_MEMBER(atarig1_state::mo_command_w)
*
*************************************/
-WRITE16_MEMBER(atarig1_state::a2d_select_w)
+void atarig1_state::a2d_select_w(offs_t offset, uint16_t data)
{
if (m_adc.found())
m_adc->address_offset_start_w(offset, 0);
}
-READ16_MEMBER(atarig1_state::a2d_data_r)
+uint16_t atarig1_state::a2d_data_r()
{
if (m_adc.found())
return m_adc->data_r() << 8;
@@ -113,7 +113,7 @@ void atarig1_state::device_post_load()
}
-READ16_MEMBER(atarig1_state::pitfightb_cheap_slapstic_r)
+uint16_t atarig1_state::pitfightb_cheap_slapstic_r(offs_t offset)
{
int result = m_bslapstic_base[offset & 0xfff];
@@ -143,7 +143,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(*this, FUNC(atarig1_state::pitfightb_cheap_slapstic_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x038000, 0x03ffff, read16sm_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 876501e6ddb..a39b2d36ab7 100644
--- a/src/mame/drivers/atarig42.cpp
+++ b/src/mame/drivers/atarig42.cpp
@@ -59,14 +59,14 @@ void atarig42_state::machine_start()
*
*************************************/
-WRITE8_MEMBER(atarig42_state::a2d_select_w)
+void atarig42_state::a2d_select_w(offs_t offset, uint8_t data)
{
if (m_adc.found())
m_adc->address_offset_start_w(offset, 0);
}
-READ8_MEMBER(atarig42_state::a2d_data_r)
+uint8_t atarig42_state::a2d_data_r(offs_t offset)
{
if (!m_adc.found())
return 0xff;
@@ -78,7 +78,7 @@ READ8_MEMBER(atarig42_state::a2d_data_r)
}
-WRITE16_MEMBER(atarig42_state::io_latch_w)
+void atarig42_state::io_latch_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
/* upper byte */
if (ACCESSING_BITS_8_15)
@@ -105,7 +105,7 @@ WRITE16_MEMBER(atarig42_state::io_latch_w)
}
-WRITE16_MEMBER(atarig42_state::mo_command_w)
+void atarig42_state::mo_command_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(m_mo_command);
m_rle->command_write((data == 0) ? ATARIRLE_COMMAND_CHECKSUM : ATARIRLE_COMMAND_DRAW);
@@ -231,7 +231,7 @@ void atarig42_0x200_state::roadriot_sloop_tweak(int offset)
}
-READ16_MEMBER(atarig42_0x200_state::roadriot_sloop_data_r)
+uint16_t atarig42_0x200_state::roadriot_sloop_data_r(offs_t offset)
{
roadriot_sloop_tweak(offset);
if (offset < 0x78000/2)
@@ -241,7 +241,7 @@ READ16_MEMBER(atarig42_0x200_state::roadriot_sloop_data_r)
}
-WRITE16_MEMBER(atarig42_0x200_state::roadriot_sloop_data_w)
+void atarig42_0x200_state::roadriot_sloop_data_w(offs_t offset, uint16_t data)
{
roadriot_sloop_tweak(offset);
}
@@ -288,7 +288,7 @@ void atarig42_0x400_state::guardians_sloop_tweak(int offset)
}
-READ16_MEMBER(atarig42_0x400_state::guardians_sloop_data_r)
+uint16_t atarig42_0x400_state::guardians_sloop_data_r(offs_t offset)
{
guardians_sloop_tweak(offset);
if (offset < 0x78000/2)
@@ -298,7 +298,7 @@ READ16_MEMBER(atarig42_0x400_state::guardians_sloop_data_r)
}
-WRITE16_MEMBER(atarig42_0x400_state::guardians_sloop_data_w)
+void atarig42_0x400_state::guardians_sloop_data_w(offs_t offset, uint16_t data)
{
guardians_sloop_tweak(offset);
}
@@ -825,7 +825,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(*this, FUNC(atarig42_0x200_state::roadriot_sloop_data_r)), write16_delegate(*this, FUNC(atarig42_0x200_state::roadriot_sloop_data_w)));
+ main.install_readwrite_handler(0x000000, 0x07ffff, read16sm_delegate(*this, FUNC(atarig42_0x200_state::roadriot_sloop_data_r)), write16sm_delegate(*this, FUNC(atarig42_0x200_state::roadriot_sloop_data_w)));
m_sloop_base = (uint16_t *)memregion("maincpu")->base();
/*
@@ -860,7 +860,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(*this, FUNC(atarig42_0x400_state::guardians_sloop_data_r)), write16_delegate(*this, FUNC(atarig42_0x400_state::guardians_sloop_data_w)));
+ main.install_readwrite_handler(0x000000, 0x07ffff, read16sm_delegate(*this, FUNC(atarig42_0x400_state::guardians_sloop_data_r)), write16sm_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 e17cbfc0c1e..30fdeef7acd 100644
--- a/src/mame/drivers/atarigt.cpp
+++ b/src/mame/drivers/atarigt.cpp
@@ -137,7 +137,7 @@ void atarigt_state::cage_irq_callback(uint8_t data)
*
*************************************/
-READ32_MEMBER(atarigt_state::special_port2_r)
+uint32_t atarigt_state::special_port2_r()
{
int temp = m_service_io->read();
temp ^= 0x0001; /* /A2DRDY always high for now */
@@ -145,7 +145,7 @@ READ32_MEMBER(atarigt_state::special_port2_r)
}
-READ32_MEMBER(atarigt_state::special_port3_r)
+uint32_t atarigt_state::special_port3_r()
{
int temp = m_coin_io->read();
if (m_video_int_state) temp ^= 0x0001;
@@ -187,7 +187,7 @@ inline void atarigt_state::compute_fake_pots(int *pots)
}
-READ8_MEMBER(atarigt_state::analog_port_r)
+uint8_t atarigt_state::analog_port_r(offs_t offset)
{
if (!m_adc.found())
return 0xff;
@@ -224,7 +224,7 @@ READ8_MEMBER(atarigt_state::analog_port_r)
*
*************************************/
-WRITE32_MEMBER(atarigt_state::latch_w)
+void atarigt_state::latch_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
/*
D13 = 68.DISA
@@ -253,7 +253,7 @@ WRITE32_MEMBER(atarigt_state::latch_w)
}
-WRITE32_MEMBER(atarigt_state::mo_command_w)
+void atarigt_state::mo_command_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
COMBINE_DATA(m_mo_command);
if (ACCESSING_BITS_0_15)
@@ -261,7 +261,7 @@ WRITE32_MEMBER(atarigt_state::mo_command_w)
}
-WRITE32_MEMBER(atarigt_state::led_w)
+void atarigt_state::led_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
// logerror("LED = %08X & %08X\n", data, mem_mask);
}
@@ -274,7 +274,7 @@ WRITE32_MEMBER(atarigt_state::led_w)
*
*************************************/
-READ32_MEMBER(atarigt_state::sound_data_r)
+uint32_t atarigt_state::sound_data_r(offs_t offset, uint32_t mem_mask)
{
uint32_t result = 0;
@@ -286,7 +286,7 @@ READ32_MEMBER(atarigt_state::sound_data_r)
}
-WRITE32_MEMBER(atarigt_state::sound_data_w)
+void atarigt_state::sound_data_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
if (ACCESSING_BITS_0_15)
m_cage->control_w(data);
@@ -584,7 +584,7 @@ if (LOG_PROTECTION)
*
*************************************/
-READ32_MEMBER(atarigt_state::colorram_protection_r)
+uint32_t atarigt_state::colorram_protection_r(address_space &space, offs_t offset, uint32_t mem_mask)
{
offs_t address = 0xd80000 + offset * 4;
uint32_t result32 = 0;
@@ -607,7 +607,7 @@ READ32_MEMBER(atarigt_state::colorram_protection_r)
}
-WRITE32_MEMBER(atarigt_state::colorram_protection_w)
+void atarigt_state::colorram_protection_w(address_space &space, offs_t offset, uint32_t data, uint32_t mem_mask)
{
offs_t address = 0xd80000 + offset * 4;
@@ -1325,7 +1325,7 @@ ROM_END
*
*************************************/
-WRITE32_MEMBER(atarigt_state::tmek_pf_w)
+void atarigt_state::tmek_pf_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
offs_t pc = m_maincpu->pc();
@@ -1353,7 +1353,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(*this, FUNC(atarigt_state::tmek_pf_w)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xd72000, 0xd75fff, write32s_delegate(*this, FUNC(atarigt_state::tmek_pf_w)));
}
diff --git a/src/mame/drivers/atarigx2.cpp b/src/mame/drivers/atarigx2.cpp
index bce0c440ccf..7703e968d48 100644
--- a/src/mame/drivers/atarigx2.cpp
+++ b/src/mame/drivers/atarigx2.cpp
@@ -54,14 +54,14 @@ void atarigx2_state::video_int_ack_w(uint32_t data)
*
*************************************/
-READ32_MEMBER(atarigx2_state::special_port2_r)
+uint32_t atarigx2_state::special_port2_r()
{
int temp = ioport("SERVICE")->read();
return (temp << 16) | temp;
}
-READ32_MEMBER(atarigx2_state::special_port3_r)
+uint32_t atarigx2_state::special_port3_r()
{
int temp = ioport("SPECIAL")->read();
return (temp << 16) | temp;
@@ -69,7 +69,7 @@ READ32_MEMBER(atarigx2_state::special_port3_r)
-READ8_MEMBER(atarigx2_state::a2d_data_r)
+uint8_t atarigx2_state::a2d_data_r(offs_t offset)
{
uint8_t result = m_adc->data_r();
if (!machine().side_effects_disabled())
@@ -78,7 +78,7 @@ READ8_MEMBER(atarigx2_state::a2d_data_r)
}
-WRITE32_MEMBER(atarigx2_state::latch_w)
+void atarigx2_state::latch_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
/*
D13 = 68.DISA
@@ -106,7 +106,7 @@ WRITE32_MEMBER(atarigx2_state::latch_w)
}
-WRITE32_MEMBER(atarigx2_state::mo_command_w)
+void atarigx2_state::mo_command_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
COMBINE_DATA(m_mo_command);
if (ACCESSING_BITS_0_15)
@@ -123,7 +123,7 @@ WRITE32_MEMBER(atarigx2_state::mo_command_w)
/* Note: Will all eventually be handled in machine/atarixga.cpp */
-WRITE32_MEMBER(atarigx2_state::atarigx2_protection_w)
+void atarigx2_state::atarigx2_protection_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
{
int pc = m_maincpu->pcbase();
@@ -200,7 +200,7 @@ uint32_t ftest4(uint32_t num)
*********************/
-READ32_MEMBER(atarigx2_state::atarigx2_protection_r)
+uint32_t atarigx2_state::atarigx2_protection_r(offs_t offset, uint32_t mem_mask)
{
static const uint32_t lookup_table[][2] =
{
@@ -1168,7 +1168,7 @@ READ32_MEMBER(atarigx2_state::atarigx2_protection_r)
}
-READ32_MEMBER( atarigx2_state::rrreveng_prot_r )
+uint32_t atarigx2_state::rrreveng_prot_r()
{
return 0;
}
@@ -2258,8 +2258,9 @@ void atarigx2_state::init_spclords()
{
m_playfield_base = 0x000;
- 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)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc80f00, 0xc80fff, read32s_delegate(downcast<atari_136095_0072_device &>(*m_xga), FUNC(atari_136095_0072_device::polylsb_read)));
+ m_maincpu->space(AS_PROGRAM).install_write_handler(0xc80f00, 0xc80fff, write32sm_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, read32s_delegate(*m_xga, FUNC(atari_xga_device::read)), write32s_delegate(*m_xga, FUNC(atari_xga_device::write)));
}
@@ -2288,15 +2289,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(*m_xga, FUNC(atari_xga_device::read)), write32_delegate(*m_xga, FUNC(atari_xga_device::write)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xca0000, 0xca0fff, read32s_delegate(*m_xga, FUNC(atari_xga_device::read)), write32s_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(*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)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xca0000, 0xca0fff, read32s_delegate(*this, FUNC(atarigx2_state::atarigx2_protection_r)), write32s_delegate(*this, FUNC(atarigx2_state::atarigx2_protection_w)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xca0fc0, 0xca0fc3, read32smo_delegate(*this, FUNC(atarigx2_state::rrreveng_prot_r)));
}
diff --git a/src/mame/drivers/atarist.cpp b/src/mame/drivers/atarist.cpp
index 20525df7dad..0ed90004cfa 100644
--- a/src/mame/drivers/atarist.cpp
+++ b/src/mame/drivers/atarist.cpp
@@ -242,7 +242,7 @@ void st_state::fdc_dma_transfer()
// fdc_data_r -
//-------------------------------------------------
-READ16_MEMBER( st_state::fdc_data_r )
+uint16_t st_state::fdc_data_r(offs_t offset)
{
uint8_t data = 0;
@@ -274,7 +274,7 @@ READ16_MEMBER( st_state::fdc_data_r )
// fdc_data_w -
//-------------------------------------------------
-WRITE16_MEMBER( st_state::fdc_data_w )
+void st_state::fdc_data_w(offs_t offset, uint16_t data)
{
if (m_fdc_mode & DMA_MODE_SECTOR_COUNT)
{
@@ -316,7 +316,7 @@ WRITE16_MEMBER( st_state::fdc_data_w )
// dma_status_r -
//-------------------------------------------------
-READ16_MEMBER( st_state::dma_status_r )
+uint16_t st_state::dma_status_r()
{
uint16_t data = 0;
@@ -337,7 +337,7 @@ READ16_MEMBER( st_state::dma_status_r )
// dma_mode_w -
//-------------------------------------------------
-WRITE16_MEMBER( st_state::dma_mode_w )
+void st_state::dma_mode_w(uint16_t data)
{
if (LOG) logerror("DMA Mode %04x\n", data);
@@ -360,7 +360,7 @@ WRITE16_MEMBER( st_state::dma_mode_w )
// dma_counter_r -
//-------------------------------------------------
-READ8_MEMBER( st_state::dma_counter_r )
+uint8_t st_state::dma_counter_r(offs_t offset)
{
uint8_t data = 0;
@@ -385,7 +385,7 @@ READ8_MEMBER( st_state::dma_counter_r )
// dma_base_w -
//-------------------------------------------------
-WRITE8_MEMBER( st_state::dma_base_w )
+void st_state::dma_base_w(offs_t offset, uint8_t data)
{
switch (offset)
{
@@ -416,7 +416,7 @@ WRITE8_MEMBER( st_state::dma_base_w )
// mmu_r -
//-------------------------------------------------
-READ8_MEMBER( st_state::mmu_r )
+uint8_t st_state::mmu_r()
{
return m_mmu;
}
@@ -426,7 +426,7 @@ READ8_MEMBER( st_state::mmu_r )
// mmu_w -
//-------------------------------------------------
-WRITE8_MEMBER( st_state::mmu_w )
+void st_state::mmu_w(uint8_t data)
{
if (LOG) logerror("Memory Configuration Register: %02x\n", data);
@@ -434,13 +434,13 @@ WRITE8_MEMBER( st_state::mmu_w )
}
-WRITE16_MEMBER( st_state::berr_w )
+void st_state::berr_w(uint16_t data)
{
m_maincpu->set_input_line(M68K_LINE_BUSERROR, ASSERT_LINE);
m_maincpu->set_input_line(M68K_LINE_BUSERROR, CLEAR_LINE);
}
-READ16_MEMBER( st_state::berr_r )
+uint16_t st_state::berr_r()
{
if (!machine().side_effects_disabled())
{
@@ -712,14 +712,14 @@ void st_state::ikbd_port4_w(uint8_t data)
// fpu_r -
//-------------------------------------------------
-READ16_MEMBER( megast_state::fpu_r )
+uint16_t megast_state::fpu_r()
{
// HACK diagnostic cartridge wants to see this value
return 0x0802;
}
-WRITE16_MEMBER( megast_state::fpu_w )
+void megast_state::fpu_w(uint16_t data)
{
}
@@ -845,7 +845,7 @@ void ste_state::device_timer(emu_timer &timer, device_timer_id id, int param, vo
// sound_dma_control_r -
//-------------------------------------------------
-READ8_MEMBER( ste_state::sound_dma_control_r )
+uint8_t ste_state::sound_dma_control_r()
{
return m_dmasnd_ctrl;
}
@@ -855,7 +855,7 @@ READ8_MEMBER( ste_state::sound_dma_control_r )
// sound_dma_base_r -
//-------------------------------------------------
-READ8_MEMBER( ste_state::sound_dma_base_r )
+uint8_t ste_state::sound_dma_base_r(offs_t offset)
{
uint8_t data = 0;
@@ -882,7 +882,7 @@ READ8_MEMBER( ste_state::sound_dma_base_r )
// sound_dma_counter_r -
//-------------------------------------------------
-READ8_MEMBER( ste_state::sound_dma_counter_r )
+uint8_t ste_state::sound_dma_counter_r(offs_t offset)
{
uint8_t data = 0;
@@ -909,7 +909,7 @@ READ8_MEMBER( ste_state::sound_dma_counter_r )
// sound_dma_end_r -
//-------------------------------------------------
-READ8_MEMBER( ste_state::sound_dma_end_r )
+uint8_t ste_state::sound_dma_end_r(offs_t offset)
{
uint8_t data = 0;
@@ -936,7 +936,7 @@ READ8_MEMBER( ste_state::sound_dma_end_r )
// sound_mode_r -
//-------------------------------------------------
-READ8_MEMBER( ste_state::sound_mode_r )
+uint8_t ste_state::sound_mode_r()
{
return m_dmasnd_mode;
}
@@ -946,7 +946,7 @@ READ8_MEMBER( ste_state::sound_mode_r )
// sound_dma_control_w -
//-------------------------------------------------
-WRITE8_MEMBER( ste_state::sound_dma_control_w )
+void ste_state::sound_dma_control_w(uint8_t data)
{
m_dmasnd_ctrl = data & 0x03;
@@ -970,7 +970,7 @@ WRITE8_MEMBER( ste_state::sound_dma_control_w )
// sound_dma_base_w -
//-------------------------------------------------
-WRITE8_MEMBER( ste_state::sound_dma_base_w )
+void ste_state::sound_dma_base_w(offs_t offset, uint8_t data)
{
switch (offset)
{
@@ -996,7 +996,7 @@ WRITE8_MEMBER( ste_state::sound_dma_base_w )
// sound_dma_end_w -
//-------------------------------------------------
-WRITE8_MEMBER( ste_state::sound_dma_end_w )
+void ste_state::sound_dma_end_w(offs_t offset, uint8_t data)
{
switch (offset)
{
@@ -1022,7 +1022,7 @@ WRITE8_MEMBER( ste_state::sound_dma_end_w )
// sound_mode_w -
//-------------------------------------------------
-WRITE8_MEMBER( ste_state::sound_mode_w )
+void ste_state::sound_mode_w(uint8_t data)
{
m_dmasnd_mode = data & 0x83;
}
@@ -1084,7 +1084,7 @@ void ste_state::microwire_tick()
// microwire_data_r -
//-------------------------------------------------
-READ16_MEMBER( ste_state::microwire_data_r )
+uint16_t ste_state::microwire_data_r()
{
return m_mw_data;
}
@@ -1094,7 +1094,7 @@ READ16_MEMBER( ste_state::microwire_data_r )
// microwire_data_w -
//-------------------------------------------------
-WRITE16_MEMBER( ste_state::microwire_data_w )
+void ste_state::microwire_data_w(uint16_t data)
{
if (!m_microwire_timer->enabled())
{
@@ -1108,7 +1108,7 @@ WRITE16_MEMBER( ste_state::microwire_data_w )
// microwire_mask_r -
//-------------------------------------------------
-READ16_MEMBER( ste_state::microwire_mask_r )
+uint16_t ste_state::microwire_mask_r()
{
return m_mw_mask;
}
@@ -1118,7 +1118,7 @@ READ16_MEMBER( ste_state::microwire_mask_r )
// microwire_mask_w -
//-------------------------------------------------
-WRITE16_MEMBER( ste_state::microwire_mask_w )
+void ste_state::microwire_mask_w(uint16_t data)
{
if (!m_microwire_timer->enabled())
{
@@ -1136,7 +1136,7 @@ WRITE16_MEMBER( ste_state::microwire_mask_w )
// cache_r -
//-------------------------------------------------
-READ16_MEMBER( megaste_state::cache_r )
+uint16_t megaste_state::cache_r()
{
return m_cache;
}
@@ -1146,7 +1146,7 @@ READ16_MEMBER( megaste_state::cache_r )
// cache_w -
//-------------------------------------------------
-WRITE16_MEMBER( megaste_state::cache_w )
+void megaste_state::cache_w(uint16_t data)
{
m_cache = data;
@@ -1163,7 +1163,7 @@ WRITE16_MEMBER( megaste_state::cache_w )
// config_r -
//-------------------------------------------------
-READ16_MEMBER( stbook_state::config_r )
+uint16_t stbook_state::config_r()
{
/*
@@ -1196,7 +1196,7 @@ READ16_MEMBER( stbook_state::config_r )
// lcd_control_w -
//-------------------------------------------------
-WRITE16_MEMBER( stbook_state::lcd_control_w )
+void stbook_state::lcd_control_w(uint16_t data)
{
/*
diff --git a/src/mame/drivers/atetris.cpp b/src/mame/drivers/atetris.cpp
index 42a3ead991f..ab55df326ad 100644
--- a/src/mame/drivers/atetris.cpp
+++ b/src/mame/drivers/atetris.cpp
@@ -85,7 +85,7 @@ TIMER_CALLBACK_MEMBER(atetris_state::interrupt_gen)
}
-WRITE8_MEMBER(atetris_state::irq_ack_w)
+void atetris_state::irq_ack_w(uint8_t data)
{
m_maincpu->set_input_line(0, CLEAR_LINE);
}
@@ -134,7 +134,7 @@ void atetris_state::machine_reset()
*
*************************************/
-READ8_MEMBER(atetris_state::slapstic_r)
+uint8_t atetris_state::slapstic_r(address_space &space, offs_t offset)
{
int result = m_slapstic_base[0x2000 + offset];
int new_bank = m_slapstic->slapstic_tweak(space, offset) & 1;
@@ -156,7 +156,7 @@ READ8_MEMBER(atetris_state::slapstic_r)
*
*************************************/
-WRITE8_MEMBER(atetris_state::coincount_w)
+void atetris_state::coincount_w(uint8_t data)
{
machine().bookkeeping().coin_counter_w(0, (data >> 5) & 1);
machine().bookkeeping().coin_counter_w(1, (data >> 4) & 1);
diff --git a/src/mame/drivers/aussiebyte.cpp b/src/mame/drivers/aussiebyte.cpp
index de25077c325..a8256bd35eb 100644
--- a/src/mame/drivers/aussiebyte.cpp
+++ b/src/mame/drivers/aussiebyte.cpp
@@ -97,7 +97,7 @@ INPUT_PORTS_END
I/O Ports
************************************************************/
-WRITE8_MEMBER( aussiebyte_state::port15_w )
+void aussiebyte_state::port15_w(uint8_t data)
{
membank("bankr0")->set_entry(m_port15); // point at ram
m_port15 = true;
@@ -115,7 +115,7 @@ WRITE8_MEMBER( aussiebyte_state::port15_w )
5 Disable 5.25 inch floppy spindle motors.
6 Unused.
7 Enable write precompensation on WD2797 controller. */
-WRITE8_MEMBER( aussiebyte_state::port16_w )
+void aussiebyte_state::port16_w(uint8_t data)
{
floppy_image_device *m_floppy = nullptr;
if ((data & 15) == 0)
@@ -142,7 +142,7 @@ WRITE8_MEMBER( aussiebyte_state::port16_w )
5 - SIO Ch D
6 - Ext ready 1
7 - Ext ready 2 */
-WRITE8_MEMBER( aussiebyte_state::port17_w )
+void aussiebyte_state::port17_w(uint8_t data)
{
m_port17 = data & 7;
m_dma->rdy_w(BIT(m_port17_rdy, data));
@@ -151,19 +151,19 @@ WRITE8_MEMBER( aussiebyte_state::port17_w )
/* FDC params
2 EXC: WD2797 clock frequency. H = 5.25"; L = 8"
3 WIEN: WD2797 Double density select. */
-WRITE8_MEMBER( aussiebyte_state::port18_w )
+void aussiebyte_state::port18_w(uint8_t data)
{
m_fdc->set_unscaled_clock(BIT(data, 2) ? 1e6 : 2e6);
m_fdc->dden_w(BIT(data, 3));
}
-READ8_MEMBER( aussiebyte_state::port19_r )
+uint8_t aussiebyte_state::port19_r()
{
return m_port19;
}
// Memory banking
-WRITE8_MEMBER( aussiebyte_state::port1a_w )
+void aussiebyte_state::port1a_w(uint8_t data)
{
data &= 7;
switch (data)
@@ -208,12 +208,12 @@ WRITE8_MEMBER( aussiebyte_state::port1a_w )
}
// Winchester control
-WRITE8_MEMBER( aussiebyte_state::port1b_w )
+void aussiebyte_state::port1b_w(uint8_t data)
{
}
// GPEHB control
-WRITE8_MEMBER( aussiebyte_state::port1c_w )
+void aussiebyte_state::port1c_w(uint8_t data)
{
}
@@ -224,7 +224,7 @@ void aussiebyte_state::port20_w(uint8_t data)
m_rtc->hold_w(BIT(data, 0));
}
-READ8_MEMBER( aussiebyte_state::port28_r )
+uint8_t aussiebyte_state::port28_r()
{
return m_port28;
}
@@ -234,7 +234,7 @@ READ8_MEMBER( aussiebyte_state::port28_r )
RTC
************************************************************/
-READ8_MEMBER( aussiebyte_state::rtc_r )
+uint8_t aussiebyte_state::rtc_r(offs_t offset)
{
m_rtc->read_w(1);
m_rtc->address_w(offset);
@@ -243,7 +243,7 @@ READ8_MEMBER( aussiebyte_state::rtc_r )
return data;
}
-WRITE8_MEMBER( aussiebyte_state::rtc_w )
+void aussiebyte_state::rtc_w(offs_t offset, uint8_t data)
{
m_rtc->address_w(offset);
m_rtc->data_w(data);
diff --git a/src/mame/drivers/avalnche.cpp b/src/mame/drivers/avalnche.cpp
index 4655321726d..5b3f930a43e 100644
--- a/src/mame/drivers/avalnche.cpp
+++ b/src/mame/drivers/avalnche.cpp
@@ -89,7 +89,7 @@ WRITE_LINE_MEMBER(avalnche_state::video_invert_w)
m_avalance_video_inverted = state;
}
-WRITE8_MEMBER(avalnche_state::catch_coin_counter_w)
+void avalnche_state::catch_coin_counter_w(uint8_t data)
{
machine().bookkeeping().coin_counter_w(0, data & 1);
machine().bookkeeping().coin_counter_w(1, data & 2);
diff --git a/src/mame/drivers/avigo.cpp b/src/mame/drivers/avigo.cpp
index 7488b860100..a1b26ee0273 100644
--- a/src/mame/drivers/avigo.cpp
+++ b/src/mame/drivers/avigo.cpp
@@ -186,7 +186,7 @@ void avigo_state::avigo_mem(address_map &map)
}
-READ8_MEMBER(avigo_state::key_data_read_r)
+uint8_t avigo_state::key_data_read_r()
{
uint8_t data = 0x0f;
@@ -217,7 +217,7 @@ READ8_MEMBER(avigo_state::key_data_read_r)
/* set key line(s) to read */
/* bit 0 set for line 0, bit 1 set for line 1, bit 2 set for line 2 */
-WRITE8_MEMBER(avigo_state::set_key_line_w)
+void avigo_state::set_key_line_w(uint8_t data)
{
/* 5, 101, read back 3 */
m_key_line = data;
@@ -225,19 +225,19 @@ WRITE8_MEMBER(avigo_state::set_key_line_w)
m_warm_start = BIT(data, 3);
}
-READ8_MEMBER(avigo_state::irq_r)
+uint8_t avigo_state::irq_r()
{
return m_irq;
}
-WRITE8_MEMBER(avigo_state::irq_w)
+void avigo_state::irq_w(uint8_t data)
{
m_irq &= data;
refresh_ints();
}
-WRITE8_MEMBER(avigo_state::port2_w)
+void avigo_state::port2_w(uint8_t data)
{
/*
bit 4 LCD backlight on/off
@@ -250,17 +250,17 @@ WRITE8_MEMBER(avigo_state::port2_w)
m_port2 = data;
}
-READ8_MEMBER(avigo_state::bank1_r)
+uint8_t avigo_state::bank1_r(offs_t offset)
{
return offset ? m_bank1_h: m_bank1_l;
}
-READ8_MEMBER(avigo_state::bank2_r)
+uint8_t avigo_state::bank2_r(offs_t offset)
{
return offset ? m_bank2_h: m_bank2_l;
}
-WRITE8_MEMBER(avigo_state::bank1_w)
+void avigo_state::bank1_w(offs_t offset, uint8_t data)
{
if (offset)
{
@@ -276,7 +276,7 @@ WRITE8_MEMBER(avigo_state::bank1_w)
m_bankdev1->set_bank(((m_bank1_h & 0x07) << 8) | m_bank1_l);
}
-WRITE8_MEMBER(avigo_state::bank2_w)
+void avigo_state::bank2_w(offs_t offset, uint8_t data)
{
if (offset)
{
@@ -292,14 +292,14 @@ WRITE8_MEMBER(avigo_state::bank2_w)
m_bankdev2->set_bank(((m_bank2_h & 0x07) << 8) | m_bank2_l);
}
-READ8_MEMBER(avigo_state::ad_control_status_r)
+uint8_t avigo_state::ad_control_status_r()
{
LOG(("avigo ad control read %02x\n", (int) m_ad_control_status));
return m_ad_control_status;
}
-WRITE8_MEMBER(avigo_state::ad_control_status_w)
+void avigo_state::ad_control_status_w(uint8_t data)
{
LOG(("avigo ad control w %02x\n",data));
@@ -375,7 +375,7 @@ WRITE8_MEMBER(avigo_state::ad_control_status_w)
m_ad_control_status = data | 1;
}
-READ8_MEMBER(avigo_state::ad_data_r)
+uint8_t avigo_state::ad_data_r()
{
uint8_t data = 0;
@@ -477,7 +477,7 @@ READ8_MEMBER(avigo_state::ad_data_r)
}
-WRITE8_MEMBER(avigo_state::speaker_w)
+void avigo_state::speaker_w(uint8_t data)
{
/* Speaker output state */
m_speaker->level_w(BIT(data, 3));
@@ -490,7 +490,7 @@ WRITE8_MEMBER(avigo_state::speaker_w)
/* port 0x029:
port 0x02e */
-READ8_MEMBER(avigo_state::port_04_r)
+uint8_t avigo_state::port_04_r()
{
/* must be both 0 for it to boot! */
return 0x0ff^((1<<7) | (1<<5));
diff --git a/src/mame/drivers/aztarac.cpp b/src/mame/drivers/aztarac.cpp
index 43c8dc6fb72..49c038a60f2 100644
--- a/src/mame/drivers/aztarac.cpp
+++ b/src/mame/drivers/aztarac.cpp
@@ -63,7 +63,7 @@ void aztarac_state::nvram_store_w(uint16_t data)
*
*************************************/
-READ16_MEMBER(aztarac_state::joystick_r)
+uint16_t aztarac_state::joystick_r()
{
return (((ioport("STICKZ")->read() - 0xf) << 8) |
((ioport("STICKY")->read() - 0xf) & 0xff));
diff --git a/src/mame/drivers/badlands.cpp b/src/mame/drivers/badlands.cpp
index 17ee6814ee0..a8968cae49b 100644
--- a/src/mame/drivers/badlands.cpp
+++ b/src/mame/drivers/badlands.cpp
@@ -226,7 +226,7 @@ INTERRUPT_GEN_MEMBER(badlands_state::vblank_int)
m_maincpu->set_input_line(M68K_IRQ_1, ASSERT_LINE);
}
-WRITE16_MEMBER(badlands_state::video_int_ack_w)
+void badlands_state::video_int_ack_w(uint16_t data)
{
m_maincpu->set_input_line(M68K_IRQ_1, CLEAR_LINE);
}
diff --git a/src/mame/drivers/badlandsbl.cpp b/src/mame/drivers/badlandsbl.cpp
index cfbb3e1de5d..e828b3abf54 100644
--- a/src/mame/drivers/badlandsbl.cpp
+++ b/src/mame/drivers/badlandsbl.cpp
@@ -76,23 +76,23 @@ uint32_t badlandsbl_state::screen_update_badlandsbl(screen_device &screen, bitma
}
-READ16_MEMBER(badlandsbl_state::badlandsb_unk_r)
+uint16_t badlandsbl_state::badlandsb_unk_r()
{
return 0xffff;
}
// TODO: this prolly mimics audio_io_r/_w in original version
-READ8_MEMBER(badlandsbl_state::bootleg_shared_r)
+uint8_t badlandsbl_state::bootleg_shared_r(offs_t offset)
{
return m_b_sharedram[offset];
}
-WRITE8_MEMBER(badlandsbl_state::bootleg_shared_w)
+void badlandsbl_state::bootleg_shared_w(offs_t offset, uint8_t data)
{
m_b_sharedram[offset] = data;
}
-READ8_MEMBER(badlandsbl_state::sound_response_r)
+uint8_t badlandsbl_state::sound_response_r()
{
m_maincpu->set_input_line(2, CLEAR_LINE);
return m_sound_response;
@@ -127,7 +127,7 @@ void badlandsbl_state::bootleg_map(address_map &map)
map(0xfff000, 0xffffff).ram();
}
-WRITE8_MEMBER(badlandsbl_state::bootleg_main_irq_w)
+void badlandsbl_state::bootleg_main_irq_w(uint8_t data)
{
m_maincpu->set_input_line(2, ASSERT_LINE);
m_sound_response = data;
diff --git a/src/mame/drivers/bagman.cpp b/src/mame/drivers/bagman.cpp
index c54be51c780..61f4db5acd1 100644
--- a/src/mame/drivers/bagman.cpp
+++ b/src/mame/drivers/bagman.cpp
@@ -89,9 +89,9 @@ void squaitsa_state::machine_start()
}
-WRITE8_MEMBER(bagman_state::ls259_w)
+void bagman_state::ls259_w(offs_t offset, uint8_t data)
{
- pal16r6_w(space, offset,data); /*this is just a simulation*/
+ pal16r6_w(offset, data); /*this is just a simulation*/
if (m_tmslatch.found())
m_tmslatch->write_bit(offset, data & 1);
diff --git a/src/mame/drivers/basssta.cpp b/src/mame/drivers/basssta.cpp
new file mode 100644
index 00000000000..e2b043b43e2
--- /dev/null
+++ b/src/mame/drivers/basssta.cpp
@@ -0,0 +1,84 @@
+// license:BSD-3-Clause
+// copyright-holders:AJR
+/****************************************************************************
+
+ Skeleton driver for Novation BassStation synthesizers.
+
+****************************************************************************/
+
+#include "emu.h"
+#include "cpu/mn1880/mn1880.h"
+//#include "machine/eeprompar.h"
+
+class basssta_state : public driver_device
+{
+public:
+ basssta_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ {
+ }
+
+ void bassstr(machine_config &config);
+ void sbasssta(machine_config &config);
+
+private:
+ void bassstr_prog(address_map &map);
+ void sbasssta_prog(address_map &map);
+ void bassstr_data(address_map &map);
+ void sbasssta_data(address_map &map);
+
+ required_device<mn1880_device> m_maincpu;
+};
+
+
+void basssta_state::bassstr_prog(address_map &map)
+{
+ map(0x0000, 0x7fff).rom().region("program", 0);
+}
+
+void basssta_state::sbasssta_prog(address_map &map)
+{
+ map(0x0000, 0xffff).rom().region("program", 0);
+}
+
+void basssta_state::bassstr_data(address_map &map)
+{
+}
+
+void basssta_state::sbasssta_data(address_map &map)
+{
+}
+
+
+static INPUT_PORTS_START(basssta)
+INPUT_PORTS_END
+
+void basssta_state::bassstr(machine_config &config)
+{
+ MN1880(config, m_maincpu, 8000000); // type and clock unknown (custom silkscreen)
+ m_maincpu->set_addrmap(AS_PROGRAM, &basssta_state::bassstr_prog);
+ m_maincpu->set_addrmap(AS_DATA, &basssta_state::bassstr_data);
+}
+
+void basssta_state::sbasssta(machine_config &config)
+{
+ MN1880(config, m_maincpu, 8000000); // type and clock unknown (custom silkscreen)
+ m_maincpu->set_addrmap(AS_PROGRAM, &basssta_state::sbasssta_prog);
+ m_maincpu->set_addrmap(AS_DATA, &basssta_state::sbasssta_data);
+
+ // TODO: Microchip 28C64AF EEPROM
+}
+
+ROM_START(bassstr)
+ ROM_REGION(0x8000, "program", 0)
+ ROM_LOAD("v1.5.bin", 0x0000, 0x8000, CRC(a8bc9721) SHA1(2c2dc3bee0fabf1e77d02cdf3e53885f2c5b913e)) // ST M27C256B (DIP28)
+ROM_END
+
+ROM_START(sbasssta)
+ ROM_REGION(0x10000, "program", 0)
+ ROM_LOAD("v1.9.bin", 0x00000, 0x10000, CRC(045bf9e3) SHA1(69155026c2497a4731162cadb6b441e00902d3f6))
+ROM_END
+
+SYST(1995, bassstr, 0, 0, bassstr, basssta, basssta_state, empty_init, "Novation", "BassStation Rack Analogue Synthesizer Module", MACHINE_IS_SKELETON)
+SYST(1997, sbasssta, 0, 0, sbasssta, basssta, basssta_state, empty_init, "Novation", "Super Bass Station", MACHINE_IS_SKELETON)
diff --git a/src/mame/drivers/batman.cpp b/src/mame/drivers/batman.cpp
index f95324f26ee..d284fbd1eb5 100644
--- a/src/mame/drivers/batman.cpp
+++ b/src/mame/drivers/batman.cpp
@@ -49,7 +49,7 @@ void batman_state::machine_start()
*
*************************************/
-WRITE16_MEMBER(batman_state::latch_w)
+void batman_state::latch_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
int oldword = m_latch_data;
COMBINE_DATA(&m_latch_data);
diff --git a/src/mame/drivers/battlane.cpp b/src/mame/drivers/battlane.cpp
index 56ba430372c..bf752bdc4a7 100644
--- a/src/mame/drivers/battlane.cpp
+++ b/src/mame/drivers/battlane.cpp
@@ -27,7 +27,7 @@
*
*************************************/
-WRITE8_MEMBER(battlane_state::battlane_cpu_command_w)
+void battlane_state::battlane_cpu_command_w(uint8_t data)
{
m_cpu_control = data;
diff --git a/src/mame/drivers/battlnts.cpp b/src/mame/drivers/battlnts.cpp
index b076294bb2b..a43185575e1 100644
--- a/src/mame/drivers/battlnts.cpp
+++ b/src/mame/drivers/battlnts.cpp
@@ -37,12 +37,12 @@ WRITE_LINE_MEMBER(battlnts_state::vblank_irq)
m_maincpu->set_input_line(HD6309_IRQ_LINE, HOLD_LINE);
}
-WRITE8_MEMBER(battlnts_state::battlnts_sh_irqtrigger_w)
+void battlnts_state::battlnts_sh_irqtrigger_w(uint8_t data)
{
m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff); // Z80
}
-WRITE8_MEMBER(battlnts_state::battlnts_bankswitch_w)
+void battlnts_state::battlnts_bankswitch_w(uint8_t data)
{
/* bits 6 & 7 = bank number */
m_rombank->set_entry((data & 0xc0) >> 6);
diff --git a/src/mame/drivers/bbusters.cpp b/src/mame/drivers/bbusters.cpp
index 74720a212f0..b1f6b26f756 100644
--- a/src/mame/drivers/bbusters.cpp
+++ b/src/mame/drivers/bbusters.cpp
@@ -249,32 +249,32 @@ void bbusters_state::machine_start()
bbusters_state_base::machine_start();
}
-WRITE8_MEMBER(bbusters_state_base::sound_cpu_w)
+void bbusters_state_base::sound_cpu_w(uint8_t data)
{
m_soundlatch[0]->write(data&0xff);
m_audiocpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
}
/* Eprom is byte wide, top half of word _must_ be 0xff */
-READ16_MEMBER(bbusters_state::eprom_r)
+uint16_t bbusters_state::eprom_r(offs_t offset)
{
return (m_eprom_data[offset]&0xff) | 0xff00;
}
-WRITE16_MEMBER(bbusters_state::three_gun_output_w)
+void bbusters_state::three_gun_output_w(uint16_t data)
{
for (int i = 0; i < 3; i++)
m_gun_recoil[i] = BIT(data, i);
}
template<int Layer>
-WRITE16_MEMBER(bbusters_state_base::pf_w)
+void bbusters_state_base::pf_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_pf_data[Layer][offset]);
m_pf_tilemap[Layer]->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(bbusters_state_base::coin_counter_w)
+void bbusters_state_base::coin_counter_w(uint8_t data)
{
machine().bookkeeping().coin_counter_w(0, BIT(data, 0));
machine().bookkeeping().coin_counter_w(1, BIT(data, 1));
@@ -312,13 +312,13 @@ void bbusters_state::bbusters_map(address_map &map)
/*******************************************************************************/
-WRITE16_MEMBER(mechatt_state::two_gun_output_w)
+void mechatt_state::two_gun_output_w(uint16_t data)
{
for (int i = 0; i < 2; i++)
m_gun_recoil[i] = BIT(data, i);
}
-READ16_MEMBER(mechatt_state::mechatt_gun_r)
+uint16_t mechatt_state::mechatt_gun_r(offs_t offset)
{
int x, y;
diff --git a/src/mame/drivers/beathead.cpp b/src/mame/drivers/beathead.cpp
index bcb16369f56..142766c28d8 100644
--- a/src/mame/drivers/beathead.cpp
+++ b/src/mame/drivers/beathead.cpp
@@ -187,7 +187,7 @@ void beathead_state::update_interrupts()
}
-WRITE32_MEMBER( beathead_state::interrupt_control_w )
+void beathead_state::interrupt_control_w(offs_t offset, uint32_t data)
{
int irq = offset & 3;
int control = (offset >> 2) & 1;
@@ -205,7 +205,7 @@ WRITE32_MEMBER( beathead_state::interrupt_control_w )
}
-READ32_MEMBER( beathead_state::interrupt_control_r )
+uint32_t beathead_state::interrupt_control_r()
{
/* return the enables as a bitfield */
return (m_irq_enable[0]) | (m_irq_enable[1] << 1) | (m_irq_enable[2] << 2);
@@ -219,7 +219,7 @@ READ32_MEMBER( beathead_state::interrupt_control_r )
*
*************************************/
-WRITE32_MEMBER( beathead_state::sound_reset_w )
+void beathead_state::sound_reset_w(offs_t offset, uint32_t data)
{
logerror("Sound reset = %d\n", !offset);
m_jsa->soundcpu().set_input_line(INPUT_LINE_RESET, offset ? CLEAR_LINE : ASSERT_LINE);
@@ -233,7 +233,7 @@ WRITE32_MEMBER( beathead_state::sound_reset_w )
*
*************************************/
-WRITE32_MEMBER( beathead_state::coin_count_w )
+void beathead_state::coin_count_w(offs_t offset, uint32_t data)
{
machine().bookkeeping().coin_counter_w(0, !offset);
}
diff --git a/src/mame/drivers/bebox.cpp b/src/mame/drivers/bebox.cpp
index 24c93e75ef5..ccd3f04adbb 100644
--- a/src/mame/drivers/bebox.cpp
+++ b/src/mame/drivers/bebox.cpp
@@ -28,8 +28,8 @@
#include "formats/pc_dsk.h"
#include "machine/8042kbdc.h"
-READ8_MEMBER(bebox_state::at_dma8237_1_r) { return m_dma8237[1]->read(offset / 2); }
-WRITE8_MEMBER(bebox_state::at_dma8237_1_w) { m_dma8237[1]->write(offset / 2, data); }
+uint8_t bebox_state::at_dma8237_1_r(offs_t offset) { return m_dma8237[1]->read(offset / 2); }
+void bebox_state::at_dma8237_1_w(offs_t offset, uint8_t data) { m_dma8237[1]->write(offset / 2, data); }
void bebox_state::main_mem(address_map &map)
{
@@ -71,7 +71,7 @@ void bebox_state::main_mem(address_map &map)
// The following is a gross hack to let the BeBox boot ROM identify the processors correctly.
// This needs to be done in a better way if someone comes up with one.
-READ64_MEMBER(bebox_state::bb_slave_64be_r)
+uint64_t bebox_state::bb_slave_64be_r(offs_t offset, uint64_t mem_mask)
{
// 2e94 is the real address, 2e84 is where the PC appears to be under full DRC
if ((m_ppc[1]->pc() == 0xfff02e94) || (m_ppc[1]->pc() == 0xfff02e84))
@@ -79,7 +79,7 @@ READ64_MEMBER(bebox_state::bb_slave_64be_r)
return 0x108000ff; // indicate slave CPU
}
- return m_pcibus->read_64be(space, offset, mem_mask);
+ return m_pcibus->read_64be(offset, mem_mask);
}
void bebox_state::slave_mem(address_map &map)
diff --git a/src/mame/drivers/beehive.cpp b/src/mame/drivers/beehive.cpp
index 4bf8271cdea..d724cfef248 100644
--- a/src/mame/drivers/beehive.cpp
+++ b/src/mame/drivers/beehive.cpp
@@ -23,9 +23,9 @@
#include "emu.h"
#include "cpu/i8085/i8085.h"
#include "machine/i8251.h"
-#include "machine/clock.h"
+#include "machine/i8255.h"
+#include "machine/pit8253.h"
#include "bus/rs232/rs232.h"
-#include "emupal.h"
#include "screen.h"
@@ -37,10 +37,8 @@ public:
, m_maincpu(*this, "maincpu")
, m_p_videoram(*this, "videoram")
, m_p_chargen(*this, "chargen")
- , m_uart1(*this, "uart1")
- , m_uart2(*this, "uart2")
- , m_rs232a(*this, "rs232a")
- , m_rs232b(*this, "rs232b")
+ , m_usart(*this, "usart%u", 1U)
+ , m_rs232(*this, "rs232%c", 'a')
, m_io_keyboard(*this, "X%u", 0U)
{ }
@@ -53,14 +51,12 @@ private:
u8 m_keyline;
u8 beehive_60_r();
void beehive_62_w(u8 data);
- u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
required_device<cpu_device> m_maincpu;
required_shared_ptr<u8> m_p_videoram;
required_region_ptr<u8> m_p_chargen;
- required_device<i8251_device> m_uart1;
- required_device<i8251_device> m_uart2;
- required_device<rs232_port_device> m_rs232a;
- required_device<rs232_port_device> m_rs232b;
+ required_device_array<i8251_device, 2> m_usart;
+ required_device_array<rs232_port_device, 2> m_rs232;
required_ioport_array<16> m_io_keyboard;
};
@@ -88,14 +84,12 @@ void beehive_state::beehive_io(address_map &map)
{
map.global_mask(0xff);
map.unmap_value_high();
- map(0x11, 0x11).portr("DIPS");
- map(0x20, 0x20).rw(m_uart1, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x21, 0x21).rw(m_uart1, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0x30, 0x30).rw(m_uart2, FUNC(i8251_device::data_r), FUNC(i8251_device::data_w));
- map(0x31, 0x31).rw(m_uart2, FUNC(i8251_device::status_r), FUNC(i8251_device::control_w));
- map(0x60, 0x60).r(FUNC(beehive_state::beehive_60_r));
- map(0x61, 0x61).portr("MODIFIERS");
- map(0x62, 0x62).w(FUNC(beehive_state::beehive_62_w));
+ map(0x10, 0x13).rw("ppi1", FUNC(i8255_device::read), FUNC(i8255_device::write));
+ map(0x20, 0x21).rw(m_usart[0], FUNC(i8251_device::read), FUNC(i8251_device::write));
+ map(0x30, 0x31).rw(m_usart[1], FUNC(i8251_device::read), FUNC(i8251_device::write));
+ map(0x60, 0x63).rw("ppi2", FUNC(i8255_device::read), FUNC(i8255_device::write));
+ map(0xe0, 0xe3).rw("pit1", FUNC(pit8253_device::read), FUNC(pit8253_device::write));
+ map(0xf0, 0xf3).rw("pit2", FUNC(pit8253_device::read), FUNC(pit8253_device::write));
}
/* Input ports */
@@ -255,7 +249,7 @@ void beehive_state::machine_start()
/* This system appears to have inline attribute bytes of unknown meaning.
Currently they are ignored. */
-u32 beehive_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+u32 beehive_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
uint16_t cursor_pos = (m_p_videoram[0xcaf] | (m_p_videoram[0xcb0] << 8)) & 0xfff;
uint16_t p_linelist;
@@ -271,7 +265,7 @@ u32 beehive_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, co
for (ra = 0; ra < 10; ra++)
{
- uint16_t *p = &bitmap.pix16(sy++);
+ uint32_t *p = &bitmap.pix32(sy++);
u8 chars = 0;
for (x = ma; x < ma + line_length; x++)
@@ -290,14 +284,14 @@ u32 beehive_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, co
chars++;
/* Display a scanline of a character */
- *p++ = BIT(gfx, 7);
- *p++ = BIT(gfx, 6);
- *p++ = BIT(gfx, 5);
- *p++ = BIT(gfx, 4);
- *p++ = BIT(gfx, 3);
- *p++ = BIT(gfx, 2);
- *p++ = BIT(gfx, 1);
- *p++ = BIT(gfx, 0);
+ *p++ = BIT(gfx, 7) ? rgb_t::white() : rgb_t::black();
+ *p++ = BIT(gfx, 6) ? rgb_t::white() : rgb_t::black();
+ *p++ = BIT(gfx, 5) ? rgb_t::white() : rgb_t::black();
+ *p++ = BIT(gfx, 4) ? rgb_t::white() : rgb_t::black();
+ *p++ = BIT(gfx, 3) ? rgb_t::white() : rgb_t::black();
+ *p++ = BIT(gfx, 2) ? rgb_t::white() : rgb_t::black();
+ *p++ = BIT(gfx, 1) ? rgb_t::white() : rgb_t::black();
+ *p++ = BIT(gfx, 0) ? rgb_t::white() : rgb_t::black();
}
}
}
@@ -319,35 +313,45 @@ void beehive_state::beehive(machine_config &config)
screen.set_screen_update(FUNC(beehive_state::screen_update));
screen.set_size(640, 250);
screen.set_visarea(0, 639, 0, 249);
- screen.set_palette("palette");
-
- PALETTE(config, "palette", palette_device::MONOCHROME);
-
- I8251(config, m_uart1, 0);
- m_uart1->txd_handler().set("rs232a", FUNC(rs232_port_device::write_txd));
- m_uart1->dtr_handler().set("rs232a", FUNC(rs232_port_device::write_dtr));
- m_uart1->rts_handler().set("rs232a", FUNC(rs232_port_device::write_rts));
-
- RS232_PORT(config, m_rs232a, default_rs232_devices, nullptr);
- m_rs232a->rxd_handler().set("uart1", FUNC(i8251_device::write_rxd));
- m_rs232a->dsr_handler().set("uart1", FUNC(i8251_device::write_dsr));
- m_rs232a->cts_handler().set("uart1", FUNC(i8251_device::write_cts));
-
- I8251(config, m_uart2, 0);
- m_uart2->txd_handler().set("rs232b", FUNC(rs232_port_device::write_txd));
- m_uart2->dtr_handler().set("rs232b", FUNC(rs232_port_device::write_dtr));
- m_uart2->rts_handler().set("rs232b", FUNC(rs232_port_device::write_rts));
-
- RS232_PORT(config, m_rs232b, default_rs232_devices, nullptr);
- m_rs232b->rxd_handler().set("uart2", FUNC(i8251_device::write_rxd));
- m_rs232b->dsr_handler().set("uart2", FUNC(i8251_device::write_dsr));
- m_rs232b->cts_handler().set("uart2", FUNC(i8251_device::write_cts));
-
- clock_device &rs232_clock(CLOCK(config, "rs232_clock", 153'600));
- rs232_clock.signal_handler().set(m_uart1, FUNC(i8251_device::write_rxc));
- rs232_clock.signal_handler().append(m_uart1, FUNC(i8251_device::write_txc));
- rs232_clock.signal_handler().append(m_uart2, FUNC(i8251_device::write_rxc));
- rs232_clock.signal_handler().append(m_uart2, FUNC(i8251_device::write_txc));
+
+ i8255_device &ppi1(I8255(config, "ppi1"));
+ ppi1.in_pb_callback().set_ioport("DIPS");
+
+ i8255_device &ppi2(I8255(config, "ppi2"));
+ ppi2.in_pa_callback().set(FUNC(beehive_state::beehive_60_r));
+ ppi2.in_pb_callback().set_ioport("MODIFIERS");
+ ppi2.out_pc_callback().set(FUNC(beehive_state::beehive_62_w));
+
+ PIT8253(config, "pit1");
+
+ pit8253_device &pit2(PIT8253(config, "pit2"));
+ pit2.set_clk<0>(1'536'000);
+ pit2.set_clk<1>(1'536'000);
+ pit2.set_clk<2>(1'536'000);
+ pit2.out_handler<0>().set(m_usart[0], FUNC(i8251_device::write_rxc));
+ pit2.out_handler<1>().set(m_usart[0], FUNC(i8251_device::write_txc));
+ pit2.out_handler<2>().set(m_usart[1], FUNC(i8251_device::write_rxc));
+ pit2.out_handler<2>().append(m_usart[1], FUNC(i8251_device::write_txc));
+
+ I8251(config, m_usart[0], 0);
+ m_usart[0]->txd_handler().set(m_rs232[0], FUNC(rs232_port_device::write_txd));
+ m_usart[0]->dtr_handler().set(m_rs232[0], FUNC(rs232_port_device::write_dtr));
+ m_usart[0]->rts_handler().set(m_rs232[0], FUNC(rs232_port_device::write_rts));
+
+ RS232_PORT(config, m_rs232[0], default_rs232_devices, nullptr);
+ m_rs232[0]->rxd_handler().set(m_usart[0], FUNC(i8251_device::write_rxd));
+ m_rs232[0]->dsr_handler().set(m_usart[0], FUNC(i8251_device::write_dsr));
+ m_rs232[0]->cts_handler().set(m_usart[0], FUNC(i8251_device::write_cts));
+
+ I8251(config, m_usart[1], 0);
+ m_usart[1]->txd_handler().set(m_rs232[1], FUNC(rs232_port_device::write_txd));
+ m_usart[1]->dtr_handler().set(m_rs232[1], FUNC(rs232_port_device::write_dtr));
+ m_usart[1]->rts_handler().set(m_rs232[1], FUNC(rs232_port_device::write_rts));
+
+ RS232_PORT(config, m_rs232[1], default_rs232_devices, nullptr);
+ m_rs232[1]->rxd_handler().set(m_usart[1], FUNC(i8251_device::write_rxd));
+ m_rs232[1]->dsr_handler().set(m_usart[1], FUNC(i8251_device::write_dsr));
+ m_rs232[1]->cts_handler().set(m_usart[1], FUNC(i8251_device::write_cts));
}
/* ROM definition */
diff --git a/src/mame/drivers/bfm_sc4.cpp b/src/mame/drivers/bfm_sc4.cpp
index fc346f97d84..2b306b9070d 100644
--- a/src/mame/drivers/bfm_sc4.cpp
+++ b/src/mame/drivers/bfm_sc4.cpp
@@ -271,7 +271,7 @@ uint8_t sc4_state::read_input_matrix(int row)
return value;
}
-READ16_MEMBER(sc4_state::sc4_cs1_r)
+uint16_t sc4_state::sc4_cs1_r(offs_t offset, uint16_t mem_mask)
{
int pc = m_maincpu->pc();
@@ -321,7 +321,7 @@ READ16_MEMBER(sc4_state::sc4_cs1_r)
return 0x0000;
}
-READ16_MEMBER(sc4_state::sc4_mem_r)
+uint16_t sc4_state::sc4_mem_r(offs_t offset, uint16_t mem_mask)
{
int pc = m_maincpu->pc();
int cs = m_maincpu->get_cs(offset * 2);
@@ -333,7 +333,7 @@ READ16_MEMBER(sc4_state::sc4_mem_r)
switch ( cs )
{
case 1:
- return sc4_cs1_r(space,offset,mem_mask);
+ return sc4_cs1_r(offset);
case 2:
base = 0x800000/2;
@@ -452,7 +452,7 @@ void bfm_sc45_state::machine_start()
m_digits.resolve();
}
-WRITE8_MEMBER(bfm_sc45_state::mux_output_w)
+void bfm_sc45_state::mux_output_w(offs_t offset, uint8_t data)
{
int const off = offset<<3;
@@ -460,7 +460,7 @@ WRITE8_MEMBER(bfm_sc45_state::mux_output_w)
m_lamps[off+i] = BIT(data, i);
}
-WRITE8_MEMBER(bfm_sc45_state::mux_output2_w)
+void bfm_sc45_state::mux_output2_w(offs_t offset, uint8_t data)
{
int const off = offset<<3;
@@ -495,7 +495,7 @@ WRITE8_MEMBER(bfm_sc45_state::mux_output2_w)
}
}
-WRITE16_MEMBER(sc4_state::sc4_mem_w)
+void sc4_state::sc4_mem_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
int pc = m_maincpu->pc();
int cs = m_maincpu->get_cs(offset * 2);
@@ -536,7 +536,7 @@ WRITE16_MEMBER(sc4_state::sc4_mem_w)
if (ACCESSING_BITS_0_7)
{ // lamps
- mux_output_w(space, (addr & 0x01f0)>>4, data);
+ mux_output_w((addr & 0x01f0)>>4, data);
}
}
@@ -549,7 +549,7 @@ WRITE16_MEMBER(sc4_state::sc4_mem_w)
if (ACCESSING_BITS_0_7)
{ // lamps
- mux_output2_w(space, (addr & 0x01f0)>>4, data);
+ mux_output2_w((addr & 0x01f0)>>4, data);
}
}
else
@@ -571,7 +571,7 @@ WRITE16_MEMBER(sc4_state::sc4_mem_w)
break;
case 0x1330:
- bfm_sc4_reel4_w(space,0,data&0xf);
+ bfm_sc4_reel4_w(data&0xf);
//m_meterstatus = (m_meterstatus&0x3f) | ((data & 0x30) << 2);
m_sec->data_w(~data&0x10);
break;
@@ -621,7 +621,7 @@ void sc4_state::sc4_map(address_map &map)
-READ32_MEMBER(sc4_adder4_state::adder4_mem_r)
+uint32_t sc4_adder4_state::adder4_mem_r(offs_t offset, uint32_t mem_mask)
{
int pc = m_adder4cpu->pc();
int cs = m_adder4cpu->get_cs(offset * 4);
@@ -644,7 +644,7 @@ READ32_MEMBER(sc4_adder4_state::adder4_mem_r)
return 0x0000;
}
-WRITE32_MEMBER(sc4_adder4_state::adder4_mem_w)
+void sc4_adder4_state::adder4_mem_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
int pc = m_adder4cpu->pc();
int cs = m_adder4cpu->get_cs(offset * 4);
@@ -749,7 +749,7 @@ void sc4_state::bfm_sc4_68307_porta_w(address_space &space, bool dedicated, uint
}
}
-WRITE8_MEMBER( sc4_state::bfm_sc4_reel3_w )
+void sc4_state::bfm_sc4_reel3_w(uint8_t data)
{
m_reel3_latch = data;
@@ -760,7 +760,7 @@ WRITE8_MEMBER( sc4_state::bfm_sc4_reel3_w )
}
}
-WRITE8_MEMBER( sc4_state::bfm_sc4_reel4_w )
+void sc4_state::bfm_sc4_reel4_w(uint8_t data)
{
m_reel4_latch = data;
@@ -781,7 +781,7 @@ void sc4_state::bfm_sc4_68307_portb_w(address_space &space, bool dedicated, uint
bfm_sc45_write_serial_vfd((data & 0x4000)?1:0, (data & 0x1000)?1:0, !(data & 0x2000)?1:0);
- bfm_sc4_reel3_w(space, 0, (data&0x0f00)>>8, 0xff);
+ bfm_sc4_reel3_w((data&0x0f00)>>8);
}
}
diff --git a/src/mame/drivers/bfm_sc5.cpp b/src/mame/drivers/bfm_sc5.cpp
index b4b64fba746..7aecae41f74 100644
--- a/src/mame/drivers/bfm_sc5.cpp
+++ b/src/mame/drivers/bfm_sc5.cpp
@@ -147,7 +147,7 @@ PL1 = Compact Flash Slot
-WRITE16_MEMBER( bfm_sc5_state::sc5_duart_w )
+void bfm_sc5_state::sc5_duart_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
// clearly a duart of some kind, write patterns are the same as SC4 games
// logerror("%s: duart_w %1x %04x %04x\n", machine().describe_context(), offset, data, mem_mask);
@@ -163,7 +163,7 @@ WRITE16_MEMBER( bfm_sc5_state::sc5_duart_w )
}
-READ8_MEMBER( bfm_sc5_state::sc5_mux1_r )
+uint8_t bfm_sc5_state::sc5_mux1_r(offs_t offset)
{
switch (offset)
{
@@ -177,11 +177,11 @@ READ8_MEMBER( bfm_sc5_state::sc5_mux1_r )
}
-WRITE8_MEMBER( bfm_sc5_state::sc5_mux1_w )
+void bfm_sc5_state::sc5_mux1_w(offs_t offset, uint8_t data)
{
if ((offset&0xf)==0)
{
- mux_output_w(space, (offset & 0x01f0)>>4, data);
+ mux_output_w((offset & 0x01f0)>>4, data);
}
else
{
@@ -191,11 +191,11 @@ WRITE8_MEMBER( bfm_sc5_state::sc5_mux1_w )
-WRITE8_MEMBER( bfm_sc5_state::sc5_mux2_w )
+void bfm_sc5_state::sc5_mux2_w(offs_t offset, uint8_t data)
{
if ((offset&0xf)==0)
{
- mux_output2_w(space, (offset & 0x01f0)>>4, data);
+ mux_output2_w((offset & 0x01f0)>>4, data);
}
else
{
@@ -281,7 +281,7 @@ void bfm_sc5_state::sc5_map(address_map &map)
INPUT_PORTS_START( bfm_sc5 )
INPUT_PORTS_END
-READ8_MEMBER( bfm_sc5_state::sc5_10202F0_r )
+uint8_t bfm_sc5_state::sc5_10202F0_r(offs_t offset)
{
switch (offset)
{
@@ -296,7 +296,7 @@ READ8_MEMBER( bfm_sc5_state::sc5_10202F0_r )
return 0;
}
-WRITE8_MEMBER( bfm_sc5_state::sc5_10202F0_w )
+void bfm_sc5_state::sc5_10202F0_w(offs_t offset, uint8_t data)
{
switch (offset)
{
diff --git a/src/mame/drivers/bigevglf.cpp b/src/mame/drivers/bigevglf.cpp
index ce0aa3614f9..b5892da6ace 100644
--- a/src/mame/drivers/bigevglf.cpp
+++ b/src/mame/drivers/bigevglf.cpp
@@ -69,7 +69,7 @@ J1100072A
#include "speaker.h"
-WRITE8_MEMBER(bigevglf_state::beg_banking_w)
+void bigevglf_state::beg_banking_w(uint8_t data)
{
m_beg_bank = data;
@@ -79,7 +79,7 @@ WRITE8_MEMBER(bigevglf_state::beg_banking_w)
membank("bank1")->set_entry(m_beg_bank & 0xff); /* empty sockets for IC37-IC44 ROMS */
}
-READ8_MEMBER(bigevglf_state::soundstate_r)
+uint8_t bigevglf_state::soundstate_r()
{
uint8_t sound_state = m_soundlatch[0]->pending_r() ? 0 : 1;
sound_state |= m_soundlatch[1]->pending_r() ? 2 : 0;
@@ -94,27 +94,27 @@ TIMER_CALLBACK_MEMBER(bigevglf_state::deferred_ls74_w)
}
/* do this on a timer to let the CPUs synchronize */
-WRITE8_MEMBER(bigevglf_state::beg13_a_clr_w)
+void bigevglf_state::beg13_a_clr_w(uint8_t data)
{
machine().scheduler().synchronize(timer_expired_delegate(FUNC(bigevglf_state::deferred_ls74_w),this), (0 << 8) | 0);
}
-WRITE8_MEMBER(bigevglf_state::beg13_b_clr_w)
+void bigevglf_state::beg13_b_clr_w(uint8_t data)
{
machine().scheduler().synchronize(timer_expired_delegate(FUNC(bigevglf_state::deferred_ls74_w),this), (1 << 8) | 0);
}
-WRITE8_MEMBER(bigevglf_state::beg13_a_set_w)
+void bigevglf_state::beg13_a_set_w(uint8_t data)
{
machine().scheduler().synchronize(timer_expired_delegate(FUNC(bigevglf_state::deferred_ls74_w),this), (0 << 8) | 1);
}
-WRITE8_MEMBER(bigevglf_state::beg13_b_set_w)
+void bigevglf_state::beg13_b_set_w(uint8_t data)
{
machine().scheduler().synchronize(timer_expired_delegate(FUNC(bigevglf_state::deferred_ls74_w),this), (1 << 8) | 1);
}
-READ8_MEMBER(bigevglf_state::beg_status_r)
+uint8_t bigevglf_state::beg_status_r()
{
/* d0 = Q of 74ls74 IC13(partA)
d1 = Q of 74ls74 IC13(partB)
@@ -131,21 +131,21 @@ READ8_MEMBER(bigevglf_state::beg_status_r)
}
-READ8_MEMBER(bigevglf_state::beg_trackball_x_r)
+uint8_t bigevglf_state::beg_trackball_x_r()
{
static const char *const portx_name[2] = { "P1X", "P2X" };
return ioport(portx_name[m_port_select])->read();
}
-READ8_MEMBER(bigevglf_state::beg_trackball_y_r)
+uint8_t bigevglf_state::beg_trackball_y_r()
{
static const char *const porty_name[2] = { "P1Y", "P2Y" };
return ioport(porty_name[m_port_select])->read();
}
-WRITE8_MEMBER(bigevglf_state::beg_port08_w)
+void bigevglf_state::beg_port08_w(uint8_t data)
{
m_port_select = (data & 0x04) >> 2;
}
@@ -269,7 +269,7 @@ void bigevglf_state::sub_map(address_map &map)
}
-READ8_MEMBER(bigevglf_state::sub_cpu_mcu_coin_port_r)
+uint8_t bigevglf_state::sub_cpu_mcu_coin_port_r()
{
/*
bit 0 and bit 1 = coin inputs
diff --git a/src/mame/drivers/bishi.cpp b/src/mame/drivers/bishi.cpp
index 07d62161665..570d7d89314 100644
--- a/src/mame/drivers/bishi.cpp
+++ b/src/mame/drivers/bishi.cpp
@@ -93,18 +93,18 @@ Notes:
#include "speaker.h"
-READ16_MEMBER(bishi_state::control_r)
+uint16_t bishi_state::control_r()
{
return m_cur_control;
}
-WRITE16_MEMBER(bishi_state::control_w)
+void bishi_state::control_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
// bit 8 = interrupt gate
COMBINE_DATA(&m_cur_control);
}
-WRITE16_MEMBER(bishi_state::control2_w)
+void bishi_state::control2_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
// bit 12 = part of the banking calculation for the K056832 ROM readback
COMBINE_DATA(&m_cur_control2);
@@ -125,12 +125,12 @@ TIMER_DEVICE_CALLBACK_MEMBER(bishi_state::bishi_scanline)
}
/* compensate for a bug in the ram/rom test */
-READ16_MEMBER(bishi_state::bishi_mirror_r)
+uint16_t bishi_state::bishi_mirror_r(offs_t offset)
{
return m_palette->basemem().read16(offset);
}
-READ16_MEMBER(bishi_state::bishi_K056832_rom_r)
+uint16_t bishi_state::bishi_K056832_rom_r(offs_t offset)
{
uint16_t ouroffs;
diff --git a/src/mame/drivers/bking.cpp b/src/mame/drivers/bking.cpp
index a0fc581bb76..a7552593bba 100644
--- a/src/mame/drivers/bking.cpp
+++ b/src/mame/drivers/bking.cpp
@@ -29,50 +29,50 @@ DIP Locations verified for:
#include "speaker.h"
-READ8_MEMBER(bking_state::bking_sndnmi_disable_r)
+uint8_t bking_state::bking_sndnmi_disable_r()
{
m_soundnmi->in_w<1>(0);
return 0;
}
-WRITE8_MEMBER(bking_state::bking_sndnmi_enable_w)
+void bking_state::bking_sndnmi_enable_w(uint8_t data)
{
m_soundnmi->in_w<1>(1);
}
-WRITE8_MEMBER(bking_state::bking_soundlatch_w)
+void bking_state::bking_soundlatch_w(uint8_t data)
{
m_soundlatch->write(bitswap<8>(data, 0, 1, 2, 3, 4, 5, 6, 7));
}
-WRITE8_MEMBER(bking_state::bking3_addr_l_w)
+void bking_state::bking3_addr_l_w(uint8_t data)
{
m_addr_l = data;
}
-WRITE8_MEMBER(bking_state::bking3_addr_h_w)
+void bking_state::bking3_addr_h_w(uint8_t data)
{
m_addr_h = data;
}
-READ8_MEMBER(bking_state::bking3_extrarom_r)
+uint8_t bking_state::bking3_extrarom_r()
{
uint8_t *rom = memregion("user2")->base();
return rom[m_addr_h * 256 + m_addr_l];
}
-WRITE8_MEMBER(bking_state::unk_w)
+void bking_state::unk_w(uint8_t data)
{
// 0 = finished reading extra rom
// 1 = started reading extra rom
}
-READ8_MEMBER(bking_state::bking3_ext_check_r)
+uint8_t bking_state::bking3_ext_check_r()
{
return 0x31; //no "bad rom.", no "bad ext."
}
-READ8_MEMBER(bking_state::bking3_mcu_status_r)
+uint8_t bking_state::bking3_mcu_status_r()
{
// bit 0 = when 1, MCU is ready to receive data from main CPU
// bit 1 = when 1, MCU has sent data to the main CPU
diff --git a/src/mame/drivers/bladestl.cpp b/src/mame/drivers/bladestl.cpp
index c3158356de4..225f8c8495f 100644
--- a/src/mame/drivers/bladestl.cpp
+++ b/src/mame/drivers/bladestl.cpp
@@ -57,7 +57,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(bladestl_state::bladestl_scanline)
*
*************************************/
-READ8_MEMBER(bladestl_state::trackball_r)
+uint8_t bladestl_state::trackball_r(offs_t offset)
{
int curr = m_trackball[offset]->read();
int delta = (curr - m_last_track[offset]) & 0xff;
@@ -66,7 +66,7 @@ READ8_MEMBER(bladestl_state::trackball_r)
return (delta & 0x80) | (curr >> 1);
}
-WRITE8_MEMBER(bladestl_state::bladestl_bankswitch_w)
+void bladestl_state::bladestl_bankswitch_w(uint8_t data)
{
/* bits 0 & 1 = coin counters */
machine().bookkeeping().coin_counter_w(0,data & 0x01);
@@ -101,12 +101,12 @@ void bladestl_state::bladestl_port_B_w(uint8_t data)
m_filter1->filter_rc_set_RC(filter_rc_device::LOWPASS, 1000, 2200, 1000, data & 0x01 ? CAP_N(150) : 0); /* YM2203-SSG-A */
}
-READ8_MEMBER(bladestl_state::bladestl_speech_busy_r)
+uint8_t bladestl_state::bladestl_speech_busy_r()
{
return m_upd7759->busy_r() ? 1 : 0;
}
-WRITE8_MEMBER(bladestl_state::bladestl_speech_ctrl_w)
+void bladestl_state::bladestl_speech_ctrl_w(uint8_t data)
{
m_upd7759->reset_w(data & 1);
m_upd7759->start_w(data & 2);
diff --git a/src/mame/drivers/blktiger.cpp b/src/mame/drivers/blktiger.cpp
index d986e70e341..56996780be5 100644
--- a/src/mame/drivers/blktiger.cpp
+++ b/src/mame/drivers/blktiger.cpp
@@ -32,12 +32,12 @@ Protection comms between main cpu and i8751
**************************************************/
-READ8_MEMBER(blktiger_state::blktiger_from_mcu_r)
+uint8_t blktiger_state::blktiger_from_mcu_r()
{
return m_i8751_latch;
}
-WRITE8_MEMBER(blktiger_state::blktiger_to_mcu_w)
+void blktiger_state::blktiger_to_mcu_w(uint8_t data)
{
m_mcu->set_input_line(MCS51_INT1_LINE, ASSERT_LINE);
m_z80_latch = data;
@@ -58,12 +58,12 @@ void blktiger_state::blktiger_to_main_w(uint8_t data)
-WRITE8_MEMBER(blktiger_state::blktiger_bankswitch_w)
+void blktiger_state::blktiger_bankswitch_w(uint8_t data)
{
membank("bank1")->set_entry(data & 0x0f);
}
-WRITE8_MEMBER(blktiger_state::blktiger_coinlockout_w)
+void blktiger_state::blktiger_coinlockout_w(uint8_t data)
{
if (ioport("COIN_LOCKOUT")->read() & 0x01)
{
diff --git a/src/mame/drivers/blmbycar.cpp b/src/mame/drivers/blmbycar.cpp
index 827c4be384f..f713061b1e0 100644
--- a/src/mame/drivers/blmbycar.cpp
+++ b/src/mame/drivers/blmbycar.cpp
@@ -46,7 +46,7 @@ Check game speed, it depends on a bit we toggle..
/* The top 64k of samples are banked (16 banks total) */
-WRITE8_MEMBER(blmbycar_state::okibank_w)
+void blmbycar_state::okibank_w(uint8_t data)
{
m_okibank->set_entry(data & 0x0f);
}
@@ -61,19 +61,19 @@ WRITE8_MEMBER(blmbycar_state::okibank_w)
/* Preliminary potentiometric wheel support */
-WRITE8_MEMBER(blmbycar_state::blmbycar_pot_wheel_reset_w)
+void blmbycar_state::blmbycar_pot_wheel_reset_w(uint8_t data)
{
m_pot_wheel = m_pot_wheel_io->read() & 0xff;
}
-WRITE8_MEMBER(blmbycar_state::blmbycar_pot_wheel_shift_w)
+void blmbycar_state::blmbycar_pot_wheel_shift_w(uint8_t data)
{
if ( ((m_old_val & 0xff) == 0xff) && ((data & 0xff) == 0) )
m_pot_wheel <<= 1;
m_old_val = data;
}
-READ16_MEMBER(blmbycar_state::blmbycar_pot_wheel_r)
+uint16_t blmbycar_state::blmbycar_pot_wheel_r()
{
return ((m_pot_wheel & 0x80) ? 0x04 : 0) | (machine().rand() & 0x08);
}
@@ -81,7 +81,7 @@ READ16_MEMBER(blmbycar_state::blmbycar_pot_wheel_r)
/* Preliminary optical wheel support */
-READ16_MEMBER(blmbycar_state::blmbycar_opt_wheel_r)
+uint16_t blmbycar_state::blmbycar_opt_wheel_r()
{
return ((m_opt_wheel_io->read() & 0xff) << 8) | 0xff;
}
@@ -96,7 +96,7 @@ READ16_MEMBER(blmbycar_state::blmbycar_opt_wheel_r)
***************************************************************************/
template<int Layer>
-WRITE16_MEMBER(blmbycar_state::vram_w)
+void blmbycar_state::vram_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_vram[Layer][offset]);
m_tilemap[Layer]->mark_tile_dirty(offset / 2);
@@ -144,7 +144,7 @@ void blmbycar_state::blmbycar_map(address_map &map)
map(0x70007b, 0x70007b).w(FUNC(blmbycar_state::blmbycar_pot_wheel_shift_w)); //
}
-READ16_MEMBER(blmbycar_state::waterball_unk_r)
+uint16_t blmbycar_state::waterball_unk_r()
{
m_retvalue ^= 0x0008; // must toggle.. but not vblank?
return m_retvalue;
diff --git a/src/mame/drivers/blockout.cpp b/src/mame/drivers/blockout.cpp
index 1820a11a08d..fdc42205044 100644
--- a/src/mame/drivers/blockout.cpp
+++ b/src/mame/drivers/blockout.cpp
@@ -79,12 +79,12 @@
#define MAIN_CLOCK XTAL(10'000'000)
#define AUDIO_CLOCK XTAL(3'579'545)
-WRITE16_MEMBER(blockout_state::blockout_irq6_ack_w)
+void blockout_state::blockout_irq6_ack_w(uint16_t data)
{
m_maincpu->set_input_line(6, CLEAR_LINE);
}
-WRITE16_MEMBER(blockout_state::blockout_irq5_ack_w)
+void blockout_state::blockout_irq5_ack_w(uint16_t data)
{
m_maincpu->set_input_line(5, CLEAR_LINE);
}
diff --git a/src/mame/drivers/bloodbro.cpp b/src/mame/drivers/bloodbro.cpp
index cbef8a0c7d9..b0e516c735a 100644
--- a/src/mame/drivers/bloodbro.cpp
+++ b/src/mame/drivers/bloodbro.cpp
@@ -515,7 +515,7 @@ void bloodbro_state::layer_scroll_w(offs_t offset, uint16_t data, uint16_t mem_m
COMBINE_DATA(&m_scrollram[offset]);
}
-WRITE16_MEMBER( bloodbro_state::weststry_layer_scroll_w )
+void bloodbro_state::weststry_layer_scroll_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_scrollram[offset]);
}
diff --git a/src/mame/drivers/blueprnt.cpp b/src/mame/drivers/blueprnt.cpp
index 7795f327f4e..07343c7bb3a 100644
--- a/src/mame/drivers/blueprnt.cpp
+++ b/src/mame/drivers/blueprnt.cpp
@@ -70,12 +70,12 @@ void blueprnt_state::dipsw_w(uint8_t data)
m_dipsw = data;
}
-READ8_MEMBER(blueprnt_state::blueprnt_sh_dipsw_r)
+uint8_t blueprnt_state::blueprnt_sh_dipsw_r()
{
return m_dipsw;
}
-READ8_MEMBER(blueprnt_state::grasspin_sh_dipsw_r)
+uint8_t blueprnt_state::grasspin_sh_dipsw_r()
{
// judging from the disasm, it looks like simple protection was added
// d6: small possibility it's for comms? but the fact that there's a Freeze switch on the pcb rules this out
@@ -83,13 +83,13 @@ READ8_MEMBER(blueprnt_state::grasspin_sh_dipsw_r)
return (m_dipsw & 0x7f) | 0x80;
}
-WRITE8_MEMBER(blueprnt_state::blueprnt_sound_command_w)
+void blueprnt_state::blueprnt_sound_command_w(uint8_t data)
{
m_soundlatch->write(data);
m_audiocpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
}
-WRITE8_MEMBER(blueprnt_state::blueprnt_coin_counter_w)
+void blueprnt_state::blueprnt_coin_counter_w(uint8_t data)
{
machine().bookkeeping().coin_counter_w(0, data & 0x01);
machine().bookkeeping().coin_counter_w(1, data & 0x02);
diff --git a/src/mame/drivers/bogeyman.cpp b/src/mame/drivers/bogeyman.cpp
index a8a83bdc7c0..5c806149779 100644
--- a/src/mame/drivers/bogeyman.cpp
+++ b/src/mame/drivers/bogeyman.cpp
@@ -25,12 +25,12 @@
// Sound section is copied from Mysterious Stones driver by Nicola, Mike, Brad
-WRITE8_MEMBER(bogeyman_state::ay8910_latch_w)
+void bogeyman_state::ay8910_latch_w(uint8_t data)
{
m_psg_latch = data;
}
-WRITE8_MEMBER(bogeyman_state::ay8910_control_w)
+void bogeyman_state::ay8910_control_w(uint8_t data)
{
// bit 0 is flipscreen
flip_screen_set(data & 0x01);
diff --git a/src/mame/drivers/bombjack.cpp b/src/mame/drivers/bombjack.cpp
index c884dc89d10..d1106f59f12 100644
--- a/src/mame/drivers/bombjack.cpp
+++ b/src/mame/drivers/bombjack.cpp
@@ -106,7 +106,7 @@ Dip Locations and factory settings verified with manual
#include "speaker.h"
-READ8_MEMBER(bombjack_state::soundlatch_read_and_clear)
+uint8_t bombjack_state::soundlatch_read_and_clear()
{
// An extra flip-flop is used to clear the LS273 after reading it through a LS245
// (this flip-flop is then cleared in sync with the sound CPU clock)
@@ -123,7 +123,7 @@ READ8_MEMBER(bombjack_state::soundlatch_read_and_clear)
*
*************************************/
-WRITE8_MEMBER(bombjack_state::irq_mask_w)
+void bombjack_state::irq_mask_w(uint8_t data)
{
m_nmi_mask = BIT(data, 0);
if (!m_nmi_mask)
diff --git a/src/mame/drivers/boogwing.cpp b/src/mame/drivers/boogwing.cpp
index 687957c58e5..c94102fd4f2 100644
--- a/src/mame/drivers/boogwing.cpp
+++ b/src/mame/drivers/boogwing.cpp
@@ -96,7 +96,7 @@
#define MAIN_XTAL XTAL(28'000'000)
#define SOUND_XTAL XTAL(32'220'000)
-READ16_MEMBER( boogwing_state::boogwing_protection_region_0_104_r )
+uint16_t boogwing_state::boogwing_protection_region_0_104_r(offs_t offset)
{
int real_address = 0 + (offset *2);
int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
@@ -105,7 +105,7 @@ READ16_MEMBER( boogwing_state::boogwing_protection_region_0_104_r )
return data;
}
-WRITE16_MEMBER( boogwing_state::boogwing_protection_region_0_104_w )
+void boogwing_state::boogwing_protection_region_0_104_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
int real_address = 0 + (offset *2);
int deco146_addr = bitswap<32>(real_address, /* NC */31,30,29,28,27,26,25,24,23,22,21,20,19,18, 13,12,11,/**/ 17,16,15,14, 10,9,8, 7,6,5,4, 3,2,1,0) & 0x7fff;
@@ -113,7 +113,7 @@ WRITE16_MEMBER( boogwing_state::boogwing_protection_region_0_104_w )
m_deco104->write_data( deco146_addr, data, mem_mask, cs );
}
-WRITE16_MEMBER( boogwing_state::priority_w )
+void boogwing_state::priority_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_priority);
}
diff --git a/src/mame/drivers/bottom9.cpp b/src/mame/drivers/bottom9.cpp
index 8276aca6732..ccbfb0fdae6 100644
--- a/src/mame/drivers/bottom9.cpp
+++ b/src/mame/drivers/bottom9.cpp
@@ -25,7 +25,7 @@
#include "speaker.h"
-READ8_MEMBER(bottom9_state::k052109_051960_r)
+uint8_t bottom9_state::k052109_051960_r(offs_t offset)
{
if (m_k052109->get_rmrd_line() == CLEAR_LINE)
{
@@ -40,7 +40,7 @@ READ8_MEMBER(bottom9_state::k052109_051960_r)
return m_k052109->read(offset);
}
-WRITE8_MEMBER(bottom9_state::k052109_051960_w)
+void bottom9_state::k052109_051960_w(offs_t offset, uint8_t data)
{
if (offset >= 0x3800 && offset < 0x3808)
m_k051960->k051937_w(offset - 0x3800, data);
@@ -50,10 +50,10 @@ WRITE8_MEMBER(bottom9_state::k052109_051960_w)
m_k051960->k051960_w(offset - 0x3c00, data);
}
-READ8_MEMBER(bottom9_state::bottom9_bankedram1_r)
+uint8_t bottom9_state::bottom9_bankedram1_r(offs_t offset)
{
if (m_k052109_selected)
- return k052109_051960_r(space, offset);
+ return k052109_051960_r(offset);
else
{
if (m_zoomreadroms)
@@ -63,31 +63,31 @@ READ8_MEMBER(bottom9_state::bottom9_bankedram1_r)
}
}
-WRITE8_MEMBER(bottom9_state::bottom9_bankedram1_w)
+void bottom9_state::bottom9_bankedram1_w(offs_t offset, uint8_t data)
{
if (m_k052109_selected)
- k052109_051960_w(space, offset, data);
+ k052109_051960_w(offset, data);
else
m_k051316->write(offset, data);
}
-READ8_MEMBER(bottom9_state::bottom9_bankedram2_r)
+uint8_t bottom9_state::bottom9_bankedram2_r(offs_t offset)
{
if (m_k052109_selected)
- return k052109_051960_r(space, offset + 0x2000);
+ return k052109_051960_r(offset + 0x2000);
else
return m_palette->basemem().read8(offset);
}
-WRITE8_MEMBER(bottom9_state::bottom9_bankedram2_w)
+void bottom9_state::bottom9_bankedram2_w(offs_t offset, uint8_t data)
{
if (m_k052109_selected)
- k052109_051960_w(space, offset + 0x2000, data);
+ k052109_051960_w(offset + 0x2000, data);
else
m_palette->write8(offset, data);
}
-WRITE8_MEMBER(bottom9_state::bankswitch_w)
+void bottom9_state::bankswitch_w(uint8_t data)
{
int bank;
@@ -104,7 +104,7 @@ WRITE8_MEMBER(bottom9_state::bankswitch_w)
membank("bank1")->set_entry(bank);
}
-WRITE8_MEMBER(bottom9_state::bottom9_1f90_w)
+void bottom9_state::bottom9_1f90_w(uint8_t data)
{
/* bits 0/1 = coin counters */
machine().bookkeeping().coin_counter_w(0, data & 0x01);
@@ -123,7 +123,7 @@ WRITE8_MEMBER(bottom9_state::bottom9_1f90_w)
m_k052109_selected = data & 0x20;
}
-WRITE8_MEMBER(bottom9_state::bottom9_sh_irqtrigger_w)
+void bottom9_state::bottom9_sh_irqtrigger_w(uint8_t data)
{
m_audiocpu->set_input_line_and_vector(0, HOLD_LINE, 0xff); // Z80
}
@@ -134,12 +134,12 @@ INTERRUPT_GEN_MEMBER(bottom9_state::bottom9_sound_interrupt)
device.execute().pulse_input_line(INPUT_LINE_NMI, attotime::zero);
}
-WRITE8_MEMBER(bottom9_state::nmi_enable_w)
+void bottom9_state::nmi_enable_w(uint8_t data)
{
m_nmienable = data;
}
-WRITE8_MEMBER(bottom9_state::sound_bank_w)
+void bottom9_state::sound_bank_w(uint8_t data)
{
int bank_A, bank_B;
diff --git a/src/mame/drivers/brkthru.cpp b/src/mame/drivers/brkthru.cpp
index 7293fe25c9b..61cb4aa1e5e 100644
--- a/src/mame/drivers/brkthru.cpp
+++ b/src/mame/drivers/brkthru.cpp
@@ -160,7 +160,7 @@ buttons down after the game has started then pressing F3 to reset the game.
*
*************************************/
-WRITE8_MEMBER(brkthru_state::brkthru_1803_w)
+void brkthru_state::brkthru_1803_w(uint8_t data)
{
/* bit 0 = NMI enable */
m_nmi_mask = ~data & 1;
@@ -171,7 +171,7 @@ WRITE8_MEMBER(brkthru_state::brkthru_1803_w)
/* bit 1 = ? maybe IRQ acknowledge */
}
-WRITE8_MEMBER(brkthru_state::darwin_0803_w)
+void brkthru_state::darwin_0803_w(uint8_t data)
{
/* bit 0 = NMI enable */
m_nmi_mask = data & 1;
diff --git a/src/mame/drivers/btime.cpp b/src/mame/drivers/btime.cpp
index ceda47a9c61..75524d8120a 100644
--- a/src/mame/drivers/btime.cpp
+++ b/src/mame/drivers/btime.cpp
@@ -167,7 +167,7 @@ enum
};
-WRITE8_MEMBER(btime_state::audio_nmi_enable_w)
+void btime_state::audio_nmi_enable_w(uint8_t data)
{
/* for most games, this serves as the NMI enable for the audio CPU; however,
lnc and disco use bit 0 of the first AY-8910's port A instead; many other
@@ -380,7 +380,7 @@ INPUT_CHANGED_MEMBER(btime_state::coin_inserted_nmi_lo)
}
-READ8_MEMBER(btime_state::zoar_dsw1_read)
+uint8_t btime_state::zoar_dsw1_read()
{
return (!m_screen->vblank() << 7) | (ioport("DSW1")->read() & 0x7f);
}
@@ -2090,7 +2090,7 @@ ROM_START( sdtennis )
ROM_LOAD( "ao_04.10f", 0x1000, 0x1000, CRC(921952af) SHA1(4e9248f3493a5f4651278f27c11f507571242317) )
ROM_END
-READ8_MEMBER(btime_state::wtennis_reset_hack_r)
+uint8_t btime_state::wtennis_reset_hack_r()
{
uint8_t *RAM = memregion("maincpu")->base();
@@ -2171,7 +2171,7 @@ void btime_state::init_protennb()
void btime_state::init_wtennis()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xc15f, 0xc15f, read8_delegate(*this, FUNC(btime_state::wtennis_reset_hack_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xc15f, 0xc15f, read8smo_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/btoads.cpp b/src/mame/drivers/btoads.cpp
index 5137bde47ed..d6e70fca2d8 100644
--- a/src/mame/drivers/btoads.cpp
+++ b/src/mame/drivers/btoads.cpp
@@ -59,14 +59,14 @@ void btoads_state::device_timer(emu_timer &timer, device_timer_id id, int param,
}
-WRITE16_MEMBER( btoads_state::main_sound_w )
+void btoads_state::main_sound_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
if (ACCESSING_BITS_0_7)
synchronize(TIMER_ID_DELAYED_SOUND, data & 0xff);
}
-READ16_MEMBER( btoads_state::main_sound_r )
+uint16_t btoads_state::main_sound_r()
{
m_sound_to_main_ready = 0;
return m_sound_to_main_data;
@@ -92,27 +92,27 @@ READ_LINE_MEMBER( btoads_state::sound_to_main_r )
*
*************************************/
-WRITE8_MEMBER( btoads_state::sound_data_w )
+void btoads_state::sound_data_w(uint8_t data)
{
m_sound_to_main_data = data;
m_sound_to_main_ready = 1;
}
-READ8_MEMBER( btoads_state::sound_data_r )
+uint8_t btoads_state::sound_data_r()
{
m_main_to_sound_ready = 0;
return m_main_to_sound_data;
}
-READ8_MEMBER( btoads_state::sound_ready_to_send_r )
+uint8_t btoads_state::sound_ready_to_send_r()
{
return m_sound_to_main_ready ? 0x00 : 0x80;
}
-READ8_MEMBER( btoads_state::sound_data_ready_r )
+uint8_t btoads_state::sound_data_ready_r()
{
if (m_audiocpu->pc() == 0xd50 && !m_main_to_sound_ready)
m_audiocpu->spin_until_interrupt();
@@ -127,7 +127,7 @@ READ8_MEMBER( btoads_state::sound_data_ready_r )
*
*************************************/
-WRITE8_MEMBER( btoads_state::sound_int_state_w )
+void btoads_state::sound_int_state_w(uint8_t data)
{
/* top bit controls BSMT2000 reset */
if (!(m_sound_int_state & 0x80) && (data & 0x80))
@@ -146,13 +146,13 @@ WRITE8_MEMBER( btoads_state::sound_int_state_w )
*
*************************************/
-READ8_MEMBER( btoads_state::bsmt_ready_r )
+uint8_t btoads_state::bsmt_ready_r()
{
return m_bsmt->read_status() << 7;
}
-WRITE8_MEMBER( btoads_state::bsmt2000_port_w )
+void btoads_state::bsmt2000_port_w(offs_t offset, uint8_t data)
{
m_bsmt->write_reg(offset >> 8);
m_bsmt->write_data(((offset & 0xff) << 8) | data);
diff --git a/src/mame/drivers/buggychl.cpp b/src/mame/drivers/buggychl.cpp
index 4095286ebbb..b474c67b9f7 100644
--- a/src/mame/drivers/buggychl.cpp
+++ b/src/mame/drivers/buggychl.cpp
@@ -103,12 +103,12 @@ Schematics show the jumper set to the 6mhz setting.
#include "buggychl.lh"
-WRITE8_MEMBER(buggychl_state::bankswitch_w)
+void buggychl_state::bankswitch_w(uint8_t data)
{
membank("bank1")->set_entry(data & 0x07); // shall we check if data&7 < # banks?
}
-WRITE8_MEMBER(buggychl_state::sound_enable_w)
+void buggychl_state::sound_enable_w(uint8_t data)
{
// does this really only control the sound irq 'timer' enable state, rather than the entire sound system?
// this would be more in line with the (admittedly incorrect) schematic...
@@ -116,7 +116,7 @@ WRITE8_MEMBER(buggychl_state::sound_enable_w)
machine().sound().system_enable(data & 1);
}
-READ8_MEMBER(buggychl_state::mcu_status_r)
+uint8_t buggychl_state::mcu_status_r()
{
// bit 0 = when 1, MCU is ready to receive data from main CPU
// bit 1 = when 1, MCU has sent data to the main CPU
@@ -134,12 +134,12 @@ READ8_MEMBER(buggychl_state::mcu_status_r)
// a cpu read of soundlatch2 sets ic12.1 so /Q is low, so cpu bit 0 and sound bit 1 read as clear
// a sound read of soundlatch clears ic12.2 so /Q is high, so cpu bit 1 and sound bit 0 read as set
// ic12.1 is set and ic12.2 is cleared by /SRESET
-READ8_MEMBER(buggychl_state::sound_status_main_r)
+uint8_t buggychl_state::sound_status_main_r()
{
return (m_soundlatch2->pending_r() ? 1 : 0) | (m_soundlatch->pending_r() ? 0 : 2);
}
-READ8_MEMBER(buggychl_state::sound_status_sound_r)
+uint8_t buggychl_state::sound_status_sound_r()
{
return (m_soundlatch2->pending_r() ? 2 : 0) | (m_soundlatch->pending_r() ? 0 : 1);
}
@@ -458,7 +458,7 @@ static GFXDECODE_START( gfx_buggychl )
GFXDECODE_END
-WRITE8_MEMBER(buggychl_state::ta7630_volbal_msm_w)
+void buggychl_state::ta7630_volbal_msm_w(uint8_t data)
{
m_ta7630->set_device_volume(m_msm, data >> 4);
}
diff --git a/src/mame/drivers/bullet.cpp b/src/mame/drivers/bullet.cpp
index 471327d69e4..548a9472b46 100644
--- a/src/mame/drivers/bullet.cpp
+++ b/src/mame/drivers/bullet.cpp
@@ -103,7 +103,7 @@ enum
// mreq_r -
//-------------------------------------------------
-READ8_MEMBER( bullet_state::mreq_r )
+uint8_t bullet_state::mreq_r(offs_t offset)
{
uint8_t data = 0;
@@ -131,7 +131,7 @@ READ8_MEMBER( bullet_state::mreq_r )
// mreq_w -
//-------------------------------------------------
-WRITE8_MEMBER( bullet_state::mreq_w )
+void bullet_state::mreq_w(offs_t offset, uint8_t data)
{
if (offset < 0xc000)
{
@@ -148,7 +148,7 @@ WRITE8_MEMBER( bullet_state::mreq_w )
// win_r -
//-------------------------------------------------
-READ8_MEMBER( bullet_state::win_r )
+uint8_t bullet_state::win_r()
{
return 0;
}
@@ -158,7 +158,7 @@ READ8_MEMBER( bullet_state::win_r )
// wstrobe_w -
//-------------------------------------------------
-WRITE8_MEMBER( bullet_state::wstrobe_w )
+void bullet_state::wstrobe_w(uint8_t data)
{
}
@@ -167,7 +167,7 @@ WRITE8_MEMBER( bullet_state::wstrobe_w )
// brom_r -
//-------------------------------------------------
-READ8_MEMBER( bullet_state::brom_r )
+uint8_t bullet_state::brom_r()
{
m_brom = 1;
@@ -179,7 +179,7 @@ READ8_MEMBER( bullet_state::brom_r )
// brom_w -
//-------------------------------------------------
-WRITE8_MEMBER( bullet_state::brom_w )
+void bullet_state::brom_w(uint8_t data)
{
m_brom = 1;
}
@@ -189,7 +189,7 @@ WRITE8_MEMBER( bullet_state::brom_w )
// exdsk_w -
//-------------------------------------------------
-WRITE8_MEMBER( bullet_state::exdsk_w )
+void bullet_state::exdsk_w(uint8_t data)
{
/*
@@ -248,7 +248,7 @@ WRITE8_MEMBER( bullet_state::exdsk_w )
// exdma_w -
//-------------------------------------------------
-WRITE8_MEMBER( bullet_state::exdma_w )
+void bullet_state::exdma_w(uint8_t data)
{
/*
@@ -277,7 +277,7 @@ WRITE8_MEMBER( bullet_state::exdma_w )
// hdcon_w -
//-------------------------------------------------
-WRITE8_MEMBER( bullet_state::hdcon_w )
+void bullet_state::hdcon_w(uint8_t data)
{
/*
@@ -314,7 +314,7 @@ WRITE8_MEMBER( bullet_state::hdcon_w )
// info_r -
//-------------------------------------------------
-READ8_MEMBER( bullet_state::info_r )
+uint8_t bullet_state::info_r()
{
/*
@@ -350,7 +350,7 @@ READ8_MEMBER( bullet_state::info_r )
// segst_w -
//-------------------------------------------------
-WRITE8_MEMBER( bullet_state::segst_w )
+void bullet_state::segst_w(uint8_t data)
{
m_segst = BIT(data, 0);
}
@@ -360,7 +360,7 @@ WRITE8_MEMBER( bullet_state::segst_w )
// mreq_r -
//-------------------------------------------------
-READ8_MEMBER( bulletf_state::mreq_r )
+uint8_t bulletf_state::mreq_r(offs_t offset)
{
uint8_t data = 0;
@@ -395,7 +395,7 @@ READ8_MEMBER( bulletf_state::mreq_r )
// mreq_w -
//-------------------------------------------------
-WRITE8_MEMBER( bulletf_state::mreq_w )
+void bulletf_state::mreq_w(offs_t offset, uint8_t data)
{
if (offset < 0xc000)
{
@@ -419,7 +419,7 @@ WRITE8_MEMBER( bulletf_state::mreq_w )
// xdma0_w -
//-------------------------------------------------
-WRITE8_MEMBER( bulletf_state::xdma0_w )
+void bulletf_state::xdma0_w(uint8_t data)
{
/*
@@ -446,7 +446,7 @@ WRITE8_MEMBER( bulletf_state::xdma0_w )
// xfdc_w -
//-------------------------------------------------
-WRITE8_MEMBER( bulletf_state::xfdc_w )
+void bulletf_state::xfdc_w(uint8_t data)
{
/*
@@ -506,7 +506,7 @@ WRITE8_MEMBER( bulletf_state::xfdc_w )
// mbank_w -
//-------------------------------------------------
-WRITE8_MEMBER( bulletf_state::mbank_w )
+void bulletf_state::mbank_w(uint8_t data)
{
/*
@@ -531,7 +531,7 @@ WRITE8_MEMBER( bulletf_state::mbank_w )
// scsi_r -
//-------------------------------------------------
-READ8_MEMBER( bulletf_state::scsi_r )
+uint8_t bulletf_state::scsi_r()
{
uint8_t data = m_scsi_data_in->read();
@@ -548,7 +548,7 @@ READ8_MEMBER( bulletf_state::scsi_r )
// scsi_w -
//-------------------------------------------------
-WRITE8_MEMBER( bulletf_state::scsi_w )
+void bulletf_state::scsi_w(uint8_t data)
{
m_scsi_data_out->write(data);
@@ -562,7 +562,7 @@ WRITE8_MEMBER( bulletf_state::scsi_w )
// hwsts_r -
//-------------------------------------------------
-READ8_MEMBER( bulletf_state::hwsts_r )
+uint8_t bulletf_state::hwsts_r()
{
/*
diff --git a/src/mame/drivers/busicom.cpp b/src/mame/drivers/busicom.cpp
index c12e1a7f9a3..4d008f8c7e7 100644
--- a/src/mame/drivers/busicom.cpp
+++ b/src/mame/drivers/busicom.cpp
@@ -23,12 +23,12 @@ uint8_t busicom_state::get_bit_selected(uint32_t val,int num)
return 0;
}
-READ8_MEMBER(busicom_state::keyboard_r)
+uint8_t busicom_state::keyboard_r()
{
return m_input_lines[get_bit_selected(m_keyboard_shifter & 0x3ff, 10)]->read();
}
-READ8_MEMBER(busicom_state::printer_r)
+uint8_t busicom_state::printer_r()
{
uint8_t retVal = 0;
if (m_drum_index==0) retVal |= 1;
@@ -37,7 +37,7 @@ READ8_MEMBER(busicom_state::printer_r)
}
-WRITE8_MEMBER(busicom_state::shifter_w)
+void busicom_state::shifter_w(uint8_t data)
{
// FIXME: detect edges, maybe make 4003 shifter a device
if (BIT(data,0)) {
@@ -50,7 +50,7 @@ WRITE8_MEMBER(busicom_state::shifter_w)
}
}
-WRITE8_MEMBER(busicom_state::printer_w)
+void busicom_state::printer_w(uint8_t data)
{
int i,j;
if (BIT(data,0)) {
@@ -85,7 +85,7 @@ WRITE8_MEMBER(busicom_state::printer_w)
}
}
-WRITE8_MEMBER(busicom_state::status_w)
+void busicom_state::status_w(uint8_t data)
{
#if 0
uint8_t mem_lamp = BIT(data,0);
@@ -95,7 +95,7 @@ WRITE8_MEMBER(busicom_state::status_w)
//logerror("status %c %c %c\n",mem_lamp ? 'M':'x',over_lamp ? 'O':'x',minus_lamp ? '-':'x');
}
-WRITE8_MEMBER(busicom_state::printer_ctrl_w)
+void busicom_state::printer_ctrl_w(uint8_t data)
{
}
diff --git a/src/mame/drivers/bwidow.cpp b/src/mame/drivers/bwidow.cpp
index 77376396b47..c7197bca545 100644
--- a/src/mame/drivers/bwidow.cpp
+++ b/src/mame/drivers/bwidow.cpp
@@ -258,7 +258,7 @@ Typically, only the high 2 bits are read.
*/
-READ8_MEMBER(bwidow_state::spacduel_IN3_r)
+uint8_t bwidow_state::spacduel_IN3_r(offs_t offset)
{
int res;
int res1;
@@ -314,7 +314,7 @@ READ_LINE_MEMBER(bwidow_state::clock_r)
return (m_maincpu->total_cycles() & 0x100) ? 1 : 0;
}
-READ8_MEMBER(bwidow_state::bwidowp_in_r)
+uint8_t bwidow_state::bwidowp_in_r()
{
return (m_in4->read() & 0x0f) | ((m_in3->read() & 0x0f) << 4);
}
@@ -325,7 +325,7 @@ READ8_MEMBER(bwidow_state::bwidowp_in_r)
*
*************************************/
-WRITE8_MEMBER(bwidow_state::bwidow_misc_w)
+void bwidow_state::bwidow_misc_w(uint8_t data)
{
/*
0x10 = p1 led
@@ -342,7 +342,7 @@ WRITE8_MEMBER(bwidow_state::bwidow_misc_w)
m_lastdata = data;
}
-WRITE8_MEMBER(bwidow_state::spacduel_coin_counter_w)
+void bwidow_state::spacduel_coin_counter_w(uint8_t data)
{
if (data == m_lastdata) return;
m_leds[0] = BIT(~data, 5); // start lamp
@@ -362,12 +362,12 @@ WRITE8_MEMBER(bwidow_state::spacduel_coin_counter_w)
*
*************************************/
-READ8_MEMBER(bwidow_state::earom_read)
+uint8_t bwidow_state::earom_read()
{
return m_earom->data();
}
-WRITE8_MEMBER(bwidow_state::earom_write)
+void bwidow_state::earom_write(offs_t offset, uint8_t data)
{
m_earom->set_address(offset & 0x3f);
m_earom->set_data(data);
@@ -392,7 +392,7 @@ void bwidow_state::machine_reset()
*
*************************************/
-WRITE8_MEMBER(bwidow_state::irq_ack_w)
+void bwidow_state::irq_ack_w(uint8_t data)
{
m_maincpu->set_input_line(0, CLEAR_LINE);
}
diff --git a/src/mame/drivers/bwing.cpp b/src/mame/drivers/bwing.cpp
index 3b1b4570df8..d16ce37a618 100644
--- a/src/mame/drivers/bwing.cpp
+++ b/src/mame/drivers/bwing.cpp
@@ -48,23 +48,23 @@ INTERRUPT_GEN_MEMBER(bwing_state::bwp3_interrupt)
//****************************************************************************
// Memory and I/O Handlers
-WRITE8_MEMBER(bwing_state::bwp3_u8F_w)
+void bwing_state::bwp3_u8F_w(uint8_t data)
{
m_bwp3_u8F_d = data; // prepares custom chip for various operations
}
-WRITE8_MEMBER(bwing_state::bwp3_nmimask_w)
+void bwing_state::bwp3_nmimask_w(uint8_t data)
{
m_bwp3_nmimask = data & 0x80;
}
-WRITE8_MEMBER(bwing_state::bwp3_nmiack_w)
+void bwing_state::bwp3_nmiack_w(uint8_t data)
{
m_audiocpu->set_input_line(INPUT_LINE_NMI, CLEAR_LINE);
}
-WRITE8_MEMBER(bwing_state::bwp1_ctrl_w)
+void bwing_state::bwp1_ctrl_w(offs_t offset, uint8_t data)
{
switch (offset)
{
@@ -103,7 +103,7 @@ WRITE8_MEMBER(bwing_state::bwp1_ctrl_w)
}
-WRITE8_MEMBER(bwing_state::bwp2_ctrl_w)
+void bwing_state::bwp2_ctrl_w(offs_t offset, uint8_t data)
{
switch (offset)
{
diff --git a/src/mame/drivers/ccs300.cpp b/src/mame/drivers/ccs300.cpp
index 3ef315bc5f5..34c5b267cc0 100644
--- a/src/mame/drivers/ccs300.cpp
+++ b/src/mame/drivers/ccs300.cpp
@@ -175,4 +175,4 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
-COMP( 19??, ccs300, ccs2810, 0, ccs300, ccs300, ccs300_state, empty_init, "California Computer Systems", "CCS Model 300", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE )
+COMP( 1981, ccs300, ccs2810, 0, ccs300, ccs300, ccs300_state, empty_init, "California Computer Systems", "CCS Model 300", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/czk80.cpp b/src/mame/drivers/ckz80.cpp
index 89593e3e55b..ad95a5ac8c2 100644
--- a/src/mame/drivers/czk80.cpp
+++ b/src/mame/drivers/ckz80.cpp
@@ -2,7 +2,7 @@
// copyright-holders:Robbbert
/***************************************************************************
-CZK-80
+CKZ-80
2010-08-30 Skeleton driver
2010-11-27 Connected to a terminal
@@ -49,10 +49,10 @@ I/O ports: These ranges are what is guessed
#include "machine/terminal.h"
-class czk80_state : public driver_device
+class ckz80_state : public driver_device
{
public:
- czk80_state(const machine_config &mconfig, device_type type, const char *tag)
+ ckz80_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
, m_rom(*this, "maincpu")
@@ -61,7 +61,7 @@ public:
, m_fdc(*this, "fdc")
{ }
- void czk80(machine_config &config);
+ void ckz80(machine_config &config);
private:
virtual void machine_start() override;
@@ -73,8 +73,8 @@ private:
DECLARE_WRITE_LINE_MEMBER(ctc_z0_w);
DECLARE_WRITE_LINE_MEMBER(ctc_z1_w);
DECLARE_WRITE_LINE_MEMBER(ctc_z2_w);
- void czk80_io(address_map &map);
- void czk80_mem(address_map &map);
+ void io_map(address_map &map);
+ void mem_map(address_map &map);
u8 m_term_data;
bool m_rom_in_map;
required_device<z80_device> m_maincpu;
@@ -86,44 +86,44 @@ private:
};
-void czk80_state::port40_w(u8 data)
+void ckz80_state::port40_w(u8 data)
{
m_rom_in_map = !BIT(data, 1);
}
-u8 czk80_state::port80_r()
+u8 ckz80_state::port80_r()
{
u8 ret = m_term_data;
m_term_data = 0;
return ret;
}
-u8 czk80_state::port81_r()
+u8 ckz80_state::port81_r()
{
return (m_term_data) ? 3 : 1;
}
-void czk80_state::czk80_mem(address_map &map)
+void ckz80_state::mem_map(address_map &map)
{
map(0x0000, 0xffff).ram().share("mainram");
map(0xe000, 0xffff).lr8(NAME([this] (offs_t offset) { if (m_rom_in_map) return m_rom[offset]; else return m_ram[offset+0xe000]; } ));
}
-void czk80_state::czk80_io(address_map &map)
+void ckz80_state::io_map(address_map &map)
{
map.global_mask(0xff);
- map(0x40, 0x40).w(FUNC(czk80_state::port40_w));
+ map(0x40, 0x40).w(FUNC(ckz80_state::port40_w));
map(0x4c, 0x4f).rw("pio", FUNC(z80pio_device::read), FUNC(z80pio_device::write));
map(0x50, 0x53).rw("dart", FUNC(z80dart_device::cd_ba_r), FUNC(z80dart_device::cd_ba_w));
map(0x54, 0x57).rw("ctc", FUNC(z80ctc_device::read), FUNC(z80ctc_device::write));
// 80, 81 - no setup bytes
- map(0x80, 0x80).r(FUNC(czk80_state::port80_r)).w(m_terminal, FUNC(generic_terminal_device::write));
- map(0x81, 0x81).r(FUNC(czk80_state::port81_r));
+ map(0x80, 0x80).r(FUNC(ckz80_state::port80_r)).w(m_terminal, FUNC(generic_terminal_device::write));
+ map(0x81, 0x81).r(FUNC(ckz80_state::port81_r));
map(0xc0, 0xc1).m(m_fdc, FUNC(upd765a_device::map));
}
/* Input ports */
-static INPUT_PORTS_START( czk80 )
+static INPUT_PORTS_START( ckz80 )
INPUT_PORTS_END
/* Z80 Daisy Chain */
@@ -138,26 +138,26 @@ static const z80_daisy_config daisy_chain[] =
/* Z80-CTC Interface */
-WRITE_LINE_MEMBER( czk80_state::ctc_z0_w )
+WRITE_LINE_MEMBER( ckz80_state::ctc_z0_w )
{
// guess this generates clock for z80dart
}
-WRITE_LINE_MEMBER( czk80_state::ctc_z1_w )
+WRITE_LINE_MEMBER( ckz80_state::ctc_z1_w )
{
}
-WRITE_LINE_MEMBER( czk80_state::ctc_z2_w )
+WRITE_LINE_MEMBER( ckz80_state::ctc_z2_w )
{
}
-void czk80_state::machine_start()
+void ckz80_state::machine_start()
{
save_item(NAME(m_term_data));
save_item(NAME(m_rom_in_map));
}
-void czk80_state::machine_reset()
+void ckz80_state::machine_reset()
{
address_space &program = m_maincpu->space(AS_PROGRAM);
program.install_rom(0x0000, 0x1fff, m_rom); // do it here for F3
@@ -179,34 +179,34 @@ void czk80_state::machine_reset()
m_rom_in_map = true;
}
-static void czk80_floppies(device_slot_interface &device)
+static void ckz80_floppies(device_slot_interface &device)
{
device.option_add("525dd", FLOPPY_525_DD);
}
-void czk80_state::kbd_put(u8 data)
+void ckz80_state::kbd_put(u8 data)
{
m_term_data = data;
}
-void czk80_state::czk80(machine_config &config)
+void ckz80_state::ckz80(machine_config &config)
{
/* basic machine hardware */
Z80(config, m_maincpu, 16_MHz_XTAL / 4);
- m_maincpu->set_addrmap(AS_PROGRAM, &czk80_state::czk80_mem);
- m_maincpu->set_addrmap(AS_IO, &czk80_state::czk80_io);
+ m_maincpu->set_addrmap(AS_PROGRAM, &ckz80_state::mem_map);
+ m_maincpu->set_addrmap(AS_IO, &ckz80_state::io_map);
m_maincpu->set_daisy_config(daisy_chain);
GENERIC_TERMINAL(config, m_terminal, 0);
- m_terminal->set_keyboard_callback(FUNC(czk80_state::kbd_put));
+ m_terminal->set_keyboard_callback(FUNC(ckz80_state::kbd_put));
UPD765A(config, m_fdc, 8_MHz_XTAL, true, true);
- FLOPPY_CONNECTOR(config, "fdc:0", czk80_floppies, "525dd", floppy_image_device::default_floppy_formats);
+ FLOPPY_CONNECTOR(config, "fdc:0", ckz80_floppies, "525dd", floppy_image_device::default_floppy_formats);
z80ctc_device& ctc(Z80CTC(config, "ctc", 16_MHz_XTAL / 4));
ctc.intr_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0);
- ctc.zc_callback<0>().set(FUNC(czk80_state::ctc_z0_w));
- ctc.zc_callback<1>().set(FUNC(czk80_state::ctc_z1_w));
- ctc.zc_callback<2>().set(FUNC(czk80_state::ctc_z2_w));
+ ctc.zc_callback<0>().set(FUNC(ckz80_state::ctc_z0_w));
+ ctc.zc_callback<1>().set(FUNC(ckz80_state::ctc_z1_w));
+ ctc.zc_callback<2>().set(FUNC(ckz80_state::ctc_z2_w));
z80dart_device& dart(Z80DART(config, "dart", 16_MHz_XTAL / 4));
//dart.out_txda_callback().set("rs232", FUNC(rs232_port_device::write_txd));
@@ -220,12 +220,12 @@ void czk80_state::czk80(machine_config &config)
/* ROM definition */
-ROM_START( czk80 )
+ROM_START( ckz80 )
ROM_REGION( 0x2000, "maincpu", 0 )
- ROM_LOAD( "czk80.rom", 0x0000, 0x2000, CRC(7081b7c6) SHA1(13f75b14ea73b252bdfa2384e6eead6e720e49e3))
+ ROM_LOAD( "ckz80.rom", 0x0000, 0x2000, CRC(7081b7c6) SHA1(13f75b14ea73b252bdfa2384e6eead6e720e49e3))
ROM_END
/* Driver */
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
-COMP( 198?, czk80, 0, 0, czk80, czk80, czk80_state, empty_init, "<unknown>", "CZK-80", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE )
+COMP( 198?, ckz80, 0, 0, ckz80, ckz80, ckz80_state, empty_init, "<unknown>", "CKZ-80", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/cobra.cpp b/src/mame/drivers/cobra.cpp
index 7a281cfcbc1..162bf98d927 100644
--- a/src/mame/drivers/cobra.cpp
+++ b/src/mame/drivers/cobra.cpp
@@ -740,7 +740,7 @@ public:
void main_comram_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
uint64_t main_fifo_r(offs_t offset, uint64_t mem_mask = ~0);
void main_fifo_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
- DECLARE_WRITE32_MEMBER(main_cpu_dc_store);
+ void main_cpu_dc_store(offs_t offset, uint32_t data);
uint32_t sub_comram_r(offs_t offset);
void sub_comram_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
@@ -759,7 +759,7 @@ public:
uint32_t sub_psac2_r();
void sub_psac2_w(uint32_t data);
void sub_psac_palette_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
- DECLARE_WRITE32_MEMBER(sub_sound_dma_w);
+ void sub_sound_dma_w(offs_t offset, uint32_t data);
void gfx_fifo0_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
void gfx_fifo1_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
@@ -769,9 +769,9 @@ public:
void gfx_unk1_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
uint64_t gfx_fifo_r(offs_t offset, uint64_t mem_mask = ~0);
void gfx_buf_w(uint64_t data);
- DECLARE_WRITE32_MEMBER(gfx_cpu_dc_store);
+ void gfx_cpu_dc_store(offs_t offset, uint32_t data);
- DECLARE_WRITE8_MEMBER(sub_jvs_w);
+ void sub_jvs_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER(ide_interrupt);
@@ -1678,7 +1678,7 @@ void cobra_state::main_comram_w(offs_t offset, uint64_t data, uint64_t mem_mask)
m_comram[page][(offset << 1) + 1] = (w2 & ~m2) | (d2 & m2);
}
-WRITE32_MEMBER(cobra_state::main_cpu_dc_store)
+void cobra_state::main_cpu_dc_store(offs_t offset, uint32_t data)
{
if ((offset & 0xf0000000) == 0xc0000000)
{
@@ -1966,7 +1966,7 @@ void cobra_state::sub_psac2_w(uint32_t data)
{
}
-WRITE32_MEMBER(cobra_state::sub_sound_dma_w)
+void cobra_state::sub_sound_dma_w(offs_t offset, uint32_t data)
{
//printf("DMA write to unknown: size %d, data %08X\n", address, data);
@@ -1997,7 +1997,7 @@ WRITE32_MEMBER(cobra_state::sub_sound_dma_w)
}
}
-WRITE8_MEMBER(cobra_state::sub_jvs_w)
+void cobra_state::sub_jvs_w(uint8_t data)
{
#if LOG_JVS
printf("sub_jvs_w: %02X\n", data);
@@ -3074,7 +3074,7 @@ void cobra_state::gfx_buf_w(uint64_t data)
}
}
-WRITE32_MEMBER(cobra_state::gfx_cpu_dc_store)
+void cobra_state::gfx_cpu_dc_store(offs_t offset, uint32_t data)
{
uint32_t addr = offset >> 24;
if (addr == 0x10 || addr == 0x18 || addr == 0x1e)
@@ -3364,12 +3364,12 @@ void cobra_state::init_cobra()
cobra_fifo::event_delegate(&cobra_state::s2mfifo_event_callback, this))
);
- m_maincpu->ppc_set_dcstore_callback(write32_delegate(*this, FUNC(cobra_state::main_cpu_dc_store)));
+ m_maincpu->ppc_set_dcstore_callback(write32sm_delegate(*this, FUNC(cobra_state::main_cpu_dc_store)));
- m_gfxcpu->ppc_set_dcstore_callback(write32_delegate(*this, FUNC(cobra_state::gfx_cpu_dc_store)));
+ m_gfxcpu->ppc_set_dcstore_callback(write32sm_delegate(*this, FUNC(cobra_state::gfx_cpu_dc_store)));
- 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_subcpu->ppc4xx_set_dma_write_handler(0, write32sm_delegate(*this, FUNC(cobra_state::sub_sound_dma_w)), 44100);
+ m_subcpu->ppc4xx_spu_set_tx_handler(write8smo_delegate(*this, FUNC(cobra_state::sub_jvs_w)));
m_comram[0] = std::make_unique<uint32_t[]>(0x40000/4);
diff --git a/src/mame/drivers/coleco.cpp b/src/mame/drivers/coleco.cpp
index 031ce2dd037..04046b45c24 100644
--- a/src/mame/drivers/coleco.cpp
+++ b/src/mame/drivers/coleco.cpp
@@ -740,6 +740,3 @@ CONS( 1986, czz50, 0, coleco, czz50, czz50, coleco_state, empty_init
CONS( 1988, dina, czz50, 0, dina, czz50, coleco_state, empty_init, "Telegames", "Dina", 0 )
CONS( 1988, prsarcde, czz50, 0, czz50, czz50, coleco_state, empty_init, "Telegames", "Personal Arcade", 0 )
COMP( 1983, bit90, 0, coleco, bit90, bit90, bit90_state, empty_init, "Bit Corporation", "Bit90", 0 )
-
-
-
diff --git a/src/mame/drivers/consola_emt.cpp b/src/mame/drivers/consola_emt.cpp
index 06f6d79c9fd..704f27d3546 100644
--- a/src/mame/drivers/consola_emt.cpp
+++ b/src/mame/drivers/consola_emt.cpp
@@ -52,7 +52,7 @@ protected:
virtual void machine_start() override;
private:
- required_device<cpu_device> m_maincpu;
+ required_device<i80188_cpu_device> m_maincpu;
required_device<mcs51_cpu_device> m_mcu;
required_device<hd44780_device> m_lcdc;
@@ -76,12 +76,16 @@ void consoemt_state::mem_map(address_map &map)
void consoemt_state::io_map(address_map &map)
{
+ map(0x000, 0x003).rw("uart1", FUNC(scc85230_device::ab_dc_r), FUNC(scc85230_device::ab_dc_w));
+ map(0x010, 0x013).rw("uart2", FUNC(scc85230_device::ab_dc_r), FUNC(scc85230_device::ab_dc_w));
map(0x180, 0x18f).rw("rtc", FUNC(msm6242_device::read), FUNC(msm6242_device::write));
- map(0x200, 0x200).portr("FUNCIONES"); // maybe
+ map(0x200, 0x200).portr("FUNCIONES");
map(0x210, 0x210).portr("NUMBUS-L");
map(0x220, 0x220).portr("NUMBUS-H");
map(0x230, 0x230).portr("NUMFAB-L");
map(0x240, 0x240).portr("NUMFAB-H");
+// map(0x250, 0x250).r // read on int2
+// map(0x260, 0x260).r // read on int1
map(0x280, 0x281).rw(m_lcdc, FUNC(hd44780_device::read), FUNC(hd44780_device::write));
}
@@ -92,9 +96,15 @@ void consoemt_state::io_map(address_map &map)
static INPUT_PORTS_START( consoemt )
PORT_START("FUNCIONES")
- PORT_DIPUNKNOWN_DIPLOC(0x01, 0x00, "FUNCIONES:1")
- PORT_DIPUNKNOWN_DIPLOC(0x02, 0x00, "FUNCIONES:2")
- PORT_DIPUNKNOWN_DIPLOC(0x04, 0x00, "FUNCIONES:3")
+ PORT_DIPNAME(0x01, 0x00, "Canceladora 1") PORT_DIPLOCATION("FUNCIONES:1")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x01, DEF_STR( On ))
+ PORT_DIPNAME(0x02, 0x00, "Canceladora 2") PORT_DIPLOCATION("FUNCIONES:2")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x02, DEF_STR( On ))
+ PORT_DIPNAME(0x04, 0x00, "Canceladora 3") PORT_DIPLOCATION("FUNCIONES:3")
+ PORT_DIPSETTING( 0x00, DEF_STR( Off ))
+ PORT_DIPSETTING( 0x04, DEF_STR( On ))
PORT_DIPUNKNOWN_DIPLOC(0x08, 0x00, "FUNCIONES:4")
PORT_DIPUNKNOWN_DIPLOC(0x10, 0x00, "FUNCIONES:5")
PORT_DIPUNKNOWN_DIPLOC(0x20, 0x00, "FUNCIONES:6")
@@ -242,7 +252,7 @@ void consoemt_state::machine_start()
void consoemt_state::consoemt(machine_config &config)
{
- I80188(config, m_maincpu, 50_MHz_XTAL / 2); // N80C188XL25
+ I80188(config, m_maincpu, 50_MHz_XTAL); // N80C188XL25
m_maincpu->set_addrmap(AS_PROGRAM, &consoemt_state::mem_map);
m_maincpu->set_addrmap(AS_IO, &consoemt_state::io_map);
@@ -250,9 +260,11 @@ void consoemt_state::consoemt(machine_config &config)
MSM6242(config, "rtc", XTAL(32'768));
- SCC85230(config, "uart1", 4.9152_MHz_XTAL);
+ scc85230_device &uart1(SCC85230(config, "uart1", 4.9152_MHz_XTAL));
+ uart1.out_int_callback().set(m_maincpu, FUNC(i80188_cpu_device::int0_w));
- SCC85230(config, "uart2", 4.9152_MHz_XTAL);
+ scc85230_device &uart2(SCC85230(config, "uart2", 4.9152_MHz_XTAL));
+ uart2.out_int_callback().set(m_maincpu, FUNC(i80188_cpu_device::int3_w));
// video hardware
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
diff --git a/src/mame/drivers/dccons.cpp b/src/mame/drivers/dccons.cpp
index cb56a3ad89a..7e8e1c24601 100644
--- a/src/mame/drivers/dccons.cpp
+++ b/src/mame/drivers/dccons.cpp
@@ -881,6 +881,7 @@ Consists of HKS-0300 main unit and HKS-0100 LCD with touch screen
HDR-0095 673-01??? Fish Life Episode 1 Basic Edition
HDR-0096 673-01??? Fish Life Episode 2 Basic Edition
HDR-0097 673-01??? Fish Life Episode 3 Basic Edition
+ MSD-0001 ???-????? Fish Life Red Sea & Amazon PDP Ver.
* denotes these games are archived.
Machines high likely based on Fish Life:
diff --git a/src/mame/drivers/dcheese.cpp b/src/mame/drivers/dcheese.cpp
index 21d57cd27f5..fb829e52071 100644
--- a/src/mame/drivers/dcheese.cpp
+++ b/src/mame/drivers/dcheese.cpp
@@ -780,9 +780,9 @@ ROM_END
GAME( 1993, dcheese, 0, dcheese, dcheese, dcheese_state, empty_init, ROT90, "HAR", "Double Cheese", MACHINE_SUPPORTS_SAVE )
GAME( 1993, lottof2, 0, dcheese, lottof2, dcheese_state, empty_init, ROT0, "HAR", "Lotto Fun 2", MACHINE_SUPPORTS_SAVE )
GAME( 1993, cecmatch, 0, fredmem, fredmem, dcheese_state, empty_init, ROT0, "Coastal Amusements", "ChuckECheese's Match Game", MACHINE_SUPPORTS_SAVE )
-GAME( 1994, fredmem, 0, fredmem, fredmem, dcheese_state, empty_init, ROT0, "Coastal Amusements", "Fred Flintstones' Memory Match (World?, Ticket version, 3/17/95)", MACHINE_SUPPORTS_SAVE )
-GAME( 1994, fredmemus, fredmem, fredmem, fredmem, dcheese_state, empty_init, ROT0, "Coastal Amusements", "Fred Flintstones' Memory Match (US, High Score version, 3/10/95)", MACHINE_SUPPORTS_SAVE )
-GAME( 1994, fredmemuk, fredmem, fredmem, fredmem, dcheese_state, empty_init, ROT0, "Coastal Amusements", "Fred Flintstones' Memory Match (UK, 3/17/95)", MACHINE_SUPPORTS_SAVE )
-GAME( 1994, fredmemj, fredmem, fredmem, fredmem, dcheese_state, empty_init, ROT0, "Coastal Amusements", "Fred Flintstones' Memory Match (Japan, High Score version, 3/20/95)", MACHINE_SUPPORTS_SAVE )
-GAME( 1994, fredmemc, fredmem, fredmem, fredmem, dcheese_state, empty_init, ROT0, "Coastal Amusements", "Fred Flintstones' Memory Match (Mandarin Chinese, 3/17/95)", MACHINE_SUPPORTS_SAVE )
-GAME( 1994, fredmesp, fredmem, fredmem, fredmem, dcheese_state, empty_init, ROT0, "Coastal Amusements", "Fred Flintstones' Memory Match (Spanish, 3/17/95)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, fredmem, 0, fredmem, fredmem, dcheese_state, empty_init, ROT0, "Coastal Amusements", "Fred Flintstone's Memory Match (World?, Ticket version, 3/17/95)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, fredmemus, fredmem, fredmem, fredmem, dcheese_state, empty_init, ROT0, "Coastal Amusements", "Fred Flintstone's Memory Match (US, High Score version, 3/10/95)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, fredmemuk, fredmem, fredmem, fredmem, dcheese_state, empty_init, ROT0, "Coastal Amusements", "Fred Flintstone's Memory Match (UK, 3/17/95)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, fredmemj, fredmem, fredmem, fredmem, dcheese_state, empty_init, ROT0, "Coastal Amusements", "Fred Flintstone's Memory Match (Japan, High Score version, 3/20/95)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, fredmemc, fredmem, fredmem, fredmem, dcheese_state, empty_init, ROT0, "Coastal Amusements", "Fred Flintstone's Memory Match (Mandarin Chinese, 3/17/95)", MACHINE_SUPPORTS_SAVE )
+GAME( 1994, fredmesp, fredmem, fredmem, fredmem, dcheese_state, empty_init, ROT0, "Coastal Amusements", "Fred Flintstone's Memory Match (Spanish, 3/17/95)", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/dotrikun.cpp b/src/mame/drivers/dotrikun.cpp
index d979289c874..9fb00be2adf 100644
--- a/src/mame/drivers/dotrikun.cpp
+++ b/src/mame/drivers/dotrikun.cpp
@@ -32,8 +32,6 @@ TODO:
#include "emupal.h"
#include "screen.h"
-#include "dotrikun.lh"
-
#define MASTER_CLOCK XTAL(4'000'000)
@@ -211,6 +209,7 @@ void dotrikun_state::dotrikun(machine_config &config)
/* video hardware */
SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
m_screen->set_raw(MASTER_CLOCK, 128+128, 0, 128, 192+64, 0, 192);
+ m_screen->set_physical_aspect(1, 1); // large border area
m_screen->set_screen_update(FUNC(dotrikun_state::screen_update));
m_screen->set_video_attributes(VIDEO_ALWAYS_UPDATE);
m_screen->set_palette("palette");
@@ -242,6 +241,6 @@ ROM_START( dotriman )
ROM_END
-GAMEL( 1990, dotrikun, 0, dotrikun, dotrikun, dotrikun_state, empty_init, ROT0, "Sega", "Dottori Kun (new version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW, layout_dotrikun )
-GAMEL( 1990, dotrikun2, dotrikun, dotrikun, dotrikun, dotrikun_state, empty_init, ROT0, "Sega", "Dottori Kun (old version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW, layout_dotrikun )
-GAMEL( 2016, dotriman, dotrikun, dotrikun, dotrikun, dotrikun_state, empty_init, ROT0, "hack (Chris Covell)", "Dottori-Man Jr.", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW, layout_dotrikun )
+GAME( 1990, dotrikun, 0, dotrikun, dotrikun, dotrikun_state, empty_init, ROT0, "Sega", "Dottori Kun (new version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW )
+GAME( 1990, dotrikun2, dotrikun, dotrikun, dotrikun, dotrikun_state, empty_init, ROT0, "Sega", "Dottori Kun (old version)", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW )
+GAME( 2016, dotriman, dotrikun, dotrikun, dotrikun, dotrikun_state, empty_init, ROT0, "hack (Chris Covell)", "Dottori-Man Jr.", MACHINE_SUPPORTS_SAVE | MACHINE_NO_SOUND_HW )
diff --git a/src/mame/drivers/drumsta.cpp b/src/mame/drivers/drumsta.cpp
new file mode 100644
index 00000000000..6906ab24d83
--- /dev/null
+++ b/src/mame/drivers/drumsta.cpp
@@ -0,0 +1,67 @@
+// license:BSD-3-Clause
+// copyright-holders:AJR
+/****************************************************************************
+
+ Skeleton driver for Novation Drum Station drum machine.
+
+****************************************************************************/
+
+#include "emu.h"
+#include "cpu/adsp2100/adsp2100.h"
+#include "cpu/mn1880/mn1880.h"
+//#include "machine/eeprompar.h"
+
+class drumsta_state : public driver_device
+{
+public:
+ drumsta_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_dsp(*this, "dsp")
+ {
+ }
+
+ void drumsta(machine_config &config);
+
+private:
+ void drumsta_prog(address_map &map);
+ void drumsta_data(address_map &map);
+
+ required_device<mn1880_device> m_maincpu;
+ required_device<adsp2181_device> m_dsp;
+};
+
+
+void drumsta_state::drumsta_prog(address_map &map)
+{
+ map(0x0000, 0x7fff).rom().region("program", 0);
+}
+
+void drumsta_state::drumsta_data(address_map &map)
+{
+}
+
+
+static INPUT_PORTS_START(drumsta)
+INPUT_PORTS_END
+
+void drumsta_state::drumsta(machine_config &config)
+{
+ MN1880(config, m_maincpu, 8000000); // type and clock unknown (custom silkscreen)
+ m_maincpu->set_addrmap(AS_PROGRAM, &drumsta_state::drumsta_prog);
+ m_maincpu->set_addrmap(AS_DATA, &drumsta_state::drumsta_data);
+
+ ADSP2181(config, m_dsp, 16000000).set_disable(); // clock unknown
+
+ // TODO: Atmel AT28C64 EEPROM
+}
+
+ROM_START(drumsta)
+ ROM_REGION(0x8000, "program", 0)
+ ROM_LOAD("v1.2.u15", 0x0000, 0x8000, CRC(ab9a8654) SHA1(1914254c714d35031a456c71b1f9f9191df9126d))
+
+ ROM_REGION(0x80000, "samples", 0)
+ ROM_LOAD("v1.2.u28", 0x00000, 0x80000, CRC(dbbc9cfe) SHA1(61474c0bc6cfff3efe95527c57e4891f886b02aa))
+ROM_END
+
+SYST(1995, drumsta, 0, 0, drumsta, drumsta, drumsta_state, empty_init, "Novation", "Drum Station", MACHINE_IS_SKELETON)
diff --git a/src/mame/drivers/fidel_msc.cpp b/src/mame/drivers/fidel_msc.cpp
index b0a85647473..4b4f4185a23 100644
--- a/src/mame/drivers/fidel_msc.cpp
+++ b/src/mame/drivers/fidel_msc.cpp
@@ -16,7 +16,7 @@ Hardware notes:
released modules, * denotes not dumped yet:
- CAC: Challenger Advanced Chess
-- *CBO: Challenger Book Openings
+- CBO: Challenger Book Openings
- *CGG: Challenger Greatest Games
As noted in the hash file: The modules have 2 programs in them, one for Z8
diff --git a/src/mame/drivers/firebeat.cpp b/src/mame/drivers/firebeat.cpp
index d9c89e8ea23..49301e2df9c 100644
--- a/src/mame/drivers/firebeat.cpp
+++ b/src/mame/drivers/firebeat.cpp
@@ -261,7 +261,7 @@ private:
TIMER_DEVICE_CALLBACK_MEMBER(spu_timer_callback);
void set_ibutton(uint8_t *data);
int ibutton_w(uint8_t data);
- DECLARE_WRITE8_MEMBER(security_w);
+ void security_w(uint8_t data);
void init_lights(write32s_delegate out1, write32s_delegate out2, write32s_delegate out3);
void init_firebeat();
void init_keyboard();
@@ -1363,7 +1363,7 @@ int firebeat_state::ibutton_w(uint8_t data)
return r;
}
-WRITE8_MEMBER(firebeat_state::security_w)
+void firebeat_state::security_w(uint8_t data)
{
int r = ibutton_w(data);
if (r >= 0)
@@ -1395,7 +1395,7 @@ void firebeat_state::init_firebeat()
m_cur_cab_data = cab_data;
- m_maincpu->ppc4xx_spu_set_tx_handler(write8_delegate(*this, FUNC(firebeat_state::security_w)));
+ m_maincpu->ppc4xx_spu_set_tx_handler(write8smo_delegate(*this, FUNC(firebeat_state::security_w)));
set_ibutton(rom);
diff --git a/src/mame/drivers/generalplus_gpl16250_nand.cpp b/src/mame/drivers/generalplus_gpl16250_nand.cpp
index 0ea2e9ba457..2d77470dde6 100644
--- a/src/mame/drivers/generalplus_gpl16250_nand.cpp
+++ b/src/mame/drivers/generalplus_gpl16250_nand.cpp
@@ -820,7 +820,7 @@ CONS(2008, jak_hmhsm, 0, 0, generalplus_gpac800, jak_hsm, generalplus_gp
CONS(2008, jak_umdf, 0, 0, generalplus_gpac800, jak_hsm, generalplus_gpac800_game_state, nand_init210_32mb, "JAKKS Pacific Inc / Handheld Games", "Ultimotion - Disney Fairies Sleeping Beauty & TinkerBell (JAKKS Pacific TV Game)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING)
// Ultimotion Swing Zone is SPG29xx instead
-// There were 1 player and 2 player versions for several of the JAKKS guns. The 2nd gun appears to be simply a controller (no AV connectors) but as they were separate products with the 2 player verisons being released up to a year after the original, the code could differ.
+// There were 1 player and 2 player versions for several of the JAKKS guns. The 2nd gun appears to be simply a controller (no AV connectors) but as they were separate products with the 2 player versions being released up to a year after the original, the code could differ.
// If they differ, it is currently uncertain which versions these ROMs are from
CONS(2012, jak_wdzh, 0, 0, generalplus_gpac800, jak_car2, generalplus_gpac800_game_state, nand_init210, "JAKKS Pacific Inc / Merge Interactive", "The Walking Dead: Zombie Hunter (JAKKS Pacific TV Game)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) // gun games all had Atmel 16CM (24C16).
CONS(2013, jak_duck, 0, 0, generalplus_gpac800, jak_car2, generalplus_gpac800_game_state, nand_init210_32mb, "JAKKS Pacific Inc / Merge Interactive", "Duck Commander (JAKKS Pacific TV Game)", MACHINE_NO_SOUND | MACHINE_NOT_WORKING) // no 2 Player version was released
diff --git a/src/mame/drivers/gticlub.cpp b/src/mame/drivers/gticlub.cpp
index 6ca351f2853..bef93b13626 100644
--- a/src/mame/drivers/gticlub.cpp
+++ b/src/mame/drivers/gticlub.cpp
@@ -275,9 +275,9 @@ public:
m_analog1(*this, "AN1"),
m_analog2(*this, "AN2"),
m_analog3(*this, "AN3"),
- m_ports(*this, "IN%u", 0)
- {
- }
+ m_ports(*this, "IN%u", 0),
+ m_pcb_digit(*this, "pcbdigit%u", 0U)
+ { }
void thunderh(machine_config &config);
void hangplt(machine_config &config);
@@ -289,6 +289,9 @@ public:
void init_hangpltu();
void init_gticlub();
+protected:
+ virtual void machine_start() override;
+
private:
// TODO: Needs verification on real hardware
static const int m_sound_timer_usec = 2400;
@@ -312,13 +315,11 @@ private:
optional_device<screen_device> m_lscreen;
optional_device<screen_device> m_rscreen;
optional_device_array<voodoo_device, 2> m_voodoo;
-
required_shared_ptr<uint32_t> m_work_ram;
required_shared_ptr<uint32_t> m_generic_paletteram_32;
-
optional_ioport m_analog0, m_analog1, m_analog2, m_analog3;
-
required_ioport_array<4> m_ports;
+ output_finder<2> m_pcb_digit;
void paletteram32_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
uint32_t gticlub_k001604_tile_r(offs_t offset);
@@ -339,7 +340,6 @@ private:
void soundtimer_en_w(uint16_t data);
void soundtimer_count_w(uint16_t data);
- DECLARE_MACHINE_START(gticlub);
DECLARE_MACHINE_RESET(gticlub);
DECLARE_MACHINE_RESET(hangplt);
DECLARE_VIDEO_START(gticlub);
@@ -360,9 +360,6 @@ private:
void sharc_map(address_map &map);
void sound_memmap(address_map &map);
- void gticlub_led_setreg(int offset, uint8_t data);
-
- uint8_t m_gticlub_led_reg[2];
emu_timer *m_sound_irq_timer;
std::unique_ptr<uint32_t[]> m_sharc_dataram_0;
std::unique_ptr<uint32_t[]> m_sharc_dataram_1;
@@ -464,7 +461,7 @@ void gticlub_state::sysreg_w(offs_t offset, uint8_t data)
{
case 0:
case 1:
- gticlub_led_setreg(offset, data);
+ m_pcb_digit[offset] = bitswap<8>(~data,7,0,1,2,3,4,5,6) & 0x7f;
break;
case 3:
@@ -485,6 +482,9 @@ void gticlub_state::sysreg_w(offs_t offset, uint8_t data)
m_konppc->set_cgboard_id((data >> 4) & 0x3);
break;
+
+ default:
+ break;
}
}
@@ -520,8 +520,10 @@ void gticlub_state::soundtimer_count_w(uint16_t data)
/******************************************************************/
-MACHINE_START_MEMBER(gticlub_state,gticlub)
+void gticlub_state::machine_start()
{
+ m_pcb_digit.resolve();
+
/* set conservative DRC options */
m_maincpu->ppcdrc_set_options(PPCDRC_COMPATIBLE_OPTIONS);
@@ -848,15 +850,9 @@ MACHINE_RESET_MEMBER(gticlub_state,gticlub)
m_dsp->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
}
-void gticlub_state::gticlub_led_setreg(int offset, uint8_t data)
-{
- m_gticlub_led_reg[offset] = data;
-}
-
VIDEO_START_MEMBER(gticlub_state,gticlub)
{
- m_gticlub_led_reg[0] = m_gticlub_led_reg[1] = 0x7f;
/*
tick = 0;
debug_tex_page = 0;
@@ -922,9 +918,6 @@ uint32_t gticlub_state::screen_update_gticlub(screen_device &screen, bitmap_rgb3
}
#endif
- draw_7segment_led(bitmap, 3, 3, m_gticlub_led_reg[0]);
- draw_7segment_led(bitmap, 9, 3, m_gticlub_led_reg[1]);
-
//m_dsp->set_input_line(SHARC_INPUT_FLAG1, ASSERT_LINE);
m_dsp->set_flag_input(1, ASSERT_LINE);
return 0;
@@ -938,9 +931,6 @@ uint32_t gticlub_state::screen_update_lscreen(screen_device &screen, bitmap_rgb3
m_voodoo[0]->voodoo_update(bitmap, cliprect);
m_k001604_1->draw_front_layer(screen, bitmap, cliprect);
- draw_7segment_led(bitmap, 3, 3, m_gticlub_led_reg[0]);
- draw_7segment_led(bitmap, 9, 3, m_gticlub_led_reg[1]);
-
return 0;
}
@@ -952,9 +942,6 @@ uint32_t gticlub_state::screen_update_rscreen(screen_device &screen, bitmap_rgb3
m_voodoo[1]->voodoo_update(bitmap, cliprect);
m_k001604_2->draw_front_layer(screen, bitmap, cliprect);
- draw_7segment_led(bitmap, 3, 3, m_gticlub_led_reg[0]);
- draw_7segment_led(bitmap, 9, 3, m_gticlub_led_reg[1]);
-
return 0;
}
@@ -976,7 +963,6 @@ void gticlub_state::gticlub(machine_config &config)
EEPROM_93C56_16BIT(config, "eeprom");
- MCFG_MACHINE_START_OVERRIDE(gticlub_state,gticlub)
MCFG_MACHINE_RESET_OVERRIDE(gticlub_state,gticlub)
ADC1038(config, m_adc1038, 0);
@@ -1037,7 +1023,7 @@ void gticlub_state::thunderh(machine_config &config) // Todo: K056230 from the I
m_adc1038->set_gti_club_hack(false);
m_k056230->set_thunderh_hack(true);
-
+
M68000(config, m_gn680, XTAL(32'000'000) / 2); // 16MHz
m_gn680->set_addrmap(AS_PROGRAM, &gticlub_state::gn680_memmap);
}
@@ -1081,7 +1067,6 @@ void gticlub_state::hangplt(machine_config &config)
EEPROM_93C56_16BIT(config, "eeprom");
- MCFG_MACHINE_START_OVERRIDE(gticlub_state,gticlub)
MCFG_MACHINE_RESET_OVERRIDE(gticlub_state,hangplt)
ADC1038(config, m_adc1038, 0);
diff --git a/src/mame/drivers/hornet.cpp b/src/mame/drivers/hornet.cpp
index ef8b97282a5..5ad07a0e6ca 100644
--- a/src/mame/drivers/hornet.cpp
+++ b/src/mame/drivers/hornet.cpp
@@ -6,7 +6,7 @@
Konami 'Hornet' Hardware
Konami, 1997-2000
-f
+
Known games on this hardware include....
Game (C) Year
@@ -392,6 +392,7 @@ public:
m_eepromout(*this, "EEPROMOUT"),
m_analog1(*this, "ANALOG1"),
m_analog2(*this, "ANALOG2"),
+ m_pcb_digit(*this, "pcbdigit%u", 0U),
m_user3_ptr(*this, "user3"),
m_user5_ptr(*this, "user5"),
m_lan_ds2401(*this, "lan_serial_id"),
@@ -431,14 +432,13 @@ private:
optional_device_array<voodoo_device, 2> m_voodoo;
required_ioport m_in0, m_in1, m_in2, m_dsw;
optional_ioport m_eepromout, m_analog1, m_analog2;
+ output_finder<2> m_pcb_digit;
optional_region_ptr<uint8_t> m_user3_ptr;
optional_region_ptr<uint8_t> m_user5_ptr;
optional_device<ds2401_device> m_lan_ds2401;
required_device<watchdog_timer_device> m_watchdog;
emu_timer *m_sound_irq_timer;
- uint8_t m_led_reg0;
- uint8_t m_led_reg1;
std::unique_ptr<uint8_t[]> m_jvs_sdata;
uint32_t m_jvs_sdata_ptr;
uint16_t m_gn680_latch;
@@ -470,7 +470,7 @@ private:
void soundtimer_en_w(uint16_t data);
void soundtimer_count_w(uint16_t data);
double adc12138_input_callback(uint8_t input);
- DECLARE_WRITE8_MEMBER(jamma_jvs_w);
+ void jamma_jvs_w(uint8_t data);
uint8_t comm_eeprom_r();
void comm_eeprom_w(uint8_t data);
@@ -549,8 +549,6 @@ uint32_t hornet_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap
m_k037122_1->tile_draw(screen, bitmap, cliprect);
- draw_7segment_led(bitmap, 3, 3, m_led_reg0);
- draw_7segment_led(bitmap, 9, 3, m_led_reg1);
return 0;
}
@@ -560,8 +558,6 @@ uint32_t hornet_state::screen_update_rscreen(screen_device &screen, bitmap_rgb32
m_k037122_2->tile_draw(screen, bitmap, cliprect);
- draw_7segment_led(bitmap, 3, 3, m_led_reg0);
- draw_7segment_led(bitmap, 9, 3, m_led_reg1);
return 0;
}
@@ -600,6 +596,9 @@ uint8_t hornet_state::sysreg_r(offs_t offset)
case 4: /* I/O port 4 - DIP switches */
r = m_dsw->read();
break;
+
+ default:
+ break;
}
return r;
}
@@ -608,12 +607,9 @@ void hornet_state::sysreg_w(offs_t offset, uint8_t data)
{
switch (offset)
{
- case 0: /* LED Register 0 */
- m_led_reg0 = data;
- break;
-
- case 1: /* LED Register 1 */
- m_led_reg1 = data;
+ case 0: /* 7seg LEDs on PCB */
+ case 1:
+ m_pcb_digit[offset] = bitswap<8>(~data,7,0,1,2,3,4,5,6) & 0x7f;
break;
case 2: /* Parallel data register */
@@ -1087,6 +1083,8 @@ INPUT_PORTS_END
void hornet_state::machine_start()
{
+ m_pcb_digit.resolve();
+
m_jvs_sdata_ptr = 0;
m_jvs_sdata = make_unique_clear<uint8_t[]>(1024);
@@ -1096,8 +1094,6 @@ void hornet_state::machine_start()
/* configure fast RAM regions for DRC */
m_maincpu->ppcdrc_add_fastram(0x00000000, 0x003fffff, false, m_workram);
- save_item(NAME(m_led_reg0));
- save_item(NAME(m_led_reg1));
save_pointer(NAME(m_jvs_sdata), 1024);
save_item(NAME(m_jvs_sdata_ptr));
@@ -1282,7 +1278,7 @@ void hornet_state::sscope2(machine_config &config)
/*****************************************************************************/
-WRITE8_MEMBER(hornet_state::jamma_jvs_w)
+void hornet_state::jamma_jvs_w(uint8_t data)
{
if (m_jvs_sdata_ptr == 0 && data != 0xe0)
return;
@@ -1423,9 +1419,8 @@ void hornet_state::jamma_jvs_cmd_exec()
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(*this, FUNC(hornet_state::jamma_jvs_w)));
+ m_maincpu->ppc4xx_spu_set_tx_handler(write8smo_delegate(*this, FUNC(hornet_state::jamma_jvs_w)));
}
void hornet_state::init_gradius4()
@@ -1450,18 +1445,16 @@ void hornet_state::init_sscope()
{
m_konppc->set_cgboard_texture_bank(0, "bank5", memregion("user5")->base());
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(*this, FUNC(hornet_state::jamma_jvs_w)));
+ m_maincpu->ppc4xx_spu_set_tx_handler(write8smo_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
{
m_konppc->set_cgboard_texture_bank(0, "bank5", memregion("user5")->base());
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(*this, FUNC(hornet_state::jamma_jvs_w)));
+ m_maincpu->ppc4xx_spu_set_tx_handler(write8smo_delegate(*this, FUNC(hornet_state::jamma_jvs_w)));
}
/*****************************************************************************/
diff --git a/src/mame/drivers/hp_ipc.cpp b/src/mame/drivers/hp_ipc.cpp
index 024a0dbc41e..a62a5b06394 100644
--- a/src/mame/drivers/hp_ipc.cpp
+++ b/src/mame/drivers/hp_ipc.cpp
@@ -8,8 +8,7 @@ Hewlett-Packard, 1985
Driver to-do list
=================
-- softlist: merge dumps from coho.org and classiccmp.org
-- keyboard: NMI generation, autorepeat
+- keyboard: NMI generation
- RTC chip: proper month, day (possibly a different chip, 82167)
- HP-IL printer
- sound (needs dump of COP452)
@@ -353,7 +352,7 @@ Software to look for
00095-60006 (original System III-based HP-UX 1.0 ROM)
82995A (same bits as 82991A; the latter is an upgrade kit, former was pre-installed)
82989J Technical Basic ROM (Jan'1986)
-82987A Software Engineering ROM (Nov'1986) (possibly can be rebuilt from floppy images on coho?)
+82987A Software Engineering ROM (Nov'1986)
******************************************************************************/
diff --git a/src/mame/drivers/leapster.cpp b/src/mame/drivers/leapster.cpp
index 1bd115ffa9f..4cf61ca3e01 100644
--- a/src/mame/drivers/leapster.cpp
+++ b/src/mame/drivers/leapster.cpp
@@ -239,7 +239,7 @@ private:
return machine().rand() | (machine().rand()<<16); // there is a loop checking that this is above a certain value
}
- DECLARE_WRITE32_MEMBER(leapster_aux004b_w)
+ void leapster_aux004b_w(uint32_t data)
{
printf("leapster_aux004b_w %04x\n", data);
}
diff --git a/src/mame/drivers/macpci.cpp b/src/mame/drivers/macpci.cpp
index d0fe8601b9d..970f4249a7d 100644
--- a/src/mame/drivers/macpci.cpp
+++ b/src/mame/drivers/macpci.cpp
@@ -39,6 +39,7 @@
#include "emu.h"
#include "includes/macpci.h"
#include "cpu/powerpc/ppc.h"
+#include "cpu/mn1880/mn1880.h"
#include "imagedev/chd_cd.h"
#include "sound/cdda.h"
#include "emupal.h"
@@ -81,6 +82,11 @@ void macpci_state::pippin_mem(address_map &map)
map(0xffc00000, 0xffffffff).rom().region("bootrom", 0);
}
+void macpci_state::cdmcu_mem(address_map &map)
+{
+ map(0x0000, 0xffff).rom().region("cdrom", 0);
+}
+
/* Input ports */
static INPUT_PORTS_START( pippin )
INPUT_PORTS_END
@@ -140,6 +146,9 @@ void macpci_state::pippin(machine_config &config)
m_cuda->via_clock_callback().set(m_via1, FUNC(via6522_device::write_cb1));
m_cuda->via_data_callback().set(m_via1, FUNC(via6522_device::write_cb2));
config.set_perfect_quantum(m_maincpu);
+
+ mn1880_device &cdmcu(MN1880(config, "cdmcu", 8388608)); // type and clock unknown
+ cdmcu.set_addrmap(AS_PROGRAM, &macpci_state::cdmcu_mem);
}
/* ROM definition */
diff --git a/src/mame/drivers/mephisto_modular.cpp b/src/mame/drivers/mephisto_modular.cpp
index 015da5b55b5..f179a6ed8ae 100644
--- a/src/mame/drivers/mephisto_modular.cpp
+++ b/src/mame/drivers/mephisto_modular.cpp
@@ -479,6 +479,11 @@ void mmodular_state::gen32(machine_config &config)
ROM Definitions
******************************************************************************/
+// sinus table lookup ROM for Mephisto Bavaria chessboard (unused on MAME)
+#define BAVARIA_BOARD_ROM() \
+ ROM_REGION( 0x8000, "bavaria", 0 ) \
+ ROM_LOAD("sinus_15_bavaria", 0x0000, 0x8000, CRC(84421306) SHA1(5aab13bf38d80a4233c11f6eb5657f2749c14547) )
+
ROM_START( alm32 ) // U012 D21A 2FCE
ROM_REGION32_BE( 0x20000, "maincpu", 0 )
ROM_LOAD("alm32.bin", 0x00000, 0x20000, CRC(38f4b305) SHA1(43459a057ff29248c74d656a036ac325202b9c15) )
@@ -490,20 +495,25 @@ ROM_START( alm16 ) // U013 65CE 2FCE
ROM_LOAD16_BYTE("almeria_16bit_v013_odd", 0x00001, 0x10000, CRC(d0be4ee4) SHA1(d36c074802d2c9099cd44e75f9de3fc7d1fd9908) )
ROM_END
-ROM_START( port32 ) // V103 C734 1CD7
+ROM_START( port32 ) // V104 3F63 1CD7
+ ROM_REGION32_BE( 0x20000, "maincpu", 0 )
+ ROM_LOAD("portorose_32bit_v104", 0x00000, 0x20000, CRC(66a6c84c) SHA1(b71035f91a452901e1765e351fb36c3f18888e42) )
+
+ BAVARIA_BOARD_ROM()
+ROM_END
+
+ROM_START( port32a ) // V103 C734 1CD7
ROM_REGION32_BE( 0x20000, "maincpu", 0 )
ROM_LOAD("portorose_32bit_v103", 0x00000, 0x20000, CRC(02c091b3) SHA1(f1d48e73b24093288dbb8a06617bb62420c07508) )
- ROM_REGION( 0x8000, "bavaria", 0 )
- ROM_LOAD( "sinus_15_bavaria", 0x0000, 0x8000, CRC(84421306) SHA1(5aab13bf38d80a4233c11f6eb5657f2749c14547) )
+ BAVARIA_BOARD_ROM()
ROM_END
-ROM_START( port32a ) // V101 7805 1CD7
+ROM_START( port32b ) // V101 7805 1CD7
ROM_REGION32_BE( 0x20000, "maincpu", 0 )
ROM_LOAD("portorose_32bit_v101", 0x00000, 0x20000, CRC(405bd668) SHA1(8c6eacff7f6784fa1d38344d594c7e52ac828a23) )
- ROM_REGION( 0x8000, "bavaria", 0 )
- ROM_LOAD("sinus_15_bavaria", 0x0000, 0x8000, CRC(84421306) SHA1(5aab13bf38d80a4233c11f6eb5657f2749c14547) )
+ BAVARIA_BOARD_ROM()
ROM_END
ROM_START( port16 ) // V101 630D 1CD7
@@ -511,16 +521,14 @@ ROM_START( port16 ) // V101 630D 1CD7
ROM_LOAD16_BYTE("port16ev.bin", 0x00000, 0x10000, CRC(68e4a37d) SHA1(33e7216db664174a8448e455bba97738a29c0f31) )
ROM_LOAD16_BYTE("port16od.bin", 0x00001, 0x10000, CRC(cae77a05) SHA1(9a0ca8bb37325698f8d208f64a340690b9a933b5) )
- ROM_REGION( 0x8000, "bavaria", 0 )
- ROM_LOAD("sinus_15_bavaria", 0x0000, 0x8000, CRC(84421306) SHA1(5aab13bf38d80a4233c11f6eb5657f2749c14547) )
+ BAVARIA_BOARD_ROM()
ROM_END
ROM_START( lyon32 ) // V207 AE64 5805
ROM_REGION32_BE( 0x20000, "maincpu", 0 )
ROM_LOAD("lyon32.bin", 0x00000, 0x20000, CRC(5c128b06) SHA1(954c8f0d3fae29900cb1e9c14a41a9a07a8e185f) )
- ROM_REGION( 0x8000, "bavaria", 0 )
- ROM_LOAD("sinus_15_bavaria", 0x0000, 0x8000, CRC(84421306) SHA1(5aab13bf38d80a4233c11f6eb5657f2749c14547) )
+ BAVARIA_BOARD_ROM()
ROM_END
ROM_START( lyon16 ) // V207 EC82 5805
@@ -528,16 +536,14 @@ ROM_START( lyon16 ) // V207 EC82 5805
ROM_LOAD16_BYTE("lyon_16bit_even_v207", 0x00000, 0x10000, CRC(497bd41a) SHA1(3ffefeeac694f49997c10d248ec6a7aa932898a4) )
ROM_LOAD16_BYTE("lyon_16bit_odd_v207", 0x00001, 0x10000, CRC(f9de3f54) SHA1(4060e29566d2f40122ccde3c1f84c94a9c1ed54f) )
- ROM_REGION( 0x8000, "bavaria", 0 )
- ROM_LOAD("sinus_15_bavaria", 0x0000, 0x8000, CRC(84421306) SHA1(5aab13bf38d80a4233c11f6eb5657f2749c14547) )
+ BAVARIA_BOARD_ROM()
ROM_END
ROM_START( van32 ) // V309 3FD3 18D3
ROM_REGION32_BE( 0x40000, "maincpu", 0 )
ROM_LOAD("vanc32.bin", 0x00000, 0x40000, CRC(f872beb5) SHA1(9919f207264f74e2b634b723b048ae9ca2cefbc7) )
- ROM_REGION( 0x8000, "bavaria", 0 )
- ROM_LOAD("sinus_15_bavaria", 0x0000, 0x8000, CRC(84421306) SHA1(5aab13bf38d80a4233c11f6eb5657f2749c14547) )
+ BAVARIA_BOARD_ROM()
ROM_END
ROM_START( van16 ) // V309 C8F3 18D3
@@ -545,40 +551,35 @@ ROM_START( van16 ) // V309 C8F3 18D3
ROM_LOAD16_BYTE("vancouver_16_even_v309", 0x00000, 0x20000, CRC(e87602d5) SHA1(90cb2767b4ae9e1b265951eb2569b9956b9f7f44) )
ROM_LOAD16_BYTE("vancouver_16_odd_v309", 0x00001, 0x20000, CRC(585f3bdd) SHA1(90bb94a12d3153a91e3760020e1ea2a9eaa7ec0a) )
- ROM_REGION( 0x8000, "bavaria", 0 )
- ROM_LOAD("sinus_15_bavaria", 0x0000, 0x8000, CRC(84421306) SHA1(5aab13bf38d80a4233c11f6eb5657f2749c14547) )
+ BAVARIA_BOARD_ROM()
ROM_END
ROM_START( gen32 ) // V401 D1BB 5A88
ROM_REGION32_BE( 0x40000, "maincpu", 0 )
ROM_LOAD("genius_68030_version_4.01", 0x00000, 0x40000, CRC(ea9938c0) SHA1(645cf0b5b831b48104ad6cec8d78c63dbb6a588c) )
- ROM_REGION( 0x8000, "bavaria", 0 )
- ROM_LOAD("sinus_15_bavaria", 0x0000, 0x8000, CRC(84421306) SHA1(5aab13bf38d80a4233c11f6eb5657f2749c14547) )
+ BAVARIA_BOARD_ROM()
ROM_END
ROM_START( gen32a ) // V400 3B95 5A88
ROM_REGION32_BE( 0x40000, "maincpu", 0 )
ROM_LOAD("gen32_4.bin", 0x00000, 0x40000, CRC(6cc4da88) SHA1(ea72acf9c67ed17c6ac8de56a165784aa629c4a1) )
- ROM_REGION( 0x8000, "bavaria", 0 )
- ROM_LOAD("sinus_15_bavaria", 0x0000, 0x8000, CRC(84421306) SHA1(5aab13bf38d80a4233c11f6eb5657f2749c14547) )
+ BAVARIA_BOARD_ROM()
ROM_END
ROM_START( gen32l ) // V500 EDC1 B0D1
ROM_REGION32_BE( 0x40000, "maincpu", 0 )
ROM_LOAD("gen32l.bin", 0x00000, 0x40000, CRC(853baa4e) SHA1(946951081d4e91e5bdd9e93d0769568a7fe79bad) )
- ROM_REGION( 0x8000, "bavaria", 0 )
- ROM_LOAD("sinus_15_bavaria", 0x0000, 0x8000, CRC(84421306) SHA1(5aab13bf38d80a4233c11f6eb5657f2749c14547) )
+ BAVARIA_BOARD_ROM()
ROM_END
ROM_START( lond32 ) // V500 DF8B B0D1
ROM_REGION32_BE( 0x40000, "maincpu", 0 )
ROM_LOAD("london_program_68020_module", 0x00000, 0x40000, CRC(3225b8da) SHA1(fd8f6f4e9c03b6cdc86d8405e856c26041bfad12) )
- ROM_REGION( 0x8000, "bavaria", 0 )
- ROM_LOAD("sinus_15_bavaria", 0x0000, 0x8000, CRC(84421306) SHA1(5aab13bf38d80a4233c11f6eb5657f2749c14547) )
+ BAVARIA_BOARD_ROM()
ROM_END
ROM_START( lond16 ) // V500 5ED1 B0D1
@@ -586,8 +587,7 @@ ROM_START( lond16 ) // V500 5ED1 B0D1
ROM_LOAD16_BYTE("london_program_68000_module_even", 0x00000, 0x20000, CRC(68cfc2de) SHA1(93b551180f01f8ed6991c082795cd9ead922179a) )
ROM_LOAD16_BYTE("london_program_68000_module_odd", 0x00001, 0x20000, CRC(2d75e2cf) SHA1(2ec9222c95f4be9667fb3b4be1b6f90fd4ad11c4) )
- ROM_REGION( 0x8000, "bavaria", 0 )
- ROM_LOAD("sinus_15_bavaria", 0x0000, 0x8000, CRC(84421306) SHA1(5aab13bf38d80a4233c11f6eb5657f2749c14547) )
+ BAVARIA_BOARD_ROM()
ROM_END
} // anonymous namespace
@@ -602,8 +602,9 @@ ROM_END
CONS( 1988, alm32, 0, 0, alm32, alm32, mmodular_state, empty_init, "Hegener + Glaser", "Mephisto Almeria 32 Bit", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK )
CONS( 1988, alm16, alm32, 0, alm16, alm16, mmodular_state, empty_init, "Hegener + Glaser", "Mephisto Almeria 16 Bit", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK )
-CONS( 1989, port32, 0, 0, port32, port32, mmodular_state, empty_init, "Hegener + Glaser", "Mephisto Portorose 32 Bit (v1.03)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK )
-CONS( 1989, port32a, port32, 0, port32, port32, mmodular_state, empty_init, "Hegener + Glaser", "Mephisto Portorose 32 Bit (v1.01)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK )
+CONS( 1989, port32, 0, 0, port32, port32, mmodular_state, empty_init, "Hegener + Glaser", "Mephisto Portorose 32 Bit (v1.04)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK )
+CONS( 1989, port32a, port32, 0, port32, port32, mmodular_state, empty_init, "Hegener + Glaser", "Mephisto Portorose 32 Bit (v1.03)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK )
+CONS( 1989, port32b, port32, 0, port32, port32, mmodular_state, empty_init, "Hegener + Glaser", "Mephisto Portorose 32 Bit (v1.01)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK )
CONS( 1989, port16, port32, 0, port16, port16, mmodular_state, empty_init, "Hegener + Glaser", "Mephisto Portorose 16 Bit (v1.01)", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK )
CONS( 1990, lyon32, 0, 0, port32, port32, mmodular_state, empty_init, "Hegener + Glaser", "Mephisto Lyon 32 Bit", MACHINE_SUPPORTS_SAVE | MACHINE_IMPERFECT_TIMING | MACHINE_CLICKABLE_ARTWORK )
diff --git a/src/mame/drivers/mephisto_mondial68k.cpp b/src/mame/drivers/mephisto_mondial68k.cpp
index 80f02433ba1..ac87ba316db 100644
--- a/src/mame/drivers/mephisto_mondial68k.cpp
+++ b/src/mame/drivers/mephisto_mondial68k.cpp
@@ -36,7 +36,6 @@ public:
mondial68k_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
- , m_dac(*this, "dac")
, m_board(*this, "board")
, m_display(*this, "display")
, m_lcd(*this, "lcd")
@@ -58,7 +57,6 @@ protected:
void update_display();
required_device<cpu_device> m_maincpu;
- required_device<dac_1bit_device> m_dac;
required_device<sensorboard_device> m_board;
required_device<pwm_display_device> m_display;
required_device<pcf2112_device> m_lcd;
@@ -194,7 +192,7 @@ void mondial68k_state::mondial68k(machine_config &config)
outlatch.q_out_cb<1>().set(m_lcd, FUNC(pcf2112_device::data_w));
outlatch.q_out_cb<2>().set(m_lcd, FUNC(pcf2112_device::dlen_w));
outlatch.q_out_cb<6>().set_nop(); // another DAC input?
- outlatch.q_out_cb<7>().set(m_dac, FUNC(dac_1bit_device::write));
+ outlatch.q_out_cb<7>().set("dac", FUNC(dac_1bit_device::write));
SENSORBOARD(config, m_board).set_type(sensorboard_device::BUTTONS);
m_board->init_cb().set(m_board, FUNC(sensorboard_device::preset_chess));
@@ -209,7 +207,7 @@ void mondial68k_state::mondial68k(machine_config &config)
/* sound hardware */
SPEAKER(config, "speaker").front_center();
- DAC_1BIT(config, m_dac).add_route(ALL_OUTPUTS, "speaker", 0.25);
+ DAC_1BIT(config, "dac").add_route(ALL_OUTPUTS, "speaker", 0.25);
VOLTAGE_REGULATOR(config, "vref").add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
}
diff --git a/src/mame/drivers/neogeo.cpp b/src/mame/drivers/neogeo.cpp
index 258dd8c8fd4..d8d92fd4247 100644
--- a/src/mame/drivers/neogeo.cpp
+++ b/src/mame/drivers/neogeo.cpp
@@ -587,7 +587,7 @@ protected:
virtual void output_strobe(uint8_t bits, uint8_t data) { }
virtual void set_outputs() { }
- virtual DECLARE_WRITE8_MEMBER(io_control_w) override;
+ virtual void io_control_w(offs_t offset, uint8_t data) override;
private:
uint8_t m_output_data;
@@ -922,7 +922,7 @@ CUSTOM_INPUT_MEMBER(ngarcade_base_state::startsel_edge_joy_r)
return ret;
}
-WRITE8_MEMBER(neogeo_base_state::io_control_w)
+void neogeo_base_state::io_control_w(offs_t offset, uint8_t data)
{
if ((offset & 0x38) == 0x00) // TODO: the mask is supposedly less restrictive on AES?
{
@@ -936,12 +936,12 @@ WRITE8_MEMBER(neogeo_base_state::io_control_w)
}
}
-WRITE8_MEMBER(ngarcade_base_state::io_control_w)
+void ngarcade_base_state::io_control_w(offs_t offset, uint8_t data)
{
switch (offset & 0x78)
{
case 0x00:
- neogeo_base_state::io_control_w(space, offset, data, mem_mask);
+ neogeo_base_state::io_control_w(offset, data);
break;
case 0x28:
@@ -963,7 +963,7 @@ WRITE8_MEMBER(ngarcade_base_state::io_control_w)
}
}
-WRITE8_MEMBER(mvs_state::io_control_w)
+void mvs_state::io_control_w(offs_t offset, uint8_t data)
{
switch (offset & 0x78)
{
@@ -984,7 +984,7 @@ WRITE8_MEMBER(mvs_state::io_control_w)
break;
default:
- ngarcade_base_state::io_control_w(space, offset, data, mem_mask);
+ ngarcade_base_state::io_control_w(offset, data);
}
}
@@ -3055,11 +3055,10 @@ ROM_START( nam1975 ) /* MVS AND AES VERSION */
ROM_REGION( 0x080000, "cslot1:ymsnd", 0 )
ROM_LOAD( "001-v11.v11", 0x000000, 0x080000, CRC(a7c3d5e5) SHA1(e3efc86940f91c53b7724c4566cfc21ea1a7a465) ) /* MB834200 */
- // AES has different label, data is the same: 001-v1.v1
+ // AES has different label, data is the same: 001-v11.v1
ROM_REGION( 0x180000, "cslot1:ymsnd.deltat", 0 )
- ROM_LOAD( "001-v21.v21", 0x000000, 0x080000, CRC(55e670b3) SHA1(a047049646a90b6db2d1882264df9256aa5a85e5) ) /* MB834200 */
- // AES has different label, data is the same: 001-v2.v21
+ ROM_LOAD( "001-v21.v21", 0x000000, 0x080000, CRC(55e670b3) SHA1(a047049646a90b6db2d1882264df9256aa5a85e5) ) /* MB834200 */
ROM_LOAD( "001-v22.v22", 0x080000, 0x080000, CRC(ab0d8368) SHA1(404114db9f3295929080b87a5d0106b40da6223a) ) /* MB834000 */
ROM_LOAD( "001-v23.v23", 0x100000, 0x080000, CRC(df468e28) SHA1(4e5d4a709a4737a87bba4083aeb788f657862f1a) ) /* MB834000 */
@@ -3083,7 +3082,8 @@ ROM_END
ROM_START( bstars ) /* MVS VERSION */
ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT )
ROM_LOAD16_WORD_SWAP( "002-pg.p1", 0x000000, 0x080000, CRC(c100b5f5) SHA1(4cea9f29ad67288c3eccfa4cf961ee9782e49165) ) /* MB834200 */
-
+ /* also found set with P1 on maskrom with chip label 002-P1 */
+
NEO_SFIX_128K( "002-s1.s1", CRC(1a7fd0c6) SHA1(3fc701b7afddab369ddf9dedfbc5e1aaf80b8af3) ) /* MB831000 */
NEO_BIOS_AUDIO_256K( "002-m1.m1", CRC(4ecaa4ee) SHA1(50abfb8eed6cb4887393089f9ccc76f306ef69b5) ) /* MB832000 */
@@ -3096,7 +3096,8 @@ ROM_START( bstars ) /* MVS VERSION */
ROM_REGION( 0x080000, "cslot1:ymsnd.deltat", 0 )
ROM_LOAD( "002-v21.v21", 0x000000, 0x080000, CRC(04a733d1) SHA1(84159368c0f6de2c3b8121227201cd3422455cf6) ) /* MB834000 */
-
+ /* also found set with different chip labels on V11 and V21 locations; chip labels are : 002-V1 and 002-V2 */
+
ROM_REGION( 0x300000, "cslot1:sprites", 0 )
ROM_LOAD16_BYTE( "002-c1.c1", 0x000000, 0x080000, CRC(aaff2a45) SHA1(c91ee72d1d74514df8ec44fca703409d92158ae3) ) /* Plane 0,1 */ /* MB834200 */
ROM_LOAD16_BYTE( "002-c2.c2", 0x000001, 0x080000, CRC(3ba0f7e4) SHA1(f023b134b9c7994f477867307d2732026033501d) ) /* Plane 2,3 */ /* MB834200 */
@@ -3400,7 +3401,8 @@ ROM_END
ROM_START( ncombat ) /* MVS VERSION */
ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT )
ROM_LOAD16_WORD_SWAP( "009-p1.p1", 0x000000, 0x080000, CRC(b45fcfbf) SHA1(3872147dda2d1ba905d35f4571065d87b1958b4a) ) /* TC534200 */
-
+ /* also found set with P1 on TC534200 with chip label 009-PG1 */
+
NEO_SFIX_128K( "009-s1.s1", CRC(d49afee8) SHA1(77615f12edf08ae8f1353f7a056a8f3a50d3ebdc) ) /* TC531000 */
NEO_BIOS_AUDIO_128K( "009-m1.m1", CRC(b5819863) SHA1(6f2309d51531052dbf7d712993c9e35649db0d84) ) /* TC531001 */
@@ -3588,7 +3590,8 @@ ROM_START( kotmh ) /* AES VERSION */
ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT )
ROM_LOAD16_WORD_SWAP( "016-hp1.p1",0x000000, 0x080000, CRC(b774621e) SHA1(7684b2e07163aec68cd083ef1d8900f855f6cb42) ) /* TC534200 */
ROM_LOAD16_WORD_SWAP( "016-p2.p2", 0x080000, 0x020000, CRC(12afdc2b) SHA1(3a95f5910cbb9f17e63ddece995c6e120fa2f622) ) /* TC531024 */
-
+ /* also found sets with P1 on TC534200 and P2 on TC531024 with chip labels 016-P1 and 016-P2 */
+
NEO_SFIX_128K( "016-s1.s1", CRC(1a2eeeb3) SHA1(8d2b96d395020197bc59294b6b0c8d62b1d8d4dd) ) /* TC531000 */
NEO_BIOS_AUDIO_128K( "016-m1.m1", CRC(9da9ca10) SHA1(88b915827d529f39c365d3e41197d5461e07a085) ) /* TC531001 */
@@ -3954,6 +3957,7 @@ ROM_END
ROM_START( bjourneyh ) /* AES VERSION */
ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT )
ROM_LOAD16_WORD_SWAP( "022-hp1.p1", 0x000000, 0x100000, CRC(62cbe7b2) SHA1(f9a8fd98702c623ae793804ba50d09751e3fee4c) ) /* TC538200 */
+ /* also found sets with P1 on TC5358200; chip label is 022-P1 */
NEO_SFIX_128K( "022-s1.s1", CRC(843c3624) SHA1(dbdf86c193b7c1d795f8c21f2c103c1d3e18abbe) ) /* TC531000 */
@@ -4017,7 +4021,7 @@ ROM_END
. NGM-024
NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
. NGH-024
-
+ NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1
. prototype
NEO-MVS PROG-EP / NEO-MVS CHA-EPG
****************************************/
@@ -4241,6 +4245,7 @@ ROM_END
ROM_START( socbrawl ) /* MVS VERSION */
ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT )
ROM_LOAD16_WORD_SWAP( "031-pg1.p1", 0x000000, 0x080000, CRC(17f034a7) SHA1(2e66c7bd93a08efe63c4894494db50bbf58f60e4) ) /* TC534200 */
+ /* also found set with P1 on TC534200 with chip label 031-P1 */
NEO_SFIX_128K( "031-s1.s1", CRC(4c117174) SHA1(26e52c4f628338a9aa1c159517cdf873f738fb98) ) /* TC531000 */
@@ -4280,6 +4285,7 @@ ROM_END
ID-0032
. NGM-032
NEO-MVS PROG42G-1 / NEO-MVS CHA42G-1
+ NEO-MVS PROG42G-COM / NEO-MVS CHA42G-1
. NGH-032
NEO-AEG PROG42G-1 / NEO-AEG CHA42G-1
****************************************/
@@ -4287,10 +4293,11 @@ ROM_END
ROM_START( roboarmy )
ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT )
ROM_LOAD16_WORD_SWAP( "032-p1.p1", 0x000000, 0x080000, CRC(cd11cbd4) SHA1(23163e3da2f07e830a7f4a02aea1cb01a54ccbf3) ) /* TC534200 */
+ /* also found sets with P1 on eprom; correct chip label unknown */
NEO_SFIX_128K( "032-s1.s1", CRC(ac0daa1b) SHA1(93bae4697dc403fce19422752a514326ccf66a91) ) /* TC531000 */
- NEO_BIOS_AUDIO_128K( "032-m1.m1", CRC(35ec952d) SHA1(8aed30e26d7e2c70dbce5de752df416091066f7b) ) /* TC531001 */
+ NEO_BIOS_AUDIO_128K( "032-m1.m1", CRC(35ec952d) SHA1(8aed30e26d7e2c70dbce5de752df416091066f7b) ) /* TC541000 */
ROM_REGION( 0x200000, "cslot1:ymsnd", 0 )
ROM_LOAD( "032-v1.v1", 0x000000, 0x100000, CRC(63791533) SHA1(4479e9308cdc906b9e03b985303f4ebedd00512f) ) /* TC538200 */
@@ -4311,7 +4318,7 @@ ROM_START( roboarma ) /* MVS AND AES VERSION*/
NEO_SFIX_128K( "032-s1.s1", CRC(ac0daa1b) SHA1(93bae4697dc403fce19422752a514326ccf66a91) ) /* TC531000 */
- NEO_BIOS_AUDIO_128K( "032-m1.m1", CRC(35ec952d) SHA1(8aed30e26d7e2c70dbce5de752df416091066f7b) ) /* TC531001 */
+ NEO_BIOS_AUDIO_128K( "032-m1.m1", CRC(35ec952d) SHA1(8aed30e26d7e2c70dbce5de752df416091066f7b) ) /* TC541000 */
ROM_REGION( 0x200000, "cslot1:ymsnd", 0 )
ROM_LOAD( "032-v1.v1", 0x000000, 0x100000, CRC(63791533) SHA1(4479e9308cdc906b9e03b985303f4ebedd00512f) ) /* TC538200 */
@@ -4336,10 +4343,12 @@ ROM_START( fatfury1 ) /* MVS AND AES VERSION */
ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT )
ROM_LOAD16_WORD_SWAP( "033-p1.p1", 0x000000, 0x080000, CRC(47ebdc2f) SHA1(d46786502920fb510f1999db00c5e09fb641c0bd) ) /* TC534200 */
ROM_LOAD16_WORD_SWAP( "033-p2.p2", 0x080000, 0x020000, CRC(c473af1c) SHA1(4919eeca20abe807493872ca7c79a5d1f496fe68) ) /* TC531024 */
+ /* also found MVS sets with P1 and P2 on eprom; correct chip label unknown */
NEO_SFIX_128K( "033-s1.s1", CRC(3c3bdf8c) SHA1(2f3e5feed6c27850b2a0f6fae0b97041690e944c) ) /* TC531000 */
NEO_BIOS_AUDIO_128K( "033-m1.m1", CRC(5be10ffd) SHA1(90a5e6cbbc58a7883cd2a3a597180d631a466882) ) /* TC531001 */
+ /* also found MVS sets with M1 on eprom */
ROM_REGION( 0x200000, "cslot1:ymsnd", 0 )
ROM_LOAD( "033-v1.v1", 0x000000, 0x100000, CRC(212fd20d) SHA1(120c040db8c01a6f140eea03725448bfa9ca98c2) ) /* TC538200 */
@@ -4659,7 +4668,9 @@ ROM_START( 3countb ) /* MVS AND AES VERSION */
ROM_REGION( 0x400000, "cslot1:ymsnd", 0 )
ROM_LOAD( "043-v1.v1", 0x000000, 0x200000, CRC(63688ce8) SHA1(5c6ac29a0cc0655a87cfe3ada8706838b86b86e4) ) /* TC5316200 */
+ // AES has different label: 043-v1.v2; same data
ROM_LOAD( "043-v2.v2", 0x200000, 0x200000, CRC(c69a827b) SHA1(f5197ea87bb6573fa6aef3a1713c3679c58c1e74) ) /* TC5316200 */
+ // AES has different label: 040-v2.v4; same data
ROM_REGION( 0x0800000, "cslot1:sprites", 0 )
ROM_LOAD16_BYTE( "043-c1.c1", 0x000000, 0x100000, CRC(bad2d67f) SHA1(04928e50ca75b7fbc52b64e816ec5701901f5893) ) /* Plane 0,1 */ /* TC5316200 */
@@ -4684,7 +4695,7 @@ ROM_END
ROM_START( aof ) /* MVS AND AES VERSION */
ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT )
ROM_LOAD16_WORD_SWAP( "044-p1.p1", 0x000000, 0x080000, CRC(ca9f7a6d) SHA1(4d28ef86696f7e832510a66d3e8eb6c93b5b91a1) ) /* TC534200 */
- /* also found sets with ep1 or p1 on eprom. */
+ /* also found sets with EP1 or P1 on eprom. */
NEO_SFIX_128K( "044-s1.s1", CRC(89903f39) SHA1(a04a0c244a5d5c7a595fcf649107969635a6a8b6) ) /* TC531000 */
@@ -4717,7 +4728,7 @@ ROM_START( samsho ) /* MVS VERSION */
ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT )
ROM_LOAD16_WORD_SWAP( "045-p1.p1", 0x000000, 0x100000, CRC(dfe51bf0) SHA1(2243af3770a516ae698b69bcd9daf53632d9128d) ) /* TC538200 */
ROM_LOAD16_WORD_SWAP( "045-pg2.sp2", 0x100000, 0x100000, CRC(46745b94) SHA1(d9e959fd1f88c9402915c1d0dcdb4a9e3d49cdcb) ) /* TC538200 */
- /* also found set with ep1 / ep2 on eprom and sp2 on maskrom; same rom data as samshoh is used. */
+ /* also found set with EP1 / EP2 on eprom and P2 on maskrom; same rom data as samshoh is used. */
NEO_SFIX_128K( "045-s1.s1", CRC(9142a4d3) SHA1(54088e99fcfd75fd0f94852890a56350066a05a3) ) /* TC531000 */
@@ -4728,10 +4739,10 @@ ROM_START( samsho ) /* MVS VERSION */
ROM_LOAD( "045-v2.v2", 0x200000, 0x200000, CRC(568b20cf) SHA1(61af858685472a1fad608e230cccc2b108509ddb) ) /* TC5316200 */
ROM_REGION( 0xa00000, "cslot1:sprites", 0 )
- ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) ) /* Plane 0,1 */ /* TC5316200 */
- ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) ) /* Plane 2,3 */ /* TC5316200 */
- ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) ) /* Plane 0,1 */ /* TC5316200 */
- ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) ) /* Plane 2,3 */ /* TC5316200 */
+ ROM_LOAD16_BYTE( "045-c1.c1", 0x000000, 0x200000, CRC(2e5873a4) SHA1(65c74c1e2d34390666bbb630df7d1f4c9570c3db) ) /* Plane 0,1 */ /* TC5316200 */
+ ROM_LOAD16_BYTE( "045-c2.c2", 0x000001, 0x200000, CRC(04febb10) SHA1(16a8cbf0fd9468e81bf9eab6dbe7a8e3623a843e) ) /* Plane 2,3 */ /* TC5316200 */
+ ROM_LOAD16_BYTE( "045-c3.c3", 0x400000, 0x200000, CRC(f3dabd1e) SHA1(c80e52df42be9f8b2e89b467b11ab140a480cee8) ) /* Plane 0,1 */ /* TC5316200 */
+ ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) ) /* Plane 2,3 */ /* TC5316200 */
ROM_LOAD16_BYTE( "045-c51.c5", 0x800000, 0x100000, CRC(81932894) SHA1(550f15dc5892c4602422c51869f0d59f70f01e9e) ) /* Plane 0,1 */ /* TC538200 */
ROM_LOAD16_BYTE( "045-c61.c6", 0x800001, 0x100000, CRC(be30612e) SHA1(5e8b785f917c176d6796eba0caed37b13ddb3e63) ) /* Plane 2,3 */ /* TC538200 */
ROM_END
@@ -4756,7 +4767,7 @@ ROM_START( samshoh ) /* AES VERSION */
ROM_LOAD16_BYTE( "045-c4.c4", 0x400001, 0x200000, CRC(935c62f0) SHA1(0053d40085fac14096b683f4341f65e543b71dc1) ) /* Plane 2,3 */ /* TC5316200 */
ROM_LOAD16_BYTE( "045-c5.c5", 0x800000, 0x080000, CRC(a2bb8284) SHA1(aa118e3b8c062daa219b36758b9a3814c08c69dc) ) /* Plane 0,1 */ /* TC534200 */
ROM_LOAD16_BYTE( "045-c6.c6", 0x800001, 0x080000, CRC(4fa71252) SHA1(afe374a9d1f2d955a59efe7b6196b89e021b164c) ) /* Plane 2,3 */ /* TC534200 */
- /* also found AES set with C6 on TC538200; label is 045-C61.C6 */
+ /* also found AES set with C6 on TC538200; label is 045-C61.C6; same rom data as samsho */
ROM_END
/****************************************
@@ -4831,11 +4842,12 @@ ROM_END
ROM_START( fatfury2 ) /* MVS AND AES VERSION */
ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT )
ROM_LOAD16_WORD_SWAP( "047-p1.p1", 0x000000, 0x100000, CRC(ecfdbb69) SHA1(59e2f137c6eaf043df4ddae865a9159a10265c60) ) /* TC538200 */
- /* The original p1 is 8mbit; also found sets with p1 / p2 4mbit on eprom. */
+ /* The original P1 is 8mbit; also found sets with P1 / P2 4mbit on eprom. */
NEO_SFIX_128K( "047-s1.s1", CRC(d7dbbf39) SHA1(29253e596f475ebd41a6e3bb53952e3a0ccd2eed) ) /* TC531000 */
NEO_BIOS_AUDIO_128K( "047-m1.m1", CRC(820b0ba7) SHA1(5708248d89446e49184eaadb52f7c61b2b6c13c5) ) /* TC531001 */
+ /* also found sets with M1 on eprom */
ROM_REGION( 0x400000, "cslot1:ymsnd", 0 )
ROM_LOAD( "047-v1.v1", 0x000000, 0x200000, CRC(d9d00784) SHA1(f6a91eada8c23aa4518c4b82eeebca69f79d845c) ) /* TC5316200 */
@@ -5135,6 +5147,7 @@ ROM_END
ROM_START( aof2 ) /* MVS VERSION */
ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT )
ROM_LOAD16_WORD_SWAP( "056-p1.p1", 0x000000, 0x100000, CRC(a3b1d021) SHA1(ee42f3ca4516226b0088d0303ed28e3ecdabcd71) ) /* TC538200 */
+ /* also found set with EP1 / EP2 on eprom; correct chip label unknown */
NEO_SFIX_128K( "056-s1.s1", CRC(8b02638e) SHA1(aa4d28804ca602da776948b5f223ea89e427906b) ) /* TC531000 */
@@ -5336,6 +5349,7 @@ ROM_END
ROM_START( fightfev ) /* MVS ONLY RELEASE */
ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT )
ROM_LOAD16_WORD_SWAP( "060-p1.p1", 0x0000000, 0x100000, CRC(2a104b50) SHA1(3eb663d3df7074e1cdf4c0e450a35c9cf55d8979) ) /* VIC940800 */
+ /* also found set with EP1 / EP2 on eprom with sticker; stickers have Viccom logo with '1' for EP1 and '2' for EP2 in the center */
NEO_SFIX_128K( "060-s1.s1", CRC(d62a72e9) SHA1(a23e4c4fd4ec11a7467ce41227c418b4dd1ef649) ) /* VIC930100 */
@@ -5387,7 +5401,7 @@ ROM_END
ROM_START( ssideki2 ) /* MVS AND AES VERSION */
ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT )
ROM_LOAD16_WORD_SWAP( "061-p1.p1", 0x000000, 0x100000, CRC(5969e0dc) SHA1(78abea880c125ec5a85bef6404478512a34b5513) ) /* mask rom TC538200 */
- /* also found MVS sets with ep1 / ep2 on eprom; correct chip label unknown. */
+ /* also found MVS sets with EP1 / EP2 on eprom; correct chip label unknown. */
NEO_SFIX_128K( "061-s1.s1", CRC(226d1b68) SHA1(de010f6fda3ddadb181fe37daa6105f22e78b970) ) /* mask rom TC531000 */
@@ -5447,7 +5461,7 @@ ROM_START( samsho2 ) /* MVS AND AES VERSION */
ROM_REGION( 0x200000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT )
ROM_LOAD16_WORD_SWAP( "063-p1.p1", 0x100000, 0x100000, CRC(22368892) SHA1(0997f8284aa0f57a333be8a0fdea777d0d01afd6) ) /* TC5316200 */
ROM_CONTINUE( 0x000000, 0x100000 )
- /* also found MVS sets with ep1 / ep2 on eprom and p1 / sp2 on maskrom; correct chip label unknown */
+ /* also found MVS sets with EP1 / EP2 on M27C4002 eprom and P1 / SP2 on D27C4000 maskrom; correct chip label unknown */
NEO_SFIX_128K( "063-s1.s1", CRC(64a5cd66) SHA1(12cdfb27bf9ccd5a8df6ddd4628ef7cf2c6d4964) ) /* TC531000 */
@@ -6036,6 +6050,7 @@ ROM_END
NEO-MVS PROGTOP / NEO-MVS CHA256B
NEO-MVS PROG 4096 B / NEO-MVS CHA 42G-3
. NGH-082
+ NEO-AEG PROGTOP2 / NEO-AEG CHA256 B
****************************************/
ROM_START( doubledr )
@@ -6235,7 +6250,7 @@ ROM_START( samsho3 ) /* MVS VERSION */
ROM_LOAD16_WORD_SWAP( "087-epr.ep4", 0x180000, 0x080000, CRC(53e60c58) SHA1(f975e81cab6322d3260348402721c673023259fa) ) /* M27C4002 */
/* P's on eprom, correct chip label unknown */
ROM_LOAD16_WORD_SWAP( "087-p5.p5", 0x200000, 0x100000, CRC(e86ca4af) SHA1(5246acbab77ac2f232b88b8522187764ff0872f0) ) /* TC538200 */
- /* also found MVS set with p1 / sp2 on maskrom on PROG board NEO-MVS PROGBK1; chip label are 087-PG1 and 087-P2 */
+ /* also found sets with P1 / SP2 on maskrom on PROG board NEO-MVS PROGBK1; chip label are 087-PG1 and 087-P2 */
NEO_SFIX_128K( "087-s1.s1", CRC(74ec7d9f) SHA1(d79c479838a7ca51735a44f91f1968ec5b3c6b91) ) /* TC531000 */
@@ -6511,6 +6526,7 @@ ROM_END
. NGM-094
NEO-MVS PROGBK1 / NEO-MVS CHA42G-3B
. NGH-094
+ NEO-AEG PROGTOP2Y / NEO-AEG CHA256BY
****************************************/
ROM_START( gowcaizr )
@@ -6686,6 +6702,7 @@ ROM_END
. NGM-096
NEO-MVS PROGBK1 / NEO-MVS CHA256
. NGH-096
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
****************************************/
ROM_START( aof3 )
@@ -6801,6 +6818,7 @@ ROM_END
NEO-MVS PROGBK1 / NEO-MVS CHA256B
NEO-MVS PROGBK1 / NEO-MVS CHA256
. NGH-200
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
****************************************/
ROM_START( turfmast )
@@ -6948,6 +6966,7 @@ ROM_END
. ??M-206
NEO-MVS PROGBK1 / NEO-MVS CHA256
. ??H-206
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
****************************************/
ROM_START( marukodq )
@@ -7057,6 +7076,7 @@ ROM_END
. ADM-011
NEO-MVS PROGBK1 / NEO-MVS CHA256
. ADH-011
+ NEO-AEG PROGBK1Y / NEO-AEG CHA256RY
****************************************/
ROM_START( overtop )
@@ -7117,7 +7137,7 @@ ROM_START( kof96 ) /* MVS VERSION */
ROM_REGION( 0x300000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT )
ROM_LOAD16_WORD_SWAP( "214-p1.p1", 0x000000, 0x100000, CRC(52755d74) SHA1(4232d627f1d2e6ea9fc8cf01571d77d4d5b8a1bb) ) /* TC538200 */
ROM_LOAD16_WORD_SWAP( "214-p2.sp2", 0x100000, 0x200000, CRC(002ccb73) SHA1(3ae8df682c75027ca82db25491021eeba00a267e) ) /* TC5316200 */
- /* also found sets with ep1 / ep2 / ep3 / ep4 on eprom and 214-P5 on TC5316200; correct chip labels for eproms is unknown */
+ /* also found sets with EP1 / EP2 / EP3 / EP4 on eprom and P5 on TC5316200 with chip label 214-P5; correct chip labels for eproms is unknown */
NEO_SFIX_128K( "214-s1.s1", CRC(1254cbdb) SHA1(fce5cf42588298711a3633e9c9c1d4dcb723ac76) ) /* TC531000 */
@@ -7638,8 +7658,14 @@ ROM_END
/****************************************
ID-0228
Ghostlop (prototype) 1996 Data East Corp.
+
+ Ghostlop (location test) 2001 Data East Corp.
+ NEO-MVS PROGGSC / NEO-MVS CHA256
****************************************/
+/* The location test version uses socketed EPROMs on the PROG board, flash chips on adapter boards for the C ROMs and EPROMs for M1 and S1 on the CHA.
+It has a piece of cardboard between the 2 boards to avoid shorts because the socketed flash adapter boards are a bit too high and could get shorted with traces on the PROG board. */
+
ROM_START( ghostlop ) /* Prototype */
ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT )
ROM_LOAD16_WORD_SWAP( "proto_228-p1.p1", 0x000000, 0x100000, CRC(6033172e) SHA1(f57fb706aa8dd9e5f9e992a5d35c1799578b59f8) )
@@ -7729,6 +7755,7 @@ ROM_START( kof97 ) /* MVS VERSION */
ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT )
ROM_LOAD16_WORD_SWAP( "232-p1.p1", 0x000000, 0x100000, CRC(7db81ad9) SHA1(8bc42be872fd497eb198ca13bf004852b88eb1dc) ) /* TC538200 */
ROM_LOAD16_WORD_SWAP( "232-p2.sp2", 0x100000, 0x400000, CRC(158b23f6) SHA1(9744620a70513490aaf9c5eda33e5ec31222be19) ) /* TC5332205 */
+ /* also found sets with P1 on TC538200 and SP2 on TC5332205 with chip labels 232-PG1 and 232-P2 */
NEO_SFIX_128K( "232-s1.s1", CRC(8514ecf5) SHA1(18d8e7feb51ea88816f1c786932a53655b0de6a0) ) /* TC531000 */
@@ -7833,8 +7860,8 @@ ROM_START( lastblad ) /* MVS VERSION */
ROM_REGION( 0x500000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT )
ROM_LOAD16_WORD_SWAP( "234-p1.p1", 0x000000, 0x100000, CRC(e123a5a3) SHA1(a3ddabc00feeb54272b145246612ad4632b0e413) ) /* TC538200 */
ROM_LOAD16_WORD_SWAP( "234-p2.sp2", 0x100000, 0x400000, CRC(0fdc289e) SHA1(1ff31c0b0f4f9ddbedaf4bcf927faaae81892ec7) ) /* TC5332205 */
- /* also found sets with p1 / sp2 / ep1 / ep2 / m1 on eprom with sticker */
- /* chip labels for eproms are 0234-P1, 0234-SP2, 0234-EP1, 0234-EP2 and 0234-M1 */
+ /* also found sets with P1 / SP2 / EP1 / EP2 / M1 on eprom with sticker */
+ /* chip labels for eproms are 0234-P1, 0234-SP2, 0234-EP1, 0234-EP2 and 0234-M1; same data */
NEO_SFIX_128K( "234-s1.s1", CRC(95561412) SHA1(995de272f572fd08d909d3d0af4251b9957b3640) ) /* TC531000 */
@@ -8855,7 +8882,7 @@ ROM_START( garouh ) /* Original Version - Encrypted GFX */ /* MVS AND AES VERSIO
ROM_LOAD16_WORD_SWAP( "ke.neo-sma", 0x0c0000, 0x040000, CRC(96c72233) SHA1(29e19effd40fdf7e5144332396857f4ad0eff13e) ) /* stored in the custom chip */
ROM_LOAD16_WORD_SWAP( "253-p1.p1", 0x100000, 0x400000, CRC(18ae5d7e) SHA1(bdb58ec9137d8653979b47132f2d10e1cc6aaa24) ) /* mask rom TC5332205 */
ROM_LOAD16_WORD_SWAP( "253-p2.p2", 0x500000, 0x400000, CRC(afffa779) SHA1(ac017986f02277fbcd656b8c02492a3f4216a90e) ) /* mask rom TC5332205 */
- /* also found AES JP set with ep1 / ep2 / ep3 and ep4 on eproms and KE NEO-SMA with a white marking; chip labels for eproms are 253-EP1, 253-EP2, 253-EP3 and 253-EP4 */
+ /* also found AES JP set with EP1 / EP2 / EP3 and EP4 on eproms and KE NEO-SMA with a white marking; chip labels for eproms are 253-EP1, 253-EP2, 253-EP3 and 253-EP4 */
ROM_Y_ZOOM
@@ -9162,7 +9189,7 @@ ROM_END
Non SMA protected version found on:
NEO-MVS PROGBK1 / NEO-MVS CHAFIO (1999.6.14) (NEO-CMC 7050)
. NGH-2570
- NEO-AEG PROGLBA (NEO-SMA) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050)
+ NEO-AEG PROGLBA (1999.7.6) (NEO-SMA) / NEO-AEG CHAFIO (1999.8.10) (NEO-CMC 7050)
****************************************/
ROM_START( kof2000 ) /* Original Version, Encrypted Code + Sound + GFX Roms */ /* MVS AND AES VERSION */
@@ -9679,7 +9706,7 @@ ROM_END
ROM_START( pnyaa ) /* Encrypted Set */ /* MVS ONLY RELEASE */
ROM_REGION( 0x100000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT )
ROM_LOAD16_WORD_SWAP( "pn202.p1", 0x000000, 0x100000, CRC(bf34e71c) SHA1(cfa7a2c7c41601a758414faf34e59583d7537363) )
-
+ /* P1 on eprom with sticker; chip label is P N 2. 02 */
ROM_Y_ZOOM
/* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */
@@ -9689,8 +9716,9 @@ ROM_START( pnyaa ) /* Encrypted Set */ /* MVS ONLY RELEASE */
ROM_LOAD( "sfix.sfix", 0x000000, 0x20000, CRC(c2ea0cfd) SHA1(fd4a618cdcdbf849374f0a50dd8efe9dbab706c3) )
/* Encrypted */
- NEO_BIOS_AUDIO_ENCRYPTED_512K( "267-m1.m1", CRC(c7853ccd) SHA1(1b7a4c5093cf0fe3861ce44fd1d3b30c71ad0abe) ) /* mask rom TC534000 */
-
+ NEO_BIOS_AUDIO_ENCRYPTED_512K( "m1.m1", CRC(c7853ccd) SHA1(1b7a4c5093cf0fe3861ce44fd1d3b30c71ad0abe) ) /* mask rom TC534000 */
+ /* M1 on eprom with sticker; chip label is M1 */
+
ROM_REGION( 0x400000, "cslot1:ymsnd", 0 )
/* Encrypted */
ROM_LOAD( "267-v1.v1", 0x000000, 0x400000, CRC(e2e8e917) SHA1(7f412d55aebff3d38a225a88c632916295ab0584) ) /* mask rom TC5332204 */
@@ -9771,7 +9799,7 @@ ROM_START( mslug5h ) /* Encrypted Set */ /* AES release of the game but is also
ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT )
ROM_LOAD32_WORD_SWAP( "268-p1c.p1", 0x000000, 0x400000, CRC(3636690a) SHA1(e0da714b4bdc6efffe1250ded02ebddb3ab6d7b3) )
ROM_LOAD32_WORD_SWAP( "268-p2c.p2", 0x000002, 0x400000, CRC(8dfc47a2) SHA1(27d618cfbd0107a4d2a836797e967b39d2eb4851) )
- /* also found AES set with p1 / p2 on maskrom and m1 on M27C4001 eprom with sticker; chip labels are 268-P1CR2, 268-P2CR2 and 268-M1 */
+ /* also found AES set with P1 / P2 on maskrom and m1 on M27C4001 eprom with sticker; chip labels are 268-P1CR2, 268-P2CR2 and 268-M1 */
ROM_Y_ZOOM
@@ -10088,7 +10116,7 @@ ROM_START( samsh5sph ) /* Encrypted Set */ /* AES VERSION, 2nd bugfix release */
ROM_REGION( 0x800000, "cslot1:maincpu", ROMREGION_BE|ROMREGION_16BIT )
ROM_LOAD16_WORD_SWAP( "272-p1ca.p1", 0x000000, 0x400000, CRC(c30a08dd) SHA1(66864954017c841d7ca8490112c3aa7a71a4da70) )
ROM_LOAD16_WORD_SWAP( "272-p2ca.sp2", 0x400000, 0x400000, CRC(bd64a518) SHA1(aa259a168930f106377d680db444535411b3bce0) )
- /* Correct chip labels unknown */
+ /* Correct chip labels unknown. Also found AES set on NEO-AEG PROGBK2S with P1 / P2 on eprom with sticker; chip label is 272-P1 and 272-P2 */
ROM_Y_ZOOM
diff --git a/src/mame/drivers/nes_clone.cpp b/src/mame/drivers/nes_clone.cpp
index d13a9463a8e..555b5456ba1 100644
--- a/src/mame/drivers/nes_clone.cpp
+++ b/src/mame/drivers/nes_clone.cpp
@@ -34,11 +34,11 @@ protected:
virtual void machine_reset() override;
virtual void video_start() override;
- DECLARE_WRITE8_MEMBER(sprite_dma_w);
+ void sprite_dma_w(address_space &space, uint8_t data);
- virtual DECLARE_READ8_MEMBER(in0_r);
- virtual DECLARE_READ8_MEMBER(in1_r);
- virtual DECLARE_WRITE8_MEMBER(in0_w);
+ virtual uint8_t in0_r();
+ virtual uint8_t in1_r();
+ virtual void in0_w(uint8_t data);
void nes_clone_basemap(address_map &map);
@@ -70,20 +70,20 @@ private:
void nes_clone_dnce2000_map(address_map& map);
virtual void machine_start() override;
virtual void machine_reset() override;
- DECLARE_READ8_MEMBER(rom_r);
- DECLARE_WRITE8_MEMBER(bank_w);
+ uint8_t rom_r(offs_t offset);
+ void bank_w(uint8_t data);
int m_rombase;
};
-WRITE8_MEMBER(nes_clone_state::sprite_dma_w)
+void nes_clone_state::sprite_dma_w(address_space &space, uint8_t data)
{
int source = (data & 7);
m_ppu->spriteram_dma(space, source);
}
// Standard NES style inputs (not using bus device as there are no real NES controller ports etc. these are all-in-one units and can be custom
-READ8_MEMBER(nes_clone_state::in0_r)
+uint8_t nes_clone_state::in0_r()
{
//logerror("%s: in0_r\n", machine().describe_context());
uint8_t ret = 0x40;
@@ -92,7 +92,7 @@ READ8_MEMBER(nes_clone_state::in0_r)
return ret;
}
-READ8_MEMBER(nes_clone_state::in1_r)
+uint8_t nes_clone_state::in1_r()
{
//logerror("%s: in1_r\n", machine().describe_context());
uint8_t ret = 0x40;
@@ -101,7 +101,7 @@ READ8_MEMBER(nes_clone_state::in1_r)
return ret;
}
-WRITE8_MEMBER(nes_clone_state::in0_w)
+void nes_clone_state::in0_w(uint8_t data)
{
//logerror("%s: in0_w %02x\n", machine().describe_context(), data);
if (data & 0x01)
@@ -270,12 +270,12 @@ void nes_clone_dnce2000_state::machine_start()
save_item(NAME(m_rombase));
}
-READ8_MEMBER(nes_clone_dnce2000_state::rom_r)
+uint8_t nes_clone_dnce2000_state::rom_r(offs_t offset)
{
return m_mainrom[(offset + (m_rombase * 0x8000)) & (m_mainromsize - 1)];
}
-WRITE8_MEMBER(nes_clone_dnce2000_state::bank_w)
+void nes_clone_dnce2000_state::bank_w(uint8_t data)
{
m_rombase = data;
}
diff --git a/src/mame/drivers/nes_sh6578.cpp b/src/mame/drivers/nes_sh6578.cpp
index e8fa4fdf646..2c9ffdda35d 100644
--- a/src/mame/drivers/nes_sh6578.cpp
+++ b/src/mame/drivers/nes_sh6578.cpp
@@ -53,7 +53,7 @@ protected:
virtual void machine_reset() override;
virtual void video_start() override;
- WRITE8_MEMBER(sprite_dma_w);
+ void sprite_dma_w(address_space &space, uint8_t data);
private:
required_device<cpu_device> m_maincpu;
@@ -64,52 +64,52 @@ private:
required_device<nesapu_device> m_apu;
required_device<timer_device> m_timer;
- DECLARE_READ8_MEMBER(bankswitch_r);
- DECLARE_WRITE8_MEMBER(bankswitch_w);
+ uint8_t bankswitch_r(offs_t offset);
+ void bankswitch_w(offs_t offset, uint8_t data);
- DECLARE_READ8_MEMBER(dma_r);
- DECLARE_WRITE8_MEMBER(dma_w);
+ uint8_t dma_r(offs_t offset);
+ void dma_w(offs_t offset, uint8_t data);
uint8_t bank_r(int bank, uint16_t offset);
void bank_w(int bank, uint16_t offset, uint8_t data);
- DECLARE_READ8_MEMBER(bank0_r) { return bank_r(0, offset); }
- DECLARE_WRITE8_MEMBER(bank0_w) { bank_w(0, offset, data); }
- DECLARE_READ8_MEMBER(bank1_r) { return bank_r(1, offset); }
- DECLARE_WRITE8_MEMBER(bank1_w) { bank_w(1, offset, data); }
- DECLARE_READ8_MEMBER(bank2_r) { return bank_r(2, offset); }
- DECLARE_WRITE8_MEMBER(bank2_w) { bank_w(2, offset, data); }
- DECLARE_READ8_MEMBER(bank3_r) { return bank_r(3, offset); }
- DECLARE_WRITE8_MEMBER(bank3_w) { bank_w(3, offset, data); }
- DECLARE_READ8_MEMBER(bank4_r) { return bank_r(4, offset); }
- DECLARE_WRITE8_MEMBER(bank4_w) { bank_w(4, offset, data); }
- DECLARE_READ8_MEMBER(bank5_r) { return bank_r(5, offset); }
- DECLARE_WRITE8_MEMBER(bank5_w) { bank_w(5, offset, data); }
- DECLARE_READ8_MEMBER(bank6_r) { return bank_r(6, offset); }
- DECLARE_WRITE8_MEMBER(bank6_w) { bank_w(6, offset, data); }
- DECLARE_READ8_MEMBER(bank7_r) { return bank_r(7, offset); }
- DECLARE_WRITE8_MEMBER(bank7_w) { bank_w(7, offset, data); }
-
- DECLARE_WRITE8_MEMBER(timing_setting_control_w);
- DECLARE_WRITE8_MEMBER(initial_startup_w);
- DECLARE_READ8_MEMBER(irq_status_r);
- DECLARE_WRITE8_MEMBER(irq_mask_w);
- DECLARE_WRITE8_MEMBER(timer_config_w);
- DECLARE_WRITE8_MEMBER(timer_value_w);
-
- DECLARE_READ8_MEMBER(io0_r);
- DECLARE_READ8_MEMBER(io1_r);
- DECLARE_WRITE8_MEMBER(io_w);
-
- DECLARE_READ8_MEMBER(psg1_4014_r);
- DECLARE_READ8_MEMBER(psg1_4015_r);
- DECLARE_WRITE8_MEMBER(psg1_4015_w);
- DECLARE_WRITE8_MEMBER(psg1_4017_w);
+ uint8_t bank0_r(offs_t offset) { return bank_r(0, offset); }
+ void bank0_w(offs_t offset, uint8_t data) { bank_w(0, offset, data); }
+ uint8_t bank1_r(offs_t offset) { return bank_r(1, offset); }
+ void bank1_w(offs_t offset, uint8_t data) { bank_w(1, offset, data); }
+ uint8_t bank2_r(offs_t offset) { return bank_r(2, offset); }
+ void bank2_w(offs_t offset, uint8_t data) { bank_w(2, offset, data); }
+ uint8_t bank3_r(offs_t offset) { return bank_r(3, offset); }
+ void bank3_w(offs_t offset, uint8_t data) { bank_w(3, offset, data); }
+ uint8_t bank4_r(offs_t offset) { return bank_r(4, offset); }
+ void bank4_w(offs_t offset, uint8_t data) { bank_w(4, offset, data); }
+ uint8_t bank5_r(offs_t offset) { return bank_r(5, offset); }
+ void bank5_w(offs_t offset, uint8_t data) { bank_w(5, offset, data); }
+ uint8_t bank6_r(offs_t offset) { return bank_r(6, offset); }
+ void bank6_w(offs_t offset, uint8_t data) { bank_w(6, offset, data); }
+ uint8_t bank7_r(offs_t offset) { return bank_r(7, offset); }
+ void bank7_w(offs_t offset, uint8_t data) { bank_w(7, offset, data); }
+
+ void timing_setting_control_w(uint8_t data);
+ void initial_startup_w(uint8_t data);
+ uint8_t irq_status_r();
+ void irq_mask_w(uint8_t data);
+ void timer_config_w(uint8_t data);
+ void timer_value_w(uint8_t data);
+
+ uint8_t io0_r();
+ uint8_t io1_r();
+ void io_w(uint8_t data);
+
+ uint8_t psg1_4014_r();
+ uint8_t psg1_4015_r();
+ void psg1_4015_w(uint8_t data);
+ void psg1_4017_w(uint8_t data);
uint8_t apu_read_mem(offs_t offset);
DECLARE_WRITE_LINE_MEMBER(apu_irq);
- int m_iniital_startup_state;
+ int m_initial_startup_state;
uint8_t m_bankswitch[8];
@@ -158,22 +158,22 @@ void nes_sh6578_state::bank_w(int bank, uint16_t offset, uint8_t data)
m_fullrom->write8(address, data);
}
-WRITE8_MEMBER(nes_sh6578_state::sprite_dma_w)
+void nes_sh6578_state::sprite_dma_w(address_space &space, uint8_t data)
{
m_ppu->spriteram_dma(space, data);
}
-READ8_MEMBER(nes_sh6578_state::bankswitch_r)
+uint8_t nes_sh6578_state::bankswitch_r(offs_t offset)
{
return m_bankswitch[offset];
}
-WRITE8_MEMBER(nes_sh6578_state::bankswitch_w)
+void nes_sh6578_state::bankswitch_w(offs_t offset, uint8_t data)
{
m_bankswitch[offset] = data;
}
-READ8_MEMBER(nes_sh6578_state::dma_r)
+uint8_t nes_sh6578_state::dma_r(offs_t offset)
{
switch (offset)
{
@@ -240,7 +240,7 @@ void nes_sh6578_state::do_dma()
//m_dma_length[1] = 0;
}
-WRITE8_MEMBER(nes_sh6578_state::dma_w)
+void nes_sh6578_state::dma_w(offs_t offset, uint8_t data)
{
switch (offset)
{
@@ -288,53 +288,53 @@ WRITE8_MEMBER(nes_sh6578_state::dma_w)
}
-WRITE8_MEMBER(nes_sh6578_state::initial_startup_w)
+void nes_sh6578_state::initial_startup_w(uint8_t data)
{
// there is also a timeframe in which this must happen
// if the writes are not correct the system does not operate
- if (m_iniital_startup_state == 0)
+ if (m_initial_startup_state == 0)
{
if (data == 0x65)
{
logerror("initial_startup_w VALID first write (0x65)\n");
- m_iniital_startup_state = 1;
+ m_initial_startup_state = 1;
}
else
{
logerror("initial_startup_w invalid first write (not 0x65)\n");
- m_iniital_startup_state = -1;
+ m_initial_startup_state = -1;
}
}
- else if (m_iniital_startup_state == 1)
+ else if (m_initial_startup_state == 1)
{
if (data == 0x76)
{
logerror("initial_startup_w VALID second write (0x76)\n");
- m_iniital_startup_state = 2;
+ m_initial_startup_state = 2;
}
else
{
logerror("initial_startup_w invalid second write (not 0x76)\n");
- m_iniital_startup_state = -1;
+ m_initial_startup_state = -1;
}
}
- else if (m_iniital_startup_state == 2)
+ else if (m_initial_startup_state == 2)
{
logerror("initial_startup_w invalid write (already passed) (%02x)\n", data);
}
- else if (m_iniital_startup_state == -1)
+ else if (m_initial_startup_state == -1)
{
logerror("initial_startup_w invalid write (already failed) (%02x)\n", data);
}
}
-READ8_MEMBER(nes_sh6578_state::irq_status_r)
+uint8_t nes_sh6578_state::irq_status_r()
{
logerror("%s: nes_sh6578_state::irq_status_r\n", machine().describe_context());
return machine().rand();
}
-WRITE8_MEMBER(nes_sh6578_state::irq_mask_w)
+void nes_sh6578_state::irq_mask_w(uint8_t data)
{
m_irqmask = data;
@@ -342,7 +342,7 @@ WRITE8_MEMBER(nes_sh6578_state::irq_mask_w)
m_maincpu->set_input_line(0, CLEAR_LINE);
}
-WRITE8_MEMBER(nes_sh6578_state::timer_config_w)
+void nes_sh6578_state::timer_config_w(uint8_t data)
{
logerror("%s: nes_sh6578_state::timer_config_w : %02x (at pos y: %d x: %d )\n", machine().describe_context(), data, m_screen->vpos(), m_screen->hpos() );
@@ -356,34 +356,34 @@ WRITE8_MEMBER(nes_sh6578_state::timer_config_w)
}
}
-WRITE8_MEMBER(nes_sh6578_state::timer_value_w)
+void nes_sh6578_state::timer_value_w(uint8_t data)
{
logerror("%s: nes_sh6578_state::timer_value_w : %02x\n", machine().describe_context(), data);
m_timerval = data;
}
-WRITE8_MEMBER(nes_sh6578_state::timing_setting_control_w)
+void nes_sh6578_state::timing_setting_control_w(uint8_t data)
{
logerror("%s: nes_sh6578_state::timing_setting_control_w : %02x\n", machine().describe_context(), data);
}
-READ8_MEMBER(nes_sh6578_state::io0_r)
+uint8_t nes_sh6578_state::io0_r()
{
uint8_t ret = m_iolatch[0] & 0x01;
m_iolatch[0] >>= 1;
return ret;
}
-READ8_MEMBER(nes_sh6578_state::io1_r)
+uint8_t nes_sh6578_state::io1_r()
{
uint8_t ret = m_iolatch[1] & 0x01;
m_iolatch[1] >>= 1;
return ret;
}
-WRITE8_MEMBER(nes_sh6578_state::io_w)
+void nes_sh6578_state::io_w(uint8_t data)
{
if ((data != 0x00) && (data != 0x01) && (data != 0x02) && (data != 0x03))
logerror("%s: io_w : unexpected value : %02x\n", machine().describe_context(), data);
@@ -407,22 +407,22 @@ WRITE8_MEMBER(nes_sh6578_state::io_w)
}
-READ8_MEMBER(nes_sh6578_state::psg1_4014_r)
+uint8_t nes_sh6578_state::psg1_4014_r()
{
return m_apu->read(0x14);
}
-READ8_MEMBER(nes_sh6578_state::psg1_4015_r)
+uint8_t nes_sh6578_state::psg1_4015_r()
{
return m_apu->read(0x15);
}
-WRITE8_MEMBER(nes_sh6578_state::psg1_4015_w)
+void nes_sh6578_state::psg1_4015_w(uint8_t data)
{
m_apu->write(0x15, data);
}
-WRITE8_MEMBER(nes_sh6578_state::psg1_4017_w)
+void nes_sh6578_state::psg1_4017_w(uint8_t data)
{
m_apu->write(0x17, data);
}
@@ -503,7 +503,7 @@ void nes_sh6578_state::machine_reset()
for (int i = 0; i < 8; i++)
m_bankswitch[i] = i;
- m_iniital_startup_state = 0;
+ m_initial_startup_state = 0;
m_bank->set_entry(0);
m_irqmask = 0xff;
diff --git a/src/mame/drivers/nes_vt.cpp b/src/mame/drivers/nes_vt.cpp
index ea7ac7398c6..82502629b32 100644
--- a/src/mame/drivers/nes_vt.cpp
+++ b/src/mame/drivers/nes_vt.cpp
@@ -67,8 +67,8 @@ protected:
required_region_ptr<uint8_t> m_prgrom;
- DECLARE_READ8_MEMBER(vt_rom_r);
- DECLARE_WRITE8_MEMBER(vtspace_w);
+ uint8_t vt_rom_r(offs_t offset);
+ void vtspace_w(offs_t offset, uint8_t data);
void configure_soc(nes_vt_soc_device* soc);
@@ -123,7 +123,7 @@ public:
protected:
required_device<nes_vt_soc_device> m_soc;
- DECLARE_WRITE8_MEMBER(vt03_8000_mapper_w) { m_soc->vt03_8000_mapper_w(space, offset, data); }
+ void vt03_8000_mapper_w(offs_t offset, uint8_t data) { m_soc->vt03_8000_mapper_w(offset, data); }
};
@@ -242,7 +242,7 @@ private:
void bittboy_412c_w(uint8_t data);
- DECLARE_READ8_MEMBER(vt_rom_banked_r);
+ uint8_t vt_rom_banked_r(offs_t offset);
};
class nes_vt_cy_lexibook_state : public nes_vt_cy_state
@@ -284,7 +284,7 @@ public:
protected:
private:
- READ8_MEMBER(vt_rom_banked_r);
+ uint8_t vt_rom_banked_r(offs_t offset);
void vt_external_space_map_fapocket_4x16mbyte(address_map& map);
void nes_vt_dg_map(address_map& map);
@@ -338,7 +338,7 @@ public:
void nes_vt_fp_pal_32mb(machine_config& config);
private:
- DECLARE_READ8_MEMBER(vt_rom_banked_r);
+ uint8_t vt_rom_banked_r(offs_t offset);
void vt_external_space_map_fp_2x32mbyte(address_map& map);
void nes_vt_fp_map(address_map& map);
@@ -400,12 +400,12 @@ public:
void nes_vt_vg_1mb_majgnc(machine_config& config);
};
-READ8_MEMBER(nes_vt_base_state::vt_rom_r)
+uint8_t nes_vt_base_state::vt_rom_r(offs_t offset)
{
return m_prgrom[offset];
}
-WRITE8_MEMBER(nes_vt_base_state::vtspace_w)
+void nes_vt_base_state::vtspace_w(offs_t offset, uint8_t data)
{
logerror("%s: vtspace_w %08x : %02x", machine().describe_context(), offset, data);
}
@@ -455,7 +455,7 @@ void nes_vt_swap_op_d5_d6_state::vt_external_space_map_senwld_512kbyte(address_m
}
// bitboy is 2 16Mbyte banks
-READ8_MEMBER(nes_vt_cy_state::vt_rom_banked_r)
+uint8_t nes_vt_cy_state::vt_rom_banked_r(offs_t offset)
{
return m_prgrom[m_ahigh | offset];
}
@@ -466,7 +466,7 @@ void nes_vt_cy_state::vt_external_space_map_bitboy_2x16mbyte(address_map &map)
}
// fapocket is 4 16Mbyte banks
-READ8_MEMBER(nes_vt_dg_state::vt_rom_banked_r)
+uint8_t nes_vt_dg_state::vt_rom_banked_r(offs_t offset)
{
return m_prgrom[m_ahigh | offset];
}
@@ -476,7 +476,7 @@ void nes_vt_dg_state::vt_external_space_map_fapocket_4x16mbyte(address_map &map)
map(0x0000000, 0x0ffffff).mirror(0x1000000).rw(FUNC(nes_vt_dg_state::vt_rom_banked_r), FUNC(nes_vt_dg_state::vt03_8000_mapper_w));
}
-READ8_MEMBER(nes_vt_hh_state::vt_rom_banked_r)
+uint8_t nes_vt_hh_state::vt_rom_banked_r(offs_t offset)
{
return m_prgrom[m_ahigh | offset];
}
diff --git a/src/mame/drivers/ngen.cpp b/src/mame/drivers/ngen.cpp
index 9b4eec02b5f..1510e577a6e 100644
--- a/src/mame/drivers/ngen.cpp
+++ b/src/mame/drivers/ngen.cpp
@@ -929,7 +929,7 @@ static void ngen_floppies(device_slot_interface &device)
void ngen_state::ngen(machine_config &config)
{
// basic machine hardware
- I80186(config, m_maincpu, 16_MHz_XTAL / 2);
+ I80186(config, m_maincpu, 16_MHz_XTAL);
m_maincpu->set_addrmap(AS_PROGRAM, &ngen_state::ngen_mem);
m_maincpu->set_addrmap(AS_IO, &ngen_state::ngen_io);
m_maincpu->chip_select_callback().set(FUNC(ngen_state::cpu_peripheral_cb));
diff --git a/src/mame/drivers/novag_sexpert.cpp b/src/mame/drivers/novag_sexpert.cpp
index 29965252515..e35e3b9c54e 100644
--- a/src/mame/drivers/novag_sexpert.cpp
+++ b/src/mame/drivers/novag_sexpert.cpp
@@ -492,16 +492,16 @@ ROM_END
ROM_START( sexperta1 ) // from model 878
ROM_REGION( 0x18000, "maincpu", 0 )
- ROM_LOAD("se_lo_b15.u3", 0x0000, 0x8000, CRC(6cc9527c) SHA1(29bab809399f2863a88a9c41535ecec0a4fd65ea) )
- ROM_LOAD("se_hi1_b15.u1", 0x8000, 0x8000, CRC(6e57f0c0) SHA1(ea44769a6f54721fd4543366bda932e86e497d43) )
- ROM_LOAD("se_sf_hi0_a23.u2", 0x10000, 0x8000, CRC(7d4e1528) SHA1(53c7d458a5571afae402f00ae3d0f5066634b068) )
+ ROM_LOAD("se_202_l.u3", 0x0000, 0x8000, CRC(d51fed16) SHA1(01aaddab36a721a4b9efde94979256d397cd1953) ) // NEC D27C256AD-12
+ ROM_LOAD("se_202_h1.u1", 0x8000, 0x8000, CRC(933eafa8) SHA1(293f63a5bc7d760ad675522c98f9f0a49e61aef5) ) // "
+ ROM_LOAD("se_c22_h0.u2", 0x10000, 0x8000, CRC(3e42cf7c) SHA1(b2faa36a127e08e5755167a25ed4a07f12d62957) ) // "
ROM_END
ROM_START( sexperta2 ) // from model 878
ROM_REGION( 0x18000, "maincpu", 0 )
- ROM_LOAD("se_202_l.u3", 0x0000, 0x8000, CRC(d51fed16) SHA1(01aaddab36a721a4b9efde94979256d397cd1953) ) // NEC D27C256AD-12
- ROM_LOAD("se_202_h1.u1", 0x8000, 0x8000, CRC(933eafa8) SHA1(293f63a5bc7d760ad675522c98f9f0a49e61aef5) ) // "
- ROM_LOAD("se_c22_h0.u2", 0x10000, 0x8000, CRC(3e42cf7c) SHA1(b2faa36a127e08e5755167a25ed4a07f12d62957) ) // "
+ ROM_LOAD("se_lo_b15.u3", 0x0000, 0x8000, CRC(6cc9527c) SHA1(29bab809399f2863a88a9c41535ecec0a4fd65ea) )
+ ROM_LOAD("se_hi1_b15.u1", 0x8000, 0x8000, CRC(6e57f0c0) SHA1(ea44769a6f54721fd4543366bda932e86e497d43) )
+ ROM_LOAD("se_sf_hi0_a23.u2", 0x10000, 0x8000, CRC(7d4e1528) SHA1(53c7d458a5571afae402f00ae3d0f5066634b068) )
ROM_END
ROM_START( sexpertb ) // from model 887
diff --git a/src/mame/drivers/nwk-tr.cpp b/src/mame/drivers/nwk-tr.cpp
index a13b9e17899..9270faf21a9 100644
--- a/src/mame/drivers/nwk-tr.cpp
+++ b/src/mame/drivers/nwk-tr.cpp
@@ -307,8 +307,10 @@ public:
m_analog3(*this, "ANALOG3"),
m_analog4(*this, "ANALOG4"),
m_analog5(*this, "ANALOG5"),
+ m_pcb_digit(*this, "pcbdigit%u", 0U),
m_palette(*this, "palette"),
- m_generic_paletteram_32(*this, "paletteram") { }
+ m_generic_paletteram_32(*this, "paletteram")
+ { }
void thrilld(machine_config &config);
void nwktr(machine_config &config);
@@ -319,8 +321,6 @@ private:
// TODO: Needs verification on real hardware
static const int m_sound_timer_usec = 2400;
- uint8_t m_led_reg0;
- uint8_t m_led_reg1;
required_shared_ptr<uint32_t> m_work_ram;
required_device<ppc_device> m_maincpu;
required_device<cpu_device> m_audiocpu;
@@ -332,8 +332,10 @@ private:
required_device<adc12138_device> m_adc12138;
required_device_array<voodoo_device, 2> m_voodoo;
required_ioport m_in0, m_in1, m_in2, m_dsw, m_analog1, m_analog2, m_analog3, m_analog4, m_analog5;
+ output_finder<2> m_pcb_digit;
required_device<palette_device> m_palette;
required_shared_ptr<uint32_t> m_generic_paletteram_32;
+
emu_timer *m_sound_irq_timer;
int m_fpga_uploaded;
int m_lanc2_ram_r;
@@ -343,8 +345,8 @@ private:
std::unique_ptr<uint32_t[]> m_sharc0_dataram;
std::unique_ptr<uint32_t[]> m_sharc1_dataram;
void paletteram32_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
- uint32_t sysreg_r(offs_t offset, uint32_t mem_mask = ~0);
- void sysreg_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ uint8_t sysreg_r(offs_t offset);
+ void sysreg_w(offs_t offset, uint8_t data);
uint32_t lanc1_r(offs_t offset);
void lanc1_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
uint32_t lanc2_r(offs_t offset, uint32_t mem_mask = ~0);
@@ -403,8 +405,6 @@ uint32_t nwktr_state::screen_update_lscreen(screen_device &screen, bitmap_rgb32
m_k001604->draw_front_layer(screen, bitmap, tilemap_rect);
- draw_7segment_led(bitmap, 3, 3, m_led_reg0);
- draw_7segment_led(bitmap, 9, 3, m_led_reg1);
return 0;
}
@@ -419,83 +419,73 @@ uint32_t nwktr_state::screen_update_rscreen(screen_device &screen, bitmap_rgb32
m_k001604->draw_front_layer(screen, bitmap, tilemap_rect);
- draw_7segment_led(bitmap, 3, 3, m_led_reg0);
- draw_7segment_led(bitmap, 9, 3, m_led_reg1);
return 0;
}
/*****************************************************************************/
-uint32_t nwktr_state::sysreg_r(offs_t offset, uint32_t mem_mask)
+uint8_t nwktr_state::sysreg_r(offs_t offset)
{
- uint32_t r = 0;
- if (offset == 0)
- {
- if (ACCESSING_BITS_24_31)
- {
- r |= m_in0->read() << 24;
- }
- if (ACCESSING_BITS_16_23)
- {
- r |= m_in1->read() << 16;
- }
- if (ACCESSING_BITS_8_15)
- {
- r |= m_in2->read() << 8;
- }
- if (ACCESSING_BITS_0_7)
- {
- r |= m_adc12138->do_r() | (m_adc12138->eoc_r() << 2);
- }
- }
- else if (offset == 1)
+ uint8_t r = 0;
+
+ switch (offset)
{
- if (ACCESSING_BITS_24_31)
- {
- r |= m_dsw->read() << 24;
- }
+ case 0:
+ r = m_in0->read();
+ break;
+ case 1:
+ r = m_in1->read();
+ break;
+ case 2:
+ r = m_in2->read();
+ break;
+ case 3:
+ r = m_adc12138->do_r() | (m_adc12138->eoc_r() << 2);
+ break;
+ case 4:
+ r = m_dsw->read();
+ break;
+ default:
+ break;
}
+
return r;
}
-void nwktr_state::sysreg_w(offs_t offset, uint32_t data, uint32_t mem_mask)
+void nwktr_state::sysreg_w(offs_t offset, uint8_t data)
{
- if( offset == 0 )
- {
- if (ACCESSING_BITS_24_31)
- {
- m_led_reg0 = (data >> 24) & 0xff;
- }
- if (ACCESSING_BITS_16_23)
- {
- m_led_reg1 = (data >> 16) & 0xff;
- }
- return;
- }
- if( offset == 1 )
+ switch (offset)
{
- if (ACCESSING_BITS_24_31)
+ case 0:
+ case 1:
+ m_pcb_digit[offset] = bitswap<8>(~data,7,0,1,2,3,4,5,6) & 0x7f;
+ break;
+
+ case 4:
{
- int cs = (data >> 27) & 0x1;
- int conv = (data >> 26) & 0x1;
- int di = (data >> 25) & 0x1;
- int sclk = (data >> 24) & 0x1;
+ int cs = (data >> 3) & 0x1;
+ int conv = (data >> 2) & 0x1;
+ int di = (data >> 1) & 0x1;
+ int sclk = data & 0x1;
m_adc12138->cs_w(cs);
m_adc12138->conv_w(conv);
m_adc12138->di_w(di);
m_adc12138->sclk_w(sclk);
+ break;
}
- if (ACCESSING_BITS_0_7)
- {
- if (data & 0x80) // CG Board 1 IRQ Ack
+
+ case 7:
+ if (data & 0x80) // CG Board 1 IRQ Ack
m_maincpu->set_input_line(INPUT_LINE_IRQ1, CLEAR_LINE);
- if (data & 0x40) // CG Board 0 IRQ Ack
+ if (data & 0x40) // CG Board 0 IRQ Ack
m_maincpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE);
m_konppc->set_cgboard_id((data >> 4) & 1);
- }
- return;
+ break;
+
+ default:
+ break;
}
}
@@ -675,6 +665,8 @@ void nwktr_state::soundtimer_count_w(uint16_t data)
void nwktr_state::machine_start()
{
+ m_pcb_digit.resolve();
+
/* set conservative DRC options */
m_maincpu->ppcdrc_set_options(PPCDRC_COMPATIBLE_OPTIONS);
@@ -942,7 +934,6 @@ void nwktr_state::init_nwktr()
m_sharc0_dataram = std::make_unique<uint32_t[]>(0x100000 / 4);
m_sharc1_dataram = std::make_unique<uint32_t[]>(0x100000 / 4);
- m_led_reg0 = m_led_reg1 = 0x7f;
lanc2_init();
}
diff --git a/src/mame/drivers/pencil2.cpp b/src/mame/drivers/pencil2.cpp
index 66cceb37105..95ab2dfe571 100644
--- a/src/mame/drivers/pencil2.cpp
+++ b/src/mame/drivers/pencil2.cpp
@@ -305,6 +305,11 @@ INPUT_PORTS_END
void pencil2_state::machine_start()
{
+
+ save_item(NAME(m_centronics_busy));
+ save_item(NAME(m_centronics_ack));
+ save_item(NAME(m_cass_state));
+
if (m_cart->exists())
m_maincpu->space(AS_PROGRAM).install_read_handler(0x8000, 0xffff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
}
@@ -349,11 +354,11 @@ void pencil2_state::pencil2(machine_config &config)
/* ROM definition */
ROM_START( pencil2 )
- ROM_REGION(0x10000, "maincpu", 0)
+ ROM_REGION(0x2000, "maincpu", 0)
ROM_LOAD( "mt.u4", 0x0000, 0x2000, CRC(338d7b59) SHA1(2f89985ac06971e00210ff992bf1e30a296d10e7) )
ROM_END
/* Driver */
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
-COMP( 1983, pencil2, 0, 0, pencil2, pencil2, pencil2_state, empty_init, "Hanimex", "Pencil II", 0 )
+COMP( 1983, pencil2, 0, 0, pencil2, pencil2, pencil2_state, empty_init, "Hanimex", "Pencil II", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/pipbug.cpp b/src/mame/drivers/pipbug.cpp
index 2fe0274194d..863620d4232 100644
--- a/src/mame/drivers/pipbug.cpp
+++ b/src/mame/drivers/pipbug.cpp
@@ -66,6 +66,7 @@ public:
void pipbug(machine_config &config);
private:
+ virtual void machine_start() override;
void pipbug_ctrl_w(u8 data);
DECLARE_READ_LINE_MEMBER(serial_r);
TIMER_DEVICE_CALLBACK_MEMBER(kansas_r);
@@ -73,8 +74,8 @@ private:
required_device<s2650_device> m_maincpu;
required_device<cassette_image_device> m_cass;
DECLARE_QUICKLOAD_LOAD_MEMBER(quickload_cb);
- void pipbug_data(address_map &map);
- void pipbug_mem(address_map &map);
+ void data_map(address_map &map);
+ void mem_map(address_map &map);
u8 m_cass_data[4];
bool m_cassold, m_cassinbit;
};
@@ -113,14 +114,21 @@ READ_LINE_MEMBER( pipbug_state::serial_r )
return m_rs232->rxd_r() & m_cassinbit;
}
-void pipbug_state::pipbug_mem(address_map &map)
+void pipbug_state::machine_start()
+{
+ save_pointer(NAME(m_cass_data), 4);
+ save_item(NAME(m_cassold));
+ save_item(NAME(m_cassinbit));
+}
+
+void pipbug_state::mem_map(address_map &map)
{
map.unmap_value_high();
map(0x0000, 0x03ff).rom();
map(0x0400, 0x7fff).ram();
}
-void pipbug_state::pipbug_data(address_map &map)
+void pipbug_state::data_map(address_map &map)
{
// map.unmap_value_high();
map(S2650_CTRL_PORT, S2650_CTRL_PORT).w(FUNC(pipbug_state::pipbug_ctrl_w));
@@ -146,7 +154,7 @@ QUICKLOAD_LOAD_MEMBER(pipbug_state::quickload_cb)
int quick_addr = 0x440;
int exec_addr;
int quick_length;
- std::vector<uint8_t> quick_data;
+ std::vector<u8> quick_data;
int read_;
image_init_result result = image_init_result::FAIL;
@@ -207,8 +215,8 @@ void pipbug_state::pipbug(machine_config &config)
{
/* basic machine hardware */
S2650(config, m_maincpu, XTAL(1'000'000));
- m_maincpu->set_addrmap(AS_PROGRAM, &pipbug_state::pipbug_mem);
- m_maincpu->set_addrmap(AS_DATA, &pipbug_state::pipbug_data);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pipbug_state::mem_map);
+ m_maincpu->set_addrmap(AS_DATA, &pipbug_state::data_map);
m_maincpu->flag_handler().set("rs232", FUNC(rs232_port_device::write_txd));
m_maincpu->sense_handler().set(FUNC(pipbug_state::serial_r));
@@ -231,11 +239,11 @@ void pipbug_state::pipbug(machine_config &config)
/* ROM definition */
ROM_START( pipbug )
- ROM_REGION( 0x8000, "maincpu", ROMREGION_ERASEFF )
+ ROM_REGION( 0x0400, "maincpu", 0 )
ROM_LOAD( "pipbug.rom", 0x0000, 0x0400, CRC(f242b93e) SHA1(f82857cc882e6b5fc9f00b20b375988024f413ff))
ROM_END
/* Driver */
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
-COMP( 1979, pipbug, 0, 0, pipbug, pipbug, pipbug_state, empty_init, "Signetics", "PIPBUG", MACHINE_NO_SOUND_HW )
+COMP( 1979, pipbug, 0, 0, pipbug, pipbug, pipbug_state, empty_init, "Signetics", "PIPBUG", MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/plan80.cpp b/src/mame/drivers/plan80.cpp
index ee94ae185d6..534a1cb9cfb 100644
--- a/src/mame/drivers/plan80.cpp
+++ b/src/mame/drivers/plan80.cpp
@@ -2,24 +2,24 @@
// copyright-holders:Miodrag Milanovic, Robbbert
/***************************************************************************
- Plan-80
+Plan-80
- 06/12/2009 Skeleton driver.
+2009-12-06 Skeleton driver.
- Summary of Monitor commands:
+Summary of Monitor commands:
- D - dump memory
- F - fill memory
- G - go (execute program at address)
- I - in from a port and display
- M - move?
- O - out to a port
- S - edit memory
+D - dump memory
+F - fill memory
+G - go (execute program at address)
+I - in from a port and display
+M - move?
+O - out to a port
+S - edit memory
- ToDo:
- - fix autorepeat on the keyboard
- - Add missing devices
- - Picture of unit shows graphics, possibly a PCG
+ToDo:
+- fix autorepeat on the keyboard
+- Add missing devices
+- Picture of unit shows graphics, possibly a PCG
****************************************************************************/
@@ -37,42 +37,38 @@ public:
plan80_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
- , m_p_videoram(*this, "videoram")
+ , m_rom(*this, "maincpu")
+ , m_ram(*this, "mainram")
+ , m_vram(*this, "videoram")
, m_p_chargen(*this, "chargen")
, m_speaker(*this, "speaker")
{ }
void plan80(machine_config &config);
- void init_plan80();
-
private:
- enum
- {
- TIMER_BOOT
- };
-
- uint8_t port04_r();
- void port09_w(uint8_t data);
- void port10_w(uint8_t data);
- uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
-
- void plan80_io(address_map &map);
- void plan80_mem(address_map &map);
-
- virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr) override;
- uint8_t m_kbd_row;
+ u8 port04_r();
+ void port09_w(u8 data);
+ void port10_w(u8 data);
+ u32 screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void io_map(address_map &map);
+ void mem_map(address_map &map);
+ u8 m_kbd_row;
bool m_spk_pol;
virtual void machine_reset() override;
+ virtual void machine_start() override;
+ memory_passthrough_handler *m_rom_shadow_tap;
required_device<cpu_device> m_maincpu;
- required_shared_ptr<uint8_t> m_p_videoram;
+ required_region_ptr<u8> m_rom;
+ required_shared_ptr<u8> m_ram;
+ required_shared_ptr<u8> m_vram;
required_region_ptr<u8> m_p_chargen;
required_device<speaker_sound_device> m_speaker;
};
-uint8_t plan80_state::port04_r()
+u8 plan80_state::port04_r()
{
- uint8_t data = 0xff;
+ u8 data = 0xff;
if (m_kbd_row == 0xfe)
data = ioport("LINE0")->read();
@@ -92,28 +88,27 @@ uint8_t plan80_state::port04_r()
return data;
}
-void plan80_state::port09_w(uint8_t data)
+void plan80_state::port09_w(u8 data)
{
m_kbd_row = data;
}
-void plan80_state::port10_w(uint8_t data)
+void plan80_state::port10_w(u8 data)
{
m_spk_pol ^= 1;
m_speaker->level_w(m_spk_pol);
}
-void plan80_state::plan80_mem(address_map &map)
+void plan80_state::mem_map(address_map &map)
{
map.unmap_value_high();
- map(0x0000, 0x07ff).bankrw("boot");
- map(0x0800, 0xefff).ram();
+ map(0x0000, 0xefff).ram().share("mainram");
map(0xf000, 0xf7ff).ram().share("videoram");
- map(0xf800, 0xffff).rom();
+ map(0xf800, 0xffff).rom().region("maincpu", 0);
}
-void plan80_state::plan80_io(address_map &map)
+void plan80_state::io_map(address_map &map)
{
map.unmap_value_high();
map.global_mask(0xff);
@@ -172,45 +167,46 @@ static INPUT_PORTS_START( plan80 ) // Keyboard was worked out by trial & error;'
INPUT_PORTS_END
-void plan80_state::device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr)
+void plan80_state::machine_reset()
{
- switch (id)
+ address_space &program = m_maincpu->space(AS_PROGRAM);
+ program.install_rom(0x0000, 0x07ff, m_rom); // do it here for F3
+ m_rom_shadow_tap = program.install_read_tap(0xf800, 0xffff, "rom_shadow_r",[this](offs_t offset, u8 &data, u8 mem_mask)
{
- case TIMER_BOOT:
- /* after the first 4 bytes have been read from ROM, switch the ram back in */
- membank("boot")->set_entry(0);
- break;
- default:
- throw emu_fatalerror("Unknown id in plan80_state::device_timer");
- }
-}
+ if (!machine().side_effects_disabled())
+ {
+ // delete this tap
+ m_rom_shadow_tap->remove();
-void plan80_state::machine_reset()
-{
- membank("boot")->set_entry(1);
- timer_set(attotime::from_usec(10), TIMER_BOOT);
+ // reinstall ram over the rom shadow
+ m_maincpu->space(AS_PROGRAM).install_ram(0x0000, 0x07ff, m_ram);
+ }
+
+ // return the original data
+ return data;
+ });
}
-void plan80_state::init_plan80()
+void plan80_state::machine_start()
{
- uint8_t *RAM = memregion("maincpu")->base();
- membank("boot")->configure_entries(0, 2, &RAM[0x0000], 0xf800);
+ save_item(NAME(m_kbd_row));
+ save_item(NAME(m_spk_pol));
}
-uint32_t plan80_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+u32 plan80_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- uint8_t y,ra,chr,gfx;
- uint16_t sy=0,ma=0,x;
+ u8 y,ra,chr,gfx;
+ u16 sy=0,ma=0,x;
for (y = 0; y < 32; y++)
{
for (ra = 0; ra < 8; ra++)
{
- uint16_t *p = &bitmap.pix16(sy++);
+ u16 *p = &bitmap.pix16(sy++);
for (x = ma; x < ma+48; x++)
{
- chr = m_p_videoram[x];
+ chr = m_vram[x];
gfx = m_p_chargen[(chr << 3) | ra] ^ (BIT(chr, 7) ? 0xff : 0);
/* Display a scanline of a character */
@@ -228,7 +224,7 @@ uint32_t plan80_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap
}
/* F4 Character Displayer */
-static const gfx_layout plan80_charlayout =
+static const gfx_layout charlayout =
{
8, 8, /* 8 x 8 characters */
256, /* 256 characters */
@@ -242,7 +238,7 @@ static const gfx_layout plan80_charlayout =
};
static GFXDECODE_START( gfx_plan80 )
- GFXDECODE_ENTRY( "chargen", 0x0000, plan80_charlayout, 0, 1 )
+ GFXDECODE_ENTRY( "chargen", 0x0000, charlayout, 0, 1 )
GFXDECODE_END
@@ -250,8 +246,8 @@ void plan80_state::plan80(machine_config &config)
{
/* basic machine hardware */
I8080(config, m_maincpu, 2048000);
- m_maincpu->set_addrmap(AS_PROGRAM, &plan80_state::plan80_mem);
- m_maincpu->set_addrmap(AS_IO, &plan80_state::plan80_io);
+ m_maincpu->set_addrmap(AS_PROGRAM, &plan80_state::mem_map);
+ m_maincpu->set_addrmap(AS_IO, &plan80_state::io_map);
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER, rgb_t::green()));
@@ -272,17 +268,18 @@ void plan80_state::plan80(machine_config &config)
/* ROM definition */
ROM_START( plan80 )
- ROM_REGION( 0x10000, "maincpu", 0 )
- ROM_LOAD( "pl80mon.bin", 0xf800, 0x0800, CRC(433fb685) SHA1(43d53c35544d3a197ab71b6089328d104535cfa5))
+ ROM_REGION( 0x0800, "maincpu", 0 )
+ ROM_LOAD( "pl80mon.bin", 0x0000, 0x0800, CRC(433fb685) SHA1(43d53c35544d3a197ab71b6089328d104535cfa5) )
- ROM_REGION( 0x10000, "spare", 0 )
- ROM_LOAD_OPTIONAL( "pl80mod.bin", 0xf000, 0x0800, CRC(6bdd7136) SHA1(721eab193c33c9330e0817616d3d2b601285fe50))
+ // This rom 2nd half is missing, so useless. It uses the videoram address range, so it might have been for some other system
+ //ROM_REGION( 0x10000, "spare", 0 )
+ //ROM_LOAD_OPTIONAL( "pl80mod.bin", 0xf000, 0x0800, CRC(6bdd7136) SHA1(721eab193c33c9330e0817616d3d2b601285fe50))
ROM_REGION( 0x0800, "chargen", 0 )
- ROM_LOAD( "pl80gzn.bin", 0x0000, 0x0800, CRC(b4ddbdb6) SHA1(31bf9cf0f2ed53f48dda29ea830f74cea7b9b9b2))
+ ROM_LOAD( "pl80gzn.bin", 0x0000, 0x0800, CRC(b4ddbdb6) SHA1(31bf9cf0f2ed53f48dda29ea830f74cea7b9b9b2) )
ROM_END
/* Driver */
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
-COMP( 1988, plan80, 0, 0, plan80, plan80, plan80_state, init_plan80, "Tesla Eltos", "Plan-80", MACHINE_NOT_WORKING )
+COMP( 1988, plan80, 0, 0, plan80, plan80, plan80_state, empty_init, "Tesla Eltos", "Plan-80", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/pro80.cpp b/src/mame/drivers/pro80.cpp
index af705a28c6e..000d0413d60 100644
--- a/src/mame/drivers/pro80.cpp
+++ b/src/mame/drivers/pro80.cpp
@@ -47,18 +47,19 @@ public:
void pro80(machine_config &config);
private:
- void digit_w(uint8_t data);
- void segment_w(uint8_t data);
- uint8_t kp_r();
+ void digit_w(u8 data);
+ void segment_w(u8 data);
+ u8 kp_r();
TIMER_DEVICE_CALLBACK_MEMBER(kansas_r);
- void pro80_io(address_map &map);
- void pro80_mem(address_map &map);
+ void io_map(address_map &map);
+ void mem_map(address_map &map);
- uint8_t m_digit_sel;
- uint8_t m_cass_in;
- uint16_t m_cass_data[4];
- void machine_reset() override;
+ u8 m_digit_sel;
+ u8 m_cass_in;
+ u16 m_cass_data[4];
+ virtual void machine_reset() override;
+ virtual void machine_start() override;
required_device<cpu_device> m_maincpu;
required_device<cassette_image_device> m_cass;
required_ioport_array<6> m_io_keyboard;
@@ -68,7 +69,7 @@ private:
TIMER_DEVICE_CALLBACK_MEMBER( pro80_state::kansas_r )
{
m_cass_data[1]++;
- uint8_t cass_ws = (m_cass->input() > +0.03) ? 1 : 0;
+ u8 cass_ws = (m_cass->input() > +0.03) ? 1 : 0;
if (cass_ws != m_cass_data[0])
{
@@ -79,7 +80,7 @@ TIMER_DEVICE_CALLBACK_MEMBER( pro80_state::kansas_r )
}
}
-void pro80_state::digit_w(uint8_t data)
+void pro80_state::digit_w(u8 data)
{
// --xx xxxx digit select
// -x-- ---- cassette out
@@ -88,7 +89,7 @@ void pro80_state::digit_w(uint8_t data)
m_cass->output( BIT(data, 6) ? -1.0 : +1.0);
}
-void pro80_state::segment_w(uint8_t data)
+void pro80_state::segment_w(u8 data)
{
if (m_digit_sel)
{
@@ -100,9 +101,9 @@ void pro80_state::segment_w(uint8_t data)
}
}
-uint8_t pro80_state::kp_r()
+u8 pro80_state::kp_r()
{
- uint8_t data = 0x0f;
+ u8 data = 0x0f;
for (u8 i = 0; i < 6; i++)
if (!BIT(m_digit_sel, i))
@@ -114,7 +115,7 @@ uint8_t pro80_state::kp_r()
return data;
}
-void pro80_state::pro80_mem(address_map &map)
+void pro80_state::mem_map(address_map &map)
{
map.unmap_value_high();
map(0x0000, 0x03ff).rom();
@@ -122,7 +123,7 @@ void pro80_state::pro80_mem(address_map &map)
map(0x1400, 0x17ff).ram(); // 2nd RAM is optional
}
-void pro80_state::pro80_io(address_map &map)
+void pro80_state::io_map(address_map &map)
{
map.unmap_value_high();
map.global_mask(0xff);
@@ -172,12 +173,19 @@ void pro80_state::machine_reset()
m_cass_in = 0;
}
+void pro80_state::machine_start()
+{
+ save_item(NAME(m_digit_sel));
+ save_item(NAME(m_cass_in));
+ save_pointer(NAME(m_cass_data) ,4);
+}
+
void pro80_state::pro80(machine_config &config)
{
/* basic machine hardware */
Z80(config, m_maincpu, XTAL(4'000'000) / 2);
- m_maincpu->set_addrmap(AS_PROGRAM, &pro80_state::pro80_mem);
- m_maincpu->set_addrmap(AS_IO, &pro80_state::pro80_io);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pro80_state::mem_map);
+ m_maincpu->set_addrmap(AS_IO, &pro80_state::io_map);
/* video hardware */
config.set_default_layout(layout_pro80);
@@ -205,4 +213,4 @@ ROM_END
/* Driver */
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
-COMP( 1981, pro80, 0, 0, pro80, pro80, pro80_state, empty_init, "Protec", "Pro-80", MACHINE_NOT_WORKING )
+COMP( 1981, pro80, 0, 0, pro80, pro80, pro80_state, empty_init, "Protec", "Pro-80", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/pyl601.cpp b/src/mame/drivers/pyl601.cpp
index de0c1b06f1c..e20146877e1 100644
--- a/src/mame/drivers/pyl601.cpp
+++ b/src/mame/drivers/pyl601.cpp
@@ -90,10 +90,10 @@ private:
uint8_t selectedline(uint16_t data);
virtual void machine_reset() override;
- virtual void video_start() override;
+ virtual void machine_start() override;
INTERRUPT_GEN_MEMBER(pyl601_interrupt);
DECLARE_FLOPPY_FORMATS( floppy_formats );
- void pyl601_mem(address_map &map);
+ void mem_map(address_map &map);
uint8_t m_rom_page;
uint32_t m_vdisk_addr;
@@ -264,7 +264,7 @@ uint8_t pyl601_state::floppy_r()
return m_floppy_ctrl;
}
-void pyl601_state::pyl601_mem(address_map &map)
+void pyl601_state::mem_map(address_map &map)
{
map.unmap_value_high();
map(0x0000, 0xbfff).bankrw("bank1");
@@ -395,14 +395,21 @@ void pyl601_state::machine_reset()
membank("bank2")->set_base(ram + 0xc000);
membank("bank3")->set_base(ram + 0xe000);
membank("bank4")->set_base(ram + 0xe700);
- membank("bank5")->set_base(memregion("maincpu")->base() + 0xf000);
+ membank("bank5")->set_base(memregion("maincpu")->base());
membank("bank6")->set_base(ram + 0xf000);
m_maincpu->reset();
}
-void pyl601_state::video_start()
+void pyl601_state::machine_start()
{
+ save_item(NAME(m_rom_page));
+ save_item(NAME(m_vdisk_addr));
+ save_item(NAME(m_key_code));
+ save_item(NAME(m_keyboard_clk));
+ save_item(NAME(m_video_mode));
+ save_item(NAME(m_tick50_mark));
+ save_item(NAME(m_floppy_ctrl));
}
MC6845_UPDATE_ROW( pyl601_state::pyl601_update_row )
@@ -548,7 +555,7 @@ void pyl601_state::pyl601(machine_config &config)
{
/* basic machine hardware */
M6800(config, m_maincpu, 1_MHz_XTAL);
- m_maincpu->set_addrmap(AS_PROGRAM, &pyl601_state::pyl601_mem);
+ m_maincpu->set_addrmap(AS_PROGRAM, &pyl601_state::mem_map);
m_maincpu->set_vblank_int("screen", FUNC(pyl601_state::pyl601_interrupt));
/* video hardware */
@@ -594,42 +601,42 @@ void pyl601_state::pyl601a(machine_config &config)
/* ROM definition */
ROM_START( pyl601 )
- ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
- ROM_LOAD( "bios.rom", 0xf000, 0x1000, CRC(41fe4c4b) SHA1(d8ca92aea0eb283e8d7779cb976bcdfa03e81aea))
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "bios.rom", 0x0000, 0x1000, CRC(41fe4c4b) SHA1(d8ca92aea0eb283e8d7779cb976bcdfa03e81aea))
ROM_REGION(0x0800, "chargen", 0)
ROM_LOAD( "video.rom", 0x0000, 0x0800, CRC(1c23ba43) SHA1(eb1cfc139858abd0aedbbf3d523f8ba55d27a11d))
- ROM_REGION(0x50000, "romdisk", ROMREGION_ERASEFF)
+ ROM_REGION(0x50000, "romdisk", 0 )
ROM_LOAD( "rom0.rom", 0x00000, 0x10000, CRC(60103920) SHA1(ee5b4ee5b513c4a0204da751e53d63b8c6c0aab9))
ROM_LOAD( "rom1.rom", 0x10000, 0x10000, CRC(cb4a9b22) SHA1(dd09e4ba35b8d1a6f60e6e262aaf2f156367e385))
ROM_LOAD( "rom2.rom", 0x20000, 0x08000, CRC(0b7684bf) SHA1(c02ad1f2a6f484cd9d178d8b060c21c0d4e53442))
- ROM_COPY("romdisk", 0x20000, 0x28000, 0x08000)
+ ROM_COPY( "romdisk", 0x20000, 0x28000, 0x08000)
ROM_LOAD( "rom3.rom", 0x30000, 0x08000, CRC(e4a86dfa) SHA1(96e6bb9ffd66f81fca63bf7491fbba81c4ff1fd2))
- ROM_COPY("romdisk", 0x30000, 0x38000, 0x08000)
+ ROM_COPY( "romdisk", 0x30000, 0x38000, 0x08000)
ROM_LOAD( "rom4.rom", 0x40000, 0x08000, CRC(d88ac21d) SHA1(022db11fdcf8db81ce9efd9cd9fa50ebca88e79e))
- ROM_COPY("romdisk", 0x40000, 0x48000, 0x08000)
+ ROM_COPY( "romdisk", 0x40000, 0x48000, 0x08000)
ROM_REGION(0x0800, "keyboard", 0)
ROM_LOAD( "keyboard.rom", 0x0000, 0x0800, CRC(41fbe5ca) SHA1(875adaef53bc37e92ad0b6b6ee3d8fd28344d358))
ROM_END
ROM_START( pyl601a )
- ROM_REGION( 0x10000, "maincpu", ROMREGION_ERASEFF )
- ROM_LOAD( "bios_a.rom", 0xf000, 0x1000, CRC(e018b11e) SHA1(884d59abd5fa5af1295d1b5a53693facc7945b63))
+ ROM_REGION( 0x1000, "maincpu", 0 )
+ ROM_LOAD( "bios_a.rom", 0x0000, 0x1000, CRC(e018b11e) SHA1(884d59abd5fa5af1295d1b5a53693facc7945b63))
ROM_REGION(0x1000, "chargen", 0)
ROM_LOAD( "video_a.rom", 0x0000,0x1000, CRC(00fa4077) SHA1(d39d15969a08bdb768d08bea4ec9a9cb498232fd))
- ROM_REGION(0x50000, "romdisk", ROMREGION_ERASEFF)
+ ROM_REGION(0x50000, "romdisk", 0 )
ROM_LOAD( "rom0.rom", 0x00000, 0x10000, CRC(60103920) SHA1(ee5b4ee5b513c4a0204da751e53d63b8c6c0aab9))
ROM_LOAD( "rom1.rom", 0x10000, 0x10000, CRC(cb4a9b22) SHA1(dd09e4ba35b8d1a6f60e6e262aaf2f156367e385))
ROM_LOAD( "rom2.rom", 0x20000, 0x08000, CRC(0b7684bf) SHA1(c02ad1f2a6f484cd9d178d8b060c21c0d4e53442))
- ROM_COPY("romdisk", 0x20000, 0x28000, 0x08000)
+ ROM_COPY( "romdisk", 0x20000, 0x28000, 0x08000)
ROM_LOAD( "rom3.rom", 0x30000, 0x08000, CRC(e4a86dfa) SHA1(96e6bb9ffd66f81fca63bf7491fbba81c4ff1fd2))
- ROM_COPY("romdisk", 0x30000, 0x38000, 0x08000)
+ ROM_COPY( "romdisk", 0x30000, 0x38000, 0x08000)
ROM_LOAD( "rom4.rom", 0x40000, 0x08000, CRC(d88ac21d) SHA1(022db11fdcf8db81ce9efd9cd9fa50ebca88e79e))
- ROM_COPY("romdisk", 0x40000, 0x48000, 0x08000)
+ ROM_COPY( "romdisk", 0x40000, 0x48000, 0x08000)
ROM_REGION(0x0800, "keyboard", 0)
ROM_LOAD( "keyboard.rom", 0x0000, 0x0800, CRC(41fbe5ca) SHA1(875adaef53bc37e92ad0b6b6ee3d8fd28344d358))
@@ -637,5 +644,5 @@ ROM_END
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
-COMP( 1989, pyl601, 0, 0, pyl601, pyl601, pyl601_state, init_pyl601, "Mikroelektronika", "Pyldin-601", 0 )
-COMP( 1989, pyl601a, pyl601, 0, pyl601a, pyl601, pyl601_state, init_pyl601, "Mikroelektronika", "Pyldin-601A", 0 )
+COMP( 1989, pyl601, 0, 0, pyl601, pyl601, pyl601_state, init_pyl601, "Mikroelektronika", "Pyldin-601", MACHINE_SUPPORTS_SAVE )
+COMP( 1989, pyl601a, pyl601, 0, pyl601a, pyl601, pyl601_state, init_pyl601, "Mikroelektronika", "Pyldin-601A", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/rainbow.cpp b/src/mame/drivers/rainbow.cpp
index a390aa4999b..a0c7f3e1359 100644
--- a/src/mame/drivers/rainbow.cpp
+++ b/src/mame/drivers/rainbow.cpp
@@ -589,8 +589,8 @@ protected:
DECLARE_FLOPPY_FORMATS(floppy_formats);
UPD7220_DISPLAY_PIXELS_MEMBER( hgdc_display_pixels );
- DECLARE_READ16_MEMBER(vram_r);
- DECLARE_WRITE16_MEMBER(vram_w);
+ uint16_t vram_r(offs_t offset);
+ void vram_w(offs_t offset, uint16_t data);
DECLARE_WRITE_LINE_MEMBER(GDC_vblank_irq);
void rainbowz80_io(address_map &map);
@@ -2839,7 +2839,7 @@ WRITE_LINE_MEMBER(rainbow_modelb_state::irq_hi_w)
// NOTE: "More than one plane at a time can be enabled for a write operation; however,
// only one plane can be enabled for a read operation at anyone time."
-READ16_MEMBER(rainbow_base_state::vram_r)
+uint16_t rainbow_base_state::vram_r(offs_t offset)
{
if ((!(m_gdc_mode_register & GDC_MODE_VECTOR)) || machine().side_effects_disabled()) // (NOT VECTOR MODE)
{
@@ -2860,7 +2860,7 @@ READ16_MEMBER(rainbow_base_state::vram_r)
}
// NOTE: Rainbow has separate registers for fore and background.
-WRITE16_MEMBER(rainbow_base_state::vram_w)
+void rainbow_base_state::vram_w(offs_t offset, uint16_t data)
{
if (m_gdc_mode_register & GDC_MODE_HIGHRES)
offset = (m_gdc_scroll_buffer[(offset & 0x3FC0) >> 6] << 6) | (offset & 0x3F);
diff --git a/src/mame/drivers/ravens.cpp b/src/mame/drivers/ravens.cpp
index 61cc38b911f..91f123cefbf 100644
--- a/src/mame/drivers/ravens.cpp
+++ b/src/mame/drivers/ravens.cpp
@@ -14,7 +14,7 @@ https://web.archive.org/web/20160321001634/http://petersieg.bplaced.com/?2650_Co
No instructions, no schematics - it's all guesswork.
-The cassette saves a noise but it returns a bad load.
+The cassette saves a noise but it returns a bad load. This is why MNW is set.
Version 0.9
@@ -57,12 +57,12 @@ Commands (must be in uppercase):
A Examine memory; press C to alter memory
B Set breakpoint?
C View breakpoint?
-D Dump to screen and tape (at the same time)
+D Dump to screen and tape (at the same time) D 00 04 dumps pages 0 to 4
E Execute
-I ?
+I Registers? (Esc to quit)
L Load
-R ?
-V Verify?
+R ? (Esc to quit)
+V Verify
ToDo:
- Cassette
@@ -80,62 +80,82 @@ ToDo:
#include "ravens.lh"
-class ravens_state : public driver_device
+class ravens_base : public driver_device
{
public:
- ravens_state(const machine_config &mconfig, device_type type, const char *tag)
+ ravens_base(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
, m_maincpu(*this, "maincpu")
- , m_terminal(*this, "terminal")
, m_cass(*this, "cassette")
- , m_digits(*this, "digit%u", 0U)
{ }
- void ravens(machine_config &config);
- void ravens2(machine_config &config);
-
-private:
- uint8_t port07_r();
- uint8_t port17_r();
- void port1b_w(uint8_t data);
- void port1c_w(uint8_t data);
- void display_w(offs_t offset, uint8_t data);
- void leds_w(uint8_t data);
- void kbd_put(u8 data);
- DECLARE_MACHINE_RESET(ravens2);
+protected:
DECLARE_READ_LINE_MEMBER(cass_r);
DECLARE_WRITE_LINE_MEMBER(cass_w);
DECLARE_QUICKLOAD_LOAD_MEMBER(quickload_cb);
+ void mem_map(address_map &map);
+ required_device<s2650_device> m_maincpu;
+ required_device<cassette_image_device> m_cass;
+};
+
+class ravens_state : public ravens_base
+{
+public:
+ ravens_state(const machine_config &mconfig, device_type type, const char *tag)
+ : ravens_base(mconfig, type, tag)
+ , m_digits(*this, "digit%u", 0U)
+ { }
- void ravens2_io(address_map &map);
- void ravens_io(address_map &map);
- void ravens_mem(address_map &map);
+ void ravens(machine_config &config);
- uint8_t m_term_char;
- uint8_t m_term_data;
+private:
virtual void machine_start() override { m_digits.resolve(); }
- required_device<s2650_device> m_maincpu;
- optional_device<generic_terminal_device> m_terminal;
- required_device<cassette_image_device> m_cass;
+ void io_map(address_map &map);
+ u8 port17_r();
+ void display_w(offs_t offset, u8 data);
+ void leds_w(u8 data);
output_finder<7> m_digits;
};
-WRITE_LINE_MEMBER( ravens_state::cass_w )
+class ravens2_state : public ravens_base
+{
+public:
+ ravens2_state(const machine_config &mconfig, device_type type, const char *tag)
+ : ravens_base(mconfig, type, tag)
+ , m_terminal(*this, "terminal")
+ { }
+
+ void ravens2(machine_config &config);
+
+private:
+ virtual void machine_reset() override;
+ virtual void machine_start() override;
+ void io_map(address_map &map);
+ void kbd_put(u8 data);
+ u8 port07_r();
+ void port1b_w(u8 data);
+ void port1c_w(u8 data);
+ u8 m_term_out;
+ u8 m_term_in;
+ required_device<generic_terminal_device> m_terminal;
+};
+
+WRITE_LINE_MEMBER( ravens_base::cass_w )
{
m_cass->output(state ? -1.0 : +1.0);
}
-READ_LINE_MEMBER( ravens_state::cass_r )
+READ_LINE_MEMBER( ravens_base::cass_r )
{
return (m_cass->input() > 0.03) ? 1 : 0;
}
-void ravens_state::display_w(offs_t offset, uint8_t data)
+void ravens_state::display_w(offs_t offset, u8 data)
{
m_digits[offset] = data;
}
-void ravens_state::leds_w(uint8_t data)
+void ravens_state::leds_w(u8 data)
{
char ledname[8];
for (int i = 0; i < 8; i++)
@@ -145,16 +165,16 @@ void ravens_state::leds_w(uint8_t data)
}
}
-uint8_t ravens_state::port07_r()
+u8 ravens2_state::port07_r()
{
- uint8_t ret = m_term_data;
- m_term_data = 0x80;
+ u8 ret = m_term_in;
+ m_term_in = 0x80;
return ret;
}
-uint8_t ravens_state::port17_r()
+u8 ravens_state::port17_r()
{
- uint8_t keyin, i;
+ u8 keyin, i;
keyin = ioport("X0")->read();
if (keyin != 0xff)
@@ -179,38 +199,44 @@ uint8_t ravens_state::port17_r()
return 0;
}
-void ravens_state::port1b_w(uint8_t data)
+void ravens2_state::port1b_w(u8 data)
{
if (BIT(data, 7))
return;
+ if (data == 1) // don't send PSU register to terminal
+ return;
else
- if ((data == 0x08 && m_term_char == 0x20))
+ if ((data == 0x08 && m_term_out == 0x20))
data = 0x0c; // FormFeed
else
- if ((data == 0x0a && m_term_char == 0x20))
+ if ((data == 0x0a && m_term_out == 0x20))
data = 0x0a; // LineFeed
else
- if ((data == 0x01 && m_term_char == 0xc2))
+ if ((data == 0x01 && m_term_out == 0xc2))
data = 0x0d; // CarriageReturn
else
- data = m_term_char;
+ data = m_term_out;
m_terminal->write(data);
}
-void ravens_state::port1c_w(uint8_t data)
+void ravens2_state::port1c_w(u8 data)
{
- m_term_char = data;
+ m_term_out = data;
}
-MACHINE_RESET_MEMBER( ravens_state, ravens2 )
+void ravens2_state::machine_reset()
{
- m_term_data = 0x80;
- m_digits[6] = 0;
+ m_term_in = 0x80;
}
+void ravens2_state::machine_start()
+{
+ save_item(NAME(m_term_out));
+ save_item(NAME(m_term_in));
+}
-void ravens_state::ravens_mem(address_map &map)
+void ravens_base::mem_map(address_map &map)
{
map.unmap_value_high();
map(0x0000, 0x07ff).rom();
@@ -218,7 +244,7 @@ void ravens_state::ravens_mem(address_map &map)
map(0x2000, 0x7FFF).ram(); // for quickload, optional
}
-void ravens_state::ravens_io(address_map &map)
+void ravens_state::io_map(address_map &map)
{
map.unmap_value_high();
map(0x09, 0x09).w(FUNC(ravens_state::leds_w)); // LED output port
@@ -226,12 +252,12 @@ void ravens_state::ravens_io(address_map &map)
map(0x17, 0x17).r(FUNC(ravens_state::port17_r)); // pushbuttons
}
-void ravens_state::ravens2_io(address_map &map)
+void ravens2_state::io_map(address_map &map)
{
map.unmap_value_high();
- map(0x07, 0x07).r(FUNC(ravens_state::port07_r));
- map(0x1b, 0x1b).w(FUNC(ravens_state::port1b_w));
- map(0x1c, 0x1c).w(FUNC(ravens_state::port1c_w));
+ map(0x07, 0x07).r(FUNC(ravens2_state::port07_r));
+ map(0x1b, 0x1b).w(FUNC(ravens2_state::port1b_w));
+ map(0x1c, 0x1c).w(FUNC(ravens2_state::port1c_w));
}
/* Input ports */
@@ -267,20 +293,20 @@ static INPUT_PORTS_START( ravens )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("???") PORT_CODE(KEYCODE_O) PORT_CHAR('O')
INPUT_PORTS_END
-void ravens_state::kbd_put(u8 data)
+void ravens2_state::kbd_put(u8 data)
{
if (data > 0x60) data -= 0x20; // fold to uppercase
- m_term_data = data;
+ m_term_in = data;
}
-QUICKLOAD_LOAD_MEMBER(ravens_state::quickload_cb)
+QUICKLOAD_LOAD_MEMBER(ravens_base::quickload_cb)
{
address_space &space = m_maincpu->space(AS_PROGRAM);
int i;
int quick_addr = 0x900;
int exec_addr;
int quick_length;
- std::vector<uint8_t> quick_data;
+ std::vector<u8> quick_data;
int read_;
image_init_result result = image_init_result::FAIL;
@@ -341,8 +367,8 @@ void ravens_state::ravens(machine_config &config)
{
/* basic machine hardware */
S2650(config, m_maincpu, XTAL(1'000'000)); // frequency is unknown
- m_maincpu->set_addrmap(AS_PROGRAM, &ravens_state::ravens_mem);
- m_maincpu->set_addrmap(AS_IO, &ravens_state::ravens_io);
+ m_maincpu->set_addrmap(AS_PROGRAM, &ravens_state::mem_map);
+ m_maincpu->set_addrmap(AS_IO, &ravens_state::io_map);
m_maincpu->sense_handler().set(FUNC(ravens_state::cass_r));
m_maincpu->flag_handler().set(FUNC(ravens_state::cass_w));
@@ -359,23 +385,21 @@ void ravens_state::ravens(machine_config &config)
m_cass->add_route(ALL_OUTPUTS, "mono", 0.05);
}
-void ravens_state::ravens2(machine_config &config)
+void ravens2_state::ravens2(machine_config &config)
{
/* basic machine hardware */
S2650(config, m_maincpu, XTAL(1'000'000)); // frequency is unknown
- m_maincpu->set_addrmap(AS_PROGRAM, &ravens_state::ravens_mem);
- m_maincpu->set_addrmap(AS_IO, &ravens_state::ravens2_io);
- m_maincpu->sense_handler().set(FUNC(ravens_state::cass_r));
- m_maincpu->flag_handler().set(FUNC(ravens_state::cass_w));
-
- MCFG_MACHINE_RESET_OVERRIDE(ravens_state, ravens2)
+ m_maincpu->set_addrmap(AS_PROGRAM, &ravens2_state::mem_map);
+ m_maincpu->set_addrmap(AS_IO, &ravens2_state::io_map);
+ m_maincpu->sense_handler().set(FUNC(ravens2_state::cass_r));
+ m_maincpu->flag_handler().set(FUNC(ravens2_state::cass_w));
/* video hardware */
GENERIC_TERMINAL(config, m_terminal, 0);
- m_terminal->set_keyboard_callback(FUNC(ravens_state::kbd_put));
+ m_terminal->set_keyboard_callback(FUNC(ravens2_state::kbd_put));
/* quickload */
- QUICKLOAD(config, "quickload", "pgm", attotime::from_seconds(1)).set_load_callback(FUNC(ravens_state::quickload_cb));
+ QUICKLOAD(config, "quickload", "pgm", attotime::from_seconds(1)).set_load_callback(FUNC(ravens2_state::quickload_cb));
SPEAKER(config, "mono").front_center();
@@ -386,7 +410,7 @@ void ravens_state::ravens2(machine_config &config)
/* ROM definition */
ROM_START( ravens )
- ROM_REGION( 0x8000, "maincpu", 0 )
+ ROM_REGION( 0x0800, "maincpu", 0 )
ROM_SYSTEM_BIOS( 0, "v1.0", "V1.0" )
ROMX_LOAD( "mon_v1.0.bin", 0x0000, 0x0800, CRC(785eb1ad) SHA1(c316b8ac32ab6aa37746af37b9f81a23367fedd8), ROM_BIOS(0))
ROM_SYSTEM_BIOS( 1, "v0.9", "V0.9" )
@@ -394,12 +418,12 @@ ROM_START( ravens )
ROM_END
ROM_START( ravens2 )
- ROM_REGION( 0x8000, "maincpu", 0 )
+ ROM_REGION( 0x0800, "maincpu", 0 )
ROM_LOAD( "mon_v2.0.bin", 0x0000, 0x0800, CRC(bcd47c58) SHA1(f261a3f128fbedbf59a8b5480758fff4d7f76de1))
ROM_END
/* Driver */
-/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
-COMP( 1984, ravens, 0, 0, ravens, ravens, ravens_state, empty_init, "Joseph Glagla and Dieter Feiler", "Ravensburger Selbstbaucomputer V0.9", MACHINE_NO_SOUND_HW )
-COMP( 1985, ravens2, ravens, 0, ravens2, ravens, ravens_state, empty_init, "Joseph Glagla and Dieter Feiler", "Ravensburger Selbstbaucomputer V2.0", MACHINE_NO_SOUND_HW )
+/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
+COMP( 1984, ravens, 0, 0, ravens, ravens, ravens_state, empty_init, "Joseph Glagla and Dieter Feiler", "Ravensburger Selbstbaucomputer V0.9", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE )
+COMP( 1985, ravens2, ravens, 0, ravens2, ravens, ravens2_state, empty_init, "Joseph Glagla and Dieter Feiler", "Ravensburger Selbstbaucomputer V2.0", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/rx78.cpp b/src/mame/drivers/rx78.cpp
index 31a9d673a29..708b108a555 100644
--- a/src/mame/drivers/rx78.cpp
+++ b/src/mame/drivers/rx78.cpp
@@ -88,29 +88,31 @@ public:
void rx78(machine_config &config);
private:
- uint8_t key_r();
- uint8_t cass_r();
- uint8_t vram_r(offs_t offset);
- void cass_w(uint8_t data);
- void vram_w(offs_t offset, uint8_t data);
- void vram_read_bank_w(uint8_t data);
- void vram_write_bank_w(uint8_t data);
- void key_w(uint8_t data);
- void vdp_reg_w(offs_t offset, uint8_t data);
- void vdp_bg_reg_w(uint8_t data);
- void vdp_pri_mask_w(uint8_t data);
+ u8 key_r();
+ u8 cass_r();
+ u8 vram_r(offs_t offset);
+ void cass_w(u8 data);
+ void vram_w(offs_t offset, u8 data);
+ void vram_read_bank_w(u8 data);
+ void vram_write_bank_w(u8 data);
+ void key_w(u8 data);
+ void vdp_reg_w(offs_t offset, u8 data);
+ void vdp_bg_reg_w(u8 data);
+ void vdp_pri_mask_w(u8 data);
DECLARE_DEVICE_IMAGE_LOAD_MEMBER( cart_load );
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
virtual void machine_reset() override;
+ virtual void machine_start() override;
void rx78_io(address_map &map);
void rx78_mem(address_map &map);
- uint8_t m_vram_read_bank;
- uint8_t m_vram_write_bank;
- uint8_t m_pal_reg[7];
- uint8_t m_pri_mask;
- uint8_t m_key_mux;
+ u8 m_vram_read_bank;
+ u8 m_vram_write_bank;
+ u8 m_pal_reg[7];
+ u8 m_pri_mask;
+ u8 m_key_mux;
+ std::unique_ptr<u8[]> m_vram;
required_device<cpu_device> m_maincpu;
required_device<cassette_image_device> m_cass;
required_device<generic_slot_device> m_cart;
@@ -122,12 +124,12 @@ private:
#define MASTER_CLOCK XTAL(28'636'363)
-void rx78_state::cass_w(uint8_t data)
+void rx78_state::cass_w(u8 data)
{
m_cass->output(BIT(data, 0) ? -1.0 : +1.0);
}
-uint8_t rx78_state::cass_r()
+u8 rx78_state::cass_r()
{
return (m_cass->input() > 0.03);
}
@@ -135,7 +137,6 @@ uint8_t rx78_state::cass_r()
uint32_t rx78_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- uint8_t *vram = memregion("vram")->base();
int color,pen[3];
const int borderx = 32, bordery = 20;
@@ -150,9 +151,9 @@ uint32_t rx78_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap,
for (u8 i = 0; i < 8; i++)
{
/* bg color */
- pen[0] = (m_pri_mask & 0x08) ? (vram[count + 0x6000] >> (i)) : 0x00;
- pen[1] = (m_pri_mask & 0x10) ? (vram[count + 0x8000] >> (i)) : 0x00;
- pen[2] = (m_pri_mask & 0x20) ? (vram[count + 0xa000] >> (i)) : 0x00;
+ pen[0] = (m_pri_mask & 0x08) ? (m_vram[count + 0x6000] >> (i)) : 0x00;
+ pen[1] = (m_pri_mask & 0x10) ? (m_vram[count + 0x8000] >> (i)) : 0x00;
+ pen[2] = (m_pri_mask & 0x20) ? (m_vram[count + 0xa000] >> (i)) : 0x00;
color = ((pen[0] & 1) << 0);
color |= ((pen[1] & 1) << 1);
@@ -162,9 +163,9 @@ uint32_t rx78_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap,
bitmap.pix16(y+bordery, x+i+borderx) = color | 8;
/* fg color */
- pen[0] = (m_pri_mask & 0x01) ? (vram[count + 0x0000] >> (i)) : 0x00;
- pen[1] = (m_pri_mask & 0x02) ? (vram[count + 0x2000] >> (i)) : 0x00;
- pen[2] = (m_pri_mask & 0x04) ? (vram[count + 0x4000] >> (i)) : 0x00;
+ pen[0] = (m_pri_mask & 0x01) ? (m_vram[count + 0x0000] >> (i)) : 0x00;
+ pen[1] = (m_pri_mask & 0x02) ? (m_vram[count + 0x2000] >> (i)) : 0x00;
+ pen[2] = (m_pri_mask & 0x04) ? (m_vram[count + 0x4000] >> (i)) : 0x00;
color = ((pen[0] & 1) << 0);
color |= ((pen[1] & 1) << 1);
@@ -181,7 +182,7 @@ uint32_t rx78_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap,
}
-uint8_t rx78_state::key_r()
+u8 rx78_state::key_r()
{
static const char *const keynames[] = { "KEY0", "KEY1", "KEY2", "KEY3",
"KEY4", "KEY5", "KEY6", "KEY7",
@@ -203,43 +204,39 @@ uint8_t rx78_state::key_r()
return 0;
}
-void rx78_state::key_w(uint8_t data)
+void rx78_state::key_w(u8 data)
{
m_key_mux = data;
}
-uint8_t rx78_state::vram_r(offs_t offset)
+u8 rx78_state::vram_r(offs_t offset)
{
- uint8_t *vram = memregion("vram")->base();
-
if(m_vram_read_bank == 0 || m_vram_read_bank > 6)
return 0xff;
- return vram[offset + ((m_vram_read_bank - 1) * 0x2000)];
+ return m_vram[offset + ((m_vram_read_bank - 1) * 0x2000)];
}
-void rx78_state::vram_w(offs_t offset, uint8_t data)
+void rx78_state::vram_w(offs_t offset, u8 data)
{
- uint8_t *vram = memregion("vram")->base();
-
for (u8 i = 0; i < 6; i++)
if (BIT(m_vram_write_bank, i))
- vram[offset + i * 0x2000] = data;
+ m_vram[offset + i * 0x2000] = data;
}
-void rx78_state::vram_read_bank_w(uint8_t data)
+void rx78_state::vram_read_bank_w(u8 data)
{
m_vram_read_bank = data;
}
-void rx78_state::vram_write_bank_w(uint8_t data)
+void rx78_state::vram_write_bank_w(u8 data)
{
m_vram_write_bank = data;
}
-void rx78_state::vdp_reg_w(offs_t offset, uint8_t data)
+void rx78_state::vdp_reg_w(offs_t offset, u8 data)
{
- uint8_t r,g,b,res,i;
+ u8 r,g,b,res,i;
m_pal_reg[offset] = data;
@@ -257,7 +254,7 @@ void rx78_state::vdp_reg_w(offs_t offset, uint8_t data)
}
}
-void rx78_state::vdp_bg_reg_w(uint8_t data)
+void rx78_state::vdp_bg_reg_w(u8 data)
{
int r,g,b;
@@ -268,7 +265,7 @@ void rx78_state::vdp_bg_reg_w(uint8_t data)
m_palette->set_pen_color(0x10, rgb_t(r,g,b));
}
-void rx78_state::vdp_pri_mask_w(uint8_t data)
+void rx78_state::vdp_pri_mask_w(u8 data)
{
m_pri_mask = data;
}
@@ -434,9 +431,20 @@ void rx78_state::machine_reset()
prg.install_read_handler(0x2000, 0x5fff, read8sm_delegate(*m_cart, FUNC(generic_slot_device::read_rom)));
}
+void rx78_state::machine_start()
+{
+ m_vram = make_unique_clear<u8[]>(0xc000);
+ save_pointer(NAME(m_vram), 0xc000);
+ save_item(NAME(m_vram_read_bank));
+ save_item(NAME(m_vram_write_bank));
+ save_pointer(NAME(m_pal_reg), 7);
+ save_item(NAME(m_pri_mask));
+ save_item(NAME(m_key_mux));
+}
+
DEVICE_IMAGE_LOAD_MEMBER( rx78_state::cart_load )
{
- uint32_t size = m_cart->common_get_size("rom");
+ u32 size = m_cart->common_get_size("rom");
if (size != 0x2000 && size != 0x4000)
{
@@ -509,13 +517,11 @@ void rx78_state::rx78(machine_config &config)
ROM_START( rx78 )
ROM_REGION( 0x2000, "roms", 0 )
ROM_LOAD( "ipl.rom", 0x0000, 0x2000, CRC(a194ea53) SHA1(ba39e73e6eb7cbb8906fff1f81a98964cd62af0d))
-
- ROM_REGION( 6 * 0x2000, "vram", ROMREGION_ERASE00 )
ROM_END
void rx78_state::init_rx78()
{
- uint32_t ram_size = m_ram->size();
+ u32 ram_size = m_ram->size();
address_space &prg = m_maincpu->space(AS_PROGRAM);
if (ram_size == 0x4000)
@@ -525,4 +531,4 @@ void rx78_state::init_rx78()
/* Driver */
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */
-COMP( 1983, rx78, 0, 0, rx78, rx78, rx78_state, init_rx78, "Bandai", "Gundam RX-78", MACHINE_NOT_WORKING )
+COMP( 1983, rx78, 0, 0, rx78, rx78, rx78_state, init_rx78, "Bandai", "Gundam RX-78", MACHINE_NOT_WORKING | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/sacstate.cpp b/src/mame/drivers/sacstate.cpp
index 18b2b57a634..753d4b6e2cf 100644
--- a/src/mame/drivers/sacstate.cpp
+++ b/src/mame/drivers/sacstate.cpp
@@ -51,43 +51,44 @@ public:
void sacstate(machine_config &config);
private:
- uint8_t port00_r();
- uint8_t port01_r();
- uint8_t port04_r();
- void port08_w(uint8_t data);
+ virtual void machine_start() override;
+ virtual void machine_reset() override;
+ u8 port00_r();
+ u8 port01_r();
+ u8 port04_r();
+ void port08_w(u8 data);
void kbd_put(u8 data);
void sacstate_io(address_map &map);
void sacstate_mem(address_map &map);
- uint8_t m_term_data;
- uint8_t m_val;
- virtual void machine_reset() override;
+ u8 m_term_data;
+ u8 m_val;
required_device<cpu_device> m_maincpu;
required_device<generic_terminal_device> m_terminal;
};
-uint8_t sacstate_state::port01_r()
+u8 sacstate_state::port01_r()
{
- uint8_t ret = m_val;
+ u8 ret = m_val;
if (m_term_data)
ret |= 0x04; // data in
return ret;
}
-uint8_t sacstate_state::port00_r()
+u8 sacstate_state::port00_r()
{
- uint8_t ret = m_term_data;
+ u8 ret = m_term_data;
m_term_data = 0;
return ret;
}
-uint8_t sacstate_state::port04_r()
+u8 sacstate_state::port04_r()
{
logerror("unknown_r\n");
return 0;
}
-void sacstate_state::port08_w(uint8_t data)
+void sacstate_state::port08_w(u8 data)
{
if (data == 0x40)
m_val = 0x40;
@@ -133,6 +134,12 @@ void sacstate_state::machine_reset()
m_val = ioport("CONFIG")->read();
}
+void sacstate_state::machine_start()
+{
+ save_item(NAME(m_term_data));
+ save_item(NAME(m_val));
+}
+
void sacstate_state::sacstate(machine_config &config)
{
/* basic machine hardware */
@@ -161,4 +168,4 @@ ROM_END
/* Driver */
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
-COMP( 1973, sacstate, 0, 0, sacstate, sacstate, sacstate_state, empty_init, "SacState", "SacState 8008", MACHINE_NO_SOUND_HW )
+COMP( 1973, sacstate, 0, 0, sacstate, sacstate, sacstate_state, empty_init, "SacState", "SacState 8008", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/slc1.cpp b/src/mame/drivers/slc1.cpp
index b7aec26ed68..ea349baddfc 100644
--- a/src/mame/drivers/slc1.cpp
+++ b/src/mame/drivers/slc1.cpp
@@ -73,8 +73,8 @@ public:
void slc1(machine_config &config);
private:
- uint8_t io_r(offs_t offset);
- void io_w(offs_t offset, uint8_t data);
+ u8 io_r(offs_t offset);
+ void io_w(offs_t offset, u8 data);
virtual void machine_start() override;
virtual void machine_reset() override;
@@ -82,7 +82,7 @@ private:
void mem_map(address_map &map);
void io_map(address_map &map);
- uint8_t m_digit = 0;
+ u8 m_digit = 0;
bool m_kbd_type = false;
required_device<cpu_device> m_maincpu;
@@ -99,7 +99,7 @@ private:
***************************************************************************/
-void slc1_state::io_w(offs_t offset, uint8_t data)
+void slc1_state::io_w(offs_t offset, u8 data)
{
bool const segonoff = BIT(data, 7);
bool const busyled = BIT(data, 4);
@@ -115,9 +115,9 @@ void slc1_state::io_w(offs_t offset, uint8_t data)
else if (offset == 0x2f07)
return;
- uint8_t segdata = m_display[m_digit];
- uint8_t const segnum = offset & 7;
- uint8_t const segmask = 1 << segnum;
+ u8 segdata = m_display[m_digit];
+ u8 const segnum = offset & 7;
+ u8 const segmask = 1 << segnum;
if (segonoff)
segdata |= segmask;
@@ -139,9 +139,9 @@ void slc1_state::io_w(offs_t offset, uint8_t data)
***************************************************************************/
-uint8_t slc1_state::io_r(offs_t offset)
+u8 slc1_state::io_r(offs_t offset)
{
- uint8_t data = 0xff, upper = (offset >> 8) & 7;
+ u8 data = 0xff, upper = (offset >> 8) & 7;
if (m_kbd_type)
{ // Trainer
@@ -294,7 +294,7 @@ void slc1_state::slc1(machine_config &config)
***************************************************************************/
ROM_START(slc1)
- ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x1000, "maincpu", 0 )
ROM_SYSTEM_BIOS(0, "bios0", "SLC-1")
ROMX_LOAD("slc1_0000.bin", 0x0000, 0x1000, CRC(06d32967) SHA1(f25eac66a4fca9383964d509c671a7ad2e020e7e), ROM_BIOS(0))
ROM_SYSTEM_BIOS(1, "bios1", "SC-1 v2")
@@ -305,4 +305,4 @@ ROM_END
/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME */
-COMP( 1989, slc1, 0, 0, slc1, slc1, slc1_state, empty_init, "Dieter Scheuschner", "Schach- und Lerncomputer SLC 1", 0 )
+COMP( 1989, slc1, 0, 0, slc1, slc1, slc1_state, empty_init, "Dieter Scheuschner", "Schach- und Lerncomputer SLC 1", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/slicer.cpp b/src/mame/drivers/slicer.cpp
index d95430082c9..46feecb0cd0 100644
--- a/src/mame/drivers/slicer.cpp
+++ b/src/mame/drivers/slicer.cpp
@@ -100,7 +100,7 @@ static void slicer_floppies(device_slot_interface &device)
void slicer_state::slicer(machine_config &config)
{
- i80186_cpu_device &maincpu(I80186(config, "maincpu", 16_MHz_XTAL / 2));
+ i80186_cpu_device &maincpu(I80186(config, "maincpu", 16_MHz_XTAL)); // 8 MHz clock output
maincpu.set_addrmap(AS_PROGRAM, &slicer_state::slicer_map);
maincpu.set_addrmap(AS_IO, &slicer_state::slicer_io);
diff --git a/src/mame/drivers/snes.cpp b/src/mame/drivers/snes.cpp
index 851a73bc3e4..c079dcfbb61 100644
--- a/src/mame/drivers/snes.cpp
+++ b/src/mame/drivers/snes.cpp
@@ -53,42 +53,42 @@ public:
void snes(machine_config &config);
private:
- DECLARE_READ8_MEMBER( snes20_hi_r );
- DECLARE_WRITE8_MEMBER( snes20_hi_w );
- DECLARE_READ8_MEMBER( snes20_lo_r );
- DECLARE_WRITE8_MEMBER( snes20_lo_w );
- DECLARE_READ8_MEMBER( snes21_lo_r );
- DECLARE_WRITE8_MEMBER( snes21_lo_w );
- DECLARE_READ8_MEMBER( snes21_hi_r );
- DECLARE_WRITE8_MEMBER( snes21_hi_w );
- DECLARE_READ8_MEMBER( snessfx_hi_r );
- DECLARE_READ8_MEMBER( snessfx_lo_r );
- DECLARE_WRITE8_MEMBER( snessfx_hi_w );
- DECLARE_WRITE8_MEMBER( snessfx_lo_w );
- DECLARE_READ8_MEMBER( snessa1_hi_r );
- DECLARE_READ8_MEMBER( snessa1_lo_r );
- DECLARE_WRITE8_MEMBER( snessa1_hi_w );
- DECLARE_WRITE8_MEMBER( snessa1_lo_w );
- DECLARE_READ8_MEMBER( snes7110_hi_r );
- DECLARE_READ8_MEMBER( snes7110_lo_r );
- DECLARE_WRITE8_MEMBER( snes7110_hi_w );
- DECLARE_WRITE8_MEMBER( snes7110_lo_w );
- DECLARE_READ8_MEMBER( snessdd1_lo_r );
- DECLARE_WRITE8_MEMBER( snessdd1_lo_w );
- DECLARE_READ8_MEMBER( snessdd1_hi_r );
- DECLARE_WRITE8_MEMBER( snessdd1_hi_w );
- DECLARE_READ8_MEMBER( snesbsx_hi_r );
- DECLARE_WRITE8_MEMBER( snesbsx_hi_w );
- DECLARE_READ8_MEMBER( snesbsx_lo_r );
- DECLARE_WRITE8_MEMBER( snesbsx_lo_w );
- DECLARE_READ8_MEMBER( snessgb_hi_r );
- DECLARE_READ8_MEMBER( snessgb_lo_r );
- DECLARE_WRITE8_MEMBER( snessgb_hi_w );
- DECLARE_WRITE8_MEMBER( snessgb_lo_w );
- DECLARE_READ8_MEMBER( pfest94_hi_r );
- DECLARE_WRITE8_MEMBER( pfest94_hi_w );
- DECLARE_READ8_MEMBER( pfest94_lo_r );
- DECLARE_WRITE8_MEMBER( pfest94_lo_w );
+ uint8_t snes20_hi_r(address_space &space, offs_t offset);
+ void snes20_hi_w(address_space &space, offs_t offset, uint8_t data);
+ uint8_t snes20_lo_r(address_space &space, offs_t offset);
+ void snes20_lo_w(address_space &space, offs_t offset, uint8_t data);
+ uint8_t snes21_lo_r(address_space &space, offs_t offset);
+ void snes21_lo_w(address_space &space, offs_t offset, uint8_t data);
+ uint8_t snes21_hi_r(address_space &space, offs_t offset);
+ void snes21_hi_w(address_space &space, offs_t offset, uint8_t data);
+ uint8_t snessfx_hi_r(address_space &space, offs_t offset);
+ uint8_t snessfx_lo_r(address_space &space, offs_t offset);
+ void snessfx_hi_w(address_space &space, offs_t offset, uint8_t data);
+ void snessfx_lo_w(address_space &space, offs_t offset, uint8_t data);
+ uint8_t snessa1_hi_r(address_space &space, offs_t offset);
+ uint8_t snessa1_lo_r(address_space &space, offs_t offset);
+ void snessa1_hi_w(address_space &space, offs_t offset, uint8_t data);
+ void snessa1_lo_w(address_space &space, offs_t offset, uint8_t data);
+ uint8_t snes7110_hi_r(address_space &space, offs_t offset);
+ uint8_t snes7110_lo_r(address_space &space, offs_t offset);
+ void snes7110_hi_w(address_space &space, offs_t offset, uint8_t data);
+ void snes7110_lo_w(address_space &space, offs_t offset, uint8_t data);
+ uint8_t snessdd1_lo_r(address_space &space, offs_t offset);
+ void snessdd1_lo_w(address_space &space, offs_t offset, uint8_t data);
+ uint8_t snessdd1_hi_r(address_space &space, offs_t offset);
+ void snessdd1_hi_w(address_space &space, offs_t offset, uint8_t data);
+ uint8_t snesbsx_hi_r(address_space &space, offs_t offset);
+ void snesbsx_hi_w(address_space &space, offs_t offset, uint8_t data);
+ uint8_t snesbsx_lo_r(address_space &space, offs_t offset);
+ void snesbsx_lo_w(address_space &space, offs_t offset, uint8_t data);
+ uint8_t snessgb_hi_r(address_space &space, offs_t offset);
+ uint8_t snessgb_lo_r(address_space &space, offs_t offset);
+ void snessgb_hi_w(address_space &space, offs_t offset, uint8_t data);
+ void snessgb_lo_w(address_space &space, offs_t offset, uint8_t data);
+ uint8_t pfest94_hi_r(address_space &space, offs_t offset);
+ void pfest94_hi_w(address_space &space, offs_t offset, uint8_t data);
+ uint8_t pfest94_lo_r(address_space &space, offs_t offset);
+ void pfest94_lo_w(address_space &space, offs_t offset, uint8_t data);
// input related
SNESCTRL_ONSCREEN_CB(onscreen_cb);
@@ -130,7 +130,7 @@ private:
// Also we have here LoROM + CX4, until the Hitachi CPU is emulated,
// and the LoROM + Seta DSP, because their chip_read/chip_write need global offset
-READ8_MEMBER( snes_console_state::snes20_hi_r )
+uint8_t snes_console_state::snes20_hi_r(address_space &space, offs_t offset)
{
uint16_t address = offset & 0xffff;
@@ -150,7 +150,7 @@ READ8_MEMBER( snes_console_state::snes20_hi_r )
if (address < 0x2000)
return m_wram[address];
else if (address < 0x6000)
- return snes_r_io(space, address);
+ return snes_r_io(address);
else if (address < 0x8000)
return snes_open_bus_r();
else
@@ -187,7 +187,7 @@ READ8_MEMBER( snes_console_state::snes20_hi_r )
}
}
-WRITE8_MEMBER( snes_console_state::snes20_hi_w )
+void snes_console_state::snes20_hi_w(address_space &space, offs_t offset, uint8_t data)
{
uint16_t address = offset & 0xffff;
@@ -225,7 +225,7 @@ WRITE8_MEMBER( snes_console_state::snes20_hi_w )
}
}
-READ8_MEMBER( snes_console_state::snes20_lo_r )
+uint8_t snes_console_state::snes20_lo_r(address_space &space, offs_t offset)
{
uint16_t address = offset & 0xffff;
@@ -245,7 +245,7 @@ READ8_MEMBER( snes_console_state::snes20_lo_r )
if (address < 0x2000)
return m_wram[address];
else if (address < 0x6000)
- return snes_r_io(space, address);
+ return snes_r_io(address);
else if (address < 0x8000)
return snes_open_bus_r();
else
@@ -282,14 +282,14 @@ READ8_MEMBER( snes_console_state::snes20_lo_r )
}
}
-WRITE8_MEMBER( snes_console_state::snes20_lo_w )
+void snes_console_state::snes20_lo_w(address_space &space, offs_t offset, uint8_t data)
{
if (m_type == SNES_SUFAMITURBO
&& (offset & 0xffff) >= 0x8000 && ((offset >= 0x600000 && offset < 0x640000) || (offset >= 0x700000 && offset < 0x740000)))
{ m_cartslot->write_l(offset, data); return; }
// other add-on writes matches the hi handler
- snes20_hi_w(space, offset, data, 0xff);
+ snes20_hi_w(space, offset, data);
}
@@ -297,7 +297,7 @@ WRITE8_MEMBER( snes_console_state::snes20_lo_w )
// HiROM & HiROM + BSX slot
//---------------------------------------------------------------------------------
-READ8_MEMBER( snes_console_state::snes21_lo_r )
+uint8_t snes_console_state::snes21_lo_r(address_space &space, offs_t offset)
{
uint16_t address = offset & 0xffff;
@@ -306,7 +306,7 @@ READ8_MEMBER( snes_console_state::snes21_lo_r )
if (address < 0x2000)
return m_wram[address];
else if (address < 0x6000)
- return snes_r_io(space, address);
+ return snes_r_io(address);
else
{
if (m_type == SNES_BSXHI && m_cartslot->m_cart->get_nvram_size() && offset >= 0x200000)
@@ -331,7 +331,7 @@ READ8_MEMBER( snes_console_state::snes21_lo_r )
return m_cartslot->read_l(offset);
}
-WRITE8_MEMBER( snes_console_state::snes21_lo_w )
+void snes_console_state::snes21_lo_w(address_space &space, offs_t offset, uint8_t data)
{
uint16_t address = offset & 0xffff;
if (offset < 0x400000 && address < 0x8000)
@@ -359,7 +359,7 @@ WRITE8_MEMBER( snes_console_state::snes21_lo_w )
}
}
-READ8_MEMBER( snes_console_state::snes21_hi_r )
+uint8_t snes_console_state::snes21_hi_r(address_space &space, offs_t offset)
{
uint16_t address = offset & 0xffff;
@@ -368,7 +368,7 @@ READ8_MEMBER( snes_console_state::snes21_hi_r )
if (address < 0x2000)
return m_wram[address];
else if (address < 0x6000)
- return snes_r_io(space, address);
+ return snes_r_io(address);
else
{
if (m_type == SNES_BSXHI && m_cartslot->m_cart->get_nvram_size() && offset >= 0x200000)
@@ -393,7 +393,7 @@ READ8_MEMBER( snes_console_state::snes21_hi_r )
return m_cartslot->read_h(offset);
}
-WRITE8_MEMBER( snes_console_state::snes21_hi_w )
+void snes_console_state::snes21_hi_w(address_space &space, offs_t offset, uint8_t data)
{
uint16_t address = offset & 0xffff;
if (offset < 0x400000 && address < 0x8000)
@@ -425,7 +425,7 @@ WRITE8_MEMBER( snes_console_state::snes21_hi_w )
// LoROM + SuperFX / GSU
//---------------------------------------------------------------------------------
-READ8_MEMBER( snes_console_state::snessfx_hi_r )
+uint8_t snes_console_state::snessfx_hi_r(address_space &space, offs_t offset)
{
uint16_t address = offset & 0xffff;
@@ -438,7 +438,7 @@ READ8_MEMBER( snes_console_state::snessfx_hi_r )
if (address >= 0x3000 && address < 0x3300)
return m_cartslot->chip_read(offset);
else
- return snes_r_io(space, address);
+ return snes_r_io(address);
}
else if (address < 0x8000)
return m_cartslot->read_ram(offset & 0x1fff);
@@ -451,7 +451,7 @@ READ8_MEMBER( snes_console_state::snessfx_hi_r )
return m_cartslot->read_ram(offset);
}
-READ8_MEMBER( snes_console_state::snessfx_lo_r )
+uint8_t snes_console_state::snessfx_lo_r(address_space &space, offs_t offset)
{
uint16_t address = offset & 0xffff;
@@ -464,7 +464,7 @@ READ8_MEMBER( snes_console_state::snessfx_lo_r )
if (address >= 0x3000 && address < 0x3300)
return m_cartslot->chip_read(offset);
else
- return snes_r_io(space, address);
+ return snes_r_io(address);
}
else if (address < 0x8000)
return m_cartslot->read_ram(offset & 0x1fff);
@@ -477,7 +477,7 @@ READ8_MEMBER( snes_console_state::snessfx_lo_r )
return m_cartslot->read_ram(offset);
}
-WRITE8_MEMBER( snes_console_state::snessfx_hi_w )
+void snes_console_state::snessfx_hi_w(address_space &space, offs_t offset, uint8_t data)
{
uint16_t address = offset & 0xffff;
if (offset < 0x400000)
@@ -498,16 +498,16 @@ WRITE8_MEMBER( snes_console_state::snessfx_hi_w )
m_cartslot->write_ram(offset, data);
}
-WRITE8_MEMBER( snes_console_state::snessfx_lo_w )
+void snes_console_state::snessfx_lo_w(address_space &space, offs_t offset, uint8_t data)
{
- snessfx_hi_w(space, offset, data, 0xff);
+ snessfx_hi_w(space, offset, data);
}
//---------------------------------------------------------------------------------
// LoROM + SA-1
//---------------------------------------------------------------------------------
-READ8_MEMBER( snes_console_state::snessa1_hi_r )
+uint8_t snes_console_state::snessa1_hi_r(address_space &space, offs_t offset)
{
uint16_t address = offset & 0xffff;
@@ -522,7 +522,7 @@ READ8_MEMBER( snes_console_state::snessa1_hi_r )
else if (address >= 0x3000 && address < 0x3800)
return m_cartslot->chip_read(offset); // Internal SA-1 RAM (2K)
else
- return snes_r_io(space, address);
+ return snes_r_io(address);
}
else if (address < 0x8000)
return m_cartslot->chip_read(offset); // SA-1 BWRAM
@@ -533,7 +533,7 @@ READ8_MEMBER( snes_console_state::snessa1_hi_r )
return m_cartslot->read_h(offset);
}
-READ8_MEMBER( snes_console_state::snessa1_lo_r )
+uint8_t snes_console_state::snessa1_lo_r(address_space &space, offs_t offset)
{
uint16_t address = offset & 0xffff;
@@ -548,7 +548,7 @@ READ8_MEMBER( snes_console_state::snessa1_lo_r )
else if (address >= 0x3000 && address < 0x3800)
return m_cartslot->chip_read(offset); // Internal SA-1 RAM (2K)
else
- return snes_r_io(space, address);
+ return snes_r_io(address);
}
else if (address < 0x8000)
return m_cartslot->chip_read(offset); // SA-1 BWRAM
@@ -558,10 +558,10 @@ READ8_MEMBER( snes_console_state::snessa1_lo_r )
else if (offset < 0x500000)
return m_cartslot->chip_read(offset); // SA-1 BWRAM (not mirrored above!)
else
- return snes_r_io(space, address); // nothing mapped here!
+ return snes_r_io(address); // nothing mapped here!
}
-WRITE8_MEMBER( snes_console_state::snessa1_hi_w )
+void snes_console_state::snessa1_hi_w(address_space &space, offs_t offset, uint8_t data)
{
uint16_t address = offset & 0xffff;
if (offset < 0x400000)
@@ -582,19 +582,19 @@ WRITE8_MEMBER( snes_console_state::snessa1_hi_w )
}
}
-WRITE8_MEMBER( snes_console_state::snessa1_lo_w )
+void snes_console_state::snessa1_lo_w(address_space &space, offs_t offset, uint8_t data)
{
if (offset >= 0x400000 && offset < 0x500000)
m_cartslot->chip_write(offset, data); // SA-1 BWRAM (not mirrored above!)
else
- snessa1_hi_w(space, offset, data, 0xff);
+ snessa1_hi_w(space, offset, data);
}
//---------------------------------------------------------------------------------
// HiROM + SPC-7110
//---------------------------------------------------------------------------------
-READ8_MEMBER( snes_console_state::snes7110_hi_r )
+uint8_t snes_console_state::snes7110_hi_r(address_space &space, offs_t offset)
{
uint16_t address = offset & 0xffff;
@@ -608,7 +608,7 @@ READ8_MEMBER( snes_console_state::snes7110_hi_r )
if (address >= 0x4800 && address < limit)
return m_cartslot->chip_read(address);
- return snes_r_io(space, address);
+ return snes_r_io(address);
}
else if (address < 0x8000)
{
@@ -623,7 +623,7 @@ READ8_MEMBER( snes_console_state::snes7110_hi_r )
return m_cartslot->read_h(offset);
}
-READ8_MEMBER( snes_console_state::snes7110_lo_r )
+uint8_t snes_console_state::snes7110_lo_r(address_space &space, offs_t offset)
{
uint16_t address = offset & 0xffff;
@@ -637,7 +637,7 @@ READ8_MEMBER( snes_console_state::snes7110_lo_r )
if (address >= 0x4800 && address < limit)
return m_cartslot->chip_read(address);
- return snes_r_io(space, address);
+ return snes_r_io(address);
}
else if (address < 0x8000)
{
@@ -655,12 +655,12 @@ READ8_MEMBER( snes_console_state::snes7110_lo_r )
return snes_open_bus_r();
}
-WRITE8_MEMBER( snes_console_state::snes7110_hi_w )
+void snes_console_state::snes7110_hi_w(address_space &space, offs_t offset, uint8_t data)
{
- snes7110_lo_w(space, offset, data, 0xff);
+ snes7110_lo_w(space, offset, data);
}
-WRITE8_MEMBER( snes_console_state::snes7110_lo_w )
+void snes_console_state::snes7110_lo_w (address_space &space, offs_t offset, uint8_t data)
{
uint16_t address = offset & 0xffff;
if (offset < 0x400000)
@@ -692,7 +692,7 @@ WRITE8_MEMBER( snes_console_state::snes7110_lo_w )
// LoROM + S-DD1
//---------------------------------------------------------------------------------
-READ8_MEMBER( snes_console_state::snessdd1_lo_r )
+uint8_t snes_console_state::snessdd1_lo_r(address_space &space, offs_t offset)
{
uint16_t address = offset & 0xffff;
@@ -705,7 +705,7 @@ READ8_MEMBER( snes_console_state::snessdd1_lo_r )
if (address >= 0x4800 && address < 0x4808)
return m_cartslot->chip_read(address);
- return snes_r_io(space, address);
+ return snes_r_io(address);
}
else if (address < 0x8000)
return snes_open_bus_r();
@@ -718,20 +718,20 @@ READ8_MEMBER( snes_console_state::snessdd1_lo_r )
return m_cartslot->read_l(offset);
}
-READ8_MEMBER( snes_console_state::snessdd1_hi_r )
+uint8_t snes_console_state::snessdd1_hi_r(address_space &space, offs_t offset)
{
if (offset >= 0x400000)
return m_cartslot->read_h(offset);
else
- return snessdd1_lo_r(space, offset, 0xff);
+ return snessdd1_lo_r(space, offset);
}
-WRITE8_MEMBER( snes_console_state::snessdd1_lo_w )
+void snes_console_state::snessdd1_lo_w(address_space &space, offs_t offset, uint8_t data)
{
- snessdd1_hi_w(space, offset, data, 0xff);
+ snessdd1_hi_w(space, offset, data);
}
-WRITE8_MEMBER( snes_console_state::snessdd1_hi_w )
+void snes_console_state::snessdd1_hi_w(address_space &space, offs_t offset, uint8_t data)
{
uint16_t address = offset & 0xffff;
if (offset < 0x400000)
@@ -762,7 +762,7 @@ WRITE8_MEMBER( snes_console_state::snessdd1_hi_w )
// LoROM + BS-X (Base unit)
//---------------------------------------------------------------------------------
-READ8_MEMBER( snes_console_state::snesbsx_hi_r )
+uint8_t snes_console_state::snesbsx_hi_r(address_space &space, offs_t offset)
{
uint16_t address = offset & 0xffff;
@@ -776,7 +776,7 @@ READ8_MEMBER( snes_console_state::snesbsx_hi_r )
return m_cartslot->chip_read(offset);
if (address >= 0x5000)
return m_cartslot->chip_read(offset);
- return snes_r_io(space, address);
+ return snes_r_io(address);
}
else if (address < 0x8000)
{
@@ -791,7 +791,7 @@ READ8_MEMBER( snes_console_state::snesbsx_hi_r )
return m_cartslot->read_h(offset);
}
-WRITE8_MEMBER( snes_console_state::snesbsx_hi_w )
+void snes_console_state::snesbsx_hi_w(address_space &space, offs_t offset, uint8_t data)
{
uint16_t address = offset & 0xffff;
if (offset < 0x400000)
@@ -823,7 +823,7 @@ WRITE8_MEMBER( snes_console_state::snesbsx_hi_w )
return m_cartslot->write_l(offset, data);
}
-READ8_MEMBER( snes_console_state::snesbsx_lo_r )
+uint8_t snes_console_state::snesbsx_lo_r(address_space &space, offs_t offset)
{
uint16_t address = offset & 0xffff;
@@ -837,7 +837,7 @@ READ8_MEMBER( snes_console_state::snesbsx_lo_r )
return m_cartslot->chip_read(offset);
if (address >= 0x5000)
return m_cartslot->chip_read(offset);
- return snes_r_io(space, address);
+ return snes_r_io(address);
}
else if (address < 0x8000)
{
@@ -852,9 +852,9 @@ READ8_MEMBER( snes_console_state::snesbsx_lo_r )
return m_cartslot->read_l(offset);
}
-WRITE8_MEMBER( snes_console_state::snesbsx_lo_w )
+void snes_console_state::snesbsx_lo_w(address_space &space, offs_t offset, uint8_t data)
{
- snesbsx_hi_w(space, offset, data, 0xff);
+ snesbsx_hi_w(space, offset, data);
}
@@ -862,7 +862,7 @@ WRITE8_MEMBER( snes_console_state::snesbsx_lo_w )
// LoROM + SuperGB
//---------------------------------------------------------------------------------
-READ8_MEMBER( snes_console_state::snessgb_hi_r )
+uint8_t snes_console_state::snessgb_hi_r(address_space &space, offs_t offset)
{
uint16_t address = offset & 0xffff;
@@ -871,7 +871,7 @@ READ8_MEMBER( snes_console_state::snessgb_hi_r )
if (address < 0x2000)
return m_wram[address];
else if (address < 0x6000)
- return snes_r_io(space, address);
+ return snes_r_io(address);
else if (address < 0x8000)
return m_cartslot->chip_read(offset);
else
@@ -883,12 +883,12 @@ READ8_MEMBER( snes_console_state::snessgb_hi_r )
return snes_open_bus_r();
}
-READ8_MEMBER( snes_console_state::snessgb_lo_r )
+uint8_t snes_console_state::snessgb_lo_r(address_space &space, offs_t offset)
{
- return snessgb_hi_r(space, offset, 0xff);
+ return snessgb_hi_r(space, offset);
}
-WRITE8_MEMBER( snes_console_state::snessgb_hi_w )
+void snes_console_state::snessgb_hi_w(address_space &space, offs_t offset, uint8_t data)
{
uint16_t address = offset & 0xffff;
if (offset < 0x400000)
@@ -902,16 +902,16 @@ WRITE8_MEMBER( snes_console_state::snessgb_hi_w )
}
}
-WRITE8_MEMBER( snes_console_state::snessgb_lo_w )
+void snes_console_state::snessgb_lo_w(address_space &space, offs_t offset, uint8_t data)
{
- snessgb_hi_w(space, offset, data, 0xff);
+ snessgb_hi_w(space, offset, data);
}
//---------------------------------------------------------------------------------
// Powerfest '94 event cart
//---------------------------------------------------------------------------------
-READ8_MEMBER( snes_console_state::pfest94_hi_r )
+uint8_t snes_console_state::pfest94_hi_r(address_space &space, offs_t offset)
{
uint16_t address = offset & 0xffff;
@@ -920,7 +920,7 @@ READ8_MEMBER( snes_console_state::pfest94_hi_r )
if (address < 0x2000)
return m_wram[address];
else if (address < 0x6000)
- return snes_r_io(space, address);
+ return snes_r_io(address);
else if (address < 0x8000)
{
if (offset < 0x100000) // DSP access
@@ -938,7 +938,7 @@ READ8_MEMBER( snes_console_state::pfest94_hi_r )
return m_cartslot->read_h(offset);
}
-WRITE8_MEMBER( snes_console_state::pfest94_hi_w )
+void snes_console_state::pfest94_hi_w(address_space &space, offs_t offset, uint8_t data)
{
uint16_t address = offset & 0xffff;
if (offset < 0x400000)
@@ -959,7 +959,7 @@ WRITE8_MEMBER( snes_console_state::pfest94_hi_w )
}
}
-READ8_MEMBER( snes_console_state::pfest94_lo_r )
+uint8_t snes_console_state::pfest94_lo_r(address_space &space, offs_t offset)
{
uint16_t address = offset & 0xffff;
@@ -968,7 +968,7 @@ READ8_MEMBER( snes_console_state::pfest94_lo_r )
if (address < 0x2000)
return m_wram[address];
else if (address < 0x6000)
- return snes_r_io(space, address);
+ return snes_r_io(address);
else if (address < 0x8000)
{
if (offset < 0x100000) // DSP access
@@ -986,9 +986,9 @@ READ8_MEMBER( snes_console_state::pfest94_lo_r )
return 0xff; // or open_bus?
}
-WRITE8_MEMBER( snes_console_state::pfest94_lo_w )
+void snes_console_state::pfest94_lo_w(address_space &space, offs_t offset, uint8_t data)
{
- pfest94_hi_w(space, offset, data, 0xff);
+ pfest94_hi_w(space, offset, data);
}
@@ -1185,8 +1185,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(*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->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8m_delegate(*this, FUNC(snes_console_state::snes20_lo_r)), write8m_delegate(*this, FUNC(snes_console_state::snes20_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8m_delegate(*this, FUNC(snes_console_state::snes20_hi_r)), write8m_delegate(*this, FUNC(snes_console_state::snes20_hi_w)));
m_maincpu->set_5a22_map();
m_type = m_cartslot->get_type();
@@ -1203,13 +1203,13 @@ 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(*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->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8m_delegate(*this, FUNC(snes_console_state::snessgb_lo_r)), write8m_delegate(*this, FUNC(snes_console_state::snessgb_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8m_delegate(*this, FUNC(snes_console_state::snessgb_hi_r)), write8m_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(*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->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8m_delegate(*this, FUNC(snes_console_state::snessa1_lo_r)), write8m_delegate(*this, FUNC(snes_console_state::snessa1_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8m_delegate(*this, FUNC(snes_console_state::snessa1_hi_r)), write8m_delegate(*this, FUNC(snes_console_state::snessa1_hi_w)));
m_maincpu->set_5a22_map();
break;
case SNES_DSP:
@@ -1230,50 +1230,50 @@ void snes_console_state::machine_start()
break;
case SNES_GSU1:
case SNES_GSU2:
- 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->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8m_delegate(*this, FUNC(snes_console_state::snessfx_lo_r)), write8m_delegate(*this, FUNC(snes_console_state::snessfx_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8m_delegate(*this, FUNC(snes_console_state::snessfx_hi_r)), write8m_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(*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->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8m_delegate(*this, FUNC(snes_console_state::snessdd1_lo_r)), write8m_delegate(*this, FUNC(snes_console_state::snessdd1_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8m_delegate(*this, FUNC(snes_console_state::snessdd1_hi_r)), write8m_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(*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->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8m_delegate(*this, FUNC(snes_console_state::snesbsx_lo_r)), write8m_delegate(*this, FUNC(snes_console_state::snesbsx_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8m_delegate(*this, FUNC(snes_console_state::snesbsx_hi_r)), write8m_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(*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_readwrite_handler(0x000000, 0x7dffff, read8m_delegate(*this, FUNC(snes_console_state::snes21_lo_r)), write8m_delegate(*this, FUNC(snes_console_state::snes21_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8m_delegate(*this, FUNC(snes_console_state::snes21_hi_r)), write8m_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(*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_readwrite_handler(0x000000, 0x7dffff, read8m_delegate(*this, FUNC(snes_console_state::snes21_lo_r)), write8m_delegate(*this, FUNC(snes_console_state::snes21_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8m_delegate(*this, FUNC(snes_console_state::snes21_hi_r)), write8m_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(*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_readwrite_handler(0x000000, 0x7dffff, read8m_delegate(*this, FUNC(snes_console_state::snes21_lo_r)), write8m_delegate(*this, FUNC(snes_console_state::snes21_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8m_delegate(*this, FUNC(snes_console_state::snes21_hi_r)), write8m_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(*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->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8m_delegate(*this, FUNC(snes_console_state::snes7110_lo_r)), write8m_delegate(*this, FUNC(snes_console_state::snes7110_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8m_delegate(*this, FUNC(snes_console_state::snes7110_hi_r)), write8m_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(*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->space(AS_PROGRAM).install_readwrite_handler(0x000000, 0x7dffff, read8m_delegate(*this, FUNC(snes_console_state::pfest94_lo_r)), write8m_delegate(*this, FUNC(snes_console_state::pfest94_lo_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0x800000, 0xffffff, read8m_delegate(*this, FUNC(snes_console_state::pfest94_hi_r)), write8m_delegate(*this, FUNC(snes_console_state::pfest94_hi_w)));
m_maincpu->set_5a22_map();
break;
// pirate 'mappers'
diff --git a/src/mame/drivers/spec128.cpp b/src/mame/drivers/spec128.cpp
index fd9fd5012ae..8cbc4c3726a 100644
--- a/src/mame/drivers/spec128.cpp
+++ b/src/mame/drivers/spec128.cpp
@@ -167,25 +167,19 @@ resulting mess can be seen in the F4 viewer display.
READ8_MEMBER(spectrum_state::spectrum_128_pre_opcode_fetch_r)
{
- /* this allows expansion devices to act upon opcode fetches from MEM addresses */
- if (BIT(m_port_7ffd_data, 4))
- {
- /* this allows expansion devices to act upon opcode fetches from MEM addresses
- for example, interface1 detection fetches requires fetches at 0008 / 0708 to
- enable paged ROM and then fetches at 0700 to disable it
- */
- m_exp->pre_opcode_fetch(offset);
- uint8_t retval = m_maincpu->space(AS_PROGRAM).read_byte(offset);
- m_exp->post_opcode_fetch(offset);
- return retval;
- }
-
- return m_maincpu->space(AS_PROGRAM).read_byte(offset);
+ /* this allows expansion devices to act upon opcode fetches from MEM addresses
+ for example, interface1 detection fetches requires fetches at 0008 / 0708 to
+ enable paged ROM and then fetches at 0700 to disable it
+ */
+ m_exp->pre_opcode_fetch(offset);
+ uint8_t retval = m_maincpu->space(AS_PROGRAM).read_byte(offset);
+ m_exp->post_opcode_fetch(offset);
+ return retval;
}
WRITE8_MEMBER( spectrum_state::spectrum_128_bank1_w )
{
- if (m_exp->romcs() && BIT(m_port_7ffd_data, 4))
+ if (m_exp->romcs())
m_exp->mreq_w(offset, data);
}
@@ -193,7 +187,7 @@ READ8_MEMBER( spectrum_state::spectrum_128_bank1_r )
{
uint8_t data;
- if (m_exp->romcs() && BIT(m_port_7ffd_data, 4))
+ if (m_exp->romcs())
{
data = m_exp->mreq_r(offset);
}
diff --git a/src/mame/drivers/taito.cpp b/src/mame/drivers/taito.cpp
index 2a0f76ab20b..5b0d4264e84 100644
--- a/src/mame/drivers/taito.cpp
+++ b/src/mame/drivers/taito.cpp
@@ -80,8 +80,8 @@ public:
void init_taito();
private:
- DECLARE_READ8_MEMBER(io_r);
- DECLARE_WRITE8_MEMBER(io_w);
+ uint8_t io_r(offs_t offset);
+ void io_w(offs_t offset, uint8_t data);
uint8_t pia_pb_r();
void pia_pb_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER(pia_cb2_w);
@@ -287,12 +287,12 @@ static INPUT_PORTS_START( taito )
PORT_BIT( 0x80, IP_ACTIVE_LOW, IPT_OTHER )
INPUT_PORTS_END
-READ8_MEMBER( taito_state::io_r )
+uint8_t taito_state::io_r(offs_t offset)
{
return m_io[offset];
}
-WRITE8_MEMBER( taito_state::io_w )
+void taito_state::io_w(offs_t offset, uint8_t data)
{
m_io[offset] = data;
diff --git a/src/mame/drivers/taitogn.cpp b/src/mame/drivers/taitogn.cpp
index 99e14c48e4c..8f39e83094f 100644
--- a/src/mame/drivers/taitogn.cpp
+++ b/src/mame/drivers/taitogn.cpp
@@ -368,17 +368,17 @@ public:
void coh3002t_t1(machine_config &config);
private:
- DECLARE_READ8_MEMBER(control_r);
- DECLARE_WRITE8_MEMBER(control_w);
- DECLARE_WRITE16_MEMBER(control2_w);
- DECLARE_READ8_MEMBER(control3_r);
- DECLARE_WRITE8_MEMBER(control3_w);
- DECLARE_READ16_MEMBER(gn_1fb70000_r);
- DECLARE_WRITE16_MEMBER(gn_1fb70000_w);
- DECLARE_READ16_MEMBER(hack1_r);
- DECLARE_WRITE8_MEMBER(coin_w);
- DECLARE_READ8_MEMBER(coin_r);
- DECLARE_READ8_MEMBER(gnet_mahjong_panel_r);
+ uint8_t control_r();
+ void control_w(uint8_t data);
+ void control2_w(uint16_t data);
+ uint8_t control3_r();
+ void control3_w(uint8_t data);
+ uint16_t gn_1fb70000_r();
+ void gn_1fb70000_w(uint16_t data);
+ uint16_t hack1_r(offs_t offset);
+ void coin_w(uint8_t data);
+ uint8_t coin_r();
+ uint8_t gnet_mahjong_panel_r();
uint32_t zsg2_ext_r(offs_t offset);
void flashbank_map(address_map &map);
@@ -408,12 +408,12 @@ private:
// Misc. controls
-READ8_MEMBER(taitogn_state::control_r)
+uint8_t taitogn_state::control_r()
{
return m_control;
}
-WRITE8_MEMBER(taitogn_state::control_w)
+void taitogn_state::control_w(uint8_t data)
{
// 20 = watchdog
m_mb3773->write_line_ck((data & 0x20) >> 5);
@@ -445,22 +445,22 @@ WRITE8_MEMBER(taitogn_state::control_w)
m_control = data;
}
-WRITE16_MEMBER(taitogn_state::control2_w)
+void taitogn_state::control2_w(uint16_t data)
{
m_control2 = data;
}
-READ8_MEMBER(taitogn_state::control3_r)
+uint8_t taitogn_state::control3_r()
{
return m_control3;
}
-WRITE8_MEMBER(taitogn_state::control3_w)
+void taitogn_state::control3_w(uint8_t data)
{
m_control3 = data;
}
-READ16_MEMBER(taitogn_state::gn_1fb70000_r)
+uint16_t taitogn_state::gn_1fb70000_r()
{
// (1328) 1348 tests mask 0002, 8 times.
// Called by 1434, exit at 143c
@@ -472,13 +472,13 @@ READ16_MEMBER(taitogn_state::gn_1fb70000_r)
return 2;
}
-WRITE16_MEMBER(taitogn_state::gn_1fb70000_w)
+void taitogn_state::gn_1fb70000_w(uint16_t data)
{
- // Writes 0 or 1 all the time, it *may* have somthing to do with
+ // Writes 0 or 1 all the time, it *may* have something to do with
// i/o port width, but then maybe not
}
-READ16_MEMBER(taitogn_state::hack1_r)
+uint16_t taitogn_state::hack1_r(offs_t offset)
{
switch (offset)
{
@@ -497,7 +497,7 @@ READ16_MEMBER(taitogn_state::hack1_r)
-WRITE8_MEMBER(taitogn_state::coin_w)
+void taitogn_state::coin_w(uint8_t data)
{
/* 0x01=counter
0x02=coin lock 1
@@ -511,13 +511,13 @@ WRITE8_MEMBER(taitogn_state::coin_w)
m_coin_info = data;
}
-READ8_MEMBER(taitogn_state::coin_r)
+uint8_t taitogn_state::coin_r()
{
return m_coin_info;
}
/* mahjong panel handler (for Usagi & Mahjong Oh) */
-READ8_MEMBER(taitogn_state::gnet_mahjong_panel_r)
+uint8_t taitogn_state::gnet_mahjong_panel_r()
{
switch (m_coin_info & 0xcc)
{
diff --git a/src/mame/drivers/taitopjc.cpp b/src/mame/drivers/taitopjc.cpp
index c1d5586d5b9..8044e565339 100644
--- a/src/mame/drivers/taitopjc.cpp
+++ b/src/mame/drivers/taitopjc.cpp
@@ -126,22 +126,22 @@ private:
required_memory_region m_polyrom;
required_device<gfxdecode_device> m_gfxdecode;
- DECLARE_READ64_MEMBER(video_r);
- DECLARE_WRITE64_MEMBER(video_w);
- DECLARE_READ64_MEMBER(ppc_common_r);
- DECLARE_WRITE64_MEMBER(ppc_common_w);
- DECLARE_READ64_MEMBER(dsp_r);
- DECLARE_WRITE64_MEMBER(dsp_w);
- DECLARE_READ8_MEMBER(tlcs_common_r);
- DECLARE_WRITE8_MEMBER(tlcs_common_w);
- DECLARE_READ8_MEMBER(tlcs_sound_r);
- DECLARE_WRITE8_MEMBER(tlcs_sound_w);
- DECLARE_WRITE16_MEMBER(tlcs_unk_w);
- DECLARE_READ16_MEMBER(tms_dspshare_r);
- DECLARE_WRITE16_MEMBER(tms_dspshare_w);
- DECLARE_READ16_MEMBER(dsp_rom_r);
- DECLARE_WRITE16_MEMBER(dsp_roml_w);
- DECLARE_WRITE16_MEMBER(dsp_romh_w);
+ uint64_t video_r(offs_t offset, uint64_t mem_mask = ~0);
+ void video_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
+ uint64_t ppc_common_r(offs_t offset, uint64_t mem_mask = ~0);
+ void ppc_common_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
+ uint64_t dsp_r(offs_t offset, uint64_t mem_mask = ~0);
+ void dsp_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
+ uint8_t tlcs_common_r(offs_t offset);
+ void tlcs_common_w(offs_t offset, uint8_t data);
+ uint8_t tlcs_sound_r(offs_t offset);
+ void tlcs_sound_w(offs_t offset, uint8_t data);
+ void tlcs_unk_w(offs_t offset, uint16_t data);
+ uint16_t tms_dspshare_r(offs_t offset);
+ void tms_dspshare_w(offs_t offset, uint16_t data);
+ uint16_t dsp_rom_r();
+ void dsp_roml_w(uint16_t data);
+ void dsp_romh_w(uint16_t data);
virtual void machine_reset() override;
virtual void video_start() override;
uint32_t screen_update_taitopjc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
@@ -310,7 +310,7 @@ void taitopjc_state::videochip_w(offs_t address, uint32_t data)
}
}
-READ64_MEMBER(taitopjc_state::video_r)
+uint64_t taitopjc_state::video_r(offs_t offset, uint64_t mem_mask)
{
uint64_t r = 0;
@@ -325,7 +325,7 @@ READ64_MEMBER(taitopjc_state::video_r)
return r;
}
-WRITE64_MEMBER(taitopjc_state::video_w)
+void taitopjc_state::video_w(offs_t offset, uint64_t data, uint64_t mem_mask)
{
if (offset == 0)
{
@@ -344,7 +344,7 @@ WRITE64_MEMBER(taitopjc_state::video_w)
}
}
-READ64_MEMBER(taitopjc_state::ppc_common_r)
+uint64_t taitopjc_state::ppc_common_r(offs_t offset, uint64_t mem_mask)
{
uint64_t r = 0;
uint32_t address;
@@ -365,7 +365,7 @@ READ64_MEMBER(taitopjc_state::ppc_common_r)
return r;
}
-WRITE64_MEMBER(taitopjc_state::ppc_common_w)
+void taitopjc_state::ppc_common_w(offs_t offset, uint64_t data, uint64_t mem_mask)
{
uint32_t address = offset * 2;
@@ -394,7 +394,7 @@ WRITE64_MEMBER(taitopjc_state::ppc_common_w)
}
}
-READ64_MEMBER(taitopjc_state::dsp_r)
+uint64_t taitopjc_state::dsp_r(offs_t offset, uint64_t mem_mask)
{
uint64_t r = 0;
@@ -485,7 +485,7 @@ void taitopjc_state::print_display_list()
}
}
-WRITE64_MEMBER(taitopjc_state::dsp_w)
+void taitopjc_state::dsp_w(offs_t offset, uint64_t data, uint64_t mem_mask)
{
//logerror("dsp_w: %08X, %08X%08X, %08X%08X at %08X\n", offset, (uint32_t)(data >> 32), (uint32_t)(data), (uint32_t)(mem_mask >> 32), (uint32_t)(mem_mask), m_maincpu->pc());
@@ -544,7 +544,7 @@ void taitopjc_state::ppc603e_mem(address_map &map)
-READ8_MEMBER(taitopjc_state::tlcs_common_r)
+uint8_t taitopjc_state::tlcs_common_r(offs_t offset)
{
if (offset & 1)
{
@@ -556,7 +556,7 @@ READ8_MEMBER(taitopjc_state::tlcs_common_r)
}
}
-WRITE8_MEMBER(taitopjc_state::tlcs_common_w)
+void taitopjc_state::tlcs_common_w(offs_t offset, uint8_t data)
{
if (offset & 1)
{
@@ -590,7 +590,7 @@ WRITE8_MEMBER(taitopjc_state::tlcs_common_w)
}
}
-READ8_MEMBER(taitopjc_state::tlcs_sound_r)
+uint8_t taitopjc_state::tlcs_sound_r(offs_t offset)
{
if (offset == 0x17)
{
@@ -600,12 +600,12 @@ READ8_MEMBER(taitopjc_state::tlcs_sound_r)
return 0;
}
-WRITE8_MEMBER(taitopjc_state::tlcs_sound_w)
+void taitopjc_state::tlcs_sound_w(offs_t offset, uint8_t data)
{
// printf("tlcs_sound_w: %08X, %02X\n", offset, data);
}
-WRITE16_MEMBER(taitopjc_state::tlcs_unk_w)
+void taitopjc_state::tlcs_unk_w(offs_t offset, uint16_t data)
{
if (offset == 0xc/2)
{
@@ -648,12 +648,12 @@ void taitopjc_state::mn10200_map(address_map &map)
-READ16_MEMBER(taitopjc_state::tms_dspshare_r)
+uint16_t taitopjc_state::tms_dspshare_r(offs_t offset)
{
return m_dsp_ram[offset];
}
-WRITE16_MEMBER(taitopjc_state::tms_dspshare_w)
+void taitopjc_state::tms_dspshare_w(offs_t offset, uint16_t data)
{
if (offset == 0xffc)
{
@@ -662,7 +662,7 @@ WRITE16_MEMBER(taitopjc_state::tms_dspshare_w)
m_dsp_ram[offset] = data;
}
-READ16_MEMBER(taitopjc_state::dsp_rom_r)
+uint16_t taitopjc_state::dsp_rom_r()
{
assert(m_dsp_rom_address < 0x800000);
@@ -671,13 +671,13 @@ READ16_MEMBER(taitopjc_state::dsp_rom_r)
return data;
}
-WRITE16_MEMBER(taitopjc_state::dsp_roml_w)
+void taitopjc_state::dsp_roml_w(uint16_t data)
{
m_dsp_rom_address &= 0xffff0000;
m_dsp_rom_address |= data;
}
-WRITE16_MEMBER(taitopjc_state::dsp_romh_w)
+void taitopjc_state::dsp_romh_w(uint16_t data)
{
m_dsp_rom_address &= 0xffff;
m_dsp_rom_address |= (uint32_t)(data) << 16;
diff --git a/src/mame/drivers/taitotz.cpp b/src/mame/drivers/taitotz.cpp
index 1cb8b3a9d85..1ebcf69aea0 100644
--- a/src/mame/drivers/taitotz.cpp
+++ b/src/mame/drivers/taitotz.cpp
@@ -572,14 +572,14 @@ private:
required_shared_ptr<uint16_t> m_mbox_ram;
required_device<ata_interface_device> m_ata;
- DECLARE_READ64_MEMBER(ppc_common_r);
- DECLARE_WRITE64_MEMBER(ppc_common_w);
- DECLARE_READ64_MEMBER(ieee1394_r);
- DECLARE_WRITE64_MEMBER(ieee1394_w);
- DECLARE_READ64_MEMBER(video_chip_r);
- DECLARE_WRITE64_MEMBER(video_chip_w);
- DECLARE_READ64_MEMBER(video_fifo_r);
- DECLARE_WRITE64_MEMBER(video_fifo_w);
+ uint64_t ppc_common_r(offs_t offset, uint64_t mem_mask = ~0);
+ void ppc_common_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
+ uint64_t ieee1394_r(offs_t offset, uint64_t mem_mask = ~0);
+ void ieee1394_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
+ uint64_t video_chip_r(offs_t offset, uint64_t mem_mask = ~0);
+ void video_chip_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
+ uint64_t video_fifo_r(offs_t offset, uint64_t mem_mask = ~0);
+ void video_fifo_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
std::unique_ptr<uint32_t[]> m_screen_ram;
std::unique_ptr<uint32_t[]> m_frame_ram;
@@ -597,10 +597,10 @@ private:
const char *m_hdd_serial_number;
- DECLARE_READ8_MEMBER(tlcs_common_r);
- DECLARE_WRITE8_MEMBER(tlcs_common_w);
- DECLARE_READ8_MEMBER(tlcs_rtc_r);
- DECLARE_WRITE8_MEMBER(tlcs_rtc_w);
+ uint8_t tlcs_common_r(offs_t offset);
+ void tlcs_common_w(offs_t offset, uint8_t data);
+ uint8_t tlcs_rtc_r(offs_t offset);
+ void tlcs_rtc_w(offs_t offset, uint8_t data);
uint8_t m_rtcdata[8];
@@ -614,8 +614,8 @@ private:
virtual void video_start() override;
uint32_t screen_update_taitotz(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(taitotz_vbi);
- DECLARE_READ16_MEMBER(tlcs_ide0_r);
- DECLARE_READ16_MEMBER(tlcs_ide1_r);
+ uint16_t tlcs_ide0_r(offs_t offset, uint16_t mem_mask = ~0);
+ uint16_t tlcs_ide1_r(offs_t offset, uint16_t mem_mask = ~0);
DECLARE_WRITE_LINE_MEMBER(ide_interrupt);
void draw_tile(uint32_t pos, uint32_t tile);
uint32_t video_mem_r(uint32_t address);
@@ -1649,7 +1649,7 @@ void taitotz_state::video_reg_w(uint32_t reg, uint32_t data)
}
}
-READ64_MEMBER(taitotz_state::video_chip_r)
+uint64_t taitotz_state::video_chip_r(offs_t offset, uint64_t mem_mask)
{
uint64_t r = 0;
uint32_t reg = offset * 8;
@@ -1698,7 +1698,7 @@ READ64_MEMBER(taitotz_state::video_chip_r)
return r;
}
-WRITE64_MEMBER(taitotz_state::video_chip_w)
+void taitotz_state::video_chip_w(offs_t offset, uint64_t data, uint64_t mem_mask)
{
uint32_t reg = offset * 8;
uint32_t regdata;
@@ -1773,7 +1773,7 @@ WRITE64_MEMBER(taitotz_state::video_chip_w)
}
}
-READ64_MEMBER(taitotz_state::video_fifo_r)
+uint64_t taitotz_state::video_fifo_r(offs_t offset, uint64_t mem_mask)
{
uint64_t r = 0;
if (ACCESSING_BITS_32_63)
@@ -1790,7 +1790,7 @@ READ64_MEMBER(taitotz_state::video_fifo_r)
return r;
}
-WRITE64_MEMBER(taitotz_state::video_fifo_w)
+void taitotz_state::video_fifo_w(offs_t offset, uint64_t data, uint64_t mem_mask)
{
int command = (m_video_reg >> 28) & 0xf;
if (command == 0xb)
@@ -1883,7 +1883,7 @@ WRITE64_MEMBER(taitotz_state::video_fifo_w)
//COMBINE_DATA(m_video_fifo_mem + offset);
}
-READ64_MEMBER(taitotz_state::ieee1394_r)
+uint64_t taitotz_state::ieee1394_r(offs_t offset, uint64_t mem_mask)
{
if (offset == 4)
{
@@ -1894,7 +1894,7 @@ READ64_MEMBER(taitotz_state::ieee1394_r)
return 0;
}
-WRITE64_MEMBER(taitotz_state::ieee1394_w)
+void taitotz_state::ieee1394_w(offs_t offset, uint64_t data, uint64_t mem_mask)
{
//logerror("ieee1394_w: %08X, %08X%08X, %08X%08X\n", offset, (uint32_t)(data >> 32), (uint32_t)(data), (uint32_t)(mem_mask >> 32), (uint32_t)(mem_mask));
if (ACCESSING_BITS_32_63)
@@ -1905,7 +1905,7 @@ WRITE64_MEMBER(taitotz_state::ieee1394_w)
}
}
-READ64_MEMBER(taitotz_state::ppc_common_r)
+uint64_t taitotz_state::ppc_common_r(offs_t offset, uint64_t mem_mask)
{
uint64_t res = 0;
@@ -1921,7 +1921,7 @@ READ64_MEMBER(taitotz_state::ppc_common_r)
return res;
}
-WRITE64_MEMBER(taitotz_state::ppc_common_w)
+void taitotz_state::ppc_common_w(offs_t offset, uint64_t data, uint64_t mem_mask)
{
if (ACCESSING_BITS_0_15)
{
@@ -2081,7 +2081,7 @@ void taitotz_state::ppc603e_mem(address_map &map)
-READ8_MEMBER(taitotz_state::tlcs_common_r)
+uint8_t taitotz_state::tlcs_common_r(offs_t offset)
{
if (offset & 1)
{
@@ -2093,7 +2093,7 @@ READ8_MEMBER(taitotz_state::tlcs_common_r)
}
}
-WRITE8_MEMBER(taitotz_state::tlcs_common_w)
+void taitotz_state::tlcs_common_w(offs_t offset, uint8_t data)
{
if (offset & 1)
{
@@ -2140,8 +2140,8 @@ WRITE8_MEMBER(taitotz_state::tlcs_common_w)
}
}
-// RTC could be Epson RTC-64613, same as taitopjc.c
-READ8_MEMBER(taitotz_state::tlcs_rtc_r)
+// RTC could be Epson RTC-64613, same as taitopjc.cpp
+uint8_t taitotz_state::tlcs_rtc_r(offs_t offset)
{
switch (offset)
{
@@ -2165,7 +2165,7 @@ READ8_MEMBER(taitotz_state::tlcs_rtc_r)
return 0;
}
-WRITE8_MEMBER(taitotz_state::tlcs_rtc_w)
+void taitotz_state::tlcs_rtc_w(offs_t offset, uint8_t data)
{
switch (offset)
{
@@ -2186,7 +2186,7 @@ WRITE8_MEMBER(taitotz_state::tlcs_rtc_w)
}
}
-READ16_MEMBER(taitotz_state::tlcs_ide0_r)
+uint16_t taitotz_state::tlcs_ide0_r(offs_t offset, uint16_t mem_mask)
{
uint16_t d = m_ata->cs0_r(offset, mem_mask);
if (offset == 7)
@@ -2195,7 +2195,7 @@ READ16_MEMBER(taitotz_state::tlcs_ide0_r)
return d;
}
-READ16_MEMBER(taitotz_state::tlcs_ide1_r)
+uint16_t taitotz_state::tlcs_ide1_r(offs_t offset, uint16_t mem_mask)
{
uint16_t d = m_ata->cs1_r(offset, mem_mask);
if (offset == 6)
diff --git a/src/mame/drivers/taitowlf.cpp b/src/mame/drivers/taitowlf.cpp
index 7ba54ff0775..e98ab104e1a 100644
--- a/src/mame/drivers/taitowlf.cpp
+++ b/src/mame/drivers/taitowlf.cpp
@@ -2,29 +2,49 @@
// copyright-holders:Ville Linde
/* Taito Wolf System
- Driver by Ville Linde
-
-AMD M4-128N/64 stamped 'E58-01'
-AMD MACH231 stamped 'E58-02'
-AMD MACH211 stamped 'E58-03'
-Zoom ZFX2
-Zoom ZSG-2
-Taito TC0510NIO
-Panasonic MN1020019
-1x RAM NEC 42S4260
-1x RAM GM71C4400
-12x RAM Alliance AS4C256K16E0-35 (256k x 16)
-Mitsubishi M66220
-Fujitsu MB87078
-Atmel 93C66 EEPROM (4kb probably for high scores, test mode settings etc)
-ICS GENDAC ICS5342-3
-3DFX 500-0003-03 F805281.1 FBI
-3DFX 500-0004-02 F804701.1 TMU
-some logic
-clocks 50MHz (near 3DFX) and 14.31818MHz (near RAMDAC)
+Driver by Ville Linde
+
+Three board system consisting of a P5TX-LA PC motherboard, a Taito main board and a rom board.
+
+Hardware configuration:
+
+P5TX-LA Motherboard:
+-CPU: Intel SL27J Pentium MMX @ 200 MHz
+-Onboard sound: Crystal CS4237B ISA Audio
+-Onboard VGA: ATI Rage II 3D Graph (removed from motherboard)
+
+Chipsets (430TX PCIset):
+-82439TX Northbridge
+-82371EB PIIX4 PCI-ISA Southbridge
+
+Taito W Main Board:
+-AMD M4-128N/64 CPLD stamped 'E58-01'
+-AMD MACH231 CPLD stamped 'E58-02'
+-AMD MACH211 CPLD stamped 'E58-03'
+-Panasonic MN1020019 (MN10200 based) Sound CPU
+-Zoom ZFX-2 DSP (TMS57002 DSP)
+-Zoom ZSG-2 Sound PCM chip
+-Taito TC0510NIO I/O chip
+-1x RAM NEC 42S4260
+-1x RAM GM71C4400
+-12x RAM Alliance AS4C256K16E0-35 (256k x 16)
+-Mitsubishi M66220 256 x 8-bit CMOS memory
+-Fujitsu MB87078 6-bit, 4-channel Electronic Volume Controller
+-Atmel 93C66 EEPROM (4kb probably for high scores, test mode settings etc)
+-ICS5342-3 GENDAC 16-Bit Integrated Clock-LUT-DAC
+-3DFX 500-0003-03 F805281.1 FBI
+-3DFX 500-0004-02 F804701.1 TMU
+-Rom: E58-04 (bootscreen)
+-XTALs 50MHz (near 3DFX) and 14.31818MHz (near RAMDAC)
+
+Taito W Rom Board:
+-AMD M4-128N/64 CPLD stamped 'E58-05'
+-Program, Sound roms
TODO:
-- program ROM is read via parallel port (for offset write, encrypted) and game port!?
+- program ROM is read via parallel port (for offset write, encrypted) and game port!?
+- Emulation of the entire Taito Wolf main board which plugs into the PC motherboard's only PCI slot.
+- PCI comms between both boards have yet to be understood.
*/
@@ -64,9 +84,9 @@ private:
required_region_ptr<uint8_t> m_bootscreen_rom;
required_memory_bank m_bank1;
optional_device<palette_device> m_palette;
- DECLARE_WRITE32_MEMBER(pnp_config_w);
- DECLARE_WRITE32_MEMBER(pnp_data_w);
- DECLARE_WRITE32_MEMBER(bios_ram_w);
+ void pnp_config_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ void pnp_data_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ void bios_ram_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
#if !TAITOWLF_ENABLE_VGA
void taitowlf_palette(palette_device &palette) const;
@@ -242,7 +262,7 @@ void taitowlf_state::intel82371ab_pci_w(int function, int reg, uint32_t data, ui
}
// ISA Plug-n-Play
-WRITE32_MEMBER(taitowlf_state::pnp_config_w)
+void taitowlf_state::pnp_config_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
if (ACCESSING_BITS_8_15)
{
@@ -250,7 +270,7 @@ WRITE32_MEMBER(taitowlf_state::pnp_config_w)
}
}
-WRITE32_MEMBER(taitowlf_state::pnp_data_w)
+void taitowlf_state::pnp_data_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
if (ACCESSING_BITS_8_15)
{
@@ -260,7 +280,7 @@ WRITE32_MEMBER(taitowlf_state::pnp_data_w)
-WRITE32_MEMBER(taitowlf_state::bios_ram_w)
+void taitowlf_state::bios_ram_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
if (m_mtxc_config_reg[0x59] & 0x20) // write to RAM if this region is write-enabled
{
@@ -388,7 +408,6 @@ void taitowlf_state::taitowlf(machine_config &config)
#if TAITOWLF_ENABLE_VGA
pcvideo_vga(config);
#else
- /* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
screen.set_refresh_hz(60);
screen.set_vblank_time(ATTOSECONDS_IN_USEC(0));
@@ -420,11 +439,11 @@ ROM_START(pf2012)
ROM_CONTINUE( 0x0001, 0x4000 )
#endif
- ROM_REGION(0x400000, "user3", 0) // Program ROM disk
+ ROM_REGION(0x400000, "user3", 0) // Program ROM
ROM_LOAD("u1.bin", 0x000000, 0x200000, CRC(8f4c09cb) SHA1(0969a92fec819868881683c580f9e01cbedf4ad2))
ROM_LOAD("u2.bin", 0x200000, 0x200000, CRC(59881781) SHA1(85ff074ab2a922eac37cf96f0bf153a2dac55aa4))
- ROM_REGION(0x4000000, "user4", 0) // Data ROM disk
+ ROM_REGION(0x4000000, "user4", 0) // Data ROM
ROM_LOAD("e59-01.u20", 0x0000000, 0x800000, CRC(701d3a9a) SHA1(34c9f34f4da34bb8eed85a4efd1d9eea47a21d77) )
ROM_LOAD("e59-02.u23", 0x0800000, 0x800000, CRC(626df682) SHA1(35bb4f91201734ce7ccdc640a75030aaca3d1151) )
ROM_LOAD("e59-03.u26", 0x1000000, 0x800000, CRC(74e4efde) SHA1(630235c2e4a11f615b5f3b8c93e1e645da09eefe) )
@@ -434,18 +453,18 @@ ROM_START(pf2012)
ROM_LOAD("e59-07.u22", 0x3000000, 0x800000, CRC(1f0ddcdc) SHA1(72ffe08f5effab093bdfe9863f8a11f80e914272) )
ROM_LOAD("e59-08.u25", 0x3800000, 0x800000, CRC(8db38ffd) SHA1(4b71ea86fb774ba6a8ac45abf4191af64af007e7) )
- ROM_REGION(0x1400000, "samples", 0) // ZOOM sample data
+ ROM_REGION(0x1400000, "samples", 0) // ZOOM sample data
ROM_LOAD("e59-09.u29", 0x0000000, 0x800000, CRC(d0da5c50) SHA1(56fb3c38f35244720d32a44fed28e6b58c7851f7) )
ROM_LOAD("e59-10.u32", 0x0800000, 0x800000, CRC(4c0e0a5c) SHA1(6454befa3a1dd532eb2a760129dcd7e611508730) )
ROM_LOAD("e59-11.u33", 0x1000000, 0x400000, CRC(c90a896d) SHA1(2b62992f20e4ca9634e7953fe2c553906de44f04) )
- ROM_REGION(0x180000, "cpu1", 0) // MN10200 program
+ ROM_REGION(0x180000, "cpu1", 0) // MN10200 program
ROM_LOAD("e59-12.u13", 0x000000, 0x80000, CRC(9a473a7e) SHA1(b0ec7b0ae2b33a32da98899aa79d44e8e318ceb7) )
ROM_LOAD("e59-13.u15", 0x080000, 0x80000, CRC(77719880) SHA1(8382dd2dfb0dae60a3831ed6d3ff08539e2d94eb) )
ROM_LOAD("e59-14.u14", 0x100000, 0x40000, CRC(d440887c) SHA1(d965871860d757bc9111e9adb2303a633c662d6b) )
ROM_LOAD("e59-15.u16", 0x140000, 0x40000, CRC(eae8e523) SHA1(8a054d3ded7248a7906c4f0bec755ddce53e2023) )
- ROM_REGION(0x20000, "bootscreen", 0) // bootscreen
+ ROM_REGION(0x20000, "bootscreen", 0) // bootscreen
ROM_LOAD("e58-04.u71", 0x000000, 0x20000, CRC(500e6113) SHA1(93226706517c02e336f96bdf9443785158e7becf) )
ROM_END
diff --git a/src/mame/drivers/talkingbb.cpp b/src/mame/drivers/talkingbb.cpp
index 8f8a8a62209..ad30b938380 100644
--- a/src/mame/drivers/talkingbb.cpp
+++ b/src/mame/drivers/talkingbb.cpp
@@ -147,9 +147,9 @@ private:
// I/O handlers
void bank_w(u8 data);
- DECLARE_READ8_MEMBER(bank_r);
- DECLARE_WRITE8_MEMBER(input_w);
- DECLARE_READ8_MEMBER(input_r);
+ u8 bank_r(offs_t offset);
+ void input_w(u8 data);
+ u8 input_r();
u8 switch_r();
};
@@ -178,7 +178,7 @@ void talkingbb_state::bank_w(u8 data)
m_bank = data;
}
-READ8_MEMBER(talkingbb_state::bank_r)
+u8 talkingbb_state::bank_r(offs_t offset)
{
u32 hi = (~m_bank & 3) << 15;
u8 data = (m_bank & 4) ? 0xff : m_rom[offset | hi];
@@ -188,7 +188,7 @@ READ8_MEMBER(talkingbb_state::bank_r)
return data;
}
-WRITE8_MEMBER(talkingbb_state::input_w)
+void talkingbb_state::input_w(u8 data)
{
// no effect if P30 is low (never happens though)
if (~m_bank & 1)
@@ -200,7 +200,7 @@ WRITE8_MEMBER(talkingbb_state::input_w)
m_display->matrix(m_inp_mux, ~data & 7);
}
-READ8_MEMBER(talkingbb_state::input_r)
+u8 talkingbb_state::input_r()
{
// open bus if P30 is low (never happens though)
if (~m_bank & 1)
diff --git a/src/mame/drivers/talkingfb.cpp b/src/mame/drivers/talkingfb.cpp
index 98335b3f60e..38ed67a317b 100644
--- a/src/mame/drivers/talkingfb.cpp
+++ b/src/mame/drivers/talkingfb.cpp
@@ -65,9 +65,9 @@ private:
// I/O handlers
void bank_w(u8 data);
- template<int Psen> DECLARE_READ8_MEMBER(bank_r);
- DECLARE_WRITE8_MEMBER(input_w);
- DECLARE_READ8_MEMBER(input_r);
+ template<int Psen> u8 bank_r(offs_t offset);
+ void input_w(u8 data);
+ u8 input_r();
};
void talkingfb_state::machine_start()
@@ -96,7 +96,7 @@ void talkingfb_state::bank_w(u8 data)
}
template<int Psen>
-READ8_MEMBER(talkingfb_state::bank_r)
+u8 talkingfb_state::bank_r(offs_t offset)
{
u32 hi = (m_bank & 7) << 15;
u8 data = (m_bank & 0x20) ? 0xff : m_rom[offset | hi];
@@ -107,13 +107,13 @@ READ8_MEMBER(talkingfb_state::bank_r)
return data;
}
-WRITE8_MEMBER(talkingfb_state::input_w)
+void talkingfb_state::input_w(u8 data)
{
// d3-d7: input mux
m_inp_mux = data >> 3;
}
-READ8_MEMBER(talkingfb_state::input_r)
+u8 talkingfb_state::input_r()
{
u8 data = 0;
diff --git a/src/mame/drivers/tamag1.cpp b/src/mame/drivers/tamag1.cpp
index 10afb70906b..84dc32cc379 100644
--- a/src/mame/drivers/tamag1.cpp
+++ b/src/mame/drivers/tamag1.cpp
@@ -24,7 +24,6 @@ public:
tamag1_state(const machine_config &mconfig, device_type type, const char *tag) :
driver_device(mconfig, type, tag),
m_maincpu(*this, "maincpu"),
- m_speaker(*this, "speaker"),
m_out_x(*this, "%u.%u", 0U, 0U)
{ }
@@ -33,14 +32,12 @@ public:
DECLARE_INPUT_CHANGED_MEMBER(input_changed);
private:
- void speaker_w(uint8_t data);
void tama_palette(palette_device &palette) const;
E0C6S46_PIXEL_UPDATE(pixel_update);
virtual void machine_start() override;
required_device<e0c6s46_device> m_maincpu;
- required_device<speaker_sound_device> m_speaker;
output_finder<16, 40> m_out_x;
};
@@ -92,20 +89,6 @@ void tamag1_state::tama_palette(palette_device &palette) const
/***************************************************************************
- I/O
-
-***************************************************************************/
-
-void tamag1_state::speaker_w(uint8_t data)
-{
- // R43: speaker out
- m_speaker->level_w(data >> 3 & 1);
-}
-
-
-
-/***************************************************************************
-
Inputs
***************************************************************************/
@@ -140,7 +123,7 @@ void tamag1_state::tama(machine_config &config)
/* basic machine hardware */
E0C6S46(config, m_maincpu, 32.768_kHz_XTAL);
m_maincpu->set_pixel_update_cb(FUNC(tamag1_state::pixel_update));
- m_maincpu->write_r<4>().set(FUNC(tamag1_state::speaker_w));
+ m_maincpu->write_r<4>().set("speaker", FUNC(speaker_sound_device::level_w)).bit(3);
/* video hardware */
screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_LCD));
@@ -156,7 +139,7 @@ void tamag1_state::tama(machine_config &config)
/* sound hardware */
SPEAKER(config, "mono").front_center();
- SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 0.25);
+ SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.25);
}
diff --git a/src/mame/drivers/tandy1t.cpp b/src/mame/drivers/tandy1t.cpp
index a443e38a893..45a4da80bcf 100644
--- a/src/mame/drivers/tandy1t.cpp
+++ b/src/mame/drivers/tandy1t.cpp
@@ -107,19 +107,19 @@ private:
required_device<pcvideo_t1000_device> m_video;
required_device<ram_device> m_ram;
- DECLARE_WRITE8_MEMBER ( pc_t1t_p37x_w );
- DECLARE_READ8_MEMBER ( pc_t1t_p37x_r );
-
- DECLARE_WRITE8_MEMBER ( tandy1000_pio_w );
- DECLARE_READ8_MEMBER(tandy1000_pio_r);
- DECLARE_READ8_MEMBER( tandy1000_bank_r );
- DECLARE_WRITE8_MEMBER( tandy1000_bank_w );
- DECLARE_WRITE8_MEMBER( nmi_vram_bank_w );
- DECLARE_WRITE8_MEMBER( vram_bank_w );
- DECLARE_READ8_MEMBER( vram_r );
- DECLARE_WRITE8_MEMBER( vram_w );
- DECLARE_WRITE8_MEMBER( devctrl_w );
- DECLARE_READ8_MEMBER( unk_r );
+ void pc_t1t_p37x_w(offs_t offset, uint8_t data);
+ uint8_t pc_t1t_p37x_r(offs_t offset);
+
+ void tandy1000_pio_w(offs_t offset, uint8_t data);
+ uint8_t tandy1000_pio_r(offs_t offset);
+ uint8_t tandy1000_bank_r(offs_t offset);
+ void tandy1000_bank_w(offs_t offset, uint8_t data);
+ void nmi_vram_bank_w(uint8_t data);
+ void vram_bank_w(uint8_t data);
+ uint8_t vram_r(offs_t offset);
+ void vram_w(offs_t offset, uint8_t data);
+ void devctrl_w(uint8_t data);
+ uint8_t unk_r();
int tandy1000_read_eeprom();
void tandy1000_write_eeprom(uint8_t data);
@@ -279,7 +279,7 @@ void tandy1000_state::tandy1000_write_eeprom(uint8_t data)
m_eeprom_clock=data&4;
}
-WRITE8_MEMBER( tandy1000_state::pc_t1t_p37x_w )
+void tandy1000_state::pc_t1t_p37x_w(offs_t offset, uint8_t data)
{
// DBG_LOG(2,"T1T_p37x_w",("%.5x #%d $%02x\n", m_maincpu->pc( ),offset, data));
if (offset!=4)
@@ -293,7 +293,7 @@ WRITE8_MEMBER( tandy1000_state::pc_t1t_p37x_w )
}
}
-READ8_MEMBER( tandy1000_state::pc_t1t_p37x_r )
+uint8_t tandy1000_state::pc_t1t_p37x_r(offs_t offset)
{
int data = m_tandy_data[offset];
// DBG_LOG(1,"T1T_p37x_r",("%.5x #%d $%02x\n", m_maincpu->pc( ), offset, data));
@@ -309,7 +309,7 @@ READ8_MEMBER( tandy1000_state::pc_t1t_p37x_r )
bit 3 output turbo mode
*/
-WRITE8_MEMBER( tandy1000_state::tandy1000_pio_w )
+void tandy1000_state::tandy1000_pio_w(offs_t offset, uint8_t data)
{
switch (offset)
{
@@ -335,7 +335,7 @@ WRITE8_MEMBER( tandy1000_state::tandy1000_pio_w )
}
}
-READ8_MEMBER(tandy1000_state::tandy1000_pio_r)
+uint8_t tandy1000_state::tandy1000_pio_r(offs_t offset)
{
int data=0xff;
switch (offset)
@@ -361,29 +361,29 @@ READ8_MEMBER(tandy1000_state::tandy1000_pio_r)
return data;
}
-WRITE8_MEMBER( tandy1000_state::nmi_vram_bank_w )
+void tandy1000_state::nmi_vram_bank_w(uint8_t data)
{
m_mb->nmi_enable_w(data & 0x80);
- vram_bank_w(space, 0, data & 0x1e);
+ vram_bank_w(data & 0x1e);
m_video->disable_w((data & 1) ? ASSERT_LINE : CLEAR_LINE);
}
-WRITE8_MEMBER( tandy1000_state::vram_bank_w )
+void tandy1000_state::vram_bank_w(uint8_t data)
{
m_vram_bank = (data >> 1) & 7;
}
-WRITE8_MEMBER( tandy1000_state::devctrl_w )
+void tandy1000_state::devctrl_w(uint8_t data)
{
m_video->disable_w((data & 4) ? ASSERT_LINE : CLEAR_LINE);
}
-READ8_MEMBER( tandy1000_state::unk_r )
+uint8_t tandy1000_state::unk_r()
{
return 0; // status port?
}
-READ8_MEMBER( tandy1000_state::vram_r )
+uint8_t tandy1000_state::vram_r(offs_t offset)
{
uint8_t vram_base = (m_ram->size() >> 17) - 1;
if((m_vram_bank - vram_base) == (offset >> 17))
@@ -391,7 +391,7 @@ READ8_MEMBER( tandy1000_state::vram_r )
return 0xff;
}
-WRITE8_MEMBER( tandy1000_state::vram_w )
+void tandy1000_state::vram_w(offs_t offset, uint8_t data)
{
uint8_t vram_base = (m_ram->size() >> 17) - 1;
if((m_vram_bank - vram_base) == (offset >> 17))
@@ -432,14 +432,14 @@ 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(*this, FUNC(tandy1000_state::vram_r)), write8_delegate(*this, FUNC(tandy1000_state::vram_w)));
+ read8sm_delegate(*this, FUNC(tandy1000_state::vram_r)), write8sm_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(*this, FUNC(tandy1000_state::vram_r)), write8_delegate(*this, FUNC(tandy1000_state::vram_w)), 0xffff);
+ read8sm_delegate(*this, FUNC(tandy1000_state::vram_r)), write8sm_delegate(*this, FUNC(tandy1000_state::vram_w)), 0xffff);
subdevice<nvram_device>("nvram")->set_base(m_eeprom_ee, sizeof(m_eeprom_ee));
}
-READ8_MEMBER( tandy1000_state::tandy1000_bank_r )
+uint8_t tandy1000_state::tandy1000_bank_r(offs_t offset)
{
uint8_t data = 0xFF;
@@ -456,7 +456,7 @@ READ8_MEMBER( tandy1000_state::tandy1000_bank_r )
}
-WRITE8_MEMBER( tandy1000_state::tandy1000_bank_w )
+void tandy1000_state::tandy1000_bank_w(offs_t offset, uint8_t data)
{
logerror( "%s: tandy1000_bank_w: offset = %x, data = %02x\n", machine().describe_context(), offset, data );
diff --git a/src/mame/drivers/tapatune.cpp b/src/mame/drivers/tapatune.cpp
index 97af2505ce2..e98f02f8b83 100644
--- a/src/mame/drivers/tapatune.cpp
+++ b/src/mame/drivers/tapatune.cpp
@@ -94,23 +94,23 @@ private:
DECLARE_WRITE_LINE_MEMBER(crtc_vsync);
- DECLARE_WRITE16_MEMBER(palette_w);
- DECLARE_READ16_MEMBER(read_from_z80);
- DECLARE_WRITE16_MEMBER(write_to_z80);
-
- DECLARE_READ8_MEMBER(sound_irq_clear);
- DECLARE_WRITE8_MEMBER(controls_mux);
- DECLARE_READ8_MEMBER(controls_r);
- DECLARE_WRITE8_MEMBER(write_index_to_68k);
- DECLARE_WRITE8_MEMBER(write_data_to_68k);
- DECLARE_READ8_MEMBER(read_index_from_68k);
- DECLARE_READ8_MEMBER(read_data_from_68k);
- DECLARE_WRITE8_MEMBER(lamps_w);
- DECLARE_READ8_MEMBER(status_r);
- DECLARE_WRITE8_MEMBER(bsmt_data_lo_w);
- DECLARE_WRITE8_MEMBER(bsmt_data_hi_w);
- DECLARE_WRITE8_MEMBER(bsmt_reg_w);
- DECLARE_READ8_MEMBER(special_r);
+ void palette_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ uint16_t read_from_z80();
+ void write_to_z80(uint16_t data);
+
+ uint8_t sound_irq_clear();
+ void controls_mux(uint8_t data);
+ uint8_t controls_r();
+ void write_index_to_68k(uint8_t data);
+ void write_data_to_68k(uint8_t data);
+ uint8_t read_index_from_68k();
+ uint8_t read_data_from_68k();
+ void lamps_w(uint8_t data);
+ uint8_t status_r();
+ void bsmt_data_lo_w(uint8_t data);
+ void bsmt_data_hi_w(uint8_t data);
+ void bsmt_reg_w(uint8_t data);
+ uint8_t special_r();
MC6845_BEGIN_UPDATE(crtc_begin_update);
MC6845_UPDATE_ROW(crtc_update_row);
@@ -194,7 +194,7 @@ MC6845_UPDATE_ROW( tapatune_state::crtc_update_row )
}
-WRITE16_MEMBER(tapatune_state::palette_w)
+void tapatune_state::palette_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
//logerror("Palette write: offset = %02x, data = %04x, mask = %04x\n", offset, data, mem_mask );
switch(offset)
@@ -223,14 +223,14 @@ WRITE_LINE_MEMBER(tapatune_state::crtc_vsync)
*
*************************************/
-READ16_MEMBER(tapatune_state::read_from_z80)
+uint16_t tapatune_state::read_from_z80()
{
m_z80_data_available = 0;
return ((uint16_t)m_z80_to_68k_data << 8) | (m_z80_to_68k_index);
}
-WRITE16_MEMBER(tapatune_state::write_to_z80)
+void tapatune_state::write_to_z80(uint16_t data)
{
m_68k_to_z80_index = data & 0xff;
m_68k_to_z80_data = (data >> 8) & 0xff;
@@ -249,13 +249,13 @@ WRITE16_MEMBER(tapatune_state::write_to_z80)
*
*************************************/
-WRITE8_MEMBER(tapatune_state::write_index_to_68k)
+void tapatune_state::write_index_to_68k(uint8_t data)
{
m_z80_to_68k_index = data;
}
-WRITE8_MEMBER(tapatune_state::write_data_to_68k)
+void tapatune_state::write_data_to_68k(uint8_t data)
{
// todo, use callback as this will hook up elsewhere on non-video games
if (m_videocpu)
@@ -267,13 +267,13 @@ WRITE8_MEMBER(tapatune_state::write_data_to_68k)
}
-READ8_MEMBER(tapatune_state::read_index_from_68k)
+uint8_t tapatune_state::read_index_from_68k()
{
return m_68k_to_z80_index;
}
-READ8_MEMBER(tapatune_state::read_data_from_68k)
+uint8_t tapatune_state::read_data_from_68k()
{
m_68k_data_available = 0;
@@ -333,14 +333,14 @@ void tapatune_state::maincpu_io_map(address_map &map)
*
*************************************/
-READ8_MEMBER(tapatune_state::sound_irq_clear)
+uint8_t tapatune_state::sound_irq_clear()
{
m_maincpu->set_input_line(0, CLEAR_LINE);
return 0;
}
-WRITE8_MEMBER(tapatune_state::controls_mux)
+void tapatune_state::controls_mux(uint8_t data)
{
/*
Input multiplexer select and outputs:
@@ -360,7 +360,7 @@ WRITE8_MEMBER(tapatune_state::controls_mux)
}
-READ8_MEMBER(tapatune_state::controls_r)
+uint8_t tapatune_state::controls_r()
{
switch (m_controls_mux & 0xf)
{
@@ -373,7 +373,7 @@ READ8_MEMBER(tapatune_state::controls_r)
}
-READ8_MEMBER(tapatune_state::special_r)
+uint8_t tapatune_state::special_r()
{
// Not sure if this is actually correct
if (m_z80_data_available)
@@ -383,7 +383,7 @@ READ8_MEMBER(tapatune_state::special_r)
}
-WRITE8_MEMBER(tapatune_state::lamps_w)
+void tapatune_state::lamps_w(uint8_t data)
{
/*
Button Lamps:
@@ -407,19 +407,19 @@ WRITE8_MEMBER(tapatune_state::lamps_w)
*
*************************************/
-READ8_MEMBER(tapatune_state::status_r)
+uint8_t tapatune_state::status_r()
{
return !m_bsmt->read_status() << 7;
}
-WRITE8_MEMBER(tapatune_state::bsmt_data_lo_w)
+void tapatune_state::bsmt_data_lo_w(uint8_t data)
{
m_bsmt_data_l = data;
}
-WRITE8_MEMBER(tapatune_state::bsmt_data_hi_w)
+void tapatune_state::bsmt_data_hi_w(uint8_t data)
{
m_bsmt_data_h = data;
@@ -431,7 +431,7 @@ WRITE8_MEMBER(tapatune_state::bsmt_data_hi_w)
}
-WRITE8_MEMBER(tapatune_state::bsmt_reg_w)
+void tapatune_state::bsmt_reg_w(uint8_t data)
{
m_bsmt->write_reg(data);
m_bsmt->write_data((m_bsmt_data_h << 8) | m_bsmt_data_l);
diff --git a/src/mame/drivers/tasc.cpp b/src/mame/drivers/tasc.cpp
index 5a10cc99e5d..e3b59c87f24 100644
--- a/src/mame/drivers/tasc.cpp
+++ b/src/mame/drivers/tasc.cpp
@@ -96,9 +96,9 @@ private:
TIMER_DEVICE_CALLBACK_MEMBER(disable_bootrom) { m_bootrom_enabled = false; }
// I/O handlers
- DECLARE_READ32_MEMBER(bootrom_r);
- DECLARE_READ32_MEMBER(p1000_r);
- DECLARE_WRITE32_MEMBER(p1000_w);
+ uint32_t bootrom_r(offs_t offset);
+ uint32_t p1000_r();
+ void p1000_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
};
void tasc_state::machine_start()
@@ -120,12 +120,12 @@ void tasc_state::machine_reset()
I/O
******************************************************************************/
-READ32_MEMBER(tasc_state::bootrom_r)
+uint32_t tasc_state::bootrom_r(offs_t offset)
{
return (m_bootrom_enabled) ? m_rom[offset] : m_mainram[offset];
}
-READ32_MEMBER(tasc_state::p1000_r)
+uint32_t tasc_state::p1000_r()
{
// disconnect bootrom from the bus after next opcode
if (m_bootrom_enabled && !m_disable_bootrom->enabled() && !machine().side_effects_disabled())
@@ -142,7 +142,7 @@ READ32_MEMBER(tasc_state::p1000_r)
return data;
}
-WRITE32_MEMBER(tasc_state::p1000_w)
+void tasc_state::p1000_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
if (ACCESSING_BITS_24_31)
{
diff --git a/src/mame/drivers/tasman.cpp b/src/mame/drivers/tasman.cpp
index f4c8466dc08..9b0632b6e3a 100644
--- a/src/mame/drivers/tasman.cpp
+++ b/src/mame/drivers/tasman.cpp
@@ -70,11 +70,11 @@ private:
required_device<palette_device> m_palette;
optional_shared_ptr<uint32_t> m_vram;
- DECLARE_READ32_MEMBER(eeprom_r);
- DECLARE_WRITE8_MEMBER(eeprom_w);
- DECLARE_WRITE8_MEMBER(kongambl_ff_w);
- DECLARE_READ32_MEMBER(test_r);
- // DECLARE_READ32_MEMBER(rng_r);
+ uint32_t eeprom_r(offs_t offset, uint32_t mem_mask = ~0);
+ void eeprom_w(offs_t offset, uint8_t data);
+ void kongambl_ff_w(uint8_t data);
+ uint32_t test_r();
+ // uint32_t rng_r();
DECLARE_VIDEO_START(kongambl);
uint8_t m_irq_mask;
@@ -154,7 +154,7 @@ uint32_t kongambl_state::screen_update_kongambl(screen_device &screen, bitmap_in
return 0;
}
-READ32_MEMBER(kongambl_state::eeprom_r)
+uint32_t kongambl_state::eeprom_r(offs_t offset, uint32_t mem_mask)
{
//return machine().rand();
uint32_t retval = 0;
@@ -176,7 +176,7 @@ READ32_MEMBER(kongambl_state::eeprom_r)
return retval;
}
-WRITE8_MEMBER(kongambl_state::eeprom_w)
+void kongambl_state::eeprom_w(offs_t offset, uint8_t data)
{
// offset == 3 seems mux writes (active low)
@@ -193,19 +193,19 @@ WRITE8_MEMBER(kongambl_state::eeprom_w)
m_irq_mask = data;
}
-READ32_MEMBER(kongambl_state::test_r)
+uint32_t kongambl_state::test_r()
{
return -1;//machine().rand();
}
/*
- READ32_MEMBER(kongambl_state::rng_r)
+ uint32_t kongambl_state::rng_r()
{
return machine().rand();
}
*/
-WRITE8_MEMBER(kongambl_state::kongambl_ff_w)
+void kongambl_state::kongambl_ff_w(uint8_t data)
{
/* enables thru 0->1 */
/* ---- x--- (related to OBJ ROM) */
diff --git a/src/mame/drivers/tattack.cpp b/src/mame/drivers/tattack.cpp
index 19ef5a6ba35..5d1b56b7910 100644
--- a/src/mame/drivers/tattack.cpp
+++ b/src/mame/drivers/tattack.cpp
@@ -78,10 +78,10 @@ protected:
virtual void video_start() override;
private:
- DECLARE_WRITE8_MEMBER(paddle_w);
- DECLARE_WRITE8_MEMBER(ball_w);
- DECLARE_WRITE8_MEMBER(brick_dma_w);
- DECLARE_WRITE8_MEMBER(sound_w);
+ void paddle_w(uint8_t data);
+ void ball_w(offs_t offset, uint8_t data);
+ void brick_dma_w(uint8_t data);
+ void sound_w(uint8_t data);
TILE_GET_INFO_MEMBER(get_tile_info);
void tattack_palette(palette_device &palette) const;
@@ -233,17 +233,17 @@ void tattack_state::video_start()
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)
+void tattack_state::paddle_w(uint8_t data)
{
m_paddle_reg = data;
}
-WRITE8_MEMBER(tattack_state::ball_w)
+void tattack_state::ball_w(offs_t offset, uint8_t data)
{
m_ball_regs[offset] = data;
}
-WRITE8_MEMBER(tattack_state::brick_dma_w)
+void tattack_state::brick_dma_w(uint8_t data)
{
// bit 7: 0->1 transfers from RAM to internal video buffer
// bit 6: bricks color bank
@@ -257,7 +257,7 @@ WRITE8_MEMBER(tattack_state::brick_dma_w)
// popmessage("%02x",data&0x7f);
}
-WRITE8_MEMBER(tattack_state::sound_w)
+void tattack_state::sound_w(uint8_t data)
{
// bit 4 enabled on coin insertion (coin counter?)
// bit 3-0 samples enable, @see tattack_sample_names
diff --git a/src/mame/drivers/tec1.cpp b/src/mame/drivers/tec1.cpp
index 067f6841418..f27b8fc26e0 100644
--- a/src/mame/drivers/tec1.cpp
+++ b/src/mame/drivers/tec1.cpp
@@ -60,10 +60,6 @@ The jmon includes a cassette interface, a serial input connection,
and an optional LCD, but the games of the tec1 have been removed.
-ToDo:
-- Save state support
-
-
JMON ToDo:
- Add LCD display (2 rows by 16 characters)
@@ -88,11 +84,11 @@ class tec1_state : public driver_device
public:
tec1_state(const machine_config &mconfig, device_type type, const char *tag)
: driver_device(mconfig, type, tag)
+ , m_key_pressed(0)
, m_maincpu(*this, "maincpu")
, m_speaker(*this, "speaker")
, m_cass(*this, "cassette")
, m_kb(*this, "keyboard")
- , m_key_pressed(0)
, m_io_shift(*this, "SHIFT")
, m_display(*this, "display")
{ }
@@ -103,27 +99,26 @@ public:
DECLARE_INPUT_CHANGED_MEMBER(reset_button);
private:
+ virtual void machine_start() override;
+ u8 kbd_r();
+ u8 latch_r();
+ void tec1_digit_w(u8 data);
+ void tecjmon_digit_w(u8 data);
+ void segment_w(u8 data);
+ DECLARE_WRITE_LINE_MEMBER(da_w);
+ bool m_key_pressed;
+ u8 m_seg;
+ u8 m_digit;
+ void tec1_io(address_map &map);
+ void tec1_map(address_map &map);
+ void tecjmon_io(address_map &map);
+ void tecjmon_map(address_map &map);
required_device<cpu_device> m_maincpu;
required_device<speaker_sound_device> m_speaker;
optional_device<cassette_image_device> m_cass;
required_device<mm74c923_device> m_kb;
- bool m_key_pressed;
required_ioport m_io_shift;
required_device<pwm_display_device> m_display;
-
- DECLARE_READ8_MEMBER(kbd_r);
- DECLARE_READ8_MEMBER(latch_r);
- DECLARE_WRITE8_MEMBER(tec1_digit_w);
- DECLARE_WRITE8_MEMBER(tecjmon_digit_w);
- DECLARE_WRITE8_MEMBER(segment_w);
- DECLARE_WRITE_LINE_MEMBER(da_w);
- uint8_t m_seg;
- uint8_t m_digit;
-
- void tec1_io(address_map &map);
- void tec1_map(address_map &map);
- void tecjmon_io(address_map &map);
- void tecjmon_map(address_map &map);
};
@@ -135,7 +130,7 @@ private:
***************************************************************************/
-WRITE8_MEMBER( tec1_state::segment_w )
+void tec1_state::segment_w(u8 data)
{
/* d7 segment d
d6 segment e
@@ -150,7 +145,7 @@ WRITE8_MEMBER( tec1_state::segment_w )
m_display->matrix(m_digit, m_seg);
}
-WRITE8_MEMBER( tec1_state::tec1_digit_w )
+void tec1_state::tec1_digit_w(u8 data)
{
/* d7 speaker
d6 not used
@@ -167,7 +162,7 @@ WRITE8_MEMBER( tec1_state::tec1_digit_w )
m_display->matrix(m_digit, m_seg);
}
-WRITE8_MEMBER( tec1_state::tecjmon_digit_w )
+void tec1_state::tecjmon_digit_w(u8 data)
{
/* d7 speaker & cassout
d6 not used
@@ -191,10 +186,10 @@ WRITE8_MEMBER( tec1_state::tecjmon_digit_w )
***************************************************************************/
-READ8_MEMBER( tec1_state::latch_r )
+u8 tec1_state::latch_r()
{
// bit 7 - cass in ; bit 6 low = key pressed
- uint8_t data = (m_key_pressed) ? 0 : 0x40;
+ u8 data = (m_key_pressed) ? 0 : 0x40;
if (m_cass->input() > 0.03)
data |= 0x80;
@@ -203,7 +198,7 @@ READ8_MEMBER( tec1_state::latch_r )
}
-READ8_MEMBER( tec1_state::kbd_r )
+u8 tec1_state::kbd_r()
{
return m_kb->read() | m_io_shift->read();
}
@@ -221,7 +216,12 @@ WRITE_LINE_MEMBER( tec1_state::da_w )
***************************************************************************/
-
+void tec1_state::machine_start()
+{
+ save_item(NAME(m_key_pressed));
+ save_item(NAME(m_seg));
+ save_item(NAME(m_digit));
+}
/***************************************************************************
@@ -251,7 +251,7 @@ void tec1_state::tecjmon_map(address_map &map)
map.global_mask(0x3fff);
map(0x0000, 0x07ff).rom();
map(0x0800, 0x37ff).ram();
- map(0x3800, 0x3fff).rom();
+ map(0x3800, 0x3fff).rom().region("maincpu", 0x0800);
}
void tec1_state::tecjmon_io(address_map &map)
@@ -386,7 +386,7 @@ void tec1_state::tecjmon(machine_config &config)
***************************************************************************/
ROM_START(tec1)
- ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x0800, "maincpu", 0 )
ROM_SYSTEM_BIOS(0, "mon1", "MON1")
ROMX_LOAD( "mon1.rom", 0x0000, 0x0800, CRC(5d379e6c) SHA1(5c810885a3f0d03c54aea74aaaa8fae8a2fd9ad4), ROM_BIOS(0) )
ROM_SYSTEM_BIOS(1, "mon1a", "MON1A")
@@ -399,11 +399,11 @@ ROM_START(tec1)
ROM_END
ROM_START(tecjmon)
- ROM_REGION(0x10000, "maincpu", ROMREGION_ERASEFF)
+ ROM_REGION(0x1000, "maincpu", 0 )
ROM_LOAD("jmon.rom", 0x0000, 0x0800, CRC(202c47a2) SHA1(701588ec5640d633d90d94b2ccd6f65422e19a70) )
- ROM_LOAD("util.rom", 0x3800, 0x0800, CRC(7c19700d) SHA1(dc5b3ade66bb11c54430056966ed99cdd299d82b) )
+ ROM_LOAD("util.rom", 0x0800, 0x0800, CRC(7c19700d) SHA1(dc5b3ade66bb11c54430056966ed99cdd299d82b) )
ROM_END
// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
-COMP( 1984, tec1, 0, 0, tec1, tec1, tec1_state, empty_init, "Talking Electronics magazine", "TEC-1", 0 )
-COMP( 1984, tecjmon, tec1, 0, tecjmon, tec1, tec1_state, empty_init, "Talking Electronics magazine", "TEC-1A with JMON", 0 )
+COMP( 1984, tec1, 0, 0, tec1, tec1, tec1_state, empty_init, "Talking Electronics magazine", "TEC-1", MACHINE_SUPPORTS_SAVE )
+COMP( 1984, tecjmon, tec1, 0, tecjmon, tec1, tec1_state, empty_init, "Talking Electronics magazine", "TEC-1A with JMON", MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/techno.cpp b/src/mame/drivers/techno.cpp
index 13cb69af6ec..252a30c25d6 100644
--- a/src/mame/drivers/techno.cpp
+++ b/src/mame/drivers/techno.cpp
@@ -39,20 +39,20 @@ private:
IRQ_ADVANCE_TIMER
};
- DECLARE_READ16_MEMBER(key_r);
- DECLARE_READ16_MEMBER(rtrg_r);
- DECLARE_READ16_MEMBER(sound_r);
- DECLARE_WRITE16_MEMBER(disp1_w);
- DECLARE_WRITE16_MEMBER(disp2_w);
- DECLARE_WRITE16_MEMBER(lamp1_w);
- DECLARE_WRITE16_MEMBER(lamp2_w);
- DECLARE_WRITE16_MEMBER(setout_w);
- DECLARE_WRITE16_MEMBER(sol1_w);
- DECLARE_WRITE16_MEMBER(sol2_w);
- DECLARE_WRITE16_MEMBER(sound_w);
-
- DECLARE_READ8_MEMBER(rd_r) { return 0; }
- DECLARE_WRITE8_MEMBER(wr_w) {}
+ uint16_t key_r();
+ uint16_t rtrg_r();
+ uint16_t sound_r();
+ void disp1_w(uint16_t data);
+ void disp2_w(uint16_t data);
+ void lamp1_w(uint16_t data);
+ void lamp2_w(uint16_t data);
+ void setout_w(uint16_t data);
+ void sol1_w(uint16_t data);
+ void sol2_w(uint16_t data);
+ void sound_w(uint16_t data);
+
+ uint8_t rd_r() { return 0; }
+ void wr_w(uint8_t data) {}
void techno_map(address_map &map);
void techno_sub_map(address_map &map);
@@ -100,17 +100,17 @@ void techno_state::techno_sub_map(address_map &map)
map(0xc000, 0xffff).rom(); // another 16k ROM
}
-WRITE16_MEMBER( techno_state::disp1_w )
+void techno_state::disp1_w(uint16_t data)
{
m_digits[m_digit] = bitswap<16>(data, 12, 10, 8, 14, 13, 9, 11, 15, 7, 6, 5, 4, 3, 2, 1, 0);
}
-WRITE16_MEMBER( techno_state::disp2_w )
+void techno_state::disp2_w(uint16_t data)
{
m_digits[m_digit+30] = bitswap<16>(data, 12, 10, 8, 14, 13, 9, 11, 15, 7, 6, 5, 4, 3, 2, 1, 0);
}
-WRITE16_MEMBER( techno_state::sound_w )
+void techno_state::sound_w(uint16_t data)
{
/*
d0..d7 : to sound board
@@ -132,7 +132,7 @@ d11-d15: AUX outputs
}
// lamps & keymatrix
-WRITE16_MEMBER( techno_state::lamp1_w )
+void techno_state::lamp1_w(uint16_t data)
{
// Work out key row
for (int i = 8; i < 16; i++)
@@ -141,39 +141,39 @@ WRITE16_MEMBER( techno_state::lamp1_w )
}
// more lamps
-WRITE16_MEMBER( techno_state::lamp2_w )
+void techno_state::lamp2_w(uint16_t data)
{
}
// solenoids
-WRITE16_MEMBER( techno_state::sol1_w )
+void techno_state::sol1_w(uint16_t data)
{
}
// more solenoids
-WRITE16_MEMBER( techno_state::sol2_w )
+void techno_state::sol2_w(uint16_t data)
{
}
// unknown
-WRITE16_MEMBER( techno_state::setout_w )
+void techno_state::setout_w(uint16_t data)
{
}
// inputs
-READ16_MEMBER( techno_state::key_r )
+uint16_t techno_state::key_r()
{
return m_switch[m_keyrow]->read();
}
// unknown
-READ16_MEMBER( techno_state::rtrg_r )
+uint16_t techno_state::rtrg_r()
{
return 0xffff;
}
// feedback from sound board, and some AUX inputs
-READ16_MEMBER( techno_state::sound_r )
+uint16_t techno_state::sound_r()
{
return 0;
}
diff --git a/src/mame/drivers/tecnbras.cpp b/src/mame/drivers/tecnbras.cpp
index a7c1dbb964b..a20fa5332a3 100644
--- a/src/mame/drivers/tecnbras.cpp
+++ b/src/mame/drivers/tecnbras.cpp
@@ -42,11 +42,11 @@ private:
virtual void machine_start() override;
virtual void machine_reset() override;
- DECLARE_WRITE8_MEMBER(set_x_position_w);
- DECLARE_WRITE8_MEMBER(print_column_w);
+ void set_x_position_w(offs_t offset, uint8_t data);
+ void print_column_w(offs_t offset, uint8_t data);
- //DECLARE_WRITE8_MEMBER(tecnbras_io_w);
- //DECLARE_READ8_MEMBER(tecnbras_io_r);
+ //void tecnbras_io_w(uint8_t data);
+ //uint8_t tecnbras_io_r();
void i80c31_io(address_map &map);
void i80c31_prg(address_map &map);
@@ -70,12 +70,12 @@ void tecnbras_state::i80c31_io(address_map &map)
map(0x06B8, 0x06BC).w(FUNC(tecnbras_state::print_column_w));
}
-WRITE8_MEMBER(tecnbras_state::set_x_position_w)
+void tecnbras_state::set_x_position_w(offs_t offset, uint8_t data)
{
m_xcoord = offset;
}
-WRITE8_MEMBER(tecnbras_state::print_column_w)
+void tecnbras_state::print_column_w(offs_t offset, uint8_t data)
{
int const x = m_xcoord + offset;
int const ch = x / 5;
diff --git a/src/mame/drivers/tempest.cpp b/src/mame/drivers/tempest.cpp
index b44f2e12f1c..52e999c1798 100644
--- a/src/mame/drivers/tempest.cpp
+++ b/src/mame/drivers/tempest.cpp
@@ -323,17 +323,17 @@ public:
DECLARE_READ_LINE_MEMBER(clock_r);
protected:
- DECLARE_WRITE8_MEMBER(wdclr_w);
- DECLARE_WRITE8_MEMBER(tempest_led_w);
- DECLARE_WRITE8_MEMBER(tempest_coin_w);
+ void wdclr_w(uint8_t data);
+ void tempest_led_w(uint8_t data);
+ void tempest_coin_w(uint8_t data);
uint8_t input_port_1_bit_r(offs_t offset);
uint8_t input_port_2_bit_r(offs_t offset);
- DECLARE_READ8_MEMBER(earom_read);
- DECLARE_WRITE8_MEMBER(earom_write);
- DECLARE_WRITE8_MEMBER(earom_control_w);
+ uint8_t earom_read();
+ void earom_write(offs_t offset, uint8_t data);
+ void earom_control_w(uint8_t data);
- DECLARE_READ8_MEMBER(rom_ae1f_r);
+ uint8_t rom_ae1f_r();
virtual void machine_start() override;
void main_map(address_map &map);
@@ -369,7 +369,7 @@ void tempest_state::machine_start()
*
*************************************/
-WRITE8_MEMBER(tempest_state::wdclr_w)
+void tempest_state::wdclr_w(uint8_t data)
{
m_maincpu->set_input_line(0, CLEAR_LINE);
m_watchdog->watchdog_reset();
@@ -418,7 +418,7 @@ uint8_t tempest_state::input_port_2_bit_r(offs_t offset)
*
*************************************/
-WRITE8_MEMBER(tempest_state::tempest_led_w)
+void tempest_state::tempest_led_w(uint8_t data)
{
m_leds[0] = BIT(~data, 1);
m_leds[1] = BIT(~data, 0);
@@ -427,7 +427,7 @@ WRITE8_MEMBER(tempest_state::tempest_led_w)
}
-WRITE8_MEMBER(tempest_state::tempest_coin_w)
+void tempest_state::tempest_coin_w(uint8_t data)
{
machine().bookkeeping().coin_counter_w(0, (data & 0x01));
machine().bookkeeping().coin_counter_w(1, (data & 0x02));
@@ -444,18 +444,18 @@ WRITE8_MEMBER(tempest_state::tempest_coin_w)
*
*************************************/
-READ8_MEMBER(tempest_state::earom_read)
+uint8_t tempest_state::earom_read()
{
return m_earom->data();
}
-WRITE8_MEMBER(tempest_state::earom_write)
+void tempest_state::earom_write(offs_t offset, uint8_t data)
{
m_earom->set_address(offset & 0x3f);
m_earom->set_data(data);
}
-WRITE8_MEMBER(tempest_state::earom_control_w)
+void tempest_state::earom_control_w(uint8_t data)
{
// CK = EDB0, C1 = /EDB2, C2 = EDB1, CS1 = EDB3, /CS2 = GND
m_earom->set_control(BIT(data, 3), 1, !BIT(data, 2), BIT(data, 1));
@@ -470,7 +470,7 @@ WRITE8_MEMBER(tempest_state::earom_control_w)
*
*************************************/
-READ8_MEMBER(tempest_state::rom_ae1f_r)
+uint8_t tempest_state::rom_ae1f_r()
{
// This is needed to ensure that the routine starting at ae1c passes checks and does not corrupt data;
// config.m_perfect_cpu_quantum = subtag("maincpu"); would be very taxing on this driver.
diff --git a/src/mame/drivers/terak.cpp b/src/mame/drivers/terak.cpp
index 032ed1a0443..d2b7d53141c 100644
--- a/src/mame/drivers/terak.cpp
+++ b/src/mame/drivers/terak.cpp
@@ -28,10 +28,10 @@ public:
void terak(machine_config &config);
private:
- DECLARE_READ16_MEMBER(terak_fdc_status_r);
- DECLARE_WRITE16_MEMBER(terak_fdc_command_w);
- DECLARE_READ16_MEMBER(terak_fdc_data_r);
- DECLARE_WRITE16_MEMBER(terak_fdc_data_w);
+ uint16_t terak_fdc_status_r();
+ void terak_fdc_command_w(uint16_t data);
+ uint16_t terak_fdc_data_r();
+ void terak_fdc_data_w(uint16_t data);
uint32_t screen_update_terak(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void mem_map(address_map &map);
@@ -43,7 +43,7 @@ private:
required_device<t11_device> m_maincpu;
};
-READ16_MEMBER( terak_state::terak_fdc_status_r )
+uint16_t terak_state::terak_fdc_status_r()
{
logerror("terak_fdc_status_r\n");
if (m_cmd==3)
@@ -54,20 +54,20 @@ READ16_MEMBER( terak_state::terak_fdc_status_r )
return 0;
}
-WRITE16_MEMBER( terak_state::terak_fdc_command_w )
+void terak_state::terak_fdc_command_w(uint16_t data)
{
m_unit = (data >> 8) & 0x03;
m_cmd = (data >> 1) & 0x07;
logerror("terak_fdc_command_w %04x [%d %d]\n",data,m_unit,m_cmd);
}
-READ16_MEMBER( terak_state::terak_fdc_data_r )
+uint16_t terak_state::terak_fdc_data_r()
{
logerror("terak_fdc_data_r\n");
return 0;
}
-WRITE16_MEMBER( terak_state::terak_fdc_data_w )
+void terak_state::terak_fdc_data_w(uint16_t data)
{
logerror("terak_fdc_data_w %04x\n",data);
}
diff --git a/src/mame/drivers/tgtpanic.cpp b/src/mame/drivers/tgtpanic.cpp
index faeffcb562e..1077dbb4251 100644
--- a/src/mame/drivers/tgtpanic.cpp
+++ b/src/mame/drivers/tgtpanic.cpp
@@ -35,7 +35,7 @@ private:
uint8_t m_color;
- DECLARE_WRITE8_MEMBER(color_w);
+ void color_w(uint8_t data);
virtual void machine_start() override;
@@ -91,7 +91,7 @@ uint32_t tgtpanic_state::screen_update(screen_device &screen, bitmap_rgb32 &bitm
return 0;
}
-WRITE8_MEMBER(tgtpanic_state::color_w)
+void tgtpanic_state::color_w(uint8_t data)
{
m_screen->update_partial(m_screen->vpos());
m_color = data;
diff --git a/src/mame/drivers/thayers.cpp b/src/mame/drivers/thayers.cpp
index 1b780bd057e..77ba8526a6d 100644
--- a/src/mame/drivers/thayers.cpp
+++ b/src/mame/drivers/thayers.cpp
@@ -80,29 +80,29 @@ private:
int m_cart_present;
int m_pr7820_enter;
struct ssi263_t m_ssi263;
- DECLARE_WRITE8_MEMBER(intrq_w);
- DECLARE_READ8_MEMBER(irqstate_r);
- DECLARE_WRITE8_MEMBER(timer_int_ack_w);
- DECLARE_WRITE8_MEMBER(data_rdy_int_ack_w);
+ void intrq_w(uint8_t data);
+ uint8_t irqstate_r();
+ void timer_int_ack_w(uint8_t data);
+ void data_rdy_int_ack_w(uint8_t data);
void cop_d_w(uint8_t data);
- DECLARE_READ8_MEMBER(cop_data_r);
- DECLARE_WRITE8_MEMBER(cop_data_w);
+ uint8_t cop_data_r();
+ void cop_data_w(uint8_t data);
uint8_t cop_l_r();
void cop_l_w(uint8_t data);
uint8_t cop_g_r();
- DECLARE_WRITE8_MEMBER(control_w);
+ void control_w(uint8_t data);
void cop_g_w(uint8_t data);
DECLARE_READ_LINE_MEMBER(kbdata_r);
DECLARE_WRITE_LINE_MEMBER(kbclk_w);
- DECLARE_WRITE8_MEMBER(control2_w);
- DECLARE_READ8_MEMBER(dsw_b_r);
- DECLARE_READ8_MEMBER(laserdsc_data_r);
- DECLARE_WRITE8_MEMBER(laserdsc_data_w);
- DECLARE_WRITE8_MEMBER(laserdsc_control_w);
- DECLARE_WRITE8_MEMBER(den1_w);
- DECLARE_WRITE8_MEMBER(den2_w);
- DECLARE_WRITE8_MEMBER(ssi263_register_w);
- DECLARE_READ8_MEMBER(ssi263_register_r);
+ void control2_w(uint8_t data);
+ uint8_t dsw_b_r();
+ uint8_t laserdsc_data_r();
+ void laserdsc_data_w(uint8_t data);
+ void laserdsc_control_w(uint8_t data);
+ void den1_w(uint8_t data);
+ void den2_w(uint8_t data);
+ void ssi263_register_w(offs_t offset, uint8_t data);
+ uint8_t ssi263_register_r();
virtual void machine_start() override;
virtual void machine_reset() override;
@@ -149,7 +149,7 @@ void thayers_state::check_interrupt()
}
}
-WRITE8_MEMBER(thayers_state::intrq_w)
+void thayers_state::intrq_w(uint8_t data)
{
// T = 1.1 * R30 * C53 = 1.1 * 750K * 0.01uF = 8.25 ms
@@ -158,7 +158,7 @@ WRITE8_MEMBER(thayers_state::intrq_w)
timer_set(attotime::from_usec(8250), TIMER_INTRQ_TICK);
}
-READ8_MEMBER(thayers_state::irqstate_r)
+uint8_t thayers_state::irqstate_r()
{
/*
@@ -178,7 +178,7 @@ READ8_MEMBER(thayers_state::irqstate_r)
return m_cart_present << 6 | (m_data_rdy_int << 5) | (m_timer_int << 4) | 0x08 | (m_ssi_data_request << 2);
}
-WRITE8_MEMBER(thayers_state::timer_int_ack_w)
+void thayers_state::timer_int_ack_w(uint8_t data)
{
if (LOG) logerror("%s %s TIMER INT ACK\n", machine().time().as_string(), machine().describe_context());
@@ -187,7 +187,7 @@ WRITE8_MEMBER(thayers_state::timer_int_ack_w)
check_interrupt();
}
-WRITE8_MEMBER(thayers_state::data_rdy_int_ack_w)
+void thayers_state::data_rdy_int_ack_w(uint8_t data)
{
if (LOG) logerror("%s %s DATA RDY INT ACK\n", machine().time().as_string(), machine().describe_context());
@@ -226,7 +226,7 @@ void thayers_state::cop_d_w(uint8_t data)
/* COP Communication */
-READ8_MEMBER(thayers_state::cop_data_r)
+uint8_t thayers_state::cop_data_r()
{
if (!m_cop_data_latch_enable)
{
@@ -238,7 +238,7 @@ READ8_MEMBER(thayers_state::cop_data_r)
}
}
-WRITE8_MEMBER(thayers_state::cop_data_w)
+void thayers_state::cop_data_w(uint8_t data)
{
m_cop_data_latch = data;
if (LOG) logerror("COP DATA %02x\n", m_cop_data_latch);
@@ -278,7 +278,7 @@ uint8_t thayers_state::cop_g_r()
return m_cop_cmd_latch;
}
-WRITE8_MEMBER(thayers_state::control_w)
+void thayers_state::control_w(uint8_t data)
{
/*
@@ -377,7 +377,7 @@ WRITE_LINE_MEMBER(thayers_state::kbclk_w)
/* I/O Board */
-WRITE8_MEMBER(thayers_state::control2_w)
+void thayers_state::control2_w(uint8_t data)
{
/*
@@ -400,24 +400,24 @@ WRITE8_MEMBER(thayers_state::control2_w)
}
}
-READ8_MEMBER(thayers_state::dsw_b_r)
+uint8_t thayers_state::dsw_b_r()
{
return (ioport("COIN")->read() & 0xf0) | (ioport("DSWB")->read() & 0x0f);
}
-READ8_MEMBER(thayers_state::laserdsc_data_r)
+uint8_t thayers_state::laserdsc_data_r()
{
if (m_ldv1000 != nullptr) return m_ldv1000->status_r();
if (m_pr7820 != nullptr) return m_pr7820->data_r();
return 0;
}
-WRITE8_MEMBER(thayers_state::laserdsc_data_w)
+void thayers_state::laserdsc_data_w(uint8_t data)
{
m_laserdisc_data = data;
}
-WRITE8_MEMBER(thayers_state::laserdsc_control_w)
+void thayers_state::laserdsc_control_w(uint8_t data)
{
/*
@@ -453,7 +453,7 @@ WRITE8_MEMBER(thayers_state::laserdsc_control_w)
}
}
-WRITE8_MEMBER(thayers_state::den1_w)
+void thayers_state::den1_w(uint8_t data)
{
/*
@@ -473,7 +473,7 @@ WRITE8_MEMBER(thayers_state::den1_w)
m_digits[data >> 4] = led_map[data & 0x0f];
}
-WRITE8_MEMBER(thayers_state::den2_w)
+void thayers_state::den2_w(uint8_t data)
{
/*
@@ -511,7 +511,7 @@ static const char SSI263_PHONEMES[0x40][5] =
"L", "L1", "LF", "W", "B", "D", "KV", "P", "T", "K", "HV", "HVC", "HF", "HFC", "HN", "Z", "S", "J", "SCH", "V", "F", "THV", "TH", "M", "N", "NG", ":A", ":OH", ":U", ":UH", "E2", "LB"
};
-WRITE8_MEMBER(thayers_state::ssi263_register_w)
+void thayers_state::ssi263_register_w(offs_t offset, uint8_t data)
{
struct ssi263_t &ssi263 = m_ssi263;
switch (offset)
@@ -614,7 +614,7 @@ WRITE8_MEMBER(thayers_state::ssi263_register_w)
}
}
-READ8_MEMBER(thayers_state::ssi263_register_r)
+uint8_t thayers_state::ssi263_register_r()
{
// D7 becomes an output, as the inverted state of A/_R. The register address bits are ignored.
diff --git a/src/mame/drivers/thedealr.cpp b/src/mame/drivers/thedealr.cpp
index 2519435c9fd..f84827ab4de 100644
--- a/src/mame/drivers/thedealr.cpp
+++ b/src/mame/drivers/thedealr.cpp
@@ -57,15 +57,15 @@ public:
private:
// IOX
- DECLARE_READ8_MEMBER(iox_r);
- DECLARE_WRITE8_MEMBER(iox_w);
- DECLARE_READ8_MEMBER(iox_status_r);
+ uint8_t iox_r();
+ void iox_w(uint8_t data);
+ uint8_t iox_status_r();
uint8_t m_iox_cmd, m_iox_ret, m_iox_status, m_iox_leds, m_iox_coins;
void iox_reset();
// memory map
- DECLARE_READ8_MEMBER(irq_ack_r);
- DECLARE_WRITE8_MEMBER(unk_w);
+ uint8_t irq_ack_r();
+ void unk_w(uint8_t data);
// machine
TIMER_DEVICE_CALLBACK_MEMBER(thedealr_interrupt);
@@ -150,7 +150,7 @@ void thedealr_state::machine_reset()
}
// 3400
-READ8_MEMBER(thedealr_state::iox_r)
+uint8_t thedealr_state::iox_r()
{
uint8_t ret = m_iox_ret;
m_iox_status &= ~IOX_OUT_FULL;
@@ -158,7 +158,7 @@ READ8_MEMBER(thedealr_state::iox_r)
logerror("%s: IOX read %02X\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(thedealr_state::iox_w)
+void thedealr_state::iox_w(uint8_t data)
{
if (m_iox_status & IOX_WAITDATA)
{
@@ -253,7 +253,7 @@ WRITE8_MEMBER(thedealr_state::iox_w)
}
// 3401
-READ8_MEMBER(thedealr_state::iox_status_r)
+uint8_t thedealr_state::iox_status_r()
{
// bit 0 - Out buff full?
// bit 1 - In buff full?
@@ -267,13 +267,13 @@ READ8_MEMBER(thedealr_state::iox_status_r)
***************************************************************************/
-READ8_MEMBER(thedealr_state::irq_ack_r)
+uint8_t thedealr_state::irq_ack_r()
{
m_maincpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE);
return 0;
}
-WRITE8_MEMBER(thedealr_state::unk_w)
+void thedealr_state::unk_w(uint8_t data)
{
// bit 1 - ? 1 during game
// bit 2 - ? 0 during game
diff --git a/src/mame/drivers/ti990_4.cpp b/src/mame/drivers/ti990_4.cpp
index b51fe1edf50..ffa4c58fe4b 100644
--- a/src/mame/drivers/ti990_4.cpp
+++ b/src/mame/drivers/ti990_4.cpp
@@ -62,8 +62,8 @@ public:
void init_ti990_4v();
private:
- DECLARE_READ8_MEMBER( panel_read );
- DECLARE_WRITE8_MEMBER( panel_write );
+ uint8_t panel_read(offs_t offset);
+ void panel_write(offs_t offset, uint8_t data);
void external_operation(offs_t offset, uint8_t data);
uint8_t interrupt_level();
DECLARE_WRITE_LINE_MEMBER( fd_interrupt );
@@ -113,7 +113,7 @@ void ti990_4_state::device_timer(emu_timer &timer, device_timer_id id, int param
logerror("ti990_4: Released LOAD interrupt\n");
}
-READ8_MEMBER( ti990_4_state::panel_read )
+uint8_t ti990_4_state::panel_read(offs_t offset)
{
if (offset == 11 || offset == 14)
return 1;
@@ -121,7 +121,7 @@ READ8_MEMBER( ti990_4_state::panel_read )
return 0;
}
-WRITE8_MEMBER( ti990_4_state::panel_write )
+void ti990_4_state::panel_write(offs_t offset, uint8_t data)
{
logerror("ti990_4: writing to panel @CRU %04x: %02x\n", offset<<1, data);
}
diff --git a/src/mame/drivers/ti99_2.cpp b/src/mame/drivers/ti99_2.cpp
index 3fcd0dc9e38..ebbefc6d042 100644
--- a/src/mame/drivers/ti99_2.cpp
+++ b/src/mame/drivers/ti99_2.cpp
@@ -209,7 +209,7 @@ public:
void driver_reset() override;
private:
- DECLARE_WRITE8_MEMBER(intflag_write);
+ void intflag_write(offs_t offset, uint8_t data);
uint8_t mem_read(offs_t offset);
void mem_write(offs_t offset, uint8_t data);
@@ -288,7 +288,7 @@ void ti99_2_state::crumap(address_map &map)
These CRU addresses are actually inside the 9995 CPU, but they are
propagated to the outside world, so we can watch the changes.
*/
-WRITE8_MEMBER(ti99_2_state::intflag_write)
+void ti99_2_state::intflag_write(offs_t offset, uint8_t data)
{
int addr = 0x1ee0 | (offset<<1);
switch (addr)
diff --git a/src/mame/drivers/tickee.cpp b/src/mame/drivers/tickee.cpp
index 94a9543181b..076043c17f6 100644
--- a/src/mame/drivers/tickee.cpp
+++ b/src/mame/drivers/tickee.cpp
@@ -75,16 +75,16 @@ private:
uint8_t m_gunx[2];
void get_crosshair_xy(int player, int &x, int &y);
- DECLARE_WRITE16_MEMBER(rapidfir_transparent_w);
- DECLARE_READ16_MEMBER(rapidfir_transparent_r);
- DECLARE_WRITE16_MEMBER(tickee_control_w);
- DECLARE_READ16_MEMBER(ffff_r);
- DECLARE_READ16_MEMBER(rapidfir_gun1_r);
- DECLARE_READ16_MEMBER(rapidfir_gun2_r);
- DECLARE_READ16_MEMBER(ff7f_r);
- DECLARE_WRITE16_MEMBER(ff7f_w);
- DECLARE_WRITE16_MEMBER(rapidfir_control_w);
- DECLARE_WRITE16_MEMBER(sound_bank_w);
+ void rapidfir_transparent_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ uint16_t rapidfir_transparent_r(offs_t offset);
+ void tickee_control_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ uint16_t ffff_r();
+ uint16_t rapidfir_gun1_r();
+ uint16_t rapidfir_gun2_r();
+ uint16_t ff7f_r();
+ void ff7f_w(uint16_t data);
+ void rapidfir_control_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void sound_bank_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
DECLARE_MACHINE_RESET(tickee);
DECLARE_VIDEO_START(tickee);
DECLARE_MACHINE_RESET(rapidfir);
@@ -298,7 +298,7 @@ MACHINE_RESET_MEMBER(tickee_state,rapidfir)
*
*************************************/
-WRITE16_MEMBER(tickee_state::rapidfir_transparent_w)
+void tickee_state::rapidfir_transparent_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
if (!(data & 0xff00)) mem_mask &= 0x00ff;
if (!(data & 0x00ff)) mem_mask &= 0xff00;
@@ -306,7 +306,7 @@ WRITE16_MEMBER(tickee_state::rapidfir_transparent_w)
}
-READ16_MEMBER(tickee_state::rapidfir_transparent_r)
+uint16_t tickee_state::rapidfir_transparent_r(offs_t offset)
{
return m_vram[offset];
}
@@ -333,7 +333,7 @@ TMS340X0_FROM_SHIFTREG_CB_MEMBER(tickee_state::rapidfir_from_shiftreg)
*
*************************************/
-WRITE16_MEMBER(tickee_state::tickee_control_w)
+void tickee_state::tickee_control_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
uint16_t olddata = m_control[offset];
@@ -364,36 +364,36 @@ WRITE16_MEMBER(tickee_state::tickee_control_w)
*
*************************************/
-READ16_MEMBER(tickee_state::ffff_r)
+uint16_t tickee_state::ffff_r()
{
return 0xffff;
}
-READ16_MEMBER(tickee_state::rapidfir_gun1_r)
+uint16_t tickee_state::rapidfir_gun1_r()
{
return m_gunx[0];
}
-READ16_MEMBER(tickee_state::rapidfir_gun2_r)
+uint16_t tickee_state::rapidfir_gun2_r()
{
return m_gunx[1];
}
-READ16_MEMBER(tickee_state::ff7f_r)
+uint16_t tickee_state::ff7f_r()
{
/* Ticket dispenser status? */
return 0xff7f;
}
-WRITE16_MEMBER(tickee_state::ff7f_w)
+void tickee_state::ff7f_w(uint16_t data)
{
/* Ticket dispenser output? */
}
-WRITE16_MEMBER(tickee_state::rapidfir_control_w)
+void tickee_state::rapidfir_control_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
/* other bits like control on tickee? */
if (ACCESSING_BITS_0_7)
@@ -408,7 +408,7 @@ WRITE16_MEMBER(tickee_state::rapidfir_control_w)
*
*************************************/
-WRITE16_MEMBER(tickee_state::sound_bank_w)
+void tickee_state::sound_bank_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
switch (data & 0xff)
{
diff --git a/src/mame/drivers/tim011.cpp b/src/mame/drivers/tim011.cpp
index d24b12c2b40..3f44222ce2c 100644
--- a/src/mame/drivers/tim011.cpp
+++ b/src/mame/drivers/tim011.cpp
@@ -36,11 +36,11 @@ private:
virtual void machine_reset() override;
virtual void video_start() override;
uint32_t screen_update_tim011(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- DECLARE_WRITE8_MEMBER(print_w);
- DECLARE_WRITE8_MEMBER(scroll_w);
- DECLARE_WRITE8_MEMBER(fdc_dma_w);
- DECLARE_READ8_MEMBER(print_r);
- DECLARE_READ8_MEMBER(scroll_r);
+ void print_w(uint8_t data);
+ void scroll_w(uint8_t data);
+ void fdc_dma_w(uint8_t data);
+ uint8_t print_r();
+ uint8_t scroll_r();
uint8_t m_scroll;
required_device<cpu_device> m_maincpu;
@@ -94,28 +94,28 @@ uint32_t tim011_state::screen_update_tim011(screen_device &screen, bitmap_ind16
return 0;
}
-WRITE8_MEMBER(tim011_state::fdc_dma_w)
+void tim011_state::fdc_dma_w(uint8_t data)
{
printf("fdc_dma_w :%02x\n",data);
}
-WRITE8_MEMBER(tim011_state::print_w)
+void tim011_state::print_w(uint8_t data)
{
//printf("print_w :%02x\n",data);
}
-READ8_MEMBER(tim011_state::print_r)
+uint8_t tim011_state::print_r()
{
//printf("print_r\n");
return 0;
}
-WRITE8_MEMBER(tim011_state::scroll_w)
+void tim011_state::scroll_w(uint8_t data)
{
m_scroll = data;
}
-READ8_MEMBER(tim011_state::scroll_r)
+uint8_t tim011_state::scroll_r()
{
return m_scroll;
}
diff --git a/src/mame/drivers/tk80.cpp b/src/mame/drivers/tk80.cpp
index 28dd24614e4..41afcce9597 100644
--- a/src/mame/drivers/tk80.cpp
+++ b/src/mame/drivers/tk80.cpp
@@ -78,8 +78,8 @@ private:
uint8_t serial_r();
void serial_w(uint8_t data);
void mikrolab_serial_w(uint8_t data);
- DECLARE_READ8_MEMBER(display_r);
- DECLARE_WRITE8_MEMBER(display_w);
+ uint8_t display_r(offs_t offset);
+ void display_w(offs_t offset, uint8_t data);
void ics8080_mem(address_map &map);
void mikrolab_io(address_map &map);
@@ -111,12 +111,12 @@ void tk80_state::machine_start()
save_item(NAME(m_ppi_portc));
}
-READ8_MEMBER( tk80_state::display_r )
+uint8_t tk80_state::display_r(offs_t offset)
{
return m_digit[offset & 0x7];
}
-WRITE8_MEMBER( tk80_state::display_w )
+void tk80_state::display_w(offs_t offset, uint8_t data)
{
m_digit[offset & 0x7] = data;
}
diff --git a/src/mame/drivers/tm990189.cpp b/src/mame/drivers/tm990189.cpp
index 7303370e7b4..c5d4b5e01a3 100644
--- a/src/mame/drivers/tm990189.cpp
+++ b/src/mame/drivers/tm990189.cpp
@@ -101,10 +101,10 @@ public:
DECLARE_INPUT_CHANGED_MEMBER( load_interrupt );
private:
- DECLARE_READ8_MEMBER(video_vdp_r);
- DECLARE_WRITE8_MEMBER(video_vdp_w);
- DECLARE_READ8_MEMBER(video_joy_r);
- DECLARE_WRITE8_MEMBER(video_joy_w);
+ uint8_t video_vdp_r(offs_t offset);
+ void video_vdp_w(offs_t offset, uint8_t data);
+ uint8_t video_joy_r();
+ void video_joy_w(uint8_t data);
void external_operation(offs_t offset, uint8_t data);
@@ -587,7 +587,7 @@ void tm990189_state::external_operation(offs_t offset, uint8_t data)
Video Board handling
*/
-READ8_MEMBER( tm990189_state::video_vdp_r )
+uint8_t tm990189_state::video_vdp_r(offs_t offset)
{
int reply = 0;
@@ -618,7 +618,7 @@ READ8_MEMBER( tm990189_state::video_vdp_r )
return reply;
}
-WRITE8_MEMBER( tm990189_state::video_vdp_w )
+void tm990189_state::video_vdp_w(offs_t offset, uint8_t data)
{
if (offset & 1)
{
@@ -629,7 +629,7 @@ WRITE8_MEMBER( tm990189_state::video_vdp_w )
}
}
-READ8_MEMBER( tm990189_state::video_joy_r )
+uint8_t tm990189_state::video_joy_r()
{
uint8_t data = ioport("BUTTONS")->read();
@@ -648,7 +648,7 @@ READ8_MEMBER( tm990189_state::video_joy_r )
return data;
}
-WRITE8_MEMBER( tm990189_state::video_joy_w )
+void tm990189_state::video_joy_w(uint8_t data)
{
m_joy1x_timer->reset(attotime::from_usec(ioport("JOY1_X")->read()*28+28));
m_joy1y_timer->reset(attotime::from_usec(ioport("JOY1_Y")->read()*28+28));
diff --git a/src/mame/drivers/tmaster.cpp b/src/mame/drivers/tmaster.cpp
index 0c84029c299..7e4445a9e98 100644
--- a/src/mame/drivers/tmaster.cpp
+++ b/src/mame/drivers/tmaster.cpp
@@ -140,8 +140,8 @@ private:
DECLARE_WRITE_LINE_MEMBER(duart_irq_handler);
- DECLARE_READ16_MEMBER(rtc_r);
- DECLARE_WRITE16_MEMBER(rtc_w);
+ uint16_t rtc_r(offs_t offset);
+ void rtc_w(offs_t offset, uint16_t data);
void tmaster_map(address_map &map);
void cpu_space_map(address_map &map);
@@ -232,7 +232,7 @@ uint8_t binary_to_bcd(uint8_t data)
return ((data / 10) << 4) | (data % 10);
}
-READ16_MEMBER(tmaster_state::rtc_r)
+uint16_t tmaster_state::rtc_r(offs_t offset)
{
system_time systime;
@@ -248,7 +248,7 @@ READ16_MEMBER(tmaster_state::rtc_r)
return m_rtc_ram[offset];
}
-WRITE16_MEMBER(tmaster_state::rtc_w)
+void tmaster_state::rtc_w(offs_t offset, uint16_t data)
{
if ( offset == 0 )
{
diff --git a/src/mame/drivers/tmmjprd.cpp b/src/mame/drivers/tmmjprd.cpp
index 16a39d24ac1..4315b0c991c 100644
--- a/src/mame/drivers/tmmjprd.cpp
+++ b/src/mame/drivers/tmmjprd.cpp
@@ -95,15 +95,15 @@ private:
emu_timer *m_blit_done_timer;
#endif
- template<uint8_t Tilemap> DECLARE_WRITE32_MEMBER(tilemap_w);
- template<uint8_t Tilemap> DECLARE_READ32_MEMBER(tilemap_r);
- DECLARE_READ32_MEMBER(randomtmmjprds);
- DECLARE_READ32_MEMBER(mux_r);
- template<uint8_t Number> DECLARE_WRITE32_MEMBER(brt_w);
- DECLARE_WRITE32_MEMBER(eeprom_write);
+ template<uint8_t Tilemap> void tilemap_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ template<uint8_t Tilemap> uint32_t tilemap_r(offs_t offset);
+ uint32_t randomtmmjprds();
+ uint32_t mux_r();
+ template<uint8_t Number> void brt_w(uint32_t data);
+ void eeprom_write(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
#if EMULATE_BLITTER
- DECLARE_WRITE32_MEMBER(blitter_w);
+ void blitter_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
void do_blit();
#endif
@@ -124,7 +124,7 @@ private:
};
template<uint8_t Tilemap>
-WRITE32_MEMBER(tmmjprd_state::tilemap_w)
+void tmmjprd_state::tilemap_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
COMBINE_DATA(&m_tilemap_ram[Tilemap][offset]);
}
@@ -382,12 +382,12 @@ void tmmjprd_state::video_start()
}
template<uint8_t Tilemap>
-READ32_MEMBER(tmmjprd_state::tilemap_r)
+uint32_t tmmjprd_state::tilemap_r(offs_t offset)
{
return m_tilemap_ram[Tilemap][offset];
}
-READ32_MEMBER(tmmjprd_state::randomtmmjprds)
+uint32_t tmmjprd_state::randomtmmjprds()
{
return 0x0000;//machine().rand();
}
@@ -497,7 +497,7 @@ void tmmjprd_state::do_blit()
-WRITE32_MEMBER(tmmjprd_state::blitter_w)
+void tmmjprd_state::blitter_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
COMBINE_DATA(&m_blitterregs[offset]);
@@ -518,7 +518,7 @@ void tmmjprd_state::machine_start()
save_item(NAME(m_system_in));
}
-WRITE32_MEMBER(tmmjprd_state::eeprom_write)
+void tmmjprd_state::eeprom_write(offs_t offset, uint32_t data, uint32_t mem_mask)
{
// don't disturb the EEPROM if we're not actually writing to it
// (in particular, data & 0x100 here with mask = ffff00ff looks to be the watchdog)
@@ -538,7 +538,7 @@ WRITE32_MEMBER(tmmjprd_state::eeprom_write)
}
}
-READ32_MEMBER(tmmjprd_state::mux_r)
+uint32_t tmmjprd_state::mux_r()
{
m_system_in = m_system->read();
@@ -646,7 +646,7 @@ INPUT_PORTS_END
/* notice that data & 0x4 is always cleared on brt_1 and set on brt_2. *
* My wild guess is that bits 0,1 and 2 controls what palette entries to dim. */
template<uint8_t Number>
-WRITE32_MEMBER(tmmjprd_state::brt_w)
+void tmmjprd_state::brt_w(uint32_t data)
{
data>>=24;
double brt = ((data & 0x78)>>3) / 15.0;
diff --git a/src/mame/drivers/tmspoker.cpp b/src/mame/drivers/tmspoker.cpp
index 861b5d2fdba..a6f2efe0fb6 100644
--- a/src/mame/drivers/tmspoker.cpp
+++ b/src/mame/drivers/tmspoker.cpp
@@ -247,8 +247,8 @@ private:
required_device_array<ls259_device, 4> m_outlatch;
required_ioport_array<3> m_inputs;
- DECLARE_WRITE8_MEMBER(tmspoker_videoram_w);
- //DECLARE_WRITE8_MEMBER(debug_w);
+ void tmspoker_videoram_w(offs_t offset, uint8_t data);
+ //void debug_w(uint8_t data);
uint8_t inputs_r(offs_t offset);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
void tmspoker_palette(palette_device &palette) const;
@@ -264,7 +264,7 @@ private:
* Video Hardware *
*************************/
-WRITE8_MEMBER(tmspoker_state::tmspoker_videoram_w)
+void tmspoker_state::tmspoker_videoram_w(offs_t offset, uint8_t data)
{
m_videoram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset);
@@ -304,7 +304,7 @@ void tmspoker_state::tmspoker_palette(palette_device &palette) const
* Read / Write Handlers *
**************************/
-//WRITE8_MEMBER(tmspoker_state::debug_w)
+//void tmspoker_state::debug_w(uint8_t data)
//{
// popmessage("written : %02X", data);
//}
diff --git a/src/mame/drivers/toki_ms.cpp b/src/mame/drivers/toki_ms.cpp
index 947f69fc1c5..1794603f2b7 100644
--- a/src/mame/drivers/toki_ms.cpp
+++ b/src/mame/drivers/toki_ms.cpp
@@ -313,15 +313,15 @@ private:
TILE_GET_INFO_MEMBER(get_bk2_info);
TILE_GET_INFO_MEMBER(get_tile_info);
void draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect);
- DECLARE_WRITE16_MEMBER(bk1vram_w);
- DECLARE_WRITE16_MEMBER(bk2vram_w);
- DECLARE_WRITE16_MEMBER(vram_w);
+ void bk1vram_w(offs_t offset, u16 data, u16 mem_mask = ~0);
+ void bk2vram_w(offs_t offset, u16 data, u16 mem_mask = ~0);
+ void vram_w(offs_t offset, u16 data, u16 mem_mask = ~0);
tilemap_t *m_bk1_tilemap;
tilemap_t *m_bk2_tilemap;
tilemap_t *m_tx_tilemap;
- DECLARE_READ8_MEMBER(palette_r);
- DECLARE_WRITE8_MEMBER(palette_w);
+ u8 palette_r(offs_t offset);
+ void palette_w(offs_t offset, u8 data);
std::unique_ptr<u8 []> m_paletteram;
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
@@ -329,9 +329,9 @@ private:
void tokims_map(address_map &map);
void audio_map(address_map &map);
- DECLARE_READ8_MEMBER(sound_status_r);
- DECLARE_WRITE8_MEMBER(sound_command_w);
- DECLARE_WRITE8_MEMBER(adpcm_w);
+ u8 sound_status_r();
+ void sound_command_w(u8 data);
+ void adpcm_w(u8 data);
DECLARE_WRITE_LINE_MEMBER(adpcm_int);
u8 m_adpcm_data;
};
@@ -457,30 +457,30 @@ uint32_t toki_ms_state::screen_update(screen_device &screen, bitmap_ind16 &bitma
return 0;
}
-WRITE16_MEMBER(toki_ms_state::bk1vram_w)
+void toki_ms_state::bk1vram_w(offs_t offset, u16 data, u16 mem_mask)
{
COMBINE_DATA(&m_bk1vram[offset]);
m_bk1_tilemap->mark_tile_dirty(offset);
}
-WRITE16_MEMBER(toki_ms_state::bk2vram_w)
+void toki_ms_state::bk2vram_w(offs_t offset, u16 data, u16 mem_mask)
{
COMBINE_DATA(&m_bk2vram[offset]);
m_bk2_tilemap->mark_tile_dirty(offset);
}
-WRITE16_MEMBER(toki_ms_state::vram_w)
+void toki_ms_state::vram_w(offs_t offset, u16 data, u16 mem_mask)
{
COMBINE_DATA(&m_vram[offset]);
m_tx_tilemap->mark_tile_dirty(offset);
}
-READ8_MEMBER(toki_ms_state::palette_r)
+u8 toki_ms_state::palette_r(offs_t offset)
{
return m_paletteram[offset];
}
-WRITE8_MEMBER(toki_ms_state::palette_w)
+void toki_ms_state::palette_w(offs_t offset, u8 data)
{
m_paletteram[offset] = data;
// xBGR444 over an 8-bit bus
@@ -493,7 +493,7 @@ WRITE8_MEMBER(toki_ms_state::palette_w)
m_palette->set_pen_color(pal_entry, pal4bit(r),pal4bit(g),pal4bit(b));
}
-READ8_MEMBER(toki_ms_state::sound_status_r)
+u8 toki_ms_state::sound_status_r()
{
// if non-zero skips new command, either soundlatch readback or audiocpu handshake
return 0;
@@ -501,7 +501,7 @@ READ8_MEMBER(toki_ms_state::sound_status_r)
// TODO: remove this trampoline after confirming it just writes to the sound latch
// (definitely it isn't tied to irq 0)
-WRITE8_MEMBER(toki_ms_state::sound_command_w)
+void toki_ms_state::sound_command_w(u8 data)
{
m_soundlatch->write(data & 0xff);
}
@@ -524,7 +524,7 @@ void toki_ms_state::tokims_map(address_map &map)
map(0x0c000e, 0x0c000f).rw(FUNC(toki_ms_state::sound_status_r), FUNC(toki_ms_state::sound_command_w)).umask16(0x00ff);
}
-WRITE8_MEMBER(toki_ms_state::adpcm_w)
+void toki_ms_state::adpcm_w(u8 data)
{
// membank("sound_bank")->set_entry(((data & 0x10) >> 4) ^ 1);
m_msm->reset_w(BIT(data, 4));
@@ -811,13 +811,13 @@ ROM_END
void toki_ms_state::init_tokims()
{
// copied verbatim from toki.cpp
- uint8_t temp[0x20000];
+ u8 temp[0x20000];
int len = memregion("gfx3")->bytes();
- uint8_t *rom = memregion("gfx3")->base();
+ u8 *rom = memregion("gfx3")->base();
for (int offs = 0; offs < len; offs += 0x20000)
{
- uint8_t *base = &rom[offs];
+ u8 *base = &rom[offs];
memcpy (&temp[0], base, 65536 * 2);
for (int i = 0; i < 16; i++)
{
@@ -832,7 +832,7 @@ void toki_ms_state::init_tokims()
rom = memregion("gfx4")->base();
for (int offs = 0; offs < len; offs += 0x20000)
{
- uint8_t *base = &rom[offs];
+ u8 *base = &rom[offs];
memcpy (&temp[0], base, 65536 * 2);
for (int i = 0; i < 16; i++)
{
diff --git a/src/mame/drivers/tomcat.cpp b/src/mame/drivers/tomcat.cpp
index c8b1e3503d5..169698b6da5 100644
--- a/src/mame/drivers/tomcat.cpp
+++ b/src/mame/drivers/tomcat.cpp
@@ -60,22 +60,22 @@ public:
void tomcat(machine_config &config);
private:
- DECLARE_WRITE8_MEMBER(adcon_w);
- DECLARE_READ16_MEMBER(tomcat_inputs_r);
- DECLARE_WRITE16_MEMBER(main_latch_w);
+ void adcon_w(uint8_t data);
+ uint16_t tomcat_inputs_r(offs_t offset, uint16_t mem_mask = ~0);
+ void main_latch_w(offs_t offset, uint16_t data);
DECLARE_WRITE_LINE_MEMBER(lnkmode_w);
DECLARE_WRITE_LINE_MEMBER(err_w);
DECLARE_WRITE_LINE_MEMBER(ack_w);
DECLARE_WRITE_LINE_MEMBER(txbuff_w);
DECLARE_WRITE_LINE_MEMBER(sndres_w);
DECLARE_WRITE_LINE_MEMBER(mres_w);
- DECLARE_WRITE16_MEMBER(tomcat_irqclr_w);
- DECLARE_READ16_MEMBER(tomcat_inputs2_r);
- DECLARE_READ16_MEMBER(tomcat_320bio_r);
- DECLARE_READ8_MEMBER(tomcat_nvram_r);
- DECLARE_WRITE8_MEMBER(tomcat_nvram_w);
+ void tomcat_irqclr_w(uint16_t data);
+ uint16_t tomcat_inputs2_r();
+ uint16_t tomcat_320bio_r();
+ uint8_t tomcat_nvram_r(offs_t offset);
+ void tomcat_nvram_w(offs_t offset, uint8_t data);
DECLARE_READ_LINE_MEMBER(dsp_bio_r);
- DECLARE_WRITE8_MEMBER(soundlatches_w);
+ void soundlatches_w(offs_t offset, uint8_t data);
virtual void machine_start() override;
void dsp_map(address_map &map);
void sound_map(address_map &map);
@@ -95,13 +95,13 @@ private:
-WRITE8_MEMBER(tomcat_state::adcon_w)
+void tomcat_state::adcon_w(uint8_t data)
{
m_adc->address_w(data & 7);
m_adc->start_w(BIT(data, 3));
}
-READ16_MEMBER(tomcat_state::tomcat_inputs_r)
+uint16_t tomcat_state::tomcat_inputs_r(offs_t offset, uint16_t mem_mask)
{
uint16_t result = 0;
if (ACCESSING_BITS_8_15)
@@ -110,7 +110,7 @@ READ16_MEMBER(tomcat_state::tomcat_inputs_r)
return result;
}
-WRITE16_MEMBER(tomcat_state::main_latch_w)
+void tomcat_state::main_latch_w(offs_t offset, uint16_t data)
{
// A1-A3 = address, A4 = data
m_mainlatch->write_bit(offset & 7, BIT(offset, 3));
@@ -155,13 +155,13 @@ WRITE_LINE_MEMBER(tomcat_state::mres_w)
m_dsp->set_input_line(INPUT_LINE_RESET, state ? CLEAR_LINE : ASSERT_LINE);
}
-WRITE16_MEMBER(tomcat_state::tomcat_irqclr_w)
+void tomcat_state::tomcat_irqclr_w(uint16_t data)
{
// Clear IRQ Latch (Address Strobe)
m_maincpu->set_input_line(1, CLEAR_LINE);
}
-READ16_MEMBER(tomcat_state::tomcat_inputs2_r)
+uint16_t tomcat_state::tomcat_inputs2_r()
{
/*
* D15 LNKFLAG (Game Link)
@@ -176,7 +176,7 @@ READ16_MEMBER(tomcat_state::tomcat_inputs2_r)
return m_dsp_idle ? 0 : (1 << 9);
}
-READ16_MEMBER(tomcat_state::tomcat_320bio_r)
+uint16_t tomcat_state::tomcat_320bio_r()
{
m_dsp_bio = 1;
m_maincpu->suspend(SUSPEND_REASON_SPIN, 1);
@@ -215,12 +215,12 @@ READ_LINE_MEMBER(tomcat_state::dsp_bio_r)
}
}
-READ8_MEMBER(tomcat_state::tomcat_nvram_r)
+uint8_t tomcat_state::tomcat_nvram_r(offs_t offset)
{
return m_nvram[offset];
}
-WRITE8_MEMBER(tomcat_state::tomcat_nvram_w)
+void tomcat_state::tomcat_nvram_w(offs_t offset, uint8_t data)
{
m_nvram[offset] = data;
}
@@ -247,7 +247,7 @@ void tomcat_state::dsp_map(address_map &map)
}
-WRITE8_MEMBER(tomcat_state::soundlatches_w)
+void tomcat_state::soundlatches_w(offs_t offset, uint8_t data)
{
switch(offset)
{
diff --git a/src/mame/drivers/toratora.cpp b/src/mame/drivers/toratora.cpp
index 639f8ad548e..805860a038f 100644
--- a/src/mame/drivers/toratora.cpp
+++ b/src/mame/drivers/toratora.cpp
@@ -80,9 +80,9 @@ private:
required_device<pia6821_device> m_pia_u1;
required_device<pia6821_device> m_pia_u2;
required_device<pia6821_device> m_pia_u3;
- DECLARE_WRITE8_MEMBER(clear_tv_w);
- DECLARE_READ8_MEMBER(timer_r);
- DECLARE_WRITE8_MEMBER(clear_timer_w);
+ void clear_tv_w(uint8_t data);
+ uint8_t timer_r();
+ void clear_timer_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER(cb2_u2_w);
void port_b_u1_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER(main_cpu_irq);
@@ -151,7 +151,7 @@ uint32_t toratora_state::screen_update_toratora(screen_device &screen, bitmap_rg
}
-WRITE8_MEMBER(toratora_state::clear_tv_w)
+void toratora_state::clear_tv_w(uint8_t data)
{
m_clear_tv = 1;
}
@@ -206,12 +206,12 @@ INTERRUPT_GEN_MEMBER(toratora_state::toratora_timer)
m_pia_u1->ca2_w(ioport("INPUT")->read() & 0x20);
}
-READ8_MEMBER(toratora_state::timer_r)
+uint8_t toratora_state::timer_r()
{
return m_timer;
}
-WRITE8_MEMBER(toratora_state::clear_timer_w)
+void toratora_state::clear_timer_w(uint8_t data)
{
m_timer = 0;
m_maincpu->set_input_line(0, CLEAR_LINE);
diff --git a/src/mame/drivers/tosh1000.cpp b/src/mame/drivers/tosh1000.cpp
index 5b8c4ff2d35..692f2b979f2 100644
--- a/src/mame/drivers/tosh1000.cpp
+++ b/src/mame/drivers/tosh1000.cpp
@@ -78,11 +78,10 @@ public:
private:
DECLARE_MACHINE_RESET(tosh1000);
- DECLARE_WRITE8_MEMBER(romdos_bank_w);
- DECLARE_READ8_MEMBER(romdos_bank_r);
+ void romdos_bank_w(uint8_t data);
- DECLARE_WRITE8_MEMBER(bram_w);
- DECLARE_READ8_MEMBER(bram_r);
+ void bram_w(offs_t offset, uint8_t data);
+ uint8_t bram_r(offs_t offset);
static void cfg_fdc_35(device_t *device);
void tosh1000_io(address_map &map);
@@ -116,7 +115,7 @@ MACHINE_RESET_MEMBER(tosh1000_state, tosh1000)
}
-WRITE8_MEMBER(tosh1000_state::romdos_bank_w)
+void tosh1000_state::romdos_bank_w(uint8_t data)
{
LOGDBG("ROM-DOS <- %02x (%s, accessing bank %d)\n", data, BIT(data, 7)?"enable":"disable", data&7);
@@ -130,7 +129,7 @@ WRITE8_MEMBER(tosh1000_state::romdos_bank_w)
}
}
-WRITE8_MEMBER(tosh1000_state::bram_w)
+void tosh1000_state::bram_w(offs_t offset, uint8_t data)
{
LOGDBG("BRAM %02x <- %02x\n", 0xc0 + offset, data);
@@ -177,7 +176,7 @@ WRITE8_MEMBER(tosh1000_state::bram_w)
}
}
-READ8_MEMBER(tosh1000_state::bram_r)
+uint8_t tosh1000_state::bram_r(offs_t offset)
{
uint8_t data = 0;
diff --git a/src/mame/drivers/toypop.cpp b/src/mame/drivers/toypop.cpp
index 88a0e828317..b257d003dd1 100644
--- a/src/mame/drivers/toypop.cpp
+++ b/src/mame/drivers/toypop.cpp
@@ -88,25 +88,25 @@ private:
TIMER_DEVICE_CALLBACK_MEMBER(master_scanline);
DECLARE_WRITE_LINE_MEMBER(slave_vblank_irq);
- DECLARE_READ8_MEMBER(irq_enable_r);
- DECLARE_WRITE8_MEMBER(irq_disable_w);
- DECLARE_WRITE8_MEMBER(irq_ctrl_w);
+ uint8_t irq_enable_r();
+ void irq_disable_w(uint8_t data);
+ void irq_ctrl_w(offs_t offset, uint8_t data);
void toypop_palette(palette_device &palette) const;
uint8_t dipA_l();
uint8_t dipA_h();
uint8_t dipB_l();
uint8_t dipB_h();
- //DECLARE_WRITE8_MEMBER(out_coin0);
- //DECLARE_WRITE8_MEMBER(out_coin1);
- DECLARE_WRITE8_MEMBER(pal_bank_w);
+ //void out_coin0(uint8_t data);
+ //void out_coin1(uint8_t data);
+ void pal_bank_w(offs_t offset, uint8_t data);
void flip(uint8_t data);
- DECLARE_WRITE8_MEMBER(slave_halt_ctrl_w);
- DECLARE_READ8_MEMBER(slave_shared_r);
- DECLARE_WRITE8_MEMBER(slave_shared_w);
- DECLARE_WRITE16_MEMBER(slave_irq_enable_w);
- DECLARE_WRITE8_MEMBER(sound_halt_ctrl_w);
- DECLARE_READ8_MEMBER(bg_rmw_r);
- DECLARE_WRITE8_MEMBER(bg_rmw_w);
+ void slave_halt_ctrl_w(offs_t offset, uint8_t data);
+ uint8_t slave_shared_r(offs_t offset);
+ void slave_shared_w(offs_t offset, uint8_t data);
+ void slave_irq_enable_w(offs_t offset, uint16_t data);
+ void sound_halt_ctrl_w(offs_t offset, uint8_t data);
+ uint8_t bg_rmw_r(offs_t offset);
+ void bg_rmw_w(offs_t offset, uint8_t data);
void master_liblrabl_map(address_map &map);
void master_toypop_map(address_map &map);
@@ -311,49 +311,49 @@ uint32_t namcos16_state::screen_update( screen_device &screen, bitmap_ind16 &bit
return 0;
}
-READ8_MEMBER(namcos16_state::irq_enable_r)
+uint8_t namcos16_state::irq_enable_r()
{
m_master_irq_enable = true;
return 0;
}
-WRITE8_MEMBER(namcos16_state::irq_disable_w)
+void namcos16_state::irq_disable_w(uint8_t data)
{
m_master_irq_enable = false;
}
-WRITE8_MEMBER(namcos16_state::irq_ctrl_w)
+void namcos16_state::irq_ctrl_w(offs_t offset, uint8_t data)
{
m_master_irq_enable = (offset & 0x0800) ? false : true;
}
-WRITE8_MEMBER(namcos16_state::slave_halt_ctrl_w)
+void namcos16_state::slave_halt_ctrl_w(offs_t offset, uint8_t data)
{
m_slave_cpu->set_input_line(INPUT_LINE_RESET,offset & 0x800 ? ASSERT_LINE : CLEAR_LINE);
}
-WRITE8_MEMBER(namcos16_state::sound_halt_ctrl_w)
+void namcos16_state::sound_halt_ctrl_w(offs_t offset, uint8_t data)
{
m_sound_cpu->set_input_line(INPUT_LINE_RESET,offset & 0x800 ? ASSERT_LINE : CLEAR_LINE);
}
-READ8_MEMBER(namcos16_state::slave_shared_r)
+uint8_t namcos16_state::slave_shared_r(offs_t offset)
{
return m_slave_sharedram[offset];
}
-WRITE8_MEMBER(namcos16_state::slave_shared_w)
+void namcos16_state::slave_shared_w(offs_t offset, uint8_t data)
{
m_slave_sharedram[offset] = data;
}
-WRITE16_MEMBER(namcos16_state::slave_irq_enable_w)
+void namcos16_state::slave_irq_enable_w(offs_t offset, uint16_t data)
{
m_slave_irq_enable = (offset & 0x40000) ? false : true;
}
-READ8_MEMBER(namcos16_state::bg_rmw_r)
+uint8_t namcos16_state::bg_rmw_r(offs_t offset)
{
uint8_t res;
@@ -364,7 +364,7 @@ READ8_MEMBER(namcos16_state::bg_rmw_r)
return res;
}
-WRITE8_MEMBER(namcos16_state::bg_rmw_w)
+void namcos16_state::bg_rmw_w(offs_t offset, uint8_t data)
{
// note: following offset is written as offset * 2
m_bgvram[offset] = (data & 0xf) | ((data & 0xf0) << 4);
@@ -380,7 +380,7 @@ void namcos16_state::flip(uint8_t data)
flip_screen_set(data & 1);
}
-WRITE8_MEMBER(namcos16_state::pal_bank_w)
+void namcos16_state::pal_bank_w(offs_t offset, uint8_t data)
{
m_pal_bank = offset & 1;
}
diff --git a/src/mame/drivers/tr175.cpp b/src/mame/drivers/tr175.cpp
index 0a9084740db..ad5865652c1 100644
--- a/src/mame/drivers/tr175.cpp
+++ b/src/mame/drivers/tr175.cpp
@@ -24,9 +24,9 @@ public:
void tr175(machine_config &config);
private:
- DECLARE_WRITE8_MEMBER(ffec01_w);
- DECLARE_WRITE8_MEMBER(fff000_w);
- DECLARE_READ8_MEMBER(fff400_r);
+ void ffec01_w(uint8_t data);
+ void fff000_w(uint8_t data);
+ uint8_t fff400_r();
SCN2674_DRAW_CHARACTER_MEMBER(draw_character);
void mem_map(address_map &map);
@@ -36,17 +36,17 @@ private:
required_device<cpu_device> m_maincpu;
};
-WRITE8_MEMBER(tr175_state::ffec01_w)
+void tr175_state::ffec01_w(uint8_t data)
{
logerror("%s: Writing %02X to FFEC01\n", machine().describe_context(), data);
}
-WRITE8_MEMBER(tr175_state::fff000_w)
+void tr175_state::fff000_w(uint8_t data)
{
logerror("%s: Writing %02X to FFF000\n", machine().describe_context(), data);
}
-READ8_MEMBER(tr175_state::fff400_r)
+uint8_t tr175_state::fff400_r()
{
return 0;
}
diff --git a/src/mame/drivers/triforce.cpp b/src/mame/drivers/triforce.cpp
index e945f2efda6..cfc1f76b91b 100644
--- a/src/mame/drivers/triforce.cpp
+++ b/src/mame/drivers/triforce.cpp
@@ -473,10 +473,10 @@ public:
void triforce_base(machine_config &config);
private:
- DECLARE_READ64_MEMBER(gc_pi_r);
- DECLARE_WRITE64_MEMBER(gc_pi_w);
- DECLARE_READ64_MEMBER(gc_exi_r);
- DECLARE_WRITE64_MEMBER(gc_exi_w);
+ uint64_t gc_pi_r();
+ void gc_pi_w(uint64_t data);
+ uint64_t gc_exi_r();
+ void gc_exi_w(uint64_t data);
virtual void machine_start() override;
virtual void video_start() override;
uint32_t screen_update_triforce(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
@@ -484,21 +484,21 @@ private:
void gc_map(address_map &map);
};
-READ64_MEMBER(triforce_state::gc_pi_r)
+uint64_t triforce_state::gc_pi_r()
{
return 0;
}
-WRITE64_MEMBER(triforce_state::gc_pi_w)
+void triforce_state::gc_pi_w(uint64_t data)
{
}
-READ64_MEMBER(triforce_state::gc_exi_r)
+uint64_t triforce_state::gc_exi_r()
{
return 0;
}
-WRITE64_MEMBER(triforce_state::gc_exi_w)
+void triforce_state::gc_exi_w(uint64_t data)
{
}
diff --git a/src/mame/drivers/trivrus.cpp b/src/mame/drivers/trivrus.cpp
index 3fba94cdb98..8bfc64685dc 100644
--- a/src/mame/drivers/trivrus.cpp
+++ b/src/mame/drivers/trivrus.cpp
@@ -60,50 +60,50 @@ private:
uint32_t m_Bank;
uint32_t m_maxbank;
- DECLARE_READ32_MEMBER(FlashCmd_r);
- DECLARE_WRITE32_MEMBER(FlashCmd_w);
- DECLARE_WRITE32_MEMBER(Banksw_w);
+ uint32_t FlashCmd_r();
+ void FlashCmd_w(uint32_t data);
+ void Banksw_w(uint32_t data);
virtual void machine_start() override;
virtual void machine_reset() override;
void trivrus_mem(address_map &map);
// PIO
- DECLARE_READ32_MEMBER(PIOldat_r);
+ uint32_t PIOldat_r();
uint32_t m_PIO;
- DECLARE_WRITE32_MEMBER(PIOldat_w);
- DECLARE_READ32_MEMBER(PIOedat_r);
+ void PIOldat_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ uint32_t PIOedat_r();
- DECLARE_READ8_MEMBER(trivrus_input_r);
- DECLARE_WRITE8_MEMBER(trivrus_input_w);
+ uint8_t trivrus_input_r();
+ void trivrus_input_w(uint8_t data);
uint8_t m_trivrus_input;
};
-WRITE32_MEMBER(trivrus_state::FlashCmd_w)
+void trivrus_state::FlashCmd_w(uint32_t data)
{
m_FlashCmd = data;
}
-READ32_MEMBER(trivrus_state::PIOedat_r)
+uint32_t trivrus_state::PIOedat_r()
{
return 0;
}
-READ32_MEMBER(trivrus_state::PIOldat_r)
+uint32_t trivrus_state::PIOldat_r()
{
// ...
return m_PIO;
}
// PIO Latched output DATa Register
-WRITE32_MEMBER(trivrus_state::PIOldat_w)
+void trivrus_state::PIOldat_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
// ...
COMBINE_DATA(&m_PIO);
}
-READ8_MEMBER(trivrus_state::trivrus_input_r)
+uint8_t trivrus_state::trivrus_input_r()
{
switch (m_trivrus_input)
{
@@ -118,12 +118,12 @@ READ8_MEMBER(trivrus_state::trivrus_input_r)
return 0xff;
}
-WRITE8_MEMBER(trivrus_state::trivrus_input_w)
+void trivrus_state::trivrus_input_w(uint8_t data)
{
m_trivrus_input = data & 0xff;
}
-READ32_MEMBER(trivrus_state::FlashCmd_r)
+uint32_t trivrus_state::FlashCmd_r()
{
if ((m_FlashCmd & 0xff) == 0xff)
{
@@ -146,7 +146,7 @@ READ32_MEMBER(trivrus_state::FlashCmd_r)
}
-WRITE32_MEMBER(trivrus_state::Banksw_w)
+void trivrus_state::Banksw_w(uint32_t data)
{
m_Bank = (data >> 1) & 7;
m_mainbank->set_entry(m_Bank);
diff --git a/src/mame/drivers/trkfldch.cpp b/src/mame/drivers/trkfldch.cpp
index f5b771af04e..47a93279f04 100644
--- a/src/mame/drivers/trkfldch.cpp
+++ b/src/mame/drivers/trkfldch.cpp
@@ -82,7 +82,7 @@ private:
uint32_t screen_update_trkfldch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void trkfldch_map(address_map &map);
- DECLARE_READ8_MEMBER(read_vector);
+ uint8_t read_vector(offs_t offset);
TIMER_DEVICE_CALLBACK_MEMBER(scanline);
@@ -90,38 +90,38 @@ private:
uint8_t tilemap_scroll_window_r(int which, uint8_t reg, uint16_t real_base);
- DECLARE_READ8_MEMBER(tmap0_scroll_window_r);
- DECLARE_READ8_MEMBER(tmap1_scroll_window_r);
+ uint8_t tmap0_scroll_window_r(offs_t offset);
+ uint8_t tmap1_scroll_window_r(offs_t offset);
void tilemap_scroll_window_w(int which, uint8_t reg, uint8_t data, uint16_t real_base);
- DECLARE_WRITE8_MEMBER(tmap0_scroll_window_w);
- DECLARE_WRITE8_MEMBER(tmap1_scroll_window_w);
+ void tmap0_scroll_window_w(offs_t offset, uint8_t data);
+ void tmap1_scroll_window_w(offs_t offset, uint8_t data);
uint8_t m_dmaregs[0xe];
- DECLARE_READ8_MEMBER(dmaregs_r);
- DECLARE_WRITE8_MEMBER(dmaregs_w);
+ uint8_t dmaregs_r(offs_t offset);
+ void dmaregs_w(offs_t offset, uint8_t data);
uint8_t m_modebank[0xb];
- DECLARE_READ8_MEMBER(modebankregs_r);
- DECLARE_WRITE8_MEMBER(modebankregs_w);
+ uint8_t modebankregs_r(offs_t offset);
+ void modebankregs_w(offs_t offset, uint8_t data);
uint8_t m_tilemapbase[0x3];
- DECLARE_READ8_MEMBER(tilemapbase_r);
- DECLARE_WRITE8_MEMBER(tilemapbase_w);
+ uint8_t tilemapbase_r(offs_t offset);
+ void tilemapbase_w(offs_t offset, uint8_t data);
uint8_t m_sysregs[0x10];
- DECLARE_READ8_MEMBER(sysregs_r);
- DECLARE_WRITE8_MEMBER(sysregs_w);
+ uint8_t sysregs_r(offs_t offset);
+ void sysregs_w(offs_t offset, uint8_t data);
uint8_t m_unkregs[0x90];
- DECLARE_READ8_MEMBER(unkregs_r);
- DECLARE_WRITE8_MEMBER(unkregs_w);
+ uint8_t unkregs_r(offs_t offset);
+ void unkregs_w(offs_t offset, uint8_t data);
uint8_t m_tmapscroll_window[2][0x12];
@@ -426,13 +426,13 @@ uint8_t trkfldch_state::tilemap_scroll_window_r(int which, uint8_t reg, uint16_t
return ret;
}
-READ8_MEMBER(trkfldch_state::tmap0_scroll_window_r)
+uint8_t trkfldch_state::tmap0_scroll_window_r(offs_t offset)
{
uint8_t ret = tilemap_scroll_window_r(0, offset, 0x7820);
return ret;
}
-READ8_MEMBER(trkfldch_state::tmap1_scroll_window_r)
+uint8_t trkfldch_state::tmap1_scroll_window_r(offs_t offset)
{
uint8_t ret = tilemap_scroll_window_r(1, offset, 0x7832);
return ret;
@@ -522,12 +522,12 @@ void trkfldch_state::tilemap_scroll_window_w(int which, uint8_t reg, uint8_t dat
}
}
-WRITE8_MEMBER(trkfldch_state::tmap0_scroll_window_w)
+void trkfldch_state::tmap0_scroll_window_w(offs_t offset, uint8_t data)
{
tilemap_scroll_window_w(0, offset, data, 0x7820);
}
-WRITE8_MEMBER(trkfldch_state::tmap1_scroll_window_w)
+void trkfldch_state::tmap1_scroll_window_w(offs_t offset, uint8_t data)
{
tilemap_scroll_window_w(1, offset, data, 0x7832);
}
@@ -535,7 +535,7 @@ WRITE8_MEMBER(trkfldch_state::tmap1_scroll_window_w)
-READ8_MEMBER(trkfldch_state::dmaregs_r)
+uint8_t trkfldch_state::dmaregs_r(offs_t offset)
{
uint8_t ret = m_dmaregs[offset];
@@ -554,7 +554,7 @@ READ8_MEMBER(trkfldch_state::dmaregs_r)
return ret;
}
-WRITE8_MEMBER(trkfldch_state::dmaregs_w)
+void trkfldch_state::dmaregs_w(offs_t offset, uint8_t data)
{
m_dmaregs[offset] = data;
@@ -669,14 +669,14 @@ WRITE8_MEMBER(trkfldch_state::dmaregs_w)
}
-READ8_MEMBER(trkfldch_state::modebankregs_r)
+uint8_t trkfldch_state::modebankregs_r(offs_t offset)
{
uint8_t ret = m_modebank[offset];
logerror("%s: modebankregs_r %04x (returning %02x)\n", machine().describe_context(), offset, ret);
return ret;
}
-WRITE8_MEMBER(trkfldch_state::modebankregs_w)
+void trkfldch_state::modebankregs_w(offs_t offset, uint8_t data)
{
m_modebank[offset] = data;
@@ -729,14 +729,14 @@ WRITE8_MEMBER(trkfldch_state::modebankregs_w)
}
-READ8_MEMBER(trkfldch_state::tilemapbase_r)
+uint8_t trkfldch_state::tilemapbase_r(offs_t offset)
{
uint8_t ret = m_tilemapbase[offset];
logerror("%s: tilemapbase_r %04x (returning %02x)\n", machine().describe_context(), offset, ret);
return ret;
}
-WRITE8_MEMBER(trkfldch_state::tilemapbase_w)
+void trkfldch_state::tilemapbase_w(offs_t offset, uint8_t data)
{
m_tilemapbase[offset] = data;
logerror("%s: tilemapbase_w %04x %02x (tilebase %d)\n", machine().describe_context(), offset, data, offset);
@@ -775,11 +775,11 @@ void trkfldch_state::vectors_map(address_map &map)
map(0x00, 0x1f).r(FUNC(trkfldch_state::read_vector));
}
-READ8_MEMBER(trkfldch_state::read_vector)
+uint8_t trkfldch_state::read_vector(offs_t offset)
{
uint8_t *rom = memregion("maincpu")->base();
- /* what appears to be a table of vectors apepars at the START of ROM, maybe this gets copied to RAM, maybe used directly?
+ /* what appears to be a table of vectors appears at the START of ROM, maybe this gets copied to RAM, maybe used directly?
00 : (invalid)
02 : (invalid)
04 : 0xA2C6 (dummy)
@@ -1108,7 +1108,7 @@ GFXDECODE_END
*/
-READ8_MEMBER(trkfldch_state::sysregs_r)
+uint8_t trkfldch_state::sysregs_r(offs_t offset)
{
uint8_t ret = m_sysregs[offset];
@@ -1152,7 +1152,7 @@ READ8_MEMBER(trkfldch_state::sysregs_r)
}
-WRITE8_MEMBER(trkfldch_state::sysregs_w)
+void trkfldch_state::sysregs_w(offs_t offset, uint8_t data)
{
m_sysregs[offset] = data;
@@ -1191,7 +1191,7 @@ WRITE8_MEMBER(trkfldch_state::sysregs_w)
-READ8_MEMBER(trkfldch_state::unkregs_r)
+uint8_t trkfldch_state::unkregs_r(offs_t offset)
{
uint8_t ret = m_unkregs[offset];
@@ -1266,7 +1266,7 @@ READ8_MEMBER(trkfldch_state::unkregs_r)
-WRITE8_MEMBER(trkfldch_state::unkregs_w)
+void trkfldch_state::unkregs_w(offs_t offset, uint8_t data)
{
m_unkregs[offset] = data;
diff --git a/src/mame/drivers/ts802.cpp b/src/mame/drivers/ts802.cpp
index 8fd8e941ee1..83d71e22838 100644
--- a/src/mame/drivers/ts802.cpp
+++ b/src/mame/drivers/ts802.cpp
@@ -48,14 +48,14 @@ protected:
virtual void machine_reset() override;
private:
- DECLARE_READ8_MEMBER(port00_r) { return 0x80; };
- DECLARE_READ8_MEMBER(port0c_r) { return 1; };
- DECLARE_READ8_MEMBER(port0e_r) { return 0; };
- DECLARE_READ8_MEMBER(port0f_r) { return (m_term_data) ? 5 : 4; };
- DECLARE_READ8_MEMBER(port0d_r);
- DECLARE_WRITE8_MEMBER(port04_w);
- DECLARE_WRITE8_MEMBER(port18_w);
- DECLARE_WRITE8_MEMBER(port80_w);
+ uint8_t port00_r() { return 0x80; };
+ uint8_t port0c_r() { return 1; };
+ uint8_t port0e_r() { return 0; };
+ uint8_t port0f_r() { return (m_term_data) ? 5 : 4; };
+ uint8_t port0d_r();
+ void port04_w(uint8_t data);
+ void port18_w(uint8_t data);
+ void port80_w(uint8_t data);
uint8_t memory_read_byte(offs_t offset);
void memory_write_byte(offs_t offset, uint8_t data);
uint8_t io_read_byte(offs_t offset);
@@ -111,16 +111,16 @@ void ts802_state::ts802_io(address_map &map)
static INPUT_PORTS_START( ts802 )
INPUT_PORTS_END
-WRITE8_MEMBER( ts802_state::port04_w )
+void ts802_state::port04_w(uint8_t data)
{
membank("bankr0")->set_entry(1);
}
-WRITE8_MEMBER( ts802_state::port18_w )
+void ts802_state::port18_w(uint8_t data)
{
}
-WRITE8_MEMBER( ts802_state::port80_w )
+void ts802_state::port80_w(uint8_t data)
{
}
@@ -155,7 +155,7 @@ void ts802_state::machine_reset()
membank("bankw0")->set_entry(0); // always write to ram
}
-READ8_MEMBER( ts802_state::port0d_r )
+uint8_t ts802_state::port0d_r()
{
uint8_t ret = m_term_data;
m_term_data = 0;
diff --git a/src/mame/drivers/ts803.cpp b/src/mame/drivers/ts803.cpp
index 40689e4d067..3559ba27028 100644
--- a/src/mame/drivers/ts803.cpp
+++ b/src/mame/drivers/ts803.cpp
@@ -79,15 +79,15 @@ public:
void init_ts803();
private:
- DECLARE_READ8_MEMBER(port10_r);
- DECLARE_WRITE8_MEMBER(port10_w);
- DECLARE_READ8_MEMBER(porta0_r);
- DECLARE_WRITE8_MEMBER(porta0_w);
- DECLARE_WRITE8_MEMBER(disk_0_control_w);
- DECLARE_READ8_MEMBER(disk_0_control_r);
+ uint8_t port10_r(offs_t offset);
+ void port10_w(offs_t offset, uint8_t data);
+ uint8_t porta0_r(offs_t offset);
+ void porta0_w(offs_t offset, uint8_t data);
+ void disk_0_control_w(uint8_t data);
+ uint8_t disk_0_control_r();
MC6845_UPDATE_ROW(crtc_update_row);
MC6845_ON_UPDATE_ADDR_CHANGED(crtc_update_addr);
- DECLARE_WRITE8_MEMBER( crtc_controlreg_w );
+ void crtc_controlreg_w(uint8_t data);
uint32_t screen_update_ts803(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void ts803_io(address_map &map);
@@ -193,7 +193,7 @@ static void ts803_floppies(device_slot_interface &device)
device.option_add("525dd", FLOPPY_525_DD);
}
-WRITE8_MEMBER( ts803_state::disk_0_control_w )
+void ts803_state::disk_0_control_w(uint8_t data)
{
/*
d0 ready
@@ -223,13 +223,13 @@ d7 Drive select 3 (active low)
m_fdc->dden_w(BIT(data, 3));
}
-READ8_MEMBER( ts803_state::disk_0_control_r )
+uint8_t ts803_state::disk_0_control_r()
{
printf("Disk0 control register read\n");
return 0xff;
}
-READ8_MEMBER( ts803_state::porta0_r)
+uint8_t ts803_state::porta0_r(offs_t offset)
{
offset += 0xa0;
switch(offset)
@@ -259,7 +259,7 @@ READ8_MEMBER( ts803_state::porta0_r)
return 0x00;
}
-WRITE8_MEMBER( ts803_state::porta0_w )
+void ts803_state::porta0_w(offs_t offset, uint8_t data)
{
offset += 0xa0;
switch (offset)
@@ -273,7 +273,7 @@ WRITE8_MEMBER( ts803_state::porta0_w )
}
}
-READ8_MEMBER( ts803_state::port10_r )
+uint8_t ts803_state::port10_r(offs_t offset)
{
offset += 0x10;
printf("Port read [%x]\n",offset);
@@ -281,7 +281,7 @@ READ8_MEMBER( ts803_state::port10_r )
return 0xff;
}
-WRITE8_MEMBER( ts803_state::port10_w )
+void ts803_state::port10_w(offs_t offset, uint8_t data)
{
offset += 0x10;
switch (offset)
@@ -360,7 +360,7 @@ MC6845_UPDATE_ROW( ts803_state::crtc_update_row )
}
}
-WRITE8_MEMBER( ts803_state::crtc_controlreg_w )
+void ts803_state::crtc_controlreg_w(uint8_t data)
{
/*
Bit 0 = 0 alpha mode
diff --git a/src/mame/drivers/ts816.cpp b/src/mame/drivers/ts816.cpp
index 4af788de994..ff2ac8ee0b5 100644
--- a/src/mame/drivers/ts816.cpp
+++ b/src/mame/drivers/ts816.cpp
@@ -41,12 +41,12 @@ public:
private:
void kbd_put(u8 data);
- DECLARE_READ8_MEMBER(keyin_r);
- DECLARE_READ8_MEMBER(status_r);
- DECLARE_WRITE8_MEMBER(port68_w);
- DECLARE_WRITE8_MEMBER(port78_w);
- DECLARE_WRITE8_MEMBER(porte0_w);
- DECLARE_WRITE8_MEMBER(portf0_w);
+ uint8_t keyin_r();
+ uint8_t status_r();
+ void port68_w(uint8_t data);
+ void port78_w(uint8_t data);
+ void porte0_w(uint8_t data);
+ void portf0_w(uint8_t data);
void ts816_io(address_map &map);
void ts816_mem(address_map &map);
@@ -124,14 +124,14 @@ static INPUT_PORTS_START( ts816 )
INPUT_PORTS_END
-READ8_MEMBER( ts816_state::keyin_r )
+uint8_t ts816_state::keyin_r()
{
uint8_t ret = m_term_data;
m_term_data = 0;
return ret;
}
-READ8_MEMBER( ts816_state::status_r )
+uint8_t ts816_state::status_r()
{
if (m_status)
{
@@ -142,25 +142,25 @@ READ8_MEMBER( ts816_state::status_r )
return 4;
}
-WRITE8_MEMBER( ts816_state::port68_w )
+void ts816_state::port68_w(uint8_t data)
{
m_2ndbank = 1;
set_banks();
}
-WRITE8_MEMBER( ts816_state::port78_w )
+void ts816_state::port78_w(uint8_t data)
{
m_2ndbank = 0;
set_banks();
}
-WRITE8_MEMBER( ts816_state::porte0_w )
+void ts816_state::porte0_w(uint8_t data)
{
m_endram = 1;
set_banks();
}
-WRITE8_MEMBER( ts816_state::portf0_w )
+void ts816_state::portf0_w(uint8_t data)
{
m_endram = 0;
set_banks();
diff --git a/src/mame/drivers/ttchamp.cpp b/src/mame/drivers/ttchamp.cpp
index 270f1984a0e..41a8430f9ac 100644
--- a/src/mame/drivers/ttchamp.cpp
+++ b/src/mame/drivers/ttchamp.cpp
@@ -121,23 +121,23 @@ private:
uint16_t* m_rom16;
uint8_t* m_rom8;
- DECLARE_WRITE16_MEMBER(paloff_w);
- DECLARE_WRITE16_MEMBER(paldat_w);
+ void paloff_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void paldat_w(uint16_t data);
- DECLARE_WRITE16_MEMBER(port10_w);
+ void port10_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
- DECLARE_WRITE16_MEMBER(port20_w);
- DECLARE_WRITE16_MEMBER(port62_w);
+ void port20_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void port62_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
- DECLARE_READ16_MEMBER(port1e_r);
+ uint16_t port1e_r();
- DECLARE_READ16_MEMBER(pic_r);
- DECLARE_WRITE16_MEMBER(pic_w);
+ uint16_t pic_r(offs_t offset, uint16_t mem_mask = ~0);
+ void pic_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
- DECLARE_READ16_MEMBER(blit_start_r);
+ uint16_t blit_start_r();
- DECLARE_READ16_MEMBER(mem_r);
- DECLARE_WRITE16_MEMBER(mem_w);
+ uint16_t mem_r(offs_t offset);
+ void mem_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
virtual void machine_start() override;
virtual void video_start() override;
@@ -271,19 +271,19 @@ uint32_t ttchamp_state::screen_update(screen_device &screen, bitmap_ind16 &bitma
}
-WRITE16_MEMBER(ttchamp_state::paloff_w)
+void ttchamp_state::paloff_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_paloff);
}
-WRITE16_MEMBER(ttchamp_state::paldat_w)
+void ttchamp_state::paldat_w(uint16_t data)
{
// 0x8000 of offset is sometimes set
m_palette->set_pen_color(m_paloff & 0x3ff,pal5bit(data>>0),pal5bit(data>>5),pal5bit(data>>10));
}
-READ16_MEMBER(ttchamp_state::pic_r)
+uint16_t ttchamp_state::pic_r(offs_t offset, uint16_t mem_mask)
{
// printf("%06x: read from PIC (%04x)\n", m_maincpu->pc(),mem_mask);
if (m_picmodex == picmode::SET_READLATCH)
@@ -298,7 +298,7 @@ READ16_MEMBER(ttchamp_state::pic_r)
}
-WRITE16_MEMBER(ttchamp_state::pic_w)
+void ttchamp_state::pic_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
// printf("%06x: write to PIC %04x (%04x) (%d)\n", m_maincpu->pc(),data,mem_mask, m_picmodex);
if (m_picmodex == picmode::IDLE)
@@ -357,7 +357,7 @@ WRITE16_MEMBER(ttchamp_state::pic_w)
}
-READ16_MEMBER(ttchamp_state::mem_r)
+uint16_t ttchamp_state::mem_r(offs_t offset)
{
// bits 0xf0 are used too, so this is likely wrong.
@@ -389,7 +389,7 @@ READ16_MEMBER(ttchamp_state::mem_r)
}
}
-WRITE16_MEMBER(ttchamp_state::mem_w)
+void ttchamp_state::mem_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
// this is very strange, we use the offset (address bits) not data bits to set values..
// I get the impression this might actually overlay the entire address range, including RAM and regular VRAM?
@@ -511,20 +511,20 @@ void ttchamp_state::ttchamp_map(address_map &map)
}
/* Re-use same parameters as before (one-shot) */
-READ16_MEMBER(ttchamp_state::port1e_r)
+uint16_t ttchamp_state::port1e_r()
{
m_spritesinit = 3;
return 0xff;
}
-READ16_MEMBER(ttchamp_state::blit_start_r)
+uint16_t ttchamp_state::blit_start_r()
{
m_spritesinit = 1;
return 0xff;
}
/* blitter mode select */
-WRITE16_MEMBER(ttchamp_state::port10_w)
+void ttchamp_state::port10_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
/*
--xx ---- fill enable
@@ -535,14 +535,14 @@ WRITE16_MEMBER(ttchamp_state::port10_w)
}
/* selects upper bank for the blitter */
-WRITE16_MEMBER(ttchamp_state::port20_w)
+void ttchamp_state::port20_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
//printf("%06x: port20_w %04x %04x\n", m_maincpu->pc(), data, mem_mask);
m_rombank = 1;
}
/* selects lower bank for the blitter */
-WRITE16_MEMBER(ttchamp_state::port62_w)
+void ttchamp_state::port62_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
//printf("%06x: port62_w %04x %04x\n", m_maincpu->pc(), data, mem_mask);
m_rombank = 0;
diff --git a/src/mame/drivers/tugboat.cpp b/src/mame/drivers/tugboat.cpp
index f92a10796be..2ecdc48590f 100644
--- a/src/mame/drivers/tugboat.cpp
+++ b/src/mame/drivers/tugboat.cpp
@@ -75,9 +75,9 @@ private:
int m_ctrl;
emu_timer *m_interrupt_timer;
- DECLARE_WRITE8_MEMBER(hd46505_0_w);
- DECLARE_WRITE8_MEMBER(hd46505_1_w);
- DECLARE_WRITE8_MEMBER(score_w);
+ void hd46505_0_w(offs_t offset, uint8_t data);
+ void hd46505_1_w(offs_t offset, uint8_t data);
+ void score_w(offs_t offset, uint8_t data);
uint8_t input_r();
void ctrl_w(uint8_t data);
@@ -125,21 +125,21 @@ void tugboat_state::tugboat_palette(palette_device &palette) const
-/* see mc6845.c. That file is only a placeholder, I process the writes here
+/* see mc6845.cpp. That file is only a placeholder, I process the writes here
because I need the start_addr register to handle scrolling */
-WRITE8_MEMBER(tugboat_state::hd46505_0_w)
+void tugboat_state::hd46505_0_w(offs_t offset, uint8_t data)
{
if (offset == 0) m_reg0 = data & 0x0f;
else if (m_reg0 < 18) m_hd46505_0_reg[m_reg0] = data;
}
-WRITE8_MEMBER(tugboat_state::hd46505_1_w)
+void tugboat_state::hd46505_1_w(offs_t offset, uint8_t data)
{
if (offset == 0) m_reg1 = data & 0x0f;
else if (m_reg1 < 18) m_hd46505_1_reg[m_reg1] = data;
}
-WRITE8_MEMBER(tugboat_state::score_w)
+void tugboat_state::score_w(offs_t offset, uint8_t data)
{
if (offset>=0x8) m_ram[0x291d + 32*offset + 32*(1-8)] = data ^ 0x0f;
if (offset<0x8 ) m_ram[0x291d + 32*offset + 32*9] = data ^ 0x0f;
diff --git a/src/mame/drivers/tutor.cpp b/src/mame/drivers/tutor.cpp
index 6f0b572e615..5ffa51a24d3 100644
--- a/src/mame/drivers/tutor.cpp
+++ b/src/mame/drivers/tutor.cpp
@@ -213,15 +213,15 @@ private:
memory_region *m_cart_rom;
int m_bank1_switching;
- DECLARE_READ8_MEMBER(key_r);
- DECLARE_READ8_MEMBER(tutor_mapper_r);
- DECLARE_WRITE8_MEMBER(tutor_mapper_w);
- DECLARE_READ8_MEMBER(tutor_cassette_r);
- DECLARE_WRITE8_MEMBER(tutor_cassette_w);
- DECLARE_READ8_MEMBER(tutor_printer_r);
- DECLARE_WRITE8_MEMBER(tutor_printer_w);
-
- DECLARE_READ8_MEMBER(tutor_highmem_r);
+ uint8_t key_r(offs_t offset);
+ uint8_t tutor_mapper_r(offs_t offset);
+ void tutor_mapper_w(offs_t offset, uint8_t data);
+ uint8_t tutor_cassette_r();
+ void tutor_cassette_w(offs_t offset, uint8_t data);
+ uint8_t tutor_printer_r(offs_t offset);
+ void tutor_printer_w(offs_t offset, uint8_t data);
+
+ uint8_t tutor_highmem_r(offs_t offset);
int m_tape_interrupt_enable;
emu_timer *m_tape_interrupt_timer;
virtual void machine_start() override;
@@ -291,7 +291,7 @@ void tutor_state::machine_reset()
mapped to both a keyboard key and a joystick switch.
*/
-READ8_MEMBER( tutor_state::key_r )
+uint8_t tutor_state::key_r(offs_t offset)
{
char port[12];
uint8_t value;
@@ -324,7 +324,7 @@ READ8_MEMBER( tutor_state::key_r )
Cartridge may also define a boot ROM at base >0000 (see below).
*/
-READ8_MEMBER( tutor_state::tutor_mapper_r )
+uint8_t tutor_state::tutor_mapper_r(offs_t offset)
{
int reply;
@@ -344,7 +344,7 @@ READ8_MEMBER( tutor_state::tutor_mapper_r )
return reply;
}
-WRITE8_MEMBER( tutor_state::tutor_mapper_w )
+void tutor_state::tutor_mapper_w(offs_t offset, uint8_t data)
{
switch (offset)
{
@@ -379,7 +379,7 @@ WRITE8_MEMBER( tutor_state::tutor_mapper_w )
This is only called from the debugger; the on-chip memory is handled
within the CPU itself.
*/
-READ8_MEMBER( tutor_state::tutor_highmem_r )
+uint8_t tutor_state::tutor_highmem_r(offs_t offset)
{
if (m_maincpu->is_onchip(offset | 0xf000)) return m_maincpu->debug_read_onchip_memory(offset&0xff);
return 0;
@@ -411,13 +411,13 @@ TIMER_CALLBACK_MEMBER(tutor_state::tape_interrupt_handler)
}
/* CRU handler */
-READ8_MEMBER( tutor_state::tutor_cassette_r )
+uint8_t tutor_state::tutor_cassette_r()
{
return (m_cass->input() > 0.0) ? 1 : 0;
}
/* memory handler */
-WRITE8_MEMBER( tutor_state::tutor_cassette_w )
+void tutor_state::tutor_cassette_w(offs_t offset, uint8_t data)
{
if (offset & /*0x1f*/0x1e)
logerror("unknown port in %s %d\n", __FILE__, __LINE__);
@@ -465,7 +465,7 @@ WRITE_LINE_MEMBER( tutor_state::write_centronics_busy )
}
/* memory handlers */
-READ8_MEMBER( tutor_state::tutor_printer_r )
+uint8_t tutor_state::tutor_printer_r(offs_t offset)
{
int reply;
@@ -486,7 +486,7 @@ READ8_MEMBER( tutor_state::tutor_printer_r )
return reply;
}
-WRITE8_MEMBER( tutor_state::tutor_printer_w )
+void tutor_state::tutor_printer_w(offs_t offset, uint8_t data)
{
switch (offset)
{
@@ -541,7 +541,7 @@ WRITE8_MEMBER( tutor_state::tutor_printer_w )
*/
#ifdef UNUSED_FUNCTION
-WRITE8_MEMBER( tutor_state::test_w )
+void tutor_state::test_w(offs_t offset, uint8_t data)
{
switch (offset)
{
diff --git a/src/mame/drivers/tv912.cpp b/src/mame/drivers/tv912.cpp
index 22684b39810..ee6de0a9b73 100644
--- a/src/mame/drivers/tv912.cpp
+++ b/src/mame/drivers/tv912.cpp
@@ -104,11 +104,11 @@ private:
void p1_w(u8 data);
u8 p2_r();
void p2_w(u8 data);
- DECLARE_READ8_MEMBER(crtc_r);
- DECLARE_WRITE8_MEMBER(crtc_w);
- DECLARE_READ8_MEMBER(uart_status_r);
- DECLARE_READ8_MEMBER(keyboard_r);
- DECLARE_WRITE8_MEMBER(output_40c);
+ u8 crtc_r(offs_t offset);
+ void crtc_w(offs_t offset, u8 data);
+ u8 uart_status_r(offs_t offset);
+ u8 keyboard_r(offs_t offset);
+ void output_40c(u8 data);
u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
@@ -188,17 +188,17 @@ void tv912_state::p2_w(u8 data)
m_4hz_flasher = BIT(data, 4);
}
-READ8_MEMBER(tv912_state::crtc_r)
+u8 tv912_state::crtc_r(offs_t offset)
{
return m_crtc->read(bitswap<4>(offset, 5, 4, 1, 0));
}
-WRITE8_MEMBER(tv912_state::crtc_w)
+void tv912_state::crtc_w(offs_t offset, u8 data)
{
m_crtc->write(bitswap<4>(offset, 5, 4, 1, 0), data);
}
-READ8_MEMBER(tv912_state::keyboard_r)
+u8 tv912_state::keyboard_r(offs_t offset)
{
u8 result = m_modifiers->read();
@@ -209,7 +209,7 @@ READ8_MEMBER(tv912_state::keyboard_r)
return result;
}
-READ8_MEMBER(tv912_state::uart_status_r)
+u8 tv912_state::uart_status_r(offs_t offset)
{
m_uart->write_swe(0);
u8 status = m_uart->dav_r() << 0;
@@ -222,7 +222,7 @@ READ8_MEMBER(tv912_state::uart_status_r)
return status;
}
-WRITE8_MEMBER(tv912_state::output_40c)
+void tv912_state::output_40c(u8 data)
{
// DB6: -PRTOL
diff --git a/src/mame/drivers/tv950.cpp b/src/mame/drivers/tv950.cpp
index d1497e3c044..4b46e96315b 100644
--- a/src/mame/drivers/tv950.cpp
+++ b/src/mame/drivers/tv950.cpp
@@ -77,7 +77,7 @@ private:
MC6845_UPDATE_ROW(crtc_update_row);
MC6845_ON_UPDATE_ADDR_CHANGED(crtc_update_addr);
- DECLARE_WRITE8_MEMBER(row_addr_w);
+ void row_addr_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER(via_crtc_reset_w);
void tv950_mem(address_map &map);
@@ -222,7 +222,7 @@ WRITE_LINE_MEMBER(tv950_state::via_crtc_reset_w)
}
}
-WRITE8_MEMBER(tv950_state::row_addr_w)
+void tv950_state::row_addr_w(uint8_t data)
{
m_row_addr = data;
}
diff --git a/src/mame/drivers/tv965.cpp b/src/mame/drivers/tv965.cpp
index 35feda20d5c..343e56ed58d 100644
--- a/src/mame/drivers/tv965.cpp
+++ b/src/mame/drivers/tv965.cpp
@@ -29,7 +29,7 @@ public:
private:
SCN2672_DRAW_CHARACTER_MEMBER(draw_character);
- DECLARE_READ8_MEMBER(ga_hack_r);
+ u8 ga_hack_r();
void mem_map(address_map &map);
void program_map(address_map &map);
@@ -42,7 +42,7 @@ SCN2672_DRAW_CHARACTER_MEMBER(tv965_state::draw_character)
{
}
-READ8_MEMBER(tv965_state::ga_hack_r)
+u8 tv965_state::ga_hack_r()
{
return 0x08;
}
diff --git a/src/mame/drivers/tv990.cpp b/src/mame/drivers/tv990.cpp
index f0f85f6230c..38de5f3b54a 100644
--- a/src/mame/drivers/tv990.cpp
+++ b/src/mame/drivers/tv990.cpp
@@ -83,10 +83,10 @@ private:
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
- DECLARE_READ16_MEMBER(tvi1111_r);
- DECLARE_WRITE16_MEMBER(tvi1111_w);
- DECLARE_READ8_MEMBER(kbdc_r);
- DECLARE_WRITE8_MEMBER(kbdc_w);
+ uint16_t tvi1111_r(offs_t offset);
+ void tvi1111_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ uint8_t kbdc_r(offs_t offset);
+ void kbdc_w(offs_t offset, uint8_t data);
DECLARE_WRITE_LINE_MEMBER(uart0_irq);
DECLARE_WRITE_LINE_MEMBER(uart1_irq);
@@ -142,7 +142,7 @@ WRITE_LINE_MEMBER(tv990_state::lpt_irq)
m_maincpu->set_input_line(M68K_IRQ_3, state);
}
-READ16_MEMBER(tv990_state::tvi1111_r)
+uint16_t tv990_state::tvi1111_r(offs_t offset)
{
if (offset == (0x32/2))
{
@@ -156,7 +156,7 @@ READ16_MEMBER(tv990_state::tvi1111_r)
return tvi1111_regs[offset];
}
-WRITE16_MEMBER(tv990_state::tvi1111_w)
+void tv990_state::tvi1111_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
#if 0
//if ((offset != 0x50) && (offset != 0x68) && (offset != 0x1d) && (offset != 0x1e) && (offset != 0x17) && (offset != 0x1c))
@@ -300,7 +300,7 @@ uint32_t tv990_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap,
return 0;
}
-READ8_MEMBER(tv990_state::kbdc_r)
+uint8_t tv990_state::kbdc_r(offs_t offset)
{
if(offset)
return m_kbdc->data_r(4);
@@ -308,7 +308,7 @@ READ8_MEMBER(tv990_state::kbdc_r)
return m_kbdc->data_r(0);
}
-WRITE8_MEMBER(tv990_state::kbdc_w)
+void tv990_state::kbdc_w(offs_t offset, uint8_t data)
{
if(offset)
m_kbdc->data_w(4, data);
diff --git a/src/mame/drivers/twinkle.cpp b/src/mame/drivers/twinkle.cpp
index 73a6e22cd98..5566ea774c2 100644
--- a/src/mame/drivers/twinkle.cpp
+++ b/src/mame/drivers/twinkle.cpp
@@ -287,20 +287,19 @@ public:
private:
virtual void machine_start() override;
- DECLARE_WRITE8_MEMBER(twinkle_io_w);
- DECLARE_READ8_MEMBER(twinkle_io_r);
- DECLARE_WRITE16_MEMBER(twinkle_output_w);
- DECLARE_WRITE16_MEMBER(led_w);
- DECLARE_WRITE16_MEMBER(key_led_w);
- DECLARE_WRITE16_MEMBER(serial_w);
- DECLARE_WRITE16_MEMBER(twinkle_spu_ctrl_w);
- DECLARE_WRITE16_MEMBER(spu_ata_dma_low_w);
- DECLARE_WRITE16_MEMBER(spu_ata_dma_high_w);
- DECLARE_READ16_MEMBER(twinkle_waveram_r);
- DECLARE_WRITE16_MEMBER(twinkle_waveram_w);
- DECLARE_WRITE16_MEMBER(spu_led_w);
- DECLARE_WRITE16_MEMBER(spu_wavebank_w);
- DECLARE_READ16_MEMBER(unk_68k_r);
+ void twinkle_io_w(offs_t offset, uint8_t data);
+ uint8_t twinkle_io_r(offs_t offset);
+ void twinkle_output_w(offs_t offset, uint16_t data);
+ void led_w(uint16_t data);
+ void key_led_w(uint16_t data);
+ void serial_w(uint16_t data);
+ void twinkle_spu_ctrl_w(uint16_t data);
+ void spu_ata_dma_low_w(uint16_t data);
+ void spu_ata_dma_high_w(uint16_t data);
+ uint16_t twinkle_waveram_r(offs_t offset);
+ void twinkle_waveram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void spu_led_w(uint16_t data);
+ void spu_wavebank_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
DECLARE_WRITE_LINE_MEMBER(spu_ata_irq);
DECLARE_WRITE_LINE_MEMBER(spu_ata_dmarq);
void scsi_dma_read( uint32_t *p_n_psxram, uint32_t n_address, int32_t n_size );
@@ -537,7 +536,7 @@ void twinkle_state::machine_start()
save_item(NAME(m_output_clock));
}
-WRITE8_MEMBER(twinkle_state::twinkle_io_w)
+void twinkle_state::twinkle_io_w(offs_t offset, uint8_t data)
{
switch( offset )
{
@@ -621,7 +620,7 @@ WRITE8_MEMBER(twinkle_state::twinkle_io_w)
}
}
-READ8_MEMBER(twinkle_state::twinkle_io_r)
+uint8_t twinkle_state::twinkle_io_r(offs_t offset)
{
uint8_t data = 0;
@@ -668,7 +667,7 @@ READ8_MEMBER(twinkle_state::twinkle_io_r)
return data;
}
-WRITE16_MEMBER(twinkle_state::twinkle_output_w)
+void twinkle_state::twinkle_output_w(offs_t offset, uint16_t data)
{
switch( offset )
{
@@ -726,7 +725,7 @@ WRITE16_MEMBER(twinkle_state::twinkle_output_w)
}
}
-WRITE16_MEMBER(twinkle_state::led_w)
+void twinkle_state::led_w(uint16_t data)
{
m_main_leds[0] = BIT(~data, 0);
m_main_leds[1] = BIT(~data, 1);
@@ -744,7 +743,7 @@ WRITE16_MEMBER(twinkle_state::led_w)
}
}
-WRITE16_MEMBER(twinkle_state::key_led_w)
+void twinkle_state::key_led_w(uint16_t data)
{
// words are written using a byte write
m_key_leds[0][0] = BIT(data, 0);
@@ -765,7 +764,7 @@ WRITE16_MEMBER(twinkle_state::key_led_w)
output().set_value("unknown4", (data >> 15) & 1);
}
-WRITE16_MEMBER(twinkle_state::serial_w)
+void twinkle_state::serial_w(uint16_t data)
{
int _do = ( data >> 4 ) & 1;
int clock = ( data >> 5 ) & 1;
@@ -836,7 +835,7 @@ WRITE_LINE_MEMBER(twinkle_state::spu_ata_irq)
Other bits unknown.
*/
-WRITE16_MEMBER(twinkle_state::twinkle_spu_ctrl_w)
+void twinkle_state::twinkle_spu_ctrl_w(uint16_t data)
{
if ((!(data & 0x0080)) && (m_spu_ctrl & 0x0080))
{
@@ -858,12 +857,12 @@ WRITE16_MEMBER(twinkle_state::twinkle_spu_ctrl_w)
m_spu_ctrl = data;
}
-WRITE16_MEMBER(twinkle_state::spu_ata_dma_low_w)
+void twinkle_state::spu_ata_dma_low_w(uint16_t data)
{
m_spu_ata_dma = (m_spu_ata_dma & ~0xffff) | data;
}
-WRITE16_MEMBER(twinkle_state::spu_ata_dma_high_w)
+void twinkle_state::spu_ata_dma_high_w(uint16_t data)
{
m_spu_ata_dma = (m_spu_ata_dma & 0xffff) | ((uint32_t)data << 16);
//printf("DMA now %x\n", m_spu_ata_dma);
@@ -894,7 +893,7 @@ WRITE_LINE_MEMBER(twinkle_state::spu_ata_dmarq)
}
}
-WRITE16_MEMBER(twinkle_state::spu_wavebank_w)
+void twinkle_state::spu_wavebank_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
//printf("%x to wavebank_w, mask %04x\n", data, mem_mask);
@@ -906,19 +905,19 @@ WRITE16_MEMBER(twinkle_state::spu_wavebank_w)
m_wave_bank = data * (4*1024*1024);
}
-READ16_MEMBER(twinkle_state::twinkle_waveram_r)
+uint16_t twinkle_state::twinkle_waveram_r(offs_t offset)
{
return m_waveram[offset+m_wave_bank];
}
-WRITE16_MEMBER(twinkle_state::twinkle_waveram_w)
+void twinkle_state::twinkle_waveram_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_waveram[offset+m_wave_bank]);
}
-WRITE16_MEMBER(twinkle_state::spu_led_w)
+void twinkle_state::spu_led_w(uint16_t data)
{
- // upper 8 bits are occassionally written as all zeros
+ // upper 8 bits are occasionally written as all zeros
m_spu_leds[0] = BIT(~data, 0);
m_spu_leds[1] = BIT(~data, 1);
m_spu_leds[2] = BIT(~data, 2);
diff --git a/src/mame/drivers/twins.cpp b/src/mame/drivers/twins.cpp
index af05dddcc2b..787cfc93da5 100644
--- a/src/mame/drivers/twins.cpp
+++ b/src/mame/drivers/twins.cpp
@@ -144,8 +144,8 @@ protected:
void twins_map(address_map &map);
uint32_t screen_update_twins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- DECLARE_READ16_MEMBER(eeprom_r);
- DECLARE_WRITE16_MEMBER(eeprom_w);
+ uint16_t eeprom_r(offs_t offset, uint16_t mem_mask = ~0);
+ void eeprom_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
void draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect);
virtual void video_start() override;
@@ -153,13 +153,13 @@ protected:
static constexpr u32 ram_size = 0x10000/2;
inline u16* get_vram_base();
- DECLARE_READ16_MEMBER(vram_r);
- DECLARE_WRITE16_MEMBER(vram_w);
- DECLARE_WRITE16_MEMBER(vram_rmw_w);
+ uint16_t vram_r(offs_t offset);
+ void vram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void vram_rmw_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
private:
- DECLARE_WRITE16_MEMBER(access_w);
- DECLARE_READ16_MEMBER(access_r);
+ void access_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ uint16_t access_r(offs_t offset, uint16_t mem_mask = ~0);
virtual void machine_start() override;
@@ -178,8 +178,8 @@ public:
private:
void twinsed1_io(address_map &map);
- DECLARE_WRITE16_MEMBER(porte_paloff0_w);
- DECLARE_WRITE16_MEMBER(twins_pal_w);
+ void porte_paloff0_w(uint8_t data);
+ void twins_pal_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
};
class spider_state : public twins_state
@@ -197,12 +197,12 @@ private:
void draw_foreground(bitmap_ind16 &bitmap, const rectangle &cliprect);
void spider_io(address_map &map);
- DECLARE_WRITE16_MEMBER(spider_paloff0_w);
- DECLARE_READ16_MEMBER(spider_port_18_r);
- DECLARE_READ16_MEMBER(spider_port_1e_r);
- DECLARE_WRITE16_MEMBER(spider_port_1a_w);
- DECLARE_WRITE16_MEMBER(spider_port_1c_w);
- DECLARE_WRITE16_MEMBER(spider_pal_w);
+ void spider_paloff0_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ uint16_t spider_port_18_r();
+ uint16_t spider_port_1e_r();
+ void spider_port_1a_w(uint16_t data);
+ void spider_port_1c_w(uint16_t data);
+ void spider_pal_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
};
void twins_state::video_start()
@@ -278,7 +278,7 @@ void twins_state::machine_start()
m_rom8 = memregion("ipl")->base();
}
-READ16_MEMBER(twins_state::eeprom_r)
+uint16_t twins_state::eeprom_r(offs_t offset, uint16_t mem_mask)
{
// printf("%08x: eeprom_r %04x\n", m_maincpu->pc(), mem_mask);
// return m_i2cmem->read_sda();// | 0xfffe;
@@ -287,7 +287,7 @@ READ16_MEMBER(twins_state::eeprom_r)
return m_i2cmem->read_sda();
}
-WRITE16_MEMBER(twins_state::eeprom_w)
+void twins_state::eeprom_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
// printf("%08x: eeprom_w %04x %04x\n", m_maincpu->pc(), data, mem_mask);
int i2c_clk = BIT(data, 1);
@@ -296,7 +296,7 @@ WRITE16_MEMBER(twins_state::eeprom_w)
m_i2cmem->write_sda(i2c_mem);
}
-WRITE16_MEMBER(twinsed1_state::twins_pal_w)
+void twinsed1_state::twins_pal_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_paletteram[m_paloff]);
@@ -320,7 +320,7 @@ WRITE16_MEMBER(twinsed1_state::twins_pal_w)
}
/* ??? weird ..*/
-WRITE16_MEMBER(twinsed1_state::porte_paloff0_w)
+void twinsed1_state::porte_paloff0_w(uint8_t data)
{
// printf("porte_paloff0_w %04x\n", data);
m_paloff = 0;
@@ -331,20 +331,20 @@ inline u16 *twins_state::get_vram_base()
return (m_videorambank & 1) ? m_fgvram.get() : m_bgvram.get();
}
-READ16_MEMBER(twins_state::vram_r)
+uint16_t twins_state::vram_r(offs_t offset)
{
u16 *vram = get_vram_base();
return vram[offset];
}
-WRITE16_MEMBER(twins_state::vram_w)
+void twins_state::vram_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
u16 *vram = get_vram_base();
COMBINE_DATA(&vram[offset]);
}
// TODO: confirm this area being present on twins versions
-WRITE16_MEMBER(twins_state::vram_rmw_w)
+void twins_state::vram_rmw_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
u16 *vram = get_vram_base();
@@ -371,12 +371,12 @@ WRITE16_MEMBER(twins_state::vram_rmw_w)
}
}
-READ16_MEMBER(twins_state::access_r)
+uint16_t twins_state::access_r(offs_t offset, uint16_t mem_mask)
{
return m_overlay->read16(offset, mem_mask);
}
-WRITE16_MEMBER(twins_state::access_w)
+void twins_state::access_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
// this is very strange, we use the offset (address bits) not data bits to set values..
// I get the impression this might actually overlay the entire address range, including RAM and regular VRAM?
@@ -401,7 +401,7 @@ WRITE16_MEMBER(twins_state::access_w)
m_overlay->write16(offset, data, mem_mask);
}
-WRITE16_MEMBER(spider_state::spider_pal_w)
+void spider_state::spider_pal_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
// ths first write doesn't appear to be a palette value
if (m_paloff!=0)
@@ -427,19 +427,19 @@ WRITE16_MEMBER(spider_state::spider_pal_w)
}
-WRITE16_MEMBER(spider_state::spider_paloff0_w)
+void spider_state::spider_paloff0_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
// this seems to be video ram banking
COMBINE_DATA(&m_videorambank);
}
-WRITE16_MEMBER(spider_state::spider_port_1a_w)
+void spider_state::spider_port_1a_w(uint16_t data)
{
// writes 1
}
-WRITE16_MEMBER(spider_state::spider_port_1c_w)
+void spider_state::spider_port_1c_w(uint16_t data)
{
// done before the 'sprite' read / writes
// might clear a buffer?
@@ -454,7 +454,7 @@ WRITE16_MEMBER(spider_state::spider_port_1c_w)
}
-READ16_MEMBER(spider_state::spider_port_18_r)
+uint16_t spider_state::spider_port_18_r()
{
// read before each blitter command
// seems to put the bus in a state where the next 2 bus access offsets (anywhere) are the blitter params
@@ -463,7 +463,7 @@ READ16_MEMBER(spider_state::spider_port_18_r)
return 0xff;
}
-READ16_MEMBER(spider_state::spider_port_1e_r)
+uint16_t spider_state::spider_port_1e_r()
{
// done before each sprite pixel 'write'
// the data read is the data written, but only reads one pixel??
diff --git a/src/mame/drivers/uapce.cpp b/src/mame/drivers/uapce.cpp
index e12a0f34254..9016b99689c 100644
--- a/src/mame/drivers/uapce.cpp
+++ b/src/mame/drivers/uapce.cpp
@@ -134,9 +134,9 @@ public:
private:
uint8_t m_jamma_if_control_latch;
- DECLARE_WRITE8_MEMBER(jamma_if_control_latch_w);
- DECLARE_READ8_MEMBER(jamma_if_control_latch_r);
- DECLARE_READ8_MEMBER(jamma_if_read_dsw);
+ void jamma_if_control_latch_w(uint8_t data);
+ uint8_t jamma_if_control_latch_r();
+ uint8_t jamma_if_read_dsw(offs_t offset);
virtual uint8_t joy_read() override;
virtual void machine_reset() override;
required_device<discrete_device> m_discrete;
@@ -156,7 +156,7 @@ static DISCRETE_SOUND_START(uapce_discrete)
DISCRETE_SOUND_END
-WRITE8_MEMBER(uapce_state::jamma_if_control_latch_w)
+void uapce_state::jamma_if_control_latch_w(uint8_t data)
{
uint8_t diff = data ^ m_jamma_if_control_latch;
m_jamma_if_control_latch = data;
@@ -199,12 +199,12 @@ WRITE8_MEMBER(uapce_state::jamma_if_control_latch_w)
/* D0 : Not latched. */
}
-READ8_MEMBER(uapce_state::jamma_if_control_latch_r)
+uint8_t uapce_state::jamma_if_control_latch_r()
{
return m_jamma_if_control_latch & 0x08;
}
-READ8_MEMBER(uapce_state::jamma_if_read_dsw)
+uint8_t uapce_state::jamma_if_read_dsw(offs_t offset)
{
uint8_t dsw_val;
diff --git a/src/mame/drivers/ultim809.cpp b/src/mame/drivers/ultim809.cpp
new file mode 100644
index 00000000000..75c60ee9e5b
--- /dev/null
+++ b/src/mame/drivers/ultim809.cpp
@@ -0,0 +1,173 @@
+// license:BSD-3-Clause
+// copyright-holders:Robbbert
+/******************************************************************************************************
+
+Ultim809 homebrew computer by Matthew Sarnoff, 2011
+http://www.msarnoff.org/6809/
+
+Was developed during 2009-2011, but unknown if it was ever finished. Most of the claimed
+features don't seem to be there or are inaccessible.
+
+2020-06-04 Skeleton [Robbbert]
+
+If someone knows more about the system, please update this source.
+
+
+ToDo:
+- Mirrors
+- Video RAM has 2 banks of 0x4000 each. There's no way to select banks in the VDP code.
+- Sound (hooked up, unable to test)
+- FTDI connector
+- Keyboard, PS/2 type from an older PC, connects to VIA PB7 and CA1.
+- Joysticks (Sega gamepad, or Atari joystick only).
+- Reset button, Run/Halt switch.
+- Power LED, Bus status LEDs (2), User status LEDs (2).
+- RTC type DS1307, connects to VIA PB0,PB1,PB6; xtal 32'768; battery CR2032.
+- SD card slots and SPDI shift register (74595).
+- Need software (some is supposed to exist; if found we could use a quickloader to get it in)
+
+Status:
+- It ran into the weeds at 0x100, so memory is patched there to jump to the sign-on screen.
+- When it says to press INTERRUPT, press F1. May need multiple presses to get over random errors.
+- Various commands starting with k are supposed to be valid, but nothing is acceptable.
+- If an error occurs it locks up and you have to press F1 again.
+- Even though it is suggested to use a dumb terminal, nothing ever shows on it.
+
+****************************************************************************************************/
+
+#include "emu.h"
+#include "cpu/m6809/m6809.h"
+#include "video/tms9928a.h"
+#include "machine/6522via.h"
+#include "sound/ay8910.h"
+#include "machine/ins8250.h"
+#include "bus/rs232/rs232.h"
+#include "speaker.h"
+
+class ultim809_state : public driver_device
+{
+public:
+ ultim809_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "maincpu")
+ , m_via(*this, "via")
+ , m_crtc(*this, "crtc")
+ , m_psg(*this, "psg")
+ , m_uart(*this, "uart")
+ , m_membank(0)
+ {}
+
+ void ultim809(machine_config &config);
+
+ DECLARE_INPUT_CHANGED_MEMBER(nmi_button);
+
+private:
+ void mem_map(address_map &map);
+ virtual void machine_start() override;
+ std::unique_ptr<u8[]> m_ram;
+ required_device<cpu_device> m_maincpu;
+ required_device<via6522_device> m_via;
+ required_device<tms9918a_device> m_crtc;
+ required_device<ay8910_device> m_psg;
+ required_device<ns16550_device> m_uart;
+ u8 m_membank;
+};
+
+void ultim809_state::mem_map(address_map &map)
+{
+ map.unmap_value_high();
+ // main ram banks 0 and 1
+ map(0x0000, 0x7fff).lrw8(NAME([this] (offs_t offset) { return m_ram[offset]; }), NAME([this] (offs_t offset, u8 data) { m_ram[offset] = data; } ));
+ // main ram any bank
+ map(0x8000, 0xbfff).lrw8(NAME([this] (offs_t offset) { return m_ram[offset | (m_membank << 14)]; }),
+ NAME([this] (offs_t offset, u8 data) { m_ram[offset | (m_membank << 14)] = data; } )); // u8
+ // devices
+ map(0xc000, 0xc00f).m(m_via, FUNC(via6522_device::map)); // u11
+ map(0xc400, 0xc407).rw(m_uart, FUNC(ns16550_device::ins8250_r), FUNC(ns16550_device::ins8250_w)); // u16
+ map(0xc800, 0xc800); //.r chip enable 74595
+ map(0xcc00, 0xcc00).rw(m_crtc, FUNC(tms9918a_device::vram_read), FUNC(tms9918a_device::vram_write));
+ map(0xcc01, 0xcc01).rw(m_crtc, FUNC(tms9918a_device::register_read), FUNC(tms9918a_device::register_write));
+ map(0xcc02, 0xcc03).rw(m_psg, FUNC(ay8910_device::data_r), FUNC(ay8910_device::address_data_w));
+ map(0xcc04, 0xcc04); //.r select lower 16k of VRAM
+ map(0xcc06, 0xcc06); //.r clear gamepad pin 7
+ map(0xcc0c, 0xcc0c); //.r select upper 16k of VRAM
+ map(0xcc0e, 0xcc0e); //.r set gamepad pin 7
+ map(0xd000, 0xd3ff); // expansion slot 1 (not used)
+ map(0xd400, 0xd7ff); // expansion slot 2 (not used)
+ map(0xd800, 0xdbff); // expansion slot 3 (not used)
+ map(0xdc00, 0xdfff); // expansion slot 4 (not used)
+ // rom
+ map(0xe000, 0xffff).rom().region("maincpu", 0); // u9
+}
+
+
+static INPUT_PORTS_START( ultim809 )
+ PORT_START("RESET")
+ PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_KEYBOARD) PORT_NAME("Interrupt") PORT_CODE(KEYCODE_F1) PORT_CHANGED_MEMBER(DEVICE_SELF, ultim809_state, nmi_button, 0)
+INPUT_PORTS_END
+
+INPUT_CHANGED_MEMBER(ultim809_state::nmi_button)
+{
+ m_maincpu->set_input_line(INPUT_LINE_NMI, newval ? ASSERT_LINE : CLEAR_LINE);
+}
+
+void ultim809_state::machine_start()
+{
+ m_ram = make_unique_clear<u8[]>(0x80000);
+ save_pointer(NAME(m_ram), 0x80000);
+ save_item(NAME(m_membank));
+ // Send it to the sign-on instead of into the weeds
+ m_ram[0x100] = 0x10;
+ m_ram[0x101] = 0x3F;
+}
+
+static DEVICE_INPUT_DEFAULTS_START( terminal )
+ DEVICE_INPUT_DEFAULTS( "RS232_RXBAUD", 0xff, RS232_BAUD_38400 )
+ DEVICE_INPUT_DEFAULTS( "RS232_TXBAUD", 0xff, RS232_BAUD_38400 )
+DEVICE_INPUT_DEFAULTS_END
+
+void ultim809_state::ultim809(machine_config &config)
+{
+ // basic machine hardware
+ MC6809E(config, m_maincpu, 8000000 / 4); // 68B09E
+ m_maincpu->set_addrmap(AS_PROGRAM, &ultim809_state::mem_map);
+
+ // video hardware
+ TMS9918A(config, m_crtc, XTAL(10'738'635));
+ m_crtc->set_screen("screen");
+ m_crtc->set_vram_size(0x4000); // actually 2 banks of 0x4000
+ m_crtc->int_callback().set_inputline(m_maincpu, M6809_IRQ_LINE);
+ SCREEN(config, "screen", SCREEN_TYPE_RASTER);
+
+ VIA6522(config, m_via, 8000000 / 4);
+ // Memory banking: up to 32 banks with inbuilt U8, or replace it with external memory to get the full 4 MB
+ m_via->writepa_handler().set([this] (u8 data) { m_membank = data & 0x1F; }); // memory banking
+ //m_via->readpb_handler().set(FUNC(ultim809_state::portb_r)); // serial
+ //m_via->writepb_handler().set(FUNC(ultim809_state::portb_w)); // serial
+ m_via->irq_handler().set_inputline(m_maincpu, M6809_FIRQ_LINE);
+
+ // sound hardware
+ SPEAKER(config, "mono").front_center();
+ AY8910(config, m_psg, 8000000 / 4).add_route(ALL_OUTPUTS, "mono", 0.50);
+ //m_psg->port_a_read_callback(FUNC(ultim809_state::...); // joystick 1
+ //m_psg->port_b_read_callback(FUNC(ultim809_state::...); // joystick 2
+
+ NS16550(config, m_uart, XTAL(1'843'200));
+ m_uart->out_tx_callback().set("rs232", FUNC(rs232_port_device::write_txd));
+
+ // there's no rs232 port, it uses FTDI, but we need to see what's going on
+ rs232_port_device &rs232(RS232_PORT(config, "rs232", default_rs232_devices, "terminal"));
+ rs232.rxd_handler().set(m_uart, FUNC(ins8250_uart_device::rx_w));
+ rs232.set_option_device_input_defaults("terminal", DEVICE_INPUT_DEFAULTS_NAME(terminal)); // must be exactly here
+}
+
+/* ROM definition */
+ROM_START( ultim809 )
+ ROM_REGION(0x2000, "maincpu", 0)
+ ROM_LOAD( "ultim809.u9", 0x0000, 0x2000, CRC(b827aaf1) SHA1(64d9e94542d8ff13f64a4d787508eef7b64d4946) )
+ROM_END
+
+/* Driver */
+
+// YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS
+COMP( 2010, ultim809, 0, 0, ultim809, ultim809, ultim809_state, empty_init, "Matthew Sarnoff", "Ultim809", MACHINE_IS_INCOMPLETE | MACHINE_IS_SKELETON | MACHINE_SUPPORTS_SAVE )
diff --git a/src/mame/drivers/umipoker.cpp b/src/mame/drivers/umipoker.cpp
index 96bd58b8fb3..d3f096f4f95 100644
--- a/src/mame/drivers/umipoker.cpp
+++ b/src/mame/drivers/umipoker.cpp
@@ -50,19 +50,19 @@ public:
void umipoker(machine_config &config);
protected:
- DECLARE_READ8_MEMBER(z80_rom_readback_r);
- DECLARE_READ8_MEMBER(z80_shared_ram_r);
- DECLARE_WRITE8_MEMBER(z80_shared_ram_w);
- DECLARE_WRITE16_MEMBER(umipoker_irq_ack_w);
- DECLARE_WRITE16_MEMBER(umipoker_scrolly_0_w);
- DECLARE_WRITE16_MEMBER(umipoker_scrolly_1_w);
- DECLARE_WRITE16_MEMBER(umipoker_scrolly_2_w);
- DECLARE_WRITE16_MEMBER(umipoker_scrolly_3_w);
- DECLARE_WRITE16_MEMBER(umipoker_vram_0_w);
- DECLARE_WRITE16_MEMBER(umipoker_vram_1_w);
- DECLARE_WRITE16_MEMBER(umipoker_vram_2_w);
- DECLARE_WRITE16_MEMBER(umipoker_vram_3_w);
- DECLARE_WRITE16_MEMBER(umi_counters_w);
+ uint8_t z80_rom_readback_r(offs_t offset);
+ uint8_t z80_shared_ram_r(offs_t offset);
+ void z80_shared_ram_w(offs_t offset, uint8_t data);
+ void umipoker_irq_ack_w(uint16_t data);
+ void umipoker_scrolly_0_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void umipoker_scrolly_1_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void umipoker_scrolly_2_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void umipoker_scrolly_3_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void umipoker_vram_0_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void umipoker_vram_1_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void umipoker_vram_2_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void umipoker_vram_3_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void umi_counters_w(uint16_t data);
TILE_GET_INFO_MEMBER(get_tile_info_0);
TILE_GET_INFO_MEMBER(get_tile_info_1);
TILE_GET_INFO_MEMBER(get_tile_info_2);
@@ -105,8 +105,8 @@ protected:
virtual void machine_start() override;
private:
- DECLARE_WRITE16_MEMBER(lamps_w);
- DECLARE_WRITE16_MEMBER(saiyu_counters_w);
+ void lamps_w(uint16_t data);
+ void saiyu_counters_w(uint16_t data);
void saiyukip_map(address_map &map);
@@ -188,28 +188,28 @@ uint32_t umipoker_state::screen_update_umipoker(screen_device &screen, bitmap_in
return 0;
}
-READ8_MEMBER(umipoker_state::z80_rom_readback_r)
+uint8_t umipoker_state::z80_rom_readback_r(offs_t offset)
{
uint8_t *ROM = memregion("audiocpu")->base();
return ROM[offset];
}
-READ8_MEMBER(umipoker_state::z80_shared_ram_r)
+uint8_t umipoker_state::z80_shared_ram_r(offs_t offset)
{
machine().scheduler().synchronize(); // force resync
return m_z80_wram[offset];
}
-WRITE8_MEMBER(umipoker_state::z80_shared_ram_w)
+void umipoker_state::z80_shared_ram_w(offs_t offset, uint8_t data)
{
machine().scheduler().synchronize(); // force resync
m_z80_wram[offset] = data;
}
-WRITE16_MEMBER(umipoker_state::umipoker_irq_ack_w)
+void umipoker_state::umipoker_irq_ack_w(uint16_t data)
{
m_maincpu->set_input_line(6, CLEAR_LINE);
@@ -218,37 +218,37 @@ WRITE16_MEMBER(umipoker_state::umipoker_irq_ack_w)
popmessage("%04x IRQ ACK, contact MAMEdev",data);
}
-WRITE16_MEMBER(umipoker_state::umipoker_scrolly_0_w){ COMBINE_DATA(&m_umipoker_scrolly[0]); }
-WRITE16_MEMBER(umipoker_state::umipoker_scrolly_1_w){ COMBINE_DATA(&m_umipoker_scrolly[1]); }
-WRITE16_MEMBER(umipoker_state::umipoker_scrolly_2_w){ COMBINE_DATA(&m_umipoker_scrolly[2]); }
-WRITE16_MEMBER(umipoker_state::umipoker_scrolly_3_w){ COMBINE_DATA(&m_umipoker_scrolly[3]); }
+void umipoker_state::umipoker_scrolly_0_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_umipoker_scrolly[0]); }
+void umipoker_state::umipoker_scrolly_1_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_umipoker_scrolly[1]); }
+void umipoker_state::umipoker_scrolly_2_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_umipoker_scrolly[2]); }
+void umipoker_state::umipoker_scrolly_3_w(offs_t offset, uint16_t data, uint16_t mem_mask) { COMBINE_DATA(&m_umipoker_scrolly[3]); }
-WRITE16_MEMBER(umipoker_state::umipoker_vram_0_w)
+void umipoker_state::umipoker_vram_0_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_vram_0[offset]);
m_tilemap_0->mark_tile_dirty(offset >> 1);
}
-WRITE16_MEMBER(umipoker_state::umipoker_vram_1_w)
+void umipoker_state::umipoker_vram_1_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_vram_1[offset]);
m_tilemap_1->mark_tile_dirty(offset >> 1);
}
-WRITE16_MEMBER(umipoker_state::umipoker_vram_2_w)
+void umipoker_state::umipoker_vram_2_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_vram_2[offset]);
m_tilemap_2->mark_tile_dirty(offset >> 1);
}
-WRITE16_MEMBER(umipoker_state::umipoker_vram_3_w)
+void umipoker_state::umipoker_vram_3_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_vram_3[offset]);
m_tilemap_3->mark_tile_dirty(offset >> 1);
}
-WRITE16_MEMBER(saiyukip_state::lamps_w)
+void saiyukip_state::lamps_w(uint16_t data)
{
/*
Umipoker buttons layout:
@@ -297,7 +297,7 @@ WRITE16_MEMBER(saiyukip_state::lamps_w)
m_lamps[5] = BIT(data, 13); // Lamp 5 - START
}
-WRITE16_MEMBER(umipoker_state::umi_counters_w)
+void umipoker_state::umi_counters_w(uint16_t data)
{/*
0x0000 - Normal State (lamps off).
0x0001 - Payout pulse.
@@ -318,7 +318,7 @@ WRITE16_MEMBER(umipoker_state::umi_counters_w)
machine().bookkeeping().coin_counter_w(2, BIT(data, 0)); // PAYOUT
}
-WRITE16_MEMBER(saiyukip_state::saiyu_counters_w)
+void saiyukip_state::saiyu_counters_w(uint16_t data)
{
/*
0x0000 - Normal State (lamps off).
diff --git a/src/mame/drivers/unixpc.cpp b/src/mame/drivers/unixpc.cpp
index 9b36f607b00..fa042790363 100644
--- a/src/mame/drivers/unixpc.cpp
+++ b/src/mame/drivers/unixpc.cpp
@@ -68,23 +68,23 @@ private:
virtual void machine_start() override;
virtual void machine_reset() override;
- DECLARE_READ16_MEMBER(line_printer_r);
+ uint16_t line_printer_r();
void disk_control_w(uint8_t data);
- DECLARE_WRITE16_MEMBER(gcr_w);
+ void gcr_w(offs_t offset, uint16_t data);
DECLARE_WRITE_LINE_MEMBER(romlmap_w);
DECLARE_WRITE_LINE_MEMBER(error_enable_w);
DECLARE_WRITE_LINE_MEMBER(parity_enable_w);
DECLARE_WRITE_LINE_MEMBER(bpplus_w);
- DECLARE_READ16_MEMBER(ram_mmu_r);
- DECLARE_WRITE16_MEMBER(ram_mmu_w);
- DECLARE_READ16_MEMBER(gsr_r);
- DECLARE_WRITE16_MEMBER(tcr_w);
- DECLARE_READ16_MEMBER(tsr_r);
- DECLARE_READ16_MEMBER(rtc_r);
- DECLARE_WRITE16_MEMBER(rtc_w);
- DECLARE_READ16_MEMBER(diskdma_size_r);
- DECLARE_WRITE16_MEMBER(diskdma_size_w);
- DECLARE_WRITE16_MEMBER(diskdma_ptr_w);
+ uint16_t ram_mmu_r(offs_t offset);
+ void ram_mmu_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ uint16_t gsr_r();
+ void tcr_w(offs_t offset, uint16_t data);
+ uint16_t tsr_r();
+ uint16_t rtc_r();
+ void rtc_w(uint16_t data);
+ uint16_t diskdma_size_r();
+ void diskdma_size_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void diskdma_ptr_w(offs_t offset, uint16_t data);
DECLARE_WRITE_LINE_MEMBER(wd2797_intrq_w);
DECLARE_WRITE_LINE_MEMBER(wd2797_drq_w);
@@ -122,7 +122,7 @@ private:
MEMORY
***************************************************************************/
-WRITE16_MEMBER(unixpc_state::gcr_w)
+void unixpc_state::gcr_w(offs_t offset, uint16_t data)
{
m_gcr->write_bit(offset >> 11, BIT(data, 15));
}
@@ -132,7 +132,7 @@ WRITE_LINE_MEMBER(unixpc_state::romlmap_w)
m_ramrombank->set_bank(state ? 1 : 0);
}
-READ16_MEMBER(unixpc_state::ram_mmu_r)
+uint16_t unixpc_state::ram_mmu_r(offs_t offset)
{
// TODO: MMU translation
if (offset > m_ramsize)
@@ -142,7 +142,7 @@ READ16_MEMBER(unixpc_state::ram_mmu_r)
return m_ramptr[offset];
}
-WRITE16_MEMBER(unixpc_state::ram_mmu_w)
+void unixpc_state::ram_mmu_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
// TODO: MMU translation
if (offset < m_ramsize)
@@ -181,32 +181,32 @@ WRITE_LINE_MEMBER(unixpc_state::bpplus_w)
MISC
***************************************************************************/
-READ16_MEMBER(unixpc_state::gsr_r)
+uint16_t unixpc_state::gsr_r()
{
return 0;
}
-WRITE16_MEMBER(unixpc_state::tcr_w)
+void unixpc_state::tcr_w(offs_t offset, uint16_t data)
{
m_tcr->write_bit(offset >> 11, BIT(data, 14));
}
-READ16_MEMBER(unixpc_state::tsr_r)
+uint16_t unixpc_state::tsr_r()
{
return 0;
}
-READ16_MEMBER(unixpc_state::rtc_r)
+uint16_t unixpc_state::rtc_r()
{
return 0;
}
-WRITE16_MEMBER(unixpc_state::rtc_w)
+void unixpc_state::rtc_w(uint16_t data)
{
logerror("rtc_w: %04x\n", data);
}
-READ16_MEMBER(unixpc_state::line_printer_r)
+uint16_t unixpc_state::line_printer_r()
{
uint16_t data = 0;
@@ -224,18 +224,18 @@ READ16_MEMBER(unixpc_state::line_printer_r)
DMA
***************************************************************************/
-READ16_MEMBER(unixpc_state::diskdma_size_r)
+uint16_t unixpc_state::diskdma_size_r()
{
return m_diskdmasize;
}
-WRITE16_MEMBER(unixpc_state::diskdma_size_w)
+void unixpc_state::diskdma_size_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA( &m_diskdmasize );
logerror("%x to disk DMA size\n", data);
}
-WRITE16_MEMBER(unixpc_state::diskdma_ptr_w)
+void unixpc_state::diskdma_ptr_w(offs_t offset, uint16_t data)
{
if (offset >= 0x2000)
{
diff --git a/src/mame/drivers/unkhorse.cpp b/src/mame/drivers/unkhorse.cpp
index ecf231b4e92..432c2ccb57d 100644
--- a/src/mame/drivers/unkhorse.cpp
+++ b/src/mame/drivers/unkhorse.cpp
@@ -50,8 +50,8 @@ private:
std::unique_ptr<uint8_t[]> m_colorram;
uint8_t m_output;
- DECLARE_READ8_MEMBER(colorram_r) { return m_colorram[(offset >> 2 & 0x1e0) | (offset & 0x1f)] | 0x0f; }
- DECLARE_WRITE8_MEMBER(colorram_w) { m_colorram[(offset >> 2 & 0x1e0) | (offset & 0x1f)] = data & 0xf0; }
+ uint8_t colorram_r(offs_t offset) { return m_colorram[(offset >> 2 & 0x1e0) | (offset & 0x1f)] | 0x0f; }
+ void colorram_w(offs_t offset, uint8_t data) { m_colorram[(offset >> 2 & 0x1e0) | (offset & 0x1f)] = data & 0xf0; }
uint8_t input_r();
void output_w(uint8_t data);
diff --git a/src/mame/drivers/uzebox.cpp b/src/mame/drivers/uzebox.cpp
index 27357530321..f7407df54c4 100644
--- a/src/mame/drivers/uzebox.cpp
+++ b/src/mame/drivers/uzebox.cpp
@@ -53,14 +53,14 @@ private:
required_device<snes_control_port_device> m_ctrl2;
required_device<speaker_sound_device> m_speaker;
- DECLARE_READ8_MEMBER(port_a_r);
- DECLARE_WRITE8_MEMBER(port_a_w);
- DECLARE_READ8_MEMBER(port_b_r);
- DECLARE_WRITE8_MEMBER(port_b_w);
- DECLARE_READ8_MEMBER(port_c_r);
- DECLARE_WRITE8_MEMBER(port_c_w);
- DECLARE_READ8_MEMBER(port_d_r);
- DECLARE_WRITE8_MEMBER(port_d_w);
+ uint8_t port_a_r();
+ void port_a_w(uint8_t data);
+ uint8_t port_b_r();
+ void port_b_w(uint8_t data);
+ uint8_t port_c_r();
+ void port_c_w(uint8_t data);
+ uint8_t port_d_r();
+ void port_d_w(uint8_t data);
virtual void machine_start() override;
virtual void machine_reset() override;
@@ -102,7 +102,7 @@ void uzebox_state::machine_reset()
}
-WRITE8_MEMBER(uzebox_state::port_a_w)
+void uzebox_state::port_a_w(uint8_t data)
{
// xxxx ---- NC
// ---- x--- SNES controller clk
@@ -124,12 +124,12 @@ WRITE8_MEMBER(uzebox_state::port_a_w)
m_port_a = (data & 0x0c) | (m_port_a & 0x03);
}
-READ8_MEMBER(uzebox_state::port_a_r)
+uint8_t uzebox_state::port_a_r()
{
return m_port_a | 0xf0;
}
-WRITE8_MEMBER(uzebox_state::port_b_w)
+void uzebox_state::port_b_w(uint8_t data)
{
// xxx- ---- SDCard
// ---x ---- AD725 CE
@@ -156,12 +156,12 @@ WRITE8_MEMBER(uzebox_state::port_b_w)
m_port_b = data;
}
-READ8_MEMBER(uzebox_state::port_b_r)
+uint8_t uzebox_state::port_b_r()
{
return m_port_b;
}
-WRITE8_MEMBER(uzebox_state::port_c_w)
+void uzebox_state::port_c_w(uint8_t data)
{
// xx-- ---- blue
// --xx x--- green
@@ -171,12 +171,12 @@ WRITE8_MEMBER(uzebox_state::port_c_w)
m_port_c = data;
}
-READ8_MEMBER(uzebox_state::port_c_r)
+uint8_t uzebox_state::port_c_r()
{
return m_port_c;
}
-WRITE8_MEMBER(uzebox_state::port_d_w)
+void uzebox_state::port_d_w(uint8_t data)
{
// x--- ---- sound
// -x-- ---- SDCard CS
@@ -191,7 +191,7 @@ WRITE8_MEMBER(uzebox_state::port_d_w)
m_port_d = data;
}
-READ8_MEMBER(uzebox_state::port_d_r)
+uint8_t uzebox_state::port_d_r()
{
return m_port_d;
}
diff --git a/src/mame/drivers/v100.cpp b/src/mame/drivers/v100.cpp
index 6a58c9d1a09..e7d66a7937b 100644
--- a/src/mame/drivers/v100.cpp
+++ b/src/mame/drivers/v100.cpp
@@ -47,11 +47,11 @@ public:
private:
u8 status_r();
- DECLARE_WRITE8_MEMBER(port30_w);
- DECLARE_READ8_MEMBER(keyboard_r);
- DECLARE_WRITE8_MEMBER(key_row_w);
- DECLARE_WRITE8_MEMBER(port48_w);
- DECLARE_WRITE8_MEMBER(picu_w);
+ void port30_w(u8 data);
+ u8 keyboard_r();
+ void key_row_w(u8 data);
+ void port48_w(u8 data);
+ void picu_w(u8 data);
template<int N> DECLARE_WRITE_LINE_MEMBER(picu_r_w);
IRQ_CALLBACK_MEMBER(irq_ack);
void ppi_porta_w(u8 data);
@@ -168,29 +168,29 @@ u8 v100_state::status_r()
return status;
}
-WRITE8_MEMBER(v100_state::port30_w)
+void v100_state::port30_w(u8 data)
{
// D6 = cursor/text blinking?
//logerror("Writing %02X to port 30\n", data);
}
-READ8_MEMBER(v100_state::keyboard_r)
+u8 v100_state::keyboard_r()
{
return m_key_row[m_active_row & 15].read_safe(0xff);
}
-WRITE8_MEMBER(v100_state::key_row_w)
+void v100_state::key_row_w(u8 data)
{
m_active_row = data;
}
-WRITE8_MEMBER(v100_state::port48_w)
+void v100_state::port48_w(u8 data)
{
//logerror("Writing %02X to port 48\n", data);
}
-WRITE8_MEMBER(v100_state::picu_w)
+void v100_state::picu_w(u8 data)
{
m_picu->b_w((data & 0x0e) >> 1);
m_picu->sgs_w(BIT(data, 4));
diff --git a/src/mame/drivers/vamphalf.cpp b/src/mame/drivers/vamphalf.cpp
index d265742af15..4789484e789 100644
--- a/src/mame/drivers/vamphalf.cpp
+++ b/src/mame/drivers/vamphalf.cpp
@@ -185,29 +185,29 @@ private:
void boonggab_prize_w(offs_t offset, u16 data);
void boonggab_lamps_w(offs_t offset, u16 data);
- DECLARE_READ16_MEMBER(vamphalf_speedup_r);
- DECLARE_READ16_MEMBER(vamphalfr1_speedup_r);
- DECLARE_READ16_MEMBER(vamphafk_speedup_r);
- DECLARE_READ16_MEMBER(coolmini_speedup_r);
- DECLARE_READ16_MEMBER(coolminii_speedup_r);
- DECLARE_READ16_MEMBER(suplup_speedup_r);
- DECLARE_READ16_MEMBER(luplup_speedup_r);
- DECLARE_READ16_MEMBER(luplup29_speedup_r);
- DECLARE_READ16_MEMBER(luplup10_speedup_r);
- DECLARE_READ16_MEMBER(puzlbang_speedup_r);
- DECLARE_READ16_MEMBER(puzlbanga_speedup_r);
- DECLARE_READ16_MEMBER(mrkicker_speedup_r);
- DECLARE_READ16_MEMBER(dquizgo2_speedup_r);
- DECLARE_READ32_MEMBER(aoh_speedup_r);
- DECLARE_READ16_MEMBER(jmpbreak_speedup_r);
- DECLARE_READ16_MEMBER(jmpbreaka_speedup_r);
- DECLARE_READ16_MEMBER(poosho_speedup_r);
- DECLARE_READ16_MEMBER(newxpang_speedup_r);
- DECLARE_READ16_MEMBER(worldadv_speedup_r);
- DECLARE_READ16_MEMBER(mrdig_speedup_r);
- DECLARE_READ16_MEMBER(dtfamily_speedup_r);
- DECLARE_READ16_MEMBER(toyland_speedup_r);
- DECLARE_READ16_MEMBER(boonggab_speedup_r);
+ u16 vamphalf_speedup_r();
+ u16 vamphalfr1_speedup_r();
+ u16 vamphafk_speedup_r();
+ u16 coolmini_speedup_r();
+ u16 coolminii_speedup_r();
+ u16 suplup_speedup_r();
+ u16 luplup_speedup_r();
+ u16 luplup29_speedup_r();
+ u16 luplup10_speedup_r();
+ u16 puzlbang_speedup_r();
+ u16 puzlbanga_speedup_r();
+ u16 mrkicker_speedup_r();
+ u16 dquizgo2_speedup_r();
+ u32 aoh_speedup_r();
+ u16 jmpbreak_speedup_r();
+ u16 jmpbreaka_speedup_r();
+ u16 poosho_speedup_r();
+ u16 newxpang_speedup_r();
+ u16 worldadv_speedup_r();
+ u16 mrdig_speedup_r();
+ u16 dtfamily_speedup_r();
+ u16 toyland_speedup_r();
+ u16 boonggab_speedup_r();
void aoh_oki_bank_w(u32 data);
void boonggab_oki_bank_w(offs_t offset, u16 data);
@@ -252,11 +252,11 @@ public:
private:
required_device<i8052_device> m_qdsp_cpu;
- DECLARE_READ16_MEMBER(misncrft_speedup_r);
- DECLARE_READ16_MEMBER(misncrfta_speedup_r);
- DECLARE_READ32_MEMBER(wivernwg_speedup_r);
- DECLARE_READ32_MEMBER(wyvernwg_speedup_r);
- DECLARE_READ32_MEMBER(wyvernwga_speedup_r);
+ u16 misncrft_speedup_r();
+ u16 misncrfta_speedup_r();
+ u32 wivernwg_speedup_r();
+ u32 wyvernwg_speedup_r();
+ u32 wyvernwga_speedup_r();
u32 wyvernwg_prot_r();
void wyvernwg_prot_w(u32 data);
@@ -298,8 +298,8 @@ private:
u32 finalgdr_prot_r();
void finalgdr_prot_w(u32 data);
- DECLARE_READ32_MEMBER(finalgdr_speedup_r);
- DECLARE_READ32_MEMBER(mrkickera_speedup_r);
+ u32 finalgdr_speedup_r();
+ u32 mrkickera_speedup_r();
void finalgdr_prize_w(u32 data);
void finalgdr_oki_bank_w(u32 data);
@@ -2906,7 +2906,7 @@ void vamphalf_state::banked_oki(int chip)
m_okibank->set_base(&ROM[0x20000]);
}
-READ16_MEMBER(vamphalf_state::vamphalf_speedup_r)
+u16 vamphalf_state::vamphalf_speedup_r()
{
if (m_maincpu->pc() == 0x82ec)
{
@@ -2919,7 +2919,7 @@ READ16_MEMBER(vamphalf_state::vamphalf_speedup_r)
return m_wram[0x4a7b8 / 2];
}
-READ16_MEMBER(vamphalf_state::vamphalfr1_speedup_r)
+u16 vamphalf_state::vamphalfr1_speedup_r()
{
if (m_maincpu->pc() == 0x82ec)
{
@@ -2932,7 +2932,7 @@ READ16_MEMBER(vamphalf_state::vamphalfr1_speedup_r)
return m_wram[0x4a468 / 2];
}
-READ16_MEMBER(vamphalf_state::vamphafk_speedup_r)
+u16 vamphalf_state::vamphafk_speedup_r()
{
if (m_maincpu->pc() == 0x82ec)
{
@@ -2945,7 +2945,7 @@ READ16_MEMBER(vamphalf_state::vamphafk_speedup_r)
return m_wram[0x4a648 / 2];
}
-READ16_MEMBER(vamphalf_qdsp_state::misncrft_speedup_r)
+u16 vamphalf_qdsp_state::misncrft_speedup_r()
{
if (m_maincpu->pc() == 0xff5a)
{
@@ -2958,7 +2958,7 @@ READ16_MEMBER(vamphalf_qdsp_state::misncrft_speedup_r)
return m_wram[0x741e8 / 2];
}
-READ16_MEMBER(vamphalf_qdsp_state::misncrfta_speedup_r)
+u16 vamphalf_qdsp_state::misncrfta_speedup_r()
{
if (m_maincpu->pc() == 0xecd6)
{
@@ -2971,7 +2971,7 @@ READ16_MEMBER(vamphalf_qdsp_state::misncrfta_speedup_r)
return m_wram[0x72e2c / 2];
}
-READ16_MEMBER(vamphalf_state::coolmini_speedup_r)
+u16 vamphalf_state::coolmini_speedup_r()
{
if (m_maincpu->pc() == 0x75f88)
{
@@ -2984,7 +2984,7 @@ READ16_MEMBER(vamphalf_state::coolmini_speedup_r)
return m_wram[0xd2df8 / 2];
}
-READ16_MEMBER(vamphalf_state::coolminii_speedup_r)
+u16 vamphalf_state::coolminii_speedup_r()
{
if (m_maincpu->pc() == 0x76024)
{
@@ -2997,7 +2997,7 @@ READ16_MEMBER(vamphalf_state::coolminii_speedup_r)
return m_wram[0xd30a8 / 2];
}
-READ16_MEMBER(vamphalf_state::suplup_speedup_r)
+u16 vamphalf_state::suplup_speedup_r()
{
if (m_maincpu->pc() == 0xaf184)
{
@@ -3010,7 +3010,7 @@ READ16_MEMBER(vamphalf_state::suplup_speedup_r)
return m_wram[0x11605c / 2];
}
-READ16_MEMBER(vamphalf_state::luplup_speedup_r)
+u16 vamphalf_state::luplup_speedup_r()
{
if (m_maincpu->pc() == 0xaefac)
{
@@ -3023,7 +3023,7 @@ READ16_MEMBER(vamphalf_state::luplup_speedup_r)
return m_wram[0x115e84 / 2];
}
-READ16_MEMBER(vamphalf_state::luplup29_speedup_r)
+u16 vamphalf_state::luplup29_speedup_r()
{
if (m_maincpu->pc() == 0xae6c0)
{
@@ -3036,7 +3036,7 @@ READ16_MEMBER(vamphalf_state::luplup29_speedup_r)
return m_wram[0x113f08 / 2];
}
-READ16_MEMBER(vamphalf_state::luplup10_speedup_r)
+u16 vamphalf_state::luplup10_speedup_r()
{
if (m_maincpu->pc() == 0xb1128)
{
@@ -3049,7 +3049,7 @@ READ16_MEMBER(vamphalf_state::luplup10_speedup_r)
return m_wram[0x113b78 / 2];
}
-READ16_MEMBER(vamphalf_state::puzlbang_speedup_r)
+u16 vamphalf_state::puzlbang_speedup_r()
{
if (m_maincpu->pc() == 0xae6cc)
{
@@ -3062,7 +3062,7 @@ READ16_MEMBER(vamphalf_state::puzlbang_speedup_r)
return m_wram[0x113f14 / 2];
}
-READ16_MEMBER(vamphalf_state::puzlbanga_speedup_r)
+u16 vamphalf_state::puzlbanga_speedup_r()
{
if (m_maincpu->pc() == 0xae6cc)
{
@@ -3075,7 +3075,7 @@ READ16_MEMBER(vamphalf_state::puzlbanga_speedup_r)
return m_wram[0x113ecc / 2];
}
-READ32_MEMBER(vamphalf_qdsp_state::wivernwg_speedup_r)
+u32 vamphalf_qdsp_state::wivernwg_speedup_r()
{
if (m_maincpu->pc() == 0x10766)
{
@@ -3088,7 +3088,7 @@ READ32_MEMBER(vamphalf_qdsp_state::wivernwg_speedup_r)
return m_wram32[0xb4cc4 / 4];
}
-READ32_MEMBER(vamphalf_qdsp_state::wyvernwg_speedup_r)
+u32 vamphalf_qdsp_state::wyvernwg_speedup_r()
{
if (m_maincpu->pc() == 0x10766)
{
@@ -3101,7 +3101,7 @@ READ32_MEMBER(vamphalf_qdsp_state::wyvernwg_speedup_r)
return m_wram32[0xb56f4 / 4];
}
-READ32_MEMBER(vamphalf_qdsp_state::wyvernwga_speedup_r)
+u32 vamphalf_qdsp_state::wyvernwga_speedup_r()
{
if (m_maincpu->pc() == 0x10766)
{
@@ -3114,7 +3114,7 @@ READ32_MEMBER(vamphalf_qdsp_state::wyvernwga_speedup_r)
return m_wram32[0xb74f0 / 4];
}
-READ32_MEMBER(vamphalf_nvram_state::finalgdr_speedup_r)
+u32 vamphalf_nvram_state::finalgdr_speedup_r()
{
if (m_maincpu->pc() == 0x1c20c)
{
@@ -3127,7 +3127,7 @@ READ32_MEMBER(vamphalf_nvram_state::finalgdr_speedup_r)
return m_wram32[0x5e870 / 4];
}
-READ32_MEMBER(vamphalf_nvram_state::mrkickera_speedup_r)
+u32 vamphalf_nvram_state::mrkickera_speedup_r()
{
if (m_maincpu->pc() == 0x46a30)
{
@@ -3140,7 +3140,7 @@ READ32_MEMBER(vamphalf_nvram_state::mrkickera_speedup_r)
return m_wram32[0x701a0 / 4];
}
-READ16_MEMBER(vamphalf_state::mrkicker_speedup_r)
+u16 vamphalf_state::mrkicker_speedup_r()
{
if (m_maincpu->pc() == 0x41ec6)
{
@@ -3153,7 +3153,7 @@ READ16_MEMBER(vamphalf_state::mrkicker_speedup_r)
return m_wram[0x63fc0 / 2];
}
-READ16_MEMBER(vamphalf_state::dquizgo2_speedup_r)
+u16 vamphalf_state::dquizgo2_speedup_r()
{
if (m_maincpu->pc() == 0xaa630)
{
@@ -3166,7 +3166,7 @@ READ16_MEMBER(vamphalf_state::dquizgo2_speedup_r)
return m_wram[0xcdde8 / 2];
}
-READ32_MEMBER(vamphalf_state::aoh_speedup_r)
+u32 vamphalf_state::aoh_speedup_r()
{
if (m_maincpu->pc() == 0xb994 || m_maincpu->pc() == 0xba40)
{
@@ -3176,7 +3176,7 @@ READ32_MEMBER(vamphalf_state::aoh_speedup_r)
return m_wram32[0x28a09c / 4];
}
-READ16_MEMBER(vamphalf_state::jmpbreak_speedup_r)
+u16 vamphalf_state::jmpbreak_speedup_r()
{
if (m_maincpu->pc() == 0x984a)
{
@@ -3189,7 +3189,7 @@ READ16_MEMBER(vamphalf_state::jmpbreak_speedup_r)
return m_wram[0x906f4 / 2];
}
-READ16_MEMBER(vamphalf_state::jmpbreaka_speedup_r)
+u16 vamphalf_state::jmpbreaka_speedup_r()
{
if (m_maincpu->pc() == 0x909ac)
{
@@ -3202,7 +3202,7 @@ READ16_MEMBER(vamphalf_state::jmpbreaka_speedup_r)
return m_wram[0xe1dfc / 2];
}
-READ16_MEMBER(vamphalf_state::poosho_speedup_r)
+u16 vamphalf_state::poosho_speedup_r()
{
if (m_maincpu->pc() == 0xa8c78)
{
@@ -3215,7 +3215,7 @@ READ16_MEMBER(vamphalf_state::poosho_speedup_r)
return m_wram[0xc8b58 / 2];
}
-READ16_MEMBER(vamphalf_state::newxpang_speedup_r)
+u16 vamphalf_state::newxpang_speedup_r()
{
if (m_maincpu->pc() == 0x8b8e)
{
@@ -3228,7 +3228,7 @@ READ16_MEMBER(vamphalf_state::newxpang_speedup_r)
return m_wram[0x61218 / 2];
}
-READ16_MEMBER(vamphalf_state::worldadv_speedup_r)
+u16 vamphalf_state::worldadv_speedup_r()
{
if (m_maincpu->pc() == 0x93ae)
{
@@ -3241,7 +3241,7 @@ READ16_MEMBER(vamphalf_state::worldadv_speedup_r)
return m_wram[0xc5e78 / 2];
}
-READ16_MEMBER(vamphalf_state::mrdig_speedup_r)
+u16 vamphalf_state::mrdig_speedup_r()
{
if (m_maincpu->pc() == 0xae38)
{
@@ -3254,7 +3254,7 @@ READ16_MEMBER(vamphalf_state::mrdig_speedup_r)
return m_wram[0x0e0768 / 2];
}
-READ16_MEMBER(vamphalf_state::dtfamily_speedup_r)
+u16 vamphalf_state::dtfamily_speedup_r()
{
if (m_maincpu->pc() == 0x12fa6)
{
@@ -3267,7 +3267,7 @@ READ16_MEMBER(vamphalf_state::dtfamily_speedup_r)
return m_wram[0xcc2a8 / 2];
}
-READ16_MEMBER(vamphalf_state::toyland_speedup_r)
+u16 vamphalf_state::toyland_speedup_r()
{
if (m_maincpu->pc() == 0x130c2)
{
@@ -3280,7 +3280,7 @@ READ16_MEMBER(vamphalf_state::toyland_speedup_r)
return m_wram[0x780d8 / 2];
}
-READ16_MEMBER(vamphalf_state::boonggab_speedup_r)
+u16 vamphalf_state::boonggab_speedup_r()
{
if (m_maincpu->pc() == 0x131a6)
{
@@ -3295,7 +3295,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(*this, FUNC(vamphalf_state::vamphalf_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0004a7b8, 0x0004a7b9, read16smo_delegate(*this, FUNC(vamphalf_state::vamphalf_speedup_r)));
m_palshift = 0;
m_flip_bit = 0x80;
@@ -3303,7 +3303,7 @@ void vamphalf_state::init_vamphalf()
void vamphalf_state::init_vamphalfr1()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0004a468, 0x0004a469, read16_delegate(*this, FUNC(vamphalf_state::vamphalfr1_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0004a468, 0x0004a469, read16smo_delegate(*this, FUNC(vamphalf_state::vamphalfr1_speedup_r)));
m_palshift = 0;
m_flip_bit = 0x80;
@@ -3311,7 +3311,7 @@ void vamphalf_state::init_vamphalfr1()
void vamphalf_state::init_vamphafk()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0004a648, 0x0004a649, read16_delegate(*this, FUNC(vamphalf_state::vamphafk_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0004a648, 0x0004a649, read16smo_delegate(*this, FUNC(vamphalf_state::vamphafk_speedup_r)));
m_palshift = 0;
m_flip_bit = 0x80;
@@ -3319,8 +3319,8 @@ void vamphalf_state::init_vamphafk()
void vamphalf_qdsp_state::init_misncrft()
{
- 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_maincpu->space(AS_PROGRAM).install_read_handler(0x000741e8, 0x000741e9, read16smo_delegate(*this, FUNC(vamphalf_qdsp_state::misncrft_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00072e2c, 0x00072e2d, read16smo_delegate(*this, FUNC(vamphalf_qdsp_state::misncrfta_speedup_r)));
m_palshift = 0;
m_flip_bit = 1;
@@ -3331,7 +3331,7 @@ void vamphalf_qdsp_state::init_misncrft()
void vamphalf_state::init_coolmini()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x000d2df8, 0x000d2df9, read16_delegate(*this, FUNC(vamphalf_state::coolmini_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x000d2df8, 0x000d2df9, read16smo_delegate(*this, FUNC(vamphalf_state::coolmini_speedup_r)));
m_palshift = 0;
m_flip_bit = 1;
@@ -3339,7 +3339,7 @@ void vamphalf_state::init_coolmini()
void vamphalf_state::init_coolminii()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x000d30a8, 0x000d30a9, read16_delegate(*this, FUNC(vamphalf_state::coolminii_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x000d30a8, 0x000d30a9, read16smo_delegate(*this, FUNC(vamphalf_state::coolminii_speedup_r)));
m_palshift = 0;
m_flip_bit = 1;
@@ -3348,7 +3348,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(*this, FUNC(vamphalf_state::mrkicker_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00063fc0, 0x00063fc1, read16smo_delegate(*this, FUNC(vamphalf_state::mrkicker_speedup_r)));
m_palshift = 0;
m_flip_bit = 1;
@@ -3356,7 +3356,7 @@ void vamphalf_state::init_mrkicker()
void vamphalf_state::init_suplup()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x0011605c, 0x0011605d, read16_delegate(*this, FUNC(vamphalf_state::suplup_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x0011605c, 0x0011605d, read16smo_delegate(*this, FUNC(vamphalf_state::suplup_speedup_r)));
m_palshift = 8;
/* no flipscreen */
@@ -3364,7 +3364,7 @@ void vamphalf_state::init_suplup()
void vamphalf_state::init_luplup()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00115e84, 0x00115e85, read16_delegate(*this, FUNC(vamphalf_state::luplup_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00115e84, 0x00115e85, read16smo_delegate(*this, FUNC(vamphalf_state::luplup_speedup_r)));
m_palshift = 8;
/* no flipscreen */
@@ -3372,7 +3372,7 @@ void vamphalf_state::init_luplup()
void vamphalf_state::init_luplup29()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00113f08, 0x00113f09, read16_delegate(*this, FUNC(vamphalf_state::luplup29_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00113f08, 0x00113f09, read16smo_delegate(*this, FUNC(vamphalf_state::luplup29_speedup_r)));
m_palshift = 8;
/* no flipscreen */
@@ -3380,7 +3380,7 @@ void vamphalf_state::init_luplup29()
void vamphalf_state::init_luplup10()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00113b78, 0x00113b79, read16_delegate(*this, FUNC(vamphalf_state::luplup10_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00113b78, 0x00113b79, read16smo_delegate(*this, FUNC(vamphalf_state::luplup10_speedup_r)));
m_palshift = 8;
/* no flipscreen */
@@ -3388,8 +3388,8 @@ void vamphalf_state::init_luplup10()
void vamphalf_state::init_puzlbang()
{
- 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_maincpu->space(AS_PROGRAM).install_read_handler(0x00113f14, 0x00113f15, read16smo_delegate(*this, FUNC(vamphalf_state::puzlbang_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00113ecc, 0x00113ecd, read16smo_delegate(*this, FUNC(vamphalf_state::puzlbanga_speedup_r)));
m_palshift = 8;
/* no flipscreen */
@@ -3397,9 +3397,9 @@ void vamphalf_state::init_puzlbang()
void vamphalf_qdsp_state::init_wyvernwg()
{
- 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_maincpu->space(AS_PROGRAM).install_read_handler(0x00b4cc4, 0x00b4cc7, read32smo_delegate(*this, FUNC(vamphalf_qdsp_state::wivernwg_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00b56f4, 0x00b56f7, read32smo_delegate(*this, FUNC(vamphalf_qdsp_state::wyvernwg_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00b74f0, 0x00b74f3, read32smo_delegate(*this, FUNC(vamphalf_qdsp_state::wyvernwga_speedup_r)));
m_palshift = 0;
m_flip_bit = 1;
@@ -3441,7 +3441,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(*this, FUNC(vamphalf_nvram_state::finalgdr_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x005e870, 0x005e873, read32smo_delegate(*this, FUNC(vamphalf_nvram_state::finalgdr_speedup_r)));
m_nvram->set_base(m_finalgdr_backupram.get(), 0x80*0x100);
m_palshift = 0;
@@ -3463,7 +3463,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(*this, FUNC(vamphalf_nvram_state::mrkickera_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00701a0, 0x00701a3, read32smo_delegate(*this, FUNC(vamphalf_nvram_state::mrkickera_speedup_r)));
m_nvram->set_base(m_finalgdr_backupram.get(), 0x80*0x100);
m_palshift = 0;
@@ -3479,7 +3479,7 @@ void vamphalf_nvram_state::init_mrkickera()
void vamphalf_state::init_dquizgo2()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00cdde8, 0x00cdde9, read16_delegate(*this, FUNC(vamphalf_state::dquizgo2_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00cdde8, 0x00cdde9, read16smo_delegate(*this, FUNC(vamphalf_state::dquizgo2_speedup_r)));
m_palshift = 0;
m_flip_bit = 1;
@@ -3488,7 +3488,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(*this, FUNC(vamphalf_state::dtfamily_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xcc2a8, 0xcc2a9, read16smo_delegate(*this, FUNC(vamphalf_state::dtfamily_speedup_r)));
m_palshift = 0;
m_flip_bit = 1;
@@ -3497,7 +3497,7 @@ void vamphalf_state::init_dtfamily()
void vamphalf_state::init_toyland()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x780d8, 0x780d9, read16_delegate(*this, FUNC(vamphalf_state::toyland_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x780d8, 0x780d9, read16smo_delegate(*this, FUNC(vamphalf_state::toyland_speedup_r)));
m_palshift = 0;
m_flip_bit = 1;
@@ -3506,7 +3506,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(*this, FUNC(vamphalf_state::aoh_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x028a09c, 0x028a09f, read32smo_delegate(*this, FUNC(vamphalf_state::aoh_speedup_r)));
m_palshift = 0;
/* no flipscreen */
@@ -3514,7 +3514,7 @@ void vamphalf_state::init_aoh()
void vamphalf_state::init_jmpbreak()
{
- 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_read_handler(0x00906f4, 0x00906f5, read16smo_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;
@@ -3522,7 +3522,7 @@ void vamphalf_state::init_jmpbreak()
void vamphalf_state::init_jmpbreaka()
{
- m_maincpu->space(AS_PROGRAM).install_read_handler(0x00e1dfc, 0x00e1dfd, read16_delegate(*this, FUNC(vamphalf_state::jmpbreaka_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x00e1dfc, 0x00e1dfd, read16smo_delegate(*this, FUNC(vamphalf_state::jmpbreaka_speedup_r)));
m_maincpu->space(AS_PROGRAM).install_write_handler(0xe0000000, 0xe0000003, write16smo_delegate(*this, FUNC(vamphalf_state::jmpbreak_flipscreen_w)));
m_palshift = 0;
@@ -3530,7 +3530,7 @@ void vamphalf_state::init_jmpbreaka()
void vamphalf_state::init_mrdig()
{
- 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_read_handler(0x0e0768, 0x0e0769, read16smo_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;
@@ -3538,7 +3538,7 @@ void vamphalf_state::init_mrdig()
void vamphalf_state::init_poosho()
{
- 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_read_handler(0x0c8b58, 0x0c8b59, read16smo_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;
@@ -3546,7 +3546,7 @@ void vamphalf_state::init_poosho()
void vamphalf_state::init_newxpang()
{
- 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_read_handler(0x061218, 0x061219, read16smo_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;
@@ -3554,7 +3554,7 @@ void vamphalf_state::init_newxpang()
void vamphalf_state::init_worldadv()
{
- 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_read_handler(0x0c5e78, 0x0c5e79, read16smo_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;
@@ -3563,7 +3563,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(*this, FUNC(vamphalf_state::boonggab_speedup_r)));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0x000f1b74, 0x000f1b75, read16smo_delegate(*this, FUNC(vamphalf_state::boonggab_speedup_r)));
m_palshift = 0;
m_has_extra_gfx = true;
diff --git a/src/mame/drivers/vax11.cpp b/src/mame/drivers/vax11.cpp
index c07cfe1798a..01c16de4fe8 100644
--- a/src/mame/drivers/vax11.cpp
+++ b/src/mame/drivers/vax11.cpp
@@ -85,33 +85,33 @@ public:
private:
required_device<t11_device> m_maincpu;
required_device<generic_terminal_device> m_terminal;
- DECLARE_READ16_MEMBER( term_r );
- DECLARE_READ16_MEMBER( term_tx_status_r );
- DECLARE_READ16_MEMBER( term_rx_status_r );
- DECLARE_WRITE16_MEMBER( term_w );
+ uint16_t term_r();
+ uint16_t term_tx_status_r();
+ uint16_t term_rx_status_r();
+ void term_w(uint16_t data);
void kbd_put(u8 data);
uint8_t m_term_data;
uint16_t m_term_status;
void vax11_mem(address_map &map);
};
-WRITE16_MEMBER(vax11_state::term_w)
+void vax11_state::term_w(uint16_t data)
{
m_terminal->write(data);
}
-READ16_MEMBER(vax11_state::term_r)
+uint16_t vax11_state::term_r()
{
m_term_status = 0x0000;
return m_term_data;
}
-READ16_MEMBER(vax11_state::term_tx_status_r)
+uint16_t vax11_state::term_tx_status_r()
{ // always ready
return 0xffff;
}
-READ16_MEMBER(vax11_state::term_rx_status_r)
+uint16_t vax11_state::term_rx_status_r()
{
return m_term_status;
}
diff --git a/src/mame/drivers/vboy.cpp b/src/mame/drivers/vboy.cpp
index fc7213e15a5..ef69def55cc 100644
--- a/src/mame/drivers/vboy.cpp
+++ b/src/mame/drivers/vboy.cpp
@@ -146,28 +146,28 @@ private:
uint8_t m_row_num;
attotime m_input_latch_time;
- DECLARE_READ32_MEMBER(io_r);
- DECLARE_WRITE32_MEMBER(io_w);
- DECLARE_READ16_MEMBER(vip_r);
- DECLARE_WRITE16_MEMBER(vip_w);
- DECLARE_WRITE16_MEMBER(font0_w);
- DECLARE_WRITE16_MEMBER(font1_w);
- DECLARE_WRITE16_MEMBER(font2_w);
- DECLARE_WRITE16_MEMBER(font3_w);
- DECLARE_READ16_MEMBER(font0_r);
- DECLARE_READ16_MEMBER(font1_r);
- DECLARE_READ16_MEMBER(font2_r);
- DECLARE_READ16_MEMBER(font3_r);
- DECLARE_WRITE16_MEMBER(vboy_bgmap_w);
- DECLARE_READ16_MEMBER(vboy_bgmap_r);
- DECLARE_READ8_MEMBER(lfb0_r);
- DECLARE_READ8_MEMBER(lfb1_r);
- DECLARE_READ8_MEMBER(rfb0_r);
- DECLARE_READ8_MEMBER(rfb1_r);
- DECLARE_WRITE8_MEMBER(lfb0_w);
- DECLARE_WRITE8_MEMBER(lfb1_w);
- DECLARE_WRITE8_MEMBER(rfb0_w);
- DECLARE_WRITE8_MEMBER(rfb1_w);
+ uint32_t io_r(offs_t offset);
+ void io_w(offs_t offset, uint32_t data);
+ uint16_t vip_r(offs_t offset);
+ void vip_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void font0_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void font1_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void font2_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void font3_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ uint16_t font0_r(offs_t offset);
+ uint16_t font1_r(offs_t offset);
+ uint16_t font2_r(offs_t offset);
+ uint16_t font3_r(offs_t offset);
+ void vboy_bgmap_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ uint16_t vboy_bgmap_r(offs_t offset);
+ uint8_t lfb0_r(offs_t offset);
+ uint8_t lfb1_r(offs_t offset);
+ uint8_t rfb0_r(offs_t offset);
+ uint8_t rfb1_r(offs_t offset);
+ void lfb0_w(offs_t offset, uint8_t data);
+ void lfb1_w(offs_t offset, uint8_t data);
+ void rfb0_w(offs_t offset, uint8_t data);
+ void rfb1_w(offs_t offset, uint8_t data);
void m_timer_tick();
void m_scanline_tick(int scanline, uint8_t screen_type);
@@ -557,7 +557,7 @@ uint32_t vboy_state::screen_update_vboy_right(screen_device &screen, bitmap_ind1
*
*********************************/
-READ32_MEMBER( vboy_state::io_r )
+uint32_t vboy_state::io_r(offs_t offset)
{
uint32_t value = 0x00;
@@ -602,7 +602,7 @@ READ32_MEMBER( vboy_state::io_r )
return value;
}
-WRITE32_MEMBER( vboy_state::io_w )
+void vboy_state::io_w(offs_t offset, uint32_t data)
{
switch (offset<<2)
{
@@ -719,7 +719,7 @@ void vboy_state::m_set_brightness()
m_palette->set_pen_color(3, c,0,0);
}
-READ16_MEMBER( vboy_state::vip_r )
+uint16_t vboy_state::vip_r(offs_t offset)
{
switch(offset << 1) {
case 0x00: //INTPND
@@ -842,7 +842,7 @@ READ16_MEMBER( vboy_state::vip_r )
return 0xffff;
}
-WRITE16_MEMBER( vboy_state::vip_w )
+void vboy_state::vip_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
if(mem_mask != 0xffff)
printf("%04x %02x\n",mem_mask,offset*2);
@@ -986,64 +986,64 @@ WRITE16_MEMBER( vboy_state::vip_w )
-WRITE16_MEMBER( vboy_state::font0_w )
+void vboy_state::font0_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
WRITE_FONT(offset);
}
-WRITE16_MEMBER( vboy_state::font1_w )
+void vboy_state::font1_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
WRITE_FONT(offset+0x1000);
}
-WRITE16_MEMBER( vboy_state::font2_w )
+void vboy_state::font2_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
WRITE_FONT(offset+0x2000);
}
-WRITE16_MEMBER( vboy_state::font3_w )
+void vboy_state::font3_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
WRITE_FONT(offset+0x3000);
}
-READ16_MEMBER( vboy_state::font0_r )
+uint16_t vboy_state::font0_r(offs_t offset)
{
return READ_FONT(offset);
}
-READ16_MEMBER( vboy_state::font1_r )
+uint16_t vboy_state::font1_r(offs_t offset)
{
return READ_FONT(offset + 0x1000);
}
-READ16_MEMBER( vboy_state::font2_r )
+uint16_t vboy_state::font2_r(offs_t offset)
{
return READ_FONT(offset + 0x2000);
}
-READ16_MEMBER( vboy_state::font3_r )
+uint16_t vboy_state::font3_r(offs_t offset)
{
return READ_FONT(offset + 0x3000);
}
-WRITE16_MEMBER( vboy_state::vboy_bgmap_w )
+void vboy_state::vboy_bgmap_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
m_bgmap[offset] = data | (m_bgmap[offset] & (mem_mask ^ 0xffff));
}
-READ16_MEMBER( vboy_state::vboy_bgmap_r )
+uint16_t vboy_state::vboy_bgmap_r(offs_t offset)
{
return m_bgmap[offset];
}
-READ8_MEMBER( vboy_state::lfb0_r ) { return m_l_frame_0[offset]; }
-READ8_MEMBER( vboy_state::lfb1_r ) { return m_l_frame_1[offset]; }
-READ8_MEMBER( vboy_state::rfb0_r ) { return m_r_frame_0[offset]; }
-READ8_MEMBER( vboy_state::rfb1_r ) { return m_r_frame_1[offset]; }
-WRITE8_MEMBER( vboy_state::lfb0_w ) { m_l_frame_0[offset] = data; }
-WRITE8_MEMBER( vboy_state::lfb1_w ) { m_l_frame_1[offset] = data; }
-WRITE8_MEMBER( vboy_state::rfb0_w ) { m_r_frame_0[offset] = data; }
-WRITE8_MEMBER( vboy_state::rfb1_w ) { m_r_frame_1[offset] = data; }
+uint8_t vboy_state::lfb0_r(offs_t offset) { return m_l_frame_0[offset]; }
+uint8_t vboy_state::lfb1_r(offs_t offset) { return m_l_frame_1[offset]; }
+uint8_t vboy_state::rfb0_r(offs_t offset) { return m_r_frame_0[offset]; }
+uint8_t vboy_state::rfb1_r(offs_t offset) { return m_r_frame_1[offset]; }
+void vboy_state::lfb0_w(offs_t offset, uint8_t data) { m_l_frame_0[offset] = data; }
+void vboy_state::lfb1_w(offs_t offset, uint8_t data) { m_l_frame_1[offset] = data; }
+void vboy_state::rfb0_w(offs_t offset, uint8_t data) { m_r_frame_0[offset] = data; }
+void vboy_state::rfb1_w(offs_t offset, uint8_t data) { m_r_frame_1[offset] = data; }
void vboy_state::vboy_mem(address_map &map)
diff --git a/src/mame/drivers/vcombat.cpp b/src/mame/drivers/vcombat.cpp
index 5381fd8fc8e..ef93aec1594 100644
--- a/src/mame/drivers/vcombat.cpp
+++ b/src/mame/drivers/vcombat.cpp
@@ -133,19 +133,19 @@ private:
std::unique_ptr<uint16_t[]> m_i860_framebuffer[2][2];
int m_crtc_select;
- DECLARE_WRITE16_MEMBER(main_video_write);
- DECLARE_READ16_MEMBER(control_1_r);
- DECLARE_READ16_MEMBER(control_2_r);
- DECLARE_READ16_MEMBER(control_3_r);
+ void main_video_write(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ uint16_t control_1_r();
+ uint16_t control_2_r();
+ uint16_t control_3_r();
void wiggle_i860_common(int which, uint16_t data);
- DECLARE_WRITE16_MEMBER(wiggle_i860p0_pins_w);
- DECLARE_WRITE16_MEMBER(wiggle_i860p1_pins_w);
- DECLARE_READ16_MEMBER(main_irqiack_r);
- DECLARE_READ16_MEMBER(sound_resetmain_r);
- DECLARE_WRITE64_MEMBER(v0_fb_w);
- DECLARE_WRITE64_MEMBER(v1_fb_w);
- DECLARE_WRITE16_MEMBER(crtc_w);
- DECLARE_WRITE16_MEMBER(vcombat_dac_w);
+ void wiggle_i860p0_pins_w(uint16_t data);
+ void wiggle_i860p1_pins_w(uint16_t data);
+ uint16_t main_irqiack_r();
+ uint16_t sound_resetmain_r();
+ void v0_fb_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
+ void v1_fb_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
+ void crtc_w(uint16_t data);
+ void vcombat_dac_w(uint16_t data);
DECLARE_WRITE_LINE_MEMBER(sound_update);
uint32_t update_screen(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int index);
@@ -210,7 +210,7 @@ uint32_t vcombat_state::screen_update_vcombat_main(screen_device &screen, bitmap
uint32_t vcombat_state::screen_update_vcombat_aux(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 1); }
-WRITE16_MEMBER(vcombat_state::main_video_write)
+void vcombat_state::main_video_write(offs_t offset, uint16_t data, uint16_t mem_mask)
{
int fb = (*m_framebuffer_ctrl & 0x20) ? 0 : 1;
uint16_t old_data = m_m68k_framebuffer[fb][offset];
@@ -234,17 +234,17 @@ WRITE16_MEMBER(vcombat_state::main_video_write)
}
}
-READ16_MEMBER(vcombat_state::control_1_r)
+uint16_t vcombat_state::control_1_r()
{
return (ioport("IN0")->read() << 8);
}
-READ16_MEMBER(vcombat_state::control_2_r)
+uint16_t vcombat_state::control_2_r()
{
return (ioport("IN1")->read() << 8);
}
-READ16_MEMBER(vcombat_state::control_3_r)
+uint16_t vcombat_state::control_3_r()
{
return (ioport("IN2")->read() << 8);
}
@@ -277,17 +277,17 @@ void vcombat_state::wiggle_i860_common(int which, uint16_t data)
device.i860_set_pin(DEC_PIN_RESET, 0);
}
-WRITE16_MEMBER(vcombat_state::wiggle_i860p0_pins_w)
+void vcombat_state::wiggle_i860p0_pins_w(uint16_t data)
{
wiggle_i860_common(0, data);
}
-WRITE16_MEMBER(vcombat_state::wiggle_i860p1_pins_w)
+void vcombat_state::wiggle_i860p1_pins_w(uint16_t data)
{
wiggle_i860_common(1, data);
}
-READ16_MEMBER(vcombat_state::main_irqiack_r)
+uint16_t vcombat_state::main_irqiack_r()
{
//LOG("M0: irq iack\n");
m_maincpu->set_input_line(M68K_IRQ_1, CLEAR_LINE);
@@ -295,14 +295,14 @@ READ16_MEMBER(vcombat_state::main_irqiack_r)
return 0;
}
-READ16_MEMBER(vcombat_state::sound_resetmain_r)
+uint16_t vcombat_state::sound_resetmain_r()
{
//LOG("M1: reset line to M0\n");
//m_maincpu->pulse_input_line(INPUT_LINE_RESET, attotime::zero);
return 0;
}
-WRITE64_MEMBER(vcombat_state::v0_fb_w)
+void vcombat_state::v0_fb_w(offs_t offset, uint64_t data, uint64_t mem_mask)
{
/* The frame buffer seems to sit on a 32-bit data bus, while the
i860 uses a 64-bit data bus. Adjust accordingly. */
@@ -325,7 +325,7 @@ WRITE64_MEMBER(vcombat_state::v0_fb_w)
/* This is just temporary so we can see what each i860 is doing to the
framebuffer. */
-WRITE64_MEMBER(vcombat_state::v1_fb_w)
+void vcombat_state::v1_fb_w(offs_t offset, uint64_t data, uint64_t mem_mask)
{
/* The frame buffer seems to sit on a 32-bit data bus, while the
i860 uses a 64-bit data bus. Adjust accordingly. */
@@ -346,7 +346,7 @@ WRITE64_MEMBER(vcombat_state::v1_fb_w)
}
}
-WRITE16_MEMBER(vcombat_state::crtc_w)
+void vcombat_state::crtc_w(uint16_t data)
{
if (m_crtc == nullptr)
return;
@@ -359,7 +359,7 @@ WRITE16_MEMBER(vcombat_state::crtc_w)
m_crtc_select ^= 1;
}
-WRITE16_MEMBER(vcombat_state::vcombat_dac_w)
+void vcombat_state::vcombat_dac_w(uint16_t data)
{
m_dac->write(data >> 5);
if (data & 0x801f)
diff --git a/src/mame/drivers/vcs80.cpp b/src/mame/drivers/vcs80.cpp
index 22b6d1ebda6..7c2dfc40376 100644
--- a/src/mame/drivers/vcs80.cpp
+++ b/src/mame/drivers/vcs80.cpp
@@ -86,7 +86,7 @@ private:
m_bdmem->write8(offset, data);
}
- DECLARE_READ8_MEMBER( io_r )
+ uint8_t io_r(offs_t offset)
{
m_pio->port_b_write((!BIT(offset, 0)) << 7);
if (BIT(offset, 2))
@@ -94,7 +94,7 @@ private:
return 0xff;
}
- DECLARE_WRITE8_MEMBER( io_w )
+ void io_w(offs_t offset, uint8_t data)
{
m_pio->port_b_write((!BIT(offset, 0)) << 7);
if (BIT(offset, 2))
diff --git a/src/mame/drivers/vd.cpp b/src/mame/drivers/vd.cpp
index e06b9053ff7..83300b91c9b 100644
--- a/src/mame/drivers/vd.cpp
+++ b/src/mame/drivers/vd.cpp
@@ -37,11 +37,11 @@ public:
void vd(machine_config &config);
private:
- DECLARE_READ8_MEMBER(ack_r);
- DECLARE_WRITE8_MEMBER(col_w);
- DECLARE_WRITE8_MEMBER(disp_w);
- DECLARE_WRITE8_MEMBER(lamp_w) { };
- DECLARE_WRITE8_MEMBER(sol_w) { };
+ uint8_t ack_r();
+ void col_w(uint8_t data);
+ void disp_w(offs_t offset, uint8_t data);
+ void lamp_w(uint8_t data) { };
+ void sol_w(uint8_t data) { };
TIMER_DEVICE_CALLBACK_MEMBER(irq);
void vd_io(address_map &map);
void vd_map(address_map &map);
@@ -55,7 +55,7 @@ private:
};
-READ8_MEMBER(vd_state::ack_r)
+uint8_t vd_state::ack_r()
{
m_maincpu->set_input_line(INPUT_LINE_IRQ0, CLEAR_LINE); // guess
return 0; // this value is not used
@@ -159,7 +159,7 @@ TIMER_DEVICE_CALLBACK_MEMBER( vd_state::irq )
m_t_c++;
}
-WRITE8_MEMBER( vd_state::disp_w )
+void vd_state::disp_w(offs_t offset, uint8_t data)
{
segment[offset] = data;
#if 0 // probably not how this works
@@ -168,7 +168,7 @@ WRITE8_MEMBER( vd_state::disp_w )
#endif
}
-WRITE8_MEMBER( vd_state::col_w )
+void vd_state::col_w(uint8_t data)
{
if (data != 0x3f)
{
@@ -218,7 +218,7 @@ void vd_state::vd(machine_config &config)
/ Break '86", and the service manual's title page has "Modbreak."
/-------------------------------------------------------------------*/
ROM_START(break86)
- ROM_REGION(0x10000, "maincpu", 0)
+ ROM_REGION(0x6000, "maincpu", 0)
ROM_LOAD("break1.cpu", 0x0000, 0x2000, CRC(c187d263) SHA1(1790566799ccc41cd5445936e86f945150e24e8a))
ROM_LOAD("break2.cpu", 0x2000, 0x2000, CRC(ed8f84ab) SHA1(ff5d7e3c373ca345205e8b92c6ce7b02f36a3d95))
ROM_LOAD("break3.cpu", 0x4000, 0x2000, CRC(3cdfedc2) SHA1(309fd04c81b8facdf705e6297c0f4d507957ae1f))
@@ -228,7 +228,7 @@ ROM_END
/ Papillon (1986)
/-------------------------------------------------------------------*/
ROM_START(papillon)
- ROM_REGION(0x10000, "maincpu", 0)
+ ROM_REGION(0x6000, "maincpu", 0)
ROM_LOAD("u4.dat", 0x0000, 0x2000, CRC(e57bfcdd) SHA1(d0d5c798552a2436693dfee0e2ebf4b6f465b194))
ROM_LOAD("u5.dat", 0x2000, 0x2000, CRC(6d2ef02a) SHA1(0b67b2edd85624531630c162ae31af8078be01e3))
ROM_LOAD("u6.dat", 0x4000, 0x2000, CRC(6b2867b3) SHA1(720fe8a65b447e839b0eb9ea21e0b3cb0e50cf7a))
diff --git a/src/mame/drivers/vegaeo.cpp b/src/mame/drivers/vegaeo.cpp
index 5b3ef25af1a..796a3c03332 100644
--- a/src/mame/drivers/vegaeo.cpp
+++ b/src/mame/drivers/vegaeo.cpp
@@ -47,10 +47,10 @@ private:
std::unique_ptr<uint8_t[]> m_vram;
int m_vbuffer;
- DECLARE_WRITE8_MEMBER(vram_w);
- DECLARE_READ8_MEMBER(vram_r);
- DECLARE_WRITE32_MEMBER(vega_misc_w);
- DECLARE_READ32_MEMBER(vegaeo_custom_read);
+ void vram_w(offs_t offset, uint8_t data, uint8_t mem_mask = ~0);
+ uint8_t vram_r(offs_t offset);
+ void vega_misc_w(uint32_t data);
+ uint32_t vegaeo_custom_read();
void qs1000_p1_w(uint8_t data);
void qs1000_p2_w(uint8_t data);
void qs1000_p3_w(uint8_t data);
@@ -79,19 +79,19 @@ void vegaeo_state::qs1000_p3_w(uint8_t data)
m_soundlatch->acknowledge_w();
}
-WRITE8_MEMBER(vegaeo_state::vram_w)
+void vegaeo_state::vram_w(offs_t offset, uint8_t data, uint8_t mem_mask)
{
// don't write transparent pen
if (data != 0xff)
COMBINE_DATA(&m_vram[offset + m_vbuffer * 0x14000]);
}
-READ8_MEMBER(vegaeo_state::vram_r)
+uint8_t vegaeo_state::vram_r(offs_t offset)
{
return m_vram[offset + 0x14000 * m_vbuffer];
}
-WRITE32_MEMBER(vegaeo_state::vega_misc_w)
+void vegaeo_state::vega_misc_w(uint32_t data)
{
// other bits ???
@@ -99,7 +99,7 @@ WRITE32_MEMBER(vegaeo_state::vega_misc_w)
}
-READ32_MEMBER(vegaeo_state::vegaeo_custom_read)
+uint32_t vegaeo_state::vegaeo_custom_read()
{
speedup_read();
return m_system_io->read();
diff --git a/src/mame/drivers/vegas.cpp b/src/mame/drivers/vegas.cpp
index 39868016eb2..ac37e0b5643 100644
--- a/src/mame/drivers/vegas.cpp
+++ b/src/mame/drivers/vegas.cpp
@@ -420,31 +420,25 @@ private:
DECLARE_WRITE_LINE_MEMBER(watchdog_reset);
DECLARE_WRITE_LINE_MEMBER(watchdog_irq);
- DECLARE_WRITE32_MEMBER(timekeeper_w);
- DECLARE_READ32_MEMBER(timekeeper_r);
+ void timekeeper_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ uint32_t timekeeper_r(offs_t offset, uint32_t mem_mask = ~0);
void reset_sio(void);
- DECLARE_READ8_MEMBER(sio_r);
- DECLARE_WRITE8_MEMBER(sio_w);
- DECLARE_WRITE8_MEMBER( cpu_io_w );
- DECLARE_READ8_MEMBER( cpu_io_r );
- DECLARE_READ32_MEMBER( analog_port_r );
- DECLARE_WRITE32_MEMBER( analog_port_w );
- DECLARE_WRITE32_MEMBER( asic_fifo_w );
- DECLARE_READ32_MEMBER( ide_main_r );
- DECLARE_WRITE32_MEMBER( ide_main_w );
- DECLARE_READ32_MEMBER( ide_alt_r );
- DECLARE_WRITE32_MEMBER( ide_alt_w );
- DECLARE_READ32_MEMBER( ide_bus_master32_r );
- DECLARE_WRITE32_MEMBER( ide_bus_master32_w );
- DECLARE_READ32_MEMBER( ethernet_r );
- DECLARE_WRITE32_MEMBER( ethernet_w );
- DECLARE_WRITE32_MEMBER( dcs3_fifo_full_w );
+ uint8_t sio_r(offs_t offset);
+ void sio_w(offs_t offset, uint8_t data);
+ void cpu_io_w(offs_t offset, uint8_t data);
+ uint8_t cpu_io_r(offs_t offset);
+ uint32_t analog_port_r(offs_t offset, uint32_t mem_mask = ~0);
+ void analog_port_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ void asic_fifo_w(uint32_t data);
+ uint32_t ethernet_r(offs_t offset, uint32_t mem_mask = ~0);
+ void ethernet_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ void dcs3_fifo_full_w(uint32_t data);
DECLARE_WRITE_LINE_MEMBER(ethernet_interrupt);
DECLARE_WRITE_LINE_MEMBER(ioasic_irq);
- DECLARE_READ32_MEMBER(unknown_r);
- DECLARE_READ8_MEMBER(parallel_r);
- DECLARE_WRITE8_MEMBER(parallel_w);
- DECLARE_WRITE8_MEMBER(mpsreset_w);
+ uint32_t unknown_r(offs_t offset, uint32_t mem_mask = ~0);
+ uint8_t parallel_r(offs_t offset);
+ void parallel_w(offs_t offset, uint8_t data);
+ void mpsreset_w(offs_t offset, uint8_t data);
void i40_w(uint32_t data);
void wheel_board_w(uint32_t data);
@@ -569,7 +563,7 @@ WRITE_LINE_MEMBER(vegas_state::watchdog_reset)
*
*************************************/
-WRITE32_MEMBER( vegas_state::timekeeper_w )
+void vegas_state::timekeeper_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
if (m_cmos_unlocked)
{
@@ -590,7 +584,7 @@ WRITE32_MEMBER( vegas_state::timekeeper_w )
}
-READ32_MEMBER( vegas_state::timekeeper_r )
+uint32_t vegas_state::timekeeper_r(offs_t offset, uint32_t mem_mask)
{
uint32_t result = 0xffffffff;
if (ACCESSING_BITS_0_7)
@@ -692,7 +686,7 @@ void vegas_state::reset_sio()
update_sio_irqs();
}
-READ8_MEMBER(vegas_state::sio_r)
+uint8_t vegas_state::sio_r(offs_t offset)
{
uint32_t result = 0x0;
int index = offset >> 12;
@@ -770,7 +764,7 @@ READ8_MEMBER(vegas_state::sio_r)
}
-WRITE8_MEMBER(vegas_state::sio_w)
+void vegas_state::sio_w(offs_t offset, uint8_t data)
{
// Bit 0 of data is used to program the 6016 FPGA in programming mode (m_cpio_data[3](Bit 0)==0)
if (m_cpuio_data[3] & 0x1) {
@@ -839,7 +833,7 @@ WRITE8_MEMBER(vegas_state::sio_w)
*
*************************************/
-WRITE8_MEMBER(vegas_state::cpu_io_w)
+void vegas_state::cpu_io_w(offs_t offset, uint8_t data)
{
// 0: system LED
// 1: PLD Config / Clock Gen
@@ -906,7 +900,7 @@ WRITE8_MEMBER(vegas_state::cpu_io_w)
}
}
-READ8_MEMBER( vegas_state::cpu_io_r )
+uint8_t vegas_state::cpu_io_r(offs_t offset)
{
uint32_t result = 0;
if (offset < 4)
@@ -924,7 +918,7 @@ READ8_MEMBER( vegas_state::cpu_io_r )
*
*************************************/
-READ32_MEMBER( vegas_state::analog_port_r )
+uint32_t vegas_state::analog_port_r(offs_t offset, uint32_t mem_mask)
{
//logerror("%s: analog_port_r = %08X & %08X\n", machine().describe_context(), m_pending_analog_read, mem_mask);
// Clear interrupt
@@ -937,7 +931,7 @@ READ32_MEMBER( vegas_state::analog_port_r )
}
-WRITE32_MEMBER( vegas_state::analog_port_w )
+void vegas_state::analog_port_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
uint32_t shift_data = data >> m_a2d_shift;
int index = shift_data & 0x7;
@@ -979,12 +973,12 @@ WRITE32_MEMBER( vegas_state::analog_port_w )
*
*************************************/
-WRITE32_MEMBER( vegas_state::asic_fifo_w )
+void vegas_state::asic_fifo_w(uint32_t data)
{
m_ioasic->fifo_w(data);
}
-READ32_MEMBER( vegas_state::ethernet_r )
+uint32_t vegas_state::ethernet_r(offs_t offset, uint32_t mem_mask)
{
uint32_t result = 0;
if (ACCESSING_BITS_0_15)
@@ -996,7 +990,7 @@ READ32_MEMBER( vegas_state::ethernet_r )
}
-WRITE32_MEMBER( vegas_state::ethernet_w )
+void vegas_state::ethernet_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
if (ACCESSING_BITS_0_15)
m_ethernet->write(offset * 2 + 0, data, mem_mask);
@@ -1006,12 +1000,12 @@ WRITE32_MEMBER( vegas_state::ethernet_w )
}
-WRITE32_MEMBER( vegas_state::dcs3_fifo_full_w )
+void vegas_state::dcs3_fifo_full_w(uint32_t data)
{
m_ioasic->fifo_full_w(data);
}
-READ32_MEMBER(vegas_state::unknown_r)
+uint32_t vegas_state::unknown_r(offs_t offset, uint32_t mem_mask)
{
uint32_t result = 0xffffffff;
if (1)
@@ -1022,14 +1016,14 @@ READ32_MEMBER(vegas_state::unknown_r)
/*************************************
* Parallel Port
*************************************/
-READ8_MEMBER(vegas_state::parallel_r)
+uint8_t vegas_state::parallel_r(offs_t offset)
{
uint8_t result = 0x7;
logerror("%s: parallel_r %08x = %02x\n", machine().describe_context(), offset, result);
return result;
}
-WRITE8_MEMBER(vegas_state::parallel_w)
+void vegas_state::parallel_w(offs_t offset, uint8_t data)
{
logerror("%s: parallel_w %08x = %02x\n", machine().describe_context(), offset, data);
}
@@ -1037,7 +1031,7 @@ WRITE8_MEMBER(vegas_state::parallel_w)
/*************************************
* MPS Reset
*************************************/
-WRITE8_MEMBER(vegas_state::mpsreset_w)
+void vegas_state::mpsreset_w(offs_t offset, uint8_t data)
{
logerror("%s: mpsreset_w %08x = %02x\n", machine().describe_context(), offset, data);
}
diff --git a/src/mame/drivers/vg5k.cpp b/src/mame/drivers/vg5k.cpp
index 8663c4bc291..6b1d0979df5 100644
--- a/src/mame/drivers/vg5k.cpp
+++ b/src/mame/drivers/vg5k.cpp
@@ -95,13 +95,13 @@ private:
virtual void machine_start() override;
virtual void machine_reset() override;
- DECLARE_READ8_MEMBER( printer_r );
- DECLARE_WRITE8_MEMBER( printer_w );
- DECLARE_WRITE8_MEMBER ( ef9345_offset_w );
- DECLARE_READ8_MEMBER ( ef9345_io_r );
- DECLARE_WRITE8_MEMBER ( ef9345_io_w );
- DECLARE_READ8_MEMBER ( cassette_r );
- DECLARE_WRITE8_MEMBER ( cassette_w );
+ uint8_t printer_r();
+ void printer_w(uint8_t data);
+ void ef9345_offset_w(uint8_t data);
+ uint8_t ef9345_io_r();
+ void ef9345_io_w(uint8_t data);
+ uint8_t cassette_r();
+ void cassette_w(uint8_t data);
TIMER_CALLBACK_MEMBER(z80_irq_clear);
TIMER_DEVICE_CALLBACK_MEMBER(z80_irq);
TIMER_DEVICE_CALLBACK_MEMBER(vg5k_scanline);
@@ -110,37 +110,37 @@ private:
};
-READ8_MEMBER( vg5k_state::printer_r )
+uint8_t vg5k_state::printer_r()
{
return (m_printer->is_ready() ? 0x00 : 0xff);
}
-WRITE8_MEMBER( vg5k_state::printer_w )
+void vg5k_state::printer_w(uint8_t data)
{
m_printer->output(data);
}
-WRITE8_MEMBER ( vg5k_state::ef9345_offset_w )
+void vg5k_state::ef9345_offset_w(uint8_t data)
{
m_ef9345_offset = data;
}
-READ8_MEMBER ( vg5k_state::ef9345_io_r )
+uint8_t vg5k_state::ef9345_io_r()
{
return m_ef9345->data_r(m_ef9345_offset);
}
-WRITE8_MEMBER ( vg5k_state::ef9345_io_w )
+void vg5k_state::ef9345_io_w(uint8_t data)
{
m_ef9345->data_w(m_ef9345_offset, data);
}
-READ8_MEMBER ( vg5k_state::cassette_r )
+uint8_t vg5k_state::cassette_r()
{
double level = m_cassette->input();
@@ -148,7 +148,7 @@ READ8_MEMBER ( vg5k_state::cassette_r )
}
-WRITE8_MEMBER ( vg5k_state::cassette_w )
+void vg5k_state::cassette_w(uint8_t data)
{
m_dac->write(BIT(data, 3));
diff --git a/src/mame/drivers/vgmplay.cpp b/src/mame/drivers/vgmplay.cpp
index c45c5c39c2d..42439e94f22 100644
--- a/src/mame/drivers/vgmplay.cpp
+++ b/src/mame/drivers/vgmplay.cpp
@@ -246,35 +246,35 @@ public:
virtual std::unique_ptr<util::disasm_interface> create_disassembler() override;
- template<int Index> DECLARE_READ8_MEMBER(segapcm_rom_r);
- template<int Index> DECLARE_READ8_MEMBER(ym2608_rom_r);
- template<int Index> DECLARE_READ8_MEMBER(ym2610_adpcm_a_rom_r);
- template<int Index> DECLARE_READ8_MEMBER(ym2610_adpcm_b_rom_r);
- template<int Index> DECLARE_READ8_MEMBER(y8950_rom_r);
- template<int Index> DECLARE_READ8_MEMBER(ymf278b_rom_r);
- template<int Index> DECLARE_READ8_MEMBER(ymf271_rom_r);
- template<int Index> DECLARE_READ8_MEMBER(ymz280b_rom_r);
- template<int Index> DECLARE_READ8_MEMBER(multipcm_rom_r);
- template<int Index> DECLARE_READ8_MEMBER(upd7759_rom_r);
- template<int Index> DECLARE_READ8_MEMBER(okim6295_rom_r);
- template<int Index> DECLARE_READ8_MEMBER(k054539_rom_r);
- template<int Index> DECLARE_READ16_MEMBER(c140_rom_r);
- template<int Index> DECLARE_READ16_MEMBER(c219_rom_r);
- template<int Index> DECLARE_READ8_MEMBER(k053260_rom_r);
- template<int Index> DECLARE_READ8_MEMBER(qsound_rom_r);
- template<int Index> DECLARE_READ8_MEMBER(es5505_rom_r);
- template<int Index> DECLARE_READ8_MEMBER(x1_010_rom_r);
- template<int Index> DECLARE_READ8_MEMBER(c352_rom_r);
- template<int Index> DECLARE_READ8_MEMBER(ga20_rom_r);
-
- template<int Index> DECLARE_WRITE8_MEMBER(multipcm_bank_hi_w);
- template<int Index> DECLARE_WRITE8_MEMBER(multipcm_bank_lo_w);
-
- template<int Index> DECLARE_WRITE8_MEMBER(upd7759_bank_w);
-
- template<int Index> DECLARE_WRITE8_MEMBER(okim6295_nmk112_enable_w);
- template<int Index> DECLARE_WRITE8_MEMBER(okim6295_bank_w);
- template<int Index> DECLARE_WRITE8_MEMBER(okim6295_nmk112_bank_w);
+ template<int Index> uint8_t segapcm_rom_r(offs_t offset);
+ template<int Index> uint8_t ym2608_rom_r(offs_t offset);
+ template<int Index> uint8_t ym2610_adpcm_a_rom_r(offs_t offset);
+ template<int Index> uint8_t ym2610_adpcm_b_rom_r(offs_t offset);
+ template<int Index> uint8_t y8950_rom_r(offs_t offset);
+ template<int Index> uint8_t ymf278b_rom_r(offs_t offset);
+ template<int Index> uint8_t ymf271_rom_r(offs_t offset);
+ template<int Index> uint8_t ymz280b_rom_r(offs_t offset);
+ template<int Index> uint8_t multipcm_rom_r(offs_t offset);
+ template<int Index> uint8_t upd7759_rom_r(offs_t offset);
+ template<int Index> uint8_t okim6295_rom_r(offs_t offset);
+ template<int Index> uint8_t k054539_rom_r(offs_t offset);
+ template<int Index> uint16_t c140_rom_r(offs_t offset);
+ template<int Index> uint16_t c219_rom_r(offs_t offset);
+ template<int Index> uint8_t k053260_rom_r(offs_t offset);
+ template<int Index> uint8_t qsound_rom_r(offs_t offset);
+ template<int Index> uint8_t es5505_rom_r(offs_t offset);
+ template<int Index> uint8_t x1_010_rom_r(offs_t offset);
+ template<int Index> uint8_t c352_rom_r(offs_t offset);
+ template<int Index> uint8_t ga20_rom_r(offs_t offset);
+
+ template<int Index> void multipcm_bank_hi_w(offs_t offset, uint8_t data);
+ template<int Index> void multipcm_bank_lo_w(offs_t offset, uint8_t data);
+
+ template<int Index> void upd7759_bank_w(uint8_t data);
+
+ template<int Index> void okim6295_nmk112_enable_w(offs_t offset, uint8_t data, uint8_t mem_mask = ~0);
+ template<int Index> void okim6295_bank_w(offs_t offset, uint8_t data, uint8_t mem_mask = ~0);
+ template<int Index> void okim6295_nmk112_bank_w(offs_t offset, uint8_t data, uint8_t mem_mask = ~0);
void set_c140_bank_type(int index, C140_TYPE type);
C140_TYPE c140_bank(int index) { return m_c140_bank[index]; }
@@ -421,19 +421,19 @@ public:
DECLARE_QUICKLOAD_LOAD_MEMBER(load_file);
- DECLARE_READ8_MEMBER(file_r);
- DECLARE_READ8_MEMBER(file_size_r);
+ uint8_t file_r(offs_t offset);
+ uint8_t file_size_r(offs_t offset);
DECLARE_INPUT_CHANGED_MEMBER(key_pressed);
- template<int Index> DECLARE_WRITE8_MEMBER(upd7759_reset_w);
- template<int Index> DECLARE_WRITE8_MEMBER(upd7759_data_w);
+ template<int Index> void upd7759_reset_w(uint8_t data);
+ template<int Index> void upd7759_data_w(uint8_t data);
template<int Index> DECLARE_WRITE_LINE_MEMBER(upd7759_drq_w);
- template<int Index> DECLARE_WRITE8_MEMBER(okim6258_clock_w);
- template<int Index> DECLARE_WRITE8_MEMBER(okim6258_divider_w);
- template<int Index> DECLARE_WRITE8_MEMBER(okim6295_clock_w);
- template<int Index> DECLARE_WRITE8_MEMBER(okim6295_pin7_w);
- template<int Index> DECLARE_WRITE8_MEMBER(scc_w);
- template<int Index> DECLARE_WRITE8_MEMBER(c140_c219_w);
+ template<int Index> void okim6258_clock_w(offs_t offset, uint8_t data, uint8_t mem_mask = ~0);
+ template<int Index> void okim6258_divider_w(offs_t offset, uint8_t data, uint8_t mem_mask = ~0);
+ template<int Index> void okim6295_clock_w(offs_t offset, uint8_t data, uint8_t mem_mask = ~0);
+ template<int Index> void okim6295_pin7_w(offs_t offset, uint8_t data, uint8_t mem_mask = ~0);
+ template<int Index> void scc_w(offs_t offset, uint8_t data);
+ template<int Index> void c140_c219_w(offs_t offset, uint8_t data);
void vgmplay(machine_config &config);
void file_map(address_map &map);
@@ -2423,55 +2423,55 @@ uint8_t vgmplay_device::rom_r(int index, uint8_t type, offs_t offset)
}
template<int Index>
-READ8_MEMBER(vgmplay_device::segapcm_rom_r)
+uint8_t vgmplay_device::segapcm_rom_r(offs_t offset)
{
return rom_r(Index, 0x80, offset);
}
template<int Index>
-READ8_MEMBER(vgmplay_device::ym2608_rom_r)
+uint8_t vgmplay_device::ym2608_rom_r(offs_t offset)
{
return rom_r(Index, 0x81, offset);
}
template<int Index>
-READ8_MEMBER(vgmplay_device::ym2610_adpcm_a_rom_r)
+uint8_t vgmplay_device::ym2610_adpcm_a_rom_r(offs_t offset)
{
return rom_r(Index, 0x82, offset);
}
template<int Index>
-READ8_MEMBER(vgmplay_device::ym2610_adpcm_b_rom_r)
+uint8_t vgmplay_device::ym2610_adpcm_b_rom_r(offs_t offset)
{
return rom_r(Index, 0x83, offset);
}
template<int Index>
-READ8_MEMBER(vgmplay_device::ymf278b_rom_r)
+uint8_t vgmplay_device::ymf278b_rom_r(offs_t offset)
{
return rom_r(Index, 0x84, offset);
}
template<int Index>
-READ8_MEMBER(vgmplay_device::ymf271_rom_r)
+uint8_t vgmplay_device::ymf271_rom_r(offs_t offset)
{
return rom_r(Index, 0x85, offset);
}
template<int Index>
-READ8_MEMBER(vgmplay_device::ymz280b_rom_r)
+uint8_t vgmplay_device::ymz280b_rom_r(offs_t offset)
{
return rom_r(Index, 0x86, offset);
}
template<int Index>
-READ8_MEMBER(vgmplay_device::y8950_rom_r)
+uint8_t vgmplay_device::y8950_rom_r(offs_t offset)
{
return rom_r(Index, 0x88, offset);
}
template<int Index>
-READ8_MEMBER(vgmplay_device::multipcm_rom_r)
+uint8_t vgmplay_device::multipcm_rom_r(offs_t offset)
{
if (m_multipcm_banked[Index] == 1)
{
@@ -2499,13 +2499,13 @@ READ8_MEMBER(vgmplay_device::multipcm_rom_r)
}
template<int Index>
-READ8_MEMBER(vgmplay_device::upd7759_rom_r)
+uint8_t vgmplay_device::upd7759_rom_r(offs_t offset)
{
return rom_r(Index, 0x8a, m_upd7759_bank[Index] | offset);
}
template<int Index>
-READ8_MEMBER(vgmplay_device::okim6295_rom_r)
+uint8_t vgmplay_device::okim6295_rom_r(offs_t offset)
{
if (m_okim6295_nmk112_enable[Index])
{
@@ -2526,13 +2526,13 @@ READ8_MEMBER(vgmplay_device::okim6295_rom_r)
}
template<int Index>
-READ8_MEMBER(vgmplay_device::k054539_rom_r)
+uint8_t vgmplay_device::k054539_rom_r(offs_t offset)
{
return rom_r(Index, 0x8c, offset);
}
template<int Index>
-READ16_MEMBER(vgmplay_device::c140_rom_r)
+uint16_t vgmplay_device::c140_rom_r(offs_t offset)
{
switch (m_c140_bank[Index])
{
@@ -2551,7 +2551,7 @@ READ16_MEMBER(vgmplay_device::c140_rom_r)
}
template<int Index>
-READ16_MEMBER(vgmplay_device::c219_rom_r)
+uint16_t vgmplay_device::c219_rom_r(offs_t offset)
{
if (m_c140_bank[Index] == C140_ASIC219)
return (rom_r(Index, 0x8d, offset * 2 + 1) << 8) | rom_r(Index, 0x8d, offset * 2); // 8 bit sample
@@ -2560,37 +2560,37 @@ READ16_MEMBER(vgmplay_device::c219_rom_r)
}
template<int Index>
-READ8_MEMBER(vgmplay_device::k053260_rom_r)
+uint8_t vgmplay_device::k053260_rom_r(offs_t offset)
{
return rom_r(Index, 0x8e, offset);
}
template<int Index>
-READ8_MEMBER(vgmplay_device::qsound_rom_r)
+uint8_t vgmplay_device::qsound_rom_r(offs_t offset)
{
return rom_r(Index, 0x8f, offset);
}
template<int Index>
-READ8_MEMBER(vgmplay_device::es5505_rom_r)
+uint8_t vgmplay_device::es5505_rom_r(offs_t offset)
{
return rom_r(Index, 0x90, offset);
}
template<int Index>
-READ8_MEMBER(vgmplay_device::x1_010_rom_r)
+uint8_t vgmplay_device::x1_010_rom_r(offs_t offset)
{
return rom_r(Index, 0x91, offset);
}
template<int Index>
-READ8_MEMBER(vgmplay_device::c352_rom_r)
+uint8_t vgmplay_device::c352_rom_r(offs_t offset)
{
return rom_r(Index, 0x92, offset);
}
template<int Index>
-READ8_MEMBER(vgmplay_device::ga20_rom_r)
+uint8_t vgmplay_device::ga20_rom_r(offs_t offset)
{
return rom_r(Index, 0x93, offset);
}
@@ -3017,21 +3017,21 @@ QUICKLOAD_LOAD_MEMBER(vgmplay_state::load_file)
}
}
-READ8_MEMBER(vgmplay_state::file_r)
+uint8_t vgmplay_state::file_r(offs_t offset)
{
if (offset < m_file_data.size())
return m_file_data[offset];
return 0;
}
-READ8_MEMBER(vgmplay_state::file_size_r)
+uint8_t vgmplay_state::file_size_r(offs_t offset)
{
uint32_t size = m_file_data.size();
return size >> (8 * offset);
}
template<int Index>
-WRITE8_MEMBER(vgmplay_device::multipcm_bank_hi_w)
+void vgmplay_device::multipcm_bank_hi_w(offs_t offset, uint8_t data)
{
if (offset & 1)
m_multipcm_bank_l[Index] = (m_multipcm_bank_l[Index] & 0xff) | (data << 16);
@@ -3040,7 +3040,7 @@ WRITE8_MEMBER(vgmplay_device::multipcm_bank_hi_w)
}
template<int Index>
-WRITE8_MEMBER(vgmplay_device::multipcm_bank_lo_w)
+void vgmplay_device::multipcm_bank_lo_w(offs_t offset, uint8_t data)
{
if (offset & 1)
m_multipcm_bank_l[Index] = (m_multipcm_bank_l[Index] & 0xff00) | data;
@@ -3051,7 +3051,7 @@ WRITE8_MEMBER(vgmplay_device::multipcm_bank_lo_w)
}
template<int Index>
-WRITE8_MEMBER(vgmplay_state::upd7759_reset_w)
+void vgmplay_state::upd7759_reset_w(uint8_t data)
{
int reset = data != 0;
@@ -3067,7 +3067,7 @@ WRITE8_MEMBER(vgmplay_state::upd7759_reset_w)
}
template<int Index>
-WRITE8_MEMBER(vgmplay_state::upd7759_data_w)
+void vgmplay_state::upd7759_data_w(uint8_t data)
{
if (!m_upd7759_md[Index] && !m_upd7759_drq[Index])
{
@@ -3098,14 +3098,14 @@ WRITE_LINE_MEMBER(vgmplay_state::upd7759_drq_w)
}
template<int Index>
-WRITE8_MEMBER(vgmplay_device::upd7759_bank_w)
+void vgmplay_device::upd7759_bank_w(uint8_t data)
{
// TODO: upd7759 update stream
m_upd7759_bank[Index] = data * 0x20000;
}
template<int Index>
-WRITE8_MEMBER(vgmplay_state::okim6258_clock_w)
+void vgmplay_state::okim6258_clock_w(offs_t offset, uint8_t data, uint8_t mem_mask)
{
int shift = ((offset & 3) << 3);
uint32_t c = (m_okim6258[Index]->unscaled_clock() & ~(mem_mask << shift)) | ((data & mem_mask) << shift);
@@ -3114,7 +3114,7 @@ WRITE8_MEMBER(vgmplay_state::okim6258_clock_w)
}
template<int Index>
-WRITE8_MEMBER(vgmplay_state::okim6258_divider_w)
+void vgmplay_state::okim6258_divider_w(offs_t offset, uint8_t data, uint8_t mem_mask)
{
if ((data & mem_mask) != (m_okim6258_divider[Index] & mem_mask))
{
@@ -3124,7 +3124,7 @@ WRITE8_MEMBER(vgmplay_state::okim6258_divider_w)
}
template<int Index>
-WRITE8_MEMBER(vgmplay_state::okim6295_clock_w)
+void vgmplay_state::okim6295_clock_w(offs_t offset, uint8_t data, uint8_t mem_mask)
{
int shift = ((offset & 3) << 3);
uint32_t c = (m_okim6295[Index]->unscaled_clock() & ~(mem_mask << shift)) | ((data & mem_mask) << shift);
@@ -3133,7 +3133,7 @@ WRITE8_MEMBER(vgmplay_state::okim6295_clock_w)
}
template<int Index>
-WRITE8_MEMBER(vgmplay_state::okim6295_pin7_w)
+void vgmplay_state::okim6295_pin7_w(offs_t offset, uint8_t data, uint8_t mem_mask)
{
if ((data & mem_mask) != (m_okim6295_pin7[Index] & mem_mask))
{
@@ -3143,13 +3143,13 @@ WRITE8_MEMBER(vgmplay_state::okim6295_pin7_w)
}
template<int Index>
-WRITE8_MEMBER(vgmplay_device::okim6295_nmk112_enable_w)
+void vgmplay_device::okim6295_nmk112_enable_w(offs_t offset, uint8_t data, uint8_t mem_mask)
{
COMBINE_DATA(&m_okim6295_nmk112_enable[Index]);
}
template<int Index>
-WRITE8_MEMBER(vgmplay_device::okim6295_bank_w)
+void vgmplay_device::okim6295_bank_w(offs_t offset, uint8_t data, uint8_t mem_mask)
{
if ((data & mem_mask) != (m_okim6295_bank[Index] & mem_mask))
{
@@ -3158,7 +3158,7 @@ WRITE8_MEMBER(vgmplay_device::okim6295_bank_w)
}
template<int Index>
-WRITE8_MEMBER(vgmplay_device::okim6295_nmk112_bank_w)
+void vgmplay_device::okim6295_nmk112_bank_w(offs_t offset, uint8_t data, uint8_t mem_mask)
{
offset &= 3;
if ((data & mem_mask) != (m_okim6295_nmk112_bank[Index][offset] & mem_mask))
@@ -3168,7 +3168,7 @@ WRITE8_MEMBER(vgmplay_device::okim6295_nmk112_bank_w)
}
template<int Index>
-WRITE8_MEMBER(vgmplay_state::scc_w)
+void vgmplay_state::scc_w(offs_t offset, uint8_t data)
{
switch (offset & 1)
{
@@ -3202,7 +3202,7 @@ WRITE8_MEMBER(vgmplay_state::scc_w)
}
template<int Index>
-WRITE8_MEMBER(vgmplay_state::c140_c219_w)
+void vgmplay_state::c140_c219_w(offs_t offset, uint8_t data)
{
if (m_vgmplay->c140_bank(Index) == C140_ASIC219)
m_c219[Index]->c219_w(offset, data);
diff --git a/src/mame/drivers/vic20.cpp b/src/mame/drivers/vic20.cpp
index af31fae0b82..78e89ec5052 100644
--- a/src/mame/drivers/vic20.cpp
+++ b/src/mame/drivers/vic20.cpp
@@ -88,10 +88,10 @@ private:
virtual void machine_start() override;
virtual void machine_reset() override;
- DECLARE_READ8_MEMBER( read );
- DECLARE_WRITE8_MEMBER( write );
+ uint8_t read(offs_t offset);
+ void write(offs_t offset, uint8_t data);
- DECLARE_READ8_MEMBER( vic_videoram_r );
+ uint8_t vic_videoram_r(offs_t offset);
DECLARE_WRITE_LINE_MEMBER( write_light_pen );
DECLARE_WRITE_LINE_MEMBER( write_user_joy0 );
@@ -175,7 +175,7 @@ QUICKLOAD_LOAD_MEMBER(vic20_state::quickload_vc20)
// read -
//-------------------------------------------------
-READ8_MEMBER( vic20_state::read )
+uint8_t vic20_state::read(offs_t offset)
{
uint8_t data = m_vic->bus_r();
@@ -256,7 +256,7 @@ READ8_MEMBER( vic20_state::read )
// write -
//-------------------------------------------------
-WRITE8_MEMBER( vic20_state::write )
+void vic20_state::write(offs_t offset, uint8_t data)
{
int ram1 = 1, ram2 = 1, ram3 = 1;
int blk1 = 1, blk2 = 1, blk3 = 1, blk5 = 1;
@@ -323,7 +323,7 @@ WRITE8_MEMBER( vic20_state::write )
// vic_videoram_r -
//-------------------------------------------------
-READ8_MEMBER( vic20_state::vic_videoram_r )
+uint8_t vic20_state::vic_videoram_r(offs_t offset)
{
int ram1 = 1, ram2 = 1, ram3 = 1;
int blk1 = 1, blk2 = 1, blk3 = 1, blk5 = 1;
diff --git a/src/mame/drivers/video21.cpp b/src/mame/drivers/video21.cpp
index 699f0390d66..66a1ed5521e 100644
--- a/src/mame/drivers/video21.cpp
+++ b/src/mame/drivers/video21.cpp
@@ -51,9 +51,9 @@ protected:
virtual void machine_start() override;
private:
- DECLARE_WRITE8_MEMBER(sound_w);
- DECLARE_WRITE8_MEMBER(lamp1_w);
- DECLARE_WRITE8_MEMBER(lamp2_w);
+ void sound_w(uint8_t data);
+ void lamp1_w(uint8_t data);
+ void lamp2_w(uint8_t data);
int m_hopper_motor;
int m_hopper_coin;
@@ -112,14 +112,14 @@ TIMER_CALLBACK_MEMBER(video21_state::hopper_coinout)
m_hopper_timer->adjust(attotime::from_msec(100), m_hopper_coin ^ 1);
}
-WRITE8_MEMBER(video21_state::sound_w)
+void video21_state::sound_w(uint8_t data)
{
// beeper pitch
m_beeper->set_state(data != 0xff); // FF is off
m_beeper->set_clock(4 * data);
}
-WRITE8_MEMBER(video21_state::lamp1_w)
+void video21_state::lamp1_w(uint8_t data)
{
// d1-d3: coincounters
machine().bookkeeping().coin_counter_w(0, data & 0x04); // coin in
@@ -139,7 +139,7 @@ WRITE8_MEMBER(video21_state::lamp1_w)
m_lamps[i+0] = BIT(data, 7-i);
}
-WRITE8_MEMBER(video21_state::lamp2_w)
+void video21_state::lamp2_w(uint8_t data)
{
// lamps:
// d5: bet
diff --git a/src/mame/drivers/videopkr.cpp b/src/mame/drivers/videopkr.cpp
index 50bf6d44fcc..0e127efe2bc 100644
--- a/src/mame/drivers/videopkr.cpp
+++ b/src/mame/drivers/videopkr.cpp
@@ -324,16 +324,16 @@ public:
void bpoker(machine_config &config);
private:
- DECLARE_READ8_MEMBER(videopkr_io_r);
- DECLARE_WRITE8_MEMBER(videopkr_io_w);
+ uint8_t videopkr_io_r(offs_t offset);
+ void videopkr_io_w(offs_t offset, uint8_t data);
uint8_t videopkr_p1_data_r();
uint8_t videopkr_p2_data_r();
void videopkr_p1_data_w(uint8_t data);
void videopkr_p2_data_w(uint8_t data);
DECLARE_READ_LINE_MEMBER(videopkr_t0_latch);
DECLARE_WRITE_LINE_MEMBER(prog_w);
- DECLARE_READ8_MEMBER(sound_io_r);
- DECLARE_WRITE8_MEMBER(sound_io_w);
+ uint8_t sound_io_r();
+ void sound_io_w(uint8_t data);
uint8_t sound_p2_r();
void sound_p2_w(uint8_t data);
uint8_t baby_sound_p0_r();
@@ -549,7 +549,7 @@ uint32_t videopkr_state::screen_update_videopkr(screen_device &screen, bitmap_in
* R/W Handlers *
*************************/
-READ8_MEMBER(videopkr_state::videopkr_io_r)
+uint8_t videopkr_state::videopkr_io_r(offs_t offset)
{
uint8_t valor = 0, hf, co;
@@ -629,7 +629,7 @@ READ8_MEMBER(videopkr_state::videopkr_io_r)
return valor;
}
-WRITE8_MEMBER(videopkr_state::videopkr_io_w)
+void videopkr_state::videopkr_io_w(offs_t offset, uint8_t data)
{
switch (m_p2)
{
@@ -802,7 +802,7 @@ WRITE_LINE_MEMBER(videopkr_state::prog_w)
*/
-READ8_MEMBER(videopkr_state::sound_io_r)
+uint8_t videopkr_state::sound_io_r()
{
switch (m_vp_sound_p2)
{
@@ -824,7 +824,7 @@ READ8_MEMBER(videopkr_state::sound_io_r)
return m_sound_latch;
}
-WRITE8_MEMBER(videopkr_state::sound_io_w)
+void videopkr_state::sound_io_w(uint8_t data)
{
if (m_vp_sound_p2 == 0x5f || m_vp_sound_p2 == 0xdf)
{
diff --git a/src/mame/drivers/viper.cpp b/src/mame/drivers/viper.cpp
index 0680a5da6c5..f41c85361a6 100644
--- a/src/mame/drivers/viper.cpp
+++ b/src/mame/drivers/viper.cpp
@@ -395,35 +395,35 @@ public:
DECLARE_READ_LINE_MEMBER(ds2430_unk_r);
private:
- DECLARE_READ32_MEMBER(epic_r);
- DECLARE_WRITE32_MEMBER(epic_w);
- DECLARE_WRITE64_MEMBER(unk2_w);
- DECLARE_READ64_MEMBER(voodoo3_io_r);
- DECLARE_WRITE64_MEMBER(voodoo3_io_w);
- DECLARE_READ64_MEMBER(voodoo3_r);
- DECLARE_WRITE64_MEMBER(voodoo3_w);
- DECLARE_READ64_MEMBER(voodoo3_lfb_r);
- DECLARE_WRITE64_MEMBER(voodoo3_lfb_w);
- DECLARE_READ8_MEMBER(input_r);
- DECLARE_READ64_MEMBER(e70000_r);
- DECLARE_WRITE64_MEMBER(e70000_w);
- DECLARE_WRITE64_MEMBER(unk1a_w);
- DECLARE_WRITE64_MEMBER(unk1b_w);
- DECLARE_READ64_MEMBER(e00008_r);
- DECLARE_WRITE64_MEMBER(e00008_w);
- DECLARE_READ64_MEMBER(e00000_r);
- DECLARE_READ64_MEMBER(pci_config_addr_r);
- DECLARE_WRITE64_MEMBER(pci_config_addr_w);
- DECLARE_READ64_MEMBER(pci_config_data_r);
- DECLARE_WRITE64_MEMBER(pci_config_data_w);
- DECLARE_READ64_MEMBER(cf_card_data_r);
- DECLARE_WRITE64_MEMBER(cf_card_data_w);
- DECLARE_READ64_MEMBER(cf_card_r);
- DECLARE_WRITE64_MEMBER(cf_card_w);
- DECLARE_READ64_MEMBER(ata_r);
- DECLARE_WRITE64_MEMBER(ata_w);
- DECLARE_READ64_MEMBER(unk_serial_r);
- DECLARE_WRITE64_MEMBER(unk_serial_w);
+ uint32_t epic_r(offs_t offset);
+ void epic_w(offs_t offset, uint32_t data);
+ void unk2_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
+ uint64_t voodoo3_io_r(offs_t offset, uint64_t mem_mask = ~0);
+ void voodoo3_io_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
+ uint64_t voodoo3_r(offs_t offset, uint64_t mem_mask = ~0);
+ void voodoo3_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
+ uint64_t voodoo3_lfb_r(offs_t offset, uint64_t mem_mask = ~0);
+ void voodoo3_lfb_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
+ uint8_t input_r(offs_t offset);
+ uint64_t e70000_r(offs_t offset, uint64_t mem_mask = ~0);
+ void e70000_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
+ void unk1a_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
+ void unk1b_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
+ uint64_t e00008_r(offs_t offset, uint64_t mem_mask = ~0);
+ void e00008_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
+ uint64_t e00000_r();
+ uint64_t pci_config_addr_r();
+ void pci_config_addr_w(uint64_t data);
+ uint64_t pci_config_data_r();
+ void pci_config_data_w(uint64_t data);
+ uint64_t cf_card_data_r(offs_t offset, uint64_t mem_mask = ~0);
+ void cf_card_data_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
+ uint64_t cf_card_r(offs_t offset, uint64_t mem_mask = ~0);
+ void cf_card_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
+ uint64_t ata_r(offs_t offset, uint64_t mem_mask = ~0);
+ void ata_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
+ uint64_t unk_serial_r(offs_t offset, uint64_t mem_mask = ~0);
+ void unk_serial_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
DECLARE_WRITE_LINE_MEMBER(voodoo_vblank);
uint32_t screen_update_viper(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
@@ -664,22 +664,22 @@ void viper_state::mpc8240_pci_w(int function, int reg, uint32_t data, uint32_t m
}
-READ64_MEMBER(viper_state::pci_config_addr_r)
+uint64_t viper_state::pci_config_addr_r()
{
return m_lpci->read_64be(0, 0xffffffff00000000U);
}
-WRITE64_MEMBER(viper_state::pci_config_addr_w)
+void viper_state::pci_config_addr_w(uint64_t data)
{
m_lpci->write_64be(0, data, 0xffffffff00000000U);
}
-READ64_MEMBER(viper_state::pci_config_data_r)
+uint64_t viper_state::pci_config_data_r()
{
return m_lpci->read_64be(1, 0x00000000ffffffffU) << 32;
}
-WRITE64_MEMBER(viper_state::pci_config_data_w)
+void viper_state::pci_config_data_w(uint64_t data)
{
m_lpci->write_64be(1, data >> 32, 0x00000000ffffffffU);
}
@@ -877,7 +877,7 @@ void viper_state::epic_update_interrupts()
}
}
-READ32_MEMBER(viper_state::epic_r)
+uint32_t viper_state::epic_r(offs_t offset)
{
int reg;
reg = offset * 4;
@@ -1074,7 +1074,7 @@ READ32_MEMBER(viper_state::epic_r)
return swapendian_int32(ret);
}
-WRITE32_MEMBER(viper_state::epic_w)
+void viper_state::epic_w(offs_t offset, uint32_t data)
{
int reg;
reg = offset * 4;
@@ -1355,16 +1355,6 @@ WRITE32_MEMBER(viper_state::epic_w)
}
}
}
-/*
-READ64_MEMBER(viper_state::epic_64be_r)
-{
- return read64be_with_32le_handler(epic_r, space, offset, mem_mask);
-}
-WRITE64_MEMBER(viper_state::epic_64be_w)
-{
- write64be_with_32le_handler(epic_w, space, offset, data, mem_mask);
-}
-*/
void viper_state::mpc8240_interrupt(int irq)
{
@@ -1412,7 +1402,7 @@ static const uint8_t cf_card_tuples[] =
0x00, 0x01, 0x00, 0x00, // CCR base (0x00000100)
};
-READ64_MEMBER(viper_state::cf_card_data_r)
+uint64_t viper_state::cf_card_data_r(offs_t offset, uint64_t mem_mask)
{
uint64_t r = 0;
@@ -1435,7 +1425,7 @@ READ64_MEMBER(viper_state::cf_card_data_r)
return r;
}
-WRITE64_MEMBER(viper_state::cf_card_data_w)
+void viper_state::cf_card_data_w(offs_t offset, uint64_t data, uint64_t mem_mask)
{
if (ACCESSING_BITS_16_31)
{
@@ -1455,7 +1445,7 @@ WRITE64_MEMBER(viper_state::cf_card_data_w)
}
}
-READ64_MEMBER(viper_state::cf_card_r)
+uint64_t viper_state::cf_card_r(offs_t offset, uint64_t mem_mask)
{
uint64_t r = 0;
@@ -1518,7 +1508,7 @@ READ64_MEMBER(viper_state::cf_card_r)
return r;
}
-WRITE64_MEMBER(viper_state::cf_card_w)
+void viper_state::cf_card_w(offs_t offset, uint64_t data, uint64_t mem_mask)
{
#ifdef VIPER_DEBUG_LOG
//logerror("%s:compact_flash_w: %08X%08X, %08X, %08X%08X\n", machine().describe_context(), (uint32_t)(data>>32), (uint32_t)(data), offset, (uint32_t)(mem_mask >> 32), (uint32_t)(mem_mask));
@@ -1587,7 +1577,7 @@ WRITE64_MEMBER(viper_state::cf_card_w)
}
}
-WRITE64_MEMBER(viper_state::unk2_w)
+void viper_state::unk2_w(offs_t offset, uint64_t data, uint64_t mem_mask)
{
if (ACCESSING_BITS_56_63)
{
@@ -1598,7 +1588,7 @@ WRITE64_MEMBER(viper_state::unk2_w)
-READ64_MEMBER(viper_state::ata_r)
+uint64_t viper_state::ata_r(offs_t offset, uint64_t mem_mask)
{
uint64_t r = 0;
@@ -1620,7 +1610,7 @@ READ64_MEMBER(viper_state::ata_r)
return r;
}
-WRITE64_MEMBER(viper_state::ata_w)
+void viper_state::ata_w(offs_t offset, uint64_t data, uint64_t mem_mask)
{
if (ACCESSING_BITS_16_31)
{
@@ -1743,33 +1733,33 @@ void viper_state::voodoo3_pci_w(int function, int reg, uint32_t data, uint32_t m
}
}
-READ64_MEMBER(viper_state::voodoo3_io_r)
+uint64_t viper_state::voodoo3_io_r(offs_t offset, uint64_t 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)
+void viper_state::voodoo3_io_w(offs_t offset, uint64_t data, uint64_t mem_mask)
{
// 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(*m_voodoo, FUNC(voodoo_3_device::banshee_io_w)), offset, data, mem_mask);
}
-READ64_MEMBER(viper_state::voodoo3_r)
+uint64_t viper_state::voodoo3_r(offs_t offset, uint64_t 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)
+void viper_state::voodoo3_w(offs_t offset, uint64_t data, uint64_t mem_mask)
{
// 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(*m_voodoo, FUNC(voodoo_3_device::banshee_w)), offset, data, mem_mask);
}
-READ64_MEMBER(viper_state::voodoo3_lfb_r)
+uint64_t viper_state::voodoo3_lfb_r(offs_t offset, uint64_t 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)
+void viper_state::voodoo3_lfb_w(offs_t offset, uint64_t data, uint64_t mem_mask)
{
// printf("voodoo3_lfb_w: %08X%08X, %08X at %08X\n", (uint32_t)(data >> 32), (uint32_t)(data), offset, m_maincpu->pc());
@@ -1795,7 +1785,7 @@ TIMER_CALLBACK_MEMBER(viper_state::ds2430_timer_callback)
}
#ifdef UNUSED_FUNCTION
-READ64_MEMBER(viper_state::input_r)
+uint64_t viper_state::input_r(offs_t offset, uint64_t mem_mask)
{
uint64_t r = 0;
//return 0;//0x0000400000000000U;
@@ -1842,7 +1832,7 @@ READ64_MEMBER(viper_state::input_r)
}
#endif
-READ8_MEMBER(viper_state::input_r)
+uint8_t viper_state::input_r(offs_t offset)
{
return (m_io_ports[offset & 7])->read();
}
@@ -1950,7 +1940,7 @@ void viper_state::DS2430_w(int bit)
}
-READ64_MEMBER(viper_state::e70000_r)
+uint64_t viper_state::e70000_r(offs_t offset, uint64_t mem_mask)
{
if (ACCESSING_BITS_56_63)
{
@@ -1963,7 +1953,7 @@ READ64_MEMBER(viper_state::e70000_r)
return 0;
}
-WRITE64_MEMBER(viper_state::e70000_w)
+void viper_state::e70000_w(offs_t offset, uint64_t data, uint64_t mem_mask)
{
if (ACCESSING_BITS_56_63)
{
@@ -1993,7 +1983,7 @@ WRITE64_MEMBER(viper_state::e70000_w)
}
}
-WRITE64_MEMBER(viper_state::unk1a_w)
+void viper_state::unk1a_w(offs_t offset, uint64_t data, uint64_t mem_mask)
{
if (ACCESSING_BITS_56_63)
{
@@ -2001,7 +1991,7 @@ WRITE64_MEMBER(viper_state::unk1a_w)
}
}
-WRITE64_MEMBER(viper_state::unk1b_w)
+void viper_state::unk1b_w(offs_t offset, uint64_t data, uint64_t mem_mask)
{
if (ACCESSING_BITS_56_63)
{
@@ -2010,7 +2000,7 @@ WRITE64_MEMBER(viper_state::unk1b_w)
}
}
-READ64_MEMBER(viper_state::e00008_r)
+uint64_t viper_state::e00008_r(offs_t offset, uint64_t mem_mask)
{
uint64_t r = 0;
if (ACCESSING_BITS_0_7)
@@ -2021,7 +2011,7 @@ READ64_MEMBER(viper_state::e00008_r)
return r;
}
-WRITE64_MEMBER(viper_state::e00008_w)
+void viper_state::e00008_w(offs_t offset, uint64_t data, uint64_t mem_mask)
{
if (ACCESSING_BITS_0_7)
{
@@ -2029,13 +2019,13 @@ WRITE64_MEMBER(viper_state::e00008_w)
}
}
-READ64_MEMBER(viper_state::e00000_r)
+uint64_t viper_state::e00000_r()
{
uint64_t r = 0;//0xffffffffffffffffU;
return r;
}
-READ64_MEMBER(viper_state::unk_serial_r)
+uint64_t viper_state::unk_serial_r(offs_t offset, uint64_t mem_mask)
{
uint64_t r = 0;
if (ACCESSING_BITS_16_31)
@@ -2047,7 +2037,7 @@ READ64_MEMBER(viper_state::unk_serial_r)
return r;
}
-WRITE64_MEMBER(viper_state::unk_serial_w)
+void viper_state::unk_serial_w(offs_t offset, uint64_t data, uint64_t mem_mask)
{
if (ACCESSING_BITS_16_31)
{
@@ -2467,17 +2457,17 @@ void viper_state::init_viperhd()
{
init_viper();
- 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)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff300000, 0xff300fff, read64s_delegate(*this, FUNC(viper_state::ata_r)), write64s_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(*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(0xff000000, 0xff000fff, read64s_delegate(*this, FUNC(viper_state::cf_card_data_r)), write64s_delegate(*this, FUNC(viper_state::cf_card_data_w)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff200000, 0xff200fff, read64s_delegate(*this, FUNC(viper_state::cf_card_r)), write64s_delegate(*this, FUNC(viper_state::cf_card_w)));
- 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)));
+ m_maincpu->space(AS_PROGRAM).install_readwrite_handler(0xff300000, 0xff300fff, read64s_delegate(*this, FUNC(viper_state::unk_serial_r)), write64s_delegate(*this, FUNC(viper_state::unk_serial_w)));
}
diff --git a/src/mame/drivers/vis.cpp b/src/mame/drivers/vis.cpp
index 48c2f9526d2..1ade543187c 100644
--- a/src/mame/drivers/vis.cpp
+++ b/src/mame/drivers/vis.cpp
@@ -728,8 +728,8 @@ private:
void unk_w(offs_t offset, uint8_t data);
uint8_t unk2_r();
uint8_t unk3_r();
- DECLARE_READ16_MEMBER(pad_r);
- DECLARE_WRITE16_MEMBER(pad_w);
+ uint16_t pad_r(offs_t offset);
+ void pad_w(offs_t offset, uint16_t data);
uint8_t unk1_r(offs_t offset);
void unk1_w(offs_t offset, uint8_t data);
void io_map(address_map &map);
@@ -783,7 +783,7 @@ uint8_t vis_state::unk3_r()
return 0x00;
}
-READ16_MEMBER(vis_state::pad_r)
+uint16_t vis_state::pad_r(offs_t offset)
{
uint16_t ret = 0;
switch(offset)
@@ -803,7 +803,7 @@ READ16_MEMBER(vis_state::pad_r)
return ret;
}
-WRITE16_MEMBER(vis_state::pad_w)
+void vis_state::pad_w(offs_t offset, uint16_t data)
{
switch(offset)
{
diff --git a/src/mame/drivers/vk100.cpp b/src/mame/drivers/vk100.cpp
index 6e1e4fa8a1c..b56b800fdbb 100644
--- a/src/mame/drivers/vk100.cpp
+++ b/src/mame/drivers/vk100.cpp
@@ -234,18 +234,18 @@ private:
uint8_t m_ADSR;
ioport_port* m_col_array[16];
- DECLARE_WRITE8_MEMBER(vgLD_X);
- DECLARE_WRITE8_MEMBER(vgLD_Y);
- DECLARE_WRITE8_MEMBER(vgERR);
- DECLARE_WRITE8_MEMBER(vgSOPS);
- DECLARE_WRITE8_MEMBER(vgPAT);
- DECLARE_WRITE8_MEMBER(vgPMUL);
- DECLARE_WRITE8_MEMBER(vgREG);
- DECLARE_WRITE8_MEMBER(vgEX);
- DECLARE_WRITE8_MEMBER(KBDW);
- DECLARE_READ8_MEMBER(vk100_keyboard_column_r);
- DECLARE_READ8_MEMBER(SYSTAT_A);
- DECLARE_READ8_MEMBER(SYSTAT_B);
+ void vgLD_X(offs_t offset, uint8_t data);
+ void vgLD_Y(offs_t offset, uint8_t data);
+ void vgERR(uint8_t data);
+ void vgSOPS(uint8_t data);
+ void vgPAT(uint8_t data);
+ void vgPMUL(uint8_t data);
+ void vgREG(offs_t offset, uint8_t data);
+ void vgEX(offs_t offset, uint8_t data);
+ void KBDW(uint8_t data);
+ uint8_t vk100_keyboard_column_r(offs_t offset);
+ uint8_t SYSTAT_A(offs_t offset);
+ uint8_t SYSTAT_B();
virtual void machine_start() override;
virtual void video_start() override;
@@ -430,7 +430,7 @@ TIMER_CALLBACK_MEMBER(vk100_state::execute_vg)
}
/* ports 0x40 and 0x41: load low and high bytes of vector gen X register */
-WRITE8_MEMBER(vk100_state::vgLD_X)
+void vk100_state::vgLD_X(offs_t offset, uint8_t data)
{
m_vgX &= 0xFF << ((1-offset)*8);
m_vgX |= ((uint16_t)data) << (offset*8);
@@ -440,7 +440,7 @@ WRITE8_MEMBER(vk100_state::vgLD_X)
}
/* ports 0x42 and 0x43: load low and high bytes of vector gen Y register */
-WRITE8_MEMBER(vk100_state::vgLD_Y)
+void vk100_state::vgLD_Y(offs_t offset, uint8_t data)
{
m_vgY &= 0xFF << ((1-offset)*8);
m_vgY |= ((uint16_t)data) << (offset*8);
@@ -450,7 +450,7 @@ WRITE8_MEMBER(vk100_state::vgLD_Y)
}
/* port 0x44: "ERR" load bresenham line algorithm 'error' count */
-WRITE8_MEMBER(vk100_state::vgERR)
+void vk100_state::vgERR(uint8_t data)
{
m_vgERR = data;
#ifdef VG40_VERBOSE
@@ -474,7 +474,7 @@ WRITE8_MEMBER(vk100_state::vgERR)
* 1 1 8251TXD ACTS(loop) 8251RXD J6 /DTR J7 URTS GND 8251RTS(loop) J6 /DSR
* * and UCTS, the pin drives both pins on J7
*/
-WRITE8_MEMBER(vk100_state::vgSOPS)
+void vk100_state::vgSOPS(uint8_t data)
{
m_vgSOPS = data;
#ifdef VG40_VERBOSE
@@ -484,7 +484,7 @@ WRITE8_MEMBER(vk100_state::vgSOPS)
}
/* port 0x46: "PAT" load vg Pattern register */
-WRITE8_MEMBER(vk100_state::vgPAT)
+void vk100_state::vgPAT(uint8_t data)
{
m_vgPAT = data;
#ifdef PAT_DEBUG
@@ -504,7 +504,7 @@ WRITE8_MEMBER(vk100_state::vgPAT)
the pattern register and increments on each one. if it overflows from
1111 to 0000 the pattern register is shifted right one bit and the
counter is reloaded from PMUL */
-WRITE8_MEMBER(vk100_state::vgPMUL)
+void vk100_state::vgPMUL(uint8_t data)
{
m_vgPMUL = data;
#ifdef VG40_VERBOSE
@@ -521,7 +521,7 @@ WRITE8_MEMBER(vk100_state::vgPMUL)
* Change
* d7 d6 d5 d4 d3 d2 d1 d0
*/
-WRITE8_MEMBER(vk100_state::vgREG)
+void vk100_state::vgREG(offs_t offset, uint8_t data)
{
m_vgRegFile[offset] = data;
#ifdef VG60_VERBOSE
@@ -537,7 +537,7 @@ WRITE8_MEMBER(vk100_state::vgREG)
/* port 0x65: "EX DOT" execute a dot (draw a dot at x,y?) */
/* port 0x66: "EX VEC" execute a vector (draw a vector from x,y to a destination using du/dvm/dir/err ) */
/* port 0x67: "EX ER" execute an erase (clear the screen to the bg color, i.e. fill vram with zeroes) */
-WRITE8_MEMBER(vk100_state::vgEX)
+void vk100_state::vgEX(offs_t offset, uint8_t data)
{
#ifdef VG60_VERBOSE
static const char *const ex_functions[] = { "Move", "Dot", "Vector", "Erase" };
@@ -554,7 +554,7 @@ WRITE8_MEMBER(vk100_state::vgEX)
/* port 0x68: "KBDW" d7 is beeper, d6 is keyclick, d5-d0 are keyboard LEDS */
-WRITE8_MEMBER(vk100_state::KBDW)
+void vk100_state::KBDW(uint8_t data)
{
output().set_value("online_led",BIT(data, 5) ? 1 : 0);
output().set_value("local_led", BIT(data, 5) ? 0 : 1);
@@ -639,7 +639,7 @@ WRITE8_MEMBER(vk100_state::KBDW)
299 reads, rotates result right 3 times and ANDs the result with 0x0F
2A4 reads, rotates result left 1 time and ANDS the result with 0xF0
*/
-READ8_MEMBER(vk100_state::SYSTAT_A)
+uint8_t vk100_state::SYSTAT_A(offs_t offset)
{
uint8_t dipswitchLUT[8] = { 1,3,5,7,6,4,2,0 }; // the dipswitches map in a weird order to offsets
#ifdef SYSTAT_A_VERBOSE
@@ -666,7 +666,7 @@ READ8_MEMBER(vk100_state::SYSTAT_A)
* The 4 attribute ram bits for the cell being pointed at by the X and Y regs are readable as the low nybble.
* The DSR pin is readable as bit 6.
*/
-READ8_MEMBER(vk100_state::SYSTAT_B)
+uint8_t vk100_state::SYSTAT_B()
{
#ifdef SYSTAT_B_VERBOSE
logerror("0x%04X: SYSTAT_B Read!\n", m_maincpu->pc());
@@ -674,7 +674,7 @@ READ8_MEMBER(vk100_state::SYSTAT_B)
return (m_ACTS<<7)|(m_ADSR<<6)|vram_attr_read();
}
-READ8_MEMBER(vk100_state::vk100_keyboard_column_r)
+uint8_t vk100_state::vk100_keyboard_column_r(offs_t offset)
{
uint8_t code = m_col_array[offset&0xF]->read() | m_capsshift->read();
#ifdef KBD_VERBOSE
diff --git a/src/mame/drivers/vlc.cpp b/src/mame/drivers/vlc.cpp
index 870130bf8df..67b58ccfe2f 100644
--- a/src/mame/drivers/vlc.cpp
+++ b/src/mame/drivers/vlc.cpp
@@ -204,12 +204,12 @@ private:
template<int N> void duart_w(offs_t offset, uint8_t data);
uint8_t rtc_r(offs_t offset);
void rtc_w(offs_t offset, uint8_t data);
- DECLARE_READ16_MEMBER(io_board_r);
- DECLARE_WRITE16_MEMBER(io_board_w);
- DECLARE_WRITE16_MEMBER (io_board_x);
- DECLARE_READ16_MEMBER( nevada_sec_r );
- DECLARE_WRITE16_MEMBER( nevada_sec_w );
- DECLARE_WRITE16_MEMBER( vram_w );
+ uint16_t io_board_r();
+ void io_board_w(uint16_t data);
+ void io_board_x(uint16_t data);
+ uint16_t nevada_sec_r();
+ void nevada_sec_w(uint16_t data);
+ void vram_w(offs_t offset, uint16_t data);
DECLARE_MACHINE_START(nevada);
@@ -268,7 +268,7 @@ static const gfx_layout charlayout =
/***************************************************************************/
-WRITE16_MEMBER( nevada_state::vram_w )
+void nevada_state::vram_w(offs_t offset, uint16_t data)
{
// Todo, Just for sample
@@ -373,24 +373,24 @@ void nevada_state::rtc_w(offs_t offset, uint8_t data)
/***************************************************************************/
-READ16_MEMBER(nevada_state::io_board_r)
+uint16_t nevada_state::io_board_r()
{
// IO board Serial communication 0xA00000
return 1;
}
/***************************************************************************/
-WRITE16_MEMBER(nevada_state::io_board_w)
+void nevada_state::io_board_w(uint16_t data)
{
// IO board Serial communication 0xA00000 on bit0
}
/***************************************************************************/
-WRITE16_MEMBER(nevada_state::io_board_x)
+void nevada_state::io_board_x(uint16_t data)
{
// IO board Serial communication 0xA80000 on bit15
}
/***************************************************************************/
-READ16_MEMBER(nevada_state::nevada_sec_r )
+uint16_t nevada_state::nevada_sec_r()
{
// D3..D0 = DOOR OPEN or Track STATE of PAL35
uint16_t res;
@@ -403,7 +403,7 @@ READ16_MEMBER(nevada_state::nevada_sec_r )
return res;
}
/***************************************************************************/
-WRITE16_MEMBER(nevada_state::nevada_sec_w )
+void nevada_state::nevada_sec_w(uint16_t data)
{
// 74LS173 $bits Register used LOWER bits D3..D0 for DOOR LOGIC SWITCH
m_datA40000 = data | 0x00f0; // since D7..D4 are not used and are connected to PULLUP
diff --git a/src/mame/drivers/voyager.cpp b/src/mame/drivers/voyager.cpp
index 02875b7c383..85dbc8955fb 100644
--- a/src/mame/drivers/voyager.cpp
+++ b/src/mame/drivers/voyager.cpp
@@ -57,7 +57,7 @@ private:
uint8_t m_mtxc_config_reg[256];
uint8_t m_piix4_config_reg[4][256];
- DECLARE_WRITE32_MEMBER(bios_ram_w);
+ void bios_ram_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
uint8_t nvram_r(offs_t offset);
void nvram_w(offs_t offset, uint8_t data);
@@ -238,7 +238,7 @@ void voyager_state::intel82371ab_pci_w(int function, int reg, uint32_t data, uin
}
}
-WRITE32_MEMBER(voyager_state::bios_ram_w)
+void voyager_state::bios_ram_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
//if (m_mtxc_config_reg[0x59] & 0x20) // write to RAM if this region is write-enabled
if (m_mtxc_config_reg[0x63] & 0x50)
diff --git a/src/mame/drivers/vp101.cpp b/src/mame/drivers/vp101.cpp
index 5585772cb33..7104d1ffbb7 100644
--- a/src/mame/drivers/vp101.cpp
+++ b/src/mame/drivers/vp101.cpp
@@ -124,23 +124,23 @@ private:
virtual void machine_reset() override;
virtual void machine_start() override;
- DECLARE_READ32_MEMBER(tty_ready_r);
- DECLARE_WRITE32_MEMBER(tty_w);
- DECLARE_READ32_MEMBER(test_r) { return 0xffffffff; }
+ uint32_t tty_ready_r();
+ void tty_w(uint32_t data);
+ uint32_t test_r() { return 0xffffffff; }
- DECLARE_READ32_MEMBER(pic_r);
- DECLARE_WRITE32_MEMBER(pic_w);
+ uint32_t pic_r();
+ void pic_w(uint32_t data);
- DECLARE_WRITE32_MEMBER(dmaaddr_w);
+ void dmaaddr_w(uint32_t data);
DECLARE_WRITE_LINE_MEMBER(dmarq_w);
- DECLARE_READ32_MEMBER(tty_4925_rdy_r) { return 0x2; }
+ uint32_t tty_4925_rdy_r() { return 0x2; }
- DECLARE_READ32_MEMBER(spi_status_r) { return 0x8007; }
+ uint32_t spi_status_r() { return 0x8007; }
- DECLARE_READ32_MEMBER(spi_r);
- DECLARE_WRITE32_MEMBER(spi_w);
+ uint32_t spi_r();
+ void spi_w(uint32_t data);
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
uint32_t vp50_screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
@@ -175,7 +175,7 @@ void vp10x_state::machine_start()
// m_maincpu->add_fastram(0x00000000, 0x03ffffff, false, m_mainram);
}
-WRITE32_MEMBER(vp10x_state::dmaaddr_w)
+void vp10x_state::dmaaddr_w(uint32_t data)
{
m_dma_ptr = (data & 0x07ffffff);
}
@@ -204,7 +204,7 @@ WRITE_LINE_MEMBER(vp10x_state::dmarq_w)
}
}
-READ32_MEMBER(vp10x_state::pic_r)
+uint32_t vp10x_state::pic_r()
{
static const uint8_t vers[5] = { 0x00, 0x01, 0x00, 0x00, 0x00 };
static const uint8_t serial[10] = { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a };
@@ -226,7 +226,7 @@ READ32_MEMBER(vp10x_state::pic_r)
return 0;
}
-WRITE32_MEMBER(vp10x_state::pic_w)
+void vp10x_state::pic_w(uint32_t data)
{
//printf("%02x to pic_cmd\n", data&0xff);
if ((data & 0xff) == 0)
@@ -237,12 +237,12 @@ WRITE32_MEMBER(vp10x_state::pic_w)
pic_state = 0;
}
-READ32_MEMBER(vp10x_state::spi_r)
+uint32_t vp10x_state::spi_r()
{
return 0xffffffff;
}
-WRITE32_MEMBER(vp10x_state::spi_w)
+void vp10x_state::spi_w(uint32_t data)
{
// printf("%d to SPI select\n", data);
m_spi_select = data;
@@ -292,12 +292,12 @@ uint32_t vp10x_state::vp50_screen_update(screen_device &screen, bitmap_rgb32 &bi
return 0;
}
-READ32_MEMBER(vp10x_state::tty_ready_r)
+uint32_t vp10x_state::tty_ready_r()
{
return 0x60; // must return &0x20 for output at tty_w to continue
}
-WRITE32_MEMBER(vp10x_state::tty_w) // set breakpoint at bfc01430 to catch when it's printing things
+void vp10x_state::tty_w(uint32_t data) // set breakpoint at bfc01430 to catch when it's printing things
{
// uncomment to see startup messages - it says "RAM OK" and "EPI RSS Ver 4.5.1" followed by "<RSS active>" and then lots of dots
// Special Forces also says "<inited tv_cap> = 00000032"
diff --git a/src/mame/drivers/vpoker.cpp b/src/mame/drivers/vpoker.cpp
index eafe391270f..6c7f004641a 100644
--- a/src/mame/drivers/vpoker.cpp
+++ b/src/mame/drivers/vpoker.cpp
@@ -121,8 +121,8 @@ public:
private:
std::unique_ptr<uint8_t[]> m_videoram;
uint8_t m_blit_ram[8];
- DECLARE_READ8_MEMBER(blitter_r);
- DECLARE_WRITE8_MEMBER(blitter_w);
+ uint8_t blitter_r(offs_t offset);
+ void blitter_w(offs_t offset, uint8_t data);
DECLARE_WRITE_LINE_MEMBER(ptm_irq);
virtual void video_start() override;
uint32_t screen_update_vpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
@@ -161,7 +161,7 @@ uint32_t vpoker_state::screen_update_vpoker(screen_device &screen, bitmap_ind16
return 0;
}
-READ8_MEMBER(vpoker_state::blitter_r)
+uint8_t vpoker_state::blitter_r(offs_t offset)
{
if(offset == 6)
return ioport("IN0")->read();
@@ -169,7 +169,7 @@ READ8_MEMBER(vpoker_state::blitter_r)
return 0;
}
-WRITE8_MEMBER(vpoker_state::blitter_w)
+void vpoker_state::blitter_w(offs_t offset, uint8_t data)
{
uint8_t *videoram = m_videoram.get();
diff --git a/src/mame/drivers/vroulet.cpp b/src/mame/drivers/vroulet.cpp
index 5987dbd16f8..99208384039 100644
--- a/src/mame/drivers/vroulet.cpp
+++ b/src/mame/drivers/vroulet.cpp
@@ -74,9 +74,9 @@ private:
tilemap_t *m_bg_tilemap;
- DECLARE_WRITE8_MEMBER(paletteram_w);
- DECLARE_WRITE8_MEMBER(videoram_w);
- DECLARE_WRITE8_MEMBER(colorram_w);
+ void paletteram_w(offs_t offset, uint8_t data);
+ void videoram_w(offs_t offset, uint8_t data);
+ void colorram_w(offs_t offset, uint8_t data);
void ppi8255_a_w(uint8_t data);
void ppi8255_b_w(uint8_t data);
void ppi8255_c_w(uint8_t data);
@@ -94,7 +94,7 @@ private:
/* video */
-WRITE8_MEMBER(vroulet_state::paletteram_w)
+void vroulet_state::paletteram_w(offs_t offset, uint8_t data)
{
/*
paletteram_xxxxBBBBGGGGRRRR_byte_be_w
@@ -114,13 +114,13 @@ WRITE8_MEMBER(vroulet_state::paletteram_w)
}
}
-WRITE8_MEMBER(vroulet_state::videoram_w)
+void vroulet_state::videoram_w(offs_t offset, uint8_t data)
{
m_videoram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(vroulet_state::colorram_w)
+void vroulet_state::colorram_w(offs_t offset, uint8_t data)
{
m_colorram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset);
diff --git a/src/mame/drivers/vt1682.cpp b/src/mame/drivers/vt1682.cpp
index 76a75557d54..6bd7b73712f 100644
--- a/src/mame/drivers/vt1682.cpp
+++ b/src/mame/drivers/vt1682.cpp
@@ -239,120 +239,120 @@ private:
uint8_t m_2030;
- DECLARE_READ8_MEMBER(vt1682_2000_r);
- DECLARE_WRITE8_MEMBER(vt1682_2000_w);
-
- DECLARE_READ8_MEMBER(vt1682_2001_vblank_r);
- DECLARE_WRITE8_MEMBER(vt1682_2001_w);
-
- DECLARE_READ8_MEMBER(vt1682_2002_sprramaddr_2_0_r);
- DECLARE_WRITE8_MEMBER(vt1682_2002_sprramaddr_2_0_w);
- DECLARE_READ8_MEMBER(vt1682_2003_sprramaddr_10_3_r);
- DECLARE_WRITE8_MEMBER(vt1682_2003_sprramaddr_10_3_w);
- DECLARE_READ8_MEMBER(vt1682_2004_sprram_data_r);
- DECLARE_WRITE8_MEMBER(vt1682_2004_sprram_data_w);
-
- DECLARE_READ8_MEMBER(vt1682_2005_vramaddr_7_0_r);
- DECLARE_WRITE8_MEMBER(vt1682_2005_vramaddr_7_0_w);
- DECLARE_READ8_MEMBER(vt1682_2006_vramaddr_15_8_r);
- DECLARE_WRITE8_MEMBER(vt1682_2006_vramaddr_15_8_w);
- DECLARE_READ8_MEMBER(vt1682_2007_vram_data_r);
- DECLARE_WRITE8_MEMBER(vt1682_2007_vram_data_w);
-
- DECLARE_READ8_MEMBER(vt1682_201a_sp_segment_7_0_r);
- DECLARE_WRITE8_MEMBER(vt1682_201a_sp_segment_7_0_w);
- DECLARE_READ8_MEMBER(vt1682_201b_sp_segment_11_8_r);
- DECLARE_WRITE8_MEMBER(vt1682_201b_sp_segment_11_8_w);
-
- DECLARE_READ8_MEMBER(vt1682_201c_bk1_segment_7_0_r);
- DECLARE_WRITE8_MEMBER(vt1682_201c_bk1_segment_7_0_w);
- DECLARE_READ8_MEMBER(vt1682_201d_bk1_segment_11_8_r);
- DECLARE_WRITE8_MEMBER(vt1682_201d_bk1_segment_11_8_w);
- DECLARE_READ8_MEMBER(vt1682_201e_bk2_segment_7_0_r);
- DECLARE_WRITE8_MEMBER(vt1682_201e_bk2_segment_7_0_w);
- DECLARE_READ8_MEMBER(vt1682_201f_bk2_segment_11_8_r);
- DECLARE_WRITE8_MEMBER(vt1682_201f_bk2_segment_11_8_w);
-
- DECLARE_READ8_MEMBER(vt1682_2013_bk1_main_control_r);
- DECLARE_WRITE8_MEMBER(vt1682_2013_bk1_main_control_w);
- DECLARE_READ8_MEMBER(vt1682_2017_bk2_main_control_r);
- DECLARE_WRITE8_MEMBER(vt1682_2017_bk2_main_control_w);
-
- DECLARE_READ8_MEMBER(vt1682_2012_bk1_scroll_control_r);
- DECLARE_WRITE8_MEMBER(vt1682_2012_bk1_scroll_control_w);
- DECLARE_READ8_MEMBER(vt1682_2016_bk2_scroll_control_r);
- DECLARE_WRITE8_MEMBER(vt1682_2016_bk2_scroll_control_w);
-
- DECLARE_READ8_MEMBER(vt1682_2010_bk1_xscroll_7_0_r);
- DECLARE_WRITE8_MEMBER(vt1682_2010_bk1_xscroll_7_0_w);
- DECLARE_READ8_MEMBER(vt1682_2011_bk1_yscoll_7_0_r);
- DECLARE_WRITE8_MEMBER(vt1682_2011_bk1_yscoll_7_0_w);
- DECLARE_READ8_MEMBER(vt1682_2014_bk2_xscroll_7_0_r);
- DECLARE_WRITE8_MEMBER(vt1682_2014_bk2_xscroll_7_0_w);
- DECLARE_READ8_MEMBER(vt1682_2015_bk2_yscoll_7_0_r);
- DECLARE_WRITE8_MEMBER(vt1682_2015_bk2_yscoll_7_0_w);
-
- DECLARE_READ8_MEMBER(vt1682_200e_blend_pal_sel_r);
- DECLARE_WRITE8_MEMBER(vt1682_200e_blend_pal_sel_w);
- DECLARE_READ8_MEMBER(vt1682_200f_bk_pal_sel_r);
- DECLARE_WRITE8_MEMBER(vt1682_200f_bk_pal_sel_w);
-
- DECLARE_READ8_MEMBER(vt1682_2008_lcd_vs_delay_r);
- DECLARE_WRITE8_MEMBER(vt1682_2008_lcd_vs_delay_w);
- DECLARE_READ8_MEMBER(vt1682_2009_lcd_hs_delay_7_0_r);
- DECLARE_WRITE8_MEMBER(vt1682_2009_lcd_hs_delay_7_0_w);
- DECLARE_READ8_MEMBER(vt1682_200a_lcd_fr_delay_7_0_r);
- DECLARE_WRITE8_MEMBER(vt1682_200a_lcd_fr_delay_7_0_w);
-
- DECLARE_READ8_MEMBER(vt1682_200d_misc_vregs2_r);
- DECLARE_WRITE8_MEMBER(vt1682_200d_misc_vregs2_w);
- DECLARE_READ8_MEMBER(vt1682_200c_misc_vregs1_r);
- DECLARE_WRITE8_MEMBER(vt1682_200c_misc_vregs1_w);
- DECLARE_READ8_MEMBER(vt1682_200b_misc_vregs0_r);
- DECLARE_WRITE8_MEMBER(vt1682_200b_misc_vregs0_w);
-
- DECLARE_READ8_MEMBER(vt1682_2018_spregs_r);
- DECLARE_WRITE8_MEMBER(vt1682_2018_spregs_w);
- DECLARE_READ8_MEMBER(vt1682_2019_bkgain_r);
- DECLARE_WRITE8_MEMBER(vt1682_2019_bkgain_w);
-
- DECLARE_READ8_MEMBER(vt1682_2020_bk_linescroll_r);
- DECLARE_WRITE8_MEMBER(vt1682_2020_bk_linescroll_w);
- DECLARE_READ8_MEMBER(vt1682_2021_lum_offset_r);
- DECLARE_WRITE8_MEMBER(vt1682_2021_lum_offset_w);
- DECLARE_READ8_MEMBER(vt1682_2022_saturation_misc_r);
- DECLARE_WRITE8_MEMBER(vt1682_2022_saturation_misc_w);
-
- DECLARE_READ8_MEMBER(vt1682_2023_lightgun_reset_r);
- DECLARE_WRITE8_MEMBER(vt1682_2023_lightgun_reset_w);
- DECLARE_READ8_MEMBER(vt1682_2024_lightgun1_y_r);
- DECLARE_WRITE8_MEMBER(vt1682_2024_lightgun1_y_w);
- DECLARE_READ8_MEMBER(vt1682_2025_lightgun1_x_r);
- DECLARE_WRITE8_MEMBER(vt1682_2025_lightgun1_x_w);
- DECLARE_READ8_MEMBER(vt1682_2026_lightgun2_y_r);
- DECLARE_WRITE8_MEMBER(vt1682_2026_lightgun2_y_w);
- DECLARE_READ8_MEMBER(vt1682_2027_lightgun2_x_r);
- DECLARE_WRITE8_MEMBER(vt1682_2027_lightgun2_x_w);
-
- DECLARE_READ8_MEMBER(vt1682_2031_red_dac_r);
- DECLARE_WRITE8_MEMBER(vt1682_2031_red_dac_w);
- DECLARE_READ8_MEMBER(vt1682_2032_green_dac_r);
- DECLARE_WRITE8_MEMBER(vt1682_2032_green_dac_w);
- DECLARE_READ8_MEMBER(vt1682_2033_blue_dac_r);
- DECLARE_WRITE8_MEMBER(vt1682_2033_blue_dac_w);
-
- DECLARE_READ8_MEMBER(vt1682_2028_r);
- DECLARE_WRITE8_MEMBER(vt1682_2028_w);
- DECLARE_READ8_MEMBER(vt1682_2029_r);
- DECLARE_WRITE8_MEMBER(vt1682_2029_w);
- DECLARE_READ8_MEMBER(vt1682_202a_r);
- DECLARE_WRITE8_MEMBER(vt1682_202a_w);
- DECLARE_READ8_MEMBER(vt1682_202b_r);
- DECLARE_WRITE8_MEMBER(vt1682_202b_w);
- DECLARE_READ8_MEMBER(vt1682_202e_r);
- DECLARE_WRITE8_MEMBER(vt1682_202e_w);
- DECLARE_READ8_MEMBER(vt1682_2030_r);
- DECLARE_WRITE8_MEMBER(vt1682_2030_w);
+ uint8_t vt1682_2000_r();
+ void vt1682_2000_w(uint8_t data);
+
+ uint8_t vt1682_2001_vblank_r();
+ void vt1682_2001_w(uint8_t data);
+
+ uint8_t vt1682_2002_sprramaddr_2_0_r();
+ void vt1682_2002_sprramaddr_2_0_w(uint8_t data);
+ uint8_t vt1682_2003_sprramaddr_10_3_r();
+ void vt1682_2003_sprramaddr_10_3_w(uint8_t data);
+ uint8_t vt1682_2004_sprram_data_r();
+ void vt1682_2004_sprram_data_w(uint8_t data);
+
+ uint8_t vt1682_2005_vramaddr_7_0_r();
+ void vt1682_2005_vramaddr_7_0_w(uint8_t data);
+ uint8_t vt1682_2006_vramaddr_15_8_r();
+ void vt1682_2006_vramaddr_15_8_w(uint8_t data);
+ uint8_t vt1682_2007_vram_data_r();
+ void vt1682_2007_vram_data_w(uint8_t data);
+
+ uint8_t vt1682_201a_sp_segment_7_0_r();
+ void vt1682_201a_sp_segment_7_0_w(uint8_t data);
+ uint8_t vt1682_201b_sp_segment_11_8_r();
+ void vt1682_201b_sp_segment_11_8_w(uint8_t data);
+
+ uint8_t vt1682_201c_bk1_segment_7_0_r();
+ void vt1682_201c_bk1_segment_7_0_w(uint8_t data);
+ uint8_t vt1682_201d_bk1_segment_11_8_r();
+ void vt1682_201d_bk1_segment_11_8_w(uint8_t data);
+ uint8_t vt1682_201e_bk2_segment_7_0_r();
+ void vt1682_201e_bk2_segment_7_0_w(uint8_t data);
+ uint8_t vt1682_201f_bk2_segment_11_8_r();
+ void vt1682_201f_bk2_segment_11_8_w(uint8_t data);
+
+ uint8_t vt1682_2013_bk1_main_control_r();
+ void vt1682_2013_bk1_main_control_w(uint8_t data);
+ uint8_t vt1682_2017_bk2_main_control_r();
+ void vt1682_2017_bk2_main_control_w(uint8_t data);
+
+ uint8_t vt1682_2012_bk1_scroll_control_r();
+ void vt1682_2012_bk1_scroll_control_w(uint8_t data);
+ uint8_t vt1682_2016_bk2_scroll_control_r();
+ void vt1682_2016_bk2_scroll_control_w(uint8_t data);
+
+ uint8_t vt1682_2010_bk1_xscroll_7_0_r();
+ void vt1682_2010_bk1_xscroll_7_0_w(uint8_t data);
+ uint8_t vt1682_2011_bk1_yscoll_7_0_r();
+ void vt1682_2011_bk1_yscoll_7_0_w(uint8_t data);
+ uint8_t vt1682_2014_bk2_xscroll_7_0_r();
+ void vt1682_2014_bk2_xscroll_7_0_w(uint8_t data);
+ uint8_t vt1682_2015_bk2_yscoll_7_0_r();
+ void vt1682_2015_bk2_yscoll_7_0_w(uint8_t data);
+
+ uint8_t vt1682_200e_blend_pal_sel_r();
+ void vt1682_200e_blend_pal_sel_w(uint8_t data);
+ uint8_t vt1682_200f_bk_pal_sel_r();
+ void vt1682_200f_bk_pal_sel_w(uint8_t data);
+
+ uint8_t vt1682_2008_lcd_vs_delay_r();
+ void vt1682_2008_lcd_vs_delay_w(uint8_t data);
+ uint8_t vt1682_2009_lcd_hs_delay_7_0_r();
+ void vt1682_2009_lcd_hs_delay_7_0_w(uint8_t data);
+ uint8_t vt1682_200a_lcd_fr_delay_7_0_r();
+ void vt1682_200a_lcd_fr_delay_7_0_w(uint8_t data);
+
+ uint8_t vt1682_200d_misc_vregs2_r();
+ void vt1682_200d_misc_vregs2_w(uint8_t data);
+ uint8_t vt1682_200c_misc_vregs1_r();
+ void vt1682_200c_misc_vregs1_w(uint8_t data);
+ uint8_t vt1682_200b_misc_vregs0_r();
+ void vt1682_200b_misc_vregs0_w(uint8_t data);
+
+ uint8_t vt1682_2018_spregs_r();
+ void vt1682_2018_spregs_w(uint8_t data);
+ uint8_t vt1682_2019_bkgain_r();
+ void vt1682_2019_bkgain_w(uint8_t data);
+
+ uint8_t vt1682_2020_bk_linescroll_r();
+ void vt1682_2020_bk_linescroll_w(uint8_t data);
+ uint8_t vt1682_2021_lum_offset_r();
+ void vt1682_2021_lum_offset_w(uint8_t data);
+ uint8_t vt1682_2022_saturation_misc_r();
+ void vt1682_2022_saturation_misc_w(uint8_t data);
+
+ uint8_t vt1682_2023_lightgun_reset_r();
+ void vt1682_2023_lightgun_reset_w(uint8_t data);
+ uint8_t vt1682_2024_lightgun1_y_r();
+ void vt1682_2024_lightgun1_y_w(uint8_t data);
+ uint8_t vt1682_2025_lightgun1_x_r();
+ void vt1682_2025_lightgun1_x_w(uint8_t data);
+ uint8_t vt1682_2026_lightgun2_y_r();
+ void vt1682_2026_lightgun2_y_w(uint8_t data);
+ uint8_t vt1682_2027_lightgun2_x_r();
+ void vt1682_2027_lightgun2_x_w(uint8_t data);
+
+ uint8_t vt1682_2031_red_dac_r();
+ void vt1682_2031_red_dac_w(uint8_t data);
+ uint8_t vt1682_2032_green_dac_r();
+ void vt1682_2032_green_dac_w(uint8_t data);
+ uint8_t vt1682_2033_blue_dac_r();
+ void vt1682_2033_blue_dac_w(uint8_t data);
+
+ uint8_t vt1682_2028_r();
+ void vt1682_2028_w(uint8_t data);
+ uint8_t vt1682_2029_r();
+ void vt1682_2029_w(uint8_t data);
+ uint8_t vt1682_202a_r();
+ void vt1682_202a_w(uint8_t data);
+ uint8_t vt1682_202b_r();
+ void vt1682_202b_w(uint8_t data);
+ uint8_t vt1682_202e_r();
+ void vt1682_202e_w(uint8_t data);
+ uint8_t vt1682_2030_r();
+ void vt1682_2030_w(uint8_t data);
/* Video Helpers */
@@ -426,73 +426,73 @@ private:
uint8_t m_2106_enable_reg;
- DECLARE_READ8_MEMBER(vt1682_2100_prgbank1_r3_r);
- DECLARE_WRITE8_MEMBER(vt1682_2100_prgbank1_r3_w);
- DECLARE_READ8_MEMBER(vt1682_210c_prgbank1_r2_r);
- DECLARE_WRITE8_MEMBER(vt1682_210c_prgbank1_r2_w);
+ uint8_t vt1682_2100_prgbank1_r3_r();
+ void vt1682_2100_prgbank1_r3_w(uint8_t data);
+ uint8_t vt1682_210c_prgbank1_r2_r();
+ void vt1682_210c_prgbank1_r2_w(uint8_t data);
- DECLARE_READ8_MEMBER(vt1682_2107_prgbank0_r0_r);
- DECLARE_WRITE8_MEMBER(vt1682_2107_prgbank0_r0_w);
- DECLARE_READ8_MEMBER(vt1682_2108_prgbank0_r1_r);
- DECLARE_WRITE8_MEMBER(vt1682_2108_prgbank0_r1_w);
- DECLARE_READ8_MEMBER(vt1682_2109_prgbank0_r2_r);
- DECLARE_WRITE8_MEMBER(vt1682_2109_prgbank0_r2_w);
- DECLARE_READ8_MEMBER(vt1682_210a_prgbank0_r3_r);
- DECLARE_WRITE8_MEMBER(vt1682_210a_prgbank0_r3_w);
+ uint8_t vt1682_2107_prgbank0_r0_r();
+ void vt1682_2107_prgbank0_r0_w(uint8_t data);
+ uint8_t vt1682_2108_prgbank0_r1_r();
+ void vt1682_2108_prgbank0_r1_w(uint8_t data);
+ uint8_t vt1682_2109_prgbank0_r2_r();
+ void vt1682_2109_prgbank0_r2_w(uint8_t data);
+ uint8_t vt1682_210a_prgbank0_r3_r();
+ void vt1682_210a_prgbank0_r3_w(uint8_t data);
- DECLARE_READ8_MEMBER(vt1682_prgbank0_r4_r);
- DECLARE_READ8_MEMBER(vt1682_prgbank0_r5_r);
- DECLARE_READ8_MEMBER(vt1682_prgbank1_r0_r);
- DECLARE_READ8_MEMBER(vt1682_prgbank1_r1_r);
+ uint8_t vt1682_prgbank0_r4_r();
+ uint8_t vt1682_prgbank0_r5_r();
+ uint8_t vt1682_prgbank1_r0_r();
+ uint8_t vt1682_prgbank1_r1_r();
- DECLARE_WRITE8_MEMBER(vt1682_prgbank1_r0_w);
- DECLARE_WRITE8_MEMBER(vt1682_prgbank1_r1_w);
- DECLARE_WRITE8_MEMBER(vt1682_prgbank0_r4_w);
- DECLARE_WRITE8_MEMBER(vt1682_prgbank0_r5_w);
+ void vt1682_prgbank1_r0_w(uint8_t data);
+ void vt1682_prgbank1_r1_w(uint8_t data);
+ void vt1682_prgbank0_r4_w(uint8_t data);
+ void vt1682_prgbank0_r5_w(uint8_t data);
- DECLARE_READ8_MEMBER(vt1682_2118_prgbank1_r4_r5_r);
- DECLARE_WRITE8_MEMBER(vt1682_2118_prgbank1_r4_r5_w);
+ uint8_t vt1682_2118_prgbank1_r4_r5_r();
+ void vt1682_2118_prgbank1_r4_r5_w(uint8_t data);
- DECLARE_READ8_MEMBER(vt1682_210b_misc_cs_prg0_bank_sel_r);
- DECLARE_WRITE8_MEMBER(vt1682_210b_misc_cs_prg0_bank_sel_w);
+ uint8_t vt1682_210b_misc_cs_prg0_bank_sel_r();
+ void vt1682_210b_misc_cs_prg0_bank_sel_w(uint8_t data);
- DECLARE_WRITE8_MEMBER(vt1682_2105_comr6_tvmodes_w);
+ void vt1682_2105_comr6_tvmodes_w(uint8_t data);
- DECLARE_WRITE8_MEMBER(vt1682_211c_regs_ext2421_w);
+ void vt1682_211c_regs_ext2421_w(uint8_t data);
- DECLARE_READ8_MEMBER(vt1682_2122_dma_dt_addr_7_0_r);
- DECLARE_WRITE8_MEMBER(vt1682_2122_dma_dt_addr_7_0_w);
- DECLARE_READ8_MEMBER(vt1682_2123_dma_dt_addr_15_8_r);
- DECLARE_WRITE8_MEMBER(vt1682_2123_dma_dt_addr_15_8_w);
+ uint8_t vt1682_2122_dma_dt_addr_7_0_r();
+ void vt1682_2122_dma_dt_addr_7_0_w(uint8_t data);
+ uint8_t vt1682_2123_dma_dt_addr_15_8_r();
+ void vt1682_2123_dma_dt_addr_15_8_w(uint8_t data);
- DECLARE_READ8_MEMBER(vt1682_2124_dma_sr_addr_7_0_r);
- DECLARE_WRITE8_MEMBER(vt1682_2124_dma_sr_addr_7_0_w);
- DECLARE_READ8_MEMBER(vt1682_2125_dma_sr_addr_15_8_r);
- DECLARE_WRITE8_MEMBER(vt1682_2125_dma_sr_addr_15_8_w);
+ uint8_t vt1682_2124_dma_sr_addr_7_0_r();
+ void vt1682_2124_dma_sr_addr_7_0_w(uint8_t data);
+ uint8_t vt1682_2125_dma_sr_addr_15_8_r();
+ void vt1682_2125_dma_sr_addr_15_8_w(uint8_t data);
- DECLARE_READ8_MEMBER(vt1682_2126_dma_sr_bank_addr_22_15_r);
- DECLARE_WRITE8_MEMBER(vt1682_2126_dma_sr_bank_addr_22_15_w);
- DECLARE_READ8_MEMBER(vt1682_2128_dma_sr_bank_addr_24_23_r);
- DECLARE_WRITE8_MEMBER(vt1682_2128_dma_sr_bank_addr_24_23_w);
+ uint8_t vt1682_2126_dma_sr_bank_addr_22_15_r();
+ void vt1682_2126_dma_sr_bank_addr_22_15_w(uint8_t data);
+ uint8_t vt1682_2128_dma_sr_bank_addr_24_23_r();
+ void vt1682_2128_dma_sr_bank_addr_24_23_w(uint8_t data);
- DECLARE_READ8_MEMBER(vt1682_2127_dma_status_r);
- DECLARE_WRITE8_MEMBER(vt1682_2127_dma_size_trigger_w);
+ uint8_t vt1682_2127_dma_status_r();
+ void vt1682_2127_dma_size_trigger_w(uint8_t data);
- DECLARE_READ8_MEMBER(vt1682_2106_enable_regs_r);
- DECLARE_WRITE8_MEMBER(vt1682_2106_enable_regs_w);
+ uint8_t vt1682_2106_enable_regs_r();
+ void vt1682_2106_enable_regs_w(uint8_t data);
- DECLARE_READ8_MEMBER(vt1682_212c_prng_r);
- DECLARE_WRITE8_MEMBER(vt1682_212c_prng_seed_w);
+ uint8_t vt1682_212c_prng_r();
+ void vt1682_212c_prng_seed_w(uint8_t data);
virtual void clock_joy2();
- READ8_MEMBER(inteact_212a_send_joy_clock2_r);
+ uint8_t inteact_212a_send_joy_clock2_r();
/* Hacky */
- DECLARE_READ8_MEMBER(soundcpu_irq_vector_hack_r);
- DECLARE_READ8_MEMBER(maincpu_irq_vector_hack_r);
- DECLARE_WRITE8_MEMBER(vt1682_sound_reset_hack_w);
+ uint8_t soundcpu_irq_vector_hack_r(offs_t offset);
+ uint8_t maincpu_irq_vector_hack_r(offs_t offset);
+ void vt1682_sound_reset_hack_w(offs_t offset, uint8_t data);
bool m_scpu_is_in_reset;
/* System Helpers */
@@ -560,30 +560,30 @@ private:
uint8_t m_soundcpu_211a_dacright_7_0;
uint8_t m_soundcpu_211b_dacright_15_8;
- DECLARE_WRITE8_MEMBER(vt1682_soundcpu_211c_reg_irqctrl_w);
+ void vt1682_soundcpu_211c_reg_irqctrl_w(uint8_t data);
- DECLARE_READ8_MEMBER(vt1682_soundcpu_2118_dacleft_7_0_r);
- DECLARE_WRITE8_MEMBER(vt1682_soundcpu_2118_dacleft_7_0_w);
- DECLARE_READ8_MEMBER(vt1682_soundcpu_2119_dacleft_15_8_r);
- DECLARE_WRITE8_MEMBER(vt1682_soundcpu_2119_dacleft_15_8_w);
- DECLARE_READ8_MEMBER(vt1682_soundcpu_211a_dacright_7_0_r);
- DECLARE_WRITE8_MEMBER(vt1682_soundcpu_211a_dacright_7_0_w);
- DECLARE_READ8_MEMBER(vt1682_soundcpu_211b_dacright_15_8_r);
- DECLARE_WRITE8_MEMBER(vt1682_soundcpu_211b_dacright_15_8_w);
+ uint8_t vt1682_soundcpu_2118_dacleft_7_0_r();
+ void vt1682_soundcpu_2118_dacleft_7_0_w(uint8_t data);
+ uint8_t vt1682_soundcpu_2119_dacleft_15_8_r();
+ void vt1682_soundcpu_2119_dacleft_15_8_w(uint8_t data);
+ uint8_t vt1682_soundcpu_211a_dacright_7_0_r();
+ void vt1682_soundcpu_211a_dacright_7_0_w(uint8_t data);
+ uint8_t vt1682_soundcpu_211b_dacright_15_8_r();
+ void vt1682_soundcpu_211b_dacright_15_8_w(uint8_t data);
/* Support */
- DECLARE_WRITE8_MEMBER(vt1682_timer_enable_trampoline_w)
+ void vt1682_timer_enable_trampoline_w(uint8_t data)
{
// this is used for raster interrpt effects, despite not being a scanline timer, so knowing when it triggers is useful, so trampoline it to avoid passing m_screen to the device
LOGMASKED(LOG_OTHER, "%s: vt1682_timer_enable_trampoline_w: %02x @ position y%d, x%d\n", machine().describe_context(), data, m_screen->vpos(), m_screen->hpos());
- m_system_timer_dev->vt1682_timer_enable_w(space, offset, data);
+ m_system_timer_dev->vt1682_timer_enable_w(data);
};
- DECLARE_WRITE8_MEMBER(vt1682_timer_preload_15_8_trampoline_w)
+ void vt1682_timer_preload_15_8_trampoline_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_timer_preload_15_8_trampoline_w: %02x @ position y%d, x%d\n", machine().describe_context(), data, m_screen->vpos(), m_screen->hpos());
- m_system_timer_dev->vt1682_timer_preload_15_8_w(space, offset, data);
+ m_system_timer_dev->vt1682_timer_preload_15_8_w(data);
};
@@ -592,8 +592,8 @@ private:
uint32_t translate_address_4000_to_7fff(uint16_t address);
uint32_t translate_address_8000_to_ffff(uint16_t address);
- DECLARE_READ8_MEMBER(rom_4000_to_7fff_r);
- DECLARE_READ8_MEMBER(rom_8000_to_ffff_r);
+ uint8_t rom_4000_to_7fff_r(offs_t offset);
+ uint8_t rom_8000_to_ffff_r(offs_t offset);
TIMER_DEVICE_CALLBACK_MEMBER(scanline);
TIMER_DEVICE_CALLBACK_MEMBER(line_render_start);
@@ -944,7 +944,7 @@ void vt_vt1682_state::machine_reset()
/*
-Address tranlsation
+Address translation
----------------------------------------------------------------
@@ -1174,13 +1174,13 @@ uint32_t vt_vt1682_state::translate_address_8000_to_ffff(uint16_t address)
return realaddress;
}
-READ8_MEMBER(vt_vt1682_state::rom_4000_to_7fff_r)
+uint8_t vt_vt1682_state::rom_4000_to_7fff_r(offs_t offset)
{
const uint32_t address = translate_address_4000_to_7fff(offset + 0x4000);
return m_fullrom->read8(address);
}
-READ8_MEMBER(vt_vt1682_state::rom_8000_to_ffff_r)
+uint8_t vt_vt1682_state::rom_8000_to_ffff_r(offs_t offset)
{
const uint32_t address = translate_address_8000_to_ffff(offset + 0x8000);
return m_fullrom->read8(address);
@@ -1203,14 +1203,14 @@ READ8_MEMBER(vt_vt1682_state::rom_8000_to_ffff_r)
0x01 - NMI_EN
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2000_r)
+uint8_t vt_vt1682_state::vt1682_2000_r()
{
uint8_t ret = m_2000;
LOGMASKED(LOG_OTHER, "%s: vt1682_2000_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2000_w)
+void vt_vt1682_state::vt1682_2000_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2000_w writing: %02x (Capture:%1x Slave:%1x NMI_Enable:%1x)\n", machine().describe_context(), data, (data & 0x10)>>4, (data & 0x08)>>3, (data & 0x01)>>0 );
m_2000 = data;
@@ -1240,7 +1240,7 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2000_w)
0x01 - BK INI (blank bg on left 8 pixels)
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2001_vblank_r)
+uint8_t vt_vt1682_state::vt1682_2001_vblank_r()
{
uint8_t ret = 0x00;
@@ -1254,7 +1254,7 @@ READ8_MEMBER(vt_vt1682_state::vt1682_2001_vblank_r)
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2001_w)
+void vt_vt1682_state::vt1682_2001_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2001_w writing: %02x (ext_clk_div:%1x sp_ini:%1x bk_ini:%1x)\n", machine().describe_context(), data,
(data & 0x0c) >> 2, (data & 0x02) >> 1, (data & 0x01) >> 0);
@@ -1276,14 +1276,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2001_w)
0x01 - SPRAM ADDR:0
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2002_sprramaddr_2_0_r)
+uint8_t vt_vt1682_state::vt1682_2002_sprramaddr_2_0_r()
{
uint8_t ret = m_2002_sprramaddr_2_0;
LOGMASKED(LOG_OTHER, "%s: vt1682_2002_sprramaddr_2_0_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2002_sprramaddr_2_0_w)
+void vt_vt1682_state::vt1682_2002_sprramaddr_2_0_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2002_sprramaddr_2_0_w writing: %02x\n", machine().describe_context(), data);
m_2002_sprramaddr_2_0 = data & 0x07;
@@ -1302,14 +1302,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2002_sprramaddr_2_0_w)
0x01 - SPRAM ADDR:3
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2003_sprramaddr_10_3_r)
+uint8_t vt_vt1682_state::vt1682_2003_sprramaddr_10_3_r()
{
uint8_t ret = m_2003_sprramaddr_10_3;
LOGMASKED(LOG_OTHER, "%s: vt1682_2003_sprramaddr_10_3_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2003_sprramaddr_10_3_w)
+void vt_vt1682_state::vt1682_2003_sprramaddr_10_3_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2003_sprramaddr_10_3_w writing: %02x\n", machine().describe_context(), data);
m_2003_sprramaddr_10_3 = data;
@@ -1328,7 +1328,7 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2003_sprramaddr_10_3_w)
0x01 - SPRAM DATA:0
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2004_sprram_data_r)
+uint8_t vt_vt1682_state::vt1682_2004_sprram_data_r()
{
uint16_t spriteram_address = get_spriteram_addr();
uint8_t ret = m_spriteram->read8(spriteram_address);
@@ -1338,7 +1338,7 @@ READ8_MEMBER(vt_vt1682_state::vt1682_2004_sprram_data_r)
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2004_sprram_data_w)
+void vt_vt1682_state::vt1682_2004_sprram_data_w(uint8_t data)
{
uint16_t spriteram_address = get_spriteram_addr();
m_spriteram->write8(spriteram_address, data);
@@ -1361,14 +1361,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2004_sprram_data_w)
0x01 - VRAM ADDR:0
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2005_vramaddr_7_0_r)
+uint8_t vt_vt1682_state::vt1682_2005_vramaddr_7_0_r()
{
uint8_t ret = m_2005_vramaddr_7_0;
LOGMASKED(LOG_OTHER, "%s: vt1682_2005_vramaddr_7_0_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2005_vramaddr_7_0_w)
+void vt_vt1682_state::vt1682_2005_vramaddr_7_0_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2005_vramaddr_7_0_w writing: %02x\n", machine().describe_context(), data);
m_2005_vramaddr_7_0 = data;
@@ -1387,14 +1387,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2005_vramaddr_7_0_w)
0x01 - VRAM ADDR:8
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2006_vramaddr_15_8_r)
+uint8_t vt_vt1682_state::vt1682_2006_vramaddr_15_8_r()
{
uint8_t ret = m_2006_vramaddr_15_8;
LOGMASKED(LOG_OTHER, "%s: vt1682_2006_vramaddr_15_8 returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2006_vramaddr_15_8_w)
+void vt_vt1682_state::vt1682_2006_vramaddr_15_8_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2006_vramaddr_15_8 writing: %02x\n", machine().describe_context(), data);
m_2006_vramaddr_15_8 = data;
@@ -1414,7 +1414,7 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2006_vramaddr_15_8_w)
0x01 - VRAM DATA:0
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2007_vram_data_r)
+uint8_t vt_vt1682_state::vt1682_2007_vram_data_r()
{
uint16_t vram_address = get_vram_addr();
uint8_t ret = m_vram->read8(vram_address);
@@ -1424,7 +1424,7 @@ READ8_MEMBER(vt_vt1682_state::vt1682_2007_vram_data_r)
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2007_vram_data_w)
+void vt_vt1682_state::vt1682_2007_vram_data_w(uint8_t data)
{
uint16_t vram_address = get_vram_addr();
m_vram->write8(vram_address, data);
@@ -1447,14 +1447,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2007_vram_data_w)
0x01 - LCD VS DELAY
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2008_lcd_vs_delay_r)
+uint8_t vt_vt1682_state::vt1682_2008_lcd_vs_delay_r()
{
uint8_t ret = m_2008_lcd_vs_delay;
LOGMASKED(LOG_OTHER, "%s: vt1682_2008_lcd_vs_delay_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2008_lcd_vs_delay_w)
+void vt_vt1682_state::vt1682_2008_lcd_vs_delay_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2008_lcd_vs_delay_w writing: %02x\n", machine().describe_context(), data);
m_2008_lcd_vs_delay = data;
@@ -1473,14 +1473,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2008_lcd_vs_delay_w)
0x01 - LCD HS DELAY:0
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2009_lcd_hs_delay_7_0_r)
+uint8_t vt_vt1682_state::vt1682_2009_lcd_hs_delay_7_0_r()
{
uint8_t ret = m_2009_lcd_hs_delay_7_0;
LOGMASKED(LOG_OTHER, "%s: vt1682_2009_lcd_hs_delay_7_0_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2009_lcd_hs_delay_7_0_w)
+void vt_vt1682_state::vt1682_2009_lcd_hs_delay_7_0_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2009_lcd_hs_delay_7_0_w writing: %02x\n", machine().describe_context(), data);
m_2009_lcd_hs_delay_7_0 = data;
@@ -1499,14 +1499,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2009_lcd_hs_delay_7_0_w)
0x01 - LCD FR DELAY:0
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_200a_lcd_fr_delay_7_0_r)
+uint8_t vt_vt1682_state::vt1682_200a_lcd_fr_delay_7_0_r()
{
uint8_t ret = m_200a_lcd_fr_delay_7_0;
LOGMASKED(LOG_OTHER, "%s: vt1682_200a_lcd_fr_delay_7_0_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_200a_lcd_fr_delay_7_0_w)
+void vt_vt1682_state::vt1682_200a_lcd_fr_delay_7_0_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_200a_lcd_fr_delay_7_0_w writing: %02x\n", machine().describe_context(), data);
m_200a_lcd_fr_delay_7_0 = data;
@@ -1526,14 +1526,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_200a_lcd_fr_delay_7_0_w)
0x01 - LCD HS:8
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_200b_misc_vregs0_r)
+uint8_t vt_vt1682_state::vt1682_200b_misc_vregs0_r()
{
uint8_t ret = m_200b_misc_vregs0;
LOGMASKED(LOG_OTHER, "%s: vt1682_200b_misc_vregs0_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_200b_misc_vregs0_w)
+void vt_vt1682_state::vt1682_200b_misc_vregs0_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_200b_misc_vregs0_w writing: %02x\n", machine().describe_context(), data);
m_200b_misc_vregs0 = data;
@@ -1552,14 +1552,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_200b_misc_vregs0_w)
0x01 - LCD MODE
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_200c_misc_vregs1_r)
+uint8_t vt_vt1682_state::vt1682_200c_misc_vregs1_r()
{
uint8_t ret = m_200c_misc_vregs1;
LOGMASKED(LOG_OTHER, "%s: vt1682_200c_misc_vregs1_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_200c_misc_vregs1_w)
+void vt_vt1682_state::vt1682_200c_misc_vregs1_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_200c_misc_vregs1_w writing: %02x\n", machine().describe_context(), data);
m_200c_misc_vregs1 = data;
@@ -1578,14 +1578,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_200c_misc_vregs1_w)
0x01 - Even Line Color
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_200d_misc_vregs2_r)
+uint8_t vt_vt1682_state::vt1682_200d_misc_vregs2_r()
{
uint8_t ret = m_200d_misc_vregs2;
LOGMASKED(LOG_OTHER, "%s: vt1682_200d_misc_vregs2_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_200d_misc_vregs2_w)
+void vt_vt1682_state::vt1682_200d_misc_vregs2_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_200d_misc_vregs2_w writing: %02x\n", machine().describe_context(), data);
m_200d_misc_vregs2 = data;
@@ -1605,14 +1605,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_200d_misc_vregs2_w)
0x01 - Palette 1 Out Sel 'SB5' /- 0 = output Palette 1 Disable, 1 = output Palette 1 to LCD only, 2 = Output Palette 1 to TV only, 3 = Output Palette 1 to both
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_200e_blend_pal_sel_r)
+uint8_t vt_vt1682_state::vt1682_200e_blend_pal_sel_r()
{
uint8_t ret = m_200e_blend_pal_sel;
LOGMASKED(LOG_OTHER, "%s: vt1682_200e_blend_pal_sel_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_200e_blend_pal_sel_w)
+void vt_vt1682_state::vt1682_200e_blend_pal_sel_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_200e_blend_pal_sel_w writing: %02x\n", machine().describe_context(), data);
m_200e_blend_pal_sel = data;
@@ -1631,14 +1631,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_200e_blend_pal_sel_w)
0x01 - Bk1 Palette Select 'BK1 SB1'
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_200f_bk_pal_sel_r)
+uint8_t vt_vt1682_state::vt1682_200f_bk_pal_sel_r()
{
uint8_t ret = m_200f_bk_pal_sel;
LOGMASKED(LOG_OTHER, "%s: vt1682_200f_bk_pal_sel_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_200f_bk_pal_sel_w)
+void vt_vt1682_state::vt1682_200f_bk_pal_sel_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_200f_bk_pal_sel_w writing: %02x\n", machine().describe_context(), data);
m_200f_bk_pal_sel = data;
@@ -1657,14 +1657,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_200f_bk_pal_sel_w)
0x01 - BK1X:0
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2010_bk1_xscroll_7_0_r)
+uint8_t vt_vt1682_state::vt1682_2010_bk1_xscroll_7_0_r()
{
uint8_t ret = m_xscroll_7_0_bk[0];
LOGMASKED(LOG_OTHER, "%s: vt1682_2010_bk1_xscroll_7_0_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2010_bk1_xscroll_7_0_w)
+void vt_vt1682_state::vt1682_2010_bk1_xscroll_7_0_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2010_bk1_xscroll_7_0_w writing: %02x\n", machine().describe_context(), data);
m_xscroll_7_0_bk[0] = data;
@@ -1683,14 +1683,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2010_bk1_xscroll_7_0_w)
0x01 - BK1Y:0
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2011_bk1_yscoll_7_0_r)
+uint8_t vt_vt1682_state::vt1682_2011_bk1_yscoll_7_0_r()
{
uint8_t ret = m_yscroll_7_0_bk[0];
LOGMASKED(LOG_OTHER, "%s: vt1682_2011_bk1_yscoll_7_0_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2011_bk1_yscoll_7_0_w)
+void vt_vt1682_state::vt1682_2011_bk1_yscoll_7_0_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2011_bk1_yscoll_7_0_w writing: %02x\n", machine().describe_context(), data);
m_yscroll_7_0_bk[0] = data;
@@ -1710,7 +1710,7 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2011_bk1_yscoll_7_0_w)
0x01 - BK1X:8
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2012_bk1_scroll_control_r)
+uint8_t vt_vt1682_state::vt1682_2012_bk1_scroll_control_r()
{
uint8_t ret = m_scroll_control_bk[0];
LOGMASKED(LOG_OTHER, "%s: vt1682_2012_bk1_scroll_control_r returning: %02x\n", machine().describe_context(), ret);
@@ -1718,7 +1718,7 @@ READ8_MEMBER(vt_vt1682_state::vt1682_2012_bk1_scroll_control_r)
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2012_bk1_scroll_control_w)
+void vt_vt1682_state::vt1682_2012_bk1_scroll_control_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2012_bk1_scroll_control_w writing: %02x (hclr: %1x page_layout:%1x ymsb:%1x xmsb:%1x)\n", machine().describe_context(), data,
@@ -1741,14 +1741,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2012_bk1_scroll_control_w)
0x01 - BK1 Size
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2013_bk1_main_control_r)
+uint8_t vt_vt1682_state::vt1682_2013_bk1_main_control_r()
{
uint8_t ret = m_main_control_bk[0];
LOGMASKED(LOG_OTHER, "%s: vt1682_2013_bk1_main_control_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2013_bk1_main_control_w)
+void vt_vt1682_state::vt1682_2013_bk1_main_control_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2013_bk1_main_control_w writing: %02x (enable:%01x palette:%01x depth:%01x bpp:%01x linemode:%01x tilesize:%01x)\n", machine().describe_context(), data,
(data & 0x80) >> 7, (data & 0x40) >> 6, (data & 0x30) >> 4, (data & 0x0c) >> 2, (data & 0x02) >> 1, (data & 0x01) >> 0 );
@@ -1770,14 +1770,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2013_bk1_main_control_w)
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2014_bk2_xscroll_7_0_r)
+uint8_t vt_vt1682_state::vt1682_2014_bk2_xscroll_7_0_r()
{
uint8_t ret = m_xscroll_7_0_bk[1];
LOGMASKED(LOG_OTHER, "%s: vt1682_2014_bk2_xscroll_7_0_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2014_bk2_xscroll_7_0_w)
+void vt_vt1682_state::vt1682_2014_bk2_xscroll_7_0_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2014_bk2_xscroll_7_0_w writing: %02x\n", machine().describe_context(), data);
m_xscroll_7_0_bk[1] = data;
@@ -1796,14 +1796,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2014_bk2_xscroll_7_0_w)
0x01 - BK2Y:0
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2015_bk2_yscoll_7_0_r)
+uint8_t vt_vt1682_state::vt1682_2015_bk2_yscoll_7_0_r()
{
uint8_t ret = m_yscroll_7_0_bk[1];
LOGMASKED(LOG_OTHER, "%s: vt1682_2015_bk2_yscoll_7_0_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2015_bk2_yscoll_7_0_w)
+void vt_vt1682_state::vt1682_2015_bk2_yscoll_7_0_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2015_bk2_yscoll_7_0_w writing: %02x\n", machine().describe_context(), data);
m_yscroll_7_0_bk[1] = data;
@@ -1823,7 +1823,7 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2015_bk2_yscoll_7_0_w)
0x01 - BK2X:8
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2016_bk2_scroll_control_r)
+uint8_t vt_vt1682_state::vt1682_2016_bk2_scroll_control_r()
{
uint8_t ret = m_scroll_control_bk[1];
LOGMASKED(LOG_OTHER, "%s: vt1682_2016_bk2_scroll_control_r returning: %02x\n", machine().describe_context(), ret);
@@ -1831,7 +1831,7 @@ READ8_MEMBER(vt_vt1682_state::vt1682_2016_bk2_scroll_control_r)
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2016_bk2_scroll_control_w)
+void vt_vt1682_state::vt1682_2016_bk2_scroll_control_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2016_bk2_scroll_control_w writing: %02x ((invalid): %1x page_layout:%1x ymsb:%1x xmsb:%1x)\n", machine().describe_context(), data,
(data & 0x10) >> 4, (data & 0x0c) >> 2, (data & 0x02) >> 1, (data & 0x01) >> 0);
@@ -1853,14 +1853,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2016_bk2_scroll_control_w)
0x01 - BK2 Size
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2017_bk2_main_control_r)
+uint8_t vt_vt1682_state::vt1682_2017_bk2_main_control_r()
{
uint8_t ret = m_main_control_bk[1];
LOGMASKED(LOG_OTHER, "%s: vt1682_2017_bk2_main_control_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2017_bk2_main_control_w)
+void vt_vt1682_state::vt1682_2017_bk2_main_control_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2017_bk2_main_control_w writing: %02x (enable:%01x palette:%01x depth:%01x bpp:%01x (invalid):%01x tilesize:%01x)\n", machine().describe_context(), data,
(data & 0x80) >> 7, (data & 0x40) >> 6, (data & 0x30) >> 4, (data & 0x0c) >> 2, (data & 0x02) >> 1, (data & 0x01) >> 0 );
@@ -1882,14 +1882,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2017_bk2_main_control_w)
0x01 - SP SIZE
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2018_spregs_r)
+uint8_t vt_vt1682_state::vt1682_2018_spregs_r()
{
uint8_t ret = m_2018_spregs;
LOGMASKED(LOG_OTHER, "%s: vt1682_2018_spregs_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2018_spregs_w)
+void vt_vt1682_state::vt1682_2018_spregs_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2018_spregs_w writing: %02x\n", machine().describe_context(), data);
m_2018_spregs = data;
@@ -1908,14 +1908,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2018_spregs_w)
0x01 - BK1 Gain
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2019_bkgain_r)
+uint8_t vt_vt1682_state::vt1682_2019_bkgain_r()
{
uint8_t ret = m_2019_bkgain;
LOGMASKED(LOG_OTHER, "%s: vt1682_2019_bkgain_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2019_bkgain_w)
+void vt_vt1682_state::vt1682_2019_bkgain_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2019_bkgain_w writing: %02x\n", machine().describe_context(), data);
m_2019_bkgain = data;
@@ -1935,14 +1935,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2019_bkgain_w)
0x01 - SP SEGMENT:0
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_201a_sp_segment_7_0_r)
+uint8_t vt_vt1682_state::vt1682_201a_sp_segment_7_0_r()
{
uint8_t ret = m_201a_sp_segment_7_0;
LOGMASKED(LOG_OTHER, "%s: vt1682_201a_sp_segment_7_0_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_201a_sp_segment_7_0_w)
+void vt_vt1682_state::vt1682_201a_sp_segment_7_0_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_201a_sp_segment_7_0_w writing: %02x\n", machine().describe_context(), data);
m_201a_sp_segment_7_0 = data;
@@ -1961,14 +1961,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_201a_sp_segment_7_0_w)
0x01 - SP SEGMENT:8
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_201b_sp_segment_11_8_r)
+uint8_t vt_vt1682_state::vt1682_201b_sp_segment_11_8_r()
{
uint8_t ret = m_201b_sp_segment_11_8;
LOGMASKED(LOG_OTHER, "%s: vt1682_201b_sp_segment_11_8_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_201b_sp_segment_11_8_w)
+void vt_vt1682_state::vt1682_201b_sp_segment_11_8_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_201b_sp_segment_11_8_w writing: %02x\n", machine().describe_context(), data);
m_201b_sp_segment_11_8 = data & 0x0f;
@@ -1988,14 +1988,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_201b_sp_segment_11_8_w)
0x01 - BK1 SEGMENT:0
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_201c_bk1_segment_7_0_r)
+uint8_t vt_vt1682_state::vt1682_201c_bk1_segment_7_0_r()
{
uint8_t ret = m_segment_7_0_bk[0];
LOGMASKED(LOG_OTHER, "%s: vt1682_201c_bk1_segment_7_0_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_201c_bk1_segment_7_0_w)
+void vt_vt1682_state::vt1682_201c_bk1_segment_7_0_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_201c_bk1_segment_7_0_w writing: %02x\n", machine().describe_context(), data);
m_segment_7_0_bk[0] = data;
@@ -2014,14 +2014,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_201c_bk1_segment_7_0_w)
0x01 - BK1 SEGMENT:8
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_201d_bk1_segment_11_8_r)
+uint8_t vt_vt1682_state::vt1682_201d_bk1_segment_11_8_r()
{
uint8_t ret = m_segment_11_8_bk[0];
LOGMASKED(LOG_OTHER, "%s: vt1682_201d_bk1_segment_11_8_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_201d_bk1_segment_11_8_w)
+void vt_vt1682_state::vt1682_201d_bk1_segment_11_8_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_201d_bk1_segment_11_8_w writing: %02x\n", machine().describe_context(), data);
m_segment_11_8_bk[0] = data & 0x0f;
@@ -2041,14 +2041,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_201d_bk1_segment_11_8_w)
0x01 - BK2 SEGMENT:0
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_201e_bk2_segment_7_0_r)
+uint8_t vt_vt1682_state::vt1682_201e_bk2_segment_7_0_r()
{
uint8_t ret = m_segment_7_0_bk[1];
LOGMASKED(LOG_OTHER, "%s: vt1682_201e_bk2_segment_7_0_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_201e_bk2_segment_7_0_w)
+void vt_vt1682_state::vt1682_201e_bk2_segment_7_0_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_201e_bk2_segment_7_0_w writing: %02x\n", machine().describe_context(), data);
m_segment_7_0_bk[1] = data;
@@ -2067,14 +2067,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_201e_bk2_segment_7_0_w)
0x01 - BK2 SEGMENT:8
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_201f_bk2_segment_11_8_r)
+uint8_t vt_vt1682_state::vt1682_201f_bk2_segment_11_8_r()
{
uint8_t ret = m_segment_11_8_bk[1];
LOGMASKED(LOG_OTHER, "%s: vt1682_201f_bk2_segment_11_8_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_201f_bk2_segment_11_8_w)
+void vt_vt1682_state::vt1682_201f_bk2_segment_11_8_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_201f_bk2_segment_11_8_w writing: %02x\n", machine().describe_context(), data);
m_segment_11_8_bk[1] = data & 0x0f;
@@ -2093,14 +2093,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_201f_bk2_segment_11_8_w)
0x01 - Scroll Bank
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2020_bk_linescroll_r)
+uint8_t vt_vt1682_state::vt1682_2020_bk_linescroll_r()
{
uint8_t ret = m_2020_bk_linescroll;
LOGMASKED(LOG_OTHER, "%s: vt1682_2020_bk_linescroll_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2020_bk_linescroll_w)
+void vt_vt1682_state::vt1682_2020_bk_linescroll_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2020_bk_linescroll_w writing: %02x\n", machine().describe_context(), data);
m_2020_bk_linescroll = data;
@@ -2122,14 +2122,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2020_bk_linescroll_w)
0x01 - Luminance_offset
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2021_lum_offset_r)
+uint8_t vt_vt1682_state::vt1682_2021_lum_offset_r()
{
uint8_t ret = m_2021_lum_offset;
LOGMASKED(LOG_OTHER, "%s: vt1682_2021_lum_offset_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2021_lum_offset_w)
+void vt_vt1682_state::vt1682_2021_lum_offset_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2021_lum_offset_w writing: %02x\n", machine().describe_context(), data);
m_2021_lum_offset = data;
@@ -2149,14 +2149,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2021_lum_offset_w)
0x01 - Saturation
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2022_saturation_misc_r)
+uint8_t vt_vt1682_state::vt1682_2022_saturation_misc_r()
{
uint8_t ret = m_2022_saturation_misc;
LOGMASKED(LOG_OTHER, "%s: vt1682_2022_saturation_misc_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2022_saturation_misc_w)
+void vt_vt1682_state::vt1682_2022_saturation_misc_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2022_saturation_misc_w writing: %02x\n", machine().describe_context(), data);
m_2022_saturation_misc = data;
@@ -2175,14 +2175,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2022_saturation_misc_w)
0x01 - Light Gun Reset
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2023_lightgun_reset_r)
+uint8_t vt_vt1682_state::vt1682_2023_lightgun_reset_r()
{
uint8_t ret = m_2023_lightgun_reset;
LOGMASKED(LOG_OTHER, "%s: vt1682_2023_lightgun_reset_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2023_lightgun_reset_w)
+void vt_vt1682_state::vt1682_2023_lightgun_reset_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2023_lightgun_reset_w writing: %02x\n", machine().describe_context(), data);
m_2023_lightgun_reset = data;
@@ -2201,14 +2201,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2023_lightgun_reset_w)
0x01 - Light Gun 1 Y
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2024_lightgun1_y_r)
+uint8_t vt_vt1682_state::vt1682_2024_lightgun1_y_r()
{
uint8_t ret = m_2024_lightgun1_y;
LOGMASKED(LOG_OTHER, "%s: vt1682_2024_lightgun1_y_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2024_lightgun1_y_w)
+void vt_vt1682_state::vt1682_2024_lightgun1_y_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2024_lightgun1_y_w writing: %02x\n", machine().describe_context(), data);
m_2024_lightgun1_y = data;
@@ -2227,14 +2227,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2024_lightgun1_y_w)
0x01 - Light Gun 1 X
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2025_lightgun1_x_r)
+uint8_t vt_vt1682_state::vt1682_2025_lightgun1_x_r()
{
uint8_t ret = m_2025_lightgun1_x;
LOGMASKED(LOG_OTHER, "%s: vt1682_2025_lightgun1_x_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2025_lightgun1_x_w)
+void vt_vt1682_state::vt1682_2025_lightgun1_x_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2025_lightgun1_x_w writing: %02x\n", machine().describe_context(), data);
m_2025_lightgun1_x = data;
@@ -2253,14 +2253,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2025_lightgun1_x_w)
0x01 - Light Gun 2 Y
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2026_lightgun2_y_r)
+uint8_t vt_vt1682_state::vt1682_2026_lightgun2_y_r()
{
uint8_t ret = m_2026_lightgun2_y;
LOGMASKED(LOG_OTHER, "%s: vt1682_2026_lightgun2_y_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2026_lightgun2_y_w)
+void vt_vt1682_state::vt1682_2026_lightgun2_y_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2026_lightgun2_y_w writing: %02x\n", machine().describe_context(), data);
m_2026_lightgun2_y = data;
@@ -2280,14 +2280,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2026_lightgun2_y_w)
0x01 - Light Gun 2 X
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2027_lightgun2_x_r)
+uint8_t vt_vt1682_state::vt1682_2027_lightgun2_x_r()
{
uint8_t ret = m_2027_lightgun2_x;
LOGMASKED(LOG_OTHER, "%s: vt1682_2027_lightgun2_x_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2027_lightgun2_x_w)
+void vt_vt1682_state::vt1682_2027_lightgun2_x_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2027_lightgun2_x_w writing: %02x\n", machine().describe_context(), data);
m_2027_lightgun2_x = data;
@@ -2307,14 +2307,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2027_lightgun2_x_w)
0x01 - CCIR Y
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2028_r)
+uint8_t vt_vt1682_state::vt1682_2028_r()
{
uint8_t ret = m_2028;
LOGMASKED(LOG_OTHER, "%s: vt1682_2028_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2028_w)
+void vt_vt1682_state::vt1682_2028_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2028_w writing: %02x\n", machine().describe_context(), data);
m_2028 = data;
@@ -2333,14 +2333,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2028_w)
0x01 - CCIR X
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2029_r)
+uint8_t vt_vt1682_state::vt1682_2029_r()
{
uint8_t ret = m_2029;
LOGMASKED(LOG_OTHER, "%s: vt1682_2029_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2029_w)
+void vt_vt1682_state::vt1682_2029_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2029_w writing: %02x\n", machine().describe_context(), data);
m_2029 = data;
@@ -2361,14 +2361,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2029_w)
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_202a_r)
+uint8_t vt_vt1682_state::vt1682_202a_r()
{
uint8_t ret = m_202a;
LOGMASKED(LOG_OTHER, "%s: vt1682_202a_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_202a_w)
+void vt_vt1682_state::vt1682_202a_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_202a_w writing: %02x\n", machine().describe_context(), data);
m_202a = data;
@@ -2389,14 +2389,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_202a_w)
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_202b_r)
+uint8_t vt_vt1682_state::vt1682_202b_r()
{
uint8_t ret = m_202b;
LOGMASKED(LOG_OTHER, "%s: vt1682_202b_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_202b_w)
+void vt_vt1682_state::vt1682_202b_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_202b_w writing: %02x\n", machine().describe_context(), data);
m_202b = data;
@@ -2420,14 +2420,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_202b_w)
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_202e_r)
+uint8_t vt_vt1682_state::vt1682_202e_r()
{
uint8_t ret = m_202e;
LOGMASKED(LOG_OTHER, "%s: vt1682_202e_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_202e_w)
+void vt_vt1682_state::vt1682_202e_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_202e_w writing: %02x\n", machine().describe_context(), data);
m_202e = data;
@@ -2450,14 +2450,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_202e_w)
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2030_r)
+uint8_t vt_vt1682_state::vt1682_2030_r()
{
uint8_t ret = m_2030;
LOGMASKED(LOG_OTHER, "%s: vt1682_2030_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2030_w)
+void vt_vt1682_state::vt1682_2030_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2030_w writing: %02x\n", machine().describe_context(), data);
m_2030 = data;
@@ -2477,14 +2477,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2030_w)
0x01 - R DAC OUT:0
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2031_red_dac_r)
+uint8_t vt_vt1682_state::vt1682_2031_red_dac_r()
{
uint8_t ret = m_2031_red_dac;
LOGMASKED(LOG_OTHER, "%s: vt1682_2031_red_dac_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2031_red_dac_w)
+void vt_vt1682_state::vt1682_2031_red_dac_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2031_red_dac_w writing: %02x\n", machine().describe_context(), data);
m_2031_red_dac = data;
@@ -2503,14 +2503,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2031_red_dac_w)
0x01 - G DAC OUT:0
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2032_green_dac_r)
+uint8_t vt_vt1682_state::vt1682_2032_green_dac_r()
{
uint8_t ret = m_2032_green_dac;
LOGMASKED(LOG_OTHER, "%s: vt1682_2032_green_dac_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2032_green_dac_w)
+void vt_vt1682_state::vt1682_2032_green_dac_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2032_green_dac_w writing: %02x\n", machine().describe_context(), data);
m_2032_green_dac = data;
@@ -2529,14 +2529,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2032_green_dac_w)
0x01 - B DAC OUT:0
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2033_blue_dac_r)
+uint8_t vt_vt1682_state::vt1682_2033_blue_dac_r()
{
uint8_t ret = m_2033_blue_dac;
LOGMASKED(LOG_OTHER, "%s: vt1682_2033_blue_dac_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2033_blue_dac_w)
+void vt_vt1682_state::vt1682_2033_blue_dac_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2033_blue_dac_w writing: %02x\n", machine().describe_context(), data);
m_2033_blue_dac = data;
@@ -2560,14 +2560,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2033_blue_dac_w)
0x01 - Program Bank 1 Register 3
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2100_prgbank1_r3_r)
+uint8_t vt_vt1682_state::vt1682_2100_prgbank1_r3_r()
{
uint8_t ret = m_2100_prgbank1_r3;
LOGMASKED(LOG_OTHER, "%s: vt1682_2100_prgbank1_r3_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2100_prgbank1_r3_w)
+void vt_vt1682_state::vt1682_2100_prgbank1_r3_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2100_prgbank1_r3_w writing: %02x (4-bits)\n", machine().describe_context(), data);
m_2100_prgbank1_r3 = data;
@@ -2595,7 +2595,7 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2100_prgbank1_r3_w)
*/
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2105_comr6_tvmodes_w)
+void vt_vt1682_state::vt1682_2105_comr6_tvmodes_w(uint8_t data)
{
// COMR6 is used for banking
LOGMASKED(LOG_OTHER, "%s: vt1682_2105_comr6_tvmodes_w writing: %02x\n", machine().describe_context(), data);
@@ -2617,14 +2617,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2105_comr6_tvmodes_w)
0x01 - LCD ON (LCD display controller enable)
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2106_enable_regs_r)
+uint8_t vt_vt1682_state::vt1682_2106_enable_regs_r()
{
uint8_t ret = m_2106_enable_reg;
LOGMASKED(LOG_OTHER, "%s: vt1682_2106_enable_regs_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2106_enable_regs_w)
+void vt_vt1682_state::vt1682_2106_enable_regs_w(uint8_t data)
{
// COMR6 is used for banking
LOGMASKED(LOG_OTHER, "%s: vt1682_2106_enable_regs_w writing: %02x (scpurn:%1x scpuon:%1x spion:%1x uarton:%1x tvon:%1x lcdon:%1x)\n", machine().describe_context().c_str(), data,
@@ -2657,14 +2657,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2106_enable_regs_w)
0x01 - Program Bank 0 Register 0
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2107_prgbank0_r0_r)
+uint8_t vt_vt1682_state::vt1682_2107_prgbank0_r0_r()
{
uint8_t ret = m_2107_prgbank0_r0;
LOGMASKED(LOG_OTHER, "%s: vt1682_2107_prgbank0_r0_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2107_prgbank0_r0_w)
+void vt_vt1682_state::vt1682_2107_prgbank0_r0_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2107_prgbank0_r0_w writing: %02x\n", machine().describe_context(), data);
m_2107_prgbank0_r0 = data;
@@ -2684,14 +2684,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2107_prgbank0_r0_w)
0x01 - Program Bank 0 Register 1
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2108_prgbank0_r1_r)
+uint8_t vt_vt1682_state::vt1682_2108_prgbank0_r1_r()
{
uint8_t ret = m_2108_prgbank0_r1;
LOGMASKED(LOG_OTHER, "%s: vt1682_2108_prgbank0_r1_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2108_prgbank0_r1_w)
+void vt_vt1682_state::vt1682_2108_prgbank0_r1_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2108_prgbank0_r1_w writing: %02x\n", machine().describe_context(), data);
m_2108_prgbank0_r1 = data;
@@ -2713,14 +2713,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2108_prgbank0_r1_w)
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2109_prgbank0_r2_r)
+uint8_t vt_vt1682_state::vt1682_2109_prgbank0_r2_r()
{
uint8_t ret = m_2109_prgbank0_r2;
LOGMASKED(LOG_OTHER, "%s: vt1682_2109_prgbank0_r2_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2109_prgbank0_r2_w)
+void vt_vt1682_state::vt1682_2109_prgbank0_r2_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2109_prgbank0_r2_w writing: %02x\n", machine().describe_context(), data);
m_2109_prgbank0_r2 = data;
@@ -2740,14 +2740,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2109_prgbank0_r2_w)
0x01 - Program Bank 0 Register 3
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_210a_prgbank0_r3_r)
+uint8_t vt_vt1682_state::vt1682_210a_prgbank0_r3_r()
{
uint8_t ret = m_210a_prgbank0_r3;
LOGMASKED(LOG_OTHER, "%s: vt1682_210a_prgbank0_r3_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_210a_prgbank0_r3_w)
+void vt_vt1682_state::vt1682_210a_prgbank0_r3_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_210a_prgbank0_r3_w writing: %02x\n", machine().describe_context(), data);
m_210a_prgbank0_r3 = data;
@@ -2767,14 +2767,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_210a_prgbank0_r3_w)
0x01 - Program Bank 0 Select
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_210b_misc_cs_prg0_bank_sel_r)
+uint8_t vt_vt1682_state::vt1682_210b_misc_cs_prg0_bank_sel_r()
{
uint8_t ret = m_210b_misc_cs_prg0_bank_sel;
LOGMASKED(LOG_OTHER, "%s: vt1682_210b_misc_cs_prg0_bank_sel_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_210b_misc_cs_prg0_bank_sel_w)
+void vt_vt1682_state::vt1682_210b_misc_cs_prg0_bank_sel_w(uint8_t data)
{
// PQ2 Enable is also used for ROM banking along with Program Bank 0 select
uint32_t clock = m_maincpu->clock();
@@ -2818,14 +2818,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_210b_misc_cs_prg0_bank_sel_w)
0x01 - Program Bank 1 Register 2
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_210c_prgbank1_r2_r)
+uint8_t vt_vt1682_state::vt1682_210c_prgbank1_r2_r()
{
uint8_t ret = m_210c_prgbank1_r2;
LOGMASKED(LOG_OTHER, "%s: vt1682_210c_prgbank1_r2_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_210c_prgbank1_r2_w)
+void vt_vt1682_state::vt1682_210c_prgbank1_r2_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_210c_prgbank1_r2_w writing: %02x (4-bits)\n", machine().describe_context(), data);
m_210c_prgbank1_r2 = data;
@@ -2862,14 +2862,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_210c_prgbank1_r2_w)
0x01 - Program Bank 1 Register 0
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_prgbank0_r4_r)
+uint8_t vt_vt1682_state::vt1682_prgbank0_r4_r()
{
uint8_t ret = m_prgbank0_r4;
LOGMASKED(LOG_OTHER, "%s: (2110) vt1682_prgbank0_r4_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_prgbank1_r0_w)
+void vt_vt1682_state::vt1682_prgbank1_r0_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: (2110) vt1682_prgbank1_r0_w writing: %02x (4-bits)\n", machine().describe_context(), data);
m_prgbank1_r0 = data;
@@ -2900,7 +2900,7 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_prgbank1_r0_w)
0x01 - Program Bank 1 Register 1
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_prgbank0_r5_r)
+uint8_t vt_vt1682_state::vt1682_prgbank0_r5_r()
{
uint8_t ret = m_prgbank0_r5;
LOGMASKED(LOG_OTHER, "%s: (2111) vt1682_prgbank0_r5_r returning: %02x\n", machine().describe_context(), ret);
@@ -2908,7 +2908,7 @@ READ8_MEMBER(vt_vt1682_state::vt1682_prgbank0_r5_r)
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_prgbank1_r1_w)
+void vt_vt1682_state::vt1682_prgbank1_r1_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: (2111) vt1682_prgbank1_r1_w writing: %02x (4-bits)\n", machine().describe_context(), data);
m_prgbank1_r1 = data;
@@ -2940,7 +2940,7 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_prgbank1_r1_w)
0x01 - Program Bank 0 Register 4
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_prgbank1_r0_r)
+uint8_t vt_vt1682_state::vt1682_prgbank1_r0_r()
{
uint8_t ret = m_prgbank1_r0;
LOGMASKED(LOG_OTHER, "%s: (2112) vt1682_prgbank1_r0_r returning: %02x\n", machine().describe_context(), ret);
@@ -2948,7 +2948,7 @@ READ8_MEMBER(vt_vt1682_state::vt1682_prgbank1_r0_r)
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_prgbank0_r4_w)
+void vt_vt1682_state::vt1682_prgbank0_r4_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: (2112) vt1682_prgbank0_r4_w writing: %02x (8-bits)\n", machine().describe_context(), data);
m_prgbank0_r4 = data;
@@ -2980,14 +2980,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_prgbank0_r4_w)
0x01 - Program Bank 0 Register 5
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_prgbank1_r1_r)
+uint8_t vt_vt1682_state::vt1682_prgbank1_r1_r()
{
uint8_t ret = m_prgbank1_r1;
LOGMASKED(LOG_OTHER, "%s: (2113) vt1682_prgbank1_r1_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_prgbank0_r5_w)
+void vt_vt1682_state::vt1682_prgbank0_r5_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: (2113) vt1682_prgbank0_r5_w writing: %02x (8-bits)\n", machine().describe_context(), data);
m_prgbank0_r5 = data;
@@ -3070,14 +3070,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_prgbank0_r5_w)
0x01 - Program Bank 1 Register 4
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2118_prgbank1_r4_r5_r)
+uint8_t vt_vt1682_state::vt1682_2118_prgbank1_r4_r5_r()
{
uint8_t ret = m_2118_prgbank1_r4_r5;
LOGMASKED(LOG_OTHER, "%s: vt1682_2118_prgbank1_r4_r5_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2118_prgbank1_r4_r5_w)
+void vt_vt1682_state::vt1682_2118_prgbank1_r4_r5_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2118_prgbank1_r4_r5_w writing: %02x (2x 4-bits)\n", machine().describe_context(), data);
m_2118_prgbank1_r4_r5 = data;
@@ -3170,7 +3170,7 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2118_prgbank1_r4_r5_w)
0x01 - Clear_SCPU_IRQ
*/
-WRITE8_MEMBER(vt_vt1682_state::vt1682_211c_regs_ext2421_w)
+void vt_vt1682_state::vt1682_211c_regs_ext2421_w(uint8_t data)
{
// EXT2421EN is used for ROM banking
LOGMASKED(LOG_OTHER, "%s: vt1682_211c_regs_ext2421_w writing: %02x\n", machine().describe_context(), data);
@@ -3296,14 +3296,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_211c_regs_ext2421_w)
0x01 - DMA DT ADDR:0
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2122_dma_dt_addr_7_0_r)
+uint8_t vt_vt1682_state::vt1682_2122_dma_dt_addr_7_0_r()
{
uint8_t ret = m_2122_dma_dt_addr_7_0;
LOGMASKED(LOG_OTHER, "%s: vt1682_2122_dma_dt_addr_7_0_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2122_dma_dt_addr_7_0_w)
+void vt_vt1682_state::vt1682_2122_dma_dt_addr_7_0_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2122_dma_dt_addr_7_0_w writing: %02x\n", machine().describe_context(), data);
m_2122_dma_dt_addr_7_0 = data;
@@ -3323,14 +3323,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2122_dma_dt_addr_7_0_w)
0x01 - DMA DT ADDR:8
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2123_dma_dt_addr_15_8_r)
+uint8_t vt_vt1682_state::vt1682_2123_dma_dt_addr_15_8_r()
{
uint8_t ret = m_2123_dma_dt_addr_15_8;
LOGMASKED(LOG_OTHER, "%s: vt1682_2123_dma_dt_addr_15_8_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2123_dma_dt_addr_15_8_w)
+void vt_vt1682_state::vt1682_2123_dma_dt_addr_15_8_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2123_dma_dt_addr_15_8_w writing: %02x\n", machine().describe_context(), data);
m_2123_dma_dt_addr_15_8 = data;
@@ -3350,14 +3350,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2123_dma_dt_addr_15_8_w)
0x01 - DMA SR ADDR:0
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2124_dma_sr_addr_7_0_r)
+uint8_t vt_vt1682_state::vt1682_2124_dma_sr_addr_7_0_r()
{
uint8_t ret = m_2124_dma_sr_addr_7_0;
LOGMASKED(LOG_OTHER, "%s: vt1682_2124_dma_sr_addr_7_0_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2124_dma_sr_addr_7_0_w)
+void vt_vt1682_state::vt1682_2124_dma_sr_addr_7_0_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2124_dma_sr_addr_7_0_w writing: %02x\n", machine().describe_context(), data);
m_2124_dma_sr_addr_7_0 = data;
@@ -3377,14 +3377,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2124_dma_sr_addr_7_0_w)
0x01 - DMA SR ADDR:8
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2125_dma_sr_addr_15_8_r)
+uint8_t vt_vt1682_state::vt1682_2125_dma_sr_addr_15_8_r()
{
uint8_t ret = m_2125_dma_sr_addr_15_8;
LOGMASKED(LOG_OTHER, "%s: vt1682_2125_dma_sr_addr_15_8_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2125_dma_sr_addr_15_8_w)
+void vt_vt1682_state::vt1682_2125_dma_sr_addr_15_8_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2125_dma_sr_addr_15_8_w writing: %02x\n", machine().describe_context(), data);
m_2125_dma_sr_addr_15_8 = data;
@@ -3405,14 +3405,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2125_dma_sr_addr_15_8_w)
0x01 - DMA SR BANK:15
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2126_dma_sr_bank_addr_22_15_r)
+uint8_t vt_vt1682_state::vt1682_2126_dma_sr_bank_addr_22_15_r()
{
uint8_t ret = m_2126_dma_sr_bank_addr_22_15;
LOGMASKED(LOG_OTHER, "%s: vt1682_2126_dma_sr_bank_addr_22_15_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2126_dma_sr_bank_addr_22_15_w)
+void vt_vt1682_state::vt1682_2126_dma_sr_bank_addr_22_15_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2126_dma_sr_bank_addr_22_15_w writing: %02x\n", machine().describe_context(), data);
m_2126_dma_sr_bank_addr_22_15 = data;
@@ -3442,7 +3442,7 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2126_dma_sr_bank_addr_22_15_w)
0x01 - DMA Status
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2127_dma_status_r)
+uint8_t vt_vt1682_state::vt1682_2127_dma_status_r()
{
uint8_t ret = 0x00;
@@ -3523,7 +3523,7 @@ void vt_vt1682_state::do_dma_internal_to_internal(int data, bool is_video)
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2127_dma_size_trigger_w)
+void vt_vt1682_state::vt1682_2127_dma_size_trigger_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2127_dma_size_trigger_w writing: %02x\n", machine().describe_context(), data);
@@ -3612,14 +3612,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_2127_dma_size_trigger_w)
0x01 - DMA SR BANK:23
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_2128_dma_sr_bank_addr_24_23_r)
+uint8_t vt_vt1682_state::vt1682_2128_dma_sr_bank_addr_24_23_r()
{
uint8_t ret = m_2128_dma_sr_bank_addr_24_23;
LOGMASKED(LOG_OTHER, "%s: vt1682_2128_dma_sr_bank_addr_24_23_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_2128_dma_sr_bank_addr_24_23_w)
+void vt_vt1682_state::vt1682_2128_dma_sr_bank_addr_24_23_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_2128_dma_sr_bank_addr_24_23_w writing: %02x\n", machine().describe_context(), data);
m_2128_dma_sr_bank_addr_24_23 = data & 0x03;
@@ -3679,9 +3679,9 @@ void vt_vt1682_state::clock_joy2()
{
}
-READ8_MEMBER(vt_vt1682_state::inteact_212a_send_joy_clock2_r)
+uint8_t vt_vt1682_state::inteact_212a_send_joy_clock2_r()
{
- uint8_t ret = m_uio->inteact_212a_uio_a_direction_r(space,offset);
+ uint8_t ret = m_uio->inteact_212a_uio_a_direction_r();
clock_joy2();
return ret;
}
@@ -3723,14 +3723,14 @@ READ8_MEMBER(vt_vt1682_state::inteact_212a_send_joy_clock2_r)
0x01 - Pseudo Random Number Seed
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_212c_prng_r)
+uint8_t vt_vt1682_state::vt1682_212c_prng_r()
{
uint8_t ret = machine().rand();
LOGMASKED(LOG_OTHER, "%s: vt1682_212c_prng_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_212c_prng_seed_w)
+void vt_vt1682_state::vt1682_212c_prng_seed_w(uint8_t data)
{
LOGMASKED(LOG_OTHER, "%s: vt1682_212c_prng_seed_w writing: %02x\n", machine().describe_context(), data);
// don't know the algorithm
@@ -3952,14 +3952,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_212c_prng_seed_w)
actually 12 bits precision so only 15 to 4 are used
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_soundcpu_2118_dacleft_7_0_r)
+uint8_t vt_vt1682_state::vt1682_soundcpu_2118_dacleft_7_0_r()
{
uint8_t ret = m_soundcpu_2118_dacleft_7_0;
//LOGMASKED(LOG_OTHER, "%s: vt1682_soundcpu_2118_dacleft_7_0_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_soundcpu_2118_dacleft_7_0_w)
+void vt_vt1682_state::vt1682_soundcpu_2118_dacleft_7_0_w(uint8_t data)
{
//LOGMASKED(LOG_OTHER, "%s: vt1682_soundcpu_2118_dacleft_7_0_r writing: %02x\n", machine().describe_context(), data);
m_soundcpu_2118_dacleft_7_0 = data;
@@ -3978,14 +3978,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_soundcpu_2118_dacleft_7_0_w)
0x01 - Audio DAC Left:8
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_soundcpu_2119_dacleft_15_8_r)
+uint8_t vt_vt1682_state::vt1682_soundcpu_2119_dacleft_15_8_r()
{
uint8_t ret = m_soundcpu_2119_dacleft_15_8;
//LOGMASKED(LOG_OTHER, "%s: vt1682_soundcpu_2119_dacleft_15_8_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_soundcpu_2119_dacleft_15_8_w)
+void vt_vt1682_state::vt1682_soundcpu_2119_dacleft_15_8_w(uint8_t data)
{
//LOGMASKED(LOG_OTHER, "%s: vt1682_soundcpu_2119_dacleft_15_8_r writing: %02x\n", machine().describe_context(), data);
m_soundcpu_2119_dacleft_15_8 = data;
@@ -4007,14 +4007,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_soundcpu_2119_dacleft_15_8_w)
0x01 - Audio DAC Right:0
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_soundcpu_211a_dacright_7_0_r)
+uint8_t vt_vt1682_state::vt1682_soundcpu_211a_dacright_7_0_r()
{
uint8_t ret = m_soundcpu_211a_dacright_7_0;
//LOGMASKED(LOG_OTHER, "%s: vt1682_soundcpu_211a_dacright_7_0_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_soundcpu_211a_dacright_7_0_w)
+void vt_vt1682_state::vt1682_soundcpu_211a_dacright_7_0_w(uint8_t data)
{
//LOGMASKED(LOG_OTHER, "%s: vt1682_soundcpu_211a_dacright_7_0_r writing: %02x\n", machine().describe_context(), data);
m_soundcpu_211a_dacright_7_0 = data;
@@ -4033,14 +4033,14 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_soundcpu_211a_dacright_7_0_w)
0x01 - Audio DAC Right:8
*/
-READ8_MEMBER(vt_vt1682_state::vt1682_soundcpu_211b_dacright_15_8_r)
+uint8_t vt_vt1682_state::vt1682_soundcpu_211b_dacright_15_8_r()
{
uint8_t ret = m_soundcpu_211b_dacright_15_8;
//LOGMASKED(LOG_OTHER, "%s: vt1682_soundcpu_211b_dacright_15_8_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vt_vt1682_state::vt1682_soundcpu_211b_dacright_15_8_w)
+void vt_vt1682_state::vt1682_soundcpu_211b_dacright_15_8_w(uint8_t data)
{
//LOGMASKED(LOG_OTHER, "%s: vt1682_soundcpu_211b_dacright_15_8_r writing: %02x\n", machine().describe_context(), data);
m_soundcpu_211b_dacright_15_8 = data;
@@ -4074,7 +4074,7 @@ WRITE8_MEMBER(vt_vt1682_state::vt1682_soundcpu_211b_dacright_15_8_w)
0x01 - Clear_CPU_IRQ
*/
-WRITE8_MEMBER(vt_vt1682_state::vt1682_soundcpu_211c_reg_irqctrl_w)
+void vt_vt1682_state::vt1682_soundcpu_211c_reg_irqctrl_w(uint8_t data)
{
// EXT2421EN is used for ROM banking
LOGMASKED(LOG_OTHER, "%s: vt1682_soundcpu_211c_reg_irqctrl_w writing: %02x\n", machine().describe_context(), data);
@@ -5282,21 +5282,21 @@ Ext IRQ 0x0ffe - 0x0fff
*/
-READ8_MEMBER(vt_vt1682_state::soundcpu_irq_vector_hack_r)
+uint8_t vt_vt1682_state::soundcpu_irq_vector_hack_r(offs_t offset)
{
// redirect to Timer IRQ!
return m_sound_share[0x0ff8 + offset];
}
-READ8_MEMBER(vt_vt1682_state::maincpu_irq_vector_hack_r)
+uint8_t vt_vt1682_state::maincpu_irq_vector_hack_r(offs_t offset)
{
// redirect to Timer IRQ!
- return rom_8000_to_ffff_r(space, (0xfff8 - 0x8000)+offset);
+ return rom_8000_to_ffff_r((0xfff8 - 0x8000)+offset);
}
// intg5410 writes a new program without resetting the CPU when selecting from the 'arcade' game main menu, this is problematic
// it does appear to rewrite the vectors first, so maybe there is some hardware side-effect of this putting the CPU in reset state??
-WRITE8_MEMBER(vt_vt1682_state::vt1682_sound_reset_hack_w)
+void vt_vt1682_state::vt1682_sound_reset_hack_w(offs_t offset, uint8_t data)
{
m_sound_share[0x0ff4 + offset] = data;
m_soundcpu->set_input_line(INPUT_LINE_RESET, ASSERT_LINE);
diff --git a/src/mame/drivers/vt240.cpp b/src/mame/drivers/vt240.cpp
index 924dc90a65c..b8a29a08829 100644
--- a/src/mame/drivers/vt240.cpp
+++ b/src/mame/drivers/vt240.cpp
@@ -68,33 +68,33 @@ private:
DECLARE_WRITE_LINE_MEMBER(tx_w);
DECLARE_WRITE_LINE_MEMBER(t11_reset_w);
DECLARE_READ_LINE_MEMBER(i8085_sid_r);
- DECLARE_READ8_MEMBER(i8085_comm_r);
- DECLARE_WRITE8_MEMBER(i8085_comm_w);
- DECLARE_READ8_MEMBER(t11_comm_r);
- DECLARE_WRITE8_MEMBER(t11_comm_w);
- DECLARE_READ8_MEMBER(duart_r);
- DECLARE_WRITE8_MEMBER(duart_w);
+ uint8_t i8085_comm_r(offs_t offset);
+ void i8085_comm_w(offs_t offset, uint8_t data);
+ uint8_t t11_comm_r();
+ void t11_comm_w(uint8_t data);
+ uint8_t duart_r(offs_t offset);
+ void duart_w(offs_t offset, uint8_t data);
void duartout_w(uint8_t data);
- DECLARE_READ8_MEMBER(mem_map_cs_r);
- DECLARE_WRITE8_MEMBER(mem_map_cs_w);
- DECLARE_READ8_MEMBER(ctrl_r);
- DECLARE_WRITE8_MEMBER(mem_map_sel_w);
- DECLARE_READ8_MEMBER(char_buf_r);
- DECLARE_WRITE8_MEMBER(char_buf_w);
- DECLARE_WRITE8_MEMBER(patmult_w);
- DECLARE_WRITE8_MEMBER(vpat_w);
- DECLARE_READ16_MEMBER(vram_r);
+ uint8_t mem_map_cs_r(offs_t offset);
+ void mem_map_cs_w(offs_t offset, uint8_t data);
+ uint8_t ctrl_r();
+ void mem_map_sel_w(uint8_t data);
+ uint8_t char_buf_r();
+ void char_buf_w(uint8_t data);
+ void patmult_w(uint8_t data);
+ void vpat_w(uint8_t data);
+ uint16_t vram_r(offs_t offset);
void vram_w(offs_t offset, uint16_t data);
- DECLARE_READ8_MEMBER(vom_r);
- DECLARE_WRITE8_MEMBER(vom_w);
- DECLARE_READ8_MEMBER(nvr_store_r);
- DECLARE_WRITE8_MEMBER(nvr_store_w);
- DECLARE_WRITE8_MEMBER(mask_w);
- DECLARE_WRITE8_MEMBER(reg0_w);
- DECLARE_WRITE8_MEMBER(reg1_w);
- DECLARE_WRITE8_MEMBER(lu_w);
- DECLARE_WRITE8_MEMBER(hbscrl_w);
- DECLARE_WRITE8_MEMBER(lbscrl_w);
+ uint8_t vom_r(offs_t offset);
+ void vom_w(offs_t offset, uint8_t data);
+ uint8_t nvr_store_r();
+ void nvr_store_w(uint8_t data);
+ void mask_w(uint8_t data);
+ void reg0_w(uint8_t data);
+ void reg1_w(uint8_t data);
+ void lu_w(uint8_t data);
+ void hbscrl_w(uint8_t data);
+ void lbscrl_w(uint8_t data);
uint16_t mem_r(offs_t offset, uint16_t mem_mask);
void mem_w(offs_t offset, uint16_t data, uint16_t mem_mask);
@@ -223,19 +223,19 @@ UPD7220_DISPLAY_PIXELS_MEMBER( vt240_state::hgdc_draw )
}
}
-READ8_MEMBER(vt240_state::t11_comm_r)
+uint8_t vt240_state::t11_comm_r()
{
m_t11 = 1;
m_i8085->set_input_line(I8085_RST65_LINE, CLEAR_LINE);
return m_t11_out;
}
-WRITE8_MEMBER(vt240_state::t11_comm_w)
+void vt240_state::t11_comm_w(uint8_t data)
{
m_i8085_out = data;
}
-READ8_MEMBER(vt240_state::i8085_comm_r)
+uint8_t vt240_state::i8085_comm_r(offs_t offset)
{
switch(offset)
{
@@ -250,7 +250,7 @@ READ8_MEMBER(vt240_state::i8085_comm_r)
return 0xff;
}
-WRITE8_MEMBER(vt240_state::i8085_comm_w)
+void vt240_state::i8085_comm_w(offs_t offset, uint8_t data)
{
switch(offset)
{
@@ -267,14 +267,14 @@ WRITE8_MEMBER(vt240_state::i8085_comm_w)
}
}
-READ8_MEMBER(vt240_state::duart_r)
+uint8_t vt240_state::duart_r(offs_t offset)
{
if(!(offset & 1))
return m_duart->read(offset >> 1);
return 0;
}
-WRITE8_MEMBER(vt240_state::duart_w)
+void vt240_state::duart_w(offs_t offset, uint8_t data)
{
if(offset & 1)
m_duart->write(offset >> 1, data);
@@ -290,22 +290,22 @@ void vt240_state::duartout_w(uint8_t data)
irq_encoder(10, BIT(data, 7) ? CLEAR_LINE : ASSERT_LINE);
}
-READ8_MEMBER(vt240_state::mem_map_cs_r)
+uint8_t vt240_state::mem_map_cs_r(offs_t offset)
{
return ~m_mem_map[offset];
}
-WRITE8_MEMBER(vt240_state::mem_map_cs_w)
+void vt240_state::mem_map_cs_w(offs_t offset, uint8_t data)
{
m_mem_map[offset] = ~data;
}
-READ8_MEMBER(vt240_state::ctrl_r)
+uint8_t vt240_state::ctrl_r()
{
return m_mem_map_sel | ((m_lb ? 0 : 1) << 3) | (m_i8085_rdy << 6) | (m_t11 << 7) | (1<<5); // no modem
}
-WRITE8_MEMBER(vt240_state::mem_map_sel_w)
+void vt240_state::mem_map_sel_w(uint8_t data)
{
m_mem_map_sel = data & 1;
}
@@ -330,31 +330,31 @@ void vt240_state::mem_w(offs_t offset, uint16_t data, uint16_t mem_mask)
}
}
-READ8_MEMBER(vt240_state::char_buf_r)
+uint8_t vt240_state::char_buf_r()
{
m_char_idx = 0;
return 0xff;
}
-WRITE8_MEMBER(vt240_state::char_buf_w)
+void vt240_state::char_buf_w(uint8_t data)
{
m_char_buf[m_char_idx++] = bitswap<8>(data, 0, 1, 2, 3, 4, 5, 6, 7);
m_char_idx &= 0xf;
}
-WRITE8_MEMBER(vt240_state::patmult_w)
+void vt240_state::patmult_w(uint8_t data)
{
m_patmult = data & 0xf;
}
-WRITE8_MEMBER(vt240_state::vpat_w)
+void vt240_state::vpat_w(uint8_t data)
{
m_vpat = data;
m_patcnt = m_patmult;
m_patidx = 7;
}
-READ8_MEMBER(vt240_state::vom_r)
+uint8_t vt240_state::vom_r(offs_t offset)
{
if(!BIT(m_reg0, 2))
return m_vom[offset];
@@ -365,7 +365,7 @@ READ8_MEMBER(vt240_state::vom_r)
return m_vom[((m_reg0 & 3) << 2) + 3];
}
-WRITE8_MEMBER(vt240_state::vom_w)
+void vt240_state::vom_w(offs_t offset, uint8_t data)
{
if(!BIT(m_reg0, 2))
{
@@ -376,7 +376,7 @@ WRITE8_MEMBER(vt240_state::vom_w)
}
}
-READ16_MEMBER(vt240_state::vram_r)
+uint16_t vt240_state::vram_r(offs_t offset)
{
if(!BIT(m_reg0, 3) || machine().side_effects_disabled())
{
@@ -492,45 +492,45 @@ void vt240_state::vram_w(offs_t offset, uint16_t data)
video_ram[offset] = data;
}
-WRITE8_MEMBER(vt240_state::mask_w)
+void vt240_state::mask_w(uint8_t data)
{
m_mask = bitswap<8>(data, 0, 1, 2, 3, 4, 5, 6, 7);
}
-READ8_MEMBER(vt240_state::nvr_store_r)
+uint8_t vt240_state::nvr_store_r()
{
m_nvram->store(ASSERT_LINE);
m_nvram->store(CLEAR_LINE);
return 0;
}
-WRITE8_MEMBER(vt240_state::nvr_store_w)
+void vt240_state::nvr_store_w(uint8_t data)
{
m_nvram->store(ASSERT_LINE);
m_nvram->store(CLEAR_LINE);
}
-WRITE8_MEMBER(vt240_state::reg0_w)
+void vt240_state::reg0_w(uint8_t data)
{
m_reg0 = data;
}
-WRITE8_MEMBER(vt240_state::reg1_w)
+void vt240_state::reg1_w(uint8_t data)
{
m_reg1 = data;
}
-WRITE8_MEMBER(vt240_state::lu_w)
+void vt240_state::lu_w(uint8_t data)
{
m_lu = data;
}
-WRITE8_MEMBER(vt240_state::lbscrl_w)
+void vt240_state::lbscrl_w(uint8_t data)
{
m_scrl = (m_scrl & 0xff00) | data;
}
-WRITE8_MEMBER(vt240_state::hbscrl_w)
+void vt240_state::hbscrl_w(uint8_t data)
{
m_scrl = (m_scrl & 0xff) | ((data & 0x3f) << 8);
}
diff --git a/src/mame/drivers/vt520.cpp b/src/mame/drivers/vt520.cpp
index 5d0d853938e..ae03e19ff5b 100644
--- a/src/mame/drivers/vt520.cpp
+++ b/src/mame/drivers/vt520.cpp
@@ -29,7 +29,7 @@ public:
void vt420(machine_config &config);
private:
- DECLARE_READ8_MEMBER(vt520_some_r);
+ uint8_t vt520_some_r();
virtual void machine_reset() override;
virtual void video_start() override;
uint32_t screen_update_vt520(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
@@ -51,7 +51,7 @@ void vt520_state::vt520_mem(address_map &map)
there is 43.320MHz xtal near by
*/
-READ8_MEMBER( vt520_state::vt520_some_r )
+uint8_t vt520_state::vt520_some_r()
{
//bit 5 0
//bit 6 1
diff --git a/src/mame/drivers/vta2000.cpp b/src/mame/drivers/vta2000.cpp
index 4c5fa46565e..8850e90af1a 100644
--- a/src/mame/drivers/vta2000.cpp
+++ b/src/mame/drivers/vta2000.cpp
@@ -43,7 +43,7 @@ public:
void vta2000(machine_config &config);
private:
- DECLARE_WRITE8_MEMBER(output_00);
+ void output_00(uint8_t data);
DECLARE_WRITE_LINE_MEMBER(speaker_w);
uint32_t screen_update_vta2000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
@@ -59,7 +59,7 @@ private:
required_region_ptr<u8> m_p_chargen;
};
-WRITE8_MEMBER(vta2000_state::output_00)
+void vta2000_state::output_00(uint8_t data)
{
m_mainpit->write_gate0(BIT(data, 4));
}
diff --git a/src/mame/drivers/vtech1.cpp b/src/mame/drivers/vtech1.cpp
index 212273322ea..d9e1f6226b1 100644
--- a/src/mame/drivers/vtech1.cpp
+++ b/src/mame/drivers/vtech1.cpp
@@ -85,11 +85,11 @@ public:
void init_vtech1h();
private:
- DECLARE_READ8_MEMBER(vtech1_lightpen_r);
- DECLARE_READ8_MEMBER(vtech1_keyboard_r);
- DECLARE_WRITE8_MEMBER(vtech1_latch_w);
+ uint8_t vtech1_lightpen_r(offs_t offset);
+ uint8_t vtech1_keyboard_r(offs_t offset);
+ void vtech1_latch_w(uint8_t data);
- DECLARE_WRITE8_MEMBER(vtech1_video_bank_w);
+ void vtech1_video_bank_w(uint8_t data);
uint8_t mc6847_videoram_r(offs_t offset);
DECLARE_SNAPSHOT_LOAD_MEMBER(snapshot_cb);
@@ -191,13 +191,13 @@ SNAPSHOT_LOAD_MEMBER(vtech1_state::snapshot_cb)
INPUTS
***************************************************************************/
-READ8_MEMBER( vtech1_state::vtech1_lightpen_r )
+uint8_t vtech1_state::vtech1_lightpen_r(offs_t offset)
{
logerror("vtech1_lightpen_r(%d)\n", offset);
return 0xff;
}
-READ8_MEMBER( vtech1_state::vtech1_keyboard_r )
+uint8_t vtech1_state::vtech1_keyboard_r(offs_t offset)
{
uint8_t result = 0x3f;
@@ -225,7 +225,7 @@ READ8_MEMBER( vtech1_state::vtech1_keyboard_r )
I/O LATCH
***************************************************************************/
-WRITE8_MEMBER( vtech1_state::vtech1_latch_w )
+void vtech1_state::vtech1_latch_w(uint8_t data)
{
if (LOG_VTECH1_LATCH)
logerror("vtech1_latch_w $%02X\n", data);
@@ -253,7 +253,7 @@ WRITE8_MEMBER( vtech1_state::vtech1_latch_w )
MEMORY BANKING
***************************************************************************/
-WRITE8_MEMBER( vtech1_state::vtech1_video_bank_w )
+void vtech1_state::vtech1_video_bank_w(uint8_t data)
{
membank("bank4")->set_entry(data & 0x03);
}
diff --git a/src/mame/drivers/wacky_gator.cpp b/src/mame/drivers/wacky_gator.cpp
index ce819679c9e..578a009b8b6 100644
--- a/src/mame/drivers/wacky_gator.cpp
+++ b/src/mame/drivers/wacky_gator.cpp
@@ -55,7 +55,7 @@ private:
virtual void machine_reset() override;
DECLARE_WRITE_LINE_MEMBER(adpcm_int);
- DECLARE_WRITE8_MEMBER(sample_ctrl_w);
+ void sample_ctrl_w(uint8_t data);
void alligators_ctrl1_w(uint8_t data);
void alligators_ctrl2_w(uint8_t data);
@@ -69,8 +69,8 @@ private:
void pmm8713_ck(int i, int state);
template <unsigned N> DECLARE_WRITE_LINE_MEMBER(alligator_ck) { pmm8713_ck(N, state); }
- DECLARE_WRITE8_MEMBER(irq_ack_w) { m_maincpu->set_input_line(M6809_IRQ_LINE, CLEAR_LINE); }
- DECLARE_WRITE8_MEMBER(firq_ack_w) { m_maincpu->set_input_line(M6809_FIRQ_LINE, CLEAR_LINE); }
+ void irq_ack_w(uint8_t data) { m_maincpu->set_input_line(M6809_IRQ_LINE, CLEAR_LINE); }
+ void firq_ack_w(uint8_t data) { m_maincpu->set_input_line(M6809_FIRQ_LINE, CLEAR_LINE); }
TIMER_DEVICE_CALLBACK_MEMBER(nmi_timer) { m_maincpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero); }
@@ -109,7 +109,7 @@ void wackygtr_state::status_lamps_w(uint8_t data)
m_ticket->motor_w(BIT(data, 7));
}
-WRITE8_MEMBER(wackygtr_state::sample_ctrl_w)
+void wackygtr_state::sample_ctrl_w(uint8_t data)
{
/*
--xx xxxx sample index
diff --git a/src/mame/drivers/wallc.cpp b/src/mame/drivers/wallc.cpp
index b2b98ca0d59..f0304ee9c67 100644
--- a/src/mame/drivers/wallc.cpp
+++ b/src/mame/drivers/wallc.cpp
@@ -96,11 +96,11 @@ private:
bool m_bookkeeping_mode;
- DECLARE_WRITE8_MEMBER(videoram_w);
- DECLARE_WRITE8_MEMBER(wallc_coin_counter_w);
- DECLARE_WRITE8_MEMBER(unkitpkr_out0_w);
- DECLARE_WRITE8_MEMBER(unkitpkr_out1_w);
- DECLARE_WRITE8_MEMBER(unkitpkr_out2_w);
+ void videoram_w(offs_t offset, uint8_t data);
+ void wallc_coin_counter_w(uint8_t data);
+ void unkitpkr_out0_w(uint8_t data);
+ void unkitpkr_out1_w(uint8_t data);
+ void unkitpkr_out2_w(uint8_t data);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_bg_tile_info_unkitpkr);
@@ -214,7 +214,7 @@ void wallc_state::unkitpkr_palette(palette_device &palette) const
}
}
-WRITE8_MEMBER(wallc_state::videoram_w)
+void wallc_state::videoram_w(offs_t offset, uint8_t data)
{
m_videoram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset);
@@ -263,22 +263,22 @@ uint32_t wallc_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap,
}
-WRITE8_MEMBER(wallc_state::wallc_coin_counter_w)
+void wallc_state::wallc_coin_counter_w(uint8_t data)
{
machine().bookkeeping().coin_counter_w(0, data & 2);
}
-WRITE8_MEMBER(wallc_state::unkitpkr_out0_w)
+void wallc_state::unkitpkr_out0_w(uint8_t data)
{
}
-WRITE8_MEMBER(wallc_state::unkitpkr_out1_w)
+void wallc_state::unkitpkr_out1_w(uint8_t data)
{
machine().bookkeeping().coin_counter_w(0, BIT(data, 4));
}
-WRITE8_MEMBER(wallc_state::unkitpkr_out2_w)
+void wallc_state::unkitpkr_out2_w(uint8_t data)
{
if (m_bookkeeping_mode != BIT(data, 0))
{
diff --git a/src/mame/drivers/wangpc.cpp b/src/mame/drivers/wangpc.cpp
index 5c04a0b4299..c8a02e3554e 100644
--- a/src/mame/drivers/wangpc.cpp
+++ b/src/mame/drivers/wangpc.cpp
@@ -122,45 +122,45 @@ private:
void update_fdc_drq();
void update_fdc_tc();
- DECLARE_WRITE8_MEMBER( fdc_ctrl_w );
- DECLARE_READ8_MEMBER( deselect_drive1_r );
- DECLARE_WRITE8_MEMBER( deselect_drive1_w );
- DECLARE_READ8_MEMBER( select_drive1_r );
- DECLARE_WRITE8_MEMBER( select_drive1_w );
- DECLARE_READ8_MEMBER( deselect_drive2_r );
- DECLARE_WRITE8_MEMBER( deselect_drive2_w );
- DECLARE_READ8_MEMBER( select_drive2_r );
- DECLARE_WRITE8_MEMBER( select_drive2_w );
- DECLARE_READ8_MEMBER( motor1_off_r );
- DECLARE_WRITE8_MEMBER( motor1_off_w );
- DECLARE_READ8_MEMBER( motor1_on_r );
- DECLARE_WRITE8_MEMBER( motor1_on_w );
- DECLARE_READ8_MEMBER( motor2_off_r );
- DECLARE_WRITE8_MEMBER( motor2_off_w );
- DECLARE_READ8_MEMBER( motor2_on_r );
- DECLARE_WRITE8_MEMBER( motor2_on_w );
- DECLARE_READ8_MEMBER( fdc_reset_r );
- DECLARE_WRITE8_MEMBER( fdc_reset_w );
- DECLARE_READ8_MEMBER( fdc_tc_r );
- DECLARE_WRITE8_MEMBER( fdc_tc_w );
- DECLARE_WRITE8_MEMBER( dma_page_w );
- DECLARE_READ8_MEMBER( status_r );
- DECLARE_WRITE8_MEMBER( timer0_irq_clr_w );
- DECLARE_READ8_MEMBER( timer2_irq_clr_r );
- DECLARE_WRITE8_MEMBER( nmi_mask_w );
- DECLARE_READ8_MEMBER( led_on_r );
- DECLARE_WRITE8_MEMBER( fpu_mask_w );
- DECLARE_READ8_MEMBER( dma_eop_clr_r );
- DECLARE_WRITE8_MEMBER( uart_tbre_clr_w );
- DECLARE_READ8_MEMBER( uart_r );
- DECLARE_WRITE8_MEMBER( uart_w );
- DECLARE_READ8_MEMBER( centronics_r );
- DECLARE_WRITE8_MEMBER( centronics_w );
- DECLARE_READ8_MEMBER( busy_clr_r );
- DECLARE_WRITE8_MEMBER( acknlg_clr_w );
- DECLARE_READ8_MEMBER( led_off_r );
- DECLARE_WRITE8_MEMBER( parity_nmi_clr_w );
- DECLARE_READ8_MEMBER( option_id_r );
+ void fdc_ctrl_w(uint8_t data);
+ uint8_t deselect_drive1_r();
+ void deselect_drive1_w(uint8_t data);
+ uint8_t select_drive1_r();
+ void select_drive1_w(uint8_t data);
+ uint8_t deselect_drive2_r();
+ void deselect_drive2_w(uint8_t data);
+ uint8_t select_drive2_r();
+ void select_drive2_w(uint8_t data);
+ uint8_t motor1_off_r();
+ void motor1_off_w(uint8_t data);
+ uint8_t motor1_on_r();
+ void motor1_on_w(uint8_t data);
+ uint8_t motor2_off_r();
+ void motor2_off_w(uint8_t data);
+ uint8_t motor2_on_r();
+ void motor2_on_w(uint8_t data);
+ uint8_t fdc_reset_r();
+ void fdc_reset_w(uint8_t data);
+ uint8_t fdc_tc_r();
+ void fdc_tc_w(uint8_t data);
+ void dma_page_w(offs_t offset, uint8_t data);
+ uint8_t status_r();
+ void timer0_irq_clr_w(uint8_t data);
+ uint8_t timer2_irq_clr_r();
+ void nmi_mask_w(uint8_t data);
+ uint8_t led_on_r();
+ void fpu_mask_w(uint8_t data);
+ uint8_t dma_eop_clr_r();
+ void uart_tbre_clr_w(uint8_t data);
+ uint8_t uart_r();
+ void uart_w(uint8_t data);
+ uint8_t centronics_r();
+ void centronics_w(uint8_t data);
+ uint8_t busy_clr_r();
+ void acknlg_clr_w(uint8_t data);
+ uint8_t led_off_r();
+ void parity_nmi_clr_w(uint8_t data);
+ uint8_t option_id_r();
DECLARE_WRITE_LINE_MEMBER( hrq_w );
DECLARE_WRITE_LINE_MEMBER( eop_w );
@@ -250,7 +250,7 @@ void wangpc_state::select_drive()
m_fdc->set_floppy(floppy);
}
-WRITE8_MEMBER( wangpc_state::fdc_ctrl_w )
+void wangpc_state::fdc_ctrl_w(uint8_t data)
{
/*
@@ -284,7 +284,7 @@ WRITE8_MEMBER( wangpc_state::fdc_ctrl_w )
}
-READ8_MEMBER( wangpc_state::deselect_drive1_r )
+uint8_t wangpc_state::deselect_drive1_r()
{
m_ds1 = false;
select_drive();
@@ -292,12 +292,12 @@ READ8_MEMBER( wangpc_state::deselect_drive1_r )
return 0xff;
}
-WRITE8_MEMBER( wangpc_state::deselect_drive1_w )
+void wangpc_state::deselect_drive1_w(uint8_t data)
{
- deselect_drive1_r(space, offset);
+ deselect_drive1_r();
}
-READ8_MEMBER( wangpc_state::select_drive1_r )
+uint8_t wangpc_state::select_drive1_r()
{
m_ds1 = true;
select_drive();
@@ -305,12 +305,12 @@ READ8_MEMBER( wangpc_state::select_drive1_r )
return 0xff;
}
-WRITE8_MEMBER( wangpc_state::select_drive1_w )
+void wangpc_state::select_drive1_w(uint8_t data)
{
- select_drive1_r(space, offset);
+ select_drive1_r();
}
-READ8_MEMBER( wangpc_state::deselect_drive2_r )
+uint8_t wangpc_state::deselect_drive2_r()
{
m_ds2 = false;
select_drive();
@@ -318,12 +318,12 @@ READ8_MEMBER( wangpc_state::deselect_drive2_r )
return 0xff;
}
-WRITE8_MEMBER( wangpc_state::deselect_drive2_w )
+void wangpc_state::deselect_drive2_w(uint8_t data)
{
- deselect_drive2_r(space, offset);
+ deselect_drive2_r();
}
-READ8_MEMBER( wangpc_state::select_drive2_r )
+uint8_t wangpc_state::select_drive2_r()
{
m_ds2 = true;
select_drive();
@@ -331,12 +331,12 @@ READ8_MEMBER( wangpc_state::select_drive2_r )
return 0xff;
}
-WRITE8_MEMBER( wangpc_state::select_drive2_w )
+void wangpc_state::select_drive2_w(uint8_t data)
{
- select_drive2_r(space, offset);
+ select_drive2_r();
}
-READ8_MEMBER( wangpc_state::motor1_off_r )
+uint8_t wangpc_state::motor1_off_r()
{
if (LOG) logerror("%s: Drive 1 motor OFF\n", machine().describe_context());
@@ -345,12 +345,12 @@ READ8_MEMBER( wangpc_state::motor1_off_r )
return 0xff;
}
-WRITE8_MEMBER( wangpc_state::motor1_off_w )
+void wangpc_state::motor1_off_w(uint8_t data)
{
- motor1_off_r(space, offset);
+ motor1_off_r();
}
-READ8_MEMBER( wangpc_state::motor1_on_r )
+uint8_t wangpc_state::motor1_on_r()
{
if (LOG) logerror("%s: Drive 1 motor ON\n", machine().describe_context());
@@ -359,12 +359,12 @@ READ8_MEMBER( wangpc_state::motor1_on_r )
return 0xff;
}
-WRITE8_MEMBER( wangpc_state::motor1_on_w )
+void wangpc_state::motor1_on_w(uint8_t data)
{
- motor1_on_r(space, offset);
+ motor1_on_r();
}
-READ8_MEMBER( wangpc_state::motor2_off_r )
+uint8_t wangpc_state::motor2_off_r()
{
if (LOG) logerror("%s: Drive 2 motor OFF\n", machine().describe_context());
@@ -373,12 +373,12 @@ READ8_MEMBER( wangpc_state::motor2_off_r )
return 0xff;
}
-WRITE8_MEMBER( wangpc_state::motor2_off_w )
+void wangpc_state::motor2_off_w(uint8_t data)
{
- motor2_off_r(space, offset);
+ motor2_off_r();
}
-READ8_MEMBER( wangpc_state::motor2_on_r )
+uint8_t wangpc_state::motor2_on_r()
{
if (LOG) logerror("%s: Drive 2 motor ON\n", machine().describe_context());
@@ -387,12 +387,12 @@ READ8_MEMBER( wangpc_state::motor2_on_r )
return 0xff;
}
-WRITE8_MEMBER( wangpc_state::motor2_on_w )
+void wangpc_state::motor2_on_w(uint8_t data)
{
- motor2_on_r(space, offset);
+ motor2_on_r();
}
-READ8_MEMBER( wangpc_state::fdc_reset_r )
+uint8_t wangpc_state::fdc_reset_r()
{
if (LOG) logerror("%s: FDC reset\n", machine().describe_context());
@@ -401,12 +401,12 @@ READ8_MEMBER( wangpc_state::fdc_reset_r )
return 0xff;
}
-WRITE8_MEMBER( wangpc_state::fdc_reset_w )
+void wangpc_state::fdc_reset_w(uint8_t data)
{
- fdc_reset_r(space, offset);
+ fdc_reset_r();
}
-READ8_MEMBER( wangpc_state::fdc_tc_r )
+uint8_t wangpc_state::fdc_tc_r()
{
if (LOG) logerror("%s: FDC TC\n", machine().describe_context());
@@ -416,9 +416,9 @@ READ8_MEMBER( wangpc_state::fdc_tc_r )
return 0xff;
}
-WRITE8_MEMBER( wangpc_state::fdc_tc_w )
+void wangpc_state::fdc_tc_w(uint8_t data)
{
- fdc_tc_r(space, offset);
+ fdc_tc_r();
}
@@ -426,7 +426,7 @@ WRITE8_MEMBER( wangpc_state::fdc_tc_w )
// dma_page_w -
//-------------------------------------------------
-WRITE8_MEMBER( wangpc_state::dma_page_w )
+void wangpc_state::dma_page_w(offs_t offset, uint8_t data)
{
if (LOG) logerror("%s: DMA page %u: %06x\n", machine().describe_context(), offset + 1, (data & 0x0f) << 16);
@@ -438,7 +438,7 @@ WRITE8_MEMBER( wangpc_state::dma_page_w )
// status_r -
//-------------------------------------------------
-READ8_MEMBER( wangpc_state::status_r )
+uint8_t wangpc_state::status_r()
{
/*
@@ -472,7 +472,7 @@ READ8_MEMBER( wangpc_state::status_r )
// timer0_int_clr_w -
//-------------------------------------------------
-WRITE8_MEMBER( wangpc_state::timer0_irq_clr_w )
+void wangpc_state::timer0_irq_clr_w(uint8_t data)
{
//if (LOG) logerror("%s: Timer 0 IRQ clear\n", machine().describe_context());
@@ -484,7 +484,7 @@ WRITE8_MEMBER( wangpc_state::timer0_irq_clr_w )
// timer2_irq_clr_r -
//-------------------------------------------------
-READ8_MEMBER( wangpc_state::timer2_irq_clr_r )
+uint8_t wangpc_state::timer2_irq_clr_r()
{
//if (LOG) logerror("%s: Timer 2 IRQ clear\n", machine().describe_context());
@@ -499,7 +499,7 @@ READ8_MEMBER( wangpc_state::timer2_irq_clr_r )
// nmi_mask_w -
//-------------------------------------------------
-WRITE8_MEMBER( wangpc_state::nmi_mask_w )
+void wangpc_state::nmi_mask_w(uint8_t data)
{
if (LOG) logerror("%s: NMI mask %02x\n", machine().describe_context(), data);
}
@@ -509,7 +509,7 @@ WRITE8_MEMBER( wangpc_state::nmi_mask_w )
// led_on_r -
//-------------------------------------------------
-READ8_MEMBER( wangpc_state::led_on_r )
+uint8_t wangpc_state::led_on_r()
{
if (LOG) logerror("%s: Diagnostic LED on\n", machine().describe_context());
@@ -523,7 +523,7 @@ READ8_MEMBER( wangpc_state::led_on_r )
// fpu_mask_w -
//-------------------------------------------------
-WRITE8_MEMBER( wangpc_state::fpu_mask_w )
+void wangpc_state::fpu_mask_w(uint8_t data)
{
if (LOG) logerror("%s: FPU mask %02x\n", machine().describe_context(), data);
}
@@ -533,7 +533,7 @@ WRITE8_MEMBER( wangpc_state::fpu_mask_w )
// dma_eop_clr_r -
//-------------------------------------------------
-READ8_MEMBER( wangpc_state::dma_eop_clr_r )
+uint8_t wangpc_state::dma_eop_clr_r()
{
if (LOG) logerror("%s: EOP clear\n", machine().describe_context());
@@ -549,7 +549,7 @@ READ8_MEMBER( wangpc_state::dma_eop_clr_r )
// uart_tbre_clr_w -
//-------------------------------------------------
-WRITE8_MEMBER( wangpc_state::uart_tbre_clr_w )
+void wangpc_state::uart_tbre_clr_w(uint8_t data)
{
if (LOG) logerror("%s: TBRE clear\n", machine().describe_context());
@@ -563,7 +563,7 @@ WRITE8_MEMBER( wangpc_state::uart_tbre_clr_w )
// uart_r -
//-------------------------------------------------
-READ8_MEMBER( wangpc_state::uart_r )
+uint8_t wangpc_state::uart_r()
{
m_uart_dr = 0;
@@ -581,7 +581,7 @@ READ8_MEMBER( wangpc_state::uart_r )
// uart_w -
//-------------------------------------------------
-WRITE8_MEMBER( wangpc_state::uart_w )
+void wangpc_state::uart_w(uint8_t data)
{
if (LOG) logerror("%s: UART write %02x\n", machine().describe_context(), data);
@@ -616,7 +616,7 @@ WRITE8_MEMBER( wangpc_state::uart_w )
// centronics_r -
//-------------------------------------------------
-READ8_MEMBER( wangpc_state::centronics_r )
+uint8_t wangpc_state::centronics_r()
{
m_dav = 1;
check_level1_interrupts();
@@ -629,7 +629,7 @@ READ8_MEMBER( wangpc_state::centronics_r )
// centronics_w -
//-------------------------------------------------
-WRITE8_MEMBER( wangpc_state::centronics_w )
+void wangpc_state::centronics_w(uint8_t data)
{
m_centronics_ack = 1;
check_level1_interrupts();
@@ -645,7 +645,7 @@ WRITE8_MEMBER( wangpc_state::centronics_w )
// busy_clr_r -
//-------------------------------------------------
-READ8_MEMBER( wangpc_state::busy_clr_r )
+uint8_t wangpc_state::busy_clr_r()
{
if (LOG) logerror("%s: BUSY clear\n", machine().describe_context());
@@ -660,7 +660,7 @@ READ8_MEMBER( wangpc_state::busy_clr_r )
// acknlg_clr_w -
//-------------------------------------------------
-WRITE8_MEMBER( wangpc_state::acknlg_clr_w )
+void wangpc_state::acknlg_clr_w(uint8_t data)
{
if (LOG) logerror("%s: ACKNLG clear\n", machine().describe_context());
@@ -673,7 +673,7 @@ WRITE8_MEMBER( wangpc_state::acknlg_clr_w )
// led_off_r -
//-------------------------------------------------
-READ8_MEMBER( wangpc_state::led_off_r )
+uint8_t wangpc_state::led_off_r()
{
if (LOG) logerror("%s: Diagnostic LED off\n", machine().describe_context());
@@ -687,7 +687,7 @@ READ8_MEMBER( wangpc_state::led_off_r )
// parity_nmi_clr_w -
//-------------------------------------------------
-WRITE8_MEMBER( wangpc_state::parity_nmi_clr_w )
+void wangpc_state::parity_nmi_clr_w(uint8_t data)
{
if (LOG) logerror("%s: Parity NMI clear\n", machine().describe_context());
}
@@ -697,7 +697,7 @@ WRITE8_MEMBER( wangpc_state::parity_nmi_clr_w )
// option_id_r -
//-------------------------------------------------
-READ8_MEMBER( wangpc_state::option_id_r )
+uint8_t wangpc_state::option_id_r()
{
/*
diff --git a/src/mame/drivers/wardner.cpp b/src/mame/drivers/wardner.cpp
index 95efd91bf72..bc94e9abfa1 100644
--- a/src/mame/drivers/wardner.cpp
+++ b/src/mame/drivers/wardner.cpp
@@ -158,7 +158,7 @@ protected:
private:
required_device<address_map_bank_device> m_membank;
- DECLARE_WRITE8_MEMBER(wardner_bank_w);
+ void wardner_bank_w(uint8_t data);
void dsp_io_map(address_map &map);
void dsp_program_map(address_map &map);
@@ -172,7 +172,7 @@ private:
/***************************** Z80 Main Memory Map **************************/
-WRITE8_MEMBER(wardner_state::wardner_bank_w)
+void wardner_state::wardner_bank_w(uint8_t data)
{
m_membank->set_bank(data & 7);
}
diff --git a/src/mame/drivers/warpsped.cpp b/src/mame/drivers/warpsped.cpp
index 36416f9d642..53c6360c58d 100644
--- a/src/mame/drivers/warpsped.cpp
+++ b/src/mame/drivers/warpsped.cpp
@@ -115,8 +115,8 @@ private:
tilemap_t *m_starfield_tilemap;
uint8_t m_regs[0x28];
- DECLARE_WRITE8_MEMBER(hardware_w);
- DECLARE_WRITE8_MEMBER(vidram_w);
+ void hardware_w(offs_t offset, uint8_t data);
+ void vidram_w(offs_t offset, uint8_t data);
TILE_GET_INFO_MEMBER(get_text_tile_info);
TILE_GET_INFO_MEMBER(get_starfield_tile_info);
@@ -130,7 +130,7 @@ private:
void warpspeed_map(address_map &map);
};
-WRITE8_MEMBER(warpspeed_state::hardware_w)
+void warpspeed_state::hardware_w(offs_t offset, uint8_t data)
{
m_regs[offset] = data;
}
@@ -151,7 +151,7 @@ TILE_GET_INFO_MEMBER(warpspeed_state::get_starfield_tile_info)
tileinfo.set(1, code, 0, 0);
}
-WRITE8_MEMBER(warpspeed_state::vidram_w)
+void warpspeed_state::vidram_w(offs_t offset, uint8_t data)
{
m_videoram[offset] = data;
m_text_tilemap->mark_tile_dirty(offset);
diff --git a/src/mame/drivers/wheelfir.cpp b/src/mame/drivers/wheelfir.cpp
index aaafc6179fa..0a462c9f937 100644
--- a/src/mame/drivers/wheelfir.cpp
+++ b/src/mame/drivers/wheelfir.cpp
@@ -248,13 +248,11 @@ private:
}
return 0;
}
- DECLARE_WRITE16_MEMBER(wheelfir_scanline_cnt_w);
- DECLARE_WRITE16_MEMBER(wheelfir_blit_w);
- DECLARE_WRITE16_MEMBER(wheelfir_7c0000_w);
- DECLARE_READ16_MEMBER(wheelfir_7c0000_r);
- DECLARE_WRITE16_MEMBER(wheelfir_snd_w);
- DECLARE_READ16_MEMBER(wheelfir_snd_r);
- DECLARE_WRITE16_MEMBER(coin_cnt_w);
+ void wheelfir_scanline_cnt_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void wheelfir_blit_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void wheelfir_7c0000_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ uint16_t wheelfir_7c0000_r(offs_t offset, uint16_t mem_mask = ~0);
+ void coin_cnt_w(uint16_t data);
DECLARE_WRITE_LINE_MEMBER(adc_eoc_w);
uint32_t screen_update_wheelfir(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
DECLARE_WRITE_LINE_MEMBER(screen_vblank_wheelfir);
@@ -266,13 +264,13 @@ private:
};
-WRITE16_MEMBER(wheelfir_state::wheelfir_scanline_cnt_w)
+void wheelfir_state::wheelfir_scanline_cnt_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_scanline_cnt);
}
-WRITE16_MEMBER(wheelfir_state::wheelfir_blit_w)
+void wheelfir_state::wheelfir_blit_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_blitter_data[offset]);
@@ -535,7 +533,7 @@ WRITE_LINE_MEMBER(wheelfir_state::screen_vblank_wheelfir)
}
-WRITE16_MEMBER(wheelfir_state::wheelfir_7c0000_w)
+void wheelfir_state::wheelfir_7c0000_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
if (ACCESSING_BITS_8_15)
{
@@ -554,7 +552,7 @@ WRITE16_MEMBER(wheelfir_state::wheelfir_7c0000_w)
}
}
-READ16_MEMBER(wheelfir_state::wheelfir_7c0000_r)
+uint16_t wheelfir_state::wheelfir_7c0000_r(offs_t offset, uint16_t mem_mask)
{
uint16_t data = 0;
@@ -573,7 +571,7 @@ READ16_MEMBER(wheelfir_state::wheelfir_7c0000_r)
return data;
}
-WRITE16_MEMBER(wheelfir_state::coin_cnt_w)
+void wheelfir_state::coin_cnt_w(uint16_t data)
{
/* bits 0/1 coin counters */
machine().bookkeeping().coin_counter_w(0, data & 0x01);
diff --git a/src/mame/drivers/whitestar.cpp b/src/mame/drivers/whitestar.cpp
index 22e687d854c..948093f1b8d 100644
--- a/src/mame/drivers/whitestar.cpp
+++ b/src/mame/drivers/whitestar.cpp
@@ -31,11 +31,11 @@ private:
optional_device<decobsmt_device> m_decobsmt;
required_device<decodmd_type2_device> m_decodmd;
- DECLARE_WRITE8_MEMBER(bank_w);
- DECLARE_WRITE8_MEMBER(dmddata_w);
+ void bank_w(uint8_t data);
+ void dmddata_w(uint8_t data);
- DECLARE_READ8_MEMBER(switch_r);
- DECLARE_WRITE8_MEMBER(switch_w);
+ uint8_t switch_r();
+ void switch_w(uint8_t data);
virtual void machine_start() override;
INTERRUPT_GEN_MEMBER(whitestar_firq_interrupt);
@@ -95,22 +95,22 @@ void whitestar_state::whitestarm_map(address_map &map)
// TODO: sound writes
}
-READ8_MEMBER(whitestar_state::switch_r)
+uint8_t whitestar_state::switch_r()
{
return 0;
}
-WRITE8_MEMBER(whitestar_state::switch_w)
+void whitestar_state::switch_w(uint8_t data)
{
}
-WRITE8_MEMBER(whitestar_state::bank_w)
+void whitestar_state::bank_w(uint8_t data)
{
membank("bank1")->set_entry(data & 0x1f);
}
// Whitestar automatically pulses the DMD IRQ line? DE hardware doesn't do that...
-WRITE8_MEMBER(whitestar_state::dmddata_w)
+void whitestar_state::dmddata_w(uint8_t data)
{
m_decodmd->data_w(data);
m_decodmd->ctrl_w(1);
diff --git a/src/mame/drivers/wicat.cpp b/src/mame/drivers/wicat.cpp
index eb39e74398c..7c273fc5b04 100644
--- a/src/mame/drivers/wicat.cpp
+++ b/src/mame/drivers/wicat.cpp
@@ -65,30 +65,30 @@ public:
void wicat(machine_config &config);
private:
- DECLARE_READ16_MEMBER(invalid_r);
- DECLARE_WRITE16_MEMBER(invalid_w);
- DECLARE_READ16_MEMBER(memmap_r);
- DECLARE_WRITE16_MEMBER(memmap_w);
+ uint16_t invalid_r(offs_t offset);
+ void invalid_w(offs_t offset, uint16_t data);
+ uint16_t memmap_r();
+ void memmap_w(uint16_t data);
DECLARE_WRITE_LINE_MEMBER(adir_w);
DECLARE_WRITE_LINE_MEMBER(bdir_w);
void via_a_w(uint8_t data);
void via_b_w(uint8_t data);
- DECLARE_WRITE8_MEMBER(videosram_store_w);
- DECLARE_WRITE8_MEMBER(videosram_recall_w);
- DECLARE_READ8_MEMBER(video_timer_r);
- DECLARE_WRITE8_MEMBER(video_timer_w);
+ void videosram_store_w(uint8_t data);
+ void videosram_recall_w(uint8_t data);
+ uint8_t video_timer_r(offs_t offset);
+ void video_timer_w(offs_t offset, uint8_t data);
uint8_t vram_r(offs_t offset);
void vram_w(offs_t offset, uint8_t data);
- DECLARE_READ8_MEMBER(video_status_r);
+ uint8_t video_status_r();
DECLARE_WRITE_LINE_MEMBER(dma_hrq_w);
DECLARE_WRITE_LINE_MEMBER(crtc_irq_w);
DECLARE_WRITE_LINE_MEMBER(crtc_irq_clear_w);
- DECLARE_READ8_MEMBER(hdc_r);
- DECLARE_WRITE8_MEMBER(hdc_w);
- DECLARE_READ8_MEMBER(fdc_r);
- DECLARE_WRITE8_MEMBER(fdc_w);
- DECLARE_READ16_MEMBER(via_r);
- DECLARE_WRITE16_MEMBER(via_w);
+ uint8_t hdc_r(offs_t offset);
+ void hdc_w(offs_t offset, uint8_t data);
+ uint8_t fdc_r(offs_t offset);
+ void fdc_w(offs_t offset, uint8_t data);
+ uint16_t via_r(offs_t offset, uint16_t mem_mask = ~0);
+ void via_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
I8275_DRAW_CHARACTER_MEMBER(wicat_display_pixels);
required_device<m68000_device> m_maincpu;
@@ -378,7 +378,7 @@ void wicat_state::via_b_w(uint8_t data)
logerror("VIA: write %02x to port B\n",data);
}
-READ16_MEMBER( wicat_state::invalid_r )
+uint16_t wicat_state::invalid_r(offs_t offset)
{
if(!machine().side_effects_disabled())
{
@@ -389,7 +389,7 @@ READ16_MEMBER( wicat_state::invalid_r )
return 0xff;
}
-WRITE16_MEMBER( wicat_state::invalid_w )
+void wicat_state::invalid_w(offs_t offset, uint16_t data)
{
if(!machine().side_effects_disabled())
{
@@ -400,20 +400,20 @@ WRITE16_MEMBER( wicat_state::invalid_w )
}
// TODO
-READ16_MEMBER(wicat_state::memmap_r)
+uint16_t wicat_state::memmap_r()
{
popmessage("Memory mapping register EFFC01 read!");
return 0xff;
}
-WRITE16_MEMBER(wicat_state::memmap_w)
+void wicat_state::memmap_w(uint16_t data)
{
popmessage("Memory mapping register EFFC01 written!");
}
// WD1000 Winchester Disk controller (10MB 5 1/4" HD)
// for now, we'll just try to tell the system there is no HD
-READ8_MEMBER(wicat_state::hdc_r)
+uint8_t wicat_state::hdc_r(offs_t offset)
{
switch(offset)
{
@@ -425,7 +425,7 @@ READ8_MEMBER(wicat_state::hdc_r)
return 0x00;
}
-WRITE8_MEMBER(wicat_state::hdc_w)
+void wicat_state::hdc_w(offs_t offset, uint8_t data)
{
switch(offset)
{
@@ -471,7 +471,7 @@ WRITE8_MEMBER(wicat_state::hdc_w)
}
}
-READ8_MEMBER(wicat_state::fdc_r)
+uint8_t wicat_state::fdc_r(offs_t offset)
{
uint8_t ret = 0x00;
@@ -497,7 +497,7 @@ READ8_MEMBER(wicat_state::fdc_r)
return ret;
}
-WRITE8_MEMBER(wicat_state::fdc_w)
+void wicat_state::fdc_w(offs_t offset, uint8_t data)
{
popmessage("FDC: write offset %02x data %02x",offset,data);
switch(offset)
@@ -520,14 +520,14 @@ WRITE8_MEMBER(wicat_state::fdc_w)
}
}
-READ16_MEMBER(wicat_state::via_r)
+uint16_t wicat_state::via_r(offs_t offset, uint16_t mem_mask)
{
if(ACCESSING_BITS_0_7)
return m_via->read(offset);
return 0x00;
}
-WRITE16_MEMBER(wicat_state::via_w)
+void wicat_state::via_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
if(ACCESSING_BITS_0_7)
m_via->write(offset,data);
@@ -545,7 +545,7 @@ void wicat_state::vram_w(offs_t offset, uint8_t data)
m_videocpu->space(AS_IO).write_byte(offset*2,data);
}
-WRITE8_MEMBER(wicat_state::videosram_store_w)
+void wicat_state::videosram_store_w(uint8_t data)
{
if(data & 0x01) // unsure of the actual bit checked, the terminal code just writes 0xff
{
@@ -555,7 +555,7 @@ WRITE8_MEMBER(wicat_state::videosram_store_w)
}
}
-WRITE8_MEMBER(wicat_state::videosram_recall_w)
+void wicat_state::videosram_recall_w(uint8_t data)
{
if(data & 0x01) // unsure of the actual bit checked, the terminal code just writes 0xff
{
@@ -565,7 +565,7 @@ WRITE8_MEMBER(wicat_state::videosram_recall_w)
}
}
-READ8_MEMBER(wicat_state::video_timer_r)
+uint8_t wicat_state::video_timer_r(offs_t offset)
{
uint8_t ret = 0x00;
@@ -583,14 +583,14 @@ READ8_MEMBER(wicat_state::video_timer_r)
return ret;
}
-WRITE8_MEMBER(wicat_state::video_timer_w)
+void wicat_state::video_timer_w(offs_t offset, uint8_t data)
{
logerror("I/O port 0x%04x write %02x\n",offset,data);
if(offset == 0x01)
m_videouart->write(data);
}
-READ8_MEMBER(wicat_state::video_status_r)
+uint8_t wicat_state::video_status_r()
{
// this port is read in the NVI IRQ routine, which if bit 2 is set, will unmask DMA channel 0. But no idea what triggers it...
return m_crtc_irq ? 0x04 : 0x00;
diff --git a/src/mame/drivers/wico.cpp b/src/mame/drivers/wico.cpp
index 71377155aaa..c898ab72e99 100644
--- a/src/mame/drivers/wico.cpp
+++ b/src/mame/drivers/wico.cpp
@@ -63,17 +63,17 @@ public:
void wico(machine_config &config);
private:
- DECLARE_READ8_MEMBER(lampst_r);
- DECLARE_READ8_MEMBER(switch_r);
- DECLARE_WRITE8_MEMBER(muxen_w);
- DECLARE_WRITE8_MEMBER(muxld_w);
- DECLARE_WRITE8_MEMBER(csols_w);
- DECLARE_WRITE8_MEMBER(msols_w);
- DECLARE_WRITE8_MEMBER(dled0_w);
- DECLARE_WRITE8_MEMBER(dled1_w);
- DECLARE_WRITE8_MEMBER(zcres_w);
- DECLARE_WRITE8_MEMBER(wdogcl_w);
- DECLARE_READ8_MEMBER(gentmrcl_r);
+ uint8_t lampst_r();
+ uint8_t switch_r(offs_t offset);
+ void muxen_w(uint8_t data);
+ void muxld_w(uint8_t data);
+ void csols_w(uint8_t data);
+ void msols_w(uint8_t data);
+ void dled0_w(uint8_t data);
+ void dled1_w(uint8_t data);
+ void zcres_w(uint8_t data);
+ void wdogcl_w(uint8_t data);
+ uint8_t gentmrcl_r();
TIMER_DEVICE_CALLBACK_MEMBER(irq_housekeeping);
TIMER_DEVICE_CALLBACK_MEMBER(firq_housekeeping);
void ccpu_map(address_map &map);
@@ -113,7 +113,7 @@ void wico_state::hcpu_map(address_map &map)
//map(0x1fed, 0x1fed).r(FUNC(wico_state::solst1_r));
//map(0x1fee, 0x1fee).r(FUNC(wico_state::solst0_r));
map(0x1fef, 0x1fef).r(FUNC(wico_state::switch_r));
- map(0xf000, 0xffff).rom();
+ map(0xf000, 0xffff).rom().region("hcpu", 0);
}
// command cpu
@@ -137,8 +137,8 @@ void wico_state::ccpu_map(address_map &map)
//map(0x1fee, 0x1fee).r(FUNC(wico_state::solst0_r)); // switches
//map(0x1fef, 0x1fef).r(FUNC(wico_state::switch_r)); // switches
map(0x4000, 0x40ff).ram().share("nvram"); // X2212 4bit x 256 NVRAM, stores only when store_w is active
- map(0x8000, 0x9fff).rom();
- map(0xe000, 0xffff).rom();
+ map(0x8000, 0x9fff).rom().region("ccpu", 0);
+ map(0xe000, 0xffff).rom().region("ccpu", 0x2000);
}
static INPUT_PORTS_START( wico )
@@ -315,29 +315,29 @@ static INPUT_PORTS_START( wico )
INPUT_PORTS_END
// diagnostic display off
-WRITE8_MEMBER( wico_state::dled0_w )
+void wico_state::dled0_w(uint8_t data)
{
m_diag_on = 0;
m_digits[9] = 0;
}
// diagnostic display on
-WRITE8_MEMBER( wico_state::dled1_w )
+void wico_state::dled1_w(uint8_t data)
{
m_diag_on = 1;
m_digits[9] = m_diag_segments;
}
-WRITE8_MEMBER( wico_state::csols_w )
+void wico_state::csols_w(uint8_t data)
{
}
-WRITE8_MEMBER( wico_state::msols_w )
+void wico_state::msols_w(uint8_t data)
{
}
// write to diagnostic display
-WRITE8_MEMBER( wico_state::muxen_w )
+void wico_state::muxen_w(uint8_t data)
{
static const uint8_t patterns[16] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71 }; // MC14495
@@ -352,25 +352,25 @@ WRITE8_MEMBER( wico_state::muxen_w )
}
// reset digit/scan counter
-WRITE8_MEMBER( wico_state::muxld_w )
+void wico_state::muxld_w(uint8_t data)
{
}
// enable zero-crossing interrupt
-WRITE8_MEMBER( wico_state::zcres_w )
+void wico_state::zcres_w(uint8_t data)
{
m_zcen = 1;
}
// enable firq
-READ8_MEMBER( wico_state::gentmrcl_r )
+uint8_t wico_state::gentmrcl_r()
{
m_gten = 1;
return 0xff;
}
// read a switch row
-READ8_MEMBER( wico_state::switch_r )
+uint8_t wico_state::switch_r(offs_t offset)
{
char kbdrow[8];
offset = m_shared_ram[0x95];
@@ -388,7 +388,7 @@ READ8_MEMBER( wico_state::switch_r )
}
// write digits in main display
-READ8_MEMBER( wico_state::lampst_r )
+uint8_t wico_state::lampst_r()
{
int i, j;
for (i = 0; i < 5; i++)
@@ -403,7 +403,7 @@ READ8_MEMBER( wico_state::lampst_r )
}
// reset watchdog and enable housekeeping cpu
-WRITE8_MEMBER( wico_state::wdogcl_w )
+void wico_state::wdogcl_w(uint8_t data)
{
m_hcpu->set_input_line(INPUT_LINE_RESET, CLEAR_LINE);
}
@@ -466,12 +466,12 @@ void wico_state::wico(machine_config &config)
/ Af-Tor (1984)
/-------------------------------------------------------------------*/
ROM_START(aftor)
- ROM_REGION(0x10000, "hcpu", 0)
- ROM_LOAD("u25.bin", 0xf000, 0x1000, CRC(d66e95ff) SHA1(f7e8c51f1b37e7ef560406f1968c12a2043646c5))
+ ROM_REGION(0x1000, "hcpu", 0)
+ ROM_LOAD("u25.bin", 0x0000, 0x1000, CRC(d66e95ff) SHA1(f7e8c51f1b37e7ef560406f1968c12a2043646c5))
- ROM_REGION(0x10000, "ccpu", 0)
- ROM_LOAD("u52.bin", 0x8000, 0x2000, CRC(8035b446) SHA1(3ec59015e259c315bf09f4e2046f9d98e2d7a732))
- ROM_LOAD("u48.bin", 0xe000, 0x2000, CRC(b4406563) SHA1(6d1a9086eb1f6f947eae3a92ccf7a9b7375d85d3))
+ ROM_REGION(0x4000, "ccpu", 0)
+ ROM_LOAD("u52.bin", 0x0000, 0x2000, CRC(8035b446) SHA1(3ec59015e259c315bf09f4e2046f9d98e2d7a732))
+ ROM_LOAD("u48.bin", 0x2000, 0x2000, CRC(b4406563) SHA1(6d1a9086eb1f6f947eae3a92ccf7a9b7375d85d3))
ROM_END
/*-------------------------------------------------------------------
diff --git a/src/mame/drivers/wildpkr.cpp b/src/mame/drivers/wildpkr.cpp
index a5f75a822f6..9f77a554c81 100644
--- a/src/mame/drivers/wildpkr.cpp
+++ b/src/mame/drivers/wildpkr.cpp
@@ -213,17 +213,17 @@ private:
u16 m_clock_rate;
void wildpkr_palette(palette_device &palette) const;
- DECLARE_READ8_MEMBER(unknown_read8);
- DECLARE_WRITE8_MEMBER(unknown_write8);
- DECLARE_WRITE16_MEMBER(nvram_w);
- DECLARE_READ16_MEMBER(id_serial_r);
- DECLARE_WRITE16_MEMBER(id_serial_w);
- DECLARE_WRITE16_MEMBER(out0_w);
- DECLARE_WRITE16_MEMBER(out1_w);
- DECLARE_WRITE8_MEMBER(dac_w);
- DECLARE_WRITE16_MEMBER(clock_start_w);
- DECLARE_WRITE16_MEMBER(clock_rate_w);
- DECLARE_WRITE16_MEMBER(unknown_trigger_w);
+ u8 unknown_read8();
+ void unknown_write8(u8 data);
+ void nvram_w(offs_t offset, u16 data);
+ u16 id_serial_r();
+ void id_serial_w(u16 data);
+ void out0_w(u16 data);
+ void out1_w(u16 data);
+ void dac_w(u8 data);
+ void clock_start_w(u16 data);
+ void clock_rate_w(u16 data);
+ void unknown_trigger_w(u16 data);
u16 tabpkr_irq_ack(offs_t offset);
void cpu_space_map(address_map &map);
void hd63484_map(address_map &map);
@@ -255,44 +255,44 @@ void wildpkr_state::wildpkr_palette(palette_device &palette) const
* Misc Handlers *
*************************/
-READ8_MEMBER(wildpkr_state::unknown_read8)
+u8 wildpkr_state::unknown_read8()
{
return 0xff;
}
-WRITE8_MEMBER(wildpkr_state::unknown_write8)
+void wildpkr_state::unknown_write8(u8 data)
{
}
-WRITE16_MEMBER(wildpkr_state::nvram_w)
+void wildpkr_state::nvram_w(offs_t offset, u16 data)
{
m_nvram[offset] = data | 0xff00;
}
-READ16_MEMBER(wildpkr_state::id_serial_r)
+u16 wildpkr_state::id_serial_r()
{
return m_id->read();
}
-WRITE16_MEMBER(wildpkr_state::id_serial_w)
+void wildpkr_state::id_serial_w(u16 data)
{
m_id->write(data & 1);
}
-WRITE16_MEMBER(wildpkr_state::out0_w)
+void wildpkr_state::out0_w(u16 data)
{
}
-WRITE16_MEMBER(wildpkr_state::out1_w)
+void wildpkr_state::out1_w(u16 data)
{
}
-WRITE8_MEMBER(wildpkr_state::dac_w)
+void wildpkr_state::dac_w(u8 data)
{
m_dac->write(data);
}
-WRITE16_MEMBER(wildpkr_state::clock_start_w)
+void wildpkr_state::clock_start_w(u16 data)
{
if (data != 0 && m_clock_rate != 0)
m_dac_clock->set_clock_scale(1.0 / m_clock_rate);
@@ -300,12 +300,12 @@ WRITE16_MEMBER(wildpkr_state::clock_start_w)
m_dac_clock->set_clock_scale(0.0);
}
-WRITE16_MEMBER(wildpkr_state::clock_rate_w)
+void wildpkr_state::clock_rate_w(u16 data)
{
m_clock_rate = data;
}
-WRITE16_MEMBER(wildpkr_state::unknown_trigger_w)
+void wildpkr_state::unknown_trigger_w(u16 data)
{
}
diff --git a/src/mame/drivers/wink.cpp b/src/mame/drivers/wink.cpp
index 8620839d388..95b42890ecc 100644
--- a/src/mame/drivers/wink.cpp
+++ b/src/mame/drivers/wink.cpp
@@ -52,17 +52,17 @@ private:
bool m_nmi_enable;
- DECLARE_WRITE8_MEMBER(bgram_w);
+ void bgram_w(offs_t offset, uint8_t data);
DECLARE_WRITE_LINE_MEMBER(nmi_clock_w);
DECLARE_WRITE_LINE_MEMBER(nmi_enable_w);
DECLARE_WRITE_LINE_MEMBER(player_mux_w);
DECLARE_WRITE_LINE_MEMBER(tile_banking_w);
template<int Player> DECLARE_WRITE_LINE_MEMBER(coin_counter_w);
- DECLARE_READ8_MEMBER(analog_port_r);
- DECLARE_READ8_MEMBER(player_inputs_r);
- DECLARE_WRITE8_MEMBER(sound_irq_w);
- DECLARE_READ8_MEMBER(prot_r);
- DECLARE_WRITE8_MEMBER(prot_w);
+ uint8_t analog_port_r();
+ uint8_t player_inputs_r();
+ void sound_irq_w(uint8_t data);
+ uint8_t prot_r();
+ void prot_w(uint8_t data);
uint8_t sound_r();
TILE_GET_INFO_MEMBER(get_bg_tile_info);
@@ -107,10 +107,9 @@ uint32_t wink_state::screen_update_wink(screen_device &screen, bitmap_ind16 &bit
return 0;
}
-WRITE8_MEMBER(wink_state::bgram_w)
+void wink_state::bgram_w(offs_t offset, uint8_t data)
{
- uint8_t *videoram = m_videoram;
- videoram[offset] = data;
+ m_videoram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset);
}
@@ -145,17 +144,17 @@ WRITE_LINE_MEMBER(wink_state::coin_counter_w)
machine().bookkeeping().coin_counter_w(Player, state);
}
-READ8_MEMBER(wink_state::analog_port_r)
+uint8_t wink_state::analog_port_r()
{
return ioport(/* player_mux ? "DIAL2" : */ "DIAL1")->read();
}
-READ8_MEMBER(wink_state::player_inputs_r)
+uint8_t wink_state::player_inputs_r()
{
return ioport(/* player_mux ? "INPUTS2" : */ "INPUTS1")->read();
}
-WRITE8_MEMBER(wink_state::sound_irq_w)
+void wink_state::sound_irq_w(uint8_t data)
{
m_audiocpu->set_input_line(0, HOLD_LINE);
//sync with sound cpu (but it still loses some soundlatches...)
@@ -171,7 +170,7 @@ void wink_state::wink_map(address_map &map)
}
-READ8_MEMBER(wink_state::prot_r)
+uint8_t wink_state::prot_r()
{
//take a0-a7 and do some math using the variable created from the upper address-lines,
//put the result onto the databus.
@@ -191,7 +190,7 @@ the 8bit result is placed on the databus.
return 0x20; //hack to pass the jump calculated using this value
}
-WRITE8_MEMBER(wink_state::prot_w)
+void wink_state::prot_w(uint8_t data)
{
//take a9-a15 and stuff them in a variable for later use.
}
diff --git a/src/mame/drivers/wms.cpp b/src/mame/drivers/wms.cpp
index b06a92ef97b..369a81ccc2f 100644
--- a/src/mame/drivers/wms.cpp
+++ b/src/mame/drivers/wms.cpp
@@ -103,7 +103,7 @@ public:
void init_wms();
private:
- DECLARE_READ8_MEMBER(test_r);
+ uint8_t test_r();
uint32_t screen_update_wms(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void adsp_data_map(address_map &map);
@@ -130,7 +130,7 @@ void wms_state::wms_map(address_map &map)
map(0x60000, 0xfffff).rom().region("maincpu", 0x60000); // TODO: fix me
}
-READ8_MEMBER(wms_state::test_r)
+uint8_t wms_state::test_r()
{
return 1;
}
diff --git a/src/mame/drivers/wpc_95.cpp b/src/mame/drivers/wpc_95.cpp
index 88d9706f205..30ea552fda9 100644
--- a/src/mame/drivers/wpc_95.cpp
+++ b/src/mame/drivers/wpc_95.cpp
@@ -49,16 +49,16 @@ public:
void init_ttt();
private:
- DECLARE_WRITE8_MEMBER(bank_w);
- DECLARE_WRITE8_MEMBER(watchdog_w);
- DECLARE_WRITE8_MEMBER(irq_ack_w);
- DECLARE_READ8_MEMBER(firq_src_r);
- DECLARE_READ8_MEMBER(zc_r);
- DECLARE_READ8_MEMBER(dcs_data_r);
- DECLARE_WRITE8_MEMBER(dcs_data_w);
- DECLARE_READ8_MEMBER(dcs_ctrl_r);
- DECLARE_WRITE8_MEMBER(dcs_reset_w);
- DECLARE_READ8_MEMBER(rtc_r);
+ void bank_w(uint8_t data);
+ void watchdog_w(uint8_t data);
+ void irq_ack_w(uint8_t data);
+ uint8_t firq_src_r();
+ uint8_t zc_r();
+ uint8_t dcs_data_r();
+ void dcs_data_w(uint8_t data);
+ uint8_t dcs_ctrl_r();
+ void dcs_reset_w(uint8_t data);
+ uint8_t rtc_r(offs_t offset);
DECLARE_WRITE_LINE_MEMBER(scanline_irq);
TIMER_DEVICE_CALLBACK_MEMBER(zc_timer);
@@ -161,28 +161,28 @@ void wpc_95_state::wpc_95_map(address_map &map)
map(0x8000, 0xffff).rom().region("maincpu", 0xf8000);
}
-READ8_MEMBER(wpc_95_state::dcs_data_r)
+uint8_t wpc_95_state::dcs_data_r()
{
return dcs->data_r();
}
-WRITE8_MEMBER(wpc_95_state::dcs_data_w)
+void wpc_95_state::dcs_data_w(uint8_t data)
{
dcs->data_w(data);
}
-READ8_MEMBER(wpc_95_state::dcs_ctrl_r)
+uint8_t wpc_95_state::dcs_ctrl_r()
{
return dcs->control_r();
}
-WRITE8_MEMBER(wpc_95_state::dcs_reset_w)
+void wpc_95_state::dcs_reset_w(uint8_t data)
{
dcs->reset_w(0);
dcs->reset_w(1);
}
-READ8_MEMBER(wpc_95_state::rtc_r)
+uint8_t wpc_95_state::rtc_r(offs_t offset)
{
system_time systime;
machine().base_datetime(systime);
@@ -204,12 +204,12 @@ READ8_MEMBER(wpc_95_state::rtc_r)
}
}
-READ8_MEMBER(wpc_95_state::firq_src_r)
+uint8_t wpc_95_state::firq_src_r()
{
return firq_src;
}
-READ8_MEMBER(wpc_95_state::zc_r)
+uint8_t wpc_95_state::zc_r()
{
uint8_t res = zc;
zc &= 0x7f;
@@ -221,12 +221,12 @@ TIMER_DEVICE_CALLBACK_MEMBER(wpc_95_state::zc_timer)
zc |= 0x80;
}
-WRITE8_MEMBER(wpc_95_state::bank_w)
+void wpc_95_state::bank_w(uint8_t data)
{
rombank->set_entry(data & 0x3f);
}
-WRITE8_MEMBER(wpc_95_state::watchdog_w)
+void wpc_95_state::watchdog_w(uint8_t data)
{
}
@@ -236,7 +236,7 @@ WRITE_LINE_MEMBER(wpc_95_state::scanline_irq)
maincpu->set_input_line(1, state);
}
-WRITE8_MEMBER(wpc_95_state::irq_ack_w)
+void wpc_95_state::irq_ack_w(uint8_t data)
{
maincpu->set_input_line(0, CLEAR_LINE);
maincpu->set_input_line(1, CLEAR_LINE);
diff --git a/src/mame/drivers/wpc_an.cpp b/src/mame/drivers/wpc_an.cpp
index b08bd08a8f2..94325baa4e3 100644
--- a/src/mame/drivers/wpc_an.cpp
+++ b/src/mame/drivers/wpc_an.cpp
@@ -55,8 +55,8 @@ private:
static const device_timer_id TIMER_VBLANK = 0;
static const device_timer_id TIMER_IRQ = 1;
- DECLARE_READ8_MEMBER(ram_r);
- DECLARE_WRITE8_MEMBER(ram_w);
+ uint8_t ram_r(offs_t offset);
+ void ram_w(offs_t offset, uint8_t data);
DECLARE_WRITE_LINE_MEMBER(wpcsnd_reply_w);
DECLARE_WRITE_LINE_MEMBER(wpc_irq_w);
DECLARE_WRITE_LINE_MEMBER(wpc_firq_w);
@@ -288,12 +288,12 @@ void wpc_an_state::wpc_sound_s11_w(uint8_t data)
}
}
-READ8_MEMBER(wpc_an_state::ram_r)
+uint8_t wpc_an_state::ram_r(offs_t offset)
{
return m_ram[offset];
}
-WRITE8_MEMBER(wpc_an_state::ram_w)
+void wpc_an_state::ram_w(offs_t offset, uint8_t data)
{
if((!m_wpc->memprotect_active()) || ((offset & m_wpc->get_memprotect_mask()) != m_wpc->get_memprotect_mask()))
m_ram[offset] = data;
diff --git a/src/mame/drivers/wpc_dcs.cpp b/src/mame/drivers/wpc_dcs.cpp
index 3c14a1f7fe4..89e2510feb5 100644
--- a/src/mame/drivers/wpc_dcs.cpp
+++ b/src/mame/drivers/wpc_dcs.cpp
@@ -39,18 +39,18 @@ public:
void init_afv();
private:
- DECLARE_WRITE8_MEMBER(bank_w);
- DECLARE_WRITE8_MEMBER(watchdog_w);
- DECLARE_WRITE8_MEMBER(irq_ack_w);
- DECLARE_READ8_MEMBER(firq_src_r);
- DECLARE_READ8_MEMBER(zc_r);
- DECLARE_READ8_MEMBER(dcs_data_r);
- DECLARE_WRITE8_MEMBER(dcs_data_w);
- DECLARE_READ8_MEMBER(dcs_ctrl_r);
- DECLARE_WRITE8_MEMBER(dcs_reset_w);
- DECLARE_READ8_MEMBER(rtc_r);
- DECLARE_READ8_MEMBER(switches_r);
- DECLARE_WRITE8_MEMBER(switches_w);
+ void bank_w(uint8_t data);
+ void watchdog_w(uint8_t data);
+ void irq_ack_w(uint8_t data);
+ uint8_t firq_src_r();
+ uint8_t zc_r();
+ uint8_t dcs_data_r();
+ void dcs_data_w(uint8_t data);
+ uint8_t dcs_ctrl_r();
+ void dcs_reset_w(uint8_t data);
+ uint8_t rtc_r(offs_t offset);
+ uint8_t switches_r();
+ void switches_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER(scanline_irq);
TIMER_DEVICE_CALLBACK_MEMBER(zc_timer);
@@ -113,28 +113,28 @@ void wpc_dcs_state::wpc_dcs_map(address_map &map)
map(0x8000, 0xffff).rom().region("maincpu", 0x78000);
}
-READ8_MEMBER(wpc_dcs_state::dcs_data_r)
+uint8_t wpc_dcs_state::dcs_data_r()
{
return dcs->data_r();
}
-WRITE8_MEMBER(wpc_dcs_state::dcs_data_w)
+void wpc_dcs_state::dcs_data_w(uint8_t data)
{
dcs->data_w(data);
}
-READ8_MEMBER(wpc_dcs_state::dcs_ctrl_r)
+uint8_t wpc_dcs_state::dcs_ctrl_r()
{
return dcs->control_r();
}
-WRITE8_MEMBER(wpc_dcs_state::dcs_reset_w)
+void wpc_dcs_state::dcs_reset_w(uint8_t data)
{
dcs->reset_w(0);
dcs->reset_w(1);
}
-READ8_MEMBER(wpc_dcs_state::switches_r)
+uint8_t wpc_dcs_state::switches_r()
{
uint8_t res = 0xff;
for(int i=0; i<8; i++)
@@ -143,12 +143,12 @@ READ8_MEMBER(wpc_dcs_state::switches_r)
return res;
}
-WRITE8_MEMBER(wpc_dcs_state::switches_w)
+void wpc_dcs_state::switches_w(uint8_t data)
{
switch_col = data;
}
-READ8_MEMBER(wpc_dcs_state::rtc_r)
+uint8_t wpc_dcs_state::rtc_r(offs_t offset)
{
system_time systime;
machine().base_datetime(systime);
@@ -170,12 +170,12 @@ READ8_MEMBER(wpc_dcs_state::rtc_r)
}
}
-READ8_MEMBER(wpc_dcs_state::firq_src_r)
+uint8_t wpc_dcs_state::firq_src_r()
{
return firq_src;
}
-READ8_MEMBER(wpc_dcs_state::zc_r)
+uint8_t wpc_dcs_state::zc_r()
{
uint8_t res = zc;
zc &= 0x7f;
@@ -187,12 +187,12 @@ TIMER_DEVICE_CALLBACK_MEMBER(wpc_dcs_state::zc_timer)
zc |= 0x80;
}
-WRITE8_MEMBER(wpc_dcs_state::bank_w)
+void wpc_dcs_state::bank_w(uint8_t data)
{
rombank->set_entry(data & 0x1f);
}
-WRITE8_MEMBER(wpc_dcs_state::watchdog_w)
+void wpc_dcs_state::watchdog_w(uint8_t data)
{
// Mhhh? Maybe it's not 3ff3, maybe it's going down by itself...
maincpu->set_input_line(0, CLEAR_LINE);
@@ -204,7 +204,7 @@ WRITE_LINE_MEMBER(wpc_dcs_state::scanline_irq)
maincpu->set_input_line(1, state);
}
-WRITE8_MEMBER(wpc_dcs_state::irq_ack_w)
+void wpc_dcs_state::irq_ack_w(uint8_t data)
{
maincpu->set_input_line(0, CLEAR_LINE);
maincpu->set_input_line(1, CLEAR_LINE);
diff --git a/src/mame/drivers/wpc_s.cpp b/src/mame/drivers/wpc_s.cpp
index ee081c96ce1..5984e40739e 100644
--- a/src/mame/drivers/wpc_s.cpp
+++ b/src/mame/drivers/wpc_s.cpp
@@ -44,16 +44,16 @@ public:
void init_tfs();
private:
- DECLARE_WRITE8_MEMBER(bank_w);
- DECLARE_WRITE8_MEMBER(watchdog_w);
- DECLARE_WRITE8_MEMBER(irq_ack_w);
- DECLARE_READ8_MEMBER(firq_src_r);
- DECLARE_READ8_MEMBER(zc_r);
- DECLARE_READ8_MEMBER(dcs_data_r);
- DECLARE_WRITE8_MEMBER(dcs_data_w);
- DECLARE_READ8_MEMBER(dcs_ctrl_r);
- DECLARE_WRITE8_MEMBER(dcs_reset_w);
- DECLARE_READ8_MEMBER(rtc_r);
+ void bank_w(uint8_t data);
+ void watchdog_w(uint8_t data);
+ void irq_ack_w(uint8_t data);
+ uint8_t firq_src_r();
+ uint8_t zc_r();
+ uint8_t dcs_data_r();
+ void dcs_data_w(uint8_t data);
+ uint8_t dcs_ctrl_r();
+ void dcs_reset_w(uint8_t data);
+ uint8_t rtc_r(offs_t offset);
DECLARE_WRITE_LINE_MEMBER(scanline_irq);
TIMER_DEVICE_CALLBACK_MEMBER(zc_timer);
@@ -140,29 +140,29 @@ void wpc_s_state::wpc_s_map(address_map &map)
map(0x8000, 0xffff).rom().region("maincpu", 0x78000);
}
-READ8_MEMBER(wpc_s_state::dcs_data_r)
+uint8_t wpc_s_state::dcs_data_r()
{
return dcs->data_r();
}
-WRITE8_MEMBER(wpc_s_state::dcs_data_w)
+void wpc_s_state::dcs_data_w(uint8_t data)
{
dcs->data_w(data);
}
-READ8_MEMBER(wpc_s_state::dcs_ctrl_r)
+uint8_t wpc_s_state::dcs_ctrl_r()
{
return dcs->control_r();
}
-WRITE8_MEMBER(wpc_s_state::dcs_reset_w)
+void wpc_s_state::dcs_reset_w(uint8_t data)
{
dcs->reset_w(0);
dcs->reset_w(1);
}
-READ8_MEMBER(wpc_s_state::rtc_r)
+uint8_t wpc_s_state::rtc_r(offs_t offset)
{
system_time systime;
machine().base_datetime(systime);
@@ -184,12 +184,12 @@ READ8_MEMBER(wpc_s_state::rtc_r)
}
}
-READ8_MEMBER(wpc_s_state::firq_src_r)
+uint8_t wpc_s_state::firq_src_r()
{
return firq_src;
}
-READ8_MEMBER(wpc_s_state::zc_r)
+uint8_t wpc_s_state::zc_r()
{
uint8_t res = zc;
zc &= 0x7f;
@@ -201,12 +201,12 @@ TIMER_DEVICE_CALLBACK_MEMBER(wpc_s_state::zc_timer)
zc |= 0x80;
}
-WRITE8_MEMBER(wpc_s_state::bank_w)
+void wpc_s_state::bank_w(uint8_t data)
{
rombank->set_entry(data & 0x1f);
}
-WRITE8_MEMBER(wpc_s_state::watchdog_w)
+void wpc_s_state::watchdog_w(uint8_t data)
{
// Mhhh? Maybe it's not 3ff3, maybe it's going down by itself...
maincpu->set_input_line(0, CLEAR_LINE);
@@ -218,7 +218,7 @@ WRITE_LINE_MEMBER(wpc_s_state::scanline_irq)
maincpu->set_input_line(1, state);
}
-WRITE8_MEMBER(wpc_s_state::irq_ack_w)
+void wpc_s_state::irq_ack_w(uint8_t data)
{
maincpu->set_input_line(0, CLEAR_LINE);
maincpu->set_input_line(1, CLEAR_LINE);
diff --git a/src/mame/drivers/wxstar4000.cpp b/src/mame/drivers/wxstar4000.cpp
index f81b5f68af5..dfa504814ce 100644
--- a/src/mame/drivers/wxstar4000.cpp
+++ b/src/mame/drivers/wxstar4000.cpp
@@ -106,7 +106,7 @@ private:
optional_shared_ptr<uint16_t> m_mainram, m_extram, m_vram;
required_device<icm7170_device> m_rtc;
- DECLARE_READ16_MEMBER(buserr_r)
+ uint16_t buserr_r()
{
m_maincpu->set_input_line(M68K_LINE_BUSERROR, ASSERT_LINE);
m_maincpu->set_input_line(M68K_LINE_BUSERROR, CLEAR_LINE);
diff --git a/src/mame/drivers/wyvernf0.cpp b/src/mame/drivers/wyvernf0.cpp
index 61c52b01ed9..56b724c5215 100644
--- a/src/mame/drivers/wyvernf0.cpp
+++ b/src/mame/drivers/wyvernf0.cpp
@@ -84,8 +84,8 @@ private:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
- DECLARE_WRITE8_MEMBER(bgram_w);
- DECLARE_WRITE8_MEMBER(fgram_w);
+ void bgram_w(offs_t offset, uint8_t data);
+ void fgram_w(offs_t offset, uint8_t data);
uint32_t screen_update_wyvernf0(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect, bool is_foreground );
@@ -95,14 +95,14 @@ private:
uint8_t m_rombank;
uint8_t m_rambank;
- DECLARE_WRITE8_MEMBER(rambank_w);
- DECLARE_WRITE8_MEMBER(rombank_w);
- DECLARE_WRITE8_MEMBER(sound_command_w);
- DECLARE_WRITE8_MEMBER(nmi_disable_w);
- DECLARE_WRITE8_MEMBER(nmi_enable_w);
+ void rambank_w(uint8_t data);
+ void rombank_w(uint8_t data);
+ void sound_command_w(uint8_t data);
+ void nmi_disable_w(uint8_t data);
+ void nmi_enable_w(uint8_t data);
TIMER_CALLBACK_MEMBER(nmi_callback);
- DECLARE_READ8_MEMBER(mcu_status_r);
+ uint8_t mcu_status_r();
// devices
required_device<cpu_device> m_maincpu;
@@ -132,13 +132,13 @@ private:
***************************************************************************/
-WRITE8_MEMBER(wyvernf0_state::bgram_w)
+void wyvernf0_state::bgram_w(offs_t offset, uint8_t data)
{
m_bgram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset / 2);
}
-WRITE8_MEMBER(wyvernf0_state::fgram_w)
+void wyvernf0_state::fgram_w(offs_t offset, uint8_t data)
{
m_fgram[offset] = data;
m_fg_tilemap->mark_tile_dirty(offset / 2);
@@ -299,7 +299,7 @@ if (machine().input().code_pressed(KEYCODE_Z))
***************************************************************************/
-READ8_MEMBER(wyvernf0_state::mcu_status_r)
+uint8_t wyvernf0_state::mcu_status_r()
{
// bit 0 = when 1, MCU is ready to receive data from main CPU
// bit 1 = when 1, MCU has sent data to the main CPU
@@ -316,7 +316,7 @@ READ8_MEMBER(wyvernf0_state::mcu_status_r)
***************************************************************************/
// D100
-WRITE8_MEMBER(wyvernf0_state::rambank_w)
+void wyvernf0_state::rambank_w(uint8_t data)
{
// bit 0 Flip X/Y
// bit 1 Flip X/Y
@@ -337,7 +337,7 @@ WRITE8_MEMBER(wyvernf0_state::rambank_w)
}
// D200
-WRITE8_MEMBER(wyvernf0_state::rombank_w)
+void wyvernf0_state::rombank_w(uint8_t data)
{
// bit 0-2 ROM bank
m_rombank = data;
@@ -355,18 +355,18 @@ TIMER_CALLBACK_MEMBER(wyvernf0_state::nmi_callback)
m_pending_nmi = 1;
}
-WRITE8_MEMBER(wyvernf0_state::sound_command_w)
+void wyvernf0_state::sound_command_w(uint8_t data)
{
m_soundlatch->write(data);
machine().scheduler().synchronize(timer_expired_delegate(FUNC(wyvernf0_state::nmi_callback),this), data);
}
-WRITE8_MEMBER(wyvernf0_state::nmi_disable_w)
+void wyvernf0_state::nmi_disable_w(uint8_t data)
{
m_sound_nmi_enable = 0;
}
-WRITE8_MEMBER(wyvernf0_state::nmi_enable_w)
+void wyvernf0_state::nmi_enable_w(uint8_t data)
{
m_sound_nmi_enable = 1;
if (m_pending_nmi)
diff --git a/src/mame/drivers/xtheball.cpp b/src/mame/drivers/xtheball.cpp
index 91a7a11caf4..a1971a6f27f 100644
--- a/src/mame/drivers/xtheball.cpp
+++ b/src/mame/drivers/xtheball.cpp
@@ -52,8 +52,8 @@ private:
required_ioport m_analog_y;
DECLARE_WRITE_LINE_MEMBER(foreground_mode_w);
- DECLARE_READ16_MEMBER(analogx_r);
- DECLARE_READ16_MEMBER(analogy_watchdog_r);
+ uint16_t analogx_r();
+ uint16_t analogy_watchdog_r();
virtual void machine_start() override;
@@ -166,13 +166,13 @@ WRITE_LINE_MEMBER(xtheball_state::foreground_mode_w)
*
*************************************/
-READ16_MEMBER(xtheball_state::analogx_r)
+uint16_t xtheball_state::analogx_r()
{
return (m_analog_x->read() << 8) | 0x00ff;
}
-READ16_MEMBER(xtheball_state::analogy_watchdog_r)
+uint16_t xtheball_state::analogy_watchdog_r()
{
/* doubles as a watchdog address */
m_watchdog->watchdog_reset();
diff --git a/src/mame/drivers/xyonix.cpp b/src/mame/drivers/xyonix.cpp
index 4f6e70ef612..80126638f8d 100644
--- a/src/mame/drivers/xyonix.cpp
+++ b/src/mame/drivers/xyonix.cpp
@@ -71,11 +71,11 @@ private:
bool m_nmi_mask;
DECLARE_WRITE_LINE_MEMBER(nmiclk_w);
- DECLARE_WRITE8_MEMBER(irqack_w);
- DECLARE_WRITE8_MEMBER(nmiack_w);
- DECLARE_READ8_MEMBER(io_r);
- DECLARE_WRITE8_MEMBER(io_w);
- DECLARE_WRITE8_MEMBER(vidram_w);
+ void irqack_w(uint8_t data);
+ void nmiack_w(uint8_t data);
+ uint8_t io_r();
+ void io_w(uint8_t data);
+ void vidram_w(offs_t offset, uint8_t data);
TILE_GET_INFO_MEMBER(get_tile_info);
void xyonix_palette(palette_device &palette) const;
@@ -102,7 +102,7 @@ void xyonix_state::machine_reset()
m_nmi_mask = false;
}
-WRITE8_MEMBER(xyonix_state::irqack_w)
+void xyonix_state::irqack_w(uint8_t data)
{
m_maincpu->set_input_line(0, CLEAR_LINE);
}
@@ -113,7 +113,7 @@ WRITE_LINE_MEMBER(xyonix_state::nmiclk_w)
m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
}
-WRITE8_MEMBER(xyonix_state::nmiack_w)
+void xyonix_state::nmiack_w(uint8_t data)
{
m_nmi_mask = BIT(data, 0);
if (!m_nmi_mask)
@@ -160,7 +160,7 @@ TILE_GET_INFO_MEMBER(xyonix_state::get_tile_info)
tileinfo.set(0,tileno,attr >> 4,0);
}
-WRITE8_MEMBER(xyonix_state::vidram_w)
+void xyonix_state::vidram_w(offs_t offset, uint8_t data)
{
m_vidram[offset] = data;
m_tilemap->mark_tile_dirty((offset-1)&0x0fff);
@@ -246,7 +246,7 @@ void xyonix_state::handle_coins(int coin)
}
-READ8_MEMBER(xyonix_state::io_r)
+uint8_t xyonix_state::io_r()
{
int regPC = m_maincpu->pc();
@@ -297,7 +297,7 @@ READ8_MEMBER(xyonix_state::io_r)
return 0xff;
}
-WRITE8_MEMBER(xyonix_state::io_w)
+void xyonix_state::io_w(uint8_t data)
{
//logerror ("xyonix_port_e0_w %02x - PC = %04x\n", data, m_maincpu->pc());
m_e0_data = data;
diff --git a/src/mame/drivers/zr107.cpp b/src/mame/drivers/zr107.cpp
index 9c08cd60b2c..df3a81a72b4 100644
--- a/src/mame/drivers/zr107.cpp
+++ b/src/mame/drivers/zr107.cpp
@@ -208,10 +208,12 @@ public:
m_analog1(*this, "ANALOG1"),
m_analog2(*this, "ANALOG2"),
m_analog3(*this, "ANALOG3"),
+ m_pcb_digit(*this, "pcbdigit%u", 0U),
m_screen(*this, "screen"),
m_palette(*this, "palette"),
m_generic_paletteram_32(*this, "paletteram"),
- m_konppc(*this, "konppc") { }
+ m_konppc(*this, "konppc")
+ { }
void zr107(machine_config &config);
@@ -227,14 +229,13 @@ protected:
required_device<k001005_device> m_k001005;
required_device<k001006_device> m_k001006_1;
required_ioport m_in0, m_in1, m_in2, m_in3, m_in4, m_out4, m_eepromout, m_analog1, m_analog2, m_analog3;
+ output_finder<2> m_pcb_digit;
required_device<screen_device> m_screen;
required_device<palette_device> m_palette;
required_shared_ptr<uint32_t> m_generic_paletteram_32;
required_device<konppc_device> m_konppc;
std::unique_ptr<uint32_t[]> m_sharc_dataram;
- uint8_t m_led_reg0;
- uint8_t m_led_reg1;
int m_ccu_vcth;
int m_ccu_vctl;
uint8_t m_sound_ctrl;
@@ -312,8 +313,6 @@ uint32_t jetwave_state::screen_update(screen_device &screen, bitmap_rgb32 &bitma
m_k001005->draw(bitmap, cliprect);
m_k001604->draw_front_layer(screen, bitmap, cliprect);
- draw_7segment_led(bitmap, 3, 3, m_led_reg0);
- draw_7segment_led(bitmap, 9, 3, m_led_reg1);
return 0;
}
@@ -353,8 +352,6 @@ uint32_t midnrun_state::screen_update(screen_device &screen, bitmap_rgb32 &bitma
m_k001005->draw(bitmap, cliprect);
m_k056832->tilemap_draw(screen, bitmap, cliprect, 0, 0, 0);
- draw_7segment_led(bitmap, 3, 3, m_led_reg0);
- draw_7segment_led(bitmap, 9, 3, m_led_reg1);
return 0;
}
@@ -383,6 +380,8 @@ uint8_t zr107_state::sysreg_r(offs_t offset)
break;
case 5: /* Parallel data port */
break;
+ default:
+ break;
}
return r;
}
@@ -391,12 +390,9 @@ void zr107_state::sysreg_w(offs_t offset, uint8_t data)
{
switch (offset)
{
- case 0: /* LED Register 0 */
- m_led_reg0 = data;
- break;
-
- case 1: /* LED Register 1 */
- m_led_reg1 = data;
+ case 0: /* 7seg LEDs on PCB */
+ case 1:
+ m_pcb_digit[offset] = bitswap<8>(~data,7,0,1,2,3,4,5,6) & 0x7f;
break;
case 2: /* Parallel data register */
@@ -447,6 +443,8 @@ void zr107_state::sysreg_w(offs_t offset, uint8_t data)
m_watchdog->watchdog_reset();
break;
+ default:
+ break;
}
}
@@ -483,6 +481,8 @@ void zr107_state::ccu_w(uint32_t data)
void zr107_state::machine_start()
{
+ m_pcb_digit.resolve();
+
/* set conservative DRC options */
m_maincpu->ppcdrc_set_options(PPCDRC_COMPATIBLE_OPTIONS);
@@ -851,7 +851,6 @@ void jetwave_state::jetwave(machine_config &config)
void zr107_state::driver_init()
{
m_sharc_dataram = std::make_unique<uint32_t[]>(0x100000/4);
- m_led_reg0 = m_led_reg1 = 0x7f;
m_ccu_vcth = m_ccu_vctl = 0;
m_dsp->enable_recompiler();
diff --git a/src/mame/includes/abc1600.h b/src/mame/includes/abc1600.h
index ecd4a238f19..0165a8e83b4 100644
--- a/src/mame/includes/abc1600.h
+++ b/src/mame/includes/abc1600.h
@@ -103,17 +103,17 @@ public:
virtual void machine_start() override;
virtual void machine_reset() override;
- DECLARE_READ8_MEMBER( bus_r );
- DECLARE_WRITE8_MEMBER( bus_w );
- DECLARE_READ8_MEMBER( dart_r );
- DECLARE_WRITE8_MEMBER( dart_w );
- DECLARE_READ8_MEMBER( scc_r );
- DECLARE_WRITE8_MEMBER( scc_w );
- DECLARE_READ8_MEMBER( cio_r );
- DECLARE_WRITE8_MEMBER( cio_w );
- DECLARE_WRITE8_MEMBER( fw0_w );
- DECLARE_WRITE8_MEMBER( fw1_w );
- DECLARE_WRITE8_MEMBER( spec_contr_reg_w );
+ uint8_t bus_r(offs_t offset);
+ void bus_w(offs_t offset, uint8_t data);
+ uint8_t dart_r(offs_t offset);
+ void dart_w(offs_t offset, uint8_t data);
+ uint8_t scc_r(offs_t offset);
+ void scc_w(offs_t offset, uint8_t data);
+ uint8_t cio_r(offs_t offset);
+ void cio_w(offs_t offset, uint8_t data);
+ void fw0_w(uint8_t data);
+ void fw1_w(uint8_t data);
+ void spec_contr_reg_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER( dbrq_w );
diff --git a/src/mame/includes/actfancr.h b/src/mame/includes/actfancr.h
index d8b05b1d102..43640d7063e 100644
--- a/src/mame/includes/actfancr.h
+++ b/src/mame/includes/actfancr.h
@@ -40,7 +40,7 @@ public:
void triothep_control_select_w(uint8_t data);
uint8_t triothep_control_r();
- DECLARE_WRITE8_MEMBER(buffer_spriteram_w);
+ void buffer_spriteram_w(uint8_t data);
DECLARE_MACHINE_START(triothep);
DECLARE_MACHINE_RESET(triothep);
virtual void video_start() override;
diff --git a/src/mame/includes/adam.h b/src/mame/includes/adam.h
index 7ccb8923f44..e4f74309486 100644
--- a/src/mame/includes/adam.h
+++ b/src/mame/includes/adam.h
@@ -69,15 +69,15 @@ public:
virtual void machine_start() override;
virtual void machine_reset() override;
- DECLARE_READ8_MEMBER( mreq_r );
- DECLARE_WRITE8_MEMBER( mreq_w );
- DECLARE_READ8_MEMBER( iorq_r );
- DECLARE_WRITE8_MEMBER( iorq_w );
-
- DECLARE_READ8_MEMBER( adamnet_r );
- DECLARE_WRITE8_MEMBER( adamnet_w );
- DECLARE_READ8_MEMBER( mioc_r );
- DECLARE_WRITE8_MEMBER( mioc_w );
+ uint8_t mreq_r(offs_t offset);
+ void mreq_w(offs_t offset, uint8_t data);
+ uint8_t iorq_r(offs_t offset);
+ void iorq_w(offs_t offset, uint8_t data);
+
+ uint8_t adamnet_r();
+ void adamnet_w(uint8_t data);
+ uint8_t mioc_r();
+ void mioc_w(uint8_t data);
void m6801_p1_w(uint8_t data);
uint8_t m6801_p2_r();
diff --git a/src/mame/includes/aeroboto.h b/src/mame/includes/aeroboto.h
index b2a2e29453b..c5bf0c830a2 100644
--- a/src/mame/includes/aeroboto.h
+++ b/src/mame/includes/aeroboto.h
@@ -60,14 +60,14 @@ public:
/* misc */
int m_count;
int m_disable_irq;
- DECLARE_READ8_MEMBER(aeroboto_201_r);
- DECLARE_READ8_MEMBER(aeroboto_irq_ack_r);
- DECLARE_READ8_MEMBER(aeroboto_2973_r);
- DECLARE_WRITE8_MEMBER(aeroboto_1a2_w);
- DECLARE_READ8_MEMBER(aeroboto_in0_r);
- DECLARE_WRITE8_MEMBER(aeroboto_3000_w);
- DECLARE_WRITE8_MEMBER(aeroboto_videoram_w);
- DECLARE_WRITE8_MEMBER(aeroboto_tilecolor_w);
+ uint8_t aeroboto_201_r();
+ uint8_t aeroboto_irq_ack_r();
+ uint8_t aeroboto_2973_r();
+ void aeroboto_1a2_w(uint8_t data);
+ uint8_t aeroboto_in0_r();
+ void aeroboto_3000_w(uint8_t data);
+ void aeroboto_videoram_w(offs_t offset, uint8_t data);
+ void aeroboto_tilecolor_w(offs_t offset, uint8_t data);
TILE_GET_INFO_MEMBER(get_tile_info);
virtual void machine_start() override;
virtual void machine_reset() override;
diff --git a/src/mame/includes/aerofgt.h b/src/mame/includes/aerofgt.h
index 334f23ced1d..c444a3fa007 100644
--- a/src/mame/includes/aerofgt.h
+++ b/src/mame/includes/aerofgt.h
@@ -80,30 +80,30 @@ public:
uint32_t spinbrk_tile_callback( uint32_t code );
/* handlers */
- DECLARE_WRITE8_MEMBER(karatblzbl_soundlatch_w);
- DECLARE_READ8_MEMBER(pending_command_r);
- DECLARE_WRITE8_MEMBER(aerofgt_sh_bankswitch_w);
- DECLARE_WRITE8_MEMBER(spinlbrk_sh_bankswitch_w);
- DECLARE_WRITE8_MEMBER(aerfboot_okim6295_banking_w);
- template<int Layer> DECLARE_WRITE16_MEMBER(vram_w);
- DECLARE_WRITE8_MEMBER(pspikes_gfxbank_w);
- DECLARE_WRITE16_MEMBER(pspikesb_gfxbank_w);
- DECLARE_WRITE16_MEMBER(spikes91_lookup_w);
- DECLARE_WRITE8_MEMBER(karatblz_gfxbank_w);
- DECLARE_WRITE8_MEMBER(spinlbrk_gfxbank_w);
- DECLARE_WRITE8_MEMBER(kickball_gfxbank_w);
- DECLARE_WRITE16_MEMBER(turbofrc_gfxbank_w);
- DECLARE_WRITE16_MEMBER(aerofgt_gfxbank_w);
- template<int Layer> DECLARE_WRITE16_MEMBER(scrollx_w);
- template<int Layer> DECLARE_WRITE16_MEMBER(scrolly_w);
- DECLARE_WRITE8_MEMBER(pspikes_palette_bank_w);
- DECLARE_WRITE8_MEMBER(spinlbrk_flip_screen_w);
- DECLARE_WRITE8_MEMBER(turbofrc_flip_screen_w);
- DECLARE_WRITE16_MEMBER(wbbc97_bitmap_enable_w);
- DECLARE_WRITE16_MEMBER(pspikesb_oki_banking_w);
- DECLARE_WRITE16_MEMBER(aerfboo2_okim6295_banking_w);
- DECLARE_WRITE8_MEMBER(karatblzbl_d7759_write_port_0_w);
- DECLARE_WRITE8_MEMBER(karatblzbl_d7759_reset_w);
+ void karatblzbl_soundlatch_w(uint8_t data);
+ uint8_t pending_command_r();
+ void aerofgt_sh_bankswitch_w(uint8_t data);
+ void spinlbrk_sh_bankswitch_w(uint8_t data);
+ void aerfboot_okim6295_banking_w(uint8_t data);
+ template<int Layer> void vram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void pspikes_gfxbank_w(uint8_t data);
+ void pspikesb_gfxbank_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void spikes91_lookup_w(uint16_t data);
+ void karatblz_gfxbank_w(uint8_t data);
+ void spinlbrk_gfxbank_w(uint8_t data);
+ void kickball_gfxbank_w(uint8_t data);
+ void turbofrc_gfxbank_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void aerofgt_gfxbank_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ template<int Layer> void scrollx_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ template<int Layer> void scrolly_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void pspikes_palette_bank_w(uint8_t data);
+ void spinlbrk_flip_screen_w(uint8_t data);
+ void turbofrc_flip_screen_w(uint8_t data);
+ void wbbc97_bitmap_enable_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void pspikesb_oki_banking_w(uint16_t data);
+ void aerfboo2_okim6295_banking_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void karatblzbl_d7759_write_port_0_w(uint8_t data);
+ void karatblzbl_d7759_reset_w(uint8_t data);
TILE_GET_INFO_MEMBER(get_pspikes_tile_info);
template<int Layer> TILE_GET_INFO_MEMBER(karatblz_tile_info);
template<int Layer> TILE_GET_INFO_MEMBER(spinlbrk_tile_info);
diff --git a/src/mame/includes/airbustr.h b/src/mame/includes/airbustr.h
index b44e16d0fde..0deb971ef52 100644
--- a/src/mame/includes/airbustr.h
+++ b/src/mame/includes/airbustr.h
@@ -67,16 +67,16 @@ public:
required_device<watchdog_timer_device> m_watchdog;
required_device_array<generic_latch_8_device, 2> m_soundlatch;
- DECLARE_READ8_MEMBER(devram_r);
- DECLARE_WRITE8_MEMBER(master_nmi_trigger_w);
- DECLARE_WRITE8_MEMBER(master_bankswitch_w);
- DECLARE_WRITE8_MEMBER(slave_bankswitch_w);
- DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
- DECLARE_READ8_MEMBER(soundcommand_status_r);
- DECLARE_WRITE8_MEMBER(coin_counter_w);
- template<int Layer> DECLARE_WRITE8_MEMBER(videoram_w);
- template<int Layer> DECLARE_WRITE8_MEMBER(colorram_w);
- DECLARE_WRITE8_MEMBER(scrollregs_w);
+ uint8_t devram_r(address_space &space, offs_t offset);
+ void master_nmi_trigger_w(uint8_t data);
+ void master_bankswitch_w(uint8_t data);
+ void slave_bankswitch_w(uint8_t data);
+ void sound_bankswitch_w(uint8_t data);
+ uint8_t soundcommand_status_r();
+ void coin_counter_w(uint8_t data);
+ template<int Layer> void videoram_w(offs_t offset, uint8_t data);
+ template<int Layer> void colorram_w(offs_t offset, uint8_t data);
+ void scrollregs_w(offs_t offset, uint8_t data);
void init_airbustr();
template<int Layer> TILE_GET_INFO_MEMBER(get_tile_info);
virtual void machine_start() override;
diff --git a/src/mame/includes/ajax.h b/src/mame/includes/ajax.h
index 6dba7a9e698..105ad24ff37 100644
--- a/src/mame/includes/ajax.h
+++ b/src/mame/includes/ajax.h
@@ -33,13 +33,13 @@ public:
m_lamps(*this, "lamp%u", 0U)
{ }
- DECLARE_WRITE8_MEMBER(sound_bank_w);
- DECLARE_READ8_MEMBER(ls138_f10_r);
- DECLARE_WRITE8_MEMBER(ls138_f10_w);
- DECLARE_WRITE8_MEMBER(bankswitch_2_w);
- DECLARE_WRITE8_MEMBER(bankswitch_w);
- DECLARE_WRITE8_MEMBER(lamps_w);
- DECLARE_WRITE8_MEMBER(k007232_extvol_w);
+ void sound_bank_w(uint8_t data);
+ uint8_t ls138_f10_r(offs_t offset);
+ void ls138_f10_w(offs_t offset, uint8_t data);
+ void bankswitch_2_w(uint8_t data);
+ void bankswitch_w(uint8_t data);
+ void lamps_w(uint8_t data);
+ void k007232_extvol_w(uint8_t data);
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void volume_callback0(uint8_t data);
void volume_callback1(uint8_t data);
diff --git a/src/mame/includes/aliens.h b/src/mame/includes/aliens.h
index 48e8cc1a5e2..a02f6a10c68 100644
--- a/src/mame/includes/aliens.h
+++ b/src/mame/includes/aliens.h
@@ -42,10 +42,10 @@ public:
required_device<generic_latch_8_device> m_soundlatch;
required_memory_bank m_rombank;
- DECLARE_WRITE8_MEMBER(aliens_coin_counter_w);
- DECLARE_WRITE8_MEMBER(aliens_sh_irqtrigger_w);
- DECLARE_READ8_MEMBER(k052109_051960_r);
- DECLARE_WRITE8_MEMBER(k052109_051960_w);
+ void aliens_coin_counter_w(uint8_t data);
+ void aliens_sh_irqtrigger_w(uint8_t data);
+ uint8_t k052109_051960_r(offs_t offset);
+ void k052109_051960_w(offs_t offset, uint8_t data);
void aliens_snd_bankswitch_w(uint8_t data);
virtual void machine_start() override;
virtual void machine_reset() override;
diff --git a/src/mame/includes/amiga.h b/src/mame/includes/amiga.h
index 65dcf561ee1..9400deb6bd1 100644
--- a/src/mame/includes/amiga.h
+++ b/src/mame/includes/amiga.h
@@ -433,9 +433,9 @@ public:
DECLARE_WRITE_LINE_MEMBER( m68k_reset );
DECLARE_WRITE_LINE_MEMBER( kbreset_w );
- DECLARE_READ16_MEMBER( cia_r );
- DECLARE_WRITE16_MEMBER( cia_w );
- DECLARE_WRITE16_MEMBER( gayle_cia_w );
+ uint16_t cia_r(offs_t offset, uint16_t mem_mask = ~0);
+ void cia_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void gayle_cia_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
void cia_0_port_a_write(uint8_t data);
DECLARE_WRITE_LINE_MEMBER( cia_0_irq );
uint8_t cia_1_port_a_read();
@@ -453,13 +453,13 @@ public:
DECLARE_WRITE_LINE_MEMBER( centronics_perror_w );
DECLARE_WRITE_LINE_MEMBER( centronics_select_w );
- DECLARE_READ16_MEMBER( custom_chip_r );
+ uint16_t custom_chip_r(offs_t offset);
void custom_chip_w(offs_t offset, uint16_t data);
DECLARE_WRITE_LINE_MEMBER( paula_int_w );
- DECLARE_READ16_MEMBER( rom_mirror_r );
- DECLARE_READ32_MEMBER( rom_mirror32_r );
+ uint16_t rom_mirror_r(offs_t offset, uint16_t mem_mask = ~0);
+ uint32_t rom_mirror32_r(offs_t offset, uint32_t mem_mask = ~0);
DECLARE_WRITE_LINE_MEMBER(fdc_dskblk_w);
DECLARE_WRITE_LINE_MEMBER(fdc_dsksyn_w);
diff --git a/src/mame/includes/ampoker2.h b/src/mame/includes/ampoker2.h
index 45c1a4dbc56..66d1d7bbd62 100644
--- a/src/mame/includes/ampoker2.h
+++ b/src/mame/includes/ampoker2.h
@@ -31,15 +31,15 @@ protected:
virtual void machine_start() override;
private:
- DECLARE_WRITE8_MEMBER(port30_w);
- DECLARE_WRITE8_MEMBER(port31_w);
- DECLARE_WRITE8_MEMBER(port32_w);
- DECLARE_WRITE8_MEMBER(port33_w);
- DECLARE_WRITE8_MEMBER(port34_w);
- DECLARE_WRITE8_MEMBER(port35_w);
- DECLARE_WRITE8_MEMBER(port36_w);
- DECLARE_WRITE8_MEMBER(watchdog_reset_w);
- DECLARE_WRITE8_MEMBER(videoram_w);
+ void port30_w(uint8_t data);
+ void port31_w(uint8_t data);
+ void port32_w(uint8_t data);
+ void port33_w(uint8_t data);
+ void port34_w(uint8_t data);
+ void port35_w(uint8_t data);
+ void port36_w(uint8_t data);
+ void watchdog_reset_w(uint8_t data);
+ void videoram_w(offs_t offset, uint8_t data);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(s2k_get_bg_tile_info);
void ampoker2_palette(palette_device &palette) const;
diff --git a/src/mame/includes/amspdwy.h b/src/mame/includes/amspdwy.h
index cbd4bf74ef4..50346d8da64 100644
--- a/src/mame/includes/amspdwy.h
+++ b/src/mame/includes/amspdwy.h
@@ -63,12 +63,12 @@ private:
uint8_t m_wheel_old[2];
uint8_t m_wheel_return[2];
- DECLARE_READ8_MEMBER(amspdwy_wheel_0_r);
- DECLARE_READ8_MEMBER(amspdwy_wheel_1_r);
- DECLARE_WRITE8_MEMBER(amspdwy_flipscreen_w);
- DECLARE_WRITE8_MEMBER(amspdwy_videoram_w);
- DECLARE_WRITE8_MEMBER(amspdwy_colorram_w);
- DECLARE_READ8_MEMBER(amspdwy_sound_r);
+ uint8_t amspdwy_wheel_0_r();
+ uint8_t amspdwy_wheel_1_r();
+ void amspdwy_flipscreen_w(uint8_t data);
+ void amspdwy_videoram_w(offs_t offset, uint8_t data);
+ void amspdwy_colorram_w(offs_t offset, uint8_t data);
+ uint8_t amspdwy_sound_r();
TILE_GET_INFO_MEMBER(get_tile_info);
TILEMAP_MAPPER_MEMBER(tilemap_scan_cols_back);
diff --git a/src/mame/includes/angelkds.h b/src/mame/includes/angelkds.h
index 473ad31203c..72787df8cd1 100644
--- a/src/mame/includes/angelkds.h
+++ b/src/mame/includes/angelkds.h
@@ -48,19 +48,19 @@ public:
required_device<cpu_device> m_subcpu;
uint8_t angeklds_ff_r() { return 0xff; };
void angelkds_cpu_bank_write(uint8_t data);
- DECLARE_WRITE8_MEMBER(angelkds_main_sound_w);
- DECLARE_READ8_MEMBER(angelkds_main_sound_r);
- DECLARE_WRITE8_MEMBER(angelkds_sub_sound_w);
- DECLARE_READ8_MEMBER(angelkds_sub_sound_r);
- DECLARE_WRITE8_MEMBER(angelkds_txvideoram_w);
- DECLARE_WRITE8_MEMBER(angelkds_txbank_write);
- DECLARE_WRITE8_MEMBER(angelkds_bgtopvideoram_w);
- DECLARE_WRITE8_MEMBER(angelkds_bgtopbank_write);
- DECLARE_WRITE8_MEMBER(angelkds_bgtopscroll_write);
- DECLARE_WRITE8_MEMBER(angelkds_bgbotvideoram_w);
- DECLARE_WRITE8_MEMBER(angelkds_bgbotbank_write);
- DECLARE_WRITE8_MEMBER(angelkds_bgbotscroll_write);
- DECLARE_WRITE8_MEMBER(angelkds_layer_ctrl_write);
+ void angelkds_main_sound_w(offs_t offset, uint8_t data);
+ uint8_t angelkds_main_sound_r(offs_t offset);
+ void angelkds_sub_sound_w(offs_t offset, uint8_t data);
+ uint8_t angelkds_sub_sound_r(offs_t offset);
+ void angelkds_txvideoram_w(offs_t offset, uint8_t data);
+ void angelkds_txbank_write(uint8_t data);
+ void angelkds_bgtopvideoram_w(offs_t offset, uint8_t data);
+ void angelkds_bgtopbank_write(uint8_t data);
+ void angelkds_bgtopscroll_write(uint8_t data);
+ void angelkds_bgbotvideoram_w(offs_t offset, uint8_t data);
+ void angelkds_bgbotbank_write(uint8_t data);
+ void angelkds_bgbotscroll_write(uint8_t data);
+ void angelkds_layer_ctrl_write(uint8_t data);
void init_angelkds();
TILE_GET_INFO_MEMBER(get_tx_tile_info);
TILE_GET_INFO_MEMBER(get_bgtop_tile_info);
diff --git a/src/mame/includes/apollo.h b/src/mame/includes/apollo.h
index 352e02b9f69..ca852a59235 100644
--- a/src/mame/includes/apollo.h
+++ b/src/mame/includes/apollo.h
@@ -155,53 +155,53 @@ public:
optional_device<apollo_graphics_15i> m_graphics;
optional_device<apollo_kbd_device> m_keyboard;
- DECLARE_WRITE16_MEMBER(apollo_csr_status_register_w);
- DECLARE_READ16_MEMBER(apollo_csr_status_register_r);
- DECLARE_WRITE16_MEMBER(apollo_csr_control_register_w);
- DECLARE_READ16_MEMBER(apollo_csr_control_register_r);
- DECLARE_WRITE8_MEMBER(apollo_dma_1_w);
- DECLARE_READ8_MEMBER(apollo_dma_1_r);
- DECLARE_WRITE8_MEMBER(apollo_dma_2_w);
- DECLARE_READ8_MEMBER(apollo_dma_2_r);
- DECLARE_WRITE8_MEMBER(apollo_dma_page_register_w);
- DECLARE_READ8_MEMBER(apollo_dma_page_register_r);
- DECLARE_WRITE16_MEMBER(apollo_address_translation_map_w);
- DECLARE_READ16_MEMBER(apollo_address_translation_map_r);
+ void apollo_csr_status_register_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ uint16_t apollo_csr_status_register_r(offs_t offset, uint16_t mem_mask = ~0);
+ void apollo_csr_control_register_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ uint16_t apollo_csr_control_register_r(offs_t offset, uint16_t mem_mask = ~0);
+ void apollo_dma_1_w(offs_t offset, uint8_t data);
+ uint8_t apollo_dma_1_r(offs_t offset);
+ void apollo_dma_2_w(offs_t offset, uint8_t data);
+ uint8_t apollo_dma_2_r(offs_t offset);
+ void apollo_dma_page_register_w(offs_t offset, uint8_t data);
+ uint8_t apollo_dma_page_register_r(offs_t offset);
+ void apollo_address_translation_map_w(offs_t offset, uint16_t data);
+ uint16_t apollo_address_translation_map_r(offs_t offset);
uint8_t apollo_dma_read_byte(offs_t offset);
void apollo_dma_write_byte(offs_t offset, uint8_t data);
uint8_t apollo_dma_read_word(offs_t offset);
void apollo_dma_write_word(offs_t offset, uint8_t data);
- DECLARE_WRITE8_MEMBER(apollo_rtc_w);
- DECLARE_READ8_MEMBER(apollo_rtc_r);
- DECLARE_WRITE8_MEMBER(cache_control_register_w);
- DECLARE_READ8_MEMBER(cache_status_register_r);
- DECLARE_WRITE8_MEMBER(task_alias_register_w);
- DECLARE_READ8_MEMBER(task_alias_register_r);
- DECLARE_WRITE16_MEMBER(latch_page_on_parity_error_register_w);
- DECLARE_READ16_MEMBER(latch_page_on_parity_error_register_r);
- DECLARE_WRITE8_MEMBER(master_req_register_w);
- DECLARE_READ8_MEMBER(master_req_register_r);
- DECLARE_WRITE16_MEMBER(selective_clear_locations_w);
- DECLARE_READ16_MEMBER(selective_clear_locations_r);
- DECLARE_READ32_MEMBER(ram_with_parity_r);
- DECLARE_WRITE32_MEMBER(ram_with_parity_w);
- DECLARE_READ32_MEMBER(apollo_unmapped_r);
- DECLARE_WRITE32_MEMBER(apollo_unmapped_w);
- DECLARE_WRITE32_MEMBER(apollo_rom_w);
- DECLARE_READ16_MEMBER(apollo_atbus_io_r);
- DECLARE_WRITE16_MEMBER(apollo_atbus_io_w);
- DECLARE_READ16_MEMBER(apollo_atbus_memory_r);
- DECLARE_WRITE16_MEMBER(apollo_atbus_memory_w);
- DECLARE_READ16_MEMBER(apollo_atbus_unmap_io_r);
- DECLARE_WRITE16_MEMBER(apollo_atbus_unmap_io_w);
- DECLARE_READ8_MEMBER(apollo_atbus_unmap_r);
- DECLARE_WRITE8_MEMBER(apollo_atbus_unmap_w);
- DECLARE_WRITE8_MEMBER(dn5500_memory_present_register_w);
- DECLARE_READ8_MEMBER(dn5500_memory_present_register_r);
- DECLARE_WRITE8_MEMBER(dn5500_11500_w);
- DECLARE_READ8_MEMBER(dn5500_11500_r);
- DECLARE_WRITE8_MEMBER(dn5500_io_protection_map_w);
- DECLARE_READ8_MEMBER(dn5500_io_protection_map_r);
+ void apollo_rtc_w(offs_t offset, uint8_t data);
+ uint8_t apollo_rtc_r(offs_t offset);
+ void cache_control_register_w(offs_t offset, uint8_t data);
+ uint8_t cache_status_register_r(offs_t offset);
+ void task_alias_register_w(offs_t offset, uint8_t data);
+ uint8_t task_alias_register_r(offs_t offset);
+ void latch_page_on_parity_error_register_w(offs_t offset, uint16_t data);
+ uint16_t latch_page_on_parity_error_register_r(offs_t offset);
+ void master_req_register_w(offs_t offset, uint8_t data);
+ uint8_t master_req_register_r(offs_t offset);
+ void selective_clear_locations_w(offs_t offset, uint16_t data);
+ uint16_t selective_clear_locations_r(offs_t offset);
+ uint32_t ram_with_parity_r(offs_t offset, uint32_t mem_mask = ~0);
+ void ram_with_parity_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ uint32_t apollo_unmapped_r(offs_t offset, uint32_t mem_mask = ~0);
+ void apollo_unmapped_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ void apollo_rom_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ uint16_t apollo_atbus_io_r(offs_t offset, uint16_t mem_mask = ~0);
+ void apollo_atbus_io_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ uint16_t apollo_atbus_memory_r(offs_t offset, uint16_t mem_mask = ~0);
+ void apollo_atbus_memory_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ uint16_t apollo_atbus_unmap_io_r(offs_t offset, uint16_t mem_mask = ~0);
+ void apollo_atbus_unmap_io_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ uint8_t apollo_atbus_unmap_r(offs_t offset, uint8_t mem_mask = ~0);
+ void apollo_atbus_unmap_w(offs_t offset, uint8_t data, uint8_t mem_mask = ~0);
+ void dn5500_memory_present_register_w(offs_t offset, uint8_t data);
+ uint8_t dn5500_memory_present_register_r(offs_t offset);
+ void dn5500_11500_w(offs_t offset, uint8_t data);
+ uint8_t dn5500_11500_r(offs_t offset);
+ void dn5500_io_protection_map_w(offs_t offset, uint8_t data);
+ uint8_t dn5500_io_protection_map_r(offs_t offset);
void init_dsp3000();
void init_dsp5500();
void init_dn3500();
@@ -384,8 +384,8 @@ public:
virtual const char *custom_instance_name() const noexcept override { return "node_id"; }
virtual const char *custom_brief_instance_name() const noexcept override { return "ni"; }
- DECLARE_WRITE16_MEMBER(write);
- DECLARE_READ16_MEMBER(read);
+ void write(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ uint16_t read(offs_t offset, uint16_t mem_mask = ~0);
void set_node_id_from_disk();
@@ -414,22 +414,22 @@ public:
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
// monochrome control
- DECLARE_READ8_MEMBER( apollo_mcr_r );
- DECLARE_WRITE8_MEMBER( apollo_mcr_w );
+ uint8_t apollo_mcr_r(offs_t offset);
+ void apollo_mcr_w(offs_t offset, uint8_t data);
// monochrome and color memory
- DECLARE_READ16_MEMBER( apollo_mem_r );
- DECLARE_WRITE16_MEMBER( apollo_mem_w );
+ uint16_t apollo_mem_r(offs_t offset, uint16_t mem_mask = ~0);
+ void apollo_mem_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
// color control
- DECLARE_READ8_MEMBER( apollo_ccr_r );
- DECLARE_WRITE8_MEMBER( apollo_ccr_w );
+ uint8_t apollo_ccr_r(offs_t offset);
+ void apollo_ccr_w(offs_t offset, uint8_t data);
- DECLARE_READ16_MEMBER( apollo_mgm_r );
- DECLARE_WRITE16_MEMBER( apollo_mgm_w );
+ uint16_t apollo_mgm_r(offs_t offset, uint16_t mem_mask = ~0);
+ void apollo_mgm_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
- DECLARE_READ16_MEMBER( apollo_cgm_r );
- DECLARE_WRITE16_MEMBER( apollo_cgm_w );
+ uint16_t apollo_cgm_r(offs_t offset, uint16_t mem_mask = ~0);
+ void apollo_cgm_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
void vblank_state_changed(screen_device &screen, bool vblank_state);
diff --git a/src/mame/includes/appoooh.h b/src/mame/includes/appoooh.h
index 88673f98215..31f5c587605 100644
--- a/src/mame/includes/appoooh.h
+++ b/src/mame/includes/appoooh.h
@@ -33,13 +33,13 @@ public:
void robowrese(machine_config &config);
protected:
- DECLARE_WRITE8_MEMBER(adpcm_w);
- DECLARE_WRITE8_MEMBER(scroll_w);
- DECLARE_WRITE8_MEMBER(fg_videoram_w);
- DECLARE_WRITE8_MEMBER(fg_colorram_w);
- DECLARE_WRITE8_MEMBER(bg_videoram_w);
- DECLARE_WRITE8_MEMBER(bg_colorram_w);
- DECLARE_WRITE8_MEMBER(out_w);
+ void adpcm_w(uint8_t data);
+ void scroll_w(uint8_t data);
+ void fg_videoram_w(offs_t offset, uint8_t data);
+ void fg_colorram_w(offs_t offset, uint8_t data);
+ void bg_videoram_w(offs_t offset, uint8_t data);
+ void bg_colorram_w(offs_t offset, uint8_t data);
+ void out_w(uint8_t data);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void machine_start() override;
diff --git a/src/mame/includes/aquarius.h b/src/mame/includes/aquarius.h
index 2d8ebfaa678..d1c8ea069d1 100644
--- a/src/mame/includes/aquarius.h
+++ b/src/mame/includes/aquarius.h
@@ -84,17 +84,17 @@ private:
uint8_t m_scrambler;
tilemap_t *m_tilemap;
- DECLARE_WRITE8_MEMBER(aquarius_videoram_w);
- DECLARE_WRITE8_MEMBER(aquarius_colorram_w);
- DECLARE_READ8_MEMBER(cassette_r);
- DECLARE_WRITE8_MEMBER(cassette_w);
- DECLARE_READ8_MEMBER(vsync_r);
- DECLARE_WRITE8_MEMBER(mapper_w);
- DECLARE_READ8_MEMBER(printer_r);
- DECLARE_WRITE8_MEMBER(printer_w);
- DECLARE_READ8_MEMBER(keyboard_r);
- DECLARE_WRITE8_MEMBER(scrambler_w);
- DECLARE_READ8_MEMBER(cartridge_r);
+ void aquarius_videoram_w(offs_t offset, uint8_t data);
+ void aquarius_colorram_w(offs_t offset, uint8_t data);
+ uint8_t cassette_r();
+ void cassette_w(uint8_t data);
+ uint8_t vsync_r();
+ void mapper_w(uint8_t data);
+ uint8_t printer_r();
+ void printer_w(uint8_t data);
+ uint8_t keyboard_r(offs_t offset);
+ void scrambler_w(uint8_t data);
+ uint8_t cartridge_r(offs_t offset);
TILE_GET_INFO_MEMBER(aquarius_gettileinfo);
void aquarius_palette(palette_device &palette) const;
uint32_t screen_update_aquarius(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
diff --git a/src/mame/includes/arabian.h b/src/mame/includes/arabian.h
index 0455606a2b8..3142cf04773 100644
--- a/src/mame/includes/arabian.h
+++ b/src/mame/includes/arabian.h
@@ -49,8 +49,8 @@ private:
uint8_t mcu_portk_r();
void mcu_port_o_w(uint8_t data);
void mcu_port_p_w(uint8_t data);
- DECLARE_WRITE8_MEMBER(arabian_blitter_w);
- DECLARE_WRITE8_MEMBER(arabian_videoram_w);
+ void arabian_blitter_w(offs_t offset, uint8_t data);
+ void arabian_videoram_w(offs_t offset, uint8_t data);
void ay8910_porta_w(uint8_t data);
void ay8910_portb_w(uint8_t data);
void arabian_palette(palette_device &palette) const;
diff --git a/src/mame/includes/archimds.h b/src/mame/includes/archimds.h
index e545d01f476..5cb53b4ff44 100644
--- a/src/mame/includes/archimds.h
+++ b/src/mame/includes/archimds.h
@@ -71,13 +71,13 @@ public:
void archimedes_clear_irq_b(int mask);
void archimedes_clear_fiq(int mask);
- DECLARE_READ32_MEMBER(aristmk5_drame_memc_logical_r);
- DECLARE_READ32_MEMBER(archimedes_memc_logical_r);
- DECLARE_WRITE32_MEMBER(archimedes_memc_logical_w);
- DECLARE_WRITE32_MEMBER(archimedes_memc_w);
- DECLARE_WRITE32_MEMBER(archimedes_memc_page_w);
- DECLARE_READ32_MEMBER(archimedes_ioc_r);
- DECLARE_WRITE32_MEMBER(archimedes_ioc_w);
+ uint32_t aristmk5_drame_memc_logical_r(offs_t offset);
+ uint32_t archimedes_memc_logical_r(offs_t offset);
+ void archimedes_memc_logical_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ void archimedes_memc_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ void archimedes_memc_page_w(uint32_t data);
+ uint32_t archimedes_ioc_r(offs_t offset, uint32_t mem_mask = ~0);
+ void archimedes_ioc_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
DECLARE_WRITE_LINE_MEMBER( a310_kart_rx_w );
DECLARE_WRITE_LINE_MEMBER( a310_kart_tx_w );
@@ -112,8 +112,8 @@ private:
void latch_timer_cnt(int tmr);
void a310_set_timer(int tmr);
- DECLARE_READ32_MEMBER(ioc_ctrl_r);
- DECLARE_WRITE32_MEMBER(ioc_ctrl_w);
+ uint32_t ioc_ctrl_r(offs_t offset);
+ void ioc_ctrl_w(offs_t offset, uint32_t data);
uint32_t *m_archimedes_memc_physmem;
uint32_t m_memc_pagesize;
diff --git a/src/mame/includes/arkanoid.h b/src/mame/includes/arkanoid.h
index 82a62040406..491efd6ca03 100644
--- a/src/mame/includes/arkanoid.h
+++ b/src/mame/includes/arkanoid.h
@@ -66,19 +66,19 @@ public:
required_device<palette_device> m_palette;
- DECLARE_READ8_MEMBER(arkanoid_bootleg_f000_r);
- DECLARE_READ8_MEMBER(arkanoid_bootleg_f002_r);
- DECLARE_WRITE8_MEMBER(arkanoid_bootleg_d018_w);
- DECLARE_READ8_MEMBER(arkanoid_bootleg_d008_r);
- DECLARE_WRITE8_MEMBER(arkanoid_videoram_w);
- DECLARE_WRITE8_MEMBER(arkanoid_d008_w);
- DECLARE_WRITE8_MEMBER(tetrsark_d008_w);
- DECLARE_WRITE8_MEMBER(brixian_d008_w);
- DECLARE_WRITE8_MEMBER(hexa_d008_w);
- DECLARE_READ8_MEMBER(hexaa_f000_r);
- DECLARE_WRITE8_MEMBER(hexaa_f000_w);
- DECLARE_WRITE8_MEMBER(hexaa_sub_80_w);
- DECLARE_READ8_MEMBER(hexaa_sub_90_r);
+ uint8_t arkanoid_bootleg_f000_r();
+ uint8_t arkanoid_bootleg_f002_r();
+ void arkanoid_bootleg_d018_w(uint8_t data);
+ uint8_t arkanoid_bootleg_d008_r();
+ void arkanoid_videoram_w(offs_t offset, uint8_t data);
+ void arkanoid_d008_w(uint8_t data);
+ void tetrsark_d008_w(uint8_t data);
+ void brixian_d008_w(uint8_t data);
+ void hexa_d008_w(uint8_t data);
+ uint8_t hexaa_f000_r();
+ void hexaa_f000_w(uint8_t data);
+ void hexaa_sub_80_w(uint8_t data);
+ uint8_t hexaa_sub_90_r();
DECLARE_CUSTOM_INPUT_MEMBER(arkanoid_semaphore_input_r);
uint8_t input_mux_r();
void init_block2();
diff --git a/src/mame/includes/artmagic.h b/src/mame/includes/artmagic.h
index 2256d3ce787..cda9dc3195a 100644
--- a/src/mame/includes/artmagic.h
+++ b/src/mame/includes/artmagic.h
@@ -58,11 +58,11 @@ public:
uint8_t m_blitter_page;
attotime m_blitter_busy_until;
emu_timer * m_irq_off_timer;
- DECLARE_WRITE16_MEMBER(control_w);
- DECLARE_READ16_MEMBER(ultennis_hack_r);
- DECLARE_WRITE16_MEMBER(protection_bit_w);
- DECLARE_READ16_MEMBER(blitter_r);
- DECLARE_WRITE16_MEMBER(blitter_w);
+ void control_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ uint16_t ultennis_hack_r();
+ void protection_bit_w(offs_t offset, uint16_t data);
+ uint16_t blitter_r();
+ void blitter_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
DECLARE_WRITE_LINE_MEMBER(m68k_gen_int);
TMS340X0_TO_SHIFTREG_CB_MEMBER(to_shiftreg);
TMS340X0_FROM_SHIFTREG_CB_MEMBER(from_shiftreg);
diff --git a/src/mame/includes/asterix.h b/src/mame/includes/asterix.h
index 5bceb9f5c59..fd9dcd43459 100644
--- a/src/mame/includes/asterix.h
+++ b/src/mame/includes/asterix.h
@@ -50,11 +50,11 @@ public:
required_device<k056832_device> m_k056832;
required_device<k05324x_device> m_k053244;
required_device<k053251_device> m_k053251;
- DECLARE_WRITE16_MEMBER(control2_w);
- DECLARE_WRITE8_MEMBER(sound_arm_nmi_w);
- DECLARE_WRITE16_MEMBER(sound_irq_w);
- DECLARE_WRITE16_MEMBER(protection_w);
- DECLARE_WRITE16_MEMBER(asterix_spritebank_w);
+ void control2_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void sound_arm_nmi_w(uint8_t data);
+ void sound_irq_w(uint16_t data);
+ void protection_w(address_space &space, offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void asterix_spritebank_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
void init_asterix();
virtual void machine_start() override;
virtual void machine_reset() override;
diff --git a/src/mame/includes/asteroid.h b/src/mame/includes/asteroid.h
index 71081755291..56540eaa55c 100644
--- a/src/mame/includes/asteroid.h
+++ b/src/mame/includes/asteroid.h
@@ -43,18 +43,18 @@ public:
DECLARE_WRITE_LINE_MEMBER(coin_counter_left_w);
DECLARE_WRITE_LINE_MEMBER(coin_counter_center_w);
DECLARE_WRITE_LINE_MEMBER(coin_counter_right_w);
- DECLARE_READ8_MEMBER(asteroid_IN0_r);
- DECLARE_READ8_MEMBER(asterock_IN0_r);
- DECLARE_READ8_MEMBER(asteroid_IN1_r);
- DECLARE_READ8_MEMBER(asteroid_DSW1_r);
- DECLARE_WRITE8_MEMBER(asteroid_explode_w);
- DECLARE_WRITE8_MEMBER(asteroid_thump_w);
- DECLARE_WRITE8_MEMBER(asteroid_noise_reset_w);
- DECLARE_WRITE8_MEMBER(llander_snd_reset_w);
- DECLARE_WRITE8_MEMBER(llander_sounds_w);
+ uint8_t asteroid_IN0_r(offs_t offset);
+ uint8_t asterock_IN0_r(offs_t offset);
+ uint8_t asteroid_IN1_r(offs_t offset);
+ uint8_t asteroid_DSW1_r(offs_t offset);
+ void asteroid_explode_w(uint8_t data);
+ void asteroid_thump_w(uint8_t data);
+ void asteroid_noise_reset_w(uint8_t data);
+ void llander_snd_reset_w(uint8_t data);
+ void llander_sounds_w(uint8_t data);
- DECLARE_READ8_MEMBER(earom_read);
- DECLARE_WRITE8_MEMBER(earom_write);
+ uint8_t earom_read();
+ void earom_write(offs_t offset, uint8_t data);
void earom_control_w(uint8_t data);
DECLARE_READ_LINE_MEMBER(clock_r);
diff --git a/src/mame/includes/astrocde.h b/src/mame/includes/astrocde.h
index e37a6f80952..975e5258c8b 100644
--- a/src/mame/includes/astrocde.h
+++ b/src/mame/includes/astrocde.h
@@ -111,25 +111,25 @@ public:
uint8_t m_profpac_writemode;
uint16_t m_profpac_writemask;
uint8_t m_profpac_vw;
- DECLARE_WRITE8_MEMBER(protected_ram_enable_w);
- DECLARE_READ8_MEMBER(protected_ram_r);
- DECLARE_WRITE8_MEMBER(protected_ram_w);
+ void protected_ram_enable_w(uint8_t data);
+ uint8_t protected_ram_r(offs_t offset);
+ void protected_ram_w(offs_t offset, uint8_t data);
uint8_t input_mux_r(offs_t offset);
template<int Coin> DECLARE_WRITE_LINE_MEMBER(coin_counter_w);
template<int Bit> DECLARE_WRITE_LINE_MEMBER(sparkle_w);
DECLARE_WRITE_LINE_MEMBER(gorf_sound_switch_w);
- DECLARE_WRITE8_MEMBER(profpac_banksw_w);
- DECLARE_WRITE8_MEMBER(demndrgn_banksw_w);
- DECLARE_READ8_MEMBER(video_register_r);
- DECLARE_WRITE8_MEMBER(video_register_w);
- DECLARE_WRITE8_MEMBER(astrocade_funcgen_w);
- DECLARE_WRITE8_MEMBER(expand_register_w);
- DECLARE_WRITE8_MEMBER(astrocade_pattern_board_w);
- DECLARE_WRITE8_MEMBER(profpac_page_select_w);
- DECLARE_READ8_MEMBER(profpac_intercept_r);
- DECLARE_WRITE8_MEMBER(profpac_screenram_ctrl_w);
- DECLARE_READ8_MEMBER(profpac_videoram_r);
- DECLARE_WRITE8_MEMBER(profpac_videoram_w);
+ void profpac_banksw_w(uint8_t data);
+ void demndrgn_banksw_w(uint8_t data);
+ uint8_t video_register_r(offs_t offset);
+ void video_register_w(offs_t offset, uint8_t data);
+ void astrocade_funcgen_w(address_space &space, offs_t offset, uint8_t data);
+ void expand_register_w(uint8_t data);
+ void astrocade_pattern_board_w(offs_t offset, uint8_t data);
+ void profpac_page_select_w(uint8_t data);
+ uint8_t profpac_intercept_r();
+ void profpac_screenram_ctrl_w(offs_t offset, uint8_t data);
+ uint8_t profpac_videoram_r(offs_t offset);
+ void profpac_videoram_w(offs_t offset, uint8_t data);
DECLARE_INPUT_CHANGED_MEMBER(spacezap_monitor);
DECLARE_WRITE_LINE_MEMBER(lightpen_trigger_w);
void init_profpac();
@@ -197,8 +197,8 @@ public:
void seawolf2(machine_config &config);
private:
- DECLARE_WRITE8_MEMBER(sound_1_w);
- DECLARE_WRITE8_MEMBER(sound_2_w);
+ void sound_1_w(uint8_t data);
+ void sound_2_w(uint8_t data);
void port_map_discrete(address_map &map);
@@ -220,8 +220,8 @@ public:
void ebases(machine_config &config);
DECLARE_CUSTOM_INPUT_MEMBER(trackball_r);
private:
- DECLARE_WRITE8_MEMBER(trackball_select_w);
- DECLARE_WRITE8_MEMBER(coin_w);
+ void trackball_select_w(uint8_t data);
+ void coin_w(uint8_t data);
void ebases_map(address_map &map);
void port_map_ebases(address_map &map);
@@ -241,7 +241,7 @@ public:
DECLARE_CUSTOM_INPUT_MEMBER(joystick_r);
private:
DECLARE_WRITE_LINE_MEMBER(input_select_w);
- DECLARE_WRITE8_MEMBER(sound_w);
+ void sound_w(uint8_t data);
void port_map_16col_pattern_demndrgn(address_map &map);
@@ -259,9 +259,9 @@ public:
void tenpindx(machine_config &config);
private:
- DECLARE_WRITE8_MEMBER(lamp_w);
- DECLARE_WRITE8_MEMBER(counter_w);
- DECLARE_WRITE8_MEMBER(lights_w);
+ void lamp_w(offs_t offset, uint8_t data);
+ void counter_w(uint8_t data);
+ void lights_w(uint8_t data);
virtual void machine_start() override;
diff --git a/src/mame/includes/astrof.h b/src/mame/includes/astrof.h
index 80b3c6a5029..e4bf8971d1f 100644
--- a/src/mame/includes/astrof.h
+++ b/src/mame/includes/astrof.h
@@ -51,24 +51,24 @@ public:
optional_device<samples_device> m_samples; // astrof & abattle
optional_device<sn76477_device> m_sn; // tomahawk
required_device<screen_device> m_screen;
- DECLARE_READ8_MEMBER(irq_clear_r);
- DECLARE_WRITE8_MEMBER(astrof_videoram_w);
- DECLARE_WRITE8_MEMBER(tomahawk_videoram_w);
- DECLARE_WRITE8_MEMBER(video_control_1_w);
- DECLARE_WRITE8_MEMBER(astrof_video_control_2_w);
- DECLARE_WRITE8_MEMBER(spfghmk2_video_control_2_w);
- DECLARE_WRITE8_MEMBER(tomahawk_video_control_2_w);
- DECLARE_READ8_MEMBER(shoot_r);
- DECLARE_READ8_MEMBER(abattle_coin_prot_r);
- DECLARE_READ8_MEMBER(afire_coin_prot_r);
- DECLARE_READ8_MEMBER(tomahawk_protection_r);
+ uint8_t irq_clear_r();
+ void astrof_videoram_w(offs_t offset, uint8_t data);
+ void tomahawk_videoram_w(offs_t offset, uint8_t data);
+ void video_control_1_w(uint8_t data);
+ void astrof_video_control_2_w(uint8_t data);
+ void spfghmk2_video_control_2_w(uint8_t data);
+ void tomahawk_video_control_2_w(uint8_t data);
+ uint8_t shoot_r();
+ uint8_t abattle_coin_prot_r();
+ uint8_t afire_coin_prot_r();
+ uint8_t tomahawk_protection_r();
DECLARE_CUSTOM_INPUT_MEMBER(astrof_p1_controls_r);
DECLARE_CUSTOM_INPUT_MEMBER(astrof_p2_controls_r);
DECLARE_CUSTOM_INPUT_MEMBER(tomahawk_controls_r);
- DECLARE_WRITE8_MEMBER(astrof_audio_1_w);
- DECLARE_WRITE8_MEMBER(astrof_audio_2_w);
- DECLARE_WRITE8_MEMBER(spfghmk2_audio_w);
- DECLARE_WRITE8_MEMBER(tomahawk_audio_w);
+ void astrof_audio_1_w(uint8_t data);
+ void astrof_audio_2_w(uint8_t data);
+ void spfghmk2_audio_w(uint8_t data);
+ void tomahawk_audio_w(uint8_t data);
DECLARE_INPUT_CHANGED_MEMBER(coin_inserted);
DECLARE_INPUT_CHANGED_MEMBER(service_coin_inserted);
void init_afire();
diff --git a/src/mame/includes/atarifb.h b/src/mame/includes/atarifb.h
index d3d6ea9b31f..738fb508096 100644
--- a/src/mame/includes/atarifb.h
+++ b/src/mame/includes/atarifb.h
@@ -42,20 +42,20 @@ public:
m_leds(*this, "led%u", 0U)
{ }
- DECLARE_WRITE8_MEMBER(atarifb_out1_w);
- DECLARE_WRITE8_MEMBER(atarifb4_out1_w);
- DECLARE_WRITE8_MEMBER(abaseb_out1_w);
- DECLARE_WRITE8_MEMBER(soccer_out1_w);
- DECLARE_WRITE8_MEMBER(atarifb_out2_w);
- DECLARE_WRITE8_MEMBER(soccer_out2_w);
- DECLARE_WRITE8_MEMBER(atarifb_out3_w);
- DECLARE_READ8_MEMBER(atarifb_in0_r);
- DECLARE_READ8_MEMBER(atarifb_in2_r);
- DECLARE_READ8_MEMBER(atarifb4_in0_r);
- DECLARE_READ8_MEMBER(atarifb4_in2_r);
- DECLARE_WRITE8_MEMBER(atarifb_alpha1_videoram_w);
- DECLARE_WRITE8_MEMBER(atarifb_alpha2_videoram_w);
- DECLARE_WRITE8_MEMBER(atarifb_field_videoram_w);
+ void atarifb_out1_w(uint8_t data);
+ void atarifb4_out1_w(uint8_t data);
+ void abaseb_out1_w(uint8_t data);
+ void soccer_out1_w(uint8_t data);
+ void atarifb_out2_w(uint8_t data);
+ void soccer_out2_w(uint8_t data);
+ void atarifb_out3_w(uint8_t data);
+ uint8_t atarifb_in0_r();
+ uint8_t atarifb_in2_r();
+ uint8_t atarifb4_in0_r();
+ uint8_t atarifb4_in2_r();
+ void atarifb_alpha1_videoram_w(offs_t offset, uint8_t data);
+ void atarifb_alpha2_videoram_w(offs_t offset, uint8_t data);
+ void atarifb_field_videoram_w(offs_t offset, uint8_t data);
TILE_GET_INFO_MEMBER(alpha1_get_tile_info);
TILE_GET_INFO_MEMBER(alpha2_get_tile_info);
TILE_GET_INFO_MEMBER(field_get_tile_info);
diff --git a/src/mame/includes/atarig1.h b/src/mame/includes/atarig1.h
index a7073dcca7a..cf648105dc0 100644
--- a/src/mame/includes/atarig1.h
+++ b/src/mame/includes/atarig1.h
@@ -56,10 +56,10 @@ public:
virtual void device_post_load() override;
void video_int_ack_w(uint16_t data = 0);
TIMER_DEVICE_CALLBACK_MEMBER(scanline_update);
- DECLARE_WRITE16_MEMBER(mo_command_w);
- DECLARE_WRITE16_MEMBER(a2d_select_w);
- DECLARE_READ16_MEMBER(a2d_data_r);
- DECLARE_READ16_MEMBER(pitfightb_cheap_slapstic_r);
+ void mo_command_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void a2d_select_w(offs_t offset, uint16_t data);
+ uint16_t a2d_data_r();
+ uint16_t pitfightb_cheap_slapstic_r(offs_t offset);
void update_bank(int bank);
void init_hydrap();
void init_hydra();
diff --git a/src/mame/includes/atarig42.h b/src/mame/includes/atarig42.h
index 92edd38aa69..155585e2d5e 100644
--- a/src/mame/includes/atarig42.h
+++ b/src/mame/includes/atarig42.h
@@ -37,10 +37,10 @@ protected:
virtual void machine_start() override;
void video_int_ack_w(uint16_t data = 0);
TIMER_DEVICE_CALLBACK_MEMBER(scanline_update);
- DECLARE_WRITE8_MEMBER(a2d_select_w);
- DECLARE_READ8_MEMBER(a2d_data_r);
- DECLARE_WRITE16_MEMBER(io_latch_w);
- DECLARE_WRITE16_MEMBER(mo_command_w);
+ void a2d_select_w(offs_t offset, uint8_t data);
+ uint8_t a2d_data_r(offs_t offset);
+ void io_latch_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void mo_command_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
TILE_GET_INFO_MEMBER(get_alpha_tile_info);
TILE_GET_INFO_MEMBER(get_playfield_tile_info);
TILEMAP_MAPPER_MEMBER(atarig42_playfield_scan);
@@ -84,8 +84,8 @@ public:
void atarig42_0x200(machine_config &config);
protected:
- DECLARE_READ16_MEMBER(roadriot_sloop_data_r);
- DECLARE_WRITE16_MEMBER(roadriot_sloop_data_w);
+ uint16_t roadriot_sloop_data_r(offs_t offset);
+ void roadriot_sloop_data_w(offs_t offset, uint16_t data);
void roadriot_sloop_tweak(int offset);
};
@@ -97,8 +97,8 @@ public:
void atarig42_0x400(machine_config &config);
protected:
- DECLARE_READ16_MEMBER(guardians_sloop_data_r);
- DECLARE_WRITE16_MEMBER(guardians_sloop_data_w);
+ uint16_t guardians_sloop_data_r(offs_t offset);
+ void guardians_sloop_data_w(offs_t offset, uint16_t data);
void guardians_sloop_tweak(int offset);
};
diff --git a/src/mame/includes/atarigt.h b/src/mame/includes/atarigt.h
index b914be2cc18..3b37ca4a666 100644
--- a/src/mame/includes/atarigt.h
+++ b/src/mame/includes/atarigt.h
@@ -82,17 +82,17 @@ public:
void scanline_int_ack_w(uint32_t data = 0);
void video_int_ack_w(uint32_t data = 0);
TIMER_DEVICE_CALLBACK_MEMBER(scanline_update);
- DECLARE_READ32_MEMBER(special_port2_r);
- DECLARE_READ32_MEMBER(special_port3_r);
- DECLARE_READ8_MEMBER(analog_port_r);
- DECLARE_WRITE32_MEMBER(latch_w);
- DECLARE_WRITE32_MEMBER(mo_command_w);
- DECLARE_WRITE32_MEMBER(led_w);
- DECLARE_READ32_MEMBER(sound_data_r);
- DECLARE_WRITE32_MEMBER(sound_data_w);
- DECLARE_READ32_MEMBER(colorram_protection_r);
- DECLARE_WRITE32_MEMBER(colorram_protection_w);
- DECLARE_WRITE32_MEMBER(tmek_pf_w);
+ uint32_t special_port2_r();
+ uint32_t special_port3_r();
+ uint8_t analog_port_r(offs_t offset);
+ void latch_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ void mo_command_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ void led_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ uint32_t sound_data_r(offs_t offset, uint32_t mem_mask = ~0);
+ void sound_data_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ uint32_t colorram_protection_r(address_space &space, offs_t offset, uint32_t mem_mask = ~0);
+ void colorram_protection_w(address_space &space, offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ void tmek_pf_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
void cage_irq_callback(uint8_t data);
diff --git a/src/mame/includes/atarigx2.h b/src/mame/includes/atarigx2.h
index 2ff617ae91e..0a7c65d2f98 100644
--- a/src/mame/includes/atarigx2.h
+++ b/src/mame/includes/atarigx2.h
@@ -43,19 +43,19 @@ protected:
virtual void video_start() override;
void video_int_ack_w(uint32_t data = 0);
TIMER_DEVICE_CALLBACK_MEMBER(scanline_update);
- DECLARE_READ32_MEMBER(special_port2_r);
- DECLARE_READ32_MEMBER(special_port3_r);
- DECLARE_READ8_MEMBER(a2d_data_r);
- DECLARE_WRITE32_MEMBER(latch_w);
- DECLARE_WRITE32_MEMBER(mo_command_w);
- DECLARE_WRITE32_MEMBER(atarigx2_protection_w);
- DECLARE_READ32_MEMBER(atarigx2_protection_r);
- DECLARE_READ32_MEMBER(rrreveng_prot_r);
+ uint32_t special_port2_r();
+ uint32_t special_port3_r();
+ uint8_t a2d_data_r(offs_t offset);
+ void latch_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ void mo_command_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ void atarigx2_protection_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ uint32_t atarigx2_protection_r(offs_t offset, uint32_t mem_mask = ~0);
+ uint32_t rrreveng_prot_r();
TILE_GET_INFO_MEMBER(get_alpha_tile_info);
TILE_GET_INFO_MEMBER(get_playfield_tile_info);
TILEMAP_MAPPER_MEMBER(atarigx2_playfield_scan);
uint32_t screen_update_atarigx2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- DECLARE_WRITE16_MEMBER( atarigx2_mo_control_w );
+ void atarigx2_mo_control_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
void atarigx2(machine_config &config);
void main_map(address_map &map);
diff --git a/src/mame/includes/atarist.h b/src/mame/includes/atarist.h
index 600939053f7..8b740f24b59 100644
--- a/src/mame/includes/atarist.h
+++ b/src/mame/includes/atarist.h
@@ -168,42 +168,42 @@ protected:
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
// video
- DECLARE_READ8_MEMBER( shifter_base_r );
- DECLARE_READ8_MEMBER( shifter_counter_r );
- DECLARE_READ8_MEMBER( shifter_sync_r );
- DECLARE_READ16_MEMBER( shifter_palette_r );
- DECLARE_READ8_MEMBER( shifter_mode_r );
-
- DECLARE_WRITE8_MEMBER( shifter_base_w );
- DECLARE_WRITE8_MEMBER( shifter_sync_w );
- DECLARE_WRITE16_MEMBER( shifter_palette_w );
- DECLARE_WRITE8_MEMBER( shifter_mode_w );
-
- DECLARE_READ16_MEMBER( blitter_halftone_r );
- DECLARE_READ16_MEMBER( blitter_src_inc_x_r );
- DECLARE_READ16_MEMBER( blitter_src_inc_y_r );
- DECLARE_READ16_MEMBER( blitter_src_r );
- DECLARE_READ16_MEMBER( blitter_end_mask_r );
- DECLARE_READ16_MEMBER( blitter_dst_inc_x_r );
- DECLARE_READ16_MEMBER( blitter_dst_inc_y_r );
- DECLARE_READ16_MEMBER( blitter_dst_r );
- DECLARE_READ16_MEMBER( blitter_count_x_r );
- DECLARE_READ16_MEMBER( blitter_count_y_r );
- DECLARE_READ16_MEMBER( blitter_op_r );
- DECLARE_READ16_MEMBER( blitter_ctrl_r );
-
- DECLARE_WRITE16_MEMBER( blitter_halftone_w );
- DECLARE_WRITE16_MEMBER( blitter_src_inc_x_w );
- DECLARE_WRITE16_MEMBER( blitter_src_inc_y_w );
- DECLARE_WRITE16_MEMBER( blitter_src_w );
- DECLARE_WRITE16_MEMBER( blitter_end_mask_w );
- DECLARE_WRITE16_MEMBER( blitter_dst_inc_x_w );
- DECLARE_WRITE16_MEMBER( blitter_dst_inc_y_w );
- DECLARE_WRITE16_MEMBER( blitter_dst_w );
- DECLARE_WRITE16_MEMBER( blitter_count_x_w );
- DECLARE_WRITE16_MEMBER( blitter_count_y_w );
- DECLARE_WRITE16_MEMBER( blitter_op_w );
- DECLARE_WRITE16_MEMBER( blitter_ctrl_w );
+ uint8_t shifter_base_r(offs_t offset);
+ uint8_t shifter_counter_r(offs_t offset);
+ uint8_t shifter_sync_r();
+ uint16_t shifter_palette_r(offs_t offset);
+ uint8_t shifter_mode_r();
+
+ void shifter_base_w(offs_t offset, uint8_t data);
+ void shifter_sync_w(uint8_t data);
+ void shifter_palette_w(offs_t offset, uint16_t data);
+ void shifter_mode_w(uint8_t data);
+
+ uint16_t blitter_halftone_r(offs_t offset);
+ uint16_t blitter_src_inc_x_r();
+ uint16_t blitter_src_inc_y_r();
+ uint16_t blitter_src_r(offs_t offset);
+ uint16_t blitter_end_mask_r(offs_t offset);
+ uint16_t blitter_dst_inc_x_r();
+ uint16_t blitter_dst_inc_y_r();
+ uint16_t blitter_dst_r(offs_t offset);
+ uint16_t blitter_count_x_r();
+ uint16_t blitter_count_y_r();
+ uint16_t blitter_op_r(offs_t offset, uint16_t mem_mask = ~0);
+ uint16_t blitter_ctrl_r(offs_t offset, uint16_t mem_mask = ~0);
+
+ void blitter_halftone_w(offs_t offset, uint16_t data);
+ void blitter_src_inc_x_w(uint16_t data);
+ void blitter_src_inc_y_w(uint16_t data);
+ void blitter_src_w(offs_t offset, uint16_t data);
+ void blitter_end_mask_w(offs_t offset, uint16_t data);
+ void blitter_dst_inc_x_w(uint16_t data);
+ void blitter_dst_inc_y_w(uint16_t data);
+ void blitter_dst_w(offs_t offset, uint16_t data);
+ void blitter_count_x_w(uint16_t data);
+ void blitter_count_y_w(uint16_t data);
+ void blitter_op_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void blitter_ctrl_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
void mouse_tick();
inline pen_t shift_mode_0();
@@ -220,16 +220,16 @@ protected:
void blitter_tick();
// driver
- DECLARE_READ16_MEMBER( fdc_data_r );
- DECLARE_WRITE16_MEMBER( fdc_data_w );
- DECLARE_READ16_MEMBER( dma_status_r );
- DECLARE_WRITE16_MEMBER( dma_mode_w );
- DECLARE_READ8_MEMBER( dma_counter_r );
- DECLARE_WRITE8_MEMBER( dma_base_w );
- DECLARE_READ8_MEMBER( mmu_r );
- DECLARE_WRITE8_MEMBER( mmu_w );
- DECLARE_READ16_MEMBER( berr_r );
- DECLARE_WRITE16_MEMBER( berr_w );
+ uint16_t fdc_data_r(offs_t offset);
+ void fdc_data_w(offs_t offset, uint16_t data);
+ uint16_t dma_status_r();
+ void dma_mode_w(uint16_t data);
+ uint8_t dma_counter_r(offs_t offset);
+ void dma_base_w(offs_t offset, uint8_t data);
+ uint8_t mmu_r();
+ void mmu_w(uint8_t data);
+ uint16_t berr_r();
+ void berr_w(uint16_t data);
uint8_t ikbd_port1_r();
uint8_t ikbd_port2_r();
void ikbd_port2_w(uint8_t data);
@@ -353,8 +353,8 @@ public:
: st_state(mconfig, type, tag)
{ }
- DECLARE_READ16_MEMBER( fpu_r );
- DECLARE_WRITE16_MEMBER( fpu_w );
+ uint16_t fpu_r();
+ void fpu_w(uint16_t data);
void megast(machine_config &config);
void megast_map(address_map &map);
};
@@ -375,29 +375,29 @@ public:
optional_device<lmc1992_device> m_lmc1992;
- DECLARE_READ8_MEMBER( shifter_base_low_r );
- DECLARE_WRITE8_MEMBER( shifter_base_low_w );
- DECLARE_READ8_MEMBER( shifter_counter_r );
- DECLARE_WRITE8_MEMBER( shifter_counter_w );
- DECLARE_WRITE16_MEMBER( shifter_palette_w );
- DECLARE_READ8_MEMBER( shifter_lineofs_r );
- DECLARE_WRITE8_MEMBER( shifter_lineofs_w );
- DECLARE_READ8_MEMBER( shifter_pixelofs_r );
- DECLARE_WRITE8_MEMBER( shifter_pixelofs_w );
-
- DECLARE_READ8_MEMBER( sound_dma_control_r );
- DECLARE_READ8_MEMBER( sound_dma_base_r );
- DECLARE_READ8_MEMBER( sound_dma_counter_r );
- DECLARE_READ8_MEMBER( sound_dma_end_r );
- DECLARE_READ8_MEMBER( sound_mode_r );
- DECLARE_WRITE8_MEMBER( sound_dma_control_w );
- DECLARE_WRITE8_MEMBER( sound_dma_base_w );
- DECLARE_WRITE8_MEMBER( sound_dma_end_w );
- DECLARE_WRITE8_MEMBER( sound_mode_w );
- DECLARE_READ16_MEMBER( microwire_data_r );
- DECLARE_WRITE16_MEMBER( microwire_data_w );
- DECLARE_READ16_MEMBER( microwire_mask_r );
- DECLARE_WRITE16_MEMBER( microwire_mask_w );
+ uint8_t shifter_base_low_r();
+ void shifter_base_low_w(uint8_t data);
+ uint8_t shifter_counter_r(offs_t offset);
+ void shifter_counter_w(offs_t offset, uint8_t data);
+ void shifter_palette_w(offs_t offset, uint16_t data);
+ uint8_t shifter_lineofs_r();
+ void shifter_lineofs_w(uint8_t data);
+ uint8_t shifter_pixelofs_r();
+ void shifter_pixelofs_w(uint8_t data);
+
+ uint8_t sound_dma_control_r();
+ uint8_t sound_dma_base_r(offs_t offset);
+ uint8_t sound_dma_counter_r(offs_t offset);
+ uint8_t sound_dma_end_r(offs_t offset);
+ uint8_t sound_mode_r();
+ void sound_dma_control_w(uint8_t data);
+ void sound_dma_base_w(offs_t offset, uint8_t data);
+ void sound_dma_end_w(offs_t offset, uint8_t data);
+ void sound_mode_w(uint8_t data);
+ uint16_t microwire_data_r();
+ void microwire_data_w(uint16_t data);
+ uint16_t microwire_mask_r();
+ void microwire_mask_w(uint16_t data);
DECLARE_WRITE_LINE_MEMBER( write_monochrome );
@@ -450,8 +450,8 @@ public:
: ste_state(mconfig, type, tag)
{ }
- DECLARE_READ16_MEMBER( cache_r );
- DECLARE_WRITE16_MEMBER( cache_w );
+ uint16_t cache_r();
+ void cache_w(uint16_t data);
uint16_t m_cache;
void megaste(machine_config &config);
@@ -471,11 +471,11 @@ public:
required_ioport m_sw400;
- DECLARE_READ16_MEMBER( config_r );
- DECLARE_WRITE16_MEMBER( lcd_control_w );
+ uint16_t config_r();
+ void lcd_control_w(uint16_t data);
void psg_pa_w(uint8_t data);
- DECLARE_READ8_MEMBER( mfp_gpio_r );
+ uint8_t mfp_gpio_r();
void stbook_map(address_map &map);
protected:
virtual void machine_start() override;
diff --git a/src/mame/includes/atarisy1.h b/src/mame/includes/atarisy1.h
index fd5eb7b9f43..aac95be7055 100644
--- a/src/mame/includes/atarisy1.h
+++ b/src/mame/includes/atarisy1.h
@@ -135,12 +135,12 @@ protected:
virtual void update_timers(int scanline);
void decode_gfx(uint16_t *pflookup, uint16_t *molookup);
int get_bank(uint8_t prom1, uint8_t prom2, int bpp);
- DECLARE_READ16_MEMBER( atarisy1_int3state_r );
- DECLARE_WRITE16_MEMBER( atarisy1_spriteram_w );
+ uint16_t atarisy1_int3state_r();
+ void atarisy1_spriteram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
void bankselect_w(uint8_t data);
- DECLARE_WRITE16_MEMBER( atarisy1_xscroll_w );
- DECLARE_WRITE16_MEMBER( atarisy1_yscroll_w );
- DECLARE_WRITE16_MEMBER( atarisy1_priority_w );
+ void atarisy1_xscroll_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void atarisy1_yscroll_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void atarisy1_priority_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
static const atari_motion_objects_config s_mob_config;
void add_adc(machine_config &config);
diff --git a/src/mame/includes/atarisy2.h b/src/mame/includes/atarisy2.h
index e0c171be570..d3e54ff346d 100644
--- a/src/mame/includes/atarisy2.h
+++ b/src/mame/includes/atarisy2.h
@@ -146,11 +146,11 @@ private:
DECLARE_WRITE_LINE_MEMBER(vblank_int);
TIMER_CALLBACK_MEMBER(delayed_int_enable_w);
TIMER_CALLBACK_MEMBER(reset_yscroll_callback);
- DECLARE_READ16_MEMBER(slapstic_r);
- DECLARE_WRITE16_MEMBER(slapstic_w);
- DECLARE_WRITE16_MEMBER(yscroll_w);
- DECLARE_WRITE16_MEMBER(xscroll_w);
- DECLARE_WRITE16_MEMBER(spriteram_w);
+ uint16_t slapstic_r(address_space &space, offs_t offset);
+ void slapstic_w(address_space &space, offs_t offset, uint16_t data);
+ void yscroll_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void xscroll_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void spriteram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
static rgb_t RRRRGGGGBBBBIIII(uint32_t raw);
static const atari_motion_objects_config s_mob_config;
diff --git a/src/mame/includes/atetris.h b/src/mame/includes/atetris.h
index ad7c4da8c86..2a29c4b7325 100644
--- a/src/mame/includes/atetris.h
+++ b/src/mame/includes/atetris.h
@@ -54,10 +54,10 @@ protected:
emu_timer *m_interrupt_timer;
tilemap_t *m_bg_tilemap;
- DECLARE_WRITE8_MEMBER(irq_ack_w);
- DECLARE_READ8_MEMBER(slapstic_r);
- DECLARE_WRITE8_MEMBER(coincount_w);
- DECLARE_WRITE8_MEMBER(videoram_w);
+ void irq_ack_w(uint8_t data);
+ uint8_t slapstic_r(address_space &space, offs_t offset);
+ void coincount_w(uint8_t data);
+ void videoram_w(offs_t offset, uint8_t data);
TILE_GET_INFO_MEMBER(get_tile_info);
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_CALLBACK_MEMBER(interrupt_gen);
diff --git a/src/mame/includes/aussiebyte.h b/src/mame/includes/aussiebyte.h
index 7974d53210c..488b8f249ff 100644
--- a/src/mame/includes/aussiebyte.h
+++ b/src/mame/includes/aussiebyte.h
@@ -75,23 +75,23 @@ protected:
uint8_t io_read_byte(offs_t offset);
void io_write_byte(offs_t offset, uint8_t data);
DECLARE_WRITE_LINE_MEMBER(write_centronics_busy);
- DECLARE_WRITE8_MEMBER(port15_w);
- DECLARE_WRITE8_MEMBER(port16_w);
- DECLARE_WRITE8_MEMBER(port17_w);
- DECLARE_WRITE8_MEMBER(port18_w);
- DECLARE_READ8_MEMBER(port19_r);
- DECLARE_WRITE8_MEMBER(port1a_w);
- DECLARE_WRITE8_MEMBER(port1b_w);
- DECLARE_WRITE8_MEMBER(port1c_w);
+ void port15_w(uint8_t data);
+ void port16_w(uint8_t data);
+ void port17_w(uint8_t data);
+ void port18_w(uint8_t data);
+ uint8_t port19_r();
+ void port1a_w(uint8_t data);
+ void port1b_w(uint8_t data);
+ void port1c_w(uint8_t data);
void port20_w(uint8_t data);
- DECLARE_READ8_MEMBER(port28_r);
- DECLARE_READ8_MEMBER(port33_r);
- DECLARE_WRITE8_MEMBER(port34_w);
- DECLARE_WRITE8_MEMBER(port35_w);
- DECLARE_READ8_MEMBER(port36_r);
- DECLARE_READ8_MEMBER(port37_r);
- DECLARE_READ8_MEMBER(rtc_r);
- DECLARE_WRITE8_MEMBER(rtc_w);
+ uint8_t port28_r();
+ uint8_t port33_r();
+ void port34_w(uint8_t data);
+ void port35_w(uint8_t data);
+ uint8_t port36_r();
+ uint8_t port37_r();
+ uint8_t rtc_r(offs_t offset);
+ void rtc_w(offs_t offset, uint8_t data);
DECLARE_WRITE_LINE_MEMBER(fdc_intrq_w);
DECLARE_WRITE_LINE_MEMBER(fdc_drq_w);
DECLARE_WRITE_LINE_MEMBER(busreq_w);
@@ -101,8 +101,8 @@ protected:
DECLARE_WRITE_LINE_MEMBER(sio2_rdya_w);
DECLARE_WRITE_LINE_MEMBER(sio2_rdyb_w);
DECLARE_WRITE_LINE_MEMBER(ctc_z2_w);
- DECLARE_WRITE8_MEMBER(address_w);
- DECLARE_WRITE8_MEMBER(register_w);
+ void address_w(uint8_t data);
+ void register_w(uint8_t data);
MC6845_UPDATE_ROW(crtc_update_row);
MC6845_ON_UPDATE_ADDR_CHANGED(crtc_update_addr);
diff --git a/src/mame/includes/avalnche.h b/src/mame/includes/avalnche.h
index f32a56e5500..124fe10a1b2 100644
--- a/src/mame/includes/avalnche.h
+++ b/src/mame/includes/avalnche.h
@@ -27,13 +27,13 @@ public:
uint8_t m_avalance_video_inverted;
DECLARE_WRITE_LINE_MEMBER(video_invert_w);
- DECLARE_WRITE8_MEMBER(catch_coin_counter_w);
+ void catch_coin_counter_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER(credit_1_lamp_w);
DECLARE_WRITE_LINE_MEMBER(credit_2_lamp_w);
DECLARE_WRITE_LINE_MEMBER(start_lamp_w);
virtual void machine_start() override;
uint32_t screen_update_avalnche(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
- DECLARE_WRITE8_MEMBER(avalnche_noise_amplitude_w);
+ void avalnche_noise_amplitude_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER(catch_aud0_w);
DECLARE_WRITE_LINE_MEMBER(catch_aud1_w);
DECLARE_WRITE_LINE_MEMBER(catch_aud2_w);
diff --git a/src/mame/includes/avigo.h b/src/mame/includes/avigo.h
index 3462ebd91cb..aa9390808a1 100644
--- a/src/mame/includes/avigo.h
+++ b/src/mame/includes/avigo.h
@@ -54,7 +54,7 @@ public:
DECLARE_INPUT_CHANGED_MEMBER(power_down_irq);
protected:
- // defined in drivers/avigo.c
+ // defined in drivers/avigo.cpp
virtual void machine_start() override;
virtual void machine_reset() override;
void refresh_ints();
@@ -63,26 +63,26 @@ protected:
DECLARE_WRITE_LINE_MEMBER( tc8521_alarm_int );
DECLARE_WRITE_LINE_MEMBER( com_interrupt );
- DECLARE_READ8_MEMBER(key_data_read_r);
- DECLARE_WRITE8_MEMBER(set_key_line_w);
- DECLARE_WRITE8_MEMBER(port2_w);
- DECLARE_READ8_MEMBER(irq_r);
- DECLARE_WRITE8_MEMBER(irq_w);
- DECLARE_READ8_MEMBER(bank1_r);
- DECLARE_READ8_MEMBER(bank2_r);
- DECLARE_WRITE8_MEMBER(bank1_w);
- DECLARE_WRITE8_MEMBER(bank2_w);
- DECLARE_READ8_MEMBER(ad_control_status_r);
- DECLARE_WRITE8_MEMBER(ad_control_status_w);
- DECLARE_READ8_MEMBER(ad_data_r);
- DECLARE_WRITE8_MEMBER(speaker_w);
- DECLARE_READ8_MEMBER(port_04_r);
-
- // defined in video/avigo.c
+ uint8_t key_data_read_r();
+ void set_key_line_w(uint8_t data);
+ void port2_w(uint8_t data);
+ uint8_t irq_r();
+ void irq_w(uint8_t data);
+ uint8_t bank1_r(offs_t offset);
+ uint8_t bank2_r(offs_t offset);
+ void bank1_w(offs_t offset, uint8_t data);
+ void bank2_w(offs_t offset, uint8_t data);
+ uint8_t ad_control_status_r();
+ void ad_control_status_w(uint8_t data);
+ uint8_t ad_data_r();
+ void speaker_w(uint8_t data);
+ uint8_t port_04_r();
+
+ // defined in video/avigo.cpp
virtual void video_start() override;
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
- DECLARE_READ8_MEMBER(vid_memory_r);
- DECLARE_WRITE8_MEMBER(vid_memory_w);
+ uint8_t vid_memory_r(offs_t offset);
+ void vid_memory_w(offs_t offset, uint8_t data);
TIMER_DEVICE_CALLBACK_MEMBER(avigo_scan_timer);
TIMER_DEVICE_CALLBACK_MEMBER(avigo_1hz_timer);
diff --git a/src/mame/includes/aztarac.h b/src/mame/includes/aztarac.h
index 116944048e0..53895de975f 100644
--- a/src/mame/includes/aztarac.h
+++ b/src/mame/includes/aztarac.h
@@ -39,13 +39,13 @@ public:
int m_ycenter;
void nvram_store_w(uint16_t data);
- DECLARE_READ16_MEMBER(joystick_r);
+ uint16_t joystick_r();
void ubr_w(uint8_t data);
- DECLARE_READ16_MEMBER(sound_r);
- DECLARE_WRITE16_MEMBER(sound_w);
- DECLARE_READ8_MEMBER(snd_command_r);
- DECLARE_READ8_MEMBER(snd_status_r);
- DECLARE_WRITE8_MEMBER(snd_status_w);
+ uint16_t sound_r();
+ void sound_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ uint8_t snd_command_r();
+ uint8_t snd_status_r();
+ void snd_status_w(uint8_t data);
virtual void machine_start() override;
virtual void machine_reset() override;
diff --git a/src/mame/includes/b2m.h b/src/mame/includes/b2m.h
index 2961d4daa7d..520a569d9bb 100644
--- a/src/mame/includes/b2m.h
+++ b/src/mame/includes/b2m.h
@@ -35,11 +35,11 @@ public:
, m_pic(*this, "pic8259")
{ }
- DECLARE_READ8_MEMBER(b2m_keyboard_r);
- DECLARE_WRITE8_MEMBER(b2m_palette_w);
- DECLARE_READ8_MEMBER(b2m_palette_r);
- DECLARE_WRITE8_MEMBER(b2m_localmachine_w);
- DECLARE_READ8_MEMBER(b2m_localmachine_r);
+ uint8_t b2m_keyboard_r(offs_t offset);
+ void b2m_palette_w(offs_t offset, uint8_t data);
+ uint8_t b2m_palette_r(offs_t offset);
+ void b2m_localmachine_w(uint8_t data);
+ uint8_t b2m_localmachine_r();
void init_b2m();
void b2m_palette(palette_device &palette) const;
diff --git a/src/mame/includes/badlands.h b/src/mame/includes/badlands.h
index 2aa555dfa97..bcf7d47311f 100644
--- a/src/mame/includes/badlands.h
+++ b/src/mame/includes/badlands.h
@@ -74,9 +74,9 @@ public:
DECLARE_VIDEO_START(badlands);
uint32_t screen_update_badlands(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
INTERRUPT_GEN_MEMBER(vblank_int);
- DECLARE_WRITE16_MEMBER(video_int_ack_w);
+ void video_int_ack_w(uint16_t data);
TIMER_DEVICE_CALLBACK_MEMBER(sound_scanline);
- DECLARE_WRITE16_MEMBER( badlands_pf_bank_w );
+ void badlands_pf_bank_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
static const atari_motion_objects_config s_mob_config;
void badlands(machine_config &config);
@@ -97,11 +97,11 @@ public:
m_spriteram(*this, "spriteram")
{}
- DECLARE_READ8_MEMBER(bootleg_shared_r);
- DECLARE_WRITE8_MEMBER(bootleg_shared_w);
- DECLARE_WRITE8_MEMBER(bootleg_main_irq_w);
- DECLARE_READ16_MEMBER(badlandsb_unk_r);
- DECLARE_READ8_MEMBER(sound_response_r);
+ uint8_t bootleg_shared_r(offs_t offset);
+ void bootleg_shared_w(offs_t offset, uint8_t data);
+ void bootleg_main_irq_w(uint8_t data);
+ uint16_t badlandsb_unk_r();
+ uint8_t sound_response_r();
TIMER_DEVICE_CALLBACK_MEMBER(bootleg_sound_scanline);
void badlandsb(machine_config &config);
diff --git a/src/mame/includes/bagman.h b/src/mame/includes/bagman.h
index 1973072600b..8d1cba713d8 100644
--- a/src/mame/includes/bagman.h
+++ b/src/mame/includes/bagman.h
@@ -36,19 +36,19 @@ protected:
// common
DECLARE_WRITE_LINE_MEMBER(coin_counter_w);
DECLARE_WRITE_LINE_MEMBER(irq_mask_w);
- DECLARE_WRITE8_MEMBER(videoram_w);
- DECLARE_WRITE8_MEMBER(colorram_w);
+ void videoram_w(offs_t offset, uint8_t data);
+ void colorram_w(offs_t offset, uint8_t data);
DECLARE_WRITE_LINE_MEMBER(flipscreen_x_w);
DECLARE_WRITE_LINE_MEMBER(flipscreen_y_w);
DECLARE_WRITE_LINE_MEMBER(video_enable_w);
// bagman
- DECLARE_WRITE8_MEMBER(ls259_w);
+ void ls259_w(offs_t offset, uint8_t data);
DECLARE_WRITE_LINE_MEMBER(tmsprom_bit_w);
DECLARE_WRITE_LINE_MEMBER(tmsprom_csq0_w);
DECLARE_WRITE_LINE_MEMBER(tmsprom_csq1_w);
- DECLARE_WRITE8_MEMBER(pal16r6_w);
- DECLARE_READ8_MEMBER(pal16r6_r);
+ void pal16r6_w(offs_t offset, uint8_t data);
+ uint8_t pal16r6_r();
TILE_GET_INFO_MEMBER(get_bg_tile_info);
diff --git a/src/mame/includes/balsente.h b/src/mame/includes/balsente.h
index 70405d7b53c..3de49567989 100644
--- a/src/mame/includes/balsente.h
+++ b/src/mame/includes/balsente.h
@@ -95,10 +95,10 @@ public:
void init_gghost();
private:
- DECLARE_WRITE8_MEMBER(random_reset_w);
- DECLARE_READ8_MEMBER(random_num_r);
- DECLARE_WRITE8_MEMBER(rombank_select_w);
- DECLARE_WRITE8_MEMBER(rombank2_select_w);
+ void random_reset_w(uint8_t data);
+ uint8_t random_num_r();
+ void rombank_select_w(uint8_t data);
+ void rombank2_select_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER(out0_w);
DECLARE_WRITE_LINE_MEMBER(out1_w);
DECLARE_WRITE_LINE_MEMBER(out2_w);
@@ -107,25 +107,25 @@ private:
DECLARE_WRITE_LINE_MEMBER(out5_w);
DECLARE_WRITE_LINE_MEMBER(out6_w);
DECLARE_WRITE_LINE_MEMBER(nvrecall_w);
- DECLARE_READ8_MEMBER(novram_8bit_r);
- DECLARE_WRITE8_MEMBER(novram_8bit_w);
- DECLARE_WRITE8_MEMBER(acia_w);
- DECLARE_READ8_MEMBER(adc_data_r);
- DECLARE_WRITE8_MEMBER(adc_select_w);
- DECLARE_WRITE8_MEMBER(spiker_expand_w);
- DECLARE_READ8_MEMBER(spiker_expand_r);
- DECLARE_READ8_MEMBER(grudge_steering_r);
- DECLARE_READ8_MEMBER(shrike_shared_6809_r);
- DECLARE_WRITE8_MEMBER(shrike_shared_6809_w);
- DECLARE_WRITE16_MEMBER(shrike_io_68k_w);
- DECLARE_READ16_MEMBER(shrike_io_68k_r);
- DECLARE_READ8_MEMBER(teamht_extra_r);
- DECLARE_WRITE8_MEMBER(teamht_multiplex_select_w);
-
- DECLARE_WRITE8_MEMBER(videoram_w);
- DECLARE_WRITE8_MEMBER(palette_select_w);
- DECLARE_WRITE8_MEMBER(paletteram_w);
- DECLARE_WRITE8_MEMBER(shrike_sprite_select_w);
+ uint8_t novram_8bit_r(address_space &space, offs_t offset);
+ void novram_8bit_w(offs_t offset, uint8_t data);
+ void acia_w(offs_t offset, uint8_t data);
+ uint8_t adc_data_r();
+ void adc_select_w(offs_t offset, uint8_t data);
+ void spiker_expand_w(offs_t offset, uint8_t data);
+ uint8_t spiker_expand_r();
+ uint8_t grudge_steering_r();
+ uint8_t shrike_shared_6809_r(offs_t offset);
+ void shrike_shared_6809_w(offs_t offset, uint8_t data);
+ void shrike_io_68k_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ uint16_t shrike_io_68k_r(offs_t offset, uint16_t mem_mask = ~0);
+ uint8_t teamht_extra_r();
+ void teamht_multiplex_select_w(offs_t offset, uint8_t data);
+
+ void videoram_w(offs_t offset, uint8_t data);
+ void palette_select_w(uint8_t data);
+ void paletteram_w(offs_t offset, uint8_t data);
+ void shrike_sprite_select_w(uint8_t data);
virtual void machine_start() override;
virtual void machine_reset() override;
diff --git a/src/mame/includes/bankp.h b/src/mame/includes/bankp.h
index bd716183e49..b1750f95f6b 100644
--- a/src/mame/includes/bankp.h
+++ b/src/mame/includes/bankp.h
@@ -40,12 +40,12 @@ public:
int m_priority;
uint8_t m_nmi_mask;
- DECLARE_WRITE8_MEMBER(scroll_w);
- DECLARE_WRITE8_MEMBER(videoram_w);
- DECLARE_WRITE8_MEMBER(colorram_w);
- DECLARE_WRITE8_MEMBER(videoram2_w);
- DECLARE_WRITE8_MEMBER(colorram2_w);
- DECLARE_WRITE8_MEMBER(out_w);
+ void scroll_w(uint8_t data);
+ void videoram_w(offs_t offset, uint8_t data);
+ void colorram_w(offs_t offset, uint8_t data);
+ void videoram2_w(offs_t offset, uint8_t data);
+ void colorram2_w(offs_t offset, uint8_t data);
+ void out_w(uint8_t data);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
virtual void machine_reset() override;
diff --git a/src/mame/includes/baraduke.h b/src/mame/includes/baraduke.h
index 8c3a1178ad0..4cd1216a85d 100644
--- a/src/mame/includes/baraduke.h
+++ b/src/mame/includes/baraduke.h
@@ -31,14 +31,14 @@ public:
void baraduke_lamps_w(uint8_t data);
void baraduke_irq_ack_w(uint8_t data);
uint8_t soundkludge_r();
- DECLARE_READ8_MEMBER(baraduke_videoram_r);
- DECLARE_WRITE8_MEMBER(baraduke_videoram_w);
- DECLARE_READ8_MEMBER(baraduke_textram_r);
- DECLARE_WRITE8_MEMBER(baraduke_textram_w);
- DECLARE_WRITE8_MEMBER(baraduke_scroll0_w);
- DECLARE_WRITE8_MEMBER(baraduke_scroll1_w);
- DECLARE_READ8_MEMBER(baraduke_spriteram_r);
- DECLARE_WRITE8_MEMBER(baraduke_spriteram_w);
+ uint8_t baraduke_videoram_r(offs_t offset);
+ void baraduke_videoram_w(offs_t offset, uint8_t data);
+ uint8_t baraduke_textram_r(offs_t offset);
+ void baraduke_textram_w(offs_t offset, uint8_t data);
+ void baraduke_scroll0_w(offs_t offset, uint8_t data);
+ void baraduke_scroll1_w(offs_t offset, uint8_t data);
+ uint8_t baraduke_spriteram_r(offs_t offset);
+ void baraduke_spriteram_w(offs_t offset, uint8_t data);
void init_baraduke();
TILEMAP_MAPPER_MEMBER(tx_tilemap_scan);
TILE_GET_INFO_MEMBER(tx_get_tile_info);
@@ -48,7 +48,7 @@ public:
void baraduke_palette(palette_device &palette) const;
uint32_t screen_update_baraduke(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
DECLARE_WRITE_LINE_MEMBER(screen_vblank_baraduke);
- void scroll_w(address_space &space, int layer, int offset, int data);
+ void scroll_w(int layer, int offset, int data);
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int sprite_priority);
void set_scroll(int layer);
void baraduke(machine_config &config);
diff --git a/src/mame/includes/batman.h b/src/mame/includes/batman.h
index 811d410c91b..219118a7e8a 100644
--- a/src/mame/includes/batman.h
+++ b/src/mame/includes/batman.h
@@ -33,7 +33,7 @@ public:
protected:
virtual void machine_start() override;
- DECLARE_WRITE16_MEMBER(latch_w);
+ void latch_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
TILE_GET_INFO_MEMBER(get_alpha_tile_info);
TILE_GET_INFO_MEMBER(get_playfield_tile_info);
TILE_GET_INFO_MEMBER(get_playfield2_tile_info);
diff --git a/src/mame/includes/battlane.h b/src/mame/includes/battlane.h
index 25103c5057a..742e73e802b 100644
--- a/src/mame/includes/battlane.h
+++ b/src/mame/includes/battlane.h
@@ -37,14 +37,14 @@ public:
required_device<gfxdecode_device> m_gfxdecode;
required_device<palette_device> m_palette;
- DECLARE_WRITE8_MEMBER(battlane_cpu_command_w);
- DECLARE_WRITE8_MEMBER(battlane_palette_w);
- DECLARE_WRITE8_MEMBER(battlane_scrollx_w);
- DECLARE_WRITE8_MEMBER(battlane_scrolly_w);
- DECLARE_WRITE8_MEMBER(battlane_tileram_w);
- DECLARE_WRITE8_MEMBER(battlane_spriteram_w);
- DECLARE_WRITE8_MEMBER(battlane_bitmap_w);
- DECLARE_WRITE8_MEMBER(battlane_video_ctrl_w);
+ void battlane_cpu_command_w(uint8_t data);
+ void battlane_palette_w(offs_t offset, uint8_t data);
+ void battlane_scrollx_w(uint8_t data);
+ void battlane_scrolly_w(uint8_t data);
+ void battlane_tileram_w(offs_t offset, uint8_t data);
+ void battlane_spriteram_w(offs_t offset, uint8_t data);
+ void battlane_bitmap_w(offs_t offset, uint8_t data);
+ void battlane_video_ctrl_w(uint8_t data);
TILE_GET_INFO_MEMBER(get_tile_info_bg);
TILEMAP_MAPPER_MEMBER(battlane_tilemap_scan_rows_2x2);
virtual void machine_start() override;
diff --git a/src/mame/includes/battlex.h b/src/mame/includes/battlex.h
index f38fc2606a1..b8ac7a1dee9 100644
--- a/src/mame/includes/battlex.h
+++ b/src/mame/includes/battlex.h
@@ -31,12 +31,12 @@ public:
uint8_t m_scroll_lsb;
uint8_t m_scroll_msb;
uint8_t m_starfield_enabled;
- DECLARE_WRITE8_MEMBER(battlex_palette_w);
- DECLARE_WRITE8_MEMBER(battlex_scroll_x_lsb_w);
- DECLARE_WRITE8_MEMBER(battlex_scroll_x_msb_w);
- DECLARE_WRITE8_MEMBER(battlex_scroll_starfield_w);
- DECLARE_WRITE8_MEMBER(battlex_videoram_w);
- DECLARE_WRITE8_MEMBER(battlex_flipscreen_w);
+ void battlex_palette_w(offs_t offset, uint8_t data);
+ void battlex_scroll_x_lsb_w(uint8_t data);
+ void battlex_scroll_x_msb_w(uint8_t data);
+ void battlex_scroll_starfield_w(uint8_t data);
+ void battlex_videoram_w(offs_t offset, uint8_t data);
+ void battlex_flipscreen_w(uint8_t data);
DECLARE_CUSTOM_INPUT_MEMBER(battlex_in0_b4_r);
void init_battlex();
TILE_GET_INFO_MEMBER(get_bg_tile_info);
diff --git a/src/mame/includes/battlnts.h b/src/mame/includes/battlnts.h
index 3d15885af5c..8580e7bf8f6 100644
--- a/src/mame/includes/battlnts.h
+++ b/src/mame/includes/battlnts.h
@@ -37,9 +37,9 @@ public:
required_device<gfxdecode_device> m_gfxdecode;
required_memory_bank m_rombank;
- DECLARE_WRITE8_MEMBER(battlnts_sh_irqtrigger_w);
- DECLARE_WRITE8_MEMBER(battlnts_bankswitch_w);
- DECLARE_WRITE8_MEMBER(battlnts_spritebank_w);
+ void battlnts_sh_irqtrigger_w(uint8_t data);
+ void battlnts_bankswitch_w(uint8_t data);
+ void battlnts_spritebank_w(uint8_t data);
virtual void machine_start() override;
virtual void machine_reset() override;
uint32_t screen_update_battlnts(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
diff --git a/src/mame/includes/bbusters.h b/src/mame/includes/bbusters.h
index e0e23fd988c..251888e4419 100644
--- a/src/mame/includes/bbusters.h
+++ b/src/mame/includes/bbusters.h
@@ -54,10 +54,10 @@ protected:
TILE_GET_INFO_MEMBER(get_tile_info);
template<int Layer, int Gfx> TILE_GET_INFO_MEMBER(get_pf_tile_info);
- DECLARE_WRITE8_MEMBER(sound_cpu_w);
- DECLARE_WRITE16_MEMBER(video_w);
- template<int Layer> DECLARE_WRITE16_MEMBER(pf_w);
- DECLARE_WRITE8_MEMBER(coin_counter_w);
+ void sound_cpu_w(uint8_t data);
+ void video_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ template<int Layer> void pf_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void coin_counter_w(uint8_t data);
const uint8_t *get_source_ptr(gfx_element *gfx, uint32_t sprite, int dx, int dy, int block);
void draw_block(screen_device &screen, bitmap_ind16 &dest,int x,int y,int size,int flipx,int flipy,uint32_t sprite,int color,int bank,int block,int priority);
@@ -83,8 +83,8 @@ protected:
private:
required_shared_ptr<uint16_t> m_eprom_data;
- DECLARE_READ16_MEMBER(eprom_r);
- DECLARE_WRITE16_MEMBER(three_gun_output_w);
+ uint16_t eprom_r(offs_t offset);
+ void three_gun_output_w(uint16_t data);
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void bbusters_map(address_map &map);
@@ -104,8 +104,8 @@ protected:
virtual void video_start() override;
private:
- DECLARE_WRITE16_MEMBER(two_gun_output_w);
- DECLARE_READ16_MEMBER(mechatt_gun_r);
+ void two_gun_output_w(uint16_t data);
+ uint16_t mechatt_gun_r(offs_t offset);
uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
void mechatt_map(address_map &map);
diff --git a/src/mame/includes/beathead.h b/src/mame/includes/beathead.h
index 639f23c5480..1eaf5d5f7d3 100644
--- a/src/mame/includes/beathead.h
+++ b/src/mame/includes/beathead.h
@@ -36,23 +36,21 @@ public:
void beathead(machine_config &config);
protected:
- // in drivers/beathead.c
+ // in drivers/beathead.cpp
void update_interrupts();
- DECLARE_WRITE32_MEMBER( interrupt_control_w );
- DECLARE_READ32_MEMBER( interrupt_control_r );
- DECLARE_WRITE32_MEMBER( sound_reset_w );
- DECLARE_WRITE32_MEMBER( coin_count_w );
- DECLARE_READ32_MEMBER( speedup_r );
- DECLARE_READ32_MEMBER( movie_speedup_r );
-
- // in video/beathead.c
- DECLARE_WRITE32_MEMBER( vram_transparent_w );
- DECLARE_WRITE32_MEMBER( vram_bulk_w );
- DECLARE_WRITE32_MEMBER( vram_latch_w );
- DECLARE_WRITE32_MEMBER( vram_copy_w );
- DECLARE_WRITE32_MEMBER( finescroll_w );
- DECLARE_READ32_MEMBER( hsync_ram_r );
- DECLARE_WRITE32_MEMBER( hsync_ram_w );
+ void interrupt_control_w(offs_t offset, uint32_t data);
+ uint32_t interrupt_control_r();
+ void sound_reset_w(offs_t offset, uint32_t data);
+ void coin_count_w(offs_t offset, uint32_t data);
+
+ // in video/beathead.cpp
+ void vram_transparent_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ void vram_bulk_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ void vram_latch_w(offs_t offset, uint32_t data);
+ void vram_copy_w(offs_t offset, uint32_t data);
+ void finescroll_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
+ uint32_t hsync_ram_r(offs_t offset);
+ void hsync_ram_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
TIMER_DEVICE_CALLBACK_MEMBER(scanline_callback);
virtual void machine_reset() override;
diff --git a/src/mame/includes/bebox.h b/src/mame/includes/bebox.h
index 542b2b99c44..aa2bbc60d8f 100644
--- a/src/mame/includes/bebox.h
+++ b/src/mame/includes/bebox.h
@@ -80,29 +80,29 @@ public:
DECLARE_WRITE_LINE_MEMBER(pc_dack2_w);
DECLARE_WRITE_LINE_MEMBER(pc_dack3_w);
DECLARE_WRITE_LINE_MEMBER(bebox_timer0_w);
- DECLARE_READ64_MEMBER(bebox_cpu0_imask_r);
- DECLARE_READ64_MEMBER(bebox_cpu1_imask_r);
- DECLARE_READ64_MEMBER(bebox_interrupt_sources_r);
- DECLARE_READ64_MEMBER(bebox_crossproc_interrupts_r);
- DECLARE_READ64_MEMBER(bebox_interrupt_ack_r);
- DECLARE_READ8_MEMBER(bebox_page_r);
- DECLARE_READ8_MEMBER(bebox_80000480_r);
- DECLARE_READ8_MEMBER(bebox_flash_r);
-
- DECLARE_WRITE64_MEMBER(bebox_cpu0_imask_w);
- DECLARE_WRITE64_MEMBER(bebox_cpu1_imask_w);
- DECLARE_WRITE64_MEMBER(bebox_crossproc_interrupts_w);
- DECLARE_WRITE64_MEMBER(bebox_processor_resets_w);
- DECLARE_WRITE8_MEMBER(bebox_page_w);
- DECLARE_WRITE8_MEMBER(bebox_80000480_w);
- DECLARE_WRITE8_MEMBER(bebox_flash_w);
- DECLARE_READ8_MEMBER(at_dma8237_1_r);
- DECLARE_WRITE8_MEMBER(at_dma8237_1_w);
+ uint64_t bebox_cpu0_imask_r();
+ uint64_t bebox_cpu1_imask_r();
+ uint64_t bebox_interrupt_sources_r();
+ uint64_t bebox_crossproc_interrupts_r(address_space &space);
+ uint64_t bebox_interrupt_ack_r();
+ uint8_t bebox_page_r(offs_t offset);
+ uint8_t bebox_80000480_r();
+ uint8_t bebox_flash_r(offs_t offset);
+
+ void bebox_cpu0_imask_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
+ void bebox_cpu1_imask_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
+ void bebox_crossproc_interrupts_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
+ void bebox_processor_resets_w(uint64_t data);
+ void bebox_page_w(offs_t offset, uint8_t data);
+ void bebox_80000480_w(offs_t offset, uint8_t data);
+ void bebox_flash_w(offs_t offset, uint8_t data);
+ uint8_t at_dma8237_1_r(offs_t offset);
+ void at_dma8237_1_w(offs_t offset, uint8_t data);
uint8_t bebox_dma_read_byte(offs_t offset);
void bebox_dma_write_byte(offs_t offset, uint8_t data);
- DECLARE_READ64_MEMBER(scsi53c810_r);
- DECLARE_WRITE64_MEMBER(scsi53c810_w);
- DECLARE_READ64_MEMBER(bb_slave_64be_r);
+ uint64_t scsi53c810_r(offs_t offset, uint64_t mem_mask = ~0);
+ void scsi53c810_w(offs_t offset, uint64_t data, uint64_t mem_mask = ~0);
+ uint64_t bb_slave_64be_r(offs_t offset, uint64_t mem_mask = ~0);
DECLARE_WRITE_LINE_MEMBER(bebox_ide_interrupt);
diff --git a/src/mame/includes/bfm_sc4.h b/src/mame/includes/bfm_sc4.h
index 8a80b640a3d..1c722adfaa1 100644
--- a/src/mame/includes/bfm_sc4.h
+++ b/src/mame/includes/bfm_sc4.h
@@ -120,8 +120,8 @@ protected:
virtual void machine_start() override;
- DECLARE_WRITE8_MEMBER(mux_output_w);
- DECLARE_WRITE8_MEMBER(mux_output2_w);
+ void mux_output_w(offs_t offset, uint8_t data);
+ void mux_output2_w(offs_t offset, uint8_t data);
void bfm_sc4_reset_serial_vfd();
void bfm_sc45_write_serial_vfd(bool cs, bool clock, bool data);
};
@@ -175,10 +175,10 @@ public:
DECLARE_WRITE_LINE_MEMBER(bfmdm01_busy);
- DECLARE_READ16_MEMBER(sc4_mem_r);
- DECLARE_WRITE16_MEMBER(sc4_mem_w);
+ uint16_t sc4_mem_r(offs_t offset, uint16_t mem_mask = ~0);
+ void sc4_mem_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
- DECLARE_READ16_MEMBER(sc4_cs1_r);
+ uint16_t sc4_cs1_r(offs_t offset, uint16_t mem_mask = ~0);
DECLARE_WRITE_LINE_MEMBER(bfm_sc4_duart_irq_handler);
DECLARE_WRITE_LINE_MEMBER(bfm_sc4_duart_txa);
@@ -605,8 +605,8 @@ public:
virtual void machine_reset() override;
void bfm_sc4_68307_porta_w(address_space &space, bool dedicated, uint8_t data, uint8_t line_mask);
- DECLARE_WRITE8_MEMBER( bfm_sc4_reel3_w );
- DECLARE_WRITE8_MEMBER( bfm_sc4_reel4_w );
+ void bfm_sc4_reel3_w(uint8_t data);
+ void bfm_sc4_reel4_w(uint8_t data);
void bfm_sc4_68307_portb_w(address_space &space, bool dedicated, uint16_t data, uint16_t line_mask);
uint8_t bfm_sc4_68307_porta_r(address_space &space, bool dedicated, uint8_t line_mask);
uint16_t bfm_sc4_68307_portb_r(address_space &space, bool dedicated, uint16_t line_mask);
@@ -656,8 +656,8 @@ public:
required_region_ptr<uint32_t> m_adder4cpuregion;
std::unique_ptr<uint32_t[]> m_adder4ram;
- DECLARE_READ32_MEMBER(adder4_mem_r);
- DECLARE_WRITE32_MEMBER(adder4_mem_w);
+ uint32_t adder4_mem_r(offs_t offset, uint32_t mem_mask = ~0);
+ void adder4_mem_w(offs_t offset, uint32_t data, uint32_t mem_mask = ~0);
virtual void machine_start() override;
// devices
diff --git a/src/mame/includes/bfm_sc5.h b/src/mame/includes/bfm_sc5.h
index 1a59bb8b572..2f461a33fcd 100644
--- a/src/mame/includes/bfm_sc5.h
+++ b/src/mame/includes/bfm_sc5.h
@@ -25,13 +25,13 @@ protected:
required_device<m68000_base_device> m_maincpu;
- DECLARE_READ8_MEMBER( sc5_10202F0_r );
- DECLARE_WRITE8_MEMBER( sc5_10202F0_w );
- DECLARE_WRITE16_MEMBER( sc5_duart_w );
+ uint8_t sc5_10202F0_r(offs_t offset);
+ void sc5_10202F0_w(offs_t offset, uint8_t data);
+ void sc5_duart_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
- DECLARE_READ8_MEMBER( sc5_mux1_r );
- DECLARE_WRITE8_MEMBER( sc5_mux1_w );
- DECLARE_WRITE8_MEMBER( sc5_mux2_w );
+ uint8_t sc5_mux1_r(offs_t offset);
+ void sc5_mux1_w(offs_t offset, uint8_t data);
+ void sc5_mux2_w(offs_t offset, uint8_t data);
DECLARE_WRITE_LINE_MEMBER(bfm_sc5_duart_irq_handler);
DECLARE_WRITE_LINE_MEMBER(bfm_sc5_duart_txa);
diff --git a/src/mame/includes/bigevglf.h b/src/mame/includes/bigevglf.h
index b5e56b13393..727d2a51e1a 100644
--- a/src/mame/includes/bigevglf.h
+++ b/src/mame/includes/bigevglf.h
@@ -46,22 +46,22 @@ public:
/* devices */
required_device<cpu_device> m_audiocpu;
optional_device<taito68705_mcu_device> m_bmcu;
- DECLARE_WRITE8_MEMBER(beg_banking_w);
- DECLARE_READ8_MEMBER(soundstate_r);
- DECLARE_WRITE8_MEMBER(beg13_a_clr_w);
- DECLARE_WRITE8_MEMBER(beg13_b_clr_w);
- DECLARE_WRITE8_MEMBER(beg13_a_set_w);
- DECLARE_WRITE8_MEMBER(beg13_b_set_w);
- DECLARE_READ8_MEMBER(beg_status_r);
- DECLARE_READ8_MEMBER(beg_trackball_x_r);
- DECLARE_READ8_MEMBER(beg_trackball_y_r);
- DECLARE_WRITE8_MEMBER(beg_port08_w);
- DECLARE_READ8_MEMBER(sub_cpu_mcu_coin_port_r);
- DECLARE_WRITE8_MEMBER(bigevglf_palette_w);
- DECLARE_WRITE8_MEMBER(bigevglf_gfxcontrol_w);
- DECLARE_WRITE8_MEMBER(bigevglf_vidram_addr_w);
- DECLARE_WRITE8_MEMBER(bigevglf_vidram_w);
- DECLARE_READ8_MEMBER(bigevglf_vidram_r);
+ void beg_banking_w(uint8_t data);
+ uint8_t soundstate_r();
+ void beg13_a_clr_w(uint8_t data);
+ void beg13_b_clr_w(uint8_t data);
+ void beg13_a_set_w(uint8_t data);
+ void beg13_b_set_w(uint8_t data);
+ uint8_t beg_status_r();
+ uint8_t beg_trackball_x_r();
+ uint8_t beg_trackball_y_r();
+ void beg_port08_w(uint8_t data);
+ uint8_t sub_cpu_mcu_coin_port_r();
+ void bigevglf_palette_w(offs_t offset, uint8_t data);
+ void bigevglf_gfxcontrol_w(uint8_t data);
+ void bigevglf_vidram_addr_w(uint8_t data);
+ void bigevglf_vidram_w(offs_t offset, uint8_t data);
+ uint8_t bigevglf_vidram_r(offs_t offset);
void init_bigevglf();
virtual void machine_start() override;
virtual void machine_reset() override;
diff --git a/src/mame/includes/bigstrkb.h b/src/mame/includes/bigstrkb.h
index 27aedc05d4b..2339443675d 100644
--- a/src/mame/includes/bigstrkb.h
+++ b/src/mame/includes/bigstrkb.h
@@ -39,9 +39,9 @@ public:
tilemap_t *m_tilemap2;
tilemap_t *m_tilemap3;
- DECLARE_WRITE16_MEMBER(videoram_w);
- DECLARE_WRITE16_MEMBER(videoram2_w);
- DECLARE_WRITE16_MEMBER(videoram3_w);
+ void videoram_w(offs_t offset, uint16_t data);
+ void videoram2_w(offs_t offset, uint16_t data);
+ void videoram3_w(offs_t offset, uint16_t data);
TILEMAP_MAPPER_MEMBER(bg_scan);
TILE_GET_INFO_MEMBER(get_tile_info);
diff --git a/src/mame/includes/bishi.h b/src/mame/includes/bishi.h
index 7fc4b1b1ef0..b58de249bfa 100644
--- a/src/mame/includes/bishi.h
+++ b/src/mame/includes/bishi.h
@@ -35,11 +35,11 @@ public:
m_screen(*this, "screen")
{ }
- DECLARE_READ16_MEMBER(control_r);
- DECLARE_WRITE16_MEMBER(control_w);
- DECLARE_WRITE16_MEMBER(control2_w);
- DECLARE_READ16_MEMBER(bishi_mirror_r);
- DECLARE_READ16_MEMBER(bishi_K056832_rom_r);
+ uint16_t control_r();
+ void control_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void control2_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ uint16_t bishi_mirror_r(offs_t offset);
+ uint16_t bishi_K056832_rom_r(offs_t offset);
uint32_t screen_update_bishi(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
TIMER_DEVICE_CALLBACK_MEMBER(bishi_scanline);
K056832_CB_MEMBER(tile_callback);
diff --git a/src/mame/includes/bk.h b/src/mame/includes/bk.h
index 91e7a4463d9..702f983989b 100644
--- a/src/mame/includes/bk.h
+++ b/src/mame/includes/bk.h
@@ -36,17 +36,17 @@ private:
uint16_t m_key_irq_vector;
uint16_t m_drive;
emu_timer *m_kbd_timer;
- DECLARE_READ16_MEMBER(bk_key_state_r);
- DECLARE_READ16_MEMBER(bk_key_code_r);
- DECLARE_READ16_MEMBER(bk_vid_scrool_r);
- DECLARE_READ16_MEMBER(bk_key_press_r);
- DECLARE_WRITE16_MEMBER(bk_key_state_w);
- DECLARE_WRITE16_MEMBER(bk_vid_scrool_w);
- DECLARE_WRITE16_MEMBER(bk_key_press_w);
- DECLARE_READ16_MEMBER(bk_floppy_cmd_r);
- DECLARE_WRITE16_MEMBER(bk_floppy_cmd_w);
- DECLARE_READ16_MEMBER(bk_floppy_data_r);
- DECLARE_WRITE16_MEMBER(bk_floppy_data_w);
+ uint16_t bk_key_state_r();
+ uint16_t bk_key_code_r();
+ uint16_t bk_vid_scrool_r();
+ uint16_t bk_key_press_r();
+ void bk_key_state_w(uint16_t data);
+ void bk_vid_scrool_w(uint16_t data);
+ void bk_key_press_w(uint16_t data);
+ uint16_t bk_floppy_cmd_r();
+ void bk_floppy_cmd_w(uint16_t data);
+ uint16_t bk_floppy_data_r();
+ void bk_floppy_data_w(uint16_t data);
virtual void machine_start() override;
virtual void machine_reset() override;
virtual void video_start() override;
diff --git a/src/mame/includes/bking.h b/src/mame/includes/bking.h
index ebb1c5495f4..4b35e8e0265 100644
--- a/src/mame/includes/bking.h
+++ b/src/mame/includes/bking.h
@@ -64,30 +64,30 @@ public:
required_device<generic_latch_8_device> m_soundlatch;
required_device<input_merger_device> m_soundnmi;
- DECLARE_READ8_MEMBER(bking_sndnmi_disable_r);
- DECLARE_WRITE8_MEMBER(bking_sndnmi_enable_w);
- DECLARE_WRITE8_MEMBER(bking_soundlatch_w);
- DECLARE_WRITE8_MEMBER(bking3_addr_l_w);
- DECLARE_WRITE8_MEMBER(bking3_addr_h_w);
- DECLARE_READ8_MEMBER(bking3_extrarom_r);
- DECLARE_READ8_MEMBER(bking3_ext_check_r);
- DECLARE_READ8_MEMBER(bking3_mcu_status_r);
- DECLARE_WRITE8_MEMBER(bking_xld1_w);
- DECLARE_WRITE8_MEMBER(bking_yld1_w);
- DECLARE_WRITE8_MEMBER(bking_xld2_w);
- DECLARE_WRITE8_MEMBER(bking_yld2_w);
- DECLARE_WRITE8_MEMBER(bking_xld3_w);
- DECLARE_WRITE8_MEMBER(bking_yld3_w);
- DECLARE_WRITE8_MEMBER(bking_cont1_w);
- DECLARE_WRITE8_MEMBER(bking_cont2_w);
- DECLARE_WRITE8_MEMBER(bking_cont3_w);
- DECLARE_WRITE8_MEMBER(bking_msk_w);
- DECLARE_WRITE8_MEMBER(bking_hitclr_w);
- DECLARE_WRITE8_MEMBER(bking_playfield_w);
- DECLARE_READ8_MEMBER(bking_input_port_5_r);
- DECLARE_READ8_MEMBER(bking_input_port_6_r);
- DECLARE_READ8_MEMBER(bking_pos_r);
- DECLARE_WRITE8_MEMBER(unk_w);
+ uint8_t bking_sndnmi_disable_r();
+ void bking_sndnmi_enable_w(uint8_t data);
+ void bking_soundlatch_w(uint8_t data);
+ void bking3_addr_l_w(uint8_t data);
+ void bking3_addr_h_w(uint8_t data);
+ uint8_t bking3_extrarom_r();
+ uint8_t bking3_ext_check_r();
+ uint8_t bking3_mcu_status_r();
+ void bking_xld1_w(uint8_t data);
+ void bking_yld1_w(uint8_t data);
+ void bking_xld2_w(uint8_t data);
+ void bking_yld2_w(uint8_t data);
+ void bking_xld3_w(uint8_t data);
+ void bking_yld3_w(uint8_t data);
+ void bking_cont1_w(uint8_t data);
+ void bking_cont2_w(uint8_t data);
+ void bking_cont3_w(uint8_t data);
+ void bking_msk_w(uint8_t data);
+ void bking_hitclr_w(uint8_t data);
+ void bking_playfield_w(offs_t offset, uint8_t data);
+ uint8_t bking_input_port_5_r();
+ uint8_t bking_input_port_6_r();
+ uint8_t bking_pos_r(offs_t offset);
+ void unk_w(uint8_t data);
void port_b_w(uint8_t data);
TILE_GET_INFO_MEMBER(get_tile_info);
virtual void machine_start() override;
diff --git a/src/mame/includes/bladestl.h b/src/mame/includes/bladestl.h
index 89709fcbeed..8bbb13efc93 100644
--- a/src/mame/includes/bladestl.h
+++ b/src/mame/includes/bladestl.h
@@ -40,11 +40,11 @@ public:
{ }
/* devices */
- DECLARE_READ8_MEMBER(trackball_r);
- DECLARE_WRITE8_MEMBER(bladestl_bankswitch_w);
+ uint8_t trackball_r(offs_t offset);
+ void bladestl_bankswitch_w(uint8_t data);
void bladestl_port_B_w(uint8_t data);
- DECLARE_READ8_MEMBER(bladestl_speech_busy_r);
- DECLARE_WRITE8_MEMBER(bladestl_speech_ctrl_w);
+ uint8_t bladestl_speech_busy_r();
+ void bladestl_speech_ctrl_w(uint8_t data);
void bladestl_palette(palette_device &palette) const;
uint32_t screen_update_bladestl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_DEVICE_CALLBACK_MEMBER(bladestl_scanline);
diff --git a/src/mame/includes/blktiger.h b/src/mame/includes/blktiger.h
index abac0a027b0..0c3b92bd972 100644
--- a/src/mame/includes/blktiger.h
+++ b/src/mame/includes/blktiger.h
@@ -53,21 +53,21 @@ public:
/* devices */
optional_device<i8751_device> m_mcu;
required_device<cpu_device> m_audiocpu;
- DECLARE_READ8_MEMBER(blktiger_from_mcu_r);
- DECLARE_WRITE8_MEMBER(blktiger_to_mcu_w);
+ uint8_t blktiger_from_mcu_r();
+ void blktiger_to_mcu_w(uint8_t data);
uint8_t blktiger_from_main_r();
void blktiger_to_main_w(uint8_t data);
- DECLARE_WRITE8_MEMBER(blktiger_bankswitch_w);
- DECLARE_WRITE8_MEMBER(blktiger_coinlockout_w);
- DECLARE_WRITE8_MEMBER(blktiger_txvideoram_w);
- DECLARE_READ8_MEMBER(blktiger_bgvideoram_r);
- DECLARE_WRITE8_MEMBER(blktiger_bgvideoram_w);
- DECLARE_WRITE8_MEMBER(blktiger_bgvideoram_bank_w);
- DECLARE_WRITE8_MEMBER(blktiger_scrolly_w);
- DECLARE_WRITE8_MEMBER(blktiger_scrollx_w);
- DECLARE_WRITE8_MEMBER(blktiger_video_control_w);
- DECLARE_WRITE8_MEMBER(blktiger_video_enable_w);
- DECLARE_WRITE8_MEMBER(blktiger_screen_layout_w);
+ void blktiger_bankswitch_w(uint8_t data);
+ void blktiger_coinlockout_w(uint8_t data);
+ void blktiger_txvideoram_w(offs_t offset, uint8_t data);
+ uint8_t blktiger_bgvideoram_r(offs_t offset);
+ void blktiger_bgvideoram_w(offs_t offset, uint8_t data);
+ void blktiger_bgvideoram_bank_w(uint8_t data);
+ void blktiger_scrolly_w(offs_t offset, uint8_t data);
+ void blktiger_scrollx_w(offs_t offset, uint8_t data);
+ void blktiger_video_control_w(uint8_t data);
+ void blktiger_video_enable_w(uint8_t data);
+ void blktiger_screen_layout_w(uint8_t data);
TILEMAP_MAPPER_MEMBER(bg8x4_scan);
TILEMAP_MAPPER_MEMBER(bg4x8_scan);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
diff --git a/src/mame/includes/blmbycar.h b/src/mame/includes/blmbycar.h
index cb8735713a9..f324137c431 100644
--- a/src/mame/includes/blmbycar.h
+++ b/src/mame/includes/blmbycar.h
@@ -58,17 +58,17 @@ private:
int m_retvalue; // waterball
// common
- DECLARE_WRITE8_MEMBER(okibank_w);
- template<int Layer> DECLARE_WRITE16_MEMBER(vram_w);
+ void okibank_w(uint8_t data);
+ template<int Layer> void vram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
// blmbycar
- DECLARE_WRITE8_MEMBER(blmbycar_pot_wheel_reset_w);
- DECLARE_WRITE8_MEMBER(blmbycar_pot_wheel_shift_w);
- DECLARE_READ16_MEMBER(blmbycar_pot_wheel_r);
- DECLARE_READ16_MEMBER(blmbycar_opt_wheel_r);
+ void blmbycar_pot_wheel_reset_w(uint8_t data);
+ void blmbycar_pot_wheel_shift_w(uint8_t data);
+ uint16_t blmbycar_pot_wheel_r();
+ uint16_t blmbycar_opt_wheel_r();
// waterball
- DECLARE_READ16_MEMBER(waterball_unk_r);
+ uint16_t waterball_unk_r();
template<int Layer> TILE_GET_INFO_MEMBER(get_tile_info);
diff --git a/src/mame/includes/blockout.h b/src/mame/includes/blockout.h
index b29e177f1ae..5e86bc1bd39 100644
--- a/src/mame/includes/blockout.h
+++ b/src/mame/includes/blockout.h
@@ -41,8 +41,8 @@ public:
required_device<generic_latch_8_device> m_soundlatch;
DECLARE_WRITE_LINE_MEMBER(irq_handler);
- DECLARE_WRITE16_MEMBER(blockout_irq6_ack_w);
- DECLARE_WRITE16_MEMBER(blockout_irq5_ack_w);
+ void blockout_irq6_ack_w(uint16_t data);
+ void blockout_irq5_ack_w(uint16_t data);
void frontcolor_w(offs_t offset, u16 data, u16 mem_mask = ~0);
u8 videoram_r(offs_t offset);
void videoram_w(offs_t offset, u8 data);
diff --git a/src/mame/includes/bloodbro.h b/src/mame/includes/bloodbro.h
index 27faffcb43b..c0528c9c6bf 100644
--- a/src/mame/includes/bloodbro.h
+++ b/src/mame/includes/bloodbro.h
@@ -62,12 +62,12 @@ private:
bool m_weststry_opl_irq;
bool m_weststry_soundnmi_mask;
- DECLARE_WRITE16_MEMBER(bgvideoram_w);
- DECLARE_WRITE16_MEMBER(fgvideoram_w);
- DECLARE_WRITE16_MEMBER(txvideoram_w);
+ void bgvideoram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void fgvideoram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void txvideoram_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
void layer_en_w(uint16_t data);
void layer_scroll_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
- DECLARE_WRITE16_MEMBER(weststry_layer_scroll_w);
+ void weststry_layer_scroll_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
void weststry_soundlatch_w(offs_t offset, u8 data);
DECLARE_WRITE_LINE_MEMBER(weststry_opl_irq_w);
void weststry_opl_w(offs_t offset, uint8_t data);
diff --git a/src/mame/includes/blueprnt.h b/src/mame/includes/blueprnt.h
index c4a798c41ae..ffaf731db18 100644
--- a/src/mame/includes/blueprnt.h
+++ b/src/mame/includes/blueprnt.h
@@ -48,13 +48,13 @@ public:
/* misc */
int m_dipsw;
- DECLARE_READ8_MEMBER(blueprnt_sh_dipsw_r);
- DECLARE_READ8_MEMBER(grasspin_sh_dipsw_r);
- DECLARE_WRITE8_MEMBER(blueprnt_sound_command_w);
- DECLARE_WRITE8_MEMBER(blueprnt_coin_counter_w);
- DECLARE_WRITE8_MEMBER(blueprnt_videoram_w);
- DECLARE_WRITE8_MEMBER(blueprnt_colorram_w);
- DECLARE_WRITE8_MEMBER(blueprnt_flipscreen_w);
+ uint8_t blueprnt_sh_dipsw_r();
+ uint8_t grasspin_sh_dipsw_r();
+ void blueprnt_sound_command_w(uint8_t data);
+ void blueprnt_coin_counter_w(uint8_t data);
+ void blueprnt_videoram_w(offs_t offset, uint8_t data);
+ void blueprnt_colorram_w(offs_t offset, uint8_t data);
+ void blueprnt_flipscreen_w(uint8_t data);
void dipsw_w(uint8_t data);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void machine_start() override;
diff --git a/src/mame/includes/bogeyman.h b/src/mame/includes/bogeyman.h
index 38bf922346c..647c5a77a24 100644
--- a/src/mame/includes/bogeyman.h
+++ b/src/mame/includes/bogeyman.h
@@ -62,12 +62,12 @@ private:
int m_last_write;
int m_colbank;
- DECLARE_WRITE8_MEMBER(ay8910_latch_w);
- DECLARE_WRITE8_MEMBER(ay8910_control_w);
- DECLARE_WRITE8_MEMBER(videoram_w);
- DECLARE_WRITE8_MEMBER(colorram_w);
- DECLARE_WRITE8_MEMBER(videoram2_w);
- DECLARE_WRITE8_MEMBER(colorram2_w);
+ void ay8910_latch_w(uint8_t data);
+ void ay8910_control_w(uint8_t data);
+ void videoram_w(offs_t offset, uint8_t data);
+ void colorram_w(offs_t offset, uint8_t data);
+ void videoram2_w(offs_t offset, uint8_t data);
+ void colorram2_w(offs_t offset, uint8_t data);
void colbank_w(uint8_t data);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
diff --git a/src/mame/includes/bombjack.h b/src/mame/includes/bombjack.h
index 3ce4bbaaf3e..8234037c5f2 100644
--- a/src/mame/includes/bombjack.h
+++ b/src/mame/includes/bombjack.h
@@ -36,12 +36,12 @@ protected:
virtual void video_start() override;
private:
- DECLARE_READ8_MEMBER(soundlatch_read_and_clear);
- DECLARE_WRITE8_MEMBER(irq_mask_w);
- DECLARE_WRITE8_MEMBER(bombjack_videoram_w);
- DECLARE_WRITE8_MEMBER(bombjack_colorram_w);
- DECLARE_WRITE8_MEMBER(bombjack_background_w);
- DECLARE_WRITE8_MEMBER(bombjack_flipscreen_w);
+ uint8_t soundlatch_read_and_clear();
+ void irq_mask_w(uint8_t data);
+ void bombjack_videoram_w(offs_t offset, uint8_t data);
+ void bombjack_colorram_w(offs_t offset, uint8_t data);
+ void bombjack_background_w(uint8_t data);
+ void bombjack_flipscreen_w(uint8_t data);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
uint32_t screen_update_bombjack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
diff --git a/src/mame/includes/boogwing.h b/src/mame/includes/boogwing.h
index fc1411b2b63..dc28c12ee82 100644
--- a/src/mame/includes/boogwing.h
+++ b/src/mame/includes/boogwing.h
@@ -52,14 +52,14 @@ public:
bitmap_ind16 m_alpha_tmap_bitmap;
void sound_bankswitch_w(uint8_t data);
- DECLARE_WRITE16_MEMBER(priority_w);
+ void priority_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
void init_boogwing();
virtual void machine_reset() override;
virtual void video_start() override;
uint32_t screen_update_boogwing(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
void mix_boogwing(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
- DECLARE_READ16_MEMBER( boogwing_protection_region_0_104_r );
- DECLARE_WRITE16_MEMBER( boogwing_protection_region_0_104_w );
+ uint16_t boogwing_protection_region_0_104_r(offs_t offset);
+ void boogwing_protection_region_0_104_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
DECO16IC_BANK_CB_MEMBER(bank_callback);
DECO16IC_BANK_CB_MEMBER(bank_callback2);
diff --git a/src/mame/includes/bosco.h b/src/mame/includes/bosco.h
index efab2b90bad..439e142dcd2 100644
--- a/src/mame/includes/bosco.h
+++ b/src/mame/includes/bosco.h
@@ -42,10 +42,10 @@ public:
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int flip);
void draw_bullets(bitmap_ind16 &bitmap, const rectangle &cliprect, int flip);
void draw_stars(bitmap_ind16 &bitmap, const rectangle &cliprect, int flip);
- DECLARE_WRITE8_MEMBER( bosco_videoram_w );
- DECLARE_WRITE8_MEMBER( bosco_scrollx_w );
- DECLARE_WRITE8_MEMBER( bosco_scrolly_w );
- DECLARE_WRITE8_MEMBER( bosco_starclr_w );
+ void bosco_videoram_w(offs_t offset, uint8_t data);
+ void bosco_scrollx_w(uint8_t data);
+ void bosco_scrolly_w(uint8_t data);
+ void bosco_starclr_w(uint8_t data);
void bosco(machine_config &config);
void bosco_map(address_map &map);
};
diff --git a/src/mame/includes/bottom9.h b/src/mame/includes/bottom9.h
index 4c43831bb46..7f912617590 100644
--- a/src/mame/includes/bottom9.h
+++ b/src/mame/includes/bottom9.h
@@ -47,17 +47,17 @@ public:
required_device<k051960_device> m_k051960;
required_device<k051316_device> m_k051316;
required_device<palette_device> m_palette;
- DECLARE_READ8_MEMBER(k052109_051960_r);
- DECLARE_WRITE8_MEMBER(k052109_051960_w);
- DECLARE_READ8_MEMBER(bottom9_bankedram1_r);
- DECLARE_WRITE8_MEMBER(bottom9_bankedram1_w);
- DECLARE_READ8_MEMBER(bottom9_bankedram2_r);
- DECLARE_WRITE8_MEMBER(bottom9_bankedram2_w);
- DECLARE_WRITE8_MEMBER(bankswitch_w);
- DECLARE_WRITE8_MEMBER(bottom9_1f90_w);
- DECLARE_WRITE8_MEMBER(bottom9_sh_irqtrigger_w);
- DECLARE_WRITE8_MEMBER(nmi_enable_w);
- DECLARE_WRITE8_MEMBER(sound_bank_w);
+ uint8_t k052109_051960_r(offs_t offset);
+ void k052109_051960_w(offs_t offset, uint8_t data);
+ uint8_t bottom9_bankedram1_r(offs_t offset);
+ void bottom9_bankedram1_w(offs_t offset, uint8_t data);
+ uint8_t bottom9_bankedram2_r(offs_t offset);
+ void bottom9_bankedram2_w(offs_t offset, uint8_t data);
+ void bankswitch_w(uint8_t data);
+ void bottom9_1f90_w(uint8_t data);
+ void bottom9_sh_irqtrigger_w(uint8_t data);
+ void nmi_enable_w(uint8_t data);
+ void sound_bank_w(uint8_t data);
virtual void machine_start() override;
virtual void machine_reset() override;
uint32_t screen_update_bottom9(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
diff --git a/src/mame/includes/brkthru.h b/src/mame/includes/brkthru.h
index c8fcc491ba0..41754832569 100644
--- a/src/mame/includes/brkthru.h
+++ b/src/mame/includes/brkthru.h
@@ -49,11 +49,11 @@ public:
required_device<generic_latch_8_device> m_soundlatch;
uint8_t m_nmi_mask;
- DECLARE_WRITE8_MEMBER(brkthru_1803_w);
- DECLARE_WRITE8_MEMBER(darwin_0803_w);
- DECLARE_WRITE8_MEMBER(brkthru_bgram_w);
- DECLARE_WRITE8_MEMBER(brkthru_fgram_w);
- DECLARE_WRITE8_MEMBER(brkthru_1800_w);
+ void brkthru_1803_w(uint8_t data);
+ void darwin_0803_w(uint8_t data);
+ void brkthru_bgram_w(offs_t offset, uint8_t data);
+ void brkthru_fgram_w(offs_t offset, uint8_t data);
+ void brkthru_1800_w(offs_t offset, uint8_t data);
DECLARE_INPUT_CHANGED_MEMBER(coin_inserted);
void init_brkthru();
TILE_GET_INFO_MEMBER(get_bg_tile_info);
diff --git a/src/mame/includes/bsktball.h b/src/mame/includes/bsktball.h
index 975be60d772..bcd301bc07a 100644
--- a/src/mame/includes/bsktball.h
+++ b/src/mame/includes/bsktball.h
@@ -41,14 +41,14 @@ protected:
DECLARE_WRITE_LINE_MEMBER(nmion_w);
DECLARE_WRITE_LINE_MEMBER(ld1_w);
DECLARE_WRITE_LINE_MEMBER(ld2_w);
- DECLARE_READ8_MEMBER(bsktball_in0_r);
- DECLARE_WRITE8_MEMBER(bsktball_videoram_w);
+ uint8_t bsktball_in0_r();
+ void bsktball_videoram_w(offs_t offset, uint8_t data);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
void bsktball_palette(palette_device &palette) const;
uint32_t screen_update_bsktball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_DEVICE_CALLBACK_MEMBER(bsktball_scanline);
- DECLARE_WRITE8_MEMBER(bsktball_bounce_w);
- DECLARE_WRITE8_MEMBER(bsktball_note_w);
+ void bsktball_bounce_w(uint8_t data);
+ void bsktball_note_w(uint8_t data);
void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect);
protected:
diff --git a/src/mame/includes/btime.h b/src/mame/includes/btime.h
index 40fa11d8ddd..4a744791185 100644
--- a/src/mame/includes/btime.h
+++ b/src/mame/includes/btime.h
@@ -79,25 +79,25 @@ public:
optional_device<generic_latch_8_device> m_soundlatch;
optional_memory_region m_prom_region;
- DECLARE_WRITE8_MEMBER(audio_nmi_enable_w);
- DECLARE_READ8_MEMBER(zoar_dsw1_read);
- DECLARE_READ8_MEMBER(wtennis_reset_hack_r);
- DECLARE_READ8_MEMBER(mmonkey_protection_r);
- DECLARE_WRITE8_MEMBER(mmonkey_protection_w);
- DECLARE_WRITE8_MEMBER(lnc_videoram_w);
- DECLARE_READ8_MEMBER(btime_mirrorvideoram_r);
- DECLARE_READ8_MEMBER(btime_mirrorcolorram_r);
- DECLARE_WRITE8_MEMBER(btime_mirrorvideoram_w);
- DECLARE_WRITE8_MEMBER(lnc_mirrorvideoram_w);
- DECLARE_WRITE8_MEMBER(btime_mirrorcolorram_w);
- DECLARE_WRITE8_MEMBER(deco_charram_w);
- DECLARE_WRITE8_MEMBER(bnj_background_w);
- DECLARE_WRITE8_MEMBER(bnj_scroll1_w);
- DECLARE_WRITE8_MEMBER(bnj_scroll2_w);
- DECLARE_WRITE8_MEMBER(btime_video_control_w);
- DECLARE_WRITE8_MEMBER(bnj_video_control_w);
- DECLARE_WRITE8_MEMBER(zoar_video_control_w);
- DECLARE_WRITE8_MEMBER(disco_video_control_w);
+ void audio_nmi_enable_w(uint8_t data);
+ uint8_t zoar_dsw1_read();
+ uint8_t wtennis_reset_hack_r();
+ uint8_t mmonkey_protection_r(offs_t offset);
+ void mmonkey_protection_w(offs_t offset, uint8_t data);
+ void lnc_videoram_w(offs_t offset, uint8_t data);
+ uint8_t btime_mirrorvideoram_r(offs_t offset);
+ uint8_t btime_mirrorcolorram_r(offs_t offset);
+ void btime_mirrorvideoram_w(offs_t offset, uint8_t data);
+ void lnc_mirrorvideoram_w(offs_t offset, uint8_t data);
+ void btime_mirrorcolorram_w(offs_t offset, uint8_t data);
+ void deco_charram_w(offs_t offset, uint8_t data);
+ void bnj_background_w(offs_t offset, uint8_t data);
+ void bnj_scroll1_w(uint8_t data);
+ void bnj_scroll2_w(uint8_t data);
+ void btime_video_control_w(uint8_t data);
+ void bnj_video_control_w(uint8_t data);
+ void zoar_video_control_w(uint8_t data);
+ void disco_video_control_w(uint8_t data);
DECLARE_INPUT_CHANGED_MEMBER(coin_inserted_irq_hi);
DECLARE_INPUT_CHANGED_MEMBER(coin_inserted_irq_lo);
DECLARE_INPUT_CHANGED_MEMBER(coin_inserted_nmi_lo);
diff --git a/src/mame/includes/btoads.h b/src/mame/includes/btoads.h
index f52d244c833..c8b51de940c 100644
--- a/src/mame/includes/btoads.h
+++ b/src/mame/includes/btoads.h
@@ -84,31 +84,31 @@ private:
int m_xcount;
// in drivers/btoads
- DECLARE_WRITE16_MEMBER( main_sound_w );
- DECLARE_READ16_MEMBER( main_sound_r );
- DECLARE_WRITE8_MEMBER( sound_data_w );
- DECLARE_READ8_MEMBER( sound_data_r );
- DECLARE_READ8_MEMBER( sound_ready_to_send_r );
- DECLARE_READ8_MEMBER( sound_data_ready_r );
- DECLARE_WRITE8_MEMBER( sound_int_state_w );
- DECLARE_READ8_MEMBER( bsmt_ready_r );
- DECLARE_WRITE8_MEMBER( bsmt2000_port_w );
+ void main_sound_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ uint16_t main_sound_r();
+ void sound_data_w(uint8_t data);
+ uint8_t sound_data_r();
+ uint8_t sound_ready_to_send_r();
+ uint8_t sound_data_ready_r();
+ void sound_int_state_w(uint8_t data);
+ uint8_t bsmt_ready_r();
+ void bsmt2000_port_w(offs_t offset, uint8_t data);
// in video/btoads
- DECLARE_WRITE16_MEMBER( misc_control_w );
- DECLARE_WRITE16_MEMBER( display_control_w );
- DECLARE_WRITE16_MEMBER( scroll0_w );
- DECLARE_WRITE16_MEMBER( scroll1_w );
- DECLARE_WRITE16_MEMBER( paletteram_w );
- DECLARE_READ16_MEMBER( paletteram_r );
- DECLARE_WRITE16_MEMBER( vram_bg0_w );
- DECLARE_WRITE16_MEMBER( vram_bg1_w );
- DECLARE_READ16_MEMBER( vram_bg0_r );
- DECLARE_READ16_MEMBER( vram_bg1_r );
- DECLARE_WRITE16_MEMBER( vram_fg_display_w );
- DECLARE_WRITE16_MEMBER( vram_fg_draw_w );
- DECLARE_READ16_MEMBER( vram_fg_display_r );
- DECLARE_READ16_MEMBER( vram_fg_draw_r );
+ void misc_control_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void display_control_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void scroll0_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void scroll1_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void paletteram_w(offs_t offset, uint16_t data);
+ uint16_t paletteram_r(offs_t offset);
+ void vram_bg0_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void vram_bg1_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ uint16_t vram_bg0_r(offs_t offset);
+ uint16_t vram_bg1_r(offs_t offset);
+ void vram_fg_display_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ void vram_fg_draw_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
+ uint16_t vram_fg_display_r(offs_t offset);
+ uint16_t vram_fg_draw_r(offs_t offset);
void render_sprite_row(uint16_t *sprite_source, uint32_t address);
TMS340X0_TO_SHIFTREG_CB_MEMBER(to_shiftreg);
TMS340X0_FROM_SHIFTREG_CB_MEMBER(from_shiftreg);
diff --git a/src/mame/includes/bublbobl.h b/src/mame/includes/bublbobl.h
index c698c7bca3c..2dfb75c3fd9 100644
--- a/src/mame/includes/bublbobl.h
+++ b/src/mame/includes/bublbobl.h
@@ -94,30 +94,30 @@ public:
void bublbobl_bankswitch_w(uint8_t data);
void tokio_bankswitch_w(uint8_t data);
void tokio_videoctrl_w(uint8_t data);
- DECLARE_WRITE8_MEMBER(bublbobl_nmitrigger_w);
- DECLARE_READ8_MEMBER(tokiob_mcu_r);
- DECLARE_WRITE8_MEMBER(bublbobl_soundcpu_reset_w);
- DECLARE_READ8_MEMBER(common_sound_semaphores_r);
- DECLARE_READ8_MEMBER(bublbobl_mcu_ddr1_r);
- DECLARE_WRITE8_MEMBER(bublbobl_mcu_ddr1_w);
- DECLARE_READ8_MEMBER(bublbobl_mcu_ddr2_r);
- DECLARE_WRITE8_MEMBER(bublbobl_mcu_ddr2_w);
- DECLARE_READ8_MEMBER(bublbobl_mcu_ddr3_r);
- DECLARE_WRITE8_MEMBER(bublbobl_mcu_ddr3_w);
- DECLARE_READ8_MEMBER(bublbobl_mcu_ddr4_r);
- DECLARE_WRITE8_MEMBER(bublbobl_mcu_ddr4_w);
- DECLARE_READ8_MEMBER(bublbobl_mcu_port1_r);
- DECLARE_WRITE8_MEMBER(bublbobl_mcu_port1_w);
- DECLARE_READ8_MEMBER(bublbobl_mcu_port2_r);
- DECLARE_WRITE8_MEMBER(bublbobl_mcu_port2_w);
- DECLARE_READ8_MEMBER(bublbobl_mcu_port3_r);
- DECLARE_WRITE8_MEMBER(bublbobl_mcu_port3_w);
- DECLARE_READ8_MEMBER(bublbobl_mcu_port4_r);
- DECLARE_WRITE8_MEMBER(bublbobl_mcu_port4_w);
- DECLARE_READ8_MEMBER(boblbobl_ic43_a_r);
- DECLARE_WRITE8_MEMBER(boblbobl_ic43_a_w);
- DECLARE_WRITE8_MEMBER(boblbobl_ic43_b_w);
- DECLARE_READ8_MEMBER(boblbobl_ic43_b_r);
+ void bublbobl_nmitrigger_w(uint8_t data);
+ uint8_t tokiob_mcu_r();
+ void bublbobl_soundcpu_reset_w(uint8_t data);
+ uint8_t common_sound_semaphores_r();
+ uint8_t bublbobl_mcu_ddr1_r();
+ void bublbobl_mcu_ddr1_w(uint8_t data);
+ uint8_t bublbobl_mcu_ddr2_r();
+ void bublbobl_mcu_ddr2_w(uint8_t data);
+ uint8_t bublbobl_mcu_ddr3_r();
+ void bublbobl_mcu_ddr3_w(uint8_t data);
+ uint8_t bublbobl_mcu_ddr4_r();
+ void bublbobl_mcu_ddr4_w(uint8_t data);
+ uint8_t bublbobl_mcu_port1_r();
+ void bublbobl_mcu_port1_w(uint8_t data);
+ uint8_t bublbobl_mcu_port2_r();
+ void bublbobl_mcu_port2_w(uint8_t data);
+ uint8_t bublbobl_mcu_port3_r();
+ void bublbobl_mcu_port3_w(uint8_t data);
+ uint8_t bublbobl_mcu_port4_r();
+ void bublbobl_mcu_port4_w(uint8_t data);
+ uint8_t boblbobl_ic43_a_r(offs_t offset);
+ void boblbobl_ic43_a_w(offs_t offset, uint8_t data);
+ void boblbobl_ic43_b_w(offs_t offset, uint8_t data);
+ uint8_t boblbobl_ic43_b_r(offs_t offset);
void init_dland();
void init_common();
diff --git a/src/mame/includes/buggychl.h b/src/mame/includes/buggychl.h
index 123e3543811..15b5e5febcb 100644
--- a/src/mame/includes/buggychl.h
+++ b/src/mame/includes/buggychl.h
@@ -69,21 +69,21 @@ public:
output_finder<1> m_led;
- DECLARE_WRITE8_MEMBER(bankswitch_w);
- DECLARE_WRITE8_MEMBER(sound_enable_w);
- DECLARE_READ8_MEMBER(mcu_status_r);
- DECLARE_READ8_MEMBER(sound_status_main_r);
- DECLARE_READ8_MEMBER(sound_status_sound_r);
- DECLARE_WRITE8_MEMBER(buggychl_chargen_w);
- DECLARE_WRITE8_MEMBER(buggychl_sprite_lookup_bank_w);
- DECLARE_WRITE8_MEMBER(buggychl_sprite_lookup_w);
- DECLARE_WRITE8_MEMBER(buggychl_ctrl_w);
- DECLARE_WRITE8_MEMBER(buggychl_bg_scrollx_w);
+ void bankswitch_w(uint8_t data);
+ void sound_enable_w(uint8_t data);
+ uint8_t mcu_status_r();
+ uint8_t sound_status_main_r();
+ uint8_t sound_status_sound_r();
+ void buggychl_chargen_w(offs_t offset, uint8_t data);
+ void buggychl_sprite_lookup_bank_w(uint8_t data);
+ void buggychl_sprite_lookup_w(offs_t offset, uint8_t data);
+ void buggychl_ctrl_w(uint8_t data);
+ void buggychl_bg_scrollx_w(uint8_t data);
void ta7630_volbal_ay1_w(uint8_t data);
void port_b_0_w(uint8_t data);
void ta7630_volbal_ay2_w(uint8_t data);
void port_b_1_w(uint8_t data);
- DECLARE_WRITE8_MEMBER(ta7630_volbal_msm_w);
+ void ta7630_volbal_msm_w(uint8_t data);
virtual void machine_start() override;
virtual void machine_reset() override;
virtual void video_start() override;
diff --git a/src/mame/includes/bullet.h b/src/mame/includes/bullet.h
index 3f93f37023e..ca3f3e4c705 100644
--- a/src/mame/includes/bullet.h
+++ b/src/mame/includes/bullet.h
@@ -57,17 +57,17 @@ public:
{
}
- DECLARE_READ8_MEMBER( mreq_r );
- DECLARE_WRITE8_MEMBER( mreq_w );
- DECLARE_READ8_MEMBER( info_r );
- DECLARE_READ8_MEMBER( brom_r );
- DECLARE_WRITE8_MEMBER( brom_w );
- DECLARE_READ8_MEMBER( win_r );
- DECLARE_WRITE8_MEMBER( wstrobe_w );
- DECLARE_WRITE8_MEMBER( exdsk_w );
- DECLARE_WRITE8_MEMBER( exdma_w );
- DECLARE_WRITE8_MEMBER( hdcon_w );
- DECLARE_WRITE8_MEMBER( segst_w );
+ uint8_t mreq_r(offs_t offset);
+ void mreq_w(offs_t offset, uint8_t data);
+ uint8_t info_r();
+ uint8_t brom_r();
+ void brom_w(uint8_t data);
+ uint8_t win_r();
+ void wstrobe_w(uint8_t data);
+ void exdsk_w(uint8_t data);
+ void exdma_w(uint8_t data);
+ void hdcon_w(uint8_t data);
+ void segst_w(uint8_t data);
uint8_t dma_mreq_r(offs_t offset);
void dma_mreq_w(offs_t offset, uint8_t data);
uint8_t pio_pb_r();
@@ -148,14 +148,14 @@ public:
{
}
- DECLARE_READ8_MEMBER( mreq_r );
- DECLARE_WRITE8_MEMBER( mreq_w );
- DECLARE_WRITE8_MEMBER( xdma0_w );
- DECLARE_WRITE8_MEMBER( xfdc_w );
- DECLARE_WRITE8_MEMBER( mbank_w );
- DECLARE_READ8_MEMBER( hwsts_r );
- DECLARE_READ8_MEMBER( scsi_r );
- DECLARE_WRITE8_MEMBER( scsi_w );
+ uint8_t mreq_r(offs_t offset);
+ void mreq_w(offs_t offset, uint8_t data);
+ void xdma0_w(uint8_t data);
+ void xfdc_w(uint8_t data);
+ void mbank_w(uint8_t data);
+ uint8_t hwsts_r();
+ uint8_t scsi_r();
+ void scsi_w(uint8_t data);
uint8_t dma_mreq_r(offs_t offset);
void dma_mreq_w(offs_t offset, uint8_t data);
diff --git a/src/mame/includes/busicom.h b/src/mame/includes/busicom.h
index 2a61b4d42f5..5b999e7e838 100644
--- a/src/mame/includes/busicom.h
+++ b/src/mame/includes/busicom.h
@@ -34,12 +34,12 @@ protected:
virtual void video_start() override;
private:
- DECLARE_READ8_MEMBER(keyboard_r);
- DECLARE_READ8_MEMBER(printer_r);
- DECLARE_WRITE8_MEMBER(shifter_w);
- DECLARE_WRITE8_MEMBER(printer_w);
- DECLARE_WRITE8_MEMBER(status_w);
- DECLARE_WRITE8_MEMBER(printer_ctrl_w);
+ uint8_t keyboard_r();
+ uint8_t printer_r();
+ void shifter_w(uint8_t data);
+ void printer_w(uint8_t data);
+ void status_w(uint8_t data);
+ void printer_ctrl_w(uint8_t data);
void busicom_palette(palette_device &palette) const;
uint32_t screen_update_busicom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
TIMER_DEVICE_CALLBACK_MEMBER(timer_callback);
diff --git a/src/mame/includes/bwidow.h b/src/mame/includes/bwidow.h
index 5bdea57a1eb..4bcbb74868e 100644
--- a/src/mame/includes/bwidow.h
+++ b/src/mame/includes/bwidow.h
@@ -34,13 +34,13 @@ public:
DECLARE_READ_LINE_MEMBER(clock_r);
protected:
- DECLARE_READ8_MEMBER(spacduel_IN3_r);
- DECLARE_READ8_MEMBER(bwidowp_in_r);
- DECLARE_WRITE8_MEMBER(bwidow_misc_w);
- DECLARE_WRITE8_MEMBER(spacduel_coin_counter_w);
- DECLARE_WRITE8_MEMBER(irq_ack_w);
- DECLARE_READ8_MEMBER(earom_read);
- DECLARE_WRITE8_MEMBER(earom_write);
+ uint8_t spacduel_IN3_r(offs_t offset);
+ uint8_t bwidowp_in_r();
+ void bwidow_misc_w(uint8_t data);
+ void spacduel_coin_counter_w(uint8_t data);
+ void irq_ack_w(uint8_t data);
+ uint8_t earom_read();
+ void earom_write(offs_t offset, uint8_t data);
void earom_control_w(uint8_t data);
void bwidow_map(address_map &map);
diff --git a/src/mame/includes/bwing.h b/src/mame/includes/bwing.h
index 9c017d299e2..6675aca703a 100644
--- a/src/mame/includes/bwing.h
+++ b/src/mame/includes/bwing.h
@@ -61,17 +61,17 @@ public:
int m_bwp3_nmimask;
int m_bwp3_u8F_d;
- DECLARE_WRITE8_MEMBER(bwp3_u8F_w);
- DECLARE_WRITE8_MEMBER(bwp3_nmimask_w);
- DECLARE_WRITE8_MEMBER(bwp3_nmiack_w);
- DECLARE_WRITE8_MEMBER(bwp1_ctrl_w);
- DECLARE_WRITE8_MEMBER(bwp2_ctrl_w);
- DECLARE_WRITE8_MEMBER(videoram_w);
- DECLARE_WRITE8_MEMBER(fgscrollram_w);
- DECLARE_WRITE8_MEMBER(bgscrollram_w);
- DECLARE_WRITE8_MEMBER(gfxram_w);
- DECLARE_WRITE8_MEMBER(scrollreg_w);
- DECLARE_WRITE8_MEMBER(paletteram_w);
+ void bwp3_u8F_w(uint8_t data);
+ void bwp3_nmimask_w(uint8_t data);
+ void bwp3_nmiack_w(uint8_t data);
+ void bwp1_ctrl_w(offs_t offset, uint8_t data);
+ void bwp2_ctrl_w(offs_t offset, uint8_t data);
+ void videoram_w(offs_t offset, uint8_t data);
+ void fgscrollram_w(offs_t offset, uint8_t data);
+ void bgscrollram_w(offs_t offset, uint8_t data);
+ void gfxram_w(offs_t offset, uint8_t data);
+ void scrollreg_w(offs_t offset, uint8_t data);
+ void paletteram_w(offs_t offset, uint8_t data);
DECLARE_INPUT_CHANGED_MEMBER(coin_inserted);
DECLARE_INPUT_CHANGED_MEMBER(tilt_pressed);
diff --git a/src/mame/includes/macpci.h b/src/mame/includes/macpci.h
index ae953dc627b..505fd224b04 100644
--- a/src/mame/includes/macpci.h
+++ b/src/mame/includes/macpci.h
@@ -145,6 +145,7 @@ private:
void init_pippin();
void pippin_mem(address_map &map);
+ void cdmcu_mem(address_map &map);
// wait states for accessing the VIA
int m_via_cycles;
diff --git a/src/mame/includes/namcos22.h b/src/mame/includes/namcos22.h
index c1f791b439c..b1a70010567 100644
--- a/src/mame/includes/namcos22.h
+++ b/src/mame/includes/namcos22.h
@@ -267,16 +267,16 @@ protected:
virtual void video_start() override;
virtual void device_post_load() override;
- void namcos22_textram_w(offs_t offset, u32 data, u32 mem_mask);
+ void namcos22_textram_w(offs_t offset, u32 data, u32 mem_mask = ~0);
u16 namcos22_tilemapattr_r(offs_t offset);
- void namcos22_tilemapattr_w(offs_t offset, u16 data, u16 mem_mask);
+ void namcos22_tilemapattr_w(offs_t offset, u16 data, u16 mem_mask = ~0);
u32 namcos22_dspram_r(offs_t offset);
- void namcos22_dspram_w(offs_t offset, u32 data, u32 mem_mask);
- void namcos22_cgram_w(offs_t offset, u32 data, u32 mem_mask);
- void namcos22_paletteram_w(offs_t offset, u32 data, u32 mem_mask);
- void namcos22_dspram16_bank_w(offs_t offset, u16 data, u16 mem_mask);
+ void namcos22_dspram_w(offs_t offset, u32 data, u32 mem_mask = ~0);
+ void namcos22_cgram_w(offs_t offset, u32 data, u32 mem_mask = ~0);
+ void namcos22_paletteram_w(offs_t offset, u32 data, u32 mem_mask = ~0);
+ void namcos22_dspram16_bank_w(offs_t offset, u16 data, u16 mem_mask = ~0);
u16 namcos22_dspram16_r(offs_t offset);
- void namcos22_dspram16_w(offs_t offset, u16 data, u16 mem_mask);
+ void namcos22_dspram16_w(offs_t offset, u16 data, u16 mem_mask = ~0);
u16 pdp_status_r();
u16 pdp_begin_r();
u16 dsp_hold_signal_r();
@@ -311,12 +311,12 @@ protected:
DECLARE_READ32_MEMBER(namcos22_sci_r);
DECLARE_WRITE32_MEMBER(namcos22_sci_w);
u16 namcos22_shared_r(offs_t offset);
- void namcos22_shared_w(offs_t offset, u16 data, u16 mem_mask);
+ void namcos22_shared_w(offs_t offset, u16 data, u16 mem_mask = ~0);
u16 namcos22_keycus_r(offs_t offset);
- void namcos22_keycus_w(offs_t offset, u16 data, u16 mem_mask);
+ void namcos22_keycus_w(offs_t offset, u16 data, u16 mem_mask = ~0);
DECLARE_READ16_MEMBER(namcos22_portbit_r);
DECLARE_WRITE16_MEMBER(namcos22_portbit_w);
- void namcos22_cpuleds_w(offs_t offset, u32 data, u32 mem_mask);
+ void namcos22_cpuleds_w(offs_t offset, u32 data, u32 mem_mask = ~0);
u8 mcu_port4_s22_r();
u8 iomcu_port4_s22_r();
DECLARE_READ16_MEMBER(mcuc74_speedup_r);
@@ -550,7 +550,7 @@ private:
DECLARE_WRITE16_MEMBER(namcos22s_czattr_w);
DECLARE_READ16_MEMBER(namcos22s_czattr_r);
- void namcos22s_czram_w(offs_t offset, u32 data, u32 mem_mask);
+ void namcos22s_czram_w(offs_t offset, u32 data, u32 mem_mask = ~0);
u32 namcos22s_czram_r(offs_t offset);
DECLARE_READ32_MEMBER(namcos22s_vics_control_r);
DECLARE_WRITE32_MEMBER(namcos22s_vics_control_w);
diff --git a/src/mame/includes/neogeo.h b/src/mame/includes/neogeo.h
index 1269920f4af..ed6ed589ec2 100644
--- a/src/mame/includes/neogeo.h
+++ b/src/mame/includes/neogeo.h
@@ -86,7 +86,7 @@ protected:
uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
- virtual DECLARE_WRITE8_MEMBER(io_control_w);
+ virtual void io_control_w(offs_t offset, uint8_t data);
DECLARE_WRITE8_MEMBER(audio_command_w);
DECLARE_WRITE_LINE_MEMBER(set_use_cart_vectors);
DECLARE_WRITE_LINE_MEMBER(set_use_cart_audio);
@@ -227,7 +227,7 @@ protected:
virtual void machine_start() override;
virtual void machine_reset() override;
- virtual DECLARE_WRITE8_MEMBER(io_control_w) override;
+ virtual void io_control_w(offs_t offset, uint8_t data) override;
DECLARE_WRITE_LINE_MEMBER(set_save_ram_unlock);
DECLARE_WRITE16_MEMBER(save_ram_w);
DECLARE_READ16_MEMBER(in0_edge_r);
diff --git a/src/mame/includes/snes.h b/src/mame/includes/snes.h
index 5577d0d0d9c..13f73509bd7 100644
--- a/src/mame/includes/snes.h
+++ b/src/mame/includes/snes.h
@@ -420,14 +420,14 @@ protected:
virtual uint8_t oldjoy1_read(int latched);
virtual uint8_t oldjoy2_read(int latched);
- DECLARE_READ8_MEMBER(snes_r_io);
- DECLARE_WRITE8_MEMBER(snes_w_io);
- DECLARE_READ8_MEMBER(snes_io_dma_r);
- DECLARE_WRITE8_MEMBER(snes_io_dma_w);
- DECLARE_READ8_MEMBER(snes_r_bank1);
- DECLARE_READ8_MEMBER(snes_r_bank2);
- DECLARE_WRITE8_MEMBER(snes_w_bank1);
- DECLARE_WRITE8_MEMBER(snes_w_bank2);
+ uint8_t snes_r_io(offs_t offset);
+ void snes_w_io(address_space &space, offs_t offset, uint8_t data);
+ uint8_t snes_io_dma_r(offs_t offset);
+ void snes_io_dma_w(offs_t offset, uint8_t data);
+ uint8_t snes_r_bank1(offs_t offset);
+ uint8_t snes_r_bank2(offs_t offset);
+ void snes_w_bank1(address_space &space, offs_t offset, uint8_t data);
+ void snes_w_bank2(offs_t offset, uint8_t data);
uint8_t snes_open_bus_r();
TIMER_CALLBACK_MEMBER(snes_nmi_tick);
TIMER_CALLBACK_MEMBER(snes_hirq_tick_callback);
diff --git a/src/mame/layout/dotrikun.lay b/src/mame/layout/dotrikun.lay
deleted file mode 100644
index 8218ee7ca4c..00000000000
--- a/src/mame/layout/dotrikun.lay
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0"?>
-<!--
-license:CC0
--->
-<mamelayout version="2">
- <view name="Square (1:1)">
- <screen index="0">
- <bounds left="0" top="0" right="1" bottom="1" />
- </screen>
- </view>
-</mamelayout>
diff --git a/src/mame/machine/abc1600mac.cpp b/src/mame/machine/abc1600mac.cpp
index 59136727141..37c70a11433 100644
--- a/src/mame/machine/abc1600mac.cpp
+++ b/src/mame/machine/abc1600mac.cpp
@@ -275,24 +275,24 @@ void abc1600_mac_device::write_user_memory(offs_t offset, uint8_t data)
// read_supervisor_memory -
//-------------------------------------------------
-uint8_t abc1600_mac_device::read_supervisor_memory(address_space &space, offs_t offset)
+uint8_t abc1600_mac_device::read_supervisor_memory(offs_t offset)
{
uint8_t data = 0;
if (!A2 && !A1)
{
// _EP
- data = page_r(space, offset);
+ data = page_r(offset);
}
else if (!A2 && A1 && A0)
{
// _ES
- data = segment_r(space, offset);
+ data = segment_r(offset);
}
else if (A2 && A1 && A0)
{
// _CAUSE
- data = cause_r(space, offset);
+ data = cause_r();
}
return data;
@@ -303,22 +303,22 @@ uint8_t abc1600_mac_device::read_supervisor_memory(address_space &space, offs_t
// write_supervisor_memory -
//-------------------------------------------------
-void abc1600_mac_device::write_supervisor_memory(address_space &space, offs_t offset, uint8_t data)
+void abc1600_mac_device::write_supervisor_memory(offs_t offset, uint8_t data)
{
if (!A2 && !A1)
{
// _WEP
- page_w(space, offset, data);
+ page_w(offset, data);
}
else if (!A2 && A1 && A0)
{
// _WES
- segment_w(space, offset, data);
+ segment_w(offset, data);
}
else if (A2 && !A1 && A0)
{
// W(C)
- task_w(space, offset, data);
+ task_w(offset, data);
}
}
@@ -341,7 +341,7 @@ int abc1600_mac_device::get_fc()
// read -
//-------------------------------------------------
-READ8_MEMBER( abc1600_mac_device::read )
+uint8_t abc1600_mac_device::read(offs_t offset)
{
int fc = get_fc();
@@ -354,7 +354,7 @@ READ8_MEMBER( abc1600_mac_device::read )
}
else if (A19 && !m_ifc2 && !FC1)
{
- data = read_supervisor_memory(space, offset);
+ data = read_supervisor_memory(offset);
}
else
{
@@ -369,13 +369,13 @@ READ8_MEMBER( abc1600_mac_device::read )
// write -
//-------------------------------------------------
-WRITE8_MEMBER( abc1600_mac_device::write )
+void abc1600_mac_device::write(offs_t offset, uint8_t data)
{
int fc = get_fc();
if (A19 && !m_ifc2 && !FC1)
{
- write_supervisor_memory(space, offset, data);
+ write_supervisor_memory(offset, data);
}
else
{
@@ -388,7 +388,7 @@ WRITE8_MEMBER( abc1600_mac_device::write )
// cause_r -
//-------------------------------------------------
-READ8_MEMBER( abc1600_mac_device::cause_r )
+uint8_t abc1600_mac_device::cause_r()
{
/*
@@ -420,7 +420,7 @@ READ8_MEMBER( abc1600_mac_device::cause_r )
// task_w -
//-------------------------------------------------
-WRITE8_MEMBER( abc1600_mac_device::task_w )
+void abc1600_mac_device::task_w(offs_t offset, uint8_t data)
{
/*
@@ -447,7 +447,7 @@ WRITE8_MEMBER( abc1600_mac_device::task_w )
// segment_r -
//-------------------------------------------------
-READ8_MEMBER( abc1600_mac_device::segment_r )
+uint8_t abc1600_mac_device::segment_r(offs_t offset)
{
/*
@@ -475,7 +475,7 @@ READ8_MEMBER( abc1600_mac_device::segment_r )
// segment_w -
//-------------------------------------------------
-WRITE8_MEMBER( abc1600_mac_device::segment_w )
+void abc1600_mac_device::segment_w(offs_t offset, uint8_t data)
{
/*
@@ -504,7 +504,7 @@ WRITE8_MEMBER( abc1600_mac_device::segment_w )
// page_r -
//-------------------------------------------------
-READ8_MEMBER( abc1600_mac_device::page_r )
+uint8_t abc1600_mac_device::page_r(offs_t offset)
{
/*
@@ -559,7 +559,7 @@ READ8_MEMBER( abc1600_mac_device::page_r )
// page_w -
//-------------------------------------------------
-WRITE8_MEMBER( abc1600_mac_device::page_w )
+void abc1600_mac_device::page_w(offs_t offset, uint8_t data)
{
/*
@@ -681,7 +681,7 @@ void abc1600_mac_device::dma_iorq_w(int index, uint16_t offset, uint8_t data)
// dmamap_w - DMA map write
//-------------------------------------------------
-WRITE8_MEMBER( abc1600_mac_device::dmamap_w )
+void abc1600_mac_device::dmamap_w(offs_t offset, uint8_t data)
{
/*
diff --git a/src/mame/machine/abc1600mac.h b/src/mame/machine/abc1600mac.h
index 47cdef8a7ec..a0b1a4c0097 100644
--- a/src/mame/machine/abc1600mac.h
+++ b/src/mame/machine/abc1600mac.h
@@ -39,13 +39,13 @@ public:
virtual void map(address_map &map);
- DECLARE_READ8_MEMBER( cause_r );
- DECLARE_WRITE8_MEMBER( task_w );
- DECLARE_READ8_MEMBER( segment_r );
- DECLARE_WRITE8_MEMBER( segment_w );
- DECLARE_READ8_MEMBER( page_r );
- DECLARE_WRITE8_MEMBER( page_w );
- DECLARE_WRITE8_MEMBER( dmamap_w );
+ uint8_t cause_r();
+ void task_w(offs_t offset, uint8_t data);
+ uint8_t segment_r(offs_t offset);
+ void segment_w(offs_t offset, uint8_t data);
+ uint8_t page_r(offs_t offset);
+ void page_w(offs_t offset, uint8_t data);
+ void dmamap_w(offs_t offset, uint8_t data);
uint8_t dma0_mreq_r(offs_t offset) { return dma_mreq_r(DMAMAP_R0_LO, offset); }
void dma0_mreq_w(offs_t offset, uint8_t data) { dma_mreq_w(DMAMAP_R0_LO, offset, data); }
@@ -84,8 +84,8 @@ private:
DMAMAP_R0_HI
};
- DECLARE_READ8_MEMBER( read );
- DECLARE_WRITE8_MEMBER( write );
+ uint8_t read(offs_t offset);
+ void write(offs_t offset, uint8_t data);
int get_current_task(offs_t offset);
offs_t get_segment_address(offs_t offset);
@@ -94,8 +94,8 @@ private:
uint8_t read_user_memory(offs_t offset);
void write_user_memory(offs_t offset, uint8_t data);
int get_fc();
- uint8_t read_supervisor_memory(address_space &space, offs_t offset);
- void write_supervisor_memory(address_space &space, offs_t offset, uint8_t data);
+ uint8_t read_supervisor_memory(offs_t offset);
+ void write_supervisor_memory(offs_t offset, uint8_t data);
offs_t get_dma_address(int index, uint16_t offset);
uint8_t dma_mreq_r(int index, uint16_t offset);
void dma_mreq_w(int index, uint16_t offset, uint8_t data);
diff --git a/src/mame/machine/ajax.cpp b/src/mame/machine/ajax.cpp
index e8a78eca2e9..e7e2b57571c 100644
--- a/src/mame/machine/ajax.cpp
+++ b/src/mame/machine/ajax.cpp
@@ -33,7 +33,7 @@
(*) The Coin Counters are handled by the Konami Custom 051550
*/
-WRITE8_MEMBER(ajax_state::bankswitch_w)
+void ajax_state::bankswitch_w(uint8_t data)
{
int bank = 0;
@@ -77,7 +77,7 @@ WRITE8_MEMBER(ajax_state::bankswitch_w)
LS393 C20 Dual -ve edge trigger 4-bit Binary Ripple Counter with Resets
*/
-WRITE8_MEMBER(ajax_state::lamps_w)
+void ajax_state::lamps_w(uint8_t data)
{
m_lamps[1] = BIT(data, 1); /* super weapon lamp */
m_lamps[2] = BIT(data, 2); /* power up lamps */
@@ -106,7 +106,7 @@ WRITE8_MEMBER(ajax_state::lamps_w)
0x01c0 (r) MIO2 Enables DIPSW #3 reading
*/
-READ8_MEMBER(ajax_state::ls138_f10_r)
+uint8_t ajax_state::ls138_f10_r(offs_t offset)
{
int data = 0, index;
static const char *const portnames[] = { "SYSTEM", "P1", "DSW1", "DSW2" };
@@ -134,7 +134,7 @@ READ8_MEMBER(ajax_state::ls138_f10_r)
return data;
}
-WRITE8_MEMBER(ajax_state::ls138_f10_w)
+void ajax_state::ls138_f10_w(offs_t offset, uint8_t data)
{
switch ((offset & 0x01c0) >> 6)
{
@@ -153,10 +153,10 @@ WRITE8_MEMBER(ajax_state::ls138_f10_w)
m_soundlatch->write(data);
break;
case 0x03: /* Bankswitch + coin counters + priority*/
- bankswitch_w(space, 0, data);
+ bankswitch_w(data);
break;
case 0x05: /* Lamps + Joystick vibration + Control panel quaking */
- lamps_w(space, 0, data);
+ lamps_w(data);
break;
default:
@@ -179,7 +179,7 @@ WRITE8_MEMBER(ajax_state::ls138_f10_w)
0 SRB0 /
*/
-WRITE8_MEMBER(ajax_state::bankswitch_2_w)
+void ajax_state::bankswitch_2_w(uint8_t data)
{
/* enable char ROM reading through the video RAM */
m_k052109->set_rmrd_line((data & 0x40) ? ASSERT_LINE : CLEAR_LINE);
diff --git a/src/mame/machine/amiga.cpp b/src/mame/machine/amiga.cpp
index afb7e5ebb6f..2db6151d286 100644
--- a/src/mame/machine/amiga.cpp
+++ b/src/mame/machine/amiga.cpp
@@ -217,12 +217,12 @@ WRITE_LINE_MEMBER( amiga_state::kbreset_w )
}
// simple mirror of region 0xf80000 to 0xfbffff
-READ16_MEMBER( amiga_state::rom_mirror_r )
+uint16_t amiga_state::rom_mirror_r(offs_t offset, uint16_t mem_mask)
{
return m_maincpu->space(AS_PROGRAM).read_word(offset + 0xf80000, mem_mask);
}
-READ32_MEMBER( amiga_state::rom_mirror32_r )
+uint32_t amiga_state::rom_mirror32_r(offs_t offset, uint32_t mem_mask)
{
return m_maincpu->space(AS_PROGRAM).read_dword(offset + 0xf80000, mem_mask);
}
@@ -1027,7 +1027,7 @@ WRITE_LINE_MEMBER( amiga_state::centronics_select_w )
// CIA-A access: 101x xxxx xxx0 oooo xxxx xxx1
// CIA-B access: 101x xxxx xx0x oooo xxxx xxx0
-READ16_MEMBER( amiga_state::cia_r )
+uint16_t amiga_state::cia_r(offs_t offset, uint16_t mem_mask)
{
uint16_t data = 0;
@@ -1043,7 +1043,7 @@ READ16_MEMBER( amiga_state::cia_r )
return data;
}
-WRITE16_MEMBER( amiga_state::cia_w )
+void amiga_state::cia_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
if (LOG_CIA)
logerror("%s: cia_w(%06x) = %04x & %04x\n", machine().describe_context(), offset, data, mem_mask);
@@ -1055,7 +1055,7 @@ WRITE16_MEMBER( amiga_state::cia_w )
m_cia_1->write(offset >> 7, data >> 8);
}
-WRITE16_MEMBER( amiga_state::gayle_cia_w )
+void amiga_state::gayle_cia_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
// the first write to cia 0 after a reset switches in chip ram
if (m_gayle_reset && (offset & 0x1000/2) == 0 && ACCESSING_BITS_0_7)
@@ -1065,7 +1065,7 @@ WRITE16_MEMBER( amiga_state::gayle_cia_w )
}
// hand down to the standard cia handler
- cia_w(space, offset, data, mem_mask);
+ cia_w(offset, data, mem_mask);
}
CUSTOM_INPUT_MEMBER( amiga_state::floppy_drive_status )
@@ -1143,7 +1143,7 @@ void amiga_state::custom_chip_reset()
CUSTOM_REG(REG_BEAMCON0) = (m_agnus_id & 0x10) ? 0x0000 : 0x0020;
}
-READ16_MEMBER( amiga_state::custom_chip_r )
+uint16_t amiga_state::custom_chip_r(offs_t offset)
{
uint16_t temp;
diff --git a/src/mame/machine/apollo.cpp b/src/mame/machine/apollo.cpp
index f01699170ff..4d6e1f29afe 100644
--- a/src/mame/machine/apollo.cpp
+++ b/src/mame/machine/apollo.cpp
@@ -217,7 +217,7 @@ void apollo_csr_set_status_register(uint16_t mask, uint16_t data)
DN3000/DN3500 CPU Status Register at 0x8000/0x10000
-------------------------------------------------*/
-WRITE16_MEMBER(apollo_state::apollo_csr_status_register_w){
+void apollo_state::apollo_csr_status_register_w(offs_t offset, uint16_t data, uint16_t mem_mask){
// To clear bus timeouts or parity conditions from status register,
// write to the status register. This register is readonly.
// in DN3500 bit 15 is always set (undocumented !?)
@@ -225,7 +225,7 @@ WRITE16_MEMBER(apollo_state::apollo_csr_status_register_w){
SLOG1(("writing CPU Status Register at offset %X = %04x & %04x (%04x)", offset, data, mem_mask, cpu_status_register));
}
-READ16_MEMBER(apollo_state::apollo_csr_status_register_r){
+uint16_t apollo_state::apollo_csr_status_register_r(offs_t offset, uint16_t mem_mask){
SLOG2(("reading CPU Status Register at offset %X = %04x & %04x", offset, cpu_status_register, mem_mask));
return cpu_status_register & mem_mask;
}
@@ -234,7 +234,7 @@ READ16_MEMBER(apollo_state::apollo_csr_status_register_r){
DN3000/DN3500 CPU Control Register at 0x8100/0x10100
-------------------------------------------------*/
-WRITE16_MEMBER(apollo_state::apollo_csr_control_register_w)
+void apollo_state::apollo_csr_control_register_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
int leds;
@@ -288,7 +288,7 @@ WRITE16_MEMBER(apollo_state::apollo_csr_control_register_w)
}
}
-READ16_MEMBER(apollo_state::apollo_csr_control_register_r)
+uint16_t apollo_state::apollo_csr_control_register_r(offs_t offset, uint16_t mem_mask)
{
SLOG1(("reading CPU Control Register at offset %X = %04x & %04x", offset, cpu_control_register, mem_mask));
return cpu_control_register & mem_mask;
@@ -315,12 +315,12 @@ static uint8_t dn3000_dma_channel2 = 5; // 5 = memory dma channel
DN3000/DN3500 DMA Controller 1 at 0x9000/0x10c00
-------------------------------------------------*/
-WRITE8_MEMBER(apollo_state::apollo_dma_1_w){
+void apollo_state::apollo_dma_1_w(offs_t offset, uint8_t data){
SLOG1(("apollo_dma_1_w: writing DMA Controller 1 at offset %02x = %02x", offset, data));
m_dma8237_1->write(offset, data);
}
-READ8_MEMBER(apollo_state::apollo_dma_1_r){
+uint8_t apollo_state::apollo_dma_1_r(offs_t offset){
uint8_t data = m_dma8237_1->read(offset);
SLOG1(("apollo_dma_1_r: reading DMA Controller 1 at offset %02x = %02x", offset, data));
return data;
@@ -330,12 +330,12 @@ READ8_MEMBER(apollo_state::apollo_dma_1_r){
DN3000/DN3500 DMA Controller 2 at 0x9100/0x10d00
-------------------------------------------------*/
-WRITE8_MEMBER(apollo_state::apollo_dma_2_w){
+void apollo_state::apollo_dma_2_w(offs_t offset, uint8_t data){
SLOG1(("apollo_dma_2_w: writing DMA Controller 2 at offset %02x = %02x", offset/2, data));
m_dma8237_2->write(offset / 2, data);
}
-READ8_MEMBER(apollo_state::apollo_dma_2_r){
+uint8_t apollo_state::apollo_dma_2_r(offs_t offset){
// Nasty hack (13-06-15 - ost):
// MD self_test will test wrong DMA register and
// mem-to-mem DMA in am9517a.c is often starting much too late (for MD self_test)
@@ -360,12 +360,12 @@ READ8_MEMBER(apollo_state::apollo_dma_2_r){
DN3000 DMA Page Register at 0x9200
***************************************************************************/
-WRITE8_MEMBER(apollo_state::apollo_dma_page_register_w){
+void apollo_state::apollo_dma_page_register_w(offs_t offset, uint8_t data){
dma_page_register[offset & 0x0f] = data;
SLOG1(("writing DMA Page Register at offset %02x = %02x", offset, data));
}
-READ8_MEMBER(apollo_state::apollo_dma_page_register_r){
+uint8_t apollo_state::apollo_dma_page_register_r(offs_t offset){
uint8_t data = dma_page_register[offset & 0x0f];
SLOG1(("reading DMA Page Register at offset %02x = %02x", offset, data));
return data;
@@ -375,12 +375,12 @@ READ8_MEMBER(apollo_state::apollo_dma_page_register_r){
DN3500 Address Translation Map at 0x017000
-------------------------------------------------*/
-WRITE16_MEMBER(apollo_state::apollo_address_translation_map_w){
+void apollo_state::apollo_address_translation_map_w(offs_t offset, uint16_t data){
address_translation_map[offset & 0x3ff] = data;
SLOG2(("writing Address Translation Map at offset %02x = %04x", offset, data));
}
-READ16_MEMBER(apollo_state::apollo_address_translation_map_r){
+uint16_t apollo_state::apollo_address_translation_map_r(offs_t offset){
uint16_t data = address_translation_map[offset & 0x3ff];
SLOG2(("reading Address Translation Map at offset %02x = %04x", offset, data));
return data;
@@ -672,7 +672,7 @@ WRITE_LINE_MEMBER(apollo_state::apollo_ptm_irq_function)
DN3000/DN3500 Realtime Calendar MC146818 at 0x8900/0x10900
***************************************************************************/
-WRITE8_MEMBER(apollo_state::apollo_rtc_w)
+void apollo_state::apollo_rtc_w(offs_t offset, uint8_t data)
{
m_rtc->write_direct(offset, data);
if (offset >= 0x0b && offset <= 0x0c)
@@ -681,7 +681,7 @@ WRITE8_MEMBER(apollo_state::apollo_rtc_w)
}
}
-READ8_MEMBER(apollo_state::apollo_rtc_r)
+uint8_t apollo_state::apollo_rtc_r(offs_t offset)
{
uint8_t data;
data = m_rtc->read_direct(offset);
@@ -899,12 +899,12 @@ void apollo_ni::set_node_id(uint32_t node_id)
// read/write
//-------------------------------------------------
-WRITE16_MEMBER(apollo_ni::write)
+void apollo_ni::write(offs_t offset, uint16_t data, uint16_t mem_mask)
{
CLOG1(("Error: writing node id ROM at offset %02x = %04x & %04x", offset, data, mem_mask));
}
-READ16_MEMBER(apollo_ni::read)
+uint16_t apollo_ni::read(offs_t offset, uint16_t mem_mask)
{
uint16_t data = 0;
switch (offset & 0x0f)
@@ -1207,8 +1207,7 @@ MACHINE_START_MEMBER(apollo_state,apollo)
MACHINE_RESET_MEMBER(apollo_state,apollo)
{
- address_space &space = m_maincpu->space(AS_PROGRAM);
- uint8_t year = apollo_rtc_r(space, 9);
+ uint8_t year = apollo_rtc_r(9);
MLOG1(("machine_reset_apollo"));
@@ -1219,18 +1218,18 @@ MACHINE_RESET_MEMBER(apollo_state,apollo)
if (year < 25 && apollo_config(APOLLO_CONF_25_YEARS_AGO))
{
year += 75;
- apollo_rtc_w(space, 9, year);
+ apollo_rtc_w(9, year);
}
else if (year < 20 && apollo_config(APOLLO_CONF_20_YEARS_AGO))
{
year += 80;
- apollo_rtc_w(space, 9, year);
+ apollo_rtc_w(9, year);
}
else if (year >= 80 && !apollo_config(APOLLO_CONF_20_YEARS_AGO)
&& !apollo_config(APOLLO_CONF_25_YEARS_AGO))
{
year -= 80;
- apollo_rtc_w(space, 9, year);
+ apollo_rtc_w(9, year);
}
ptm_counter = 0;
diff --git a/src/mame/machine/archimds.cpp b/src/mame/machine/archimds.cpp
index 86f8cc67ac3..d940cb4a11c 100644
--- a/src/mame/machine/archimds.cpp
+++ b/src/mame/machine/archimds.cpp
@@ -260,7 +260,7 @@ void archimedes_state::archimedes_init()
m_timer[3]->adjust(attotime::never);
}
-READ32_MEMBER(archimedes_state::archimedes_memc_logical_r)
+uint32_t archimedes_state::archimedes_memc_logical_r(offs_t offset)
{
uint32_t page, poffs;
@@ -298,7 +298,7 @@ READ32_MEMBER(archimedes_state::archimedes_memc_logical_r)
-WRITE32_MEMBER(archimedes_state::archimedes_memc_logical_w)
+void archimedes_state::archimedes_memc_logical_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
uint32_t page, poffs;
@@ -327,7 +327,7 @@ WRITE32_MEMBER(archimedes_state::archimedes_memc_logical_w)
}
/* Aristocrat Mark 5 - same as normal AA except with Dram emulator */
-READ32_MEMBER(archimedes_state::aristmk5_drame_memc_logical_r)
+uint32_t archimedes_state::aristmk5_drame_memc_logical_r(offs_t offset)
{
uint32_t page, poffs;
@@ -448,7 +448,7 @@ bool archimedes_state::check_floppy_ready()
}
/* TODO: should be a 8-bit handler */
-READ32_MEMBER( archimedes_state::ioc_ctrl_r )
+uint32_t archimedes_state::ioc_ctrl_r(offs_t offset)
{
if(IOC_LOG)
logerror("IOC: R %s = %02x (PC=%x) %02x\n", ioc_regnames[offset&0x1f], m_ioc_regs[offset&0x1f], m_maincpu->pc(),offset & 0x1f);
@@ -521,7 +521,7 @@ READ32_MEMBER( archimedes_state::ioc_ctrl_r )
}
/* TODO: should be a 8-bit handler */
-WRITE32_MEMBER( archimedes_state::ioc_ctrl_w )
+void archimedes_state::ioc_ctrl_w(offs_t offset, uint32_t data)
{
if(IOC_LOG)
logerror("IOC: W %02x @ reg %s (PC=%x)\n", data&0xff, ioc_regnames[offset&0x1f], m_maincpu->pc());
@@ -651,7 +651,7 @@ WRITE32_MEMBER( archimedes_state::ioc_ctrl_w )
}
}
-READ32_MEMBER(archimedes_state::archimedes_ioc_r)
+uint32_t archimedes_state::archimedes_ioc_r(offs_t offset, uint32_t mem_mask)
{
uint32_t ioc_addr;
@@ -668,7 +668,7 @@ READ32_MEMBER(archimedes_state::archimedes_ioc_r)
{
switch((ioc_addr & 0x70000) >> 16)
{
- case 0: return ioc_ctrl_r(space,offset,mem_mask);
+ case 0: return ioc_ctrl_r(offset);
case 1:
if (m_fdc)
{
@@ -732,7 +732,7 @@ READ32_MEMBER(archimedes_state::archimedes_ioc_r)
return 0;
}
-WRITE32_MEMBER(archimedes_state::archimedes_ioc_w)
+void archimedes_state::archimedes_ioc_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
uint32_t ioc_addr;
@@ -749,7 +749,7 @@ WRITE32_MEMBER(archimedes_state::archimedes_ioc_w)
{
switch((ioc_addr & 0x70000) >> 16)
{
- case 0: ioc_ctrl_w(space,offset,data,mem_mask); return;
+ case 0: ioc_ctrl_w(offset,data); return;
case 1:
if (m_fdc)
{
@@ -852,7 +852,7 @@ WRITE32_MEMBER(archimedes_state::archimedes_ioc_w)
logerror("(PC=%08x) I/O: W %x @ %x (mask %08x)\n", m_maincpu->pc(), data, (offset*4)+0x3000000, mem_mask);
}
-WRITE32_MEMBER(archimedes_state::archimedes_memc_w)
+void archimedes_state::archimedes_memc_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
// is it a register?
if ((data & 0x0fe00000) == 0x03600000)
@@ -970,7 +970,7 @@ The physical page is encoded differently depending on the page size :
1 being bit 6
*/
-WRITE32_MEMBER(archimedes_state::archimedes_memc_page_w)
+void archimedes_state::archimedes_memc_page_w(uint32_t data)
{
uint32_t log, phys, memc;
diff --git a/src/mame/machine/arkanoid.cpp b/src/mame/machine/arkanoid.cpp
index a6762df998a..19a3776fd23 100644
--- a/src/mame/machine/arkanoid.cpp
+++ b/src/mame/machine/arkanoid.cpp
@@ -91,7 +91,7 @@ TO DO (2006.09.12) :
/* Kludge for some bootlegs that read this address */
-READ8_MEMBER(arkanoid_state::arkanoid_bootleg_f000_r)
+uint8_t arkanoid_state::arkanoid_bootleg_f000_r()
{
uint8_t arkanoid_bootleg_val = 0x00;
@@ -133,7 +133,7 @@ READ8_MEMBER(arkanoid_state::arkanoid_bootleg_f000_r)
}
/* Kludge for some bootlegs that read this address */
-READ8_MEMBER(arkanoid_state::arkanoid_bootleg_f002_r)
+uint8_t arkanoid_state::arkanoid_bootleg_f002_r()
{
uint8_t arkanoid_bootleg_val = 0x00;
@@ -220,7 +220,7 @@ READ8_MEMBER(arkanoid_state::arkanoid_bootleg_f002_r)
}
/* Kludge for some bootlegs that write this address */
-WRITE8_MEMBER(arkanoid_state::arkanoid_bootleg_d018_w)
+void arkanoid_state::arkanoid_bootleg_d018_w(uint8_t data)
{
m_bootleg_cmd = 0x00;
@@ -475,14 +475,14 @@ WRITE8_MEMBER(arkanoid_state::arkanoid_bootleg_d018_w)
}
#ifdef UNUSED_CODE
-READ8_MEMBER(arkanoid_state::block2_bootleg_f000_r)
+uint8_t arkanoid_state::block2_bootleg_f000_r()
{
return m_bootleg_cmd;
}
#endif
/* Kludge for some bootlegs that read this address */
-READ8_MEMBER(arkanoid_state::arkanoid_bootleg_d008_r)
+uint8_t arkanoid_state::arkanoid_bootleg_d008_r()
{
uint8_t arkanoid_bootleg_d008_bit[8];
uint8_t arkanoid_bootleg_d008_val;
diff --git a/src/mame/machine/asteroid.cpp b/src/mame/machine/asteroid.cpp
index 69c8818de1c..1f629d4917c 100644
--- a/src/mame/machine/asteroid.cpp
+++ b/src/mame/machine/asteroid.cpp
@@ -43,7 +43,7 @@ WRITE_LINE_MEMBER(asteroid_state::cocktail_inv_w)
m_dvg->set_flip_y(flip);
}
-READ8_MEMBER(asteroid_state::asteroid_IN0_r)
+uint8_t asteroid_state::asteroid_IN0_r(offs_t offset)
{
int res = ioport("IN0")->read();
int bitmask = (1 << offset);
@@ -57,7 +57,7 @@ READ8_MEMBER(asteroid_state::asteroid_IN0_r)
}
-READ8_MEMBER(asteroid_state::asterock_IN0_r)
+uint8_t asteroid_state::asterock_IN0_r(offs_t offset)
{
int res = ioport("IN0")->read();
int bitmask = (1 << offset);
@@ -75,7 +75,7 @@ READ8_MEMBER(asteroid_state::asterock_IN0_r)
* Typically, only the high bit is used. This is handled by one input port.
*/
-READ8_MEMBER(asteroid_state::asteroid_IN1_r)
+uint8_t asteroid_state::asteroid_IN1_r(offs_t offset)
{
int res = ioport("IN1")->read();
int bitmask = (1 << (offset & 0x7));
@@ -89,7 +89,7 @@ READ8_MEMBER(asteroid_state::asteroid_IN1_r)
}
-READ8_MEMBER(asteroid_state::asteroid_DSW1_r)
+uint8_t asteroid_state::asteroid_DSW1_r(offs_t offset)
{
// 765432-- not used
// ------1- ls253 dsw selector 2y
diff --git a/src/mame/machine/atarifb.cpp b/src/mame/machine/atarifb.cpp
index 91cc61ce55a..74a5e59aa79 100644
--- a/src/mame/machine/atarifb.cpp
+++ b/src/mame/machine/atarifb.cpp
@@ -11,7 +11,7 @@
#include "sound/discrete.h"
-WRITE8_MEMBER(atarifb_state::atarifb_out1_w)
+void atarifb_state::atarifb_out1_w(uint8_t data)
{
m_CTRLD = data;
@@ -22,7 +22,7 @@ WRITE8_MEMBER(atarifb_state::atarifb_out1_w)
}
-WRITE8_MEMBER(atarifb_state::atarifb4_out1_w)
+void atarifb_state::atarifb4_out1_w(uint8_t data)
{
m_CTRLD = data;
@@ -35,7 +35,7 @@ WRITE8_MEMBER(atarifb_state::atarifb4_out1_w)
}
-WRITE8_MEMBER(atarifb_state::abaseb_out1_w)
+void atarifb_state::abaseb_out1_w(uint8_t data)
{
m_CTRLD = data;
@@ -59,7 +59,7 @@ WRITE8_MEMBER(atarifb_state::abaseb_out1_w)
}
-WRITE8_MEMBER(atarifb_state::soccer_out1_w)
+void atarifb_state::soccer_out1_w(uint8_t data)
{
m_CTRLD = data;
@@ -81,7 +81,7 @@ WRITE8_MEMBER(atarifb_state::soccer_out1_w)
}
-WRITE8_MEMBER(atarifb_state::atarifb_out2_w)
+void atarifb_state::atarifb_out2_w(uint8_t data)
{
m_discrete->write(ATARIFB_CROWD_DATA, data & 0x0f); // Crowd
@@ -89,7 +89,7 @@ WRITE8_MEMBER(atarifb_state::atarifb_out2_w)
}
-WRITE8_MEMBER(atarifb_state::soccer_out2_w)
+void atarifb_state::soccer_out2_w(uint8_t data)
{
m_discrete->write(ATARIFB_CROWD_DATA, data & 0x0f); // Crowd
@@ -107,7 +107,7 @@ WRITE8_MEMBER(atarifb_state::soccer_out2_w)
*************************************/
/* FIXME: almost surely not tied with screen vertical position */
-WRITE8_MEMBER(atarifb_state::atarifb_out3_w)
+void atarifb_state::atarifb_out3_w(uint8_t data)
{
int loop = m_screen->vpos() >= 123;
@@ -134,7 +134,7 @@ WRITE8_MEMBER(atarifb_state::atarifb_out3_w)
}
-READ8_MEMBER(atarifb_state::atarifb_in0_r)
+uint8_t atarifb_state::atarifb_in0_r()
{
if ((m_CTRLD & 0x20) == 0x00)
{
@@ -171,7 +171,7 @@ READ8_MEMBER(atarifb_state::atarifb_in0_r)
}
-READ8_MEMBER(atarifb_state::atarifb_in2_r)
+uint8_t atarifb_state::atarifb_in2_r()
{
if ((m_CTRLD & 0x20) == 0x00)
{
@@ -200,7 +200,7 @@ READ8_MEMBER(atarifb_state::atarifb_in2_r)
}
}
-READ8_MEMBER(atarifb_state::atarifb4_in0_r)
+uint8_t atarifb_state::atarifb4_in0_r()
{
/* LD1 and LD2 low, return sign bits */
if ((m_CTRLD & 0x60) == 0x00)
@@ -266,7 +266,7 @@ READ8_MEMBER(atarifb_state::atarifb4_in0_r)
}
-READ8_MEMBER(atarifb_state::atarifb4_in2_r)
+uint8_t atarifb_state::atarifb4_in2_r()
{
if ((m_CTRLD & 0x40) == 0x00)
{
diff --git a/src/mame/machine/atarixga.cpp b/src/mame/machine/atarixga.cpp
index 119d8c42acd..9e17b6018b6 100644
--- a/src/mame/machine/atarixga.cpp
+++ b/src/mame/machine/atarixga.cpp
@@ -189,7 +189,7 @@ uint16_t atari_136094_0072_device::decipher(uint8_t k, uint16_t c)
*
*************************************/
-WRITE32_MEMBER(atari_136094_0072_device::write)
+void atari_136094_0072_device::write(offs_t offset, uint32_t data, uint32_t mem_mask)
{
switch (m_mode)
{
@@ -221,7 +221,7 @@ WRITE32_MEMBER(atari_136094_0072_device::write)
}
}
-READ32_MEMBER(atari_136094_0072_device::read)
+uint32_t atari_136094_0072_device::read(offs_t offset, uint32_t mem_mask)
{
switch (offset << 2)
{
@@ -392,13 +392,13 @@ uint16_t atari_136095_0072_device::decipher(uint8_t k, uint16_t c)
return p;
}
-WRITE32_MEMBER(atari_136095_0072_device::polylsb_write)
+void atari_136095_0072_device::polylsb_write(offs_t offset, uint32_t data)
{
m_update.addr = offset;
m_update.data[offset] = data;
}
-READ32_MEMBER(atari_136095_0072_device::polylsb_read)
+uint32_t atari_136095_0072_device::polylsb_read(offs_t offset, uint32_t mem_mask)
{
if (m_update.addr == offset)
{
@@ -414,7 +414,7 @@ READ32_MEMBER(atari_136095_0072_device::polylsb_read)
return m_update.data[offset];
}
-WRITE32_MEMBER(atari_136095_0072_device::write)
+void atari_136095_0072_device::write(offs_t offset, uint32_t data, uint32_t mem_mask)
{
uint16_t address, value = 0;
@@ -471,7 +471,7 @@ WRITE32_MEMBER(atari_136095_0072_device::write)
}
}
-READ32_MEMBER(atari_136095_0072_device::read)
+uint32_t atari_136095_0072_device::read(offs_t offset, uint32_t mem_mask)
{
uint16_t address;
uint32_t reply = 0;
diff --git a/src/mame/machine/atarixga.h b/src/mame/machine/atarixga.h
index 6f1ab1c52ad..4b199c2a730 100644
--- a/src/mame/machine/atarixga.h
+++ b/src/mame/machine/atarixga.h
@@ -17,8 +17,8 @@ DECLARE_DEVICE_TYPE(ATARI_136095_0072, atari_136095_0072_device)
class atari_xga_device : public device_t
{
public:
- virtual DECLARE_WRITE32_MEMBER(write) = 0;
- virtual DECLARE_READ32_MEMBER(read) = 0;
+ virtual void write(offs_t offset, uint32_t data, uint32_t mem_mask = ~0) = 0;
+ virtual uint32_t read(offs_t offset, uint32_t mem_mask = ~0) = 0;
protected:
// construction/destruction
@@ -38,8 +38,8 @@ class atari_136094_0072_device : public atari_xga_device
public:
atari_136094_0072_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- virtual DECLARE_WRITE32_MEMBER(write) override;
- virtual DECLARE_READ32_MEMBER(read) override;
+ virtual void write(offs_t offset, uint32_t data, uint32_t mem_mask = ~0) override;
+ virtual uint32_t read(offs_t offset, uint32_t mem_mask = ~0) override;
protected:
virtual void device_start() override;
@@ -70,11 +70,11 @@ class atari_136095_0072_device : public atari_xga_device
public:
atari_136095_0072_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- DECLARE_WRITE32_MEMBER(polylsb_write);
- DECLARE_READ32_MEMBER(polylsb_read);
+ void polylsb_write(offs_t offset, uint32_t data);
+ uint32_t polylsb_read(offs_t offset, uint32_t mem_mask = ~0);
- virtual DECLARE_WRITE32_MEMBER(write) override;
- virtual DECLARE_READ32_MEMBER(read) override;
+ virtual void write(offs_t offset, uint32_t data, uint32_t mem_mask = ~0) override;
+ virtual uint32_t read(offs_t offset, uint32_t mem_mask = ~0) override;
protected:
virtual void device_start() override;
diff --git a/src/mame/machine/awboard.cpp b/src/mame/machine/awboard.cpp
index 3ff85c137de..bc2146640e2 100644
--- a/src/mame/machine/awboard.cpp
+++ b/src/mame/machine/awboard.cpp
@@ -294,7 +294,7 @@ void aw_rom_board::device_reset()
dma_limit = 0;
}
-READ16_MEMBER(aw_rom_board::pio_r)
+uint16_t aw_rom_board::pio_r()
{
uint32_t roffset = epr_offset & 0x3ffffff;
if (roffset >= (mpr_offset / 2))
@@ -303,44 +303,44 @@ READ16_MEMBER(aw_rom_board::pio_r)
return retval;
}
-WRITE16_MEMBER(aw_rom_board::pio_w)
+void aw_rom_board::pio_w(uint16_t data)
{
// write to ROM board address space, including FlashROM programming using CFI (TODO)
if (epr_offset == 0x7fffff)
mpr_bank = data & 3;
}
-WRITE16_MEMBER(aw_rom_board::epr_offsetl_w)
+void aw_rom_board::epr_offsetl_w(uint16_t data)
{
epr_offset = (epr_offset & 0xffff0000) | data;
recalc_dma_offset(EPR);
}
-WRITE16_MEMBER(aw_rom_board::epr_offseth_w)
+void aw_rom_board::epr_offseth_w(uint16_t data)
{
epr_offset = (epr_offset & 0x0000ffff) | (data << 16);
recalc_dma_offset(EPR);
}
-WRITE16_MEMBER(aw_rom_board::mpr_record_index_w)
+void aw_rom_board::mpr_record_index_w(uint16_t data)
{
mpr_record_index = data;
recalc_dma_offset(MPR_RECORD);
}
-WRITE16_MEMBER(aw_rom_board::mpr_first_file_index_w)
+void aw_rom_board::mpr_first_file_index_w(uint16_t data)
{
mpr_first_file_index = data;
recalc_dma_offset(MPR_FILE);
}
-WRITE16_MEMBER(aw_rom_board::mpr_file_offsetl_w)
+void aw_rom_board::mpr_file_offsetl_w(uint16_t data)
{
mpr_file_offset = (mpr_file_offset & 0xffff0000) | data;
recalc_dma_offset(MPR_FILE);
}
-WRITE16_MEMBER(aw_rom_board::mpr_file_offseth_w)
+void aw_rom_board::mpr_file_offseth_w(uint16_t data)
{
mpr_file_offset = (mpr_file_offset & 0x0000ffff) | (data << 16);
diff --git a/src/mame/machine/awboard.h b/src/mame/machine/awboard.h
index 7164f646948..274b1d364cd 100644
--- a/src/mame/machine/awboard.h
+++ b/src/mame/machine/awboard.h
@@ -15,14 +15,14 @@ public:
virtual void submap(address_map &map) override;
- DECLARE_WRITE16_MEMBER(epr_offsetl_w); // 5f7000
- DECLARE_WRITE16_MEMBER(epr_offseth_w); // 5f7004
- DECLARE_WRITE16_MEMBER(mpr_record_index_w); // 5f700c
- DECLARE_WRITE16_MEMBER(mpr_first_file_index_w); // 5f7010
- DECLARE_WRITE16_MEMBER(mpr_file_offsetl_w); // 5f7014
- DECLARE_WRITE16_MEMBER(mpr_file_offseth_w); // 5f7018
- DECLARE_READ16_MEMBER(pio_r); // 5f7080
- DECLARE_WRITE16_MEMBER(pio_w); // 5f7080
+ void epr_offsetl_w(uint16_t data); // 5f7000
+ void epr_offseth_w(uint16_t data); // 5f7004
+ void mpr_record_index_w(uint16_t data); // 5f700c
+ void mpr_first_file_index_w(uint16_t data); // 5f7010
+ void mpr_file_offsetl_w(uint16_t data); // 5f7014
+ void mpr_file_offseth_w(uint16_t data); // 5f7018
+ uint16_t pio_r(); // 5f7080
+ void pio_w(uint16_t data); // 5f7080
protected:
virtual void device_start() override;
diff --git a/src/mame/machine/b2m.cpp b/src/mame/machine/b2m.cpp
index 0ae0242c9ad..511dfed6fbb 100644
--- a/src/mame/machine/b2m.cpp
+++ b/src/mame/machine/b2m.cpp
@@ -18,7 +18,7 @@
#include "includes/b2m.h"
#include "machine/ram.h"
-READ8_MEMBER(b2m_state::b2m_keyboard_r)
+uint8_t b2m_state::b2m_keyboard_r(offs_t offset)
{
uint8_t key = 0x00;
if (offset < 0x100) {
@@ -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(*this, FUNC(b2m_state::b2m_keyboard_r)));
+ space.install_read_handler(0x2800, 0x2fff, read8sm_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(*this, FUNC(b2m_state::b2m_keyboard_r)));
+ space.install_read_handler(0x2800, 0x2fff, read8sm_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(*this, FUNC(b2m_state::b2m_keyboard_r)));
+ space.install_read_handler(0x2800, 0x2fff, read8sm_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(*this, FUNC(b2m_state::b2m_keyboard_r)));
+ space.install_read_handler(0x2800, 0x2fff, read8sm_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);
@@ -229,7 +229,7 @@ void b2m_state::init_b2m()
m_vblank_state = 0;
}
-WRITE8_MEMBER(b2m_state::b2m_palette_w)
+void b2m_state::b2m_palette_w(offs_t offset, uint8_t data)
{
uint8_t b = (3 - ((data >> 6) & 3)) * 0x55;
uint8_t g = (3 - ((data >> 4) & 3)) * 0x55;
@@ -246,17 +246,17 @@ WRITE8_MEMBER(b2m_state::b2m_palette_w)
}
}
-READ8_MEMBER(b2m_state::b2m_palette_r)
+uint8_t b2m_state::b2m_palette_r(offs_t offset)
{
return m_b2m_color[offset];
}
-WRITE8_MEMBER(b2m_state::b2m_localmachine_w)
+void b2m_state::b2m_localmachine_w(uint8_t data)
{
m_b2m_localmachine = data;
}
-READ8_MEMBER(b2m_state::b2m_localmachine_r)
+uint8_t b2m_state::b2m_localmachine_r()
{
return m_b2m_localmachine;
}
diff --git a/src/mame/machine/bagman.cpp b/src/mame/machine/bagman.cpp
index 1b51fbb35a1..da0158aa1a9 100644
--- a/src/mame/machine/bagman.cpp
+++ b/src/mame/machine/bagman.cpp
@@ -201,30 +201,27 @@ uint8_t row, column, val;
}
-WRITE8_MEMBER(bagman_state::pal16r6_w)
+void bagman_state::pal16r6_w(offs_t offset, uint8_t data)
{
-uint8_t line;
-
- line = offset * 4;
+ uint8_t line = offset * 4;
m_columnvalue[line ] = data & 1;
m_columnvalue[line + 1] = 1 - (data & 1);
}
void bagman_state::machine_reset()
{
- address_space &space = m_maincpu->space(AS_PROGRAM);
- pal16r6_w(space, 0, 1); /*pin 2*/
- pal16r6_w(space, 1, 1); /*pin 3*/
- pal16r6_w(space, 2, 1); /*pin 4*/
- pal16r6_w(space, 3, 1); /*pin 5*/
- pal16r6_w(space, 4, 1); /*pin 6*/
- pal16r6_w(space, 5, 1); /*pin 7*/
- pal16r6_w(space, 6, 1); /*pin 8*/
- pal16r6_w(space, 7, 1); /*pin 9*/
+ pal16r6_w(0, 1); /*pin 2*/
+ pal16r6_w(1, 1); /*pin 3*/
+ pal16r6_w(2, 1); /*pin 4*/
+ pal16r6_w(3, 1); /*pin 5*/
+ pal16r6_w(4, 1); /*pin 6*/
+ pal16r6_w(5, 1); /*pin 7*/
+ pal16r6_w(6, 1); /*pin 8*/
+ pal16r6_w(7, 1); /*pin 9*/
update_pal();
}
-READ8_MEMBER(bagman_state::pal16r6_r)
+uint8_t bagman_state::pal16r6_r()
{
update_pal();
return (m_outvalue[6]) + (m_outvalue[5] << 1) + (m_outvalue[4] << 2) +
diff --git a/src/mame/machine/balsente.cpp b/src/mame/machine/balsente.cpp
index af750998a90..c22e849ad72 100644
--- a/src/mame/machine/balsente.cpp
+++ b/src/mame/machine/balsente.cpp
@@ -132,18 +132,16 @@ void balsente_state::poly17_init()
}
}
-WRITE8_MEMBER(balsente_state::random_reset_w)
+void balsente_state::random_reset_w(uint8_t data)
{
/* reset random number generator */
}
-READ8_MEMBER(balsente_state::random_num_r)
+uint8_t balsente_state::random_num_r()
{
- uint32_t cc;
-
/* CPU runs at 1.25MHz, noise source at 100kHz --> multiply by 12.5 */
- cc = m_maincpu->total_cycles();
+ uint32_t cc = m_maincpu->total_cycles();
/* 12.5 = 8 + 4 + 0.5 */
cc = (cc << 3) + (cc << 2) + (cc >> 1);
@@ -158,7 +156,7 @@ READ8_MEMBER(balsente_state::random_num_r)
*
*************************************/
-WRITE8_MEMBER(balsente_state::rombank_select_w)
+void balsente_state::rombank_select_w(uint8_t data)
{
/* the bank number comes from bits 4-6 */
m_bankab->set_entry((data >> 4) & 7);
@@ -167,7 +165,7 @@ WRITE8_MEMBER(balsente_state::rombank_select_w)
}
-WRITE8_MEMBER(balsente_state::rombank2_select_w)
+void balsente_state::rombank2_select_w(uint8_t data)
{
/* Night Stocker and Name that Tune only so far.... */
int bank = data & 7;
@@ -241,12 +239,12 @@ WRITE_LINE_MEMBER(balsente_state::nvrecall_w)
m_novram[1]->recall(!state);
}
-READ8_MEMBER(balsente_state::novram_8bit_r)
+uint8_t balsente_state::novram_8bit_r(address_space &space, offs_t offset)
{
return (m_novram[0]->read(space, offset) & 0x0f) | (m_novram[1]->read(space, offset) << 4);
}
-WRITE8_MEMBER(balsente_state::novram_8bit_w)
+void balsente_state::novram_8bit_w(offs_t offset, uint8_t data)
{
m_novram[0]->write(offset, data & 0x0f);
m_novram[1]->write(offset, data >> 4);
@@ -260,7 +258,7 @@ WRITE8_MEMBER(balsente_state::novram_8bit_w)
*
*************************************/
-WRITE8_MEMBER(balsente_state::acia_w)
+void balsente_state::acia_w(offs_t offset, uint8_t data)
{
// Ugly workaround: suppress soft reset command in order to avert race condition
m_acia->write(offset, (BIT(offset, 0) && data == 0xe0) ? 0 : data);
@@ -322,14 +320,14 @@ TIMER_CALLBACK_MEMBER(balsente_state::adc_finished)
}
-READ8_MEMBER(balsente_state::adc_data_r)
+uint8_t balsente_state::adc_data_r()
{
/* just return the last value read */
return m_adc_value;
}
-WRITE8_MEMBER(balsente_state::adc_select_w)
+void balsente_state::adc_select_w(offs_t offset, uint8_t data)
{
/* set a timer to go off and read the value after 50us */
/* it's important that we do this for Mini Golf */
@@ -337,13 +335,13 @@ WRITE8_MEMBER(balsente_state::adc_select_w)
machine().scheduler().timer_set(attotime::from_usec(50), timer_expired_delegate(FUNC(balsente_state::adc_finished),this), offset & 7);
}
-READ8_MEMBER(balsente_state::teamht_extra_r)
+uint8_t balsente_state::teamht_extra_r()
{
return m_teamht_input;
}
-WRITE8_MEMBER(balsente_state::teamht_multiplex_select_w)
+void balsente_state::teamht_multiplex_select_w(offs_t offset, uint8_t data)
{
logerror("multiplex_select %d\n", offset & 7);
switch (offset & 7)
@@ -376,7 +374,7 @@ CUSTOM_INPUT_MEMBER(balsente_state::nstocker_bits_r)
}
-WRITE8_MEMBER(balsente_state::spiker_expand_w)
+void balsente_state::spiker_expand_w(offs_t offset, uint8_t data)
{
/* offset 0 is the bit pattern */
if (offset == 0)
@@ -391,7 +389,7 @@ WRITE8_MEMBER(balsente_state::spiker_expand_w)
m_spiker_expand_color = data;
}
-READ8_MEMBER(balsente_state::spiker_expand_r)
+uint8_t balsente_state::spiker_expand_r()
{
uint8_t left, right;
@@ -451,7 +449,7 @@ void balsente_state::update_grudge_steering()
}
-READ8_MEMBER(balsente_state::grudge_steering_r)
+uint8_t balsente_state::grudge_steering_r()
{
logerror("%s:grudge_steering_r(@%d)\n", machine().describe_context(), m_screen->vpos());
m_grudge_steering_result |= 0x80;
@@ -466,7 +464,7 @@ READ8_MEMBER(balsente_state::grudge_steering_r)
*
*************************************/
-READ8_MEMBER(balsente_state::shrike_shared_6809_r)
+uint8_t balsente_state::shrike_shared_6809_r(offs_t offset)
{
uint16_t mem_mask_int = offset & 1 ? 0xff00 : 0x00ff;
@@ -480,7 +478,7 @@ READ8_MEMBER(balsente_state::shrike_shared_6809_r)
}
-WRITE8_MEMBER(balsente_state::shrike_shared_6809_w)
+void balsente_state::shrike_shared_6809_w(offs_t offset, uint8_t data)
{
uint16_t mem_mask_int = offset & 1 ? 0xff00 : 0x00ff;
m_shrike_shared[offset >> 1] = ( m_shrike_shared[offset >> 1] & mem_mask_int ) | ( data << ( mem_mask_int & 0x8 ) );
@@ -488,12 +486,12 @@ WRITE8_MEMBER(balsente_state::shrike_shared_6809_w)
// uses movep, so writes even 8 bit addresses to odd 16 bit addresses, reads as 16 bit from odd addresses
// i.e. write 0xdeadbeef to 10000, read 0xde from 10001, 0xad from 10003, 0xbe from 10005...
-WRITE16_MEMBER(balsente_state::shrike_io_68k_w)
+void balsente_state::shrike_io_68k_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA( &m_shrike_io[offset] );
}
-READ16_MEMBER(balsente_state::shrike_io_68k_r)
+uint16_t balsente_state::shrike_io_68k_r(offs_t offset, uint16_t mem_mask)
{
return ( m_shrike_io[offset] & mem_mask ) >> ( 8 & ~mem_mask );
}
diff --git a/src/mame/machine/bebox.cpp b/src/mame/machine/bebox.cpp
index e8bb4eecf71..ea64354a1f4 100644
--- a/src/mame/machine/bebox.cpp
+++ b/src/mame/machine/bebox.cpp
@@ -128,22 +128,22 @@ static void bebox_mbreg32_w(uint32_t *target, uint64_t data, uint64_t mem_mask)
}
-READ64_MEMBER(bebox_state::bebox_cpu0_imask_r )
+uint64_t bebox_state::bebox_cpu0_imask_r()
{
return ((uint64_t) m_cpu_imask[0]) << 32;
}
-READ64_MEMBER(bebox_state::bebox_cpu1_imask_r )
+uint64_t bebox_state::bebox_cpu1_imask_r()
{
return ((uint64_t) m_cpu_imask[1]) << 32;
}
-READ64_MEMBER(bebox_state::bebox_interrupt_sources_r )
+uint64_t bebox_state::bebox_interrupt_sources_r()
{
return ((uint64_t) m_interrupts) << 32;
}
-WRITE64_MEMBER(bebox_state::bebox_cpu0_imask_w )
+void bebox_state::bebox_cpu0_imask_w(offs_t offset, uint64_t data, uint64_t mem_mask)
{
uint32_t old_imask = m_cpu_imask[0];
@@ -160,7 +160,7 @@ WRITE64_MEMBER(bebox_state::bebox_cpu0_imask_w )
}
}
-WRITE64_MEMBER(bebox_state::bebox_cpu1_imask_w )
+void bebox_state::bebox_cpu1_imask_w(offs_t offset, uint64_t data, uint64_t mem_mask)
{
uint32_t old_imask = m_cpu_imask[1];
@@ -177,7 +177,7 @@ WRITE64_MEMBER(bebox_state::bebox_cpu1_imask_w )
}
}
-READ64_MEMBER(bebox_state::bebox_crossproc_interrupts_r )
+uint64_t bebox_state::bebox_crossproc_interrupts_r(address_space &space)
{
uint32_t result;
result = m_crossproc_interrupts;
@@ -191,7 +191,7 @@ READ64_MEMBER(bebox_state::bebox_crossproc_interrupts_r )
return ((uint64_t) result) << 32;
}
-WRITE64_MEMBER(bebox_state::bebox_crossproc_interrupts_w )
+void bebox_state::bebox_crossproc_interrupts_w(offs_t offset, uint64_t data, uint64_t mem_mask)
{
static const struct
{
@@ -234,7 +234,7 @@ WRITE64_MEMBER(bebox_state::bebox_crossproc_interrupts_w )
}
}
-WRITE64_MEMBER(bebox_state::bebox_processor_resets_w )
+void bebox_state::bebox_processor_resets_w(uint64_t data)
{
uint8_t b = (uint8_t) (data >> 56);
@@ -345,7 +345,7 @@ WRITE_LINE_MEMBER( bebox_state::fdc_interrupt )
*
*************************************/
-READ64_MEMBER(bebox_state::bebox_interrupt_ack_r )
+uint64_t bebox_state::bebox_interrupt_ack_r()
{
uint32_t result;
result = m_pic8259[0]->acknowledge();
@@ -389,50 +389,50 @@ WRITE_LINE_MEMBER(bebox_state::bebox_ide_interrupt)
*
*************************************/
/*
-static READ64_MEMBER(bebox_state::bebox_video_r )
+uint64_t bebox_state::bebox_video_r(offs_t offset, uint64_t mem_mask)
{
uint64_t result = 0;
mem_mask = FLIPENDIAN_INT64(mem_mask);
if (ACCESSING_BITS_0_7)
- result |= (uint64_t)vga_mem_linear_r(space, offset * 8 + 0, mem_mask >> 0) << 0;
+ result |= (uint64_t)vga_mem_linear_r(offset * 8 + 0, mem_mask >> 0) << 0;
if (ACCESSING_BITS_8_15)
- result |= (uint64_t)vga_mem_linear_r(space, offset * 8 + 1, mem_mask >> 8) << 8;
+ result |= (uint64_t)vga_mem_linear_r(offset * 8 + 1, mem_mask >> 8) << 8;
if (ACCESSING_BITS_16_23)
- result |= (uint64_t)vga_mem_linear_r(space, offset * 8 + 2, mem_mask >> 16) << 16;
+ result |= (uint64_t)vga_mem_linear_r(offset * 8 + 2, mem_mask >> 16) << 16;
if (ACCESSING_BITS_24_31)
- result |= (uint64_t)vga_mem_linear_r(space, offset * 8 + 3, mem_mask >> 24) << 24;
+ result |= (uint64_t)vga_mem_linear_r(offset * 8 + 3, mem_mask >> 24) << 24;
if (ACCESSING_BITS_32_39)
- result |= (uint64_t)vga_mem_linear_r(space, offset * 8 + 4, mem_mask >> 32) << 32;
+ result |= (uint64_t)vga_mem_linear_r(offset * 8 + 4, mem_mask >> 32) << 32;
if (ACCESSING_BITS_40_47)
- result |= (uint64_t)vga_mem_linear_r(space, offset * 8 + 5, mem_mask >> 40) << 40;
+ result |= (uint64_t)vga_mem_linear_r(offset * 8 + 5, mem_mask >> 40) << 40;
if (ACCESSING_BITS_48_55)
- result |= (uint64_t)vga_mem_linear_r(space, offset * 8 + 6, mem_mask >> 48) << 48;
+ result |= (uint64_t)vga_mem_linear_r(offset * 8 + 6, mem_mask >> 48) << 48;
if (ACCESSING_BITS_56_63)
- result |= (uint64_t)vga_mem_linear_r(space, offset * 8 + 7, mem_mask >> 56) << 56;
+ result |= (uint64_t)vga_mem_linear_r(offset * 8 + 7, mem_mask >> 56) << 56;
return FLIPENDIAN_INT64(result);
}
-static WRITE64_MEMBER(bebox_state::bebox_video_w )
+void bebox_state::bebox_video_w(offs_t offset, uint64_t data, uint64_t mem_mask)
{
data = FLIPENDIAN_INT64(data);
mem_mask = FLIPENDIAN_INT64(mem_mask);
if (ACCESSING_BITS_0_7)
- vga_mem_linear_w(space, offset * 8 + 0, data >> 0 , mem_mask >> 0);
+ vga_mem_linear_w(offset * 8 + 0, data >> 0 , mem_mask >> 0);
if (ACCESSING_BITS_8_15)
- vga_mem_linear_w(space, offset * 8 + 1, data >> 8 , mem_mask >> 8);
+ vga_mem_linear_w(offset * 8 + 1, data >> 8 , mem_mask >> 8);
if (ACCESSING_BITS_16_23)
- vga_mem_linear_w(space, offset * 8 + 2, data >> 16, mem_mask >> 16);
+ vga_mem_linear_w(offset * 8 + 2, data >> 16, mem_mask >> 16);
if (ACCESSING_BITS_24_31)
- vga_mem_linear_w(space, offset * 8 + 3, data >> 24, mem_mask >> 24);
+ vga_mem_linear_w(offset * 8 + 3, data >> 24, mem_mask >> 24);
if (ACCESSING_BITS_32_39)
- vga_mem_linear_w(space, offset * 8 + 4, data >> 32, mem_mask >> 32);
+ vga_mem_linear_w(offset * 8 + 4, data >> 32, mem_mask >> 32);
if (ACCESSING_BITS_40_47)
- vga_mem_linear_w(space, offset * 8 + 5, data >> 40, mem_mask >> 40);
+ vga_mem_linear_w(offset * 8 + 5, data >> 40, mem_mask >> 40);
if (ACCESSING_BITS_48_55)
- vga_mem_linear_w(space, offset * 8 + 6, data >> 48, mem_mask >> 48);
+ vga_mem_linear_w(offset * 8 + 6, data >> 48, mem_mask >> 48);
if (ACCESSING_BITS_56_63)
- vga_mem_linear_w(space, offset * 8 + 7, data >> 56, mem_mask >> 56);
+ vga_mem_linear_w(offset * 8 + 7, data >> 56, mem_mask >> 56);
}
*/
/*************************************
@@ -442,7 +442,7 @@ static WRITE64_MEMBER(bebox_state::bebox_video_w )
*************************************/
-READ8_MEMBER(bebox_state::bebox_page_r)
+uint8_t bebox_state::bebox_page_r(offs_t offset)
{
uint8_t data = m_at_pages[offset % 0x10];
@@ -465,7 +465,7 @@ READ8_MEMBER(bebox_state::bebox_page_r)
}
-WRITE8_MEMBER(bebox_state::bebox_page_w)
+void bebox_state::bebox_page_w(offs_t offset, uint8_t data)
{
m_at_pages[offset % 0x10] = data;
@@ -491,7 +491,7 @@ WRITE8_MEMBER(bebox_state::bebox_page_w)
}
-WRITE8_MEMBER(bebox_state::bebox_80000480_w)
+void bebox_state::bebox_80000480_w(offs_t offset, uint8_t data)
{
switch(offset % 8)
{
@@ -515,7 +515,7 @@ WRITE8_MEMBER(bebox_state::bebox_80000480_w)
}
-READ8_MEMBER(bebox_state::bebox_80000480_r)
+uint8_t bebox_state::bebox_80000480_r()
{
fatalerror("NYI\n");
}
@@ -580,14 +580,14 @@ WRITE_LINE_MEMBER(bebox_state::bebox_timer0_w)
*
*************************************/
-READ8_MEMBER(bebox_state::bebox_flash_r)
+uint8_t bebox_state::bebox_flash_r(offs_t offset)
{
offset = (offset & ~7) | (7 - (offset & 7));
return m_flash->read(offset);
}
-WRITE8_MEMBER(bebox_state::bebox_flash_w)
+void bebox_state::bebox_flash_w(offs_t offset, uint8_t data)
{
offset = (offset & ~7) | (7 - (offset & 7));
m_flash->write(offset, data);
@@ -600,7 +600,7 @@ WRITE8_MEMBER(bebox_state::bebox_flash_w)
*************************************/
-READ64_MEMBER(bebox_state::scsi53c810_r )
+uint64_t bebox_state::scsi53c810_r(offs_t offset, uint64_t mem_mask)
{
int reg = offset*8;
uint64_t r = 0;
@@ -633,7 +633,7 @@ READ64_MEMBER(bebox_state::scsi53c810_r )
}
-WRITE64_MEMBER(bebox_state::scsi53c810_w )
+void bebox_state::scsi53c810_w(offs_t offset, uint64_t data, uint64_t mem_mask)
{
int reg = offset*8;
if (!ACCESSING_BITS_56_63) {
diff --git a/src/mame/machine/bk.cpp b/src/mame/machine/bk.cpp
index 7fa379cfbd7..c1c077d278c 100644
--- a/src/mame/machine/bk.cpp
+++ b/src/mame/machine/bk.cpp
@@ -74,22 +74,22 @@ void bk_state::machine_reset()
m_scrool = 01330;
}
-READ16_MEMBER(bk_state::bk_key_state_r)
+uint16_t bk_state::bk_key_state_r()
{
return m_kbd_state;
}
-READ16_MEMBER(bk_state::bk_key_code_r)
+uint16_t bk_state::bk_key_code_r()
{
m_kbd_state &= ~0x80; // mark reading done
m_key_pressed = 0;
return m_key_code;
}
-READ16_MEMBER(bk_state::bk_vid_scrool_r)
+uint16_t bk_state::bk_vid_scrool_r()
{
return m_scrool;
}
-READ16_MEMBER(bk_state::bk_key_press_r)
+uint16_t bk_state::bk_key_press_r()
{
double level = m_cassette->input();
uint16_t cas = (level < 0) ? 0 : 0x20;
@@ -97,27 +97,27 @@ READ16_MEMBER(bk_state::bk_key_press_r)
return 0x8080 | m_key_pressed | cas;
}
-WRITE16_MEMBER(bk_state::bk_key_state_w)
+void bk_state::bk_key_state_w(uint16_t data)
{
m_kbd_state = (m_kbd_state & ~0x40) | (data & 0x40);
}
-WRITE16_MEMBER(bk_state::bk_vid_scrool_w)
+void bk_state::bk_vid_scrool_w(uint16_t data)
{
m_scrool = data;
}
-WRITE16_MEMBER(bk_state::bk_key_press_w)
+void bk_state::bk_key_press_w(uint16_t data)
{
m_cassette->output(BIT(data, 6) ? 1.0 : -1.0);
}
-READ16_MEMBER(bk_state::bk_floppy_cmd_r)
+uint16_t bk_state::bk_floppy_cmd_r()
{
return 0;
}
-WRITE16_MEMBER(bk_state::bk_floppy_cmd_w)
+void bk_state::bk_floppy_cmd_w(uint16_t data)
{
if (BIT(data, 0))
m_drive = 0;
@@ -135,11 +135,11 @@ WRITE16_MEMBER(bk_state::bk_floppy_cmd_w)
m_drive = -1;
}
-READ16_MEMBER(bk_state::bk_floppy_data_r)
+uint16_t bk_state::bk_floppy_data_r()
{
return 0;
}
-WRITE16_MEMBER(bk_state::bk_floppy_data_w)
+void bk_state::bk_floppy_data_w(uint16_t data)
{
}
diff --git a/src/mame/machine/bsktball.cpp b/src/mame/machine/bsktball.cpp
index e6c6e904e14..5f3877d840c 100644
--- a/src/mame/machine/bsktball.cpp
+++ b/src/mame/machine/bsktball.cpp
@@ -52,7 +52,7 @@ WRITE_LINE_MEMBER(bsktball_state::ld2_w)
bsktball_in0_r
***************************************************************************/
-READ8_MEMBER(bsktball_state::bsktball_in0_r)
+uint8_t bsktball_state::bsktball_in0_r()
{
int p1_horiz;
int p1_vert;
diff --git a/src/mame/machine/btime.cpp b/src/mame/machine/btime.cpp
index 7eaffda5e26..8d3df4633dd 100644
--- a/src/mame/machine/btime.cpp
+++ b/src/mame/machine/btime.cpp
@@ -6,7 +6,7 @@
#define BASE 0xb000
-READ8_MEMBER(btime_state::mmonkey_protection_r)
+uint8_t btime_state::mmonkey_protection_r(offs_t offset)
{
uint8_t *RAM = memregion("maincpu")->base();
int ret = 0;
@@ -23,7 +23,7 @@ READ8_MEMBER(btime_state::mmonkey_protection_r)
return ret;
}
-WRITE8_MEMBER(btime_state::mmonkey_protection_w)
+void btime_state::mmonkey_protection_w(offs_t offset, uint8_t data)
{
uint8_t *RAM = memregion("maincpu")->base();
diff --git a/src/mame/machine/bublbobl.cpp b/src/mame/machine/bublbobl.cpp
index 8a55e1538de..2af8ab904bd 100644
--- a/src/mame/machine/bublbobl.cpp
+++ b/src/mame/machine/bublbobl.cpp
@@ -113,12 +113,12 @@ void bublbobl_state::tokio_videoctrl_w(uint8_t data)
flip_screen_set(data & 0x80);
}
-WRITE8_MEMBER(bublbobl_state::bublbobl_nmitrigger_w)
+void bublbobl_state::bublbobl_nmitrigger_w(uint8_t data)
{
m_subcpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
}
-READ8_MEMBER(bublbobl_state::tokiob_mcu_r)
+uint8_t bublbobl_state::tokiob_mcu_r()
{
/* This return value is literally set by a resistor on the bootleg tokio pcb;
the MCU footprint is unpopulated but for a resistor tying what would be the
@@ -139,13 +139,13 @@ void bublbobl_state::device_timer(emu_timer &timer, device_timer_id id, int para
}
}
-WRITE8_MEMBER(bublbobl_state::bublbobl_soundcpu_reset_w)
+void bublbobl_state::bublbobl_soundcpu_reset_w(uint8_t data)
{
//logerror("soundcpu_reset_w called with data of %d\n", data);
common_sreset(data ? ASSERT_LINE : CLEAR_LINE);
}
-READ8_MEMBER(bublbobl_state::common_sound_semaphores_r)
+uint8_t bublbobl_state::common_sound_semaphores_r()
{
uint8_t ret = 0xfc;
ret |= m_main_to_sound->pending_r() ? 0x2 : 0x0;
@@ -161,54 +161,54 @@ Bubble Bobble MCU
***************************************************************************/
-READ8_MEMBER(bublbobl_state::bublbobl_mcu_ddr1_r)
+uint8_t bublbobl_state::bublbobl_mcu_ddr1_r()
{
return m_ddr1;
}
-WRITE8_MEMBER(bublbobl_state::bublbobl_mcu_ddr1_w)
+void bublbobl_state::bublbobl_mcu_ddr1_w(uint8_t data)
{
m_ddr1 = data;
}
-READ8_MEMBER(bublbobl_state::bublbobl_mcu_ddr2_r)
+uint8_t bublbobl_state::bublbobl_mcu_ddr2_r()
{
return m_ddr2;
}
-WRITE8_MEMBER(bublbobl_state::bublbobl_mcu_ddr2_w)
+void bublbobl_state::bublbobl_mcu_ddr2_w(uint8_t data)
{
m_ddr2 = data;
}
-READ8_MEMBER(bublbobl_state::bublbobl_mcu_ddr3_r)
+uint8_t bublbobl_state::bublbobl_mcu_ddr3_r()
{
return m_ddr3;
}
-WRITE8_MEMBER(bublbobl_state::bublbobl_mcu_ddr3_w)
+void bublbobl_state::bublbobl_mcu_ddr3_w(uint8_t data)
{
m_ddr3 = data;
}
-READ8_MEMBER(bublbobl_state::bublbobl_mcu_ddr4_r)
+uint8_t bublbobl_state::bublbobl_mcu_ddr4_r()
{
return m_ddr4;
}
-WRITE8_MEMBER(bublbobl_state::bublbobl_mcu_ddr4_w)
+void bublbobl_state::bublbobl_mcu_ddr4_w(uint8_t data)
{
m_ddr4 = data;
}
-READ8_MEMBER(bublbobl_state::bublbobl_mcu_port1_r)
+uint8_t bublbobl_state::bublbobl_mcu_port1_r()
{
//logerror("%04x: 6801U4 port 1 read\n", m_mcu->pc());
m_port1_in = ioport("IN0")->read();
return (m_port1_out & m_ddr1) | (m_port1_in & ~m_ddr1);
}
-WRITE8_MEMBER(bublbobl_state::bublbobl_mcu_port1_w)
+void bublbobl_state::bublbobl_mcu_port1_w(uint8_t data)
{
//logerror("%04x: 6801U4 port 1 write %02x\n", m_mcu->pc(), data);
@@ -231,13 +231,13 @@ WRITE8_MEMBER(bublbobl_state::bublbobl_mcu_port1_w)
m_port1_out = data;
}
-READ8_MEMBER(bublbobl_state::bublbobl_mcu_port2_r)
+uint8_t bublbobl_state::bublbobl_mcu_port2_r()
{
//logerror("%04x: 6801U4 port 2 read\n", m_mcu->pc());
return (m_port2_out & m_ddr2) | (m_port2_in & ~m_ddr2);
}
-WRITE8_MEMBER(bublbobl_state::bublbobl_mcu_port2_w)
+void bublbobl_state::bublbobl_mcu_port2_w(uint8_t data)
{
//logerror("%04x: 6801U4 port 2 write %02x\n", m_mcu->pc(), data);
static const char *const portnames[] = { "DSW0", "DSW1", "IN1", "IN2" };
@@ -271,25 +271,25 @@ WRITE8_MEMBER(bublbobl_state::bublbobl_mcu_port2_w)
m_port2_out = data;
}
-READ8_MEMBER(bublbobl_state::bublbobl_mcu_port3_r)
+uint8_t bublbobl_state::bublbobl_mcu_port3_r()
{
//logerror("%04x: 6801U4 port 3 read\n", m_mcu->pc());
return (m_port3_out & m_ddr3) | (m_port3_in & ~m_ddr3);
}
-WRITE8_MEMBER(bublbobl_state::bublbobl_mcu_port3_w)
+void bublbobl_state::bublbobl_mcu_port3_w(uint8_t data)
{
//logerror("%04x: 6801U4 port 3 write %02x\n", m_mcu->pc(), data);
m_port3_out = data;
}
-READ8_MEMBER(bublbobl_state::bublbobl_mcu_port4_r)
+uint8_t bublbobl_state::bublbobl_mcu_port4_r()
{
//logerror("%04x: 6801U4 port 4 read\n", m_mcu->pc());
return (m_port4_out & m_ddr4) | (m_port4_in & ~m_ddr4);
}
-WRITE8_MEMBER(bublbobl_state::bublbobl_mcu_port4_w)
+void bublbobl_state::bublbobl_mcu_port4_w(uint8_t data)
{
//logerror("%04x: 6801U4 port 4 write %02x\n", m_mcu->pc(), data);
@@ -307,7 +307,7 @@ in boblbobl, so they don't matter. All checks are patched out in sboblbob.
***************************************************************************/
-READ8_MEMBER(bublbobl_state::boblbobl_ic43_a_r)
+uint8_t bublbobl_state::boblbobl_ic43_a_r(offs_t offset)
{
// if (offset >= 2)
// logerror("%04x: ic43_a_r (offs %d) res = %02x\n", m_mcu->pc(), offset, res);
@@ -318,7 +318,7 @@ READ8_MEMBER(bublbobl_state::boblbobl_ic43_a_r)
return machine().rand() & 0xff;
}
-WRITE8_MEMBER(bublbobl_state::boblbobl_ic43_a_w)
+void bublbobl_state::boblbobl_ic43_a_w(offs_t offset, uint8_t data)
{
int res = 0;
@@ -356,7 +356,7 @@ WRITE8_MEMBER(bublbobl_state::boblbobl_ic43_a_w)
m_ic43_a = res;
}
-WRITE8_MEMBER(bublbobl_state::boblbobl_ic43_b_w)
+void bublbobl_state::boblbobl_ic43_b_w(offs_t offset, uint8_t data)
{
static const int xorval[4] = { 4, 1, 8, 2 };
@@ -364,7 +364,7 @@ WRITE8_MEMBER(bublbobl_state::boblbobl_ic43_b_w)
m_ic43_b = (data >> 4) ^ xorval[offset];
}
-READ8_MEMBER(bublbobl_state::boblbobl_ic43_b_r)
+uint8_t bublbobl_state::boblbobl_ic43_b_r(offs_t offset)
{
// logerror("%04x: ic43_b_r (offs %d)\n", m_mcu->pc(), offset);
if (offset == 0)
diff --git a/src/mame/machine/interpro_ioga.cpp b/src/mame/machine/interpro_ioga.cpp
index 74e02917bd4..97207d52960 100644
--- a/src/mame/machine/interpro_ioga.cpp
+++ b/src/mame/machine/interpro_ioga.cpp
@@ -139,6 +139,8 @@ interpro_ioga_device::interpro_ioga_device(const machine_config &mconfig, device
, m_out_irq_vector_func(*this)
, m_fdc_tc_func(*this)
, m_eth_ca_func(*this)
+ , m_force_state(0)
+ , m_softint(0)
, m_dma_channel{
{ 0,0,0,0,CLEAR_LINE, {*this}, {*this}, ARBCTL_BGR_PLOT, DMA_PLOTTER, "plotter" },
{ 0,0,0,0,CLEAR_LINE, {*this}, {*this}, ARBCTL_BGR_SCSI, DMA_SCSI, "scsi" },
@@ -163,6 +165,7 @@ turquoise_ioga_device::turquoise_ioga_device(const machine_config &mconfig, cons
sapphire_ioga_device::sapphire_ioga_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: interpro_ioga_device(mconfig, SAPPHIRE_IOGA, tag, owner, clock)
{
+ std::fill(std::begin(m_swicr), std::end(m_swicr), 0);
}
void interpro_ioga_device::device_start()
diff --git a/src/mame/machine/konppc.cpp b/src/mame/machine/konppc.cpp
index 0b1225260f1..2ed065fdedd 100644
--- a/src/mame/machine/konppc.cpp
+++ b/src/mame/machine/konppc.cpp
@@ -498,46 +498,3 @@ WRITE32_MEMBER( konppc_device::nwk_voodoo_1_w)
m_voodoo[1]->voodoo_w(offset, data, mem_mask);
}
}
-
-/*****************************************************************************/
-
-#define LED_ON 0xff00ff00
-
-void draw_7segment_led(bitmap_rgb32 &bitmap, int x, int y, uint8_t value)
-{
- if ((value & 0x7f) == 0x7f)
- {
- return;
- }
-
- bitmap.plot_box(x-1, y-1, 7, 11, 0x00000000);
-
- /* Top */
- if( (value & 0x40) == 0 ) {
- bitmap.plot_box(x+1, y+0, 3, 1, LED_ON);
- }
- /* Middle */
- if( (value & 0x01) == 0 ) {
- bitmap.plot_box(x+1, y+4, 3, 1, LED_ON);
- }
- /* Bottom */
- if( (value & 0x08) == 0 ) {
- bitmap.plot_box(x+1, y+8, 3, 1, LED_ON);
- }
- /* Top Left */
- if( (value & 0x02) == 0 ) {
- bitmap.plot_box(x+0, y+1, 1, 3, LED_ON);
- }
- /* Top Right */
- if( (value & 0x20) == 0 ) {
- bitmap.plot_box(x+4, y+1, 1, 3, LED_ON);
- }
- /* Bottom Left */
- if( (value & 0x04) == 0 ) {
- bitmap.plot_box(x+0, y+5, 1, 3, LED_ON);
- }
- /* Bottom Right */
- if( (value & 0x10) == 0 ) {
- bitmap.plot_box(x+4, y+5, 1, 3, LED_ON);
- }
-}
diff --git a/src/mame/machine/konppc.h b/src/mame/machine/konppc.h
index 7a158b3c573..e3862b23b9a 100644
--- a/src/mame/machine/konppc.h
+++ b/src/mame/machine/konppc.h
@@ -106,6 +106,4 @@ private:
DECLARE_DEVICE_TYPE(KONPPC, konppc_device)
-void draw_7segment_led(bitmap_rgb32 &bitmap, int x, int y, uint8_t value);
-
#endif // MAME_MACHINE_KONPPC_H
diff --git a/src/mame/machine/nes_vt_soc.cpp b/src/mame/machine/nes_vt_soc.cpp
index 446bddb966b..435c89abf71 100644
--- a/src/mame/machine/nes_vt_soc.cpp
+++ b/src/mame/machine/nes_vt_soc.cpp
@@ -230,7 +230,7 @@ void nes_vt_soc_device::device_start()
//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, 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, read8_delegate(*this, FUNC(nes_vt_soc_device::nt_r)), write8_delegate(*this, FUNC(nes_vt_soc_device::nt_w)));
+ m_ppu->space(AS_PROGRAM).install_readwrite_handler(0x2000, 0x3eff, read8sm_delegate(*this, FUNC(nes_vt_soc_device::nt_r)), write8sm_delegate(*this, FUNC(nes_vt_soc_device::nt_w)));
m_ppu->space(AS_PROGRAM).install_readwrite_handler(0, 0x1fff, read8sm_delegate(*this, FUNC(nes_vt_soc_device::chr_r)), write8sm_delegate(*this, FUNC(nes_vt_soc_device::chr_w)));
m_write_0_callback.resolve_safe();
@@ -347,12 +347,12 @@ uint16_t nes_vt_soc_device::decode_nt_addr(uint16_t addr)
return ((vert_mirror ? a10 : a11) << 10) | base;
}
-WRITE8_MEMBER(nes_vt_soc_device::vt03_410x_w)
+void nes_vt_soc_device::vt03_410x_w(offs_t offset, uint8_t data)
{
scrambled_410x_w(offset, data);
}
-READ8_MEMBER(nes_vt_soc_device::vt03_410x_r)
+uint8_t nes_vt_soc_device::vt03_410x_r(offs_t offset)
{
return m_410x[offset];
}
@@ -534,12 +534,12 @@ void nes_vt_soc_device::video_irq(bool hblank, int scanline, int vblank, int bla
}
/* todo, handle custom VT nametable stuff here */
-READ8_MEMBER(nes_vt_soc_device::nt_r)
+uint8_t nes_vt_soc_device::nt_r(offs_t offset)
{
return m_ntram[decode_nt_addr(offset)];
}
-WRITE8_MEMBER(nes_vt_soc_device::nt_w)
+void nes_vt_soc_device::nt_w(offs_t offset, uint8_t data)
{
//logerror("nt wr %04x %02x", offset, data);
m_ntram[decode_nt_addr(offset)] = data;
@@ -768,7 +768,7 @@ int nes_vt_soc_device::calculate_real_video_address(int addr, int extended, int
but then seems to be able to alter internal state of extended PPU registers, which is awkward
*/
-void nes_vt_soc_device::scrambled_8000_w(address_space& space, uint16_t offset, uint8_t data)
+void nes_vt_soc_device::scrambled_8000_w(uint16_t offset, uint8_t data)
{
offset &= 0x7fff;
@@ -868,22 +868,22 @@ void nes_vt_soc_device::scrambled_8000_w(address_space& space, uint16_t offset,
else if ((addr >= 0xC000) && (addr < 0xE000) && !(addr & 0x01))
{
// IRQ latch
- vt03_410x_w(space, 1, data);
+ vt03_410x_w(1, data);
}
else if ((addr >= 0xC000) && (addr < 0xE000) && (addr & 0x01))
{
// IRQ reload
- vt03_410x_w(space, 2, data);
+ vt03_410x_w(2, data);
}
else if ((addr >= 0xE000) && !(addr & 0x01))
{
// IRQ disable
- vt03_410x_w(space, 3, data);
+ vt03_410x_w(3, data);
}
else if ((addr >= 0xE000) && (addr & 0x01))
{
// IRQ enable
- vt03_410x_w(space, 4, data);
+ vt03_410x_w(4, data);
}
else
{
@@ -912,37 +912,37 @@ void nes_vt_soc_device::set_410x_scramble(uint8_t reg0, uint8_t reg1)
m_410x_scramble[1] = reg1;
}
-WRITE8_MEMBER(nes_vt_soc_device::vt03_8000_mapper_w)
+void nes_vt_soc_device::vt03_8000_mapper_w(offs_t offset, uint8_t data)
{
- scrambled_8000_w(space, offset, data);
+ scrambled_8000_w(offset, data);
//logerror("%s: vt03_8000_mapper_w (%04x) %02x\n", machine().describe_context(), offset+0x8000, data );
}
/* APU plumbing, this is because we have a plain M6502 core in the VT03, otherwise this is handled in the core */
-READ8_MEMBER(nes_vt_soc_device::psg1_4014_r)
+uint8_t nes_vt_soc_device::psg1_4014_r()
{
//return m_apu->read(0x14);
return 0x00;
}
-READ8_MEMBER(nes_vt_soc_device::psg1_4015_r)
+uint8_t nes_vt_soc_device::psg1_4015_r()
{
return m_apu->read(0x15);
}
-WRITE8_MEMBER(nes_vt_soc_device::psg1_4015_w)
+void nes_vt_soc_device::psg1_4015_w(uint8_t data)
{
m_apu->write(0x15, data);
}
-WRITE8_MEMBER(nes_vt_soc_device::psg1_4017_w)
+void nes_vt_soc_device::psg1_4017_w(uint8_t data)
{
m_apu->write(0x17, data);
}
// early units (VT03?) have a DMA bug in NTSC mode
-WRITE8_MEMBER(nes_vt_soc_device::vt_dma_w)
+void nes_vt_soc_device::vt_dma_w(uint8_t data)
{
if (!m_force_baddma)
do_dma(data, true);
@@ -1012,28 +1012,28 @@ void nes_vt_soc_device::do_dma(uint8_t data, bool has_ntsc_bug)
}
-WRITE8_MEMBER(nes_vt_soc_device::vt03_4034_w)
+void nes_vt_soc_device::vt03_4034_w(uint8_t data)
{
logerror("vt03_4034_w %02x\n", data);
m_vdma_ctrl = data;
}
-READ8_MEMBER(nes_vt_soc_device::in0_r)
+uint8_t nes_vt_soc_device::in0_r()
{
return m_read_0_callback();
}
-READ8_MEMBER(nes_vt_soc_device::in1_r)
+uint8_t nes_vt_soc_device::in1_r()
{
return m_read_1_callback();
}
-WRITE8_MEMBER(nes_vt_soc_device::in0_w)
+void nes_vt_soc_device::in0_w(offs_t offset, uint8_t data)
{
m_write_0_callback(offset, data);
}
-WRITE8_MEMBER(nes_vt_soc_device::extra_io_control_w)
+void nes_vt_soc_device::extra_io_control_w(uint8_t data)
{
/*
410d Extra I/O control
@@ -1051,7 +1051,7 @@ WRITE8_MEMBER(nes_vt_soc_device::extra_io_control_w)
logerror("%s: extra_io_control_w %02x\n", machine().describe_context(), data);
}
-READ8_MEMBER(nes_vt_soc_device::extrain_01_r)
+uint8_t nes_vt_soc_device::extrain_01_r()
{
// TODO: check status of 410d port to make sure we only read from enabled ports
uint8_t in0 = 0x00, in1 = 0x00;
@@ -1062,7 +1062,7 @@ READ8_MEMBER(nes_vt_soc_device::extrain_01_r)
return in0 | (in1<<4);
}
-READ8_MEMBER(nes_vt_soc_device::extrain_23_r)
+uint8_t nes_vt_soc_device::extrain_23_r()
{
// TODO: check status of 410d port to make sure we only read from enabled ports
uint8_t in2 = 0x00, in3 = 0x00;
@@ -1073,19 +1073,19 @@ READ8_MEMBER(nes_vt_soc_device::extrain_23_r)
return in2 | (in3<<4);
}
-WRITE8_MEMBER(nes_vt_soc_device::extraout_01_w)
+void nes_vt_soc_device::extraout_01_w(uint8_t data)
{
// TODO: use callbacks for this as output can be hooked up to anything
logerror("%s: extraout_01_w %02x\n", machine().describe_context(), data);
}
-WRITE8_MEMBER(nes_vt_soc_device::extraout_23_w)
+void nes_vt_soc_device::extraout_23_w(uint8_t data)
{
// TODO: use callbacks for this as output can be hooked up to anything
logerror("%s: extraout_23_w %02x\n", machine().describe_context(), data);
}
-READ8_MEMBER(nes_vt_soc_device::rs232flags_region_r)
+uint8_t nes_vt_soc_device::rs232flags_region_r()
{
/*
0x4119 RS232 Flags + Region
@@ -1111,7 +1111,7 @@ READ8_MEMBER(nes_vt_soc_device::rs232flags_region_r)
}
-READ8_MEMBER(nes_vt_soc_device::external_space_read)
+uint8_t nes_vt_soc_device::external_space_read(offs_t offset)
{
address_space& spc = this->space(AS_PROGRAM);
int bank = (offset & 0x6000) >> 13;
@@ -1120,7 +1120,7 @@ READ8_MEMBER(nes_vt_soc_device::external_space_read)
return spc.read_byte(address);
}
-WRITE8_MEMBER(nes_vt_soc_device::external_space_write)
+void nes_vt_soc_device::external_space_write(offs_t offset, uint8_t data)
{
address_space& spc = this->space(AS_PROGRAM);
int bank = (offset & 0x6000) >> 13;
@@ -1321,7 +1321,7 @@ void nes_vt_soc_4kram_cy_device::device_start()
}
-READ8_MEMBER(nes_vt_soc_4kram_cy_device::vt03_41bx_r)
+uint8_t nes_vt_soc_4kram_cy_device::vt03_41bx_r(offs_t offset)
{
switch (offset)
{
@@ -1332,18 +1332,18 @@ READ8_MEMBER(nes_vt_soc_4kram_cy_device::vt03_41bx_r)
}
}
-WRITE8_MEMBER(nes_vt_soc_4kram_cy_device::vt03_41bx_w)
+void nes_vt_soc_4kram_cy_device::vt03_41bx_w(offs_t offset, uint8_t data)
{
logerror("vt03_41bx_w %02x %02x\n", offset, data);
}
-READ8_MEMBER(nes_vt_soc_4kram_cy_device::vt03_413x_r)
+uint8_t nes_vt_soc_4kram_cy_device::vt03_413x_r(offs_t offset)
{
logerror("vt03_413x_r %02x\n", offset);
return m_413x[offset];
}
-WRITE8_MEMBER(nes_vt_soc_4kram_cy_device::vt03_413x_w)
+void nes_vt_soc_4kram_cy_device::vt03_413x_w(offs_t offset, uint8_t data)
{
logerror("vt03_413x_w %02x %02x\n", offset, data);
// VT168 style ALU ??
@@ -1369,23 +1369,23 @@ WRITE8_MEMBER(nes_vt_soc_4kram_cy_device::vt03_413x_w)
}
}
-READ8_MEMBER(nes_vt_soc_4kram_cy_device::vt03_414f_r)
+uint8_t nes_vt_soc_4kram_cy_device::vt03_414f_r()
{
return 0xff;
}
-READ8_MEMBER(nes_vt_soc_4kram_cy_device::vt03_415c_r)
+uint8_t nes_vt_soc_4kram_cy_device::vt03_415c_r()
{
return 0xff;
}
-WRITE8_MEMBER(nes_vt_soc_4kram_cy_device::vt03_48ax_w)
+void nes_vt_soc_4kram_cy_device::vt03_48ax_w(offs_t offset, uint8_t data)
{
logerror("vt03_48ax_w %02x %02x\n", offset, data);
}
-READ8_MEMBER(nes_vt_soc_4kram_cy_device::vt03_48ax_r)
+uint8_t nes_vt_soc_4kram_cy_device::vt03_48ax_r(offs_t offset)
{
switch (offset)
{
@@ -1414,7 +1414,7 @@ void nes_vt_soc_4kram_bt_device::nes_vt_bt_map(address_map &map)
map(0x412c, 0x412c).w(FUNC(nes_vt_soc_4kram_bt_device::vt03_412c_extbank_w));
}
-WRITE8_MEMBER(nes_vt_soc_4kram_bt_device::vt03_412c_extbank_w)
+void nes_vt_soc_4kram_bt_device::vt03_412c_extbank_w(uint8_t data)
{
m_upper_write_412c_callback(data);
}
@@ -1430,7 +1430,7 @@ void nes_vt_soc_4kram_hh_device::device_add_mconfig(machine_config& config)
m_maincpu->set_addrmap(AS_PROGRAM, &nes_vt_soc_4kram_hh_device::nes_vt_hh_map);
}
-WRITE8_MEMBER(nes_vt_soc_4kram_hh_device::vtfp_411d_w)
+void nes_vt_soc_4kram_hh_device::vtfp_411d_w(uint8_t data)
{
// controls chram access and mapper emulation modes in later models
logerror("vtfp_411d_w %02x\n", data);
@@ -1438,7 +1438,7 @@ WRITE8_MEMBER(nes_vt_soc_4kram_hh_device::vtfp_411d_w)
update_banks();
}
-READ8_MEMBER(nes_vt_soc_4kram_hh_device::vthh_414a_r)
+uint8_t nes_vt_soc_4kram_hh_device::vthh_414a_r()
{
return 0x80;
}
@@ -1466,13 +1466,13 @@ void nes_vt_soc_4kram_fp_device::device_add_mconfig(machine_config& config)
}
-READ8_MEMBER(nes_vt_soc_4kram_fp_device::vtfp_4119_r)
+uint8_t nes_vt_soc_4kram_fp_device::vtfp_4119_r()
{
// would be PAL/NTSC etc. in base system, maybe different here?
return 0x00;
}
-WRITE8_MEMBER(nes_vt_soc_4kram_fp_device::vtfp_411e_w)
+void nes_vt_soc_4kram_fp_device::vtfp_411e_w(uint8_t data)
{
logerror("411e_w %02x\n", data);
if (data == 0x05)
@@ -1481,7 +1481,7 @@ WRITE8_MEMBER(nes_vt_soc_4kram_fp_device::vtfp_411e_w)
dynamic_cast<m6502_vtscr&>(*m_maincpu).set_next_scramble(false);
}
-WRITE8_MEMBER(nes_vt_soc_4kram_fp_device::vtfp_4a00_w)
+void nes_vt_soc_4kram_fp_device::vtfp_4a00_w(uint8_t data)
{
logerror("4a00_w %02x\n", data);
//if(data == 0x80)
@@ -1489,17 +1489,17 @@ WRITE8_MEMBER(nes_vt_soc_4kram_fp_device::vtfp_4a00_w)
}
-WRITE8_MEMBER(nes_vt_soc_4kram_fp_device::vtfp_412c_extbank_w)
+void nes_vt_soc_4kram_fp_device::vtfp_412c_extbank_w(uint8_t data)
{
m_upper_write_412c_callback(data);
}
-READ8_MEMBER(nes_vt_soc_4kram_fp_device::vtfp_412d_r)
+uint8_t nes_vt_soc_4kram_fp_device::vtfp_412d_r()
{
return m_upper_read_412d_callback();
}
-WRITE8_MEMBER(nes_vt_soc_4kram_fp_device::vtfp_4242_w)
+void nes_vt_soc_4kram_fp_device::vtfp_4242_w(uint8_t data)
{
logerror("vtfp_4242_w %02x\n", data);
m_4242 = data;
@@ -1536,7 +1536,7 @@ void nes_vt_soc_8kram_dg_device::device_add_mconfig(machine_config& config)
m_maincpu->set_addrmap(AS_PROGRAM, &nes_vt_soc_8kram_dg_device::nes_vt_dg_map);
}
-WRITE8_MEMBER(nes_vt_soc_8kram_dg_device::vt03_411c_w)
+void nes_vt_soc_8kram_dg_device::vt03_411c_w(uint8_t data)
{
logerror("vt03_411c_w %02x\n", data);
m_411c = data;
@@ -1561,18 +1561,18 @@ void nes_vt_soc_8kram_fa_device::device_add_mconfig(machine_config& config)
m_maincpu->set_addrmap(AS_PROGRAM, &nes_vt_soc_8kram_fa_device::nes_vt_fa_map);
}
-READ8_MEMBER(nes_vt_soc_8kram_fa_device::vtfa_412c_r)
+uint8_t nes_vt_soc_8kram_fa_device::vtfa_412c_r()
{
return m_upper_read_412c_callback();
}
-WRITE8_MEMBER(nes_vt_soc_8kram_fa_device::vtfa_412c_extbank_w)
+void nes_vt_soc_8kram_fa_device::vtfa_412c_extbank_w(uint8_t data)
{
m_upper_write_412c_callback(data);
}
-WRITE8_MEMBER(nes_vt_soc_8kram_fa_device::vtfp_4242_w)
+void nes_vt_soc_8kram_fa_device::vtfp_4242_w(uint8_t data)
{
logerror("vtfp_4242_w %02x\n", data);
m_4242 = data;
diff --git a/src/mame/machine/nes_vt_soc.h b/src/mame/machine/nes_vt_soc.h
index 05b595f8e9a..ebf3dd91142 100644
--- a/src/mame/machine/nes_vt_soc.h
+++ b/src/mame/machine/nes_vt_soc.h
@@ -20,7 +20,7 @@ public:
void program_map(address_map &map);
- DECLARE_WRITE8_MEMBER(vt03_8000_mapper_w);
+ void vt03_8000_mapper_w(offs_t offset, uint8_t data);
// 8-bit ports
auto write_0_callback() { return m_write_0_callback.bind(); }
@@ -73,8 +73,8 @@ protected:
uint32_t get_banks(uint8_t bnk);
void update_banks();
uint16_t decode_nt_addr(uint16_t addr);
- DECLARE_WRITE8_MEMBER(vt03_410x_w);
- DECLARE_READ8_MEMBER(vt03_410x_r);
+ void vt03_410x_w(offs_t offset, uint8_t data);
+ uint8_t vt03_410x_r(offs_t offset);
void scrambled_410x_w(uint16_t offset, uint8_t data);
uint8_t spr_r(offs_t offset);
uint8_t chr_r(offs_t offset);
@@ -82,29 +82,29 @@ protected:
void scanline_irq(int scanline, int vblank, int blanked);
void hblank_irq(int scanline, int vblank, int blanked);
void video_irq(bool hblank, int scanline, int vblank, int blanked);
- DECLARE_READ8_MEMBER(nt_r);
- DECLARE_WRITE8_MEMBER(nt_w);
+ uint8_t nt_r(offs_t offset);
+ void nt_w(offs_t offset, uint8_t data);
int calculate_real_video_address(int addr, int extended, int readtype);
- void scrambled_8000_w(address_space& space, uint16_t offset, uint8_t data);
- DECLARE_READ8_MEMBER(psg1_4014_r);
- DECLARE_READ8_MEMBER(psg1_4015_r);
- DECLARE_WRITE8_MEMBER(psg1_4015_w);
- DECLARE_WRITE8_MEMBER(psg1_4017_w);
- DECLARE_WRITE8_MEMBER(vt_dma_w);
- DECLARE_WRITE8_MEMBER(vt_fixed_dma_w);
+ void scrambled_8000_w(uint16_t offset, uint8_t data);
+ uint8_t psg1_4014_r();
+ uint8_t psg1_4015_r();
+ void psg1_4015_w(uint8_t data);
+ void psg1_4017_w(uint8_t data);
+ void vt_dma_w(uint8_t data);
+ void vt_fixed_dma_w(uint8_t data);
void do_dma(uint8_t data, bool has_ntsc_bug);
- DECLARE_WRITE8_MEMBER(vt03_4034_w);
+ void vt03_4034_w(uint8_t data);
- DECLARE_READ8_MEMBER(in0_r);
- DECLARE_READ8_MEMBER(in1_r);
- DECLARE_WRITE8_MEMBER(in0_w);
+ uint8_t in0_r();
+ uint8_t in1_r();
+ void in0_w(offs_t offset, uint8_t data);
- DECLARE_WRITE8_MEMBER(extra_io_control_w);
- DECLARE_READ8_MEMBER(extrain_01_r);
- DECLARE_READ8_MEMBER(extrain_23_r);
- DECLARE_WRITE8_MEMBER(extraout_01_w);
- DECLARE_WRITE8_MEMBER(extraout_23_w);
- DECLARE_READ8_MEMBER(rs232flags_region_r);
+ void extra_io_control_w(uint8_t data);
+ uint8_t extrain_01_r();
+ uint8_t extrain_23_r();
+ void extraout_01_w(uint8_t data);
+ void extraout_23_w(uint8_t data);
+ uint8_t rs232flags_region_r();
uint32_t screen_update(screen_device& screen, bitmap_rgb32& bitmap, const rectangle& cliprect);
@@ -132,8 +132,8 @@ protected:
DECLARE_WRITE_LINE_MEMBER(apu_irq);
uint8_t apu_read_mem(offs_t offset);
- DECLARE_READ8_MEMBER(external_space_read);
- DECLARE_WRITE8_MEMBER(external_space_write);
+ uint8_t external_space_read(offs_t offset);
+ void external_space_write(offs_t offset, uint8_t data);
void do_pal_timings_and_ppu_replacement(machine_config& config);
@@ -217,18 +217,18 @@ protected:
void nes_vt_cy_map(address_map& map);
- DECLARE_READ8_MEMBER(vt03_41bx_r);
- DECLARE_WRITE8_MEMBER(vt03_41bx_w);
+ uint8_t vt03_41bx_r(offs_t offset);
+ void vt03_41bx_w(offs_t offset, uint8_t data);
- DECLARE_READ8_MEMBER(vt03_413x_r);
- DECLARE_WRITE8_MEMBER(vt03_413x_w);
+ uint8_t vt03_413x_r(offs_t offset);
+ void vt03_413x_w(offs_t offset, uint8_t data);
- DECLARE_READ8_MEMBER(vt03_414f_r);
+ uint8_t vt03_414f_r();
- DECLARE_READ8_MEMBER(vt03_415c_r);
+ uint8_t vt03_415c_r();
- DECLARE_WRITE8_MEMBER(vt03_48ax_w);
- DECLARE_READ8_MEMBER(vt03_48ax_r);
+ void vt03_48ax_w(offs_t offset, uint8_t data);
+ uint8_t vt03_48ax_r(offs_t offset);
uint8_t m_413x[8]; // CY only?
};
@@ -243,7 +243,7 @@ protected:
void nes_vt_bt_map(address_map& map);
- DECLARE_WRITE8_MEMBER(vt03_412c_extbank_w);
+ void vt03_412c_extbank_w(uint8_t data);
};
class nes_vt_soc_4kram_hh_device : public nes_vt_soc_4kram_device
@@ -258,8 +258,8 @@ protected:
void nes_vt_hh_map(address_map& map);
- DECLARE_READ8_MEMBER(vthh_414a_r);
- DECLARE_WRITE8_MEMBER(vtfp_411d_w);
+ uint8_t vthh_414a_r();
+ void vtfp_411d_w(uint8_t data);
};
@@ -275,12 +275,12 @@ protected:
void nes_vt_fp_map(address_map& map);
- DECLARE_READ8_MEMBER(vtfp_4119_r);
- DECLARE_WRITE8_MEMBER(vtfp_411e_w);
- DECLARE_WRITE8_MEMBER(vtfp_412c_extbank_w);
- DECLARE_READ8_MEMBER(vtfp_412d_r);
- DECLARE_WRITE8_MEMBER(vtfp_4242_w);
- DECLARE_WRITE8_MEMBER(vtfp_4a00_w);
+ uint8_t vtfp_4119_r();
+ void vtfp_411e_w(uint8_t data);
+ void vtfp_412c_extbank_w(uint8_t data);
+ uint8_t vtfp_412d_r();
+ void vtfp_4242_w(uint8_t data);
+ void vtfp_4a00_w(uint8_t data);
};
class nes_vt_soc_4kram_fp_pal_device : public nes_vt_soc_4kram_fp_device
@@ -305,7 +305,7 @@ protected:
void nes_vt_dg_map(address_map& map);
- DECLARE_WRITE8_MEMBER(vt03_411c_w);
+ void vt03_411c_w(uint8_t data);
};
class nes_vt_soc_8kram_fa_device : public nes_vt_soc_8kram_dg_device
@@ -319,9 +319,9 @@ protected:
void nes_vt_fa_map(address_map& map);
- DECLARE_READ8_MEMBER(vtfa_412c_r);
- DECLARE_WRITE8_MEMBER(vtfa_412c_extbank_w);
- DECLARE_WRITE8_MEMBER(vtfp_4242_w);
+ uint8_t vtfa_412c_r();
+ void vtfa_412c_extbank_w(uint8_t data);
+ void vtfp_4242_w(uint8_t data);
};
diff --git a/src/mame/machine/snes.cpp b/src/mame/machine/snes.cpp
index 38658019db0..57be9b72db2 100644
--- a/src/mame/machine/snes.cpp
+++ b/src/mame/machine/snes.cpp
@@ -2,7 +2,7 @@
// copyright-holders:Angelo Salese, R. Belmont, Anthony Kruize, Fabio Priuli, Ryan Holtz
/***************************************************************************
- snes.c
+ snes.cpp
Machine file to handle emulation of the Nintendo Super NES
@@ -267,7 +267,7 @@ uint8_t snes_state::snes_open_bus_r()
}
/* read & write to DMA addresses are defined separately, to be called by snessdd1 handlers */
-READ8_MEMBER( snes_state::snes_io_dma_r )
+uint8_t snes_state::snes_io_dma_r(offs_t offset)
{
switch (offset)
{
@@ -313,7 +313,7 @@ READ8_MEMBER( snes_state::snes_io_dma_r )
return snes_open_bus_r();
}
-WRITE8_MEMBER( snes_state::snes_io_dma_w )
+void snes_state::snes_io_dma_w(offs_t offset, uint8_t data)
{
switch (offset)
{
@@ -377,7 +377,7 @@ WRITE8_MEMBER( snes_state::snes_io_dma_w )
* mid - This is the middle byte of a 24 bit value
* high - This is the high byte of a 16 or 24 bit value
*/
-READ8_MEMBER( snes_state::snes_r_io )
+uint8_t snes_state::snes_r_io(offs_t offset)
{
uint8_t value = 0;
@@ -396,7 +396,7 @@ READ8_MEMBER( snes_state::snes_r_io )
// DMA accesses are from 4300 to 437f
if (offset >= DMAP0 && offset < 0x4380)
{
- return snes_io_dma_r(space, offset);
+ return snes_io_dma_r(offset);
}
@@ -467,7 +467,7 @@ READ8_MEMBER( snes_state::snes_r_io )
* mid - This is the middle byte of a 24 bit value
* high - This is the high byte of a 16 or 24 bit value
*/
-WRITE8_MEMBER( snes_state::snes_w_io )
+void snes_state::snes_w_io(address_space &space, offs_t offset, uint8_t data)
{
// PPU accesses are from 2100 to 213f
if (offset >= INIDISP && offset < APU00)
@@ -488,7 +488,7 @@ WRITE8_MEMBER( snes_state::snes_w_io )
// DMA accesses are from 4300 to 437f
if (offset >= DMAP0 && offset < 0x4380)
{
- snes_io_dma_w(space, offset, data);
+ snes_io_dma_w(offset, data);
return;
}
@@ -712,7 +712,7 @@ inline uint8_t snes_state::snes_rom_access(uint32_t offset)
}
/* 0x000000 - 0x7dffff */
-READ8_MEMBER(snes_state::snes_r_bank1)
+uint8_t snes_state::snes_r_bank1(offs_t offset)
{
uint8_t value = 0xff;
uint16_t address = offset & 0xffff;
@@ -722,7 +722,7 @@ READ8_MEMBER(snes_state::snes_r_bank1)
if (address < 0x2000) /* Mirror of Low RAM */
value = m_wram[address];
else if (address < 0x6000) /* I/O */
- value = snes_r_io(space, address);
+ value = snes_r_io(address);
else if (address < 0x8000)
{
if (offset >= 0x300000 && m_cart.mode == SNES_MODE_21 && m_cart.m_nvram_size > 0)
@@ -776,7 +776,7 @@ READ8_MEMBER(snes_state::snes_r_bank1)
/* 0x800000 - 0xffffff */
-READ8_MEMBER(snes_state::snes_r_bank2)
+uint8_t snes_state::snes_r_bank2(offs_t offset)
{
uint8_t value = 0;
uint16_t address = offset & 0xffff;
@@ -824,7 +824,7 @@ READ8_MEMBER(snes_state::snes_r_bank2)
/* 0x000000 - 0x7dffff */
-WRITE8_MEMBER(snes_state::snes_w_bank1)
+void snes_state::snes_w_bank1(address_space &space, offs_t offset, uint8_t data)
{
uint16_t address = offset & 0xffff;
@@ -881,7 +881,7 @@ WRITE8_MEMBER(snes_state::snes_w_bank1)
}
/* 0x800000 - 0xffffff */
-WRITE8_MEMBER(snes_state::snes_w_bank2)
+void snes_state::snes_w_bank2(offs_t offset, uint8_t data)
{
uint16_t address = offset & 0xffff;
diff --git a/src/mame/machine/vt1682_timer.cpp b/src/mame/machine/vt1682_timer.cpp
index c7d27522e6b..afe5bdc2697 100644
--- a/src/mame/machine/vt1682_timer.cpp
+++ b/src/mame/machine/vt1682_timer.cpp
@@ -60,14 +60,14 @@ void vrt_vt1682_timer_device::device_reset()
0x01 - Timer xx Preload:0
*/
-READ8_MEMBER(vrt_vt1682_timer_device::vt1682_timer_preload_7_0_r)
+uint8_t vrt_vt1682_timer_device::vt1682_timer_preload_7_0_r()
{
uint8_t ret = m_timer_preload_7_0;
if (!m_is_sound_timer) LOGMASKED(LOG_TIMER,"%s: vt1682_timer_preload_7_0_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vrt_vt1682_timer_device::vt1682_timer_preload_7_0_w)
+void vrt_vt1682_timer_device::vt1682_timer_preload_7_0_w(uint8_t data)
{
if (!m_is_sound_timer) LOGMASKED(LOG_TIMER,"%s: vt1682_timer_preload_7_0_w writing: %02x\n", machine().describe_context(), data);
m_timer_preload_7_0 = data;
@@ -90,7 +90,7 @@ WRITE8_MEMBER(vrt_vt1682_timer_device::vt1682_timer_preload_7_0_w)
0x01 - Timer xx Preload:8
*/
-READ8_MEMBER(vrt_vt1682_timer_device::vt1682_timer_preload_15_8_r)
+uint8_t vrt_vt1682_timer_device::vt1682_timer_preload_15_8_r()
{
uint8_t ret = m_timer_preload_15_8;
if (!m_is_sound_timer) LOGMASKED(LOG_TIMER,"%s: vt1682_timer_preload_15_8_r returning: %02x\n", machine().describe_context(), ret);
@@ -107,7 +107,7 @@ void vrt_vt1682_timer_device::update_timer()
}
}
-WRITE8_MEMBER(vrt_vt1682_timer_device::vt1682_timer_preload_15_8_w)
+void vrt_vt1682_timer_device::vt1682_timer_preload_15_8_w(uint8_t data)
{
if (!m_is_sound_timer) LOGMASKED(LOG_TIMER,"%s: vt1682_timer_preload_15_8_w writing: %02x\n", machine().describe_context(), data);
m_timer_preload_15_8 = data;
@@ -135,14 +135,14 @@ WRITE8_MEMBER(vrt_vt1682_timer_device::vt1682_timer_preload_15_8_w)
0x01 - TMRxx EN
*/
-READ8_MEMBER(vrt_vt1682_timer_device::vt1682_timer_enable_r)
+uint8_t vrt_vt1682_timer_device::vt1682_timer_enable_r()
{
uint8_t ret = m_timer_enable;
if (!m_is_sound_timer) LOGMASKED(LOG_TIMER,"%s: vt1682_timer_enable_r returning: %02x\n", machine().describe_context(), ret);
return ret;
}
-WRITE8_MEMBER(vrt_vt1682_timer_device::vt1682_timer_enable_w)
+void vrt_vt1682_timer_device::vt1682_timer_enable_w(uint8_t data)
{
// Timer A notes
// For NTSC
@@ -191,7 +191,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(vrt_vt1682_timer_device::timer_expired)
*/
-WRITE8_MEMBER(vrt_vt1682_timer_device::vt1682_timer_irqclear_w)
+void vrt_vt1682_timer_device::vt1682_timer_irqclear_w(uint8_t data)
{
//if (!m_is_sound_timer) LOGMASKED(LOG_TIMER,"%s: vt1682_timer_irqclear_w writing: %02x\n", machine().describe_context(), data);
m_irq_cb(false);
diff --git a/src/mame/machine/vt1682_timer.h b/src/mame/machine/vt1682_timer.h
index 97f6cc263c9..d2e35280a33 100644
--- a/src/mame/machine/vt1682_timer.h
+++ b/src/mame/machine/vt1682_timer.h
@@ -21,16 +21,16 @@ public:
// so that we can filter logging, sound timer gets used hundreds of times a frame, so logging it is unwise
void set_sound_timer() { m_is_sound_timer = true; }
- DECLARE_READ8_MEMBER(vt1682_timer_preload_7_0_r);
- DECLARE_WRITE8_MEMBER(vt1682_timer_preload_7_0_w);
+ uint8_t vt1682_timer_preload_7_0_r();
+ void vt1682_timer_preload_7_0_w(uint8_t data);
- DECLARE_READ8_MEMBER(vt1682_timer_preload_15_8_r);
- DECLARE_WRITE8_MEMBER(vt1682_timer_preload_15_8_w);
+ uint8_t vt1682_timer_preload_15_8_r();
+ void vt1682_timer_preload_15_8_w(uint8_t data);
- DECLARE_READ8_MEMBER(vt1682_timer_enable_r);
- DECLARE_WRITE8_MEMBER(vt1682_timer_enable_w);
+ uint8_t vt1682_timer_enable_r();
+ void vt1682_timer_enable_w(uint8_t data);
- DECLARE_WRITE8_MEMBER(vt1682_timer_irqclear_w);
+ void vt1682_timer_irqclear_w(uint8_t data);
void change_clock();
diff --git a/src/mame/machine/vt1682_uio.cpp b/src/mame/machine/vt1682_uio.cpp
index d7c5591dfc1..557ed7e3646 100644
--- a/src/mame/machine/vt1682_uio.cpp
+++ b/src/mame/machine/vt1682_uio.cpp
@@ -25,7 +25,7 @@ vrt_vt1682_uio_device::vrt_vt1682_uio_device(const machine_config &mconfig, cons
{
}
-READ8_MEMBER(vrt_vt1682_uio_device::inteact_2129_uio_a_data_r)
+uint8_t vrt_vt1682_uio_device::inteact_2129_uio_a_data_r()
{
// TODO, use direction register etc.
uint8_t dat = m_porta_in();
@@ -34,7 +34,7 @@ READ8_MEMBER(vrt_vt1682_uio_device::inteact_2129_uio_a_data_r)
}
-WRITE8_MEMBER(vrt_vt1682_uio_device::inteact_2129_uio_a_data_w)
+void vrt_vt1682_uio_device::inteact_2129_uio_a_data_w(uint8_t data)
{
// TODO, use direction register etc.
@@ -43,30 +43,30 @@ WRITE8_MEMBER(vrt_vt1682_uio_device::inteact_2129_uio_a_data_w)
m_porta_out(m_2129_uio_a_data);
}
-READ8_MEMBER(vrt_vt1682_uio_device::inteact_212a_uio_a_direction_r)
+uint8_t vrt_vt1682_uio_device::inteact_212a_uio_a_direction_r()
{
return m_212a_uio_a_direction;
}
-WRITE8_MEMBER(vrt_vt1682_uio_device::inteact_212a_uio_a_direction_w)
+void vrt_vt1682_uio_device::inteact_212a_uio_a_direction_w(uint8_t data)
{
LOGMASKED(LOG_UIO, "%s: inteact_212a_uio_a_direction_w %02x\n", machine().describe_context(), data);
m_212a_uio_a_direction = data;
}
-READ8_MEMBER(vrt_vt1682_uio_device::inteact_212b_uio_a_attribute_r)
+uint8_t vrt_vt1682_uio_device::inteact_212b_uio_a_attribute_r()
{
return m_212b_uio_a_attribute;
}
-WRITE8_MEMBER(vrt_vt1682_uio_device::inteact_212b_uio_a_attribute_w)
+void vrt_vt1682_uio_device::inteact_212b_uio_a_attribute_w(uint8_t data)
{
LOGMASKED(LOG_UIO, "%s: inteact_212b_uio_a_attribute_w %02x\n", machine().describe_context(), data);
m_212b_uio_a_attribute = data;
}
-READ8_MEMBER(vrt_vt1682_uio_device::inteact_2149_uio_b_data_r)
+uint8_t vrt_vt1682_uio_device::inteact_2149_uio_b_data_r()
{
// TODO, use direction register etc.
uint8_t dat = m_portb_in();
@@ -75,7 +75,7 @@ READ8_MEMBER(vrt_vt1682_uio_device::inteact_2149_uio_b_data_r)
}
-WRITE8_MEMBER(vrt_vt1682_uio_device::inteact_2149_uio_b_data_w)
+void vrt_vt1682_uio_device::inteact_2149_uio_b_data_w(uint8_t data)
{
// TODO, use direction register etc.
LOGMASKED(LOG_UIO, "%s: inteact_2149_uio_b_data_w %02x\n", machine().describe_context(), data);
@@ -83,23 +83,23 @@ WRITE8_MEMBER(vrt_vt1682_uio_device::inteact_2149_uio_b_data_w)
m_portb_out(m_2149_uio_b_data);
}
-READ8_MEMBER(vrt_vt1682_uio_device::inteact_214a_uio_b_direction_r)
+uint8_t vrt_vt1682_uio_device::inteact_214a_uio_b_direction_r()
{
return m_214a_uio_b_direction;
}
-WRITE8_MEMBER(vrt_vt1682_uio_device::inteact_214a_uio_b_direction_w)
+void vrt_vt1682_uio_device::inteact_214a_uio_b_direction_w(uint8_t data)
{
LOGMASKED(LOG_UIO, "%s: inteact_214a_uio_b_direction_w %02x\n", machine().describe_context(), data);
m_214a_uio_b_direction = data;
}
-READ8_MEMBER(vrt_vt1682_uio_device::inteact_214b_uio_b_attribute_r)
+uint8_t vrt_vt1682_uio_device::inteact_214b_uio_b_attribute_r()
{
return m_214b_uio_b_attribute;
}
-WRITE8_MEMBER(vrt_vt1682_uio_device::inteact_214b_uio_b_attribute_w)
+void vrt_vt1682_uio_device::inteact_214b_uio_b_attribute_w(uint8_t data)
{
LOGMASKED(LOG_UIO, "%s: inteact_214b_uio_b_attribute_w %02x\n", machine().describe_context(), data);
m_214b_uio_b_attribute = data;
diff --git a/src/mame/machine/vt1682_uio.h b/src/mame/machine/vt1682_uio.h
index d3bfc87971c..ef86aaaa2f2 100644
--- a/src/mame/machine/vt1682_uio.h
+++ b/src/mame/machine/vt1682_uio.h
@@ -19,19 +19,19 @@ public:
auto portb_out() { return m_portb_out.bind(); }
auto portb_in() { return m_portb_in.bind(); }
- DECLARE_READ8_MEMBER(inteact_2129_uio_a_data_r);
- DECLARE_WRITE8_MEMBER(inteact_2129_uio_a_data_w);
- DECLARE_READ8_MEMBER(inteact_212a_uio_a_direction_r);
- DECLARE_WRITE8_MEMBER(inteact_212a_uio_a_direction_w);
- DECLARE_READ8_MEMBER(inteact_212b_uio_a_attribute_r);
- DECLARE_WRITE8_MEMBER(inteact_212b_uio_a_attribute_w);
-
- DECLARE_READ8_MEMBER(inteact_2149_uio_b_data_r);
- DECLARE_WRITE8_MEMBER(inteact_2149_uio_b_data_w);
- DECLARE_READ8_MEMBER(inteact_214a_uio_b_direction_r);
- DECLARE_WRITE8_MEMBER(inteact_214a_uio_b_direction_w);
- DECLARE_READ8_MEMBER(inteact_214b_uio_b_attribute_r);
- DECLARE_WRITE8_MEMBER(inteact_214b_uio_b_attribute_w);
+ uint8_t inteact_2129_uio_a_data_r();
+ void inteact_2129_uio_a_data_w(uint8_t data);
+ uint8_t inteact_212a_uio_a_direction_r();
+ void inteact_212a_uio_a_direction_w(uint8_t data);
+ uint8_t inteact_212b_uio_a_attribute_r();
+ void inteact_212b_uio_a_attribute_w(uint8_t data);
+
+ uint8_t inteact_2149_uio_b_data_r();
+ void inteact_2149_uio_b_data_w(uint8_t data);
+ uint8_t inteact_214a_uio_b_direction_r();
+ void inteact_214a_uio_b_direction_w(uint8_t data);
+ uint8_t inteact_214b_uio_b_attribute_r();
+ void inteact_214b_uio_b_attribute_w(uint8_t data);
protected:
virtual void device_start() override;
diff --git a/src/mame/mame.lst b/src/mame/mame.lst
index b9e8cc391c6..3047ca78adc 100644
--- a/src/mame/mame.lst
+++ b/src/mame/mame.lst
@@ -3214,6 +3214,10 @@ barbball // (proto) (c) 1983
basic31 //
basic52 //
+@source:basssta.cpp
+bassstr //
+sbasssta //
+
@source:batman.cpp
batman // 136085 (c) 1991
@@ -11485,8 +11489,8 @@ skydest // PD0 (c) 1985 Taito Corporation
@source:cz101.cpp
cz101 // 1984 Casio
-@source:czk80.cpp
-czk80 //
+@source:ckz80.cpp
+ckz80 //
@source:d400.cpp
d461 //
@@ -12363,6 +12367,9 @@ drmicro // (c) 1983 Sanritsu
@source:drtomy.cpp
drtomy // (c) 1993 no copyright message (1993 on pcb), some code taken from 'Big Karnak'
+@source:drumsta.cpp
+drumsta //
+
@source:drw80pkr.cpp
drw80pk2 // (c) 1983 IGT
drw80pkr // (c) 1982 IGT
@@ -22257,6 +22264,7 @@ alm32 // 1988 Mephisto Almeria 32 Bit
port16 // 1989 Mephisto Portorose 16 Bit
port32 // 1989 Mephisto Portorose 32 Bit
port32a // 1989 Mephisto Portorose 32 Bit
+port32b // 1989 Mephisto Portorose 32 Bit
lyon16 // 1990 Mephisto Lyon 16 Bit
lyon32 // 1990 Mephisto Lyon 32 Bit
van16 // 1991 Mephisto Vancouver 16 Bit
@@ -42245,3 +42253,6 @@ gs6502
@source:gs6809.cpp
gs6809
+
+@source:ultim809.cpp
+ultim809
diff --git a/src/mame/mess.flt b/src/mame/mess.flt
index 5dedf3d4efc..2476ccb83d1 100644
--- a/src/mame/mess.flt
+++ b/src/mame/mess.flt
@@ -103,6 +103,7 @@ babbage.cpp
banctec.cpp
bandai_design_master.cpp
basic52.cpp
+basssta.cpp
bbc.cpp
bbcbc.cpp
bbl380.cpp
@@ -164,6 +165,7 @@ cit101.cpp
cit1500.cpp
cit220.cpp
cking_master.cpp
+ckz80.cpp
clcd.cpp
clickstart.cpp
clxvme186.cpp
@@ -201,7 +203,6 @@ cxg_sphinx40.cpp
cxhumax.cpp
cybiko.cpp
cz101.cpp
-czk80.cpp
d400.cpp
d6800.cpp
d6809.cpp
@@ -232,6 +233,7 @@ dolphunk.cpp
dpb7000.cpp
dps1.cpp
dragon.cpp
+drumsta.cpp
dsb46.cpp
dual68.cpp
duet16.cpp
@@ -1011,6 +1013,7 @@ tvgame.cpp
tx0.cpp
uchroma68.cpp
uknc.cpp
+ultim809.cpp
unichamp.cpp
unior.cpp
unistar.cpp
diff --git a/src/mame/video/aeroboto.cpp b/src/mame/video/aeroboto.cpp
index 8392d6239b1..50fb751fe95 100644
--- a/src/mame/video/aeroboto.cpp
+++ b/src/mame/video/aeroboto.cpp
@@ -74,12 +74,12 @@ void aeroboto_state::video_start()
***************************************************************************/
-READ8_MEMBER(aeroboto_state::aeroboto_in0_r)
+uint8_t aeroboto_state::aeroboto_in0_r()
{
return ioport(flip_screen() ? "P2" : "P1")->read();
}
-WRITE8_MEMBER(aeroboto_state::aeroboto_3000_w)
+void aeroboto_state::aeroboto_3000_w(uint8_t data)
{
/* bit 0 selects both flip screen and player1/player2 controls */
flip_screen_set(data & 0x01);
@@ -95,13 +95,13 @@ WRITE8_MEMBER(aeroboto_state::aeroboto_3000_w)
m_starsoff = data & 0x4;
}
-WRITE8_MEMBER(aeroboto_state::aeroboto_videoram_w)
+void aeroboto_state::aeroboto_videoram_w(offs_t offset, uint8_t data)
{
m_videoram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(aeroboto_state::aeroboto_tilecolor_w)
+void aeroboto_state::aeroboto_tilecolor_w(offs_t offset, uint8_t data)
{
if (m_tilecolor[offset] != data)
{
diff --git a/src/mame/video/aerofgt.cpp b/src/mame/video/aerofgt.cpp
index 673cd21bd8a..1fb4a2d8d5f 100644
--- a/src/mame/video/aerofgt.cpp
+++ b/src/mame/video/aerofgt.cpp
@@ -163,25 +163,25 @@ void aerofgt_state::setbank( int layer, int num, int bank )
}
}
-WRITE8_MEMBER(aerofgt_state::pspikes_gfxbank_w)
+void aerofgt_state::pspikes_gfxbank_w(uint8_t data)
{
setbank(0, 0, (data & 0xf0) >> 4);
setbank(0, 1, data & 0x0f);
}
-WRITE8_MEMBER(aerofgt_state::karatblz_gfxbank_w)
+void aerofgt_state::karatblz_gfxbank_w(uint8_t data)
{
setbank(0, 0, (data & 0x01));
setbank(1, 1, (data & 0x08) >> 3);
}
-WRITE8_MEMBER(aerofgt_state::spinlbrk_gfxbank_w)
+void aerofgt_state::spinlbrk_gfxbank_w(uint8_t data)
{
setbank(0, 0, (data & 0x07));
setbank(1, 1, (data & 0x38) >> 3);
}
-WRITE16_MEMBER(aerofgt_state::turbofrc_gfxbank_w)
+void aerofgt_state::turbofrc_gfxbank_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
data = COMBINE_DATA(&m_bank[offset]);
@@ -191,7 +191,7 @@ WRITE16_MEMBER(aerofgt_state::turbofrc_gfxbank_w)
setbank(offset, 4 * offset + 3, (data >> 12) & 0x0f);
}
-WRITE16_MEMBER(aerofgt_state::aerofgt_gfxbank_w)
+void aerofgt_state::aerofgt_gfxbank_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
data = COMBINE_DATA(&m_bank[offset]);
@@ -199,14 +199,14 @@ WRITE16_MEMBER(aerofgt_state::aerofgt_gfxbank_w)
setbank(offset >> 1, 2 * offset + 1, (data >> 0) & 0xff);
}
-WRITE8_MEMBER(aerofgt_state::kickball_gfxbank_w)
+void aerofgt_state::kickball_gfxbank_w(uint8_t data)
{
// I strongly doubt this logic is correct
setbank(0, 0, (data & 0x0f)&~0x01);
setbank(0, 1, (data & 0x0f));
}
-WRITE8_MEMBER(aerofgt_state::pspikes_palette_bank_w)
+void aerofgt_state::pspikes_palette_bank_w(uint8_t data)
{
m_spritepalettebank = data & 0x03;
if (m_charpalettebank != (data & 0x1c) >> 2)
@@ -219,14 +219,14 @@ WRITE8_MEMBER(aerofgt_state::pspikes_palette_bank_w)
m_tilemap[0]->set_flip(m_flip_screen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
}
-WRITE8_MEMBER(aerofgt_state::spinlbrk_flip_screen_w)
+void aerofgt_state::spinlbrk_flip_screen_w(uint8_t data)
{
m_flip_screen = BIT(data, 7);
m_tilemap[0]->set_flip(m_flip_screen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
m_tilemap[1]->set_flip(m_flip_screen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
}
-WRITE8_MEMBER(aerofgt_state::turbofrc_flip_screen_w)
+void aerofgt_state::turbofrc_flip_screen_w(uint8_t data)
{
m_flip_screen = BIT(data, 7);
m_tilemap[0]->set_flip(m_flip_screen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
@@ -380,7 +380,7 @@ VIDEO_START_MEMBER(aerofgt_state,wbbc97)
}
// BOOTLEG
-WRITE16_MEMBER(aerofgt_state::pspikesb_gfxbank_w)
+void aerofgt_state::pspikesb_gfxbank_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_rasterram[0x200 / 2]);
@@ -389,13 +389,13 @@ WRITE16_MEMBER(aerofgt_state::pspikesb_gfxbank_w)
}
// BOOTLEG
-WRITE16_MEMBER(aerofgt_state::spikes91_lookup_w)
+void aerofgt_state::spikes91_lookup_w(uint16_t data)
{
m_spikes91_lookup = data & 1;
}
// BOOTLEG
-WRITE16_MEMBER(aerofgt_state::wbbc97_bitmap_enable_w)
+void aerofgt_state::wbbc97_bitmap_enable_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_wbbc97_bitmap_enable);
}
diff --git a/src/mame/video/airbustr.cpp b/src/mame/video/airbustr.cpp
index 1cfc52505ea..e3a847d2247 100644
--- a/src/mame/video/airbustr.cpp
+++ b/src/mame/video/airbustr.cpp
@@ -47,7 +47,7 @@
Bg Y Bg X Fg Y Fg X <-Scroll High Bits (complemented!)
*/
-WRITE8_MEMBER(airbustr_state::scrollregs_w)
+void airbustr_state::scrollregs_w(offs_t offset, uint8_t data)
{
switch (offset) // offset 0 <-> port 4
{
diff --git a/src/mame/video/ampoker2.cpp b/src/mame/video/ampoker2.cpp
index 7a91aa49eac..01c27166f82 100644
--- a/src/mame/video/ampoker2.cpp
+++ b/src/mame/video/ampoker2.cpp
@@ -117,7 +117,7 @@ void ampoker2_state::ampoker2_palette(palette_device &palette) const
}
}
-WRITE8_MEMBER(ampoker2_state::videoram_w)
+void ampoker2_state::videoram_w(offs_t offset, uint8_t data)
{
m_videoram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset / 2);
diff --git a/src/mame/video/amspdwy.cpp b/src/mame/video/amspdwy.cpp
index 4b3f56f3063..612d3703bd3 100644
--- a/src/mame/video/amspdwy.cpp
+++ b/src/mame/video/amspdwy.cpp
@@ -18,7 +18,7 @@
#include "includes/amspdwy.h"
-WRITE8_MEMBER(amspdwy_state::amspdwy_flipscreen_w)
+void amspdwy_state::amspdwy_flipscreen_w(uint8_t data)
{
m_flipscreen ^= 1;
flip_screen_set(m_flipscreen);
@@ -47,13 +47,13 @@ TILE_GET_INFO_MEMBER(amspdwy_state::get_tile_info)
0);
}
-WRITE8_MEMBER(amspdwy_state::amspdwy_videoram_w)
+void amspdwy_state::amspdwy_videoram_w(offs_t offset, uint8_t data)
{
m_videoram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(amspdwy_state::amspdwy_colorram_w)
+void amspdwy_state::amspdwy_colorram_w(offs_t offset, uint8_t data)
{
m_colorram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset);
diff --git a/src/mame/video/angelkds.cpp b/src/mame/video/angelkds.cpp
index 95bf08aa7e7..13e72c78934 100644
--- a/src/mame/video/angelkds.cpp
+++ b/src/mame/video/angelkds.cpp
@@ -25,13 +25,13 @@ TILE_GET_INFO_MEMBER(angelkds_state::get_tx_tile_info)
tileinfo.set(0, tileno, 0, 0);
}
-WRITE8_MEMBER(angelkds_state::angelkds_txvideoram_w)
+void angelkds_state::angelkds_txvideoram_w(offs_t offset, uint8_t data)
{
m_txvideoram[offset] = data;
m_tx_tilemap->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(angelkds_state::angelkds_txbank_write)
+void angelkds_state::angelkds_txbank_write(uint8_t data)
{
if (m_txbank != data)
{
@@ -54,13 +54,13 @@ TILE_GET_INFO_MEMBER(angelkds_state::get_bgtop_tile_info)
tileinfo.set(1, tileno, 0, 0);
}
-WRITE8_MEMBER(angelkds_state::angelkds_bgtopvideoram_w)
+void angelkds_state::angelkds_bgtopvideoram_w(offs_t offset, uint8_t data)
{
m_bgtopvideoram[offset] = data;
m_bgtop_tilemap->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(angelkds_state::angelkds_bgtopbank_write)
+void angelkds_state::angelkds_bgtopbank_write(uint8_t data)
{
if (m_bgtopbank != data)
{
@@ -69,7 +69,7 @@ WRITE8_MEMBER(angelkds_state::angelkds_bgtopbank_write)
}
}
-WRITE8_MEMBER(angelkds_state::angelkds_bgtopscroll_write)
+void angelkds_state::angelkds_bgtopscroll_write(uint8_t data)
{
m_bgtop_tilemap->set_scrollx(0, data);
}
@@ -88,14 +88,14 @@ TILE_GET_INFO_MEMBER(angelkds_state::get_bgbot_tile_info)
tileinfo.set(2, tileno, 1, 0);
}
-WRITE8_MEMBER(angelkds_state::angelkds_bgbotvideoram_w)
+void angelkds_state::angelkds_bgbotvideoram_w(offs_t offset, uint8_t data)
{
m_bgbotvideoram[offset] = data;
m_bgbot_tilemap->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(angelkds_state::angelkds_bgbotbank_write)
+void angelkds_state::angelkds_bgbotbank_write(uint8_t data)
{
if (m_bgbotbank != data)
{
@@ -104,13 +104,13 @@ WRITE8_MEMBER(angelkds_state::angelkds_bgbotbank_write)
}
}
-WRITE8_MEMBER(angelkds_state::angelkds_bgbotscroll_write)
+void angelkds_state::angelkds_bgbotscroll_write(uint8_t data)
{
m_bgbot_tilemap->set_scrollx(0, data);
}
-WRITE8_MEMBER(angelkds_state::angelkds_layer_ctrl_write)
+void angelkds_state::angelkds_layer_ctrl_write(uint8_t data)
{
m_layer_ctrl = data;
}
diff --git a/src/mame/video/apollo.cpp b/src/mame/video/apollo.cpp
index 5a24cda3962..e4124bab8cd 100644
--- a/src/mame/video/apollo.cpp
+++ b/src/mame/video/apollo.cpp
@@ -728,7 +728,7 @@ void apollo_graphics_15i::set_lut_cr(uint8_t data)
}
}
-READ8_MEMBER( apollo_graphics_15i::apollo_mcr_r )
+uint8_t apollo_graphics_15i::apollo_mcr_r(offs_t offset)
{
uint8_t data;
switch (offset & 0x407)
@@ -773,7 +773,7 @@ READ8_MEMBER( apollo_graphics_15i::apollo_mcr_r )
return data;
}
-WRITE8_MEMBER( apollo_graphics_15i::apollo_mcr_w )
+void apollo_graphics_15i::apollo_mcr_w(offs_t offset, uint8_t data)
{
MLOG1(("writing Graphics Controller at offset %03x = %02x (%s)", offset, data, cr_text(offset, data, 0)));
switch (offset & 0x407)
@@ -999,7 +999,7 @@ void apollo_graphics_15i::blt(uint32_t dest_addr, uint16_t mem_mask)
Color graphics memory space at A0000 - BFFFF
***************************************************************************/
-READ16_MEMBER( apollo_graphics_15i::apollo_mem_r )
+uint16_t apollo_graphics_15i::apollo_mem_r(offs_t offset, uint16_t mem_mask)
{
uint16_t data;
uint32_t src_addr;
@@ -1038,7 +1038,7 @@ READ16_MEMBER( apollo_graphics_15i::apollo_mem_r )
return data;
}
-WRITE16_MEMBER( apollo_graphics_15i::apollo_mem_w )
+void apollo_graphics_15i::apollo_mem_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
uint32_t dest_addr;
uint32_t src_addr;
@@ -1156,7 +1156,7 @@ WRITE16_MEMBER( apollo_graphics_15i::apollo_mem_w )
Color Screen
***************************************************************************/
-READ8_MEMBER( apollo_graphics_15i::apollo_ccr_r )
+uint8_t apollo_graphics_15i::apollo_ccr_r(offs_t offset)
{
uint8_t data;
@@ -1171,7 +1171,7 @@ READ8_MEMBER( apollo_graphics_15i::apollo_ccr_r )
data = m_ad_result;
break;
default:
- return apollo_mcr_r(space, offset, mem_mask);
+ return apollo_mcr_r(offset);
}
}
else if (m_n_planes == 8)
@@ -1230,7 +1230,7 @@ READ8_MEMBER( apollo_graphics_15i::apollo_ccr_r )
data = m_cr3b;
break;
default:
- return apollo_mcr_r(space, offset, mem_mask);
+ return apollo_mcr_r(offset);
}
}
else
@@ -1398,7 +1398,7 @@ uint8_t apollo_graphics_15i::c8p_read_adc(uint8_t data)
return value;
}
-WRITE8_MEMBER( apollo_graphics_15i::apollo_ccr_w )
+void apollo_graphics_15i::apollo_ccr_w(offs_t offset, uint8_t data)
{
static const uint8_t rgb_value[16] =
{ 0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xaa, 0xbb,
@@ -1439,7 +1439,7 @@ WRITE8_MEMBER( apollo_graphics_15i::apollo_ccr_w )
m_sr |= SR_DONE;
break;
default:
- apollo_mcr_w(space, offset, data, mem_mask);
+ apollo_mcr_w(offset, data);
return;
}
}
@@ -1514,7 +1514,7 @@ WRITE8_MEMBER( apollo_graphics_15i::apollo_ccr_w )
set_cr3b(data);
break;
default:
- apollo_mcr_w(space, offset, data, mem_mask);
+ apollo_mcr_w(offset, data);
return;
}
}
@@ -1522,11 +1522,11 @@ WRITE8_MEMBER( apollo_graphics_15i::apollo_ccr_w )
MLOG1(("writing Color Graphics Controller at offset %03x = %02x (%s)", offset, data, cr_text(offset, data, 0)));
}
-READ16_MEMBER( apollo_graphics_15i::apollo_cgm_r )
+uint16_t apollo_graphics_15i::apollo_cgm_r(offs_t offset, uint16_t mem_mask)
{
if (!is_mono())
{
- return apollo_mem_r(space, offset, mem_mask);
+ return apollo_mem_r(offset, mem_mask);
}
else
{
@@ -1534,11 +1534,11 @@ READ16_MEMBER( apollo_graphics_15i::apollo_cgm_r )
}
}
-WRITE16_MEMBER( apollo_graphics_15i::apollo_cgm_w )
+void apollo_graphics_15i::apollo_cgm_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
if (!is_mono())
{
- apollo_mem_w(space, offset, data, mem_mask);
+ apollo_mem_w(offset, data, mem_mask);
}
}
@@ -1940,11 +1940,11 @@ void apollo_graphics_19i::device_reset()
}
-READ16_MEMBER( apollo_graphics_15i::apollo_mgm_r )
+uint16_t apollo_graphics_15i::apollo_mgm_r(offs_t offset, uint16_t mem_mask)
{
if (is_mono())
{
- return apollo_mem_r(space, offset, mem_mask);
+ return apollo_mem_r(offset, mem_mask);
}
else
{
@@ -1952,10 +1952,10 @@ READ16_MEMBER( apollo_graphics_15i::apollo_mgm_r )
}
}
-WRITE16_MEMBER( apollo_graphics_15i::apollo_mgm_w )
+void apollo_graphics_15i::apollo_mgm_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
if (is_mono())
{
- apollo_mem_w(space, offset, data, mem_mask);
+ apollo_mem_w(offset, data, mem_mask);
}
}
diff --git a/src/mame/video/appoooh.cpp b/src/mame/video/appoooh.cpp
index 655f2e25aad..59c1bfa62c6 100644
--- a/src/mame/video/appoooh.cpp
+++ b/src/mame/video/appoooh.cpp
@@ -135,37 +135,37 @@ void appoooh_state::video_start()
save_item(NAME(m_priority));
}
-WRITE8_MEMBER(appoooh_state::scroll_w)
+void appoooh_state::scroll_w(uint8_t data)
{
m_scroll_x = data;
}
-WRITE8_MEMBER(appoooh_state::fg_videoram_w)
+void appoooh_state::fg_videoram_w(offs_t offset, uint8_t data)
{
m_fg_videoram[offset] = data;
m_fg_tilemap->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(appoooh_state::fg_colorram_w)
+void appoooh_state::fg_colorram_w(offs_t offset, uint8_t data)
{
m_fg_colorram[offset] = data;
m_fg_tilemap->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(appoooh_state::bg_videoram_w)
+void appoooh_state::bg_videoram_w(offs_t offset, uint8_t data)
{
m_bg_videoram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(appoooh_state::bg_colorram_w)
+void appoooh_state::bg_colorram_w(offs_t offset, uint8_t data)
{
m_bg_colorram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(appoooh_state::out_w)
+void appoooh_state::out_w(uint8_t data)
{
/* bit 0 controls NMI */
m_nmi_mask = data & 1;
diff --git a/src/mame/video/aquarius.cpp b/src/mame/video/aquarius.cpp
index 67b6a99bb2d..8241282c106 100644
--- a/src/mame/video/aquarius.cpp
+++ b/src/mame/video/aquarius.cpp
@@ -41,14 +41,13 @@ void aquarius_state::aquarius_palette(palette_device &palette) const
palette.set_pen_indirect(i, aquarius_pens[i]);
}
-WRITE8_MEMBER(aquarius_state::aquarius_videoram_w)
+void aquarius_state::aquarius_videoram_w(offs_t offset, uint8_t data)
{
- uint8_t *videoram = m_videoram;
- videoram[offset] = data;
+ m_videoram[offset] = data;
m_tilemap->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(aquarius_state::aquarius_colorram_w)
+void aquarius_state::aquarius_colorram_w(offs_t offset, uint8_t data)
{
m_colorram[offset] = data;
m_tilemap->mark_tile_dirty(offset);
@@ -56,9 +55,8 @@ WRITE8_MEMBER(aquarius_state::aquarius_colorram_w)
TILE_GET_INFO_MEMBER(aquarius_state::aquarius_gettileinfo)
{
- uint8_t *videoram = m_videoram;
int bank = 0;
- int code = videoram[tile_index];
+ int code = m_videoram[tile_index];
int color = m_colorram[tile_index];
int flags = 0;
diff --git a/src/mame/video/arabian.cpp b/src/mame/video/arabian.cpp
index 5e68b8cb240..79eba00ca0c 100644
--- a/src/mame/video/arabian.cpp
+++ b/src/mame/video/arabian.cpp
@@ -263,7 +263,7 @@ void arabian_state::blit_area( uint8_t plane, uint16_t src, uint8_t x, uint8_t y
*
*************************************/
-WRITE8_MEMBER(arabian_state::arabian_blitter_w)
+void arabian_state::arabian_blitter_w(offs_t offset, uint8_t data)
{
/* write the data */
m_blitter[offset] = data;
@@ -292,7 +292,7 @@ WRITE8_MEMBER(arabian_state::arabian_blitter_w)
*
*************************************/
-WRITE8_MEMBER(arabian_state::arabian_videoram_w)
+void arabian_state::arabian_videoram_w(offs_t offset, uint8_t data)
{
uint8_t *base;
uint8_t x, y;
diff --git a/src/mame/video/arkanoid.cpp b/src/mame/video/arkanoid.cpp
index 1dea7095915..df5984f9322 100644
--- a/src/mame/video/arkanoid.cpp
+++ b/src/mame/video/arkanoid.cpp
@@ -2,7 +2,7 @@
// copyright-holders:Brad Oliver
/***************************************************************************
- video.c
+ arkanoid.cpp
Functions to emulate the video hardware of the machine.
@@ -12,13 +12,13 @@
#include "includes/arkanoid.h"
-WRITE8_MEMBER(arkanoid_state::arkanoid_videoram_w)
+void arkanoid_state::arkanoid_videoram_w(offs_t offset, uint8_t data)
{
m_videoram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset / 2);
}
-WRITE8_MEMBER(arkanoid_state::arkanoid_d008_w)
+void arkanoid_state::arkanoid_d008_w(uint8_t data)
{
int bank;
@@ -60,7 +60,7 @@ WRITE8_MEMBER(arkanoid_state::arkanoid_d008_w)
}
-WRITE8_MEMBER(arkanoid_state::brixian_d008_w)
+void arkanoid_state::brixian_d008_w(uint8_t data)
{
int bank;
@@ -100,7 +100,7 @@ WRITE8_MEMBER(arkanoid_state::brixian_d008_w)
/* different hook-up, everything except for bits 0-1 and 7 aren't tested afaik. */
-WRITE8_MEMBER(arkanoid_state::tetrsark_d008_w)
+void arkanoid_state::tetrsark_d008_w(uint8_t data)
{
int bank;
@@ -137,7 +137,7 @@ WRITE8_MEMBER(arkanoid_state::tetrsark_d008_w)
}
-WRITE8_MEMBER(arkanoid_state::hexa_d008_w)
+void arkanoid_state::hexa_d008_w(uint8_t data)
{
/* bits 0 and 1 flip X and Y */
flip_screen_x_set(data & 0x01);
diff --git a/src/mame/video/artmagic.cpp b/src/mame/video/artmagic.cpp
index 389ecc34091..1060e828688 100644
--- a/src/mame/video/artmagic.cpp
+++ b/src/mame/video/artmagic.cpp
@@ -294,7 +294,7 @@ void artmagic_state::execute_blit()
}
-READ16_MEMBER(artmagic_state::blitter_r)
+uint16_t artmagic_state::blitter_r()
{
/*
bit 1 is a busy flag; loops tightly if clear
@@ -310,7 +310,7 @@ READ16_MEMBER(artmagic_state::blitter_r)
}
-WRITE16_MEMBER(artmagic_state::blitter_w)
+void artmagic_state::blitter_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_blitter_data[offset]);
diff --git a/src/mame/video/asterix.cpp b/src/mame/video/asterix.cpp
index 77f904e3853..22f79e3ce5f 100644
--- a/src/mame/video/asterix.cpp
+++ b/src/mame/video/asterix.cpp
@@ -14,7 +14,7 @@ void asterix_state::reset_spritebank()
m_spritebanks[3] = (m_spritebank << 3) & 0x7000;
}
-WRITE16_MEMBER(asterix_state::asterix_spritebank_w)
+void asterix_state::asterix_spritebank_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_spritebank);
reset_spritebank();
diff --git a/src/mame/video/astrocde.cpp b/src/mame/video/astrocde.cpp
index 74a48a24821..43bb3cb1a97 100644
--- a/src/mame/video/astrocde.cpp
+++ b/src/mame/video/astrocde.cpp
@@ -484,7 +484,7 @@ TIMER_CALLBACK_MEMBER(astrocde_state::scanline_callback)
*
*************************************/
-READ8_MEMBER(astrocde_state::video_register_r)
+uint8_t astrocde_state::video_register_r(offs_t offset)
{
uint8_t result = 0xff;
@@ -509,7 +509,7 @@ READ8_MEMBER(astrocde_state::video_register_r)
}
-WRITE8_MEMBER(astrocde_state::video_register_w)
+void astrocde_state::video_register_w(offs_t offset, uint8_t data)
{
/* these are the core registers */
switch (offset & 0xff)
@@ -589,7 +589,7 @@ WRITE8_MEMBER(astrocde_state::video_register_w)
*
*************************************/
-WRITE8_MEMBER(astrocde_state::astrocade_funcgen_w)
+void astrocde_state::astrocade_funcgen_w(address_space &space, offs_t offset, uint8_t data)
{
uint8_t prev_data;
@@ -677,7 +677,7 @@ WRITE8_MEMBER(astrocde_state::astrocade_funcgen_w)
}
-WRITE8_MEMBER(astrocde_state::expand_register_w)
+void astrocde_state::expand_register_w(uint8_t data)
{
m_funcgen_expand_color[0] = data & 0x03;
m_funcgen_expand_color[1] = (data >> 2) & 0x03;
@@ -818,7 +818,7 @@ void astrocde_state::execute_blit()
}
-WRITE8_MEMBER(astrocde_state::astrocade_pattern_board_w)
+void astrocde_state::astrocade_pattern_board_w(offs_t offset, uint8_t data)
{
switch (offset)
{
@@ -933,7 +933,7 @@ void astrocde_state::init_sparklestar()
*
*************************************/
-WRITE8_MEMBER(astrocde_state::profpac_page_select_w)
+void astrocde_state::profpac_page_select_w(uint8_t data)
{
m_profpac_readpage = data & 3;
m_profpac_writepage = (data >> 2) & 3;
@@ -941,13 +941,13 @@ WRITE8_MEMBER(astrocde_state::profpac_page_select_w)
}
-READ8_MEMBER(astrocde_state::profpac_intercept_r)
+uint8_t astrocde_state::profpac_intercept_r()
{
return m_profpac_intercept;
}
-WRITE8_MEMBER(astrocde_state::profpac_screenram_ctrl_w)
+void astrocde_state::profpac_screenram_ctrl_w(offs_t offset, uint8_t data)
{
switch (offset)
{
@@ -988,7 +988,7 @@ WRITE8_MEMBER(astrocde_state::profpac_screenram_ctrl_w)
*
*************************************/
-READ8_MEMBER(astrocde_state::profpac_videoram_r)
+uint8_t astrocde_state::profpac_videoram_r(offs_t offset)
{
uint16_t temp = m_profpac_videoram[m_profpac_readpage * 0x4000 + offset] >> m_profpac_readshift;
return ((temp >> 6) & 0xc0) | ((temp >> 4) & 0x30) | ((temp >> 2) & 0x0c) | ((temp >> 0) & 0x03);
@@ -996,7 +996,7 @@ READ8_MEMBER(astrocde_state::profpac_videoram_r)
/* All this information comes from decoding the PLA at U39 on the screen ram board */
-WRITE8_MEMBER(astrocde_state::profpac_videoram_w)
+void astrocde_state::profpac_videoram_w(offs_t offset, uint8_t data)
{
uint16_t oldbits = m_profpac_videoram[m_profpac_writepage * 0x4000 + offset];
uint16_t newbits, result = 0;
diff --git a/src/mame/video/atarifb.cpp b/src/mame/video/atarifb.cpp
index 136efd8ef10..b773aa60c2d 100644
--- a/src/mame/video/atarifb.cpp
+++ b/src/mame/video/atarifb.cpp
@@ -58,21 +58,21 @@ TILE_GET_INFO_MEMBER(atarifb_state::field_get_tile_info)
*
*************************************/
-WRITE8_MEMBER(atarifb_state::atarifb_alpha1_videoram_w)
+void atarifb_state::atarifb_alpha1_videoram_w(offs_t offset, uint8_t data)
{
m_alphap1_videoram[offset] = data;
m_alpha1_tilemap->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(atarifb_state::atarifb_alpha2_videoram_w)
+void atarifb_state::atarifb_alpha2_videoram_w(offs_t offset, uint8_t data)
{
m_alphap2_videoram[offset] = data;
m_alpha2_tilemap->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(atarifb_state::atarifb_field_videoram_w)
+void atarifb_state::atarifb_field_videoram_w(offs_t offset, uint8_t data)
{
m_field_videoram[offset] = data;
m_field_tilemap->mark_tile_dirty(offset);
diff --git a/src/mame/video/atarigx2.cpp b/src/mame/video/atarigx2.cpp
index aff4e83dfb6..870fbbe9b42 100644
--- a/src/mame/video/atarigx2.cpp
+++ b/src/mame/video/atarigx2.cpp
@@ -88,7 +88,7 @@ void atarigx2_state::video_start()
*
*************************************/
-WRITE16_MEMBER( atarigx2_state::atarigx2_mo_control_w )
+void atarigx2_state::atarigx2_mo_control_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
logerror("MOCONT = %d (scan = %d)\n", data, m_screen->vpos());
diff --git a/src/mame/video/atarist.cpp b/src/mame/video/atarist.cpp
index 11285b4872e..89f0d060ece 100644
--- a/src/mame/video/atarist.cpp
+++ b/src/mame/video/atarist.cpp
@@ -317,7 +317,7 @@ void st_state::set_screen_parameters()
// shifter_base_r -
//-------------------------------------------------
-READ8_MEMBER( st_state::shifter_base_r )
+uint8_t st_state::shifter_base_r(offs_t offset)
{
uint8_t data = 0;
@@ -340,7 +340,7 @@ READ8_MEMBER( st_state::shifter_base_r )
// shifter_base_w -
//-------------------------------------------------
-WRITE8_MEMBER( st_state::shifter_base_w )
+void st_state::shifter_base_w(offs_t offset, uint8_t data)
{
switch (offset)
{
@@ -361,7 +361,7 @@ WRITE8_MEMBER( st_state::shifter_base_w )
// shifter_counter_r -
//-------------------------------------------------
-READ8_MEMBER( st_state::shifter_counter_r )
+uint8_t st_state::shifter_counter_r(offs_t offset)
{
uint8_t data = 0;
@@ -388,7 +388,7 @@ READ8_MEMBER( st_state::shifter_counter_r )
// shifter_sync_r -
//-------------------------------------------------
-READ8_MEMBER( st_state::shifter_sync_r )
+uint8_t st_state::shifter_sync_r()
{
return m_shifter_sync;
}
@@ -398,7 +398,7 @@ READ8_MEMBER( st_state::shifter_sync_r )
// shifter_sync_w -
//-------------------------------------------------
-WRITE8_MEMBER( st_state::shifter_sync_w )
+void st_state::shifter_sync_w(uint8_t data)
{
m_shifter_sync = data;
logerror("SHIFTER Sync %x\n", m_shifter_sync);
@@ -410,7 +410,7 @@ WRITE8_MEMBER( st_state::shifter_sync_w )
// shifter_mode_r -
//-------------------------------------------------
-READ8_MEMBER( st_state::shifter_mode_r )
+uint8_t st_state::shifter_mode_r()
{
return m_shifter_mode;
}
@@ -420,7 +420,7 @@ READ8_MEMBER( st_state::shifter_mode_r )
// shifter_mode_w -
//-------------------------------------------------
-WRITE8_MEMBER( st_state::shifter_mode_w )
+void st_state::shifter_mode_w(uint8_t data)
{
m_shifter_mode = data;
logerror("SHIFTER Mode %x\n", m_shifter_mode);
@@ -431,7 +431,7 @@ WRITE8_MEMBER( st_state::shifter_mode_w )
// shifter_palette_r -
//-------------------------------------------------
-READ16_MEMBER( st_state::shifter_palette_r )
+uint16_t st_state::shifter_palette_r(offs_t offset)
{
return m_shifter_palette[offset] | 0xf888;
}
@@ -441,7 +441,7 @@ READ16_MEMBER( st_state::shifter_palette_r )
// shifter_palette_w -
//-------------------------------------------------
-WRITE16_MEMBER( st_state::shifter_palette_w )
+void st_state::shifter_palette_w(offs_t offset, uint16_t data)
{
m_shifter_palette[offset] = data;
// logerror("SHIFTER Palette[%x] = %x\n", offset, data);
@@ -459,7 +459,7 @@ WRITE16_MEMBER( st_state::shifter_palette_w )
// shifter_base_low_r -
//-------------------------------------------------
-READ8_MEMBER( ste_state::shifter_base_low_r )
+uint8_t ste_state::shifter_base_low_r()
{
return m_shifter_base & 0xfe;
}
@@ -469,7 +469,7 @@ READ8_MEMBER( ste_state::shifter_base_low_r )
// shifter_base_low_w -
//-------------------------------------------------
-WRITE8_MEMBER( ste_state::shifter_base_low_w )
+void ste_state::shifter_base_low_w(uint8_t data)
{
m_shifter_base = (m_shifter_base & 0x3fff00) | (data & 0xfe);
logerror("SHIFTER Video Base Address %06x\n", m_shifter_base);
@@ -480,7 +480,7 @@ WRITE8_MEMBER( ste_state::shifter_base_low_w )
// shifter_counter_r -
//-------------------------------------------------
-READ8_MEMBER( ste_state::shifter_counter_r )
+uint8_t ste_state::shifter_counter_r(offs_t offset)
{
uint8_t data = 0;
@@ -507,7 +507,7 @@ READ8_MEMBER( ste_state::shifter_counter_r )
// shifter_counter_w -
//-------------------------------------------------
-WRITE8_MEMBER( ste_state::shifter_counter_w )
+void ste_state::shifter_counter_w(offs_t offset, uint8_t data)
{
switch (offset)
{
@@ -533,7 +533,7 @@ WRITE8_MEMBER( ste_state::shifter_counter_w )
// shifter_palette_w -
//-------------------------------------------------
-WRITE16_MEMBER( ste_state::shifter_palette_w )
+void ste_state::shifter_palette_w(offs_t offset, uint16_t data)
{
int r = ((data >> 7) & 0x0e) | BIT(data, 11);
int g = ((data >> 3) & 0x0e) | BIT(data, 7);
@@ -550,7 +550,7 @@ WRITE16_MEMBER( ste_state::shifter_palette_w )
// shifter_lineofs_r -
//-------------------------------------------------
-READ8_MEMBER( ste_state::shifter_lineofs_r )
+uint8_t ste_state::shifter_lineofs_r()
{
return m_shifter_lineofs;
}
@@ -560,7 +560,7 @@ READ8_MEMBER( ste_state::shifter_lineofs_r )
// shifter_lineofs_w -
//-------------------------------------------------
-WRITE8_MEMBER( ste_state::shifter_lineofs_w )
+void ste_state::shifter_lineofs_w(uint8_t data)
{
m_shifter_lineofs = data;
logerror("SHIFTER Line Offset %x\n", m_shifter_lineofs);
@@ -571,7 +571,7 @@ WRITE8_MEMBER( ste_state::shifter_lineofs_w )
// shifter_pixelofs_r -
//-------------------------------------------------
-READ8_MEMBER( ste_state::shifter_pixelofs_r )
+uint8_t ste_state::shifter_pixelofs_r()
{
return m_shifter_pixelofs;
}
@@ -581,7 +581,7 @@ READ8_MEMBER( ste_state::shifter_pixelofs_r )
// shifter_pixelofs_w -
//-------------------------------------------------
-WRITE8_MEMBER( ste_state::shifter_pixelofs_w )
+void ste_state::shifter_pixelofs_w(uint8_t data)
{
m_shifter_pixelofs = data & 0x0f;
logerror("SHIFTER Pixel Offset %x\n", m_shifter_pixelofs);
@@ -731,7 +731,7 @@ void st_state::blitter_tick()
// blitter_halftone_r -
//-------------------------------------------------
-READ16_MEMBER( st_state::blitter_halftone_r )
+uint16_t st_state::blitter_halftone_r(offs_t offset)
{
return m_blitter_halftone[offset];
}
@@ -741,7 +741,7 @@ READ16_MEMBER( st_state::blitter_halftone_r )
// blitter_src_inc_x_r -
//-------------------------------------------------
-READ16_MEMBER( st_state::blitter_src_inc_x_r )
+uint16_t st_state::blitter_src_inc_x_r()
{
return m_blitter_src_inc_x;
}
@@ -751,7 +751,7 @@ READ16_MEMBER( st_state::blitter_src_inc_x_r )
// blitter_src_inc_y_r -
//-------------------------------------------------
-READ16_MEMBER( st_state::blitter_src_inc_y_r )
+uint16_t st_state::blitter_src_inc_y_r()
{
return m_blitter_src_inc_y;
}
@@ -761,7 +761,7 @@ READ16_MEMBER( st_state::blitter_src_inc_y_r )
// blitter_src_r -
//-------------------------------------------------
-READ16_MEMBER( st_state::blitter_src_r )
+uint16_t st_state::blitter_src_r(offs_t offset)
{
switch (offset)
{
@@ -779,7 +779,7 @@ READ16_MEMBER( st_state::blitter_src_r )
// blitter_end_mask_r -
//-------------------------------------------------
-READ16_MEMBER( st_state::blitter_end_mask_r )
+uint16_t st_state::blitter_end_mask_r(offs_t offset)
{
switch (offset)
{
@@ -799,7 +799,7 @@ READ16_MEMBER( st_state::blitter_end_mask_r )
// blitter_dst_inc_x_r -
//-------------------------------------------------
-READ16_MEMBER( st_state::blitter_dst_inc_x_r )
+uint16_t st_state::blitter_dst_inc_x_r()
{
return m_blitter_dst_inc_x;
}
@@ -809,7 +809,7 @@ READ16_MEMBER( st_state::blitter_dst_inc_x_r )
// blitter_dst_inc_y_r -
//-------------------------------------------------
-READ16_MEMBER( st_state::blitter_dst_inc_y_r )
+uint16_t st_state::blitter_dst_inc_y_r()
{
return m_blitter_dst_inc_y;
}
@@ -819,7 +819,7 @@ READ16_MEMBER( st_state::blitter_dst_inc_y_r )
// blitter_dst_r -
//-------------------------------------------------
-READ16_MEMBER( st_state::blitter_dst_r )
+uint16_t st_state::blitter_dst_r(offs_t offset)
{
switch (offset)
{
@@ -837,7 +837,7 @@ READ16_MEMBER( st_state::blitter_dst_r )
// blitter_count_x_r -
//-------------------------------------------------
-READ16_MEMBER( st_state::blitter_count_x_r )
+uint16_t st_state::blitter_count_x_r()
{
return m_blitter_xcount;
}
@@ -847,7 +847,7 @@ READ16_MEMBER( st_state::blitter_count_x_r )
// blitter_count_y_r -
//-------------------------------------------------
-READ16_MEMBER( st_state::blitter_count_y_r )
+uint16_t st_state::blitter_count_y_r()
{
return m_blitter_ycount;
}
@@ -857,7 +857,7 @@ READ16_MEMBER( st_state::blitter_count_y_r )
// blitter_op_r -
//-------------------------------------------------
-READ16_MEMBER( st_state::blitter_op_r )
+uint16_t st_state::blitter_op_r(offs_t offset, uint16_t mem_mask)
{
if (ACCESSING_BITS_0_7)
{
@@ -874,7 +874,7 @@ READ16_MEMBER( st_state::blitter_op_r )
// blitter_ctrl_r -
//-------------------------------------------------
-READ16_MEMBER( st_state::blitter_ctrl_r )
+uint16_t st_state::blitter_ctrl_r(offs_t offset, uint16_t mem_mask)
{
if (ACCESSING_BITS_0_7)
{
@@ -891,7 +891,7 @@ READ16_MEMBER( st_state::blitter_ctrl_r )
// blitter_halftone_w -
//-------------------------------------------------
-WRITE16_MEMBER( st_state::blitter_halftone_w )
+void st_state::blitter_halftone_w(offs_t offset, uint16_t data)
{
m_blitter_halftone[offset] = data;
}
@@ -901,7 +901,7 @@ WRITE16_MEMBER( st_state::blitter_halftone_w )
// blitter_src_inc_x_w -
//-------------------------------------------------
-WRITE16_MEMBER( st_state::blitter_src_inc_x_w )
+void st_state::blitter_src_inc_x_w(uint16_t data)
{
m_blitter_src_inc_x = data & 0xfffe;
}
@@ -911,7 +911,7 @@ WRITE16_MEMBER( st_state::blitter_src_inc_x_w )
// blitter_src_inc_y_w -
//-------------------------------------------------
-WRITE16_MEMBER( st_state::blitter_src_inc_y_w )
+void st_state::blitter_src_inc_y_w(uint16_t data)
{
m_blitter_src_inc_y = data & 0xfffe;
}
@@ -921,7 +921,7 @@ WRITE16_MEMBER( st_state::blitter_src_inc_y_w )
// blitter_src_w -
//-------------------------------------------------
-WRITE16_MEMBER( st_state::blitter_src_w )
+void st_state::blitter_src_w(offs_t offset, uint16_t data)
{
switch (offset)
{
@@ -940,7 +940,7 @@ WRITE16_MEMBER( st_state::blitter_src_w )
// blitter_end_mask_w -
//-------------------------------------------------
-WRITE16_MEMBER( st_state::blitter_end_mask_w )
+void st_state::blitter_end_mask_w(offs_t offset, uint16_t data)
{
switch (offset)
{
@@ -963,7 +963,7 @@ WRITE16_MEMBER( st_state::blitter_end_mask_w )
// blitter_dst_inc_x_w -
//-------------------------------------------------
-WRITE16_MEMBER( st_state::blitter_dst_inc_x_w )
+void st_state::blitter_dst_inc_x_w(uint16_t data)
{
m_blitter_dst_inc_x = data & 0xfffe;
}
@@ -973,7 +973,7 @@ WRITE16_MEMBER( st_state::blitter_dst_inc_x_w )
// blitter_dst_inc_y_w -
//-------------------------------------------------
-WRITE16_MEMBER( st_state::blitter_dst_inc_y_w )
+void st_state::blitter_dst_inc_y_w(uint16_t data)
{
m_blitter_dst_inc_y = data & 0xfffe;
}
@@ -983,7 +983,7 @@ WRITE16_MEMBER( st_state::blitter_dst_inc_y_w )
// blitter_dst_w -
//-------------------------------------------------
-WRITE16_MEMBER( st_state::blitter_dst_w )
+void st_state::blitter_dst_w(offs_t offset, uint16_t data)
{
switch (offset)
{
@@ -1002,7 +1002,7 @@ WRITE16_MEMBER( st_state::blitter_dst_w )
// blitter_count_x_w -
//-------------------------------------------------
-WRITE16_MEMBER( st_state::blitter_count_x_w )
+void st_state::blitter_count_x_w(uint16_t data)
{
m_blitter_xcount = data;
}
@@ -1012,7 +1012,7 @@ WRITE16_MEMBER( st_state::blitter_count_x_w )
// blitter_count_y_w -
//-------------------------------------------------
-WRITE16_MEMBER( st_state::blitter_count_y_w )
+void st_state::blitter_count_y_w(uint16_t data)
{
m_blitter_ycount = data;
}
@@ -1022,7 +1022,7 @@ WRITE16_MEMBER( st_state::blitter_count_y_w )
// blitter_op_w -
//-------------------------------------------------
-WRITE16_MEMBER( st_state::blitter_op_w )
+void st_state::blitter_op_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
if (ACCESSING_BITS_0_7)
{
@@ -1039,7 +1039,7 @@ WRITE16_MEMBER( st_state::blitter_op_w )
// blitter_ctrl_w -
//-------------------------------------------------
-WRITE16_MEMBER( st_state::blitter_ctrl_w )
+void st_state::blitter_ctrl_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
if (ACCESSING_BITS_0_7)
{
diff --git a/src/mame/video/atarisy1.cpp b/src/mame/video/atarisy1.cpp
index ef579908e9c..44a7129aff6 100644
--- a/src/mame/video/atarisy1.cpp
+++ b/src/mame/video/atarisy1.cpp
@@ -235,7 +235,7 @@ void atarisy1_state::bankselect_w(uint8_t data)
*
*************************************/
-WRITE16_MEMBER( atarisy1_state::atarisy1_priority_w )
+void atarisy1_state::atarisy1_priority_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
uint16_t oldpens = m_playfield_priority_pens;
uint16_t newpens = oldpens;
@@ -255,7 +255,7 @@ WRITE16_MEMBER( atarisy1_state::atarisy1_priority_w )
*
*************************************/
-WRITE16_MEMBER( atarisy1_state::atarisy1_xscroll_w )
+void atarisy1_state::atarisy1_xscroll_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
uint16_t oldscroll = *m_xscroll;
uint16_t newscroll = oldscroll;
@@ -286,7 +286,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(atarisy1_state::reset_yscroll_callback)
}
-WRITE16_MEMBER( atarisy1_state::atarisy1_yscroll_w )
+void atarisy1_state::atarisy1_yscroll_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
uint16_t oldscroll = *m_yscroll;
uint16_t newscroll = oldscroll;
@@ -320,7 +320,7 @@ WRITE16_MEMBER( atarisy1_state::atarisy1_yscroll_w )
*
*************************************/
-WRITE16_MEMBER( atarisy1_state::atarisy1_spriteram_w )
+void atarisy1_state::atarisy1_spriteram_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
int active_bank = m_mob->bank();
uint16_t *spriteram = m_mob->spriteram();
@@ -392,7 +392,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(atarisy1_state::int3_callback)
*
*************************************/
-READ16_MEMBER( atarisy1_state::atarisy1_int3state_r )
+uint16_t atarisy1_state::atarisy1_int3state_r()
{
return m_scanline_int_state ? 0x0080 : 0x0000;
}
diff --git a/src/mame/video/atarisy2.cpp b/src/mame/video/atarisy2.cpp
index 93e0dc5f468..95c75cfee5b 100644
--- a/src/mame/video/atarisy2.cpp
+++ b/src/mame/video/atarisy2.cpp
@@ -92,7 +92,7 @@ void atarisy2_state::video_start()
*
*************************************/
-WRITE16_MEMBER( atarisy2_state::xscroll_w )
+void atarisy2_state::xscroll_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
uint16_t oldscroll = *m_xscroll;
uint16_t newscroll = oldscroll;
@@ -123,7 +123,7 @@ TIMER_CALLBACK_MEMBER(atarisy2_state::reset_yscroll_callback)
}
-WRITE16_MEMBER( atarisy2_state::yscroll_w )
+void atarisy2_state::yscroll_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
uint16_t oldscroll = *m_yscroll;
uint16_t newscroll = oldscroll;
@@ -187,7 +187,7 @@ rgb_t atarisy2_state::RRRRGGGGBBBBIIII(uint32_t raw)
*
*************************************/
-READ16_MEMBER( atarisy2_state::slapstic_r )
+uint16_t atarisy2_state::slapstic_r(address_space &space, offs_t offset)
{
int result = m_slapstic_base[offset];
m_slapstic->slapstic_tweak(space, offset);
@@ -198,7 +198,7 @@ READ16_MEMBER( atarisy2_state::slapstic_r )
}
-WRITE16_MEMBER( atarisy2_state::slapstic_w )
+void atarisy2_state::slapstic_w(address_space &space, offs_t offset, uint16_t data)
{
m_slapstic->slapstic_tweak(space, offset);
@@ -213,7 +213,7 @@ WRITE16_MEMBER( atarisy2_state::slapstic_w )
*
*************************************/
-WRITE16_MEMBER( atarisy2_state::spriteram_w )
+void atarisy2_state::spriteram_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
/* force an update if the link of object 0 is about to change */
if (offset == 0x0003)
diff --git a/src/mame/video/atetris.cpp b/src/mame/video/atetris.cpp
index cddad9368eb..387bcc4e71e 100644
--- a/src/mame/video/atetris.cpp
+++ b/src/mame/video/atetris.cpp
@@ -18,9 +18,8 @@
TILE_GET_INFO_MEMBER(atetris_state::get_tile_info)
{
- uint8_t *videoram = m_videoram;
- int code = videoram[tile_index * 2] | ((videoram[tile_index * 2 + 1] & 7) << 8);
- int color = (videoram[tile_index * 2 + 1] & 0xf0) >> 4;
+ int code = m_videoram[tile_index * 2] | ((m_videoram[tile_index * 2 + 1] & 7) << 8);
+ int color = (m_videoram[tile_index * 2 + 1] & 0xf0) >> 4;
tileinfo.set(0, code, color, 0);
}
@@ -33,11 +32,9 @@ TILE_GET_INFO_MEMBER(atetris_state::get_tile_info)
*
*************************************/
-WRITE8_MEMBER(atetris_state::videoram_w)
+void atetris_state::videoram_w(offs_t offset, uint8_t data)
{
- uint8_t *videoram = m_videoram;
-
- videoram[offset] = data;
+ m_videoram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset / 2);
}
diff --git a/src/mame/video/aussiebyte.cpp b/src/mame/video/aussiebyte.cpp
index da24476a701..5a24027e773 100644
--- a/src/mame/video/aussiebyte.cpp
+++ b/src/mame/video/aussiebyte.cpp
@@ -21,7 +21,7 @@
************************************************************/
// dummy read port, forces requested action to happen
-READ8_MEMBER( aussiebyte_state::port33_r )
+uint8_t aussiebyte_state::port33_r()
{
return 0xff;
}
@@ -34,17 +34,17 @@ d5 - /SRRD - controls write of data to either vram or aram (1=vram, 0=aram)
d6 - /VWR - 0 = enable write vdata to vram, read from aram to vdata ; 1 = enable write to aram from vdata
d7 - OE on port 35
*/
-WRITE8_MEMBER( aussiebyte_state::port34_w )
+void aussiebyte_state::port34_w(uint8_t data)
{
m_port34 = data;
}
-WRITE8_MEMBER( aussiebyte_state::port35_w )
+void aussiebyte_state::port35_w(uint8_t data)
{
m_port35 = data;
}
-READ8_MEMBER( aussiebyte_state::port36_r )
+uint8_t aussiebyte_state::port36_r()
{
if (BIT(m_port34, 5))
{
@@ -57,7 +57,7 @@ READ8_MEMBER( aussiebyte_state::port36_r )
return m_p_attribram[m_alpha_address & 0x7ff];
}
-READ8_MEMBER( aussiebyte_state::port37_r )
+uint8_t aussiebyte_state::port37_r()
{
return m_crtc->de_r() ? 0xff : 0xfe;
}
@@ -74,7 +74,7 @@ MC6845_ON_UPDATE_ADDR_CHANGED( aussiebyte_state::crtc_update_addr )
// m_video_address = address;// & 0x7ff;
}
-WRITE8_MEMBER( aussiebyte_state::address_w )
+void aussiebyte_state::address_w(uint8_t data)
{
m_crtc->address_w(data);
@@ -98,7 +98,7 @@ WRITE8_MEMBER( aussiebyte_state::address_w )
}
}
-WRITE8_MEMBER( aussiebyte_state::register_w )
+void aussiebyte_state::register_w(uint8_t data)
{
m_crtc->register_w(data);
uint16_t temp = m_alpha_address;
diff --git a/src/mame/video/avigo.cpp b/src/mame/video/avigo.cpp
index ca21f5867e2..5e84eb94e69 100644
--- a/src/mame/video/avigo.cpp
+++ b/src/mame/video/avigo.cpp
@@ -24,7 +24,7 @@
#define LOG(x) do { if (AVIGO_VIDEO_DEBUG) logerror x; } while (0)
-READ8_MEMBER(avigo_state::vid_memory_r)
+uint8_t avigo_state::vid_memory_r(offs_t offset)
{
if (!offset)
return m_screen_column;
@@ -39,7 +39,7 @@ READ8_MEMBER(avigo_state::vid_memory_r)
return m_video_memory[m_screen_column + ((offset&0xff)*(AVIGO_SCREEN_WIDTH>>3))];
}
-WRITE8_MEMBER(avigo_state::vid_memory_w)
+void avigo_state::vid_memory_w(offs_t offset, uint8_t data)
{
if (!offset)
{
diff --git a/src/mame/video/badlands.cpp b/src/mame/video/badlands.cpp
index 067e716ef00..9582a100e23 100644
--- a/src/mame/video/badlands.cpp
+++ b/src/mame/video/badlands.cpp
@@ -82,7 +82,7 @@ VIDEO_START_MEMBER(badlands_state,badlands)
*
*************************************/
-WRITE16_MEMBER( badlands_state::badlands_pf_bank_w )
+void badlands_state::badlands_pf_bank_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
if (ACCESSING_BITS_0_7)
if (m_playfield_tile_bank != (data & 1))
diff --git a/src/mame/video/bagman.cpp b/src/mame/video/bagman.cpp
index 43a137f592f..a520555e60e 100644
--- a/src/mame/video/bagman.cpp
+++ b/src/mame/video/bagman.cpp
@@ -2,7 +2,7 @@
// copyright-holders:Nicola Salmoria
/***************************************************************************
- bagman.c
+ bagman.cpp
Functions to emulate the video hardware of the machine.
@@ -13,13 +13,13 @@
#include "includes/bagman.h"
-WRITE8_MEMBER(bagman_state::videoram_w)
+void bagman_state::videoram_w(offs_t offset, uint8_t data)
{
m_videoram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(bagman_state::colorram_w)
+void bagman_state::colorram_w(offs_t offset, uint8_t data)
{
m_colorram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset);
diff --git a/src/mame/video/balsente.cpp b/src/mame/video/balsente.cpp
index 3027915d902..3b7e65aec1a 100644
--- a/src/mame/video/balsente.cpp
+++ b/src/mame/video/balsente.cpp
@@ -42,7 +42,7 @@ void balsente_state::video_start()
*
*************************************/
-WRITE8_MEMBER(balsente_state::videoram_w)
+void balsente_state::videoram_w(offs_t offset, uint8_t data)
{
/* expand the two pixel values into two bytes */
m_videoram[offset] = data;
@@ -59,7 +59,7 @@ WRITE8_MEMBER(balsente_state::videoram_w)
*
*************************************/
-WRITE8_MEMBER(balsente_state::palette_select_w)
+void balsente_state::palette_select_w(uint8_t data)
{
/* only update if changed */
if (m_palettebank_vis != (data & 3))
@@ -80,7 +80,7 @@ WRITE8_MEMBER(balsente_state::palette_select_w)
*
*************************************/
-WRITE8_MEMBER(balsente_state::paletteram_w)
+void balsente_state::paletteram_w(offs_t offset, uint8_t data)
{
int r, g, b;
@@ -101,7 +101,7 @@ WRITE8_MEMBER(balsente_state::paletteram_w)
*
*************************************/
-WRITE8_MEMBER(balsente_state::shrike_sprite_select_w)
+void balsente_state::shrike_sprite_select_w(uint8_t data)
{
if( m_sprite_data != m_sprite_bank[(data & 0x80 >> 7) ^ 1 ])
{
@@ -110,7 +110,7 @@ WRITE8_MEMBER(balsente_state::shrike_sprite_select_w)
m_sprite_data = m_sprite_bank[(data & 0x80 >> 7) ^ 1];
}
- shrike_shared_6809_w( space, 1, data );
+ shrike_shared_6809_w( 1, data );
}
diff --git a/src/mame/video/bankp.cpp b/src/mame/video/bankp.cpp
index 1843de485b2..73dbf04cd30 100644
--- a/src/mame/video/bankp.cpp
+++ b/src/mame/video/bankp.cpp
@@ -79,36 +79,36 @@ void bankp_state::bankp_palette(palette_device &palette) const
// the bottom half of the PROM seems to be not used
}
-WRITE8_MEMBER(bankp_state::scroll_w)
+void bankp_state::scroll_w(uint8_t data)
{
m_scroll_x = data;
}
-WRITE8_MEMBER(bankp_state::videoram_w)
+void bankp_state::videoram_w(offs_t offset, uint8_t data)
{
m_videoram[offset] = data;
m_fg_tilemap->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(bankp_state::colorram_w)
+void bankp_state::colorram_w(offs_t offset, uint8_t data)
{
m_colorram[offset] = data;
m_fg_tilemap->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(bankp_state::videoram2_w)
+void bankp_state::videoram2_w(offs_t offset, uint8_t data)
{
m_videoram2[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(bankp_state::colorram2_w)
+void bankp_state::colorram2_w(offs_t offset, uint8_t data)
{
m_colorram2[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(bankp_state::out_w)
+void bankp_state::out_w(uint8_t data)
{
/* bits 0-1 are playfield priority */
/* TODO: understand how this works */
diff --git a/src/mame/video/baraduke.cpp b/src/mame/video/baraduke.cpp
index 44811a156ec..1dcd91ee06a 100644
--- a/src/mame/video/baraduke.cpp
+++ b/src/mame/video/baraduke.cpp
@@ -137,30 +137,30 @@ void baraduke_state::video_start()
***************************************************************************/
-READ8_MEMBER(baraduke_state::baraduke_videoram_r)
+uint8_t baraduke_state::baraduke_videoram_r(offs_t offset)
{
return m_videoram[offset];
}
-WRITE8_MEMBER(baraduke_state::baraduke_videoram_w)
+void baraduke_state::baraduke_videoram_w(offs_t offset, uint8_t data)
{
m_videoram[offset] = data;
m_bg_tilemap[offset/0x1000]->mark_tile_dirty((offset&0xfff)/2);
}
-READ8_MEMBER(baraduke_state::baraduke_textram_r)
+uint8_t baraduke_state::baraduke_textram_r(offs_t offset)
{
return m_textram[offset];
}
-WRITE8_MEMBER(baraduke_state::baraduke_textram_w)
+void baraduke_state::baraduke_textram_w(offs_t offset, uint8_t data)
{
m_textram[offset] = data;
m_tx_tilemap->mark_tile_dirty(offset & 0x3ff);
}
-void baraduke_state::scroll_w(address_space &space, int layer, int offset, int data)
+void baraduke_state::scroll_w(int layer, int offset, int data)
{
switch (offset)
{
@@ -176,23 +176,23 @@ void baraduke_state::scroll_w(address_space &space, int layer, int offset, int d
}
}
-WRITE8_MEMBER(baraduke_state::baraduke_scroll0_w)
+void baraduke_state::baraduke_scroll0_w(offs_t offset, uint8_t data)
{
- scroll_w(space, 0, offset, data);
+ scroll_w(0, offset, data);
}
-WRITE8_MEMBER(baraduke_state::baraduke_scroll1_w)
+void baraduke_state::baraduke_scroll1_w(offs_t offset, uint8_t data)
{
- scroll_w(space, 1, offset, data);
+ scroll_w(1, offset, data);
}
-READ8_MEMBER(baraduke_state::baraduke_spriteram_r)
+uint8_t baraduke_state::baraduke_spriteram_r(offs_t offset)
{
return m_spriteram[offset];
}
-WRITE8_MEMBER(baraduke_state::baraduke_spriteram_w)
+void baraduke_state::baraduke_spriteram_w(offs_t offset, uint8_t data)
{
m_spriteram[offset] = data;
diff --git a/src/mame/video/battlane.cpp b/src/mame/video/battlane.cpp
index bf4c28736e6..83de94e3da9 100644
--- a/src/mame/video/battlane.cpp
+++ b/src/mame/video/battlane.cpp
@@ -17,7 +17,7 @@
0x01 = Scroll MSB
*/
-WRITE8_MEMBER(battlane_state::battlane_palette_w)
+void battlane_state::battlane_palette_w(offs_t offset, uint8_t data)
{
int r, g, b;
int bit0, bit1, bit2;
@@ -46,28 +46,28 @@ WRITE8_MEMBER(battlane_state::battlane_palette_w)
m_palette->set_pen_color(offset, rgb_t(r, g, b));
}
-WRITE8_MEMBER(battlane_state::battlane_scrollx_w)
+void battlane_state::battlane_scrollx_w(uint8_t data)
{
m_bg_tilemap->set_scrollx(0, ((m_video_ctrl & 0x01) << 8) + data);
}
-WRITE8_MEMBER(battlane_state::battlane_scrolly_w)
+void battlane_state::battlane_scrolly_w(uint8_t data)
{
m_bg_tilemap->set_scrolly(0, ((m_cpu_control & 0x01) << 8) + data);
}
-WRITE8_MEMBER(battlane_state::battlane_tileram_w)
+void battlane_state::battlane_tileram_w(offs_t offset, uint8_t data)
{
m_tileram[offset] = data;
//m_bg_tilemap->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(battlane_state::battlane_spriteram_w)
+void battlane_state::battlane_spriteram_w(offs_t offset, uint8_t data)
{
m_spriteram[offset] = data;
}
-WRITE8_MEMBER(battlane_state::battlane_bitmap_w)
+void battlane_state::battlane_bitmap_w(offs_t offset, uint8_t data)
{
int i, orval;
@@ -89,7 +89,7 @@ WRITE8_MEMBER(battlane_state::battlane_bitmap_w)
}
}
-WRITE8_MEMBER(battlane_state::battlane_video_ctrl_w)
+void battlane_state::battlane_video_ctrl_w(uint8_t data)
{
m_video_ctrl = data;
}
diff --git a/src/mame/video/battlex.cpp b/src/mame/video/battlex.cpp
index 15508121688..73cfa6351ea 100644
--- a/src/mame/video/battlex.cpp
+++ b/src/mame/video/battlex.cpp
@@ -10,7 +10,7 @@
#include "includes/battlex.h"
-WRITE8_MEMBER(battlex_state::battlex_palette_w)
+void battlex_state::battlex_palette_w(offs_t offset, uint8_t data)
{
int palette_num = offset / 8;
int color_num = offset & 7;
@@ -21,27 +21,27 @@ WRITE8_MEMBER(battlex_state::battlex_palette_w)
m_palette->set_pen_color(64+palette_num*16+color_num+8, pal2bit((data >> 0)&1), pal2bit((data >> 2)&1), pal2bit( (data >> 1) &1));
}
-WRITE8_MEMBER(battlex_state::battlex_scroll_x_lsb_w)
+void battlex_state::battlex_scroll_x_lsb_w(uint8_t data)
{
m_scroll_lsb = data;
}
-WRITE8_MEMBER(battlex_state::battlex_scroll_x_msb_w)
+void battlex_state::battlex_scroll_x_msb_w(uint8_t data)
{
m_scroll_msb = data;
}
-WRITE8_MEMBER(battlex_state::battlex_scroll_starfield_w)
+void battlex_state::battlex_scroll_starfield_w(uint8_t data)
{
}
-WRITE8_MEMBER(battlex_state::battlex_videoram_w)
+void battlex_state::battlex_videoram_w(offs_t offset, uint8_t data)
{
m_videoram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset / 2);
}
-WRITE8_MEMBER(battlex_state::battlex_flipscreen_w)
+void battlex_state::battlex_flipscreen_w(uint8_t data)
{
m_starfield_enabled = data & 0x10;
diff --git a/src/mame/video/battlnts.cpp b/src/mame/video/battlnts.cpp
index 5fa060a2ff7..18850a5d688 100644
--- a/src/mame/video/battlnts.cpp
+++ b/src/mame/video/battlnts.cpp
@@ -28,7 +28,7 @@ K007420_CALLBACK_MEMBER(battlnts_state::battlnts_sprite_callback)
*color = 0;
}
-WRITE8_MEMBER(battlnts_state::battlnts_spritebank_w)
+void battlnts_state::battlnts_spritebank_w(uint8_t data)
{
m_spritebank = 1024 * (data & 1);
}
diff --git a/src/mame/video/bbusters.cpp b/src/mame/video/bbusters.cpp
index 283a8c293a9..9f9132cf9ff 100644
--- a/src/mame/video/bbusters.cpp
+++ b/src/mame/video/bbusters.cpp
@@ -41,7 +41,7 @@ TILE_GET_INFO_MEMBER(bbusters_state_base::get_pf_tile_info)
tileinfo.set(Gfx,tile&0xfff,tile>>12,0);
}
-WRITE16_MEMBER(bbusters_state_base::video_w)
+void bbusters_state_base::video_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_videoram[offset]);
m_fix_tilemap->mark_tile_dirty(offset);
diff --git a/src/mame/video/beathead.cpp b/src/mame/video/beathead.cpp
index daff388b72a..42598de2481 100644
--- a/src/mame/video/beathead.cpp
+++ b/src/mame/video/beathead.cpp
@@ -34,7 +34,7 @@ void beathead_state::video_start()
*
*************************************/
-WRITE32_MEMBER( beathead_state::vram_transparent_w )
+void beathead_state::vram_transparent_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
/* writes to this area appear to handle transparency */
if (!(data & 0x000000ff)) mem_mask &= ~0x000000ff;
@@ -45,7 +45,7 @@ WRITE32_MEMBER( beathead_state::vram_transparent_w )
}
-WRITE32_MEMBER( beathead_state::vram_bulk_w )
+void beathead_state::vram_bulk_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
/* it appears that writes to this area pass in a mask for 4 words in VRAM */
/* allowing them to be filled from a preset latch */
@@ -60,14 +60,14 @@ WRITE32_MEMBER( beathead_state::vram_bulk_w )
}
-WRITE32_MEMBER( beathead_state::vram_latch_w )
+void beathead_state::vram_latch_w(offs_t offset, uint32_t data)
{
/* latch the address */
m_vram_latch_offset = (4 * offset) & 0x7ffff;
}
-WRITE32_MEMBER( beathead_state::vram_copy_w )
+void beathead_state::vram_copy_w(offs_t offset, uint32_t data)
{
/* copy from VRAM to VRAM, for 1024 bytes */
offs_t dest_offset = (4 * offset) & 0x7ffff;
@@ -82,7 +82,7 @@ WRITE32_MEMBER( beathead_state::vram_copy_w )
*
*************************************/
-WRITE32_MEMBER( beathead_state::finescroll_w )
+void beathead_state::finescroll_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
uint32_t oldword = m_finescroll;
uint32_t newword = COMBINE_DATA(&m_finescroll);
@@ -103,7 +103,7 @@ WRITE32_MEMBER( beathead_state::finescroll_w )
*
*************************************/
-READ32_MEMBER( beathead_state::hsync_ram_r )
+uint32_t beathead_state::hsync_ram_r(offs_t offset)
{
/* offset 0 is probably write-only */
if (offset == 0)
@@ -116,7 +116,7 @@ READ32_MEMBER( beathead_state::hsync_ram_r )
return 0;
}
-WRITE32_MEMBER( beathead_state::hsync_ram_w )
+void beathead_state::hsync_ram_w(offs_t offset, uint32_t data, uint32_t mem_mask)
{
/* offset 0 selects the address, and can specify the start address */
if (offset == 0)
diff --git a/src/mame/video/bigevglf.cpp b/src/mame/video/bigevglf.cpp
index 0d22bda8cb1..f7cc450a09f 100644
--- a/src/mame/video/bigevglf.cpp
+++ b/src/mame/video/bigevglf.cpp
@@ -2,7 +2,7 @@
// copyright-holders:Jarek Burczynski, Tomasz Slanina
/***************************************************************************
- video.c
+ bigevglf.cpp
Functions to emulate the video hardware of the machine.
@@ -11,16 +11,14 @@
#include "includes/bigevglf.h"
-WRITE8_MEMBER(bigevglf_state::bigevglf_palette_w)
+void bigevglf_state::bigevglf_palette_w(offs_t offset, uint8_t data)
{
- int color;
-
m_paletteram[offset] = data;
- color = m_paletteram[offset & 0x3ff] | (m_paletteram[0x400 + (offset & 0x3ff)] << 8);
+ int color = m_paletteram[offset & 0x3ff] | (m_paletteram[0x400 + (offset & 0x3ff)] << 8);
m_palette->set_pen_color(offset & 0x3ff, pal4bit(color >> 4), pal4bit(color >> 0), pal4bit(color >> 8));
}
-WRITE8_MEMBER(bigevglf_state::bigevglf_gfxcontrol_w)
+void bigevglf_state::bigevglf_gfxcontrol_w(uint8_t data)
{
/* bits used: 0,1,2,3
0 and 2 select plane,
@@ -30,12 +28,12 @@ WRITE8_MEMBER(bigevglf_state::bigevglf_gfxcontrol_w)
m_plane_visible = ((data & 8) >> 2) | ((data & 2) >> 1);
}
-WRITE8_MEMBER(bigevglf_state::bigevglf_vidram_addr_w)
+void bigevglf_state::bigevglf_vidram_addr_w(uint8_t data)
{
m_vidram_bank = (data & 0xff) * 0x100;
}
-WRITE8_MEMBER(bigevglf_state::bigevglf_vidram_w)
+void bigevglf_state::bigevglf_vidram_w(offs_t offset, uint8_t data)
{
uint32_t x, y, o;
o = m_vidram_bank + offset;
@@ -45,7 +43,7 @@ WRITE8_MEMBER(bigevglf_state::bigevglf_vidram_w)
m_tmp_bitmap[m_plane_selected].pix16(y, x) = data;
}
-READ8_MEMBER(bigevglf_state::bigevglf_vidram_r)
+uint8_t bigevglf_state::bigevglf_vidram_r(offs_t offset)
{
return m_vidram[0x10000 * m_plane_selected + m_vidram_bank + offset];
}
diff --git a/src/mame/video/bigstrkb.cpp b/src/mame/video/bigstrkb.cpp
index 8ae3ca8f3b9..b9014336f09 100644
--- a/src/mame/video/bigstrkb.cpp
+++ b/src/mame/video/bigstrkb.cpp
@@ -70,7 +70,7 @@ TILE_GET_INFO_MEMBER(bigstrkb_state::get_tile_info)
tileinfo.set(0,tileno,col>>12,0);
}
-WRITE16_MEMBER(bigstrkb_state::videoram_w)
+void bigstrkb_state::videoram_w(offs_t offset, uint16_t data)
{
m_videoram[offset] = data;
m_tilemap->mark_tile_dirty(offset);
@@ -86,7 +86,7 @@ TILE_GET_INFO_MEMBER(bigstrkb_state::get_tile2_info)
tileinfo.set(1,tileno,col>>12,0);
}
-WRITE16_MEMBER(bigstrkb_state::videoram2_w)
+void bigstrkb_state::videoram2_w(offs_t offset, uint16_t data)
{
m_videoram2[offset] = data;
m_tilemap2->mark_tile_dirty(offset);
@@ -103,7 +103,7 @@ TILE_GET_INFO_MEMBER(bigstrkb_state::get_tile3_info)
tileinfo.set(1,tileno+0x2000,(col>>12)+(0x100/16),0);
}
-WRITE16_MEMBER(bigstrkb_state::videoram3_w)
+void bigstrkb_state::videoram3_w(offs_t offset, uint16_t data)
{
m_videoram3[offset] = data;
m_tilemap3->mark_tile_dirty(offset);
diff --git a/src/mame/video/bking.cpp b/src/mame/video/bking.cpp
index ebdddca5d88..868a648a01e 100644
--- a/src/mame/video/bking.cpp
+++ b/src/mame/video/bking.cpp
@@ -80,38 +80,38 @@ void bking_state::bking_palette(palette_device &palette) const
}
-WRITE8_MEMBER(bking_state::bking_xld1_w)
+void bking_state::bking_xld1_w(uint8_t data)
{
m_xld1 = -data;
}
-WRITE8_MEMBER(bking_state::bking_yld1_w)
+void bking_state::bking_yld1_w(uint8_t data)
{
m_yld1 = -data;
}
-WRITE8_MEMBER(bking_state::bking_xld2_w)
+void bking_state::bking_xld2_w(uint8_t data)
{
m_xld2 = -data;
}
-WRITE8_MEMBER(bking_state::bking_yld2_w)
+void bking_state::bking_yld2_w(uint8_t data)
{
m_yld2 = -data;
}
-WRITE8_MEMBER(bking_state::bking_xld3_w)
+void bking_state::bking_xld3_w(uint8_t data)
{
m_xld3 = -data;
}
-WRITE8_MEMBER(bking_state::bking_yld3_w)
+void bking_state::bking_yld3_w(uint8_t data)
{
m_yld3 = -data;
}
-WRITE8_MEMBER(bking_state::bking_cont1_w)
+void bking_state::bking_cont1_w(uint8_t data)
{
/* D0 = COIN LOCK */
/* D1 = BALL 5 (Controller selection) */
@@ -128,7 +128,7 @@ WRITE8_MEMBER(bking_state::bking_cont1_w)
m_crow_pic = (data >> 4) & 0x0f;
}
-WRITE8_MEMBER(bking_state::bking_cont2_w)
+void bking_state::bking_cont2_w(uint8_t data)
{
/* D0-D2 = BALL10 - BALL12 (Selects player 1 ball picture) */
/* D3-D5 = BALL20 - BALL22 (Selects player 2 ball picture) */
@@ -141,7 +141,7 @@ WRITE8_MEMBER(bking_state::bking_cont2_w)
m_hit = data >> 6;
}
-WRITE8_MEMBER(bking_state::bking_cont3_w)
+void bking_state::bking_cont3_w(uint8_t data)
{
/* D0 = CROW INV (inverts Crow picture and coordinates) */
/* D1-D2 = COLOR 0 - COLOR 1 (switches 4 color palettes, global across all graphics) */
@@ -159,13 +159,13 @@ WRITE8_MEMBER(bking_state::bking_cont3_w)
}
-WRITE8_MEMBER(bking_state::bking_msk_w)
+void bking_state::bking_msk_w(uint8_t data)
{
m_pc3259_mask++;
}
-WRITE8_MEMBER(bking_state::bking_hitclr_w)
+void bking_state::bking_hitclr_w(uint8_t data)
{
m_pc3259_mask = 0;
@@ -176,24 +176,24 @@ WRITE8_MEMBER(bking_state::bking_hitclr_w)
}
-WRITE8_MEMBER(bking_state::bking_playfield_w)
+void bking_state::bking_playfield_w(offs_t offset, uint8_t data)
{
m_playfield_ram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset / 2);
}
-READ8_MEMBER(bking_state::bking_input_port_5_r)
+uint8_t bking_state::bking_input_port_5_r()
{
return ioport(m_controller ? "TRACK1_X" : "TRACK0_X")->read();
}
-READ8_MEMBER(bking_state::bking_input_port_6_r)
+uint8_t bking_state::bking_input_port_6_r()
{
return ioport(m_controller ? "TRACK1_Y" : "TRACK0_Y")->read();
}
-READ8_MEMBER(bking_state::bking_pos_r)
+uint8_t bking_state::bking_pos_r(offs_t offset)
{
return m_pc3259_output[offset / 8] << 4;
}
diff --git a/src/mame/video/blktiger.cpp b/src/mame/video/blktiger.cpp
index 115fa5a944b..4f5c245bee4 100644
--- a/src/mame/video/blktiger.cpp
+++ b/src/mame/video/blktiger.cpp
@@ -97,18 +97,18 @@ void blktiger_state::video_start()
***************************************************************************/
-WRITE8_MEMBER(blktiger_state::blktiger_txvideoram_w)
+void blktiger_state::blktiger_txvideoram_w(offs_t offset, uint8_t data)
{
m_txvideoram[offset] = data;
m_tx_tilemap->mark_tile_dirty(offset & 0x3ff);
}
-READ8_MEMBER(blktiger_state::blktiger_bgvideoram_r)
+uint8_t blktiger_state::blktiger_bgvideoram_r(offs_t offset)
{
return m_scroll_ram[offset + m_scroll_bank];
}
-WRITE8_MEMBER(blktiger_state::blktiger_bgvideoram_w)
+void blktiger_state::blktiger_bgvideoram_w(offs_t offset, uint8_t data)
{
offset += m_scroll_bank;
@@ -117,34 +117,30 @@ WRITE8_MEMBER(blktiger_state::blktiger_bgvideoram_w)
m_bg_tilemap4x8->mark_tile_dirty(offset / 2);
}
-WRITE8_MEMBER(blktiger_state::blktiger_bgvideoram_bank_w)
+void blktiger_state::blktiger_bgvideoram_bank_w(uint8_t data)
{
m_scroll_bank = (data % BGRAM_BANKS) * BGRAM_BANK_SIZE;
}
-WRITE8_MEMBER(blktiger_state::blktiger_scrolly_w)
+void blktiger_state::blktiger_scrolly_w(offs_t offset, uint8_t data)
{
- int scrolly;
-
m_scroll_y[offset] = data;
- scrolly = m_scroll_y[0] | (m_scroll_y[1] << 8);
+ int scrolly = m_scroll_y[0] | (m_scroll_y[1] << 8);
m_bg_tilemap8x4->set_scrolly(0, scrolly);
m_bg_tilemap4x8->set_scrolly(0, scrolly);
}
-WRITE8_MEMBER(blktiger_state::blktiger_scrollx_w)
+void blktiger_state::blktiger_scrollx_w(offs_t offset, uint8_t data)
{
- int scrollx;
-
m_scroll_x[offset] = data;
- scrollx = m_scroll_x[0] | (m_scroll_x[1] << 8);
+ int scrollx = m_scroll_x[0] | (m_scroll_x[1] << 8);
m_bg_tilemap8x4->set_scrollx(0, scrollx);
m_bg_tilemap4x8->set_scrollx(0, scrollx);
}
-WRITE8_MEMBER(blktiger_state::blktiger_video_control_w)
+void blktiger_state::blktiger_video_control_w(uint8_t data)
{
/* bits 0 and 1 are coin counters */
machine().bookkeeping().coin_counter_w(0,data & 1);
@@ -160,7 +156,7 @@ WRITE8_MEMBER(blktiger_state::blktiger_video_control_w)
m_chon = ~data & 0x80;
}
-WRITE8_MEMBER(blktiger_state::blktiger_video_enable_w)
+void blktiger_state::blktiger_video_enable_w(uint8_t data)
{
/* not sure which is which, but I think that bit 1 and 2 enable background and sprites */
/* bit 1 enables bg ? */
@@ -170,7 +166,7 @@ WRITE8_MEMBER(blktiger_state::blktiger_video_enable_w)
m_objon = ~data & 0x04;
}
-WRITE8_MEMBER(blktiger_state::blktiger_screen_layout_w)
+void blktiger_state::blktiger_screen_layout_w(uint8_t data)
{
m_screen_layout = data;
m_bg_tilemap8x4->enable(m_screen_layout);
diff --git a/src/mame/video/bloodbro.cpp b/src/mame/video/bloodbro.cpp
index c4cb61f5571..ff8dc287b90 100644
--- a/src/mame/video/bloodbro.cpp
+++ b/src/mame/video/bloodbro.cpp
@@ -77,19 +77,19 @@ void bloodbro_state::video_start()
***************************************************************************/
-WRITE16_MEMBER(bloodbro_state::bgvideoram_w)
+void bloodbro_state::bgvideoram_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_bgvideoram[offset]);
m_bg_tilemap->mark_tile_dirty(offset);
}
-WRITE16_MEMBER(bloodbro_state::fgvideoram_w)
+void bloodbro_state::fgvideoram_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_fgvideoram[offset]);
m_fg_tilemap->mark_tile_dirty(offset);
}
-WRITE16_MEMBER(bloodbro_state::txvideoram_w)
+void bloodbro_state::txvideoram_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_txvideoram[offset]);
m_tx_tilemap->mark_tile_dirty(offset);
diff --git a/src/mame/video/blueprnt.cpp b/src/mame/video/blueprnt.cpp
index d7c7cf8d098..16adfaf2c61 100644
--- a/src/mame/video/blueprnt.cpp
+++ b/src/mame/video/blueprnt.cpp
@@ -45,13 +45,13 @@ void blueprnt_state::blueprnt_palette(palette_device &palette) const
}
}
-WRITE8_MEMBER(blueprnt_state::blueprnt_videoram_w)
+void blueprnt_state::blueprnt_videoram_w(offs_t offset, uint8_t data)
{
m_videoram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(blueprnt_state::blueprnt_colorram_w)
+void blueprnt_state::blueprnt_colorram_w(offs_t offset, uint8_t data)
{
m_colorram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset);
@@ -67,7 +67,7 @@ WRITE8_MEMBER(blueprnt_state::blueprnt_colorram_w)
}
-WRITE8_MEMBER(blueprnt_state::blueprnt_flipscreen_w)
+void blueprnt_state::blueprnt_flipscreen_w(uint8_t data)
{
flip_screen_set(~data & 0x02);
diff --git a/src/mame/video/bogeyman.cpp b/src/mame/video/bogeyman.cpp
index 5575d481042..9f253793bc3 100644
--- a/src/mame/video/bogeyman.cpp
+++ b/src/mame/video/bogeyman.cpp
@@ -36,25 +36,25 @@ void bogeyman_state::bogeyman_palette(palette_device &palette) const
}
}
-WRITE8_MEMBER(bogeyman_state::videoram_w)
+void bogeyman_state::videoram_w(offs_t offset, uint8_t data)
{
m_videoram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(bogeyman_state::colorram_w)
+void bogeyman_state::colorram_w(offs_t offset, uint8_t data)
{
m_colorram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(bogeyman_state::videoram2_w)
+void bogeyman_state::videoram2_w(offs_t offset, uint8_t data)
{
m_videoram2[offset] = data;
m_fg_tilemap->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(bogeyman_state::colorram2_w)
+void bogeyman_state::colorram2_w(offs_t offset, uint8_t data)
{
m_colorram2[offset] = data;
m_fg_tilemap->mark_tile_dirty(offset);
diff --git a/src/mame/video/bombjack.cpp b/src/mame/video/bombjack.cpp
index 116bd7e3216..49a0e4d0211 100644
--- a/src/mame/video/bombjack.cpp
+++ b/src/mame/video/bombjack.cpp
@@ -2,7 +2,7 @@
// copyright-holders:Mirko Buffoni
/***************************************************************************
- video.c
+ bombjack.cpp
Functions to emulate the video hardware of the machine.
@@ -11,19 +11,19 @@
#include "emu.h"
#include "includes/bombjack.h"
-WRITE8_MEMBER(bombjack_state::bombjack_videoram_w)
+void bombjack_state::bombjack_videoram_w(offs_t offset, uint8_t data)
{
m_videoram[offset] = data;
m_fg_tilemap->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(bombjack_state::bombjack_colorram_w)
+void bombjack_state::bombjack_colorram_w(offs_t offset, uint8_t data)
{
m_colorram[offset] = data;
m_fg_tilemap->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(bombjack_state::bombjack_background_w)
+void bombjack_state::bombjack_background_w(uint8_t data)
{
if (m_background_image != data)
{
@@ -32,7 +32,7 @@ WRITE8_MEMBER(bombjack_state::bombjack_background_w)
}
}
-WRITE8_MEMBER(bombjack_state::bombjack_flipscreen_w)
+void bombjack_state::bombjack_flipscreen_w(uint8_t data)
{
if (flip_screen() != (data & 0x01))
{
diff --git a/src/mame/video/bosco.cpp b/src/mame/video/bosco.cpp
index 66abbd42dc0..d8eca509011 100644
--- a/src/mame/video/bosco.cpp
+++ b/src/mame/video/bosco.cpp
@@ -144,7 +144,7 @@ VIDEO_START_MEMBER(bosco_state,bosco)
***************************************************************************/
-WRITE8_MEMBER( bosco_state::bosco_videoram_w )
+void bosco_state::bosco_videoram_w(offs_t offset, uint8_t data)
{
m_videoram[offset] = data;
if (offset & 0x400)
@@ -153,17 +153,17 @@ WRITE8_MEMBER( bosco_state::bosco_videoram_w )
m_fg_tilemap->mark_tile_dirty(offset & 0x3ff);
}
-WRITE8_MEMBER( bosco_state::bosco_scrollx_w )
+void bosco_state::bosco_scrollx_w(uint8_t data)
{
m_bg_tilemap->set_scrollx(0,data);
}
-WRITE8_MEMBER( bosco_state::bosco_scrolly_w )
+void bosco_state::bosco_scrolly_w(uint8_t data)
{
m_bg_tilemap->set_scrolly(0,data);
}
-WRITE8_MEMBER( bosco_state::bosco_starclr_w )
+void bosco_state::bosco_starclr_w(uint8_t data)
{
// On any write to $9840, turn on starfield
m_bosco_starclr = 0;
diff --git a/src/mame/video/brkthru.cpp b/src/mame/video/brkthru.cpp
index 0de0d9dfce6..63d4215f1c5 100644
--- a/src/mame/video/brkthru.cpp
+++ b/src/mame/video/brkthru.cpp
@@ -87,7 +87,7 @@ TILE_GET_INFO_MEMBER(brkthru_state::get_bg_tile_info)
tileinfo.set(region, code & 0x7f, colour,0);
}
-WRITE8_MEMBER(brkthru_state::brkthru_bgram_w)
+void brkthru_state::brkthru_bgram_w(offs_t offset, uint8_t data)
{
m_videoram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset / 2);
@@ -100,7 +100,7 @@ TILE_GET_INFO_MEMBER(brkthru_state::get_fg_tile_info)
tileinfo.set(0, code, 0, 0);
}
-WRITE8_MEMBER(brkthru_state::brkthru_fgram_w)
+void brkthru_state::brkthru_fgram_w(offs_t offset, uint8_t data)
{
m_fg_videoram[offset] = data;
m_fg_tilemap->mark_tile_dirty(offset);
@@ -116,7 +116,7 @@ void brkthru_state::video_start()
}
-WRITE8_MEMBER(brkthru_state::brkthru_1800_w)
+void brkthru_state::brkthru_1800_w(offs_t offset, uint8_t data)
{
if (offset == 0) /* low 8 bits of scroll */
m_bgscroll = (m_bgscroll & 0x100) | data;
diff --git a/src/mame/video/bsktball.cpp b/src/mame/video/bsktball.cpp
index e9449d3a91d..2f6fb27d2d5 100644
--- a/src/mame/video/bsktball.cpp
+++ b/src/mame/video/bsktball.cpp
@@ -10,7 +10,7 @@
#include "includes/bsktball.h"
-WRITE8_MEMBER(bsktball_state::bsktball_videoram_w)
+void bsktball_state::bsktball_videoram_w(offs_t offset, uint8_t data)
{
m_videoram[offset] = data;
m_bg_tilemap->mark_tile_dirty(offset);
diff --git a/src/mame/video/btime.cpp b/src/mame/video/btime.cpp
index 663e8362d75..7e592aeb0dd 100644
--- a/src/mame/video/btime.cpp
+++ b/src/mame/video/btime.cpp
@@ -131,13 +131,13 @@ VIDEO_START_MEMBER(btime_state,bnj)
save_item(NAME(*m_background_bitmap));
}
-WRITE8_MEMBER(btime_state::lnc_videoram_w)
+void btime_state::lnc_videoram_w(offs_t offset, uint8_t data)
{
m_videoram[offset] = data;
m_colorram[offset] = *m_lnc_charbank;
}
-READ8_MEMBER(btime_state::btime_mirrorvideoram_r)
+uint8_t btime_state::btime_mirrorvideoram_r(offs_t offset)
{
int x, y;
@@ -149,7 +149,7 @@ READ8_MEMBER(btime_state::btime_mirrorvideoram_r)
return m_videoram[offset];
}
-READ8_MEMBER(btime_state::btime_mirrorcolorram_r)
+uint8_t btime_state::btime_mirrorcolorram_r(offs_t offset)
{
int x, y;
@@ -161,7 +161,7 @@ READ8_MEMBER(btime_state::btime_mirrorcolorram_r)
return m_colorram[offset];
}
-WRITE8_MEMBER(btime_state::btime_mirrorvideoram_w)
+void btime_state::btime_mirrorvideoram_w(offs_t offset, uint8_t data)
{
int x, y;
@@ -173,7 +173,7 @@ WRITE8_MEMBER(btime_state::btime_mirrorvideoram_w)
m_videoram[offset] = data;
}
-WRITE8_MEMBER(btime_state::lnc_mirrorvideoram_w)
+void btime_state::lnc_mirrorvideoram_w(offs_t offset, uint8_t data)
{
int x, y;
@@ -182,10 +182,10 @@ WRITE8_MEMBER(btime_state::lnc_mirrorvideoram_w)
y = offset % 32;
offset = 32 * y + x;
- lnc_videoram_w(space, offset, data);
+ lnc_videoram_w(offset, data);
}
-WRITE8_MEMBER(btime_state::btime_mirrorcolorram_w)
+void btime_state::btime_mirrorcolorram_w(offs_t offset, uint8_t data)
{
int x, y;
@@ -197,7 +197,7 @@ WRITE8_MEMBER(btime_state::btime_mirrorcolorram_w)
m_colorram[offset] = data;
}
-WRITE8_MEMBER(btime_state::deco_charram_w)
+void btime_state::deco_charram_w(offs_t offset, uint8_t data)
{
if (m_deco_charram[offset] == data)
return;
@@ -213,22 +213,22 @@ WRITE8_MEMBER(btime_state::deco_charram_w)
m_gfxdecode->gfx(0)->mark_dirty(offset >> 3);
}
-WRITE8_MEMBER(btime_state::bnj_background_w)
+void btime_state::bnj_background_w(offs_t offset, uint8_t data)
{
m_bnj_backgroundram[offset] = data;
}
-WRITE8_MEMBER(btime_state::bnj_scroll1_w)
+void btime_state::bnj_scroll1_w(uint8_t data)
{
m_bnj_scroll1 = data;
}
-WRITE8_MEMBER(btime_state::bnj_scroll2_w)
+void btime_state::bnj_scroll2_w(uint8_t data)
{
m_bnj_scroll2 = data;
}
-WRITE8_MEMBER(btime_state::btime_video_control_w)
+void btime_state::btime_video_control_w(uint8_t data)
{
// Btime video control
//
@@ -238,7 +238,7 @@ WRITE8_MEMBER(btime_state::btime_video_control_w)
flip_screen_set(data & 0x01);
}
-WRITE8_MEMBER(btime_state::bnj_video_control_w)
+void btime_state::bnj_video_control_w(uint8_t data)
{
/* Bnj/Lnc works a little differently than the btime/eggs (apparently). */
/* According to the information at: */
@@ -251,10 +251,10 @@ WRITE8_MEMBER(btime_state::bnj_video_control_w)
/* are in upright controls mode. */
if (ioport("DSW1")->read() & 0x40) /* cocktail mode */
- btime_video_control_w(space, offset, data);
+ btime_video_control_w(data);
}
-WRITE8_MEMBER(btime_state::zoar_video_control_w)
+void btime_state::zoar_video_control_w(uint8_t data)
{
// Zoar video control
//
@@ -268,7 +268,7 @@ WRITE8_MEMBER(btime_state::zoar_video_control_w)
flip_screen_set(data & 0x80);
}
-WRITE8_MEMBER(btime_state::disco_video_control_w)
+void btime_state::disco_video_control_w(uint8_t data)
{
m_btime_palette = (data >> 2) & 0x03;
diff --git a/src/mame/video/btoads.cpp b/src/mame/video/btoads.cpp
index 5bcbfb82067..c301aa02c28 100644
--- a/src/mame/video/btoads.cpp
+++ b/src/mame/video/btoads.cpp
@@ -47,7 +47,7 @@ void btoads_state::video_start()
*
*************************************/
-WRITE16_MEMBER( btoads_state::misc_control_w )
+void btoads_state::misc_control_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_misc_control);
@@ -56,7 +56,7 @@ WRITE16_MEMBER( btoads_state::misc_control_w )
}
-WRITE16_MEMBER( btoads_state::display_control_w )
+void btoads_state::display_control_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
if (ACCESSING_BITS_8_15)
{
@@ -90,7 +90,7 @@ WRITE16_MEMBER( btoads_state::display_control_w )
*
*************************************/
-WRITE16_MEMBER( btoads_state::scroll0_w )
+void btoads_state::scroll0_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
/* allow multiple changes during display */
// m_screen->update_now();
@@ -104,7 +104,7 @@ WRITE16_MEMBER( btoads_state::scroll0_w )
}
-WRITE16_MEMBER( btoads_state::scroll1_w )
+void btoads_state::scroll1_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
/* allow multiple changes during display */
// m_screen->update_now();
@@ -125,13 +125,13 @@ WRITE16_MEMBER( btoads_state::scroll1_w )
*
*************************************/
-WRITE16_MEMBER( btoads_state::paletteram_w )
+void btoads_state::paletteram_w(offs_t offset, uint16_t data)
{
m_tlc34076->write(offset/2, data);
}
-READ16_MEMBER( btoads_state::paletteram_r )
+uint16_t btoads_state::paletteram_r(offs_t offset)
{
return m_tlc34076->read(offset/2);
}
@@ -144,25 +144,25 @@ READ16_MEMBER( btoads_state::paletteram_r )
*
*************************************/
-WRITE16_MEMBER( btoads_state::vram_bg0_w )
+void btoads_state::vram_bg0_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_vram_bg0[offset & 0x3fcff]);
}
-WRITE16_MEMBER( btoads_state::vram_bg1_w )
+void btoads_state::vram_bg1_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
COMBINE_DATA(&m_vram_bg1[offset & 0x3fcff]);
}
-READ16_MEMBER( btoads_state::vram_bg0_r )
+uint16_t btoads_state::vram_bg0_r(offs_t offset)
{
return m_vram_bg0[offset & 0x3fcff];
}
-READ16_MEMBER( btoads_state::vram_bg1_r )
+uint16_t btoads_state::vram_bg1_r(offs_t offset)
{
return m_vram_bg1[offset & 0x3fcff];
}
@@ -175,27 +175,27 @@ READ16_MEMBER( btoads_state::vram_bg1_r )
*
*************************************/
-WRITE16_MEMBER( btoads_state::vram_fg_display_w )
+void btoads_state::vram_fg_display_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
if (ACCESSING_BITS_0_7)
m_vram_fg_display[offset] = data;
}
-WRITE16_MEMBER( btoads_state::vram_fg_draw_w )
+void btoads_state::vram_fg_draw_w(offs_t offset, uint16_t data, uint16_t mem_mask)
{
if (ACCESSING_BITS_0_7)
m_vram_fg_draw[offset] = data;
}
-READ16_MEMBER( btoads_state::vram_fg_display_r )
+uint16_t btoads_state::vram_fg_display_r(offs_t offset)
{
return m_vram_fg_display[offset];
}
-READ16_MEMBER( btoads_state::vram_fg_draw_r )
+uint16_t btoads_state::vram_fg_draw_r(offs_t offset)
{
return m_vram_fg_draw[offset];
}
diff --git a/src/mame/video/buggychl.cpp b/src/mame/video/buggychl.cpp
index 26bf22f4ff4..e3c98e953c9 100644
--- a/src/mame/video/buggychl.cpp
+++ b/src/mame/video/buggychl.cpp
@@ -24,7 +24,7 @@ void buggychl_state::video_start()
-WRITE8_MEMBER(buggychl_state::buggychl_chargen_w)
+void buggychl_state::buggychl_chargen_w(offs_t offset, uint8_t data)
{
if (m_charram[offset] != data)
{
@@ -33,17 +33,17 @@ WRITE8_MEMBER(buggychl_state::buggychl_chargen_w)
}
}
-WRITE8_MEMBER(buggychl_state::buggychl_sprite_lookup_bank_w)
+void buggychl_state::buggychl_sprite_lookup_bank_w(uint8_t data)
{
m_sl_bank = (data & 0x10) << 8;
}
-WRITE8_MEMBER(buggychl_state::buggychl_sprite_lookup_w)
+void buggychl_state::buggychl_sprite_lookup_w(offs_t offset, uint8_t data)
{
m_sprite_lookup[offset + m_sl_bank] = data;
}
-WRITE8_MEMBER(buggychl_state::buggychl_ctrl_w)
+void buggychl_state::buggychl_ctrl_w(uint8_t data)
{
/*
bit7 = lamp
@@ -67,7 +67,7 @@ WRITE8_MEMBER(buggychl_state::buggychl_ctrl_w)
m_led[0] = BIT(~data, 7);
}
-WRITE8_MEMBER(buggychl_state::buggychl_bg_scrollx_w)
+void buggychl_state::buggychl_bg_scrollx_w(uint8_t data)
{
m_bg_scrollx = -(data - 0x12);
}
diff --git a/src/mame/video/bwing.cpp b/src/mame/video/bwing.cpp
index 3c30e6b7459..d722416fd28 100644
--- a/src/mame/video/bwing.cpp
+++ b/src/mame/video/bwing.cpp
@@ -19,28 +19,28 @@ revised by Alex W. Jackson
// Exports
-WRITE8_MEMBER(bwing_state::videoram_w)
+void bwing_state::videoram_w(offs_t offset, uint8_t data)
{
m_videoram[offset] = data;
m_charmap->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(bwing_state::fgscrollram_w)
+void bwing_state::fgscrollram_w(offs_t offset, uint8_t data)
{
m_fgscrollram[offset] = data;
m_fgmap->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(bwing_state::bgscrollram_w)
+void bwing_state::bgscrollram_w(offs_t offset, uint8_t data)
{
m_bgscrollram[offset] = data;
m_bgmap->mark_tile_dirty(offset);
}
-WRITE8_MEMBER(bwing_state::gfxram_w)
+void bwing_state::gfxram_w(offs_t offset, uint8_t data)
{
m_gfxram[offset] = data;
int whichgfx = (offset & 0x1000) ? 3 : 2;
@@ -48,7 +48,7 @@ WRITE8_MEMBER(bwing_state::gfxram_w)
}
-WRITE8_MEMBER(bwing_state::scrollreg_w)
+void bwing_state::scrollreg_w(offs_t offset, uint8_t data)
{
m_sreg[offset] = data;
@@ -64,7 +64,7 @@ WRITE8_MEMBER(bwing_state::scrollreg_w)
}
-WRITE8_MEMBER(bwing_state::paletteram_w)
+void bwing_state::paletteram_w(offs_t offset, uint8_t data)
{
static const float rgb[4][3] = {
{0.85f, 0.95f, 1.00f},
diff --git a/src/tools/unidasm.cpp b/src/tools/unidasm.cpp
index 06d7747b1ac..59a58ff23ac 100644
--- a/src/tools/unidasm.cpp
+++ b/src/tools/unidasm.cpp
@@ -106,6 +106,7 @@ using util::BIT;
#include "cpu/minx/minxd.h"
#include "cpu/mips/mips3dsm.h"
#include "cpu/mips/mips1dsm.h"
+#include "cpu/mn1880/mn1880d.h"
#include "cpu/mn10200/mn102dis.h"
#include "cpu/nanoprocessor/nanoprocessor_dasm.h"
#include "cpu/nec/necdasm.h"
@@ -469,6 +470,8 @@ static const dasm_table_entry dasm_table[] =
{ "mips3be", be, 0, []() -> util::disasm_interface * { return new mips3_disassembler; } },
{ "mips3le", le, 0, []() -> util::disasm_interface * { return new mips3_disassembler; } },
{ "mn10200", le, 0, []() -> util::disasm_interface * { return new mn10200_disassembler; } },
+ { "mn1870", be, 0, []() -> util::disasm_interface * { return new mn1870_disassembler; } },
+ { "mn1880", be, 0, []() -> util::disasm_interface * { return new mn1880_disassembler; } },
{ "nanoprocessor", le, 0, []() -> util::disasm_interface * { return new hp_nanoprocessor_disassembler; } },
{ "nec", le, 0, []() -> util::disasm_interface * { return new nec_disassembler(&nec_unidasm); } },
{ "ns32000", le, 0, []() -> util::disasm_interface * { return new ns32000_disassembler; } },