From 539367c7d1d41b406579c10e67f30aa02500d52d Mon Sep 17 00:00:00 2001 From: Aaron Giles Date: Mon, 5 Aug 2013 06:00:20 +0000 Subject: [PATCH] Bulk removal of machine().primary_screen references from MAME drivers, in favor of using the common m_screen. This is 98% reliable except for cases where there were multiple screens or where the screens were not named 'screen' like everywhere else. Those cases will need to be revisited but should reveal themselves in the next round of regression tests. Eventual plan is primary_screen will go away. Devices that need to know the screen should have a device_video_interface. Drivers should find the screen device like any other, or use the pre-found m_screen for the common single-screen case. --- src/mame/drivers/3x3puzzl.c | 4 ++-- src/mame/drivers/8080bw.c | 2 +- src/mame/drivers/acefruit.c | 6 +++--- src/mame/drivers/adp.c | 8 ++++---- src/mame/drivers/alg.c | 2 +- src/mame/drivers/arcadecl.c | 2 +- src/mame/drivers/aristmk5.c | 2 +- src/mame/drivers/astinvad.c | 4 ++-- src/mame/drivers/astrcorp.c | 4 ++-- src/mame/drivers/astrof.c | 8 ++++---- src/mame/drivers/atarig1.c | 2 +- src/mame/drivers/atarig42.c | 2 +- src/mame/drivers/atarigt.c | 2 +- src/mame/drivers/atarigx2.c | 2 +- src/mame/drivers/atarisy2.c | 2 +- src/mame/drivers/atetris.c | 4 ++-- src/mame/drivers/badlands.c | 4 ++-- src/mame/drivers/batman.c | 2 +- src/mame/drivers/beaminv.c | 6 +++--- src/mame/drivers/beathead.c | 8 ++++---- src/mame/drivers/berzerk.c | 10 +++++----- src/mame/drivers/blstroid.c | 4 ++-- src/mame/drivers/boxer.c | 10 +++++----- src/mame/drivers/btime.c | 2 +- src/mame/drivers/capbowl.c | 6 +++--- src/mame/drivers/cave.c | 2 +- src/mame/drivers/cball.c | 4 ++-- src/mame/drivers/ccastles.c | 8 ++++---- src/mame/drivers/cdi.c | 2 ++ src/mame/drivers/centiped.c | 2 +- src/mame/drivers/champbwl.c | 4 ++-- src/mame/drivers/changela.c | 2 +- src/mame/drivers/chinagat.c | 4 ++-- src/mame/drivers/cinemat.c | 4 ++-- src/mame/drivers/cliffhgr.c | 4 ++-- src/mame/drivers/cloud9.c | 8 ++++---- src/mame/drivers/cninja.c | 6 +++--- src/mame/drivers/coolridr.c | 18 +++++++++--------- src/mame/drivers/copsnrob.c | 2 +- src/mame/drivers/corona.c | 2 +- src/mame/drivers/cosmic.c | 4 ++-- src/mame/drivers/cps2.c | 6 +++--- src/mame/drivers/cps3.c | 2 +- src/mame/drivers/cubeqst.c | 4 ++-- src/mame/drivers/cyberbal.c | 4 ++-- src/mame/drivers/ddenlovr.c | 6 +++--- src/mame/drivers/ddragon.c | 4 ++-- src/mame/drivers/ddragon3.c | 4 ++-- src/mame/drivers/deco32.c | 4 ++-- src/mame/drivers/deco_ld.c | 2 +- src/mame/drivers/deco_mlc.c | 10 +++++----- src/mame/drivers/destroyr.c | 8 ++++---- src/mame/drivers/diverboy.c | 2 +- src/mame/drivers/dorachan.c | 2 +- src/mame/drivers/dotrikun.c | 2 +- src/mame/drivers/dragrace.c | 2 +- src/mame/drivers/dunhuang.c | 2 +- src/mame/drivers/enigma2.c | 8 ++++---- src/mame/drivers/eolithsp.c | 4 ++-- src/mame/drivers/eprom.c | 2 +- src/mame/drivers/esripsys.c | 4 ++-- src/mame/drivers/fantland.c | 2 +- src/mame/drivers/fgoal.c | 8 ++++---- src/mame/drivers/firefox.c | 4 ++-- src/mame/drivers/firetrk.c | 2 +- src/mame/drivers/flyball.c | 8 ++++---- src/mame/drivers/foodf.c | 4 ++-- src/mame/drivers/fuukifg2.c | 22 +++++++++++----------- src/mame/drivers/fuukifg3.c | 22 +++++++++++----------- src/mame/drivers/gaelco3d.c | 2 +- src/mame/drivers/galaga.c | 4 ++-- src/mame/drivers/galaxi.c | 4 ++-- src/mame/drivers/galaxia.c | 8 ++++---- src/mame/drivers/galaxian.c | 2 +- src/mame/drivers/galpanic.c | 2 +- src/mame/drivers/gauntlet.c | 2 +- src/mame/drivers/gei.c | 2 +- src/mame/drivers/go2000.c | 4 ++-- src/mame/drivers/gottlieb.c | 6 +++--- src/mame/drivers/grchamp.c | 2 +- src/mame/drivers/gridlee.c | 14 +++++++------- src/mame/drivers/hitme.c | 2 +- src/mame/drivers/hng64.c | 4 ++-- src/mame/drivers/igs009.c | 2 +- src/mame/drivers/igs011.c | 4 ++-- src/mame/drivers/igs017.c | 8 ++++---- src/mame/drivers/igspoker.c | 2 +- src/mame/drivers/itech32.c | 6 +++--- src/mame/drivers/itech8.c | 10 +++++----- src/mame/drivers/jackie.c | 2 +- src/mame/drivers/jedi.c | 4 ++-- src/mame/drivers/klax.c | 2 +- src/mame/drivers/konamigx.c | 2 +- src/mame/drivers/lastfght.c | 2 +- src/mame/drivers/littlerb.c | 8 ++++---- src/mame/drivers/m10.c | 12 ++++++------ src/mame/drivers/m107.c | 6 +++--- src/mame/drivers/m72.c | 22 +++++++++++----------- src/mame/drivers/m92.c | 6 +++--- src/mame/drivers/magmax.c | 4 ++-- src/mame/drivers/malzak.c | 2 +- src/mame/drivers/marinedt.c | 2 +- src/mame/drivers/mazerbla.c | 8 ++++---- src/mame/drivers/mcr3.c | 2 +- src/mame/drivers/meadows.c | 6 +++--- src/mame/drivers/mediagx.c | 4 ++-- src/mame/drivers/megaplay.c | 2 +- src/mame/drivers/merit.c | 4 ++-- src/mame/drivers/mgolf.c | 4 ++-- src/mame/drivers/midzeus.c | 14 +++++++------- src/mame/drivers/missile.c | 10 +++++----- src/mame/drivers/model2.c | 2 +- src/mame/drivers/model3.c | 2 +- src/mame/drivers/multfish.c | 2 +- src/mame/drivers/namcofl.c | 14 +++++++------- src/mame/drivers/namcona1.c | 2 +- src/mame/drivers/namconb1.c | 8 ++++---- src/mame/drivers/namcos23.c | 12 ++++++------ src/mame/drivers/nemesis.c | 4 ++-- src/mame/drivers/neogeo.c | 16 ++++++++-------- src/mame/drivers/neoprint.c | 2 +- src/mame/drivers/nss.c | 2 +- src/mame/drivers/nyny.c | 2 +- src/mame/drivers/orbit.c | 2 +- src/mame/drivers/othldrby.c | 2 +- src/mame/drivers/overdriv.c | 2 +- src/mame/drivers/peplus.c | 8 ++++---- src/mame/drivers/pinball2k.c | 4 ++-- src/mame/drivers/pkscram.c | 6 +++--- src/mame/drivers/polepos.c | 2 +- src/mame/drivers/policetr.c | 2 +- src/mame/drivers/pzletime.c | 2 +- src/mame/drivers/quizshow.c | 2 +- src/mame/drivers/rampart.c | 2 +- src/mame/drivers/redalert.c | 2 +- src/mame/drivers/relief.c | 2 +- src/mame/drivers/runaway.c | 4 ++-- src/mame/drivers/sbrkout.c | 18 +++++++++--------- src/mame/drivers/seabattl.c | 8 ++++---- src/mame/drivers/segac2.c | 6 +++--- src/mame/drivers/segahang.c | 8 ++++---- src/mame/drivers/segaorun.c | 10 +++++----- src/mame/drivers/segas16a.c | 10 +++++----- src/mame/drivers/segas16b.c | 8 ++++---- src/mame/drivers/segas18.c | 10 +++++----- src/mame/drivers/segas24.c | 2 +- src/mame/drivers/segas32.c | 2 +- src/mame/drivers/segaxbd.c | 6 +++--- src/mame/drivers/segaybd.c | 6 +++--- src/mame/drivers/seta2.c | 4 ++-- src/mame/drivers/sfcbox.c | 2 +- src/mame/drivers/shadfrce.c | 6 +++--- src/mame/drivers/shuuz.c | 2 +- src/mame/drivers/sigmab98.c | 2 +- src/mame/drivers/skullxbo.c | 4 ++-- src/mame/drivers/sliver.c | 4 ++-- src/mame/drivers/slotcarn.c | 4 ++-- src/mame/drivers/smsmcorp.c | 2 +- src/mame/drivers/spacefb.c | 6 +++--- src/mame/drivers/spoker.c | 2 +- src/mame/drivers/sprint2.c | 6 +++--- src/mame/drivers/sprint4.c | 4 ++-- src/mame/drivers/subsino2.c | 6 +++--- src/mame/drivers/suna8.c | 2 +- src/mame/drivers/taitoair.c | 2 +- src/mame/drivers/taitotz.c | 4 ++-- src/mame/drivers/tasman.c | 4 ++-- src/mame/drivers/tecmosys.c | 2 +- src/mame/drivers/tgtpanic.c | 2 +- src/mame/drivers/thunderj.c | 2 +- src/mame/drivers/tickee.c | 14 +++++++------- src/mame/drivers/tmaster.c | 2 +- src/mame/drivers/toaplan2.c | 8 ++++---- src/mame/drivers/toobin.c | 2 +- src/mame/drivers/tubep.c | 16 ++++++++-------- src/mame/drivers/tugboat.c | 4 ++-- src/mame/drivers/turbo.c | 4 ++-- src/mame/drivers/tx1.c | 4 ++-- src/mame/drivers/ultratnk.c | 4 ++-- src/mame/drivers/unico.c | 8 ++++---- src/mame/drivers/vamphalf.c | 4 ++-- src/mame/drivers/vball.c | 4 ++-- src/mame/drivers/vicdual.c | 10 +++++----- src/mame/drivers/videopin.c | 6 +++--- src/mame/drivers/vindictr.c | 2 +- src/mame/drivers/wheelfir.c | 4 ++-- src/mame/drivers/wolfpack.c | 6 +++--- src/mame/drivers/wwfsstar.c | 4 ++-- src/mame/drivers/wwfwfest.c | 4 ++-- src/mame/drivers/xain.c | 4 ++-- src/mame/drivers/xexex.c | 2 +- src/mame/drivers/xmen.c | 2 +- src/mame/drivers/zn.c | 2 +- src/mame/includes/n64.h | 3 ++- src/mame/includes/snes.h | 4 +++- src/mame/machine/amiga.c | 14 +++++++------- src/mame/machine/archimds.c | 12 ++++++------ src/mame/machine/atarifb.c | 2 +- src/mame/machine/balsente.c | 10 +++++----- src/mame/machine/galaxold.c | 4 ++-- src/mame/machine/harddriv.c | 4 ++-- src/mame/machine/irobot.c | 4 ++-- src/mame/machine/leland.c | 12 ++++++------ src/mame/machine/mcr68.c | 4 ++-- src/mame/machine/megavdp.c | 16 ++++++++-------- src/mame/machine/mw8080bw.c | 6 +++--- src/mame/machine/n64.c | 13 +++++++------ src/mame/machine/namco51.c | 2 +- src/mame/machine/namcos2.c | 4 ++-- src/mame/machine/nb1414m4.c | 4 ++-- src/mame/machine/snes.c | 30 +++++++++++++++--------------- src/mame/machine/williams.c | 20 ++++++++++---------- src/mame/video/airbustr.c | 2 +- src/mame/video/amspdwy.c | 4 ++-- src/mame/video/argus.c | 2 +- src/mame/video/astrocde.c | 14 +++++++------- src/mame/video/atarigt.c | 4 ++-- src/mame/video/atarigx2.c | 2 +- src/mame/video/atarirle.c | 5 +++-- src/mame/video/atarisy1.c | 24 ++++++++++++------------ src/mame/video/atarisy2.c | 10 +++++----- src/mame/video/aztarac.c | 2 +- src/mame/video/badlands.c | 2 +- src/mame/video/balsente.c | 6 +++--- src/mame/video/battlera.c | 4 ++-- src/mame/video/beathead.c | 4 ++-- src/mame/video/beezer.c | 2 +- src/mame/video/bigevglf.c | 8 ++++---- src/mame/video/bishi.c | 2 +- src/mame/video/bking.c | 4 ++-- src/mame/video/blockade.c | 2 +- src/mame/video/blockout.c | 4 ++-- src/mame/video/btoads.c | 8 ++++---- src/mame/video/buggychl.c | 4 ++-- src/mame/video/bwing.c | 2 +- src/mame/video/ccastles.c | 4 ++-- src/mame/video/cchasm.c | 2 +- src/mame/video/changela.c | 12 ++++++------ src/mame/video/cheekyms.c | 4 ++-- src/mame/video/cinemat.c | 2 +- src/mame/video/cloak.c | 2 +- src/mame/video/cloud9.c | 2 +- src/mame/video/cninja.c | 2 +- src/mame/video/contra.c | 4 ++-- src/mame/video/cvs.c | 6 +++--- src/mame/video/dcheese.c | 10 +++++----- src/mame/video/dday.c | 2 +- src/mame/video/deco32.c | 4 ++-- src/mame/video/deco_mlc.c | 2 +- src/mame/video/decocass.c | 4 ++-- src/mame/video/dkong.c | 14 +++++++------- src/mame/video/dogfgt.c | 2 +- src/mame/video/equites.c | 2 +- src/mame/video/esripsys.c | 12 ++++++------ src/mame/video/exerion.c | 10 +++++----- src/mame/video/exidy.c | 6 +++--- src/mame/video/exidy440.c | 4 ++-- src/mame/video/fantland.c | 2 +- src/mame/video/fastlane.c | 4 ++-- src/mame/video/fgoal.c | 4 ++-- src/mame/video/firetrk.c | 12 ++++++------ src/mame/video/fromance.c | 4 ++-- src/mame/video/gaelco3d.c | 8 ++++---- src/mame/video/gaiden.c | 18 +++++++++--------- src/mame/video/galastrm.c | 4 ++-- src/mame/video/galaxia.c | 2 +- src/mame/video/galaxian.c | 26 +++++++++++++------------- src/mame/video/galaxold.c | 4 ++-- src/mame/video/galpanic.c | 4 ++-- src/mame/video/gameplan.c | 6 +++--- src/mame/video/gaplus.c | 12 ++++++------ src/mame/video/gauntlet.c | 4 ++-- src/mame/video/gomoku.c | 2 +- src/mame/video/gottlieb.c | 2 +- src/mame/video/gp9001.c | 3 ++- src/mame/video/gp9001.h | 1 + src/mame/video/grchamp.c | 2 +- src/mame/video/gridlee.c | 2 +- src/mame/video/gstriker.c | 4 ++-- src/mame/video/gyruss.c | 4 ++-- src/mame/video/harddriv.c | 2 +- src/mame/video/hng64.c | 2 +- src/mame/video/homerun.c | 6 +++--- src/mame/video/hyhoo.c | 2 +- src/mame/video/hyprduel.c | 4 ++-- src/mame/video/ikki.c | 2 +- src/mame/video/irobot.c | 8 ++++---- src/mame/video/itech32.c | 10 +++++----- src/mame/video/itech8.c | 10 +++++----- src/mame/video/jaguar.c | 18 +++++++++--------- src/mame/video/kaneko_spr.c | 11 ++++++----- src/mame/video/kaneko_spr.h | 3 ++- src/mame/video/kncljoe.c | 2 +- src/mame/video/konamigx.c | 22 +++++++++++----------- src/mame/video/labyrunr.c | 4 ++-- src/mame/video/leland.c | 14 +++++++------- src/mame/video/lethalj.c | 2 +- src/mame/video/liberatr.c | 2 +- src/mame/video/lockon.c | 4 ++-- src/mame/video/lordgun.c | 6 +++--- src/mame/video/m107.c | 2 +- src/mame/video/m52.c | 2 +- src/mame/video/m58.c | 10 +++++----- src/mame/video/madalien.c | 2 +- src/mame/video/magmax.c | 2 +- src/mame/video/mappy.c | 2 +- src/mame/video/matmania.c | 4 ++-- src/mame/video/mcd212.c | 17 +++++++++-------- src/mame/video/mcd212.h | 5 +++-- src/mame/video/mcr68.c | 2 +- src/mame/video/meadows.c | 2 +- src/mame/video/mermaid.c | 6 +++--- src/mame/video/metro.c | 4 ++-- src/mame/video/midvunit.c | 12 ++++++------ src/mame/video/midzeus.c | 6 +++--- src/mame/video/midzeus2.c | 4 ++-- src/mame/video/model2.c | 2 +- src/mame/video/model3.c | 4 ++-- src/mame/video/moo.c | 4 ++-- src/mame/video/mrflea.c | 2 +- src/mame/video/ms32.c | 6 +++--- src/mame/video/mustache.c | 2 +- src/mame/video/mystston.c | 4 ++-- src/mame/video/n8080.c | 4 ++-- src/mame/video/namcos22.c | 4 ++-- src/mame/video/naughtyb.c | 2 +- src/mame/video/nbmj8891.c | 24 ++++++++++++------------ src/mame/video/nbmj8900.c | 12 ++++++------ src/mame/video/nbmj8991.c | 18 +++++++++--------- src/mame/video/nbmj9195.c | 32 ++++++++++++++++---------------- src/mame/video/neogeo.c | 12 ++++++------ src/mame/video/ninjakd2.c | 2 +- src/mame/video/niyanpai.c | 18 +++++++++--------- src/mame/video/ojankohs.c | 2 +- src/mame/video/pacland.c | 2 +- src/mame/video/paradise.c | 2 +- src/mame/video/pastelg.c | 10 +++++----- src/mame/video/policetr.c | 4 ++-- src/mame/video/popper.c | 2 +- src/mame/video/powerins.c | 4 ++-- src/mame/video/powervr2.c | 31 ++++++++++++++++--------------- src/mame/video/powervr2.h | 3 ++- src/mame/video/ppu2c0x.c | 2 +- src/mame/video/psikyo.c | 8 ++++---- src/mame/video/psikyo4.c | 2 +- src/mame/video/psikyosh.c | 2 +- src/mame/video/qix.c | 12 ++++++------ src/mame/video/quasar.c | 2 +- src/mame/video/rallyx.c | 4 ++-- src/mame/video/realbrk.c | 8 ++++---- src/mame/video/rpunch.c | 4 ++-- src/mame/video/segag80r.c | 4 ++-- src/mame/video/segag80v.c | 4 ++-- src/mame/video/segaic16.c | 33 +++++++++++++++------------------ src/mame/video/segaic16.h | 13 +++++++------ src/mame/video/segas18.c | 8 ++++---- src/mame/video/seta.c | 10 +++++----- src/mame/video/seta001.c | 10 +++++----- src/mame/video/seta001.h | 4 ++-- src/mame/video/shangha3.c | 2 +- src/mame/video/skullxbo.c | 12 ++++++------ src/mame/video/skyfox.c | 4 ++-- src/mame/video/snes.c | 25 ++++++++++++++----------- src/mame/video/snk.c | 4 ++-- src/mame/video/snk68.c | 8 ++++---- src/mame/video/spacefb.c | 8 ++++---- src/mame/video/spbactn.c | 4 ++-- src/mame/video/spdodgeb.c | 4 ++-- src/mame/video/sprint2.c | 4 ++-- src/mame/video/sprint4.c | 4 ++-- src/mame/video/sprint8.c | 8 ++++---- src/mame/video/srmp2.c | 6 +++--- src/mame/video/ssv.c | 4 ++-- src/mame/video/st0016.c | 10 +++++----- src/mame/video/starfire.c | 6 +++--- src/mame/video/starshp1.c | 12 ++++++------ src/mame/video/suna16.c | 4 ++-- src/mame/video/suna8.c | 8 ++++---- src/mame/video/system1.c | 16 ++++++++-------- src/mame/video/taito_b.c | 2 +- src/mame/video/taito_f3.c | 2 +- src/mame/video/taitoair.c | 8 ++++---- src/mame/video/taitojc.c | 8 ++++---- src/mame/video/taitosj.c | 8 ++++---- src/mame/video/tank8.c | 10 +++++----- src/mame/video/tceptor.c | 2 +- src/mame/video/tecmo16.c | 18 +++++++++--------- src/mame/video/tia.c | 11 ++++++----- src/mame/video/tia.h | 1 + src/mame/video/timeplt.c | 2 +- src/mame/video/tnzs.c | 2 +- src/mame/video/toaplan1.c | 8 ++++---- src/mame/video/toaplan2.c | 4 ++-- src/mame/video/toaplan_scu.c | 4 ++-- src/mame/video/toaplan_scu.h | 2 +- src/mame/video/toki.c | 2 +- src/mame/video/toobin.c | 8 ++++---- src/mame/video/tp84.c | 4 ++-- src/mame/video/triplhnt.c | 4 ++-- src/mame/video/tunhunt.c | 2 +- src/mame/video/turbo.c | 2 +- src/mame/video/twin16.c | 2 +- src/mame/video/twincobr.c | 2 +- src/mame/video/tx1.c | 8 ++++---- src/mame/video/ultratnk.c | 4 ++-- src/mame/video/vicdual.c | 2 +- src/mame/video/victory.c | 2 +- src/mame/video/volfied.c | 4 ++-- src/mame/video/wecleman.c | 2 +- src/mame/video/williams.c | 10 +++++----- src/mame/video/wolfpack.c | 2 +- src/mame/video/xexex.c | 2 +- src/mame/video/xmen.c | 4 ++-- src/mame/video/yunsun16.c | 2 +- src/mame/video/zac2650.c | 8 ++++---- src/mame/video/zaxxon.c | 4 ++-- 416 files changed, 1194 insertions(+), 1176 deletions(-) diff --git a/src/mame/drivers/3x3puzzl.c b/src/mame/drivers/3x3puzzl.c index 0f1d46e494b..183a063338d 100644 --- a/src/mame/drivers/3x3puzzl.c +++ b/src/mame/drivers/3x3puzzl.c @@ -147,11 +147,11 @@ WRITE16_MEMBER(_3x3puzzle_state::gfx_ctrl_w) if ( BIT(data,4) ) { - machine().primary_screen->set_visible_area(0*8, 64*8-1, 0*8, 30*8-1); + m_screen->set_visible_area(0*8, 64*8-1, 0*8, 30*8-1); } else { - machine().primary_screen->set_visible_area(0*8, 40*8-1, 0*8, 30*8-1); + m_screen->set_visible_area(0*8, 40*8-1, 0*8, 30*8-1); } if ( (data&0x06) != m_oki_bank ) diff --git a/src/mame/drivers/8080bw.c b/src/mame/drivers/8080bw.c index 8bcf02cb4d2..21c65bbd575 100644 --- a/src/mame/drivers/8080bw.c +++ b/src/mame/drivers/8080bw.c @@ -1466,7 +1466,7 @@ MACHINE_CONFIG_END CUSTOM_INPUT_MEMBER(_8080bw_state::sflush_80_r) { - return (machine().primary_screen->vpos() & 0x80) ? 1 : 0; + return (m_screen->vpos() & 0x80) ? 1 : 0; } static ADDRESS_MAP_START( sflush_map, AS_PROGRAM, 8, _8080bw_state ) diff --git a/src/mame/drivers/acefruit.c b/src/mame/drivers/acefruit.c index fddb110af8c..b09175a1b2b 100644 --- a/src/mame/drivers/acefruit.c +++ b/src/mame/drivers/acefruit.c @@ -71,14 +71,14 @@ void acefruit_state::acefruit_update_irq(int vpos) TIMER_CALLBACK_MEMBER(acefruit_state::acefruit_refresh) { - int vpos = machine().primary_screen->vpos(); + int vpos = m_screen->vpos(); - machine().primary_screen->update_partial(vpos ); + m_screen->update_partial(vpos ); acefruit_update_irq(vpos); vpos = ( ( vpos / 8 ) + 1 ) * 8; - m_refresh_timer->adjust( machine().primary_screen->time_until_pos(vpos) ); + m_refresh_timer->adjust( m_screen->time_until_pos(vpos) ); } void acefruit_state::video_start() diff --git a/src/mame/drivers/adp.c b/src/mame/drivers/adp.c index a4ec67b5600..c735f335ccc 100644 --- a/src/mame/drivers/adp.c +++ b/src/mame/drivers/adp.c @@ -405,15 +405,15 @@ READ8_MEMBER(adp_state::t2_r) UINT8 res; int h,w; res = 0; - h = machine().primary_screen->height(); - w = machine().primary_screen->width(); + h = m_screen->height(); + w = m_screen->width(); // popmessage("%d %d",h,w); - if (machine().primary_screen->hpos() > h) + if (m_screen->hpos() > h) res|= 0x20; //hblank - if (machine().primary_screen->vpos() > w) + if (m_screen->vpos() > w) res|= 0x40; //vblank return res; diff --git a/src/mame/drivers/alg.c b/src/mame/drivers/alg.c index c0ba0291180..53cb0f7c8f5 100644 --- a/src/mame/drivers/alg.c +++ b/src/mame/drivers/alg.c @@ -206,7 +206,7 @@ CUSTOM_INPUT_MEMBER(alg_state::lightgun_pos_r) int x = 0, y = 0; /* get the position based on the input select */ - get_lightgun_pos(*machine().primary_screen, m_input_select, &x, &y); + get_lightgun_pos(*m_screen, m_input_select, &x, &y); return (y << 8) | (x >> 2); } diff --git a/src/mame/drivers/arcadecl.c b/src/mame/drivers/arcadecl.c index 6bf5ea14da2..d56975be7d1 100644 --- a/src/mame/drivers/arcadecl.c +++ b/src/mame/drivers/arcadecl.c @@ -106,7 +106,7 @@ void arcadecl_state::scanline_update(screen_device &screen, int scanline) MACHINE_RESET_MEMBER(arcadecl_state,arcadecl) { atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 32); + scanline_timer_reset(*m_screen, 32); } diff --git a/src/mame/drivers/aristmk5.c b/src/mame/drivers/aristmk5.c index e6ab2050c71..413f6e4e584 100644 --- a/src/mame/drivers/aristmk5.c +++ b/src/mame/drivers/aristmk5.c @@ -200,7 +200,7 @@ READ32_MEMBER(aristmk5_state::mk5_ioc_r) { int vert_pos; - vert_pos = machine().primary_screen->vpos(); + vert_pos = m_screen->vpos(); m_flyback = (vert_pos <= m_vidc_regs[VIDC_VDSR] || vert_pos >= m_vidc_regs[VIDC_VDER]) ? 0x80 : 0x00; //i2c_data = (i2cmem_sda_read(machine().device("i2cmem")) & 1); diff --git a/src/mame/drivers/astinvad.c b/src/mame/drivers/astinvad.c index f4b8cf07ec8..5d44ef3c158 100644 --- a/src/mame/drivers/astinvad.c +++ b/src/mame/drivers/astinvad.c @@ -267,7 +267,7 @@ TIMER_CALLBACK_MEMBER(astinvad_state::kamizake_int_gen) /* interrupts are asserted on every state change of the 128V line */ m_maincpu->set_input_line(0, ASSERT_LINE); param ^= 128; - m_int_timer->adjust(machine().primary_screen->time_until_pos(param), param); + m_int_timer->adjust(m_screen->time_until_pos(param), param); /* an RC circuit turns the interrupt off after a short amount of time */ timer_set(attotime::from_double(300 * 0.1e-6), TIMER_INT_OFF); @@ -277,7 +277,7 @@ TIMER_CALLBACK_MEMBER(astinvad_state::kamizake_int_gen) MACHINE_START_MEMBER(astinvad_state,kamikaze) { m_int_timer = timer_alloc(TIMER_INT_GEN); - m_int_timer->adjust(machine().primary_screen->time_until_pos(128), 128); + m_int_timer->adjust(m_screen->time_until_pos(128), 128); save_item(NAME(m_screen_flip)); save_item(NAME(m_screen_red)); diff --git a/src/mame/drivers/astrcorp.c b/src/mame/drivers/astrcorp.c index 90a7159d164..d885fb90a34 100644 --- a/src/mame/drivers/astrcorp.c +++ b/src/mame/drivers/astrcorp.c @@ -83,7 +83,7 @@ public: VIDEO_START_MEMBER(astrocorp_state,astrocorp) { - machine().primary_screen->register_screen_bitmap(m_bitmap); + m_screen->register_screen_bitmap(m_bitmap); save_item(NAME(m_bitmap)); save_item (NAME(m_screen_enable)); @@ -180,7 +180,7 @@ WRITE16_MEMBER(astrocorp_state::astrocorp_draw_sprites_w) UINT16 now = COMBINE_DATA(&m_draw_sprites); if (!old && now) - draw_sprites(m_bitmap, machine().primary_screen->visible_area()); + draw_sprites(m_bitmap, m_screen->visible_area()); } WRITE16_MEMBER(astrocorp_state::astrocorp_eeprom_w) diff --git a/src/mame/drivers/astrof.c b/src/mame/drivers/astrof.c index 1774b7178bf..f4cd6eba219 100644 --- a/src/mame/drivers/astrof.c +++ b/src/mame/drivers/astrof.c @@ -292,7 +292,7 @@ WRITE8_MEMBER(astrof_state::video_control_1_w) /* D2 - not connected in the schematics, but at one point Astro Fighter sets it to 1 */ /* D3-D7 - not connected */ - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); } @@ -313,7 +313,7 @@ void astrof_state::astrof_set_video_control_2( UINT8 data ) WRITE8_MEMBER(astrof_state::astrof_video_control_2_w) { astrof_set_video_control_2(data); - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); } @@ -331,7 +331,7 @@ void astrof_state::spfghmk2_set_video_control_2( UINT8 data ) WRITE8_MEMBER(astrof_state::spfghmk2_video_control_2_w) { spfghmk2_set_video_control_2(data); - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); } @@ -348,7 +348,7 @@ void astrof_state::tomahawk_set_video_control_2( UINT8 data ) WRITE8_MEMBER(astrof_state::tomahawk_video_control_2_w) { tomahawk_set_video_control_2(data); - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); } diff --git a/src/mame/drivers/atarig1.c b/src/mame/drivers/atarig1.c index 1563732c39b..b726ba97c9a 100644 --- a/src/mame/drivers/atarig1.c +++ b/src/mame/drivers/atarig1.c @@ -47,7 +47,7 @@ MACHINE_START_MEMBER(atarig1_state,atarig1) MACHINE_RESET_MEMBER(atarig1_state,atarig1) { atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 8); + scanline_timer_reset(*m_screen, 8); } diff --git a/src/mame/drivers/atarig42.c b/src/mame/drivers/atarig42.c index dac5afdd190..0b04e719eae 100644 --- a/src/mame/drivers/atarig42.c +++ b/src/mame/drivers/atarig42.c @@ -51,7 +51,7 @@ MACHINE_START_MEMBER(atarig42_state,atarig42) MACHINE_RESET_MEMBER(atarig42_state,atarig42) { atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 8); + scanline_timer_reset(*m_screen, 8); } diff --git a/src/mame/drivers/atarigt.c b/src/mame/drivers/atarigt.c index 191635b6751..25366b8c0d6 100644 --- a/src/mame/drivers/atarigt.c +++ b/src/mame/drivers/atarigt.c @@ -90,7 +90,7 @@ void atarigt_state::update_interrupts() MACHINE_RESET_MEMBER(atarigt_state,atarigt) { atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 8); + scanline_timer_reset(*m_screen, 8); } diff --git a/src/mame/drivers/atarigx2.c b/src/mame/drivers/atarigx2.c index 2977834df71..b3a8ef8a148 100644 --- a/src/mame/drivers/atarigx2.c +++ b/src/mame/drivers/atarigx2.c @@ -42,7 +42,7 @@ void atarigx2_state::update_interrupts() MACHINE_RESET_MEMBER(atarigx2_state,atarigx2) { atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 8); + scanline_timer_reset(*m_screen, 8); } diff --git a/src/mame/drivers/atarisy2.c b/src/mame/drivers/atarisy2.c index 8216e16891f..bfc3155b7be 100644 --- a/src/mame/drivers/atarisy2.c +++ b/src/mame/drivers/atarisy2.c @@ -221,7 +221,7 @@ MACHINE_RESET_MEMBER(atarisy2_state,atarisy2) { atarigen_state::machine_reset(); slapstic_reset(); - scanline_timer_reset(*machine().primary_screen, 64); + scanline_timer_reset(*m_screen, 64); m_maincpu->space(AS_PROGRAM).set_direct_update_handler(direct_update_delegate(FUNC(atarisy2_state::atarisy2_direct_handler), this)); diff --git a/src/mame/drivers/atetris.c b/src/mame/drivers/atetris.c index b1804c5fe0f..27252f3c46a 100644 --- a/src/mame/drivers/atetris.c +++ b/src/mame/drivers/atetris.c @@ -77,7 +77,7 @@ TIMER_CALLBACK_MEMBER(atetris_state::interrupt_gen) scanline += 32; if (scanline >= 256) scanline -= 256; - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_interrupt_timer->adjust(m_screen->time_until_pos(scanline), scanline); } @@ -120,7 +120,7 @@ void atetris_state::machine_reset() reset_bank(); /* start interrupts going (32V clocked by 16V) */ - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(48), 48); + m_interrupt_timer->adjust(m_screen->time_until_pos(48), 48); } diff --git a/src/mame/drivers/badlands.c b/src/mame/drivers/badlands.c index 541cd35bcb6..0e0b1bdf974 100644 --- a/src/mame/drivers/badlands.c +++ b/src/mame/drivers/badlands.c @@ -213,7 +213,7 @@ MACHINE_RESET_MEMBER(badlands_state,badlands) m_pedal_value[0] = m_pedal_value[1] = 0x80; atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 32); + scanline_timer_reset(*m_screen, 32); memcpy(m_bank_base, &m_bank_source_data[0x0000], 0x1000); } @@ -687,7 +687,7 @@ MACHINE_RESET_MEMBER(badlands_state,badlandsb) // m_pedal_value[0] = m_pedal_value[1] = 0x80; atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 32); + scanline_timer_reset(*m_screen, 32); // memcpy(m_bank_base, &m_bank_source_data[0x0000], 0x1000); } diff --git a/src/mame/drivers/batman.c b/src/mame/drivers/batman.c index ec126d8a528..77427df3eeb 100644 --- a/src/mame/drivers/batman.c +++ b/src/mame/drivers/batman.c @@ -73,7 +73,7 @@ WRITE16_MEMBER(batman_state::latch_w) /* alpha bank is selected by the upper 4 bits */ if ((oldword ^ m_latch_data) & 0x7000) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_vad->alpha()->mark_all_dirty(); m_alpha_tile_bank = (m_latch_data >> 12) & 7; } diff --git a/src/mame/drivers/beaminv.c b/src/mame/drivers/beaminv.c index fc3edfd936f..72f33416868 100644 --- a/src/mame/drivers/beaminv.c +++ b/src/mame/drivers/beaminv.c @@ -113,7 +113,7 @@ TIMER_CALLBACK_MEMBER(beaminv_state::interrupt_callback) next_interrupt_number = (interrupt_number + 1) % INTERRUPTS_PER_FRAME; next_vpos = interrupt_lines[next_interrupt_number]; - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(next_vpos), next_interrupt_number); + m_interrupt_timer->adjust(m_screen->time_until_pos(next_vpos), next_interrupt_number); } @@ -126,7 +126,7 @@ void beaminv_state::create_interrupt_timer() void beaminv_state::start_interrupt_timer() { int vpos = interrupt_lines[0]; - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(vpos)); + m_interrupt_timer->adjust(m_screen->time_until_pos(vpos)); } @@ -197,7 +197,7 @@ UINT32 beaminv_state::screen_update_beaminv(screen_device &screen, bitmap_rgb32 READ8_MEMBER(beaminv_state::v128_r) { - return (machine().primary_screen->vpos() >> 7) & 0x01; + return (m_screen->vpos() >> 7) & 0x01; } diff --git a/src/mame/drivers/beathead.c b/src/mame/drivers/beathead.c index fb89246d5be..4bd8aca9ae8 100644 --- a/src/mame/drivers/beathead.c +++ b/src/mame/drivers/beathead.c @@ -149,7 +149,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(beathead_state::scanline_callback) int scanline = param; /* update the video */ - machine().primary_screen->update_now(); + m_screen->update_now(); /* on scanline zero, clear any halt condition */ if (scanline == 0) @@ -165,7 +165,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(beathead_state::scanline_callback) update_interrupts(); /* set the timer for the next one */ - timer.adjust(machine().primary_screen->time_until_pos(scanline) - m_hblank_offset, scanline); + timer.adjust(m_screen->time_until_pos(scanline) - m_hblank_offset, scanline); } @@ -179,9 +179,9 @@ void beathead_state::machine_reset() memcpy(m_ram_base, m_rom_base, 0x40); /* compute the timing of the HBLANK interrupt and set the first timer */ - m_hblank_offset = machine().primary_screen->scan_period() * (455 - 336 - 25) / 455; + m_hblank_offset = m_screen->scan_period() * (455 - 336 - 25) / 455; timer_device *scanline_timer = machine().device("scan_timer"); - scanline_timer->adjust(machine().primary_screen->time_until_pos(0) - m_hblank_offset); + scanline_timer->adjust(m_screen->time_until_pos(0) - m_hblank_offset); /* reset IRQs */ m_irq_line_state = CLEAR_LINE; diff --git a/src/mame/drivers/berzerk.c b/src/mame/drivers/berzerk.c index e760ae9f410..ba4b041f390 100644 --- a/src/mame/drivers/berzerk.c +++ b/src/mame/drivers/berzerk.c @@ -217,7 +217,7 @@ TIMER_CALLBACK_MEMBER(berzerk_state::irq_callback) next_v256 = irq_trigger_v256s[next_irq_number]; next_vpos = vsync_chain_counter_to_vpos(next_counter, next_v256); - m_irq_timer->adjust(machine().primary_screen->time_until_pos(next_vpos), next_irq_number); + m_irq_timer->adjust(m_screen->time_until_pos(next_vpos), next_irq_number); } @@ -230,7 +230,7 @@ void berzerk_state::create_irq_timer() void berzerk_state::start_irq_timer() { int vpos = vsync_chain_counter_to_vpos(irq_trigger_counts[0], irq_trigger_v256s[0]); - m_irq_timer->adjust(machine().primary_screen->time_until_pos(vpos)); + m_irq_timer->adjust(m_screen->time_until_pos(vpos)); } @@ -294,7 +294,7 @@ TIMER_CALLBACK_MEMBER(berzerk_state::nmi_callback) next_v256 = nmi_trigger_v256s[next_nmi_number]; next_vpos = vsync_chain_counter_to_vpos(next_counter, next_v256); - m_nmi_timer->adjust(machine().primary_screen->time_until_pos(next_vpos), next_nmi_number); + m_nmi_timer->adjust(m_screen->time_until_pos(next_vpos), next_nmi_number); } @@ -307,7 +307,7 @@ void berzerk_state::create_nmi_timer() void berzerk_state::start_nmi_timer() { int vpos = vsync_chain_counter_to_vpos(nmi_trigger_counts[0], nmi_trigger_v256s[0]); - m_nmi_timer->adjust(machine().primary_screen->time_until_pos(vpos)); + m_nmi_timer->adjust(m_screen->time_until_pos(vpos)); } @@ -427,7 +427,7 @@ READ8_MEMBER(berzerk_state::intercept_v256_r) UINT8 counter; UINT8 v256; - vpos_to_vsync_chain_counter(machine().primary_screen->vpos(), &counter, &v256); + vpos_to_vsync_chain_counter(m_screen->vpos(), &counter, &v256); return (!m_intercept << 7) | v256; } diff --git a/src/mame/drivers/blstroid.c b/src/mame/drivers/blstroid.c index 4c00146aff4..af2b5c18b2d 100644 --- a/src/mame/drivers/blstroid.c +++ b/src/mame/drivers/blstroid.c @@ -40,14 +40,14 @@ void blstroid_state::update_interrupts() WRITE16_MEMBER(blstroid_state::blstroid_halt_until_hblank_0_w) { - halt_until_hblank_0(space.device(), *machine().primary_screen); + halt_until_hblank_0(space.device(), *m_screen); } MACHINE_RESET_MEMBER(blstroid_state,blstroid) { atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 8); + scanline_timer_reset(*m_screen, 8); } diff --git a/src/mame/drivers/boxer.c b/src/mame/drivers/boxer.c index e07bfad6261..4c0ef558ef0 100644 --- a/src/mame/drivers/boxer.c +++ b/src/mame/drivers/boxer.c @@ -120,7 +120,7 @@ TIMER_CALLBACK_MEMBER(boxer_state::periodic_callback) for (i = 1; i < 256; i++) if (mask[i] != 0) - timer_set(machine().primary_screen->time_until_pos(i), TIMER_POT_INTERRUPT, mask[i]); + timer_set(m_screen->time_until_pos(i), TIMER_POT_INTERRUPT, mask[i]); m_pot_state = 0; } @@ -130,7 +130,7 @@ TIMER_CALLBACK_MEMBER(boxer_state::periodic_callback) if (scanline >= 262) scanline = 0; - timer_set(machine().primary_screen->time_until_pos(scanline), TIMER_PERIODIC, scanline); + timer_set(m_screen->time_until_pos(scanline), TIMER_PERIODIC, scanline); } @@ -233,7 +233,7 @@ READ8_MEMBER(boxer_state::boxer_input_r) { UINT8 val = ioport("IN0")->read(); - if (ioport("IN3")->read() < machine().primary_screen->vpos()) + if (ioport("IN3")->read() < m_screen->vpos()) val |= 0x02; return (val << ((offset & 7) ^ 7)) & 0x80; @@ -251,7 +251,7 @@ READ8_MEMBER(boxer_state::boxer_misc_r) break; case 1: - val = machine().primary_screen->vpos(); + val = m_screen->vpos(); break; case 2: @@ -458,7 +458,7 @@ void boxer_state::machine_start() void boxer_state::machine_reset() { - timer_set(machine().primary_screen->time_until_pos(0), TIMER_PERIODIC); + timer_set(m_screen->time_until_pos(0), TIMER_PERIODIC); m_pot_state = 0; m_pot_latch = 0; diff --git a/src/mame/drivers/btime.c b/src/mame/drivers/btime.c index 738c023d4e2..c4eb1ba7fef 100644 --- a/src/mame/drivers/btime.c +++ b/src/mame/drivers/btime.c @@ -377,7 +377,7 @@ READ8_MEMBER(btime_state::audio_command_r) READ8_MEMBER(btime_state::zoar_dsw1_read) { - return (!machine().primary_screen->vblank() << 7) | (ioport("DSW1")->read() & 0x7f); + return (!m_screen->vblank() << 7) | (ioport("DSW1")->read() & 0x7f); } static INPUT_PORTS_START( btime ) diff --git a/src/mame/drivers/capbowl.c b/src/mame/drivers/capbowl.c index f3385105f82..36de64fa633 100644 --- a/src/mame/drivers/capbowl.c +++ b/src/mame/drivers/capbowl.c @@ -136,10 +136,10 @@ TIMER_CALLBACK_MEMBER(capbowl_state::capbowl_update) { int scanline = param; - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); scanline += 32; if (scanline > 240) scanline = 32; - timer_set(machine().primary_screen->time_until_pos(scanline), TIMER_CAPBOWL_UPDATE, scanline); + timer_set(m_screen->time_until_pos(scanline), TIMER_CAPBOWL_UPDATE, scanline); } @@ -370,7 +370,7 @@ void capbowl_state::machine_start() void capbowl_state::machine_reset() { - timer_set(machine().primary_screen->time_until_pos(32), TIMER_CAPBOWL_UPDATE, 32); + timer_set(m_screen->time_until_pos(32), TIMER_CAPBOWL_UPDATE, 32); m_blitter_addr = 0; m_last_trackball_val[0] = 0; diff --git a/src/mame/drivers/cave.c b/src/mame/drivers/cave.c index ff5503f421c..4d280faf23e 100644 --- a/src/mame/drivers/cave.c +++ b/src/mame/drivers/cave.c @@ -905,7 +905,7 @@ WRITE16_MEMBER(cave_state::tjumpman_leds_w) CUSTOM_INPUT_MEMBER(cave_state::tjumpman_hopper_r) { - return (m_hopper && !(machine().primary_screen->frame_number() % 10)) ? 0 : 1; + return (m_hopper && !(m_screen->frame_number() % 10)) ? 0 : 1; } static ADDRESS_MAP_START( tjumpman_map, AS_PROGRAM, 16, cave_state ) diff --git a/src/mame/drivers/cball.c b/src/mame/drivers/cball.c index bcae43b16ff..5d6e463d7d5 100644 --- a/src/mame/drivers/cball.c +++ b/src/mame/drivers/cball.c @@ -107,7 +107,7 @@ TIMER_CALLBACK_MEMBER(cball_state::interrupt_callback) if (scanline >= 262) scanline = 16; - timer_set(machine().primary_screen->time_until_pos(scanline), TIMER_INTERRUPT, scanline); + timer_set(m_screen->time_until_pos(scanline), TIMER_INTERRUPT, scanline); } @@ -117,7 +117,7 @@ void cball_state::machine_start() void cball_state::machine_reset() { - timer_set(machine().primary_screen->time_until_pos(16), TIMER_INTERRUPT, 16); + timer_set(m_screen->time_until_pos(16), TIMER_INTERRUPT, 16); } diff --git a/src/mame/drivers/ccastles.c b/src/mame/drivers/ccastles.c index 12bec67bf25..49e4f70e50f 100644 --- a/src/mame/drivers/ccastles.c +++ b/src/mame/drivers/ccastles.c @@ -146,7 +146,7 @@ inline void ccastles_state::schedule_next_irq( int curscanline ) break; /* next one at the start of this scanline */ - m_irq_timer->adjust(machine().primary_screen->time_until_pos(curscanline), curscanline); + m_irq_timer->adjust(m_screen->time_until_pos(curscanline), curscanline); } @@ -160,7 +160,7 @@ TIMER_CALLBACK_MEMBER(ccastles_state::clock_irq) } /* force an update now */ - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); /* find the next edge */ schedule_next_irq(param); @@ -169,7 +169,7 @@ TIMER_CALLBACK_MEMBER(ccastles_state::clock_irq) CUSTOM_INPUT_MEMBER(ccastles_state::get_vblank) { - int scanline = machine().primary_screen->vpos(); + int scanline = m_screen->vpos(); return m_syncprom[scanline & 0xff] & 1; } @@ -205,7 +205,7 @@ void ccastles_state::machine_start() /* reconfigure the visible area to match */ visarea.set(0, 255, m_vblank_end, m_vblank_start - 1); - machine().primary_screen->configure(320, 256, visarea, HZ_TO_ATTOSECONDS(PIXEL_CLOCK) * VTOTAL * HTOTAL); + m_screen->configure(320, 256, visarea, HZ_TO_ATTOSECONDS(PIXEL_CLOCK) * VTOTAL * HTOTAL); /* configure the ROM banking */ membank("bank1")->configure_entries(0, 2, memregion("maincpu")->base() + 0xa000, 0x6000); diff --git a/src/mame/drivers/cdi.c b/src/mame/drivers/cdi.c index 6993501e047..0feeb7283aa 100644 --- a/src/mame/drivers/cdi.c +++ b/src/mame/drivers/cdi.c @@ -326,6 +326,8 @@ static MACHINE_CONFIG_START( cdi, cdi_state ) MCFG_CPU_PROGRAM_MAP(cdimono1_mem) MCFG_MCD212_ADD("mcd212") + MCFG_MCD212_SET_SCREEN("screen") + MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_REFRESH_RATE(60) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) diff --git a/src/mame/drivers/centiped.c b/src/mame/drivers/centiped.c index 7b7ede7fdf3..e15df69e025 100644 --- a/src/mame/drivers/centiped.c +++ b/src/mame/drivers/centiped.c @@ -450,7 +450,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(centiped_state::generate_interrupt) m_maincpu->set_input_line(0, ((scanline - 1) & 32) ? ASSERT_LINE : CLEAR_LINE); /* do a partial update now to handle sprite multiplexing (Maze Invaders) */ - machine().primary_screen->update_partial(scanline); + m_screen->update_partial(scanline); } diff --git a/src/mame/drivers/champbwl.c b/src/mame/drivers/champbwl.c index 0af1f4e9658..f5e4aaf7434 100644 --- a/src/mame/drivers/champbwl.c +++ b/src/mame/drivers/champbwl.c @@ -461,7 +461,7 @@ UINT32 champbwl_state::screen_update_champbwl(screen_device &screen, bitmap_ind1 m_seta001->set_fg_yoffsets( -0x12, 0x0e ); m_seta001->set_bg_yoffsets( 0x1, -0x1 ); - m_seta001->draw_sprites(bitmap, cliprect, 0x800, 1 ); + m_seta001->draw_sprites(screen, bitmap, cliprect, 0x800, 1 ); return 0; } @@ -520,7 +520,7 @@ UINT32 champbwl_state::screen_update_doraemon(screen_device &screen, bitmap_ind1 m_seta001->set_bg_yoffsets( 0x00, 0x01 ); m_seta001->set_fg_yoffsets( 0x00, 0x10 ); - m_seta001->draw_sprites(bitmap, cliprect, 0x800, 1 ); + m_seta001->draw_sprites(screen, bitmap, cliprect, 0x800, 1 ); return 0; } diff --git a/src/mame/drivers/changela.c b/src/mame/drivers/changela.c index a987e1972ed..018adaff950 100644 --- a/src/mame/drivers/changela.c +++ b/src/mame/drivers/changela.c @@ -159,7 +159,7 @@ READ8_MEMBER(changela_state::changela_2d_r) int v8 = 0; int gas; - if ((machine().primary_screen->vpos() & 0xf8) == 0xf8) + if ((m_screen->vpos() & 0xf8) == 0xf8) v8 = 1; /* Gas pedal is made up of 2 switches, 1 active low, 1 active high */ diff --git a/src/mame/drivers/chinagat.c b/src/mame/drivers/chinagat.c index 9fcb8e0df2b..0dc109c94bc 100644 --- a/src/mame/drivers/chinagat.c +++ b/src/mame/drivers/chinagat.c @@ -138,13 +138,13 @@ VIDEO_START_MEMBER(chinagat_state,chinagat) TIMER_DEVICE_CALLBACK_MEMBER(chinagat_state::chinagat_scanline) { int scanline = param; - int screen_height = machine().primary_screen->height(); + int screen_height = m_screen->height(); int vcount_old = scanline_to_vcount((scanline == 0) ? screen_height - 1 : scanline - 1); int vcount = scanline_to_vcount(scanline); /* update to the current point */ if (scanline > 0) - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); /* on the rising edge of VBLK (vcount == F8), signal an NMI */ if (vcount == 0xf8) diff --git a/src/mame/drivers/cinemat.c b/src/mame/drivers/cinemat.c index c59f173fff9..e70eddaa030 100644 --- a/src/mame/drivers/cinemat.c +++ b/src/mame/drivers/cinemat.c @@ -262,8 +262,8 @@ READ8_MEMBER(cinemat_state::boxingb_dial_r) READ8_MEMBER(cinemat_state::qb3_frame_r) { - attotime next_update = machine().primary_screen->time_until_update(); - attotime frame_period = machine().primary_screen->frame_period(); + attotime next_update = m_screen->time_until_update(); + attotime frame_period = m_screen->frame_period(); int percent = next_update.attoseconds / (frame_period.attoseconds / 100); /* note this is just an approximation... */ diff --git a/src/mame/drivers/cliffhgr.c b/src/mame/drivers/cliffhgr.c index c486d7c6037..f49ba01f1bf 100644 --- a/src/mame/drivers/cliffhgr.c +++ b/src/mame/drivers/cliffhgr.c @@ -213,7 +213,7 @@ TIMER_CALLBACK_MEMBER(cliffhgr_state::cliff_irq_callback) m_maincpu->set_input_line(0, ASSERT_LINE); } - m_irq_timer->adjust(machine().primary_screen->time_until_pos(param * 2), param); + m_irq_timer->adjust(m_screen->time_until_pos(param * 2), param); } WRITE_LINE_MEMBER(cliffhgr_state::vdp_interrupt) @@ -232,7 +232,7 @@ void cliffhgr_state::machine_reset() { m_port_bank = 0; m_phillips_code = 0; - m_irq_timer->adjust(machine().primary_screen->time_until_pos(17), 17); + m_irq_timer->adjust(m_screen->time_until_pos(17), 17); } /********************************************************/ diff --git a/src/mame/drivers/cloud9.c b/src/mame/drivers/cloud9.c index 7f634aa26c6..af1e1ebc78e 100644 --- a/src/mame/drivers/cloud9.c +++ b/src/mame/drivers/cloud9.c @@ -116,7 +116,7 @@ inline void cloud9_state::schedule_next_irq(int curscanline) curscanline = (curscanline + 64) & 255; /* next one at the start of this scanline */ - m_irq_timer->adjust(machine().primary_screen->time_until_pos(curscanline), curscanline); + m_irq_timer->adjust(m_screen->time_until_pos(curscanline), curscanline); } @@ -130,7 +130,7 @@ TIMER_CALLBACK_MEMBER(cloud9_state::clock_irq) } /* force an update now */ - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); /* find the next edge */ schedule_next_irq(param); @@ -139,7 +139,7 @@ TIMER_CALLBACK_MEMBER(cloud9_state::clock_irq) CUSTOM_INPUT_MEMBER(cloud9_state::get_vblank) { - int scanline = machine().primary_screen->vpos(); + int scanline = m_screen->vpos(); return (~m_syncprom[scanline & 0xff] >> 1) & 1; } @@ -175,7 +175,7 @@ void cloud9_state::machine_start() /* reconfigure the visible area to match */ visarea.set(0, 255, m_vblank_end + 1, m_vblank_start); - machine().primary_screen->configure(320, 256, visarea, HZ_TO_ATTOSECONDS(PIXEL_CLOCK) * VTOTAL * HTOTAL); + m_screen->configure(320, 256, visarea, HZ_TO_ATTOSECONDS(PIXEL_CLOCK) * VTOTAL * HTOTAL); /* create a timer for IRQs and set up the first callback */ m_irq_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(cloud9_state::clock_irq),this)); diff --git a/src/mame/drivers/cninja.c b/src/mame/drivers/cninja.c index d1843afa0af..bd5fd7c0c19 100644 --- a/src/mame/drivers/cninja.c +++ b/src/mame/drivers/cninja.c @@ -110,7 +110,7 @@ WRITE16_MEMBER(cninja_state::cninja_irq_w) && m_scanline > 0 && m_scanline < 240) - m_raster_irq_timer->adjust(machine().primary_screen->time_until_pos(m_scanline), m_scanline); + m_raster_irq_timer->adjust(m_screen->time_until_pos(m_scanline), m_scanline); else m_raster_irq_timer->reset(); return; @@ -127,14 +127,14 @@ WRITE16_MEMBER(cninja_state::cninja_irq_w) WRITE16_MEMBER(cninja_state::cninja_pf12_control_w) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_deco_tilegen1->pf_control_w(space, offset, data, mem_mask); } WRITE16_MEMBER(cninja_state::cninja_pf34_control_w) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_deco_tilegen2->pf_control_w(space, offset, data, mem_mask); } diff --git a/src/mame/drivers/coolridr.c b/src/mame/drivers/coolridr.c index 67eca955810..c25c5699fb2 100644 --- a/src/mame/drivers/coolridr.c +++ b/src/mame/drivers/coolridr.c @@ -547,15 +547,15 @@ void coolridr_state::video_start() if (machine().gfx[m_gfx_index] == 0) break; - machine().primary_screen->register_screen_bitmap(m_temp_bitmap_sprites); - machine().primary_screen->register_screen_bitmap(m_temp_bitmap_sprites2); - //machine().primary_screen->register_screen_bitmap(m_zbuffer_bitmap); - //machine().primary_screen->register_screen_bitmap(m_zbuffer_bitmap2); - machine().primary_screen->register_screen_bitmap(m_bg_bitmap); - machine().primary_screen->register_screen_bitmap(m_bg_bitmap2); + m_screen->register_screen_bitmap(m_temp_bitmap_sprites); + m_screen->register_screen_bitmap(m_temp_bitmap_sprites2); + //m_screen->register_screen_bitmap(m_zbuffer_bitmap); + //m_screen->register_screen_bitmap(m_zbuffer_bitmap2); + m_screen->register_screen_bitmap(m_bg_bitmap); + m_screen->register_screen_bitmap(m_bg_bitmap2); - machine().primary_screen->register_screen_bitmap(m_screen1_bitmap); - machine().primary_screen->register_screen_bitmap(m_screen2_bitmap); + m_screen->register_screen_bitmap(m_screen1_bitmap); + m_screen->register_screen_bitmap(m_screen2_bitmap); machine().gfx[m_gfx_index] = auto_alloc(machine(), gfx_element(machine(), h1_tile_layout, m_h1_pcg, 8, 0)); } @@ -2546,7 +2546,7 @@ WRITE32_MEMBER(coolridr_state::sysh1_fb_data_w) printf("Blitter Clear Count == 3 used with param %08x\n",data); { - const rectangle& visarea = machine().primary_screen->visible_area(); + const rectangle& visarea = m_screen->visible_area(); if(m_blitterClearMode == 0x8c200000) { diff --git a/src/mame/drivers/copsnrob.c b/src/mame/drivers/copsnrob.c index 45c786a96be..b5a63472ab0 100644 --- a/src/mame/drivers/copsnrob.c +++ b/src/mame/drivers/copsnrob.c @@ -81,7 +81,7 @@ void copsnrob_state::palette_init() READ8_MEMBER(copsnrob_state::copsnrob_misc_r) { - return machine().primary_screen->vblank() ? 0x00 : 0x80; + return m_screen->vblank() ? 0x00 : 0x80; } WRITE8_MEMBER(copsnrob_state::copsnrob_misc2_w) diff --git a/src/mame/drivers/corona.c b/src/mame/drivers/corona.c index 473b4914d44..4a8feb5a022 100644 --- a/src/mame/drivers/corona.c +++ b/src/mame/drivers/corona.c @@ -418,7 +418,7 @@ READ8_MEMBER(corona_state::blitter_status_r) -x-- ---- vblank */ - return 0x80 | ((machine().primary_screen->vblank() & 1) << 6); + return 0x80 | ((m_screen->vblank() & 1) << 6); } void corona_state::blitter_execute(int x, int y, int color, int width, int flag) diff --git a/src/mame/drivers/cosmic.c b/src/mame/drivers/cosmic.c index e7d06a11a90..ddfe377c861 100644 --- a/src/mame/drivers/cosmic.c +++ b/src/mame/drivers/cosmic.c @@ -306,13 +306,13 @@ WRITE8_MEMBER(cosmic_state::cosmica_sound_output_w) READ8_MEMBER(cosmic_state::cosmica_pixel_clock_r) { - return (machine().primary_screen->vpos() >> 2) & 0x3f; + return (m_screen->vpos() >> 2) & 0x3f; } READ8_MEMBER(cosmic_state::cosmicg_port_0_r) { /* The top four address lines from the CRTC are bits 0-3 */ - return (ioport("IN0")->read() & 0xf0) | ((machine().primary_screen->vpos() & 0xf0) >> 4); + return (ioport("IN0")->read() & 0xf0) | ((m_screen->vpos() & 0xf0) >> 4); } READ8_MEMBER(cosmic_state::magspot_coinage_dip_r) diff --git a/src/mame/drivers/cps2.c b/src/mame/drivers/cps2.c index 353d62f6288..cbdab621839 100644 --- a/src/mame/drivers/cps2.c +++ b/src/mame/drivers/cps2.c @@ -641,7 +641,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(cps_state::cps2_interrupt) m_cps_b_regs[0x10/2] = 0; m_maincpu->set_input_line(4, HOLD_LINE); cps2_set_sprite_priorities(); - timer.machine().primary_screen->update_partial(param); + m_screen->update_partial(param); m_scancalls++; // popmessage("IRQ4 scancounter = %04i", param); } @@ -652,7 +652,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(cps_state::cps2_interrupt) m_cps_b_regs[0x12 / 2] = 0; m_maincpu->set_input_line(4, HOLD_LINE); cps2_set_sprite_priorities(); - timer.machine().primary_screen->update_partial(param); + m_screen->update_partial(param); m_scancalls++; // popmessage("IRQ4 scancounter = %04i", param); } @@ -665,7 +665,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(cps_state::cps2_interrupt) if(m_scancalls) { cps2_set_sprite_priorities(); - timer.machine().primary_screen->update_partial(256); + m_screen->update_partial(256); } cps2_objram_latch(); } diff --git a/src/mame/drivers/cps3.c b/src/mame/drivers/cps3.c index 91b54e9d3df..62b4e171437 100644 --- a/src/mame/drivers/cps3.c +++ b/src/mame/drivers/cps3.c @@ -1130,7 +1130,7 @@ UINT32 cps3_state::screen_update_cps3(screen_device &screen, bitmap_rgb32 &bitma if (current_ypos&0x200) current_ypos-=0x400; - //if ( (whichbpp) && (machine().primary_screen->frame_number() & 1)) continue; + //if ( (whichbpp) && (m_screen->frame_number() & 1)) continue; /* use the palette value from the main list or the sublists? */ if (whichpal) diff --git a/src/mame/drivers/cubeqst.c b/src/mame/drivers/cubeqst.c index ab787fd09ba..67e0db77378 100644 --- a/src/mame/drivers/cubeqst.c +++ b/src/mame/drivers/cubeqst.c @@ -116,7 +116,7 @@ void cubeqst_state::palette_init() WRITE16_MEMBER(cubeqst_state::palette_w) { - machine().primary_screen->update_now(); + m_screen->update_now(); COMBINE_DATA(&m_generic_paletteram_16[offset]); } @@ -199,7 +199,7 @@ UINT32 cubeqst_state::screen_update_cubeqst(screen_device &screen, bitmap_rgb32 READ16_MEMBER(cubeqst_state::line_r) { /* I think this is unusued */ - return machine().primary_screen->vpos(); + return m_screen->vpos(); } INTERRUPT_GEN_MEMBER(cubeqst_state::vblank) diff --git a/src/mame/drivers/cyberbal.c b/src/mame/drivers/cyberbal.c index 46fc0109b99..3ad685eb303 100644 --- a/src/mame/drivers/cyberbal.c +++ b/src/mame/drivers/cyberbal.c @@ -62,7 +62,7 @@ MACHINE_START_MEMBER(cyberbal_state,cyberbal) MACHINE_RESET_MEMBER(cyberbal_state,cyberbal) { atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 8); + scanline_timer_reset(*m_screen, 8); cyberbal_sound_reset(); @@ -74,7 +74,7 @@ MACHINE_RESET_MEMBER(cyberbal_state,cyberbal) MACHINE_RESET_MEMBER(cyberbal_state,cyberbal2p) { atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 8); + scanline_timer_reset(*m_screen, 8); } diff --git a/src/mame/drivers/ddenlovr.c b/src/mame/drivers/ddenlovr.c index 1d9b6818621..6cdec254519 100644 --- a/src/mame/drivers/ddenlovr.c +++ b/src/mame/drivers/ddenlovr.c @@ -3270,7 +3270,7 @@ ADDRESS_MAP_END UINT8 ddenlovr_state::hgokou_player_r(int player ) { - UINT8 hopper_bit = ((m_hopper && !(machine().primary_screen->frame_number() % 10)) ? 0 : (1 << 6)); + UINT8 hopper_bit = ((m_hopper && !(m_screen->frame_number() % 10)) ? 0 : (1 << 6)); if (!BIT(m_input_sel, 0)) return ioport(player ? "KEY5" : "KEY0")->read() | hopper_bit; if (!BIT(m_input_sel, 1)) return ioport(player ? "KEY6" : "KEY1")->read() | hopper_bit; @@ -4120,7 +4120,7 @@ READ8_MEMBER(ddenlovr_state::htengoku_coin_r) { case 0x00: return ioport("COINS")->read(); case 0x01: return 0xff; //? - case 0x02: return 0xbf | ((m_hopper && !(machine().primary_screen->frame_number() % 10)) ? 0 : (1 << 6)); // bit 7 = blitter busy, bit 6 = hopper + case 0x02: return 0xbf | ((m_hopper && !(m_screen->frame_number() % 10)) ? 0 : (1 << 6)); // bit 7 = blitter busy, bit 6 = hopper case 0x03: return m_coins; } logerror("%04x: coin_r with select = %02x\n", space.device().safe_pc(), m_input_sel); @@ -4254,7 +4254,7 @@ READ8_MEMBER(ddenlovr_state::daimyojn_keyb1_r) { UINT8 val = 0x3f; - UINT8 hopper_bit = ((m_hopper && !(machine().primary_screen->frame_number() % 10)) ? 0 : (1 << 6)); + UINT8 hopper_bit = ((m_hopper && !(m_screen->frame_number() % 10)) ? 0 : (1 << 6)); if (!BIT(m_keyb, 0)) val = ioport("KEY0")->read() | hopper_bit; else if (!BIT(m_keyb, 1)) val = ioport("KEY1")->read() | hopper_bit; diff --git a/src/mame/drivers/ddragon.c b/src/mame/drivers/ddragon.c index 1e0793ff2ab..5f0560d69e2 100644 --- a/src/mame/drivers/ddragon.c +++ b/src/mame/drivers/ddragon.c @@ -119,13 +119,13 @@ int ddragon_state::scanline_to_vcount( int scanline ) TIMER_DEVICE_CALLBACK_MEMBER(ddragon_state::ddragon_scanline) { int scanline = param; - int screen_height = machine().primary_screen->height(); + int screen_height = m_screen->height(); int vcount_old = scanline_to_vcount((scanline == 0) ? screen_height - 1 : scanline - 1); int vcount = scanline_to_vcount(scanline); /* update to the current point */ if (scanline > 0) - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); /* on the rising edge of VBLK (vcount == F8), signal an NMI */ if (vcount == 0xf8) diff --git a/src/mame/drivers/ddragon3.c b/src/mame/drivers/ddragon3.c index 8dc7477a181..3be80762768 100644 --- a/src/mame/drivers/ddragon3.c +++ b/src/mame/drivers/ddragon3.c @@ -520,14 +520,14 @@ TIMER_DEVICE_CALLBACK_MEMBER(ddragon3_state::ddragon3_scanline) if (scanline % 16 == 0) { if (scanline > 0) - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); m_maincpu->set_input_line(5, ASSERT_LINE); } /* Vblank is raised on scanline 248 */ if (scanline == 248) { - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); m_maincpu->set_input_line(6, ASSERT_LINE); } } diff --git a/src/mame/drivers/deco32.c b/src/mame/drivers/deco32.c index 7d381cbb7d0..dc38e41132a 100644 --- a/src/mame/drivers/deco32.c +++ b/src/mame/drivers/deco32.c @@ -301,7 +301,7 @@ READ32_MEMBER(deco32_state::deco32_irq_controller_r) /* ZV03082007 - video_screen_get_vblank() doesn't work for Captain America, as it expects that this bit is NOT set in rows 0-7. */ - vblank = machine().primary_screen->vpos() > machine().primary_screen->visible_area().max_y; + vblank = m_screen->vpos() > m_screen->visible_area().max_y; if (vblank) return 0xffffff80 | 0x1 | 0x10; /* Assume VBL takes priority over possible raster/lightgun irq */ @@ -327,7 +327,7 @@ WRITE32_MEMBER(deco32_state::deco32_irq_controller_w) scanline=(data&0xff); if (m_raster_enable && scanline>0 && scanline<240) { - m_raster_irq_timer->adjust(machine().primary_screen->time_until_pos(scanline-1, 0)); + m_raster_irq_timer->adjust(m_screen->time_until_pos(scanline-1, 0)); } else m_raster_irq_timer->reset(); diff --git a/src/mame/drivers/deco_ld.c b/src/mame/drivers/deco_ld.c index 21023faf2d9..8465d27a50d 100644 --- a/src/mame/drivers/deco_ld.c +++ b/src/mame/drivers/deco_ld.c @@ -315,7 +315,7 @@ ADDRESS_MAP_END CUSTOM_INPUT_MEMBER( deco_ld_state::begas_vblank_r ) { - return machine().primary_screen->vpos() >= 240*2; + return m_screen->vpos() >= 240*2; } INPUT_CHANGED_MEMBER(deco_ld_state::coin_inserted) diff --git a/src/mame/drivers/deco_mlc.c b/src/mame/drivers/deco_mlc.c index aba9a4e0f22..8639d1c94d0 100644 --- a/src/mame/drivers/deco_mlc.c +++ b/src/mame/drivers/deco_mlc.c @@ -174,8 +174,8 @@ READ32_MEMBER(deco_mlc_state::mlc_20007c_r) READ32_MEMBER(deco_mlc_state::mlc_scanline_r) { -// logerror("read scanline counter (%d)\n", machine().primary_screen->vpos()); - return machine().primary_screen->vpos(); +// logerror("read scanline counter (%d)\n", m_screen->vpos()); + return m_screen->vpos(); } @@ -212,7 +212,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(deco_mlc_state::interrupt_gen) WRITE32_MEMBER(deco_mlc_state::mlc_irq_w) { -// int scanline=machine().primary_screen->vpos(); +// int scanline=m_screen->vpos(); COMBINE_DATA(&m_irq_ram[offset]); @@ -222,8 +222,8 @@ WRITE32_MEMBER(deco_mlc_state::mlc_irq_w) m_maincpu->set_input_line(m_mainCpuIsArm ? ARM_IRQ_LINE : 1, CLEAR_LINE); return; case 0x14: /* Prepare scanline interrupt */ - m_raster_irq_timer->adjust(machine().primary_screen->time_until_pos(m_irq_ram[0x14/4])); - //logerror("prepare scanline to fire at %d (currently on %d)\n", m_irq_ram[0x14/4], machine().primary_screen->vpos()); + m_raster_irq_timer->adjust(m_screen->time_until_pos(m_irq_ram[0x14/4])); + //logerror("prepare scanline to fire at %d (currently on %d)\n", m_irq_ram[0x14/4], m_screen->vpos()); return; default: diff --git a/src/mame/drivers/destroyr.c b/src/mame/drivers/destroyr.c index bb8c1d6052e..6fbc8949f36 100644 --- a/src/mame/drivers/destroyr.c +++ b/src/mame/drivers/destroyr.c @@ -176,14 +176,14 @@ TIMER_CALLBACK_MEMBER(destroyr_state::destroyr_frame_callback) m_potsense[1] = 0; /* PCB supports two dials, but cab has only got one */ - timer_set(machine().primary_screen->time_until_pos(ioport("PADDLE")->read()), TIMER_DESTROYR_DIAL); - timer_set(machine().primary_screen->time_until_pos(0), TIMER_DESTROYR_FRAME); + timer_set(m_screen->time_until_pos(ioport("PADDLE")->read()), TIMER_DESTROYR_DIAL); + timer_set(m_screen->time_until_pos(0), TIMER_DESTROYR_FRAME); } void destroyr_state::machine_reset() { - timer_set(machine().primary_screen->time_until_pos(0), TIMER_DESTROYR_FRAME); + timer_set(m_screen->time_until_pos(0), TIMER_DESTROYR_FRAME); m_cursor = 0; m_wavemod = 0; @@ -282,7 +282,7 @@ READ8_MEMBER(destroyr_state::destroyr_input_r) READ8_MEMBER(destroyr_state::destroyr_scanline_r) { - return machine().primary_screen->vpos(); + return m_screen->vpos(); } diff --git a/src/mame/drivers/diverboy.c b/src/mame/drivers/diverboy.c index 5cea3474a25..34a3af8cf53 100644 --- a/src/mame/drivers/diverboy.c +++ b/src/mame/drivers/diverboy.c @@ -105,7 +105,7 @@ void diverboy_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &clipr bank = (source[1] & 0x0002) >> 1; - if (!flash || (machine().primary_screen->frame_number() & 1)) + if (!flash || (m_screen->frame_number() & 1)) { drawgfx_transpen(bitmap,cliprect,machine().gfx[bank], number, diff --git a/src/mame/drivers/dorachan.c b/src/mame/drivers/dorachan.c index be5479ac045..9430e1aae02 100644 --- a/src/mame/drivers/dorachan.c +++ b/src/mame/drivers/dorachan.c @@ -134,7 +134,7 @@ WRITE8_MEMBER(dorachan_state::dorachan_ctrl_w) CUSTOM_INPUT_MEMBER(dorachan_state::dorachan_v128_r) { /* to avoid resetting (when player 2 starts) bit 0 need to be inverted when screen is flipped */ - return ((machine().primary_screen->vpos() >> 7) & 0x01) ^ m_flip_screen; + return ((m_screen->vpos() >> 7) & 0x01) ^ m_flip_screen; } diff --git a/src/mame/drivers/dotrikun.c b/src/mame/drivers/dotrikun.c index 91014491923..31906749e9d 100644 --- a/src/mame/drivers/dotrikun.c +++ b/src/mame/drivers/dotrikun.c @@ -61,7 +61,7 @@ WRITE8_MEMBER(dotrikun_state::dotrikun_color_w) */ m_color = data; - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); } diff --git a/src/mame/drivers/dragrace.c b/src/mame/drivers/dragrace.c index 1c77096ea7a..ee7ea2455be 100644 --- a/src/mame/drivers/dragrace.c +++ b/src/mame/drivers/dragrace.c @@ -157,7 +157,7 @@ READ8_MEMBER(dragrace_state::dragrace_steering_r) READ8_MEMBER(dragrace_state::dragrace_scanline_r) { - return (machine().primary_screen->vpos() ^ 0xf0) | 0x0f; + return (m_screen->vpos() ^ 0xf0) | 0x0f; } diff --git a/src/mame/drivers/dunhuang.c b/src/mame/drivers/dunhuang.c index 95656b9b89d..2dcd615078c 100644 --- a/src/mame/drivers/dunhuang.c +++ b/src/mame/drivers/dunhuang.c @@ -438,7 +438,7 @@ WRITE8_MEMBER(dunhuang_state::dunhuang_input_w) READ8_MEMBER(dunhuang_state::dunhuang_service_r) { return ioport("SERVICE")->read() - | ((m_hopper && !(machine().primary_screen->frame_number() % 10)) ? 0x00 : 0x08) // bit 3: hopper sensor + | ((m_hopper && !(m_screen->frame_number() % 10)) ? 0x00 : 0x08) // bit 3: hopper sensor | 0x80 // bit 7 low -> tiles block transferrer busy ; } diff --git a/src/mame/drivers/enigma2.c b/src/mame/drivers/enigma2.c index b03b55a42b0..d076473268b 100644 --- a/src/mame/drivers/enigma2.c +++ b/src/mame/drivers/enigma2.c @@ -134,7 +134,7 @@ TIMER_CALLBACK_MEMBER(enigma2_state::interrupt_assert_callback) int next_vpos; /* compute vector and set the interrupt line */ - int vpos = machine().primary_screen->vpos(); + int vpos = m_screen->vpos(); UINT16 counter = vpos_to_vysnc_chain_counter(vpos); UINT8 vector = 0xc7 | ((counter & 0x80) >> 3) | ((~counter & 0x80) >> 4); m_maincpu->set_input_line_and_vector(0, ASSERT_LINE, vector); @@ -146,8 +146,8 @@ TIMER_CALLBACK_MEMBER(enigma2_state::interrupt_assert_callback) next_counter = INT_TRIGGER_COUNT_1; next_vpos = vysnc_chain_counter_to_vpos(next_counter); - m_interrupt_assert_timer->adjust(machine().primary_screen->time_until_pos(next_vpos)); - m_interrupt_clear_timer->adjust(machine().primary_screen->time_until_pos(vpos + 1)); + m_interrupt_assert_timer->adjust(m_screen->time_until_pos(next_vpos)); + m_interrupt_clear_timer->adjust(m_screen->time_until_pos(vpos + 1)); } @@ -161,7 +161,7 @@ void enigma2_state::create_interrupt_timers( ) void enigma2_state::start_interrupt_timers( ) { int vpos = vysnc_chain_counter_to_vpos(INT_TRIGGER_COUNT_1); - m_interrupt_assert_timer->adjust(machine().primary_screen->time_until_pos(vpos)); + m_interrupt_assert_timer->adjust(m_screen->time_until_pos(vpos)); } diff --git a/src/mame/drivers/eolithsp.c b/src/mame/drivers/eolithsp.c index 44d17194a33..6a2be221534 100644 --- a/src/mame/drivers/eolithsp.c +++ b/src/mame/drivers/eolithsp.c @@ -113,7 +113,7 @@ CUSTOM_INPUT_MEMBER(eolith_state::eolith_speedup_getvblank) // printf("%s:eolith speedup_read data %02x\n",machine().describe_context(), eolith_vblank); - return (machine().primary_screen->vpos() >= 240); + return (m_screen->vpos() >= 240); } // StealSee doesn't use interrupts, just the vblank @@ -125,5 +125,5 @@ CUSTOM_INPUT_MEMBER(eolith_state::stealsee_speedup_getvblank) if(!eolith_vblank) m_maincpu->eat_cycles(500); - return (machine().primary_screen->vpos() >= 240); + return (m_screen->vpos() >= 240); } diff --git a/src/mame/drivers/eprom.c b/src/mame/drivers/eprom.c index a7968ce7b79..c08e770dccf 100644 --- a/src/mame/drivers/eprom.c +++ b/src/mame/drivers/eprom.c @@ -49,7 +49,7 @@ void eprom_state::update_interrupts() MACHINE_RESET_MEMBER(eprom_state,eprom) { atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 8); + scanline_timer_reset(*m_screen, 8); } diff --git a/src/mame/drivers/esripsys.c b/src/mame/drivers/esripsys.c index fab44fb05dd..d7a44d13bdd 100644 --- a/src/mame/drivers/esripsys.c +++ b/src/mame/drivers/esripsys.c @@ -94,7 +94,7 @@ READ8_MEMBER(esripsys_state::uart_r) READ8_MEMBER(esripsys_state::g_status_r) { int bank4 = BIT(m_videocpu->get_rip_status(), 2); - int vblank = machine().primary_screen->vblank(); + int vblank = m_screen->vblank(); return (!vblank << 7) | (bank4 << 6) | (m_f_status & 0x2f); } @@ -141,7 +141,7 @@ WRITE8_MEMBER(esripsys_state::g_status_w) READ8_MEMBER(esripsys_state::f_status_r) { - int vblank = machine().primary_screen->vblank(); + int vblank = m_screen->vblank(); UINT8 rip_status = m_videocpu->get_rip_status(); rip_status = (rip_status & 0x18) | (BIT(rip_status, 6) << 1) | BIT(rip_status, 7); diff --git a/src/mame/drivers/fantland.c b/src/mame/drivers/fantland.c index 32a8ddcc64b..972868148fa 100644 --- a/src/mame/drivers/fantland.c +++ b/src/mame/drivers/fantland.c @@ -190,7 +190,7 @@ READ8_MEMBER(fantland_state::borntofi_inputs_r) x = ioport(offset ? "P2 Trackball X" : "P1 Trackball X")->read(); y = ioport(offset ? "P2 Trackball Y" : "P1 Trackball Y")->read(); - f = machine().primary_screen->frame_number(); + f = m_screen->frame_number(); m_input_ret[offset] = (m_input_ret[offset] & 0x14) | (ioport(offset ? "P2_TRACK" : "P1_TRACK")->read() & 0xc3); diff --git a/src/mame/drivers/fgoal.c b/src/mame/drivers/fgoal.c index 9a7aa03a377..7873ddca9d3 100644 --- a/src/mame/drivers/fgoal.c +++ b/src/mame/drivers/fgoal.c @@ -93,12 +93,12 @@ TIMER_CALLBACK_MEMBER(fgoal_state::interrupt_callback) m_prev_coin = coin; - scanline = machine().primary_screen->vpos() + 128; + scanline = m_screen->vpos() + 128; if (scanline > 256) scanline = 0; - timer_set(machine().primary_screen->time_until_pos(scanline), TIMER_INTERRUPT); + timer_set(m_screen->time_until_pos(scanline), TIMER_INTERRUPT); } @@ -116,7 +116,7 @@ READ8_MEMBER(fgoal_state::fgoal_analog_r) CUSTOM_INPUT_MEMBER(fgoal_state::fgoal_80_r) { - UINT8 ret = (machine().primary_screen->vpos() & 0x80) ? 1 : 0; + UINT8 ret = (m_screen->vpos() & 0x80) ? 1 : 0; return ret; } @@ -349,7 +349,7 @@ void fgoal_state::machine_start() void fgoal_state::machine_reset() { - timer_set(machine().primary_screen->time_until_pos(0), TIMER_INTERRUPT); + timer_set(m_screen->time_until_pos(0), TIMER_INTERRUPT); m_xpos = 0; m_ypos = 0; diff --git a/src/mame/drivers/firefox.c b/src/mame/drivers/firefox.c index 1d39b2e540d..18b92561c77 100644 --- a/src/mame/drivers/firefox.c +++ b/src/mame/drivers/firefox.c @@ -218,7 +218,7 @@ void firefox_state::video_start() { m_bgtiles = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(firefox_state::bgtile_get_info),this), TILEMAP_SCAN_ROWS, 8,8, 64,64); m_bgtiles->set_transparent_pen(0); - m_bgtiles->set_scrolldy(machine().primary_screen->visible_area().min_y, 0); + m_bgtiles->set_scrolldy(m_screen->visible_area().min_y, 0); } @@ -259,7 +259,7 @@ UINT32 firefox_state::screen_update_firefox(screen_device &screen, bitmap_rgb32 TIMER_DEVICE_CALLBACK_MEMBER(firefox_state::video_timer_callback) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_maincpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE ); } diff --git a/src/mame/drivers/firetrk.c b/src/mame/drivers/firetrk.c index 2b0ae2bc7dc..5195511ea53 100644 --- a/src/mame/drivers/firetrk.c +++ b/src/mame/drivers/firetrk.c @@ -80,7 +80,7 @@ TIMER_CALLBACK_MEMBER(firetrk_state::periodic_callback) if (scanline > 262) scanline = 0; - timer_set(machine().primary_screen->time_until_pos(scanline), TIMER_PERIODIC, scanline); + timer_set(m_screen->time_until_pos(scanline), TIMER_PERIODIC, scanline); } diff --git a/src/mame/drivers/flyball.c b/src/mame/drivers/flyball.c index 525e8796db2..2dd968e43a3 100644 --- a/src/mame/drivers/flyball.c +++ b/src/mame/drivers/flyball.c @@ -182,12 +182,12 @@ TIMER_CALLBACK_MEMBER(flyball_state::flyball_quarter_callback) for (i = 0; i < 64; i++) if (potsense[i] != 0) - timer_set(machine().primary_screen->time_until_pos(scanline + i), TIMER_FLYBALL_JOYSTICK, potsense[i]); + timer_set(m_screen->time_until_pos(scanline + i), TIMER_FLYBALL_JOYSTICK, potsense[i]); scanline += 0x40; scanline &= 0xff; - timer_set(machine().primary_screen->time_until_pos(scanline), TIMER_FLYBALL_QUARTER, scanline); + timer_set(m_screen->time_until_pos(scanline), TIMER_FLYBALL_QUARTER, scanline); m_potsense = 0; m_potmask = 0; @@ -208,7 +208,7 @@ READ8_MEMBER(flyball_state::flyball_input_r) READ8_MEMBER(flyball_state::flyball_scanline_r) { - return machine().primary_screen->vpos() & 0x3f; + return m_screen->vpos() & 0x3f; } READ8_MEMBER(flyball_state::flyball_potsense_r) @@ -421,7 +421,7 @@ void flyball_state::machine_reset() m_maincpu->reset(); - timer_set(machine().primary_screen->time_until_pos(0), TIMER_FLYBALL_QUARTER); + timer_set(m_screen->time_until_pos(0), TIMER_FLYBALL_QUARTER); m_pitcher_vert = 0; m_pitcher_horz = 0; diff --git a/src/mame/drivers/foodf.c b/src/mame/drivers/foodf.c index 7bd6d75724c..2daec67f343 100644 --- a/src/mame/drivers/foodf.c +++ b/src/mame/drivers/foodf.c @@ -130,7 +130,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(foodf_state::scanline_update_timer) scanline = 0; /* set a timer for it */ - timer.adjust(machine().primary_screen->time_until_pos(scanline), scanline); + timer.adjust(m_screen->time_until_pos(scanline), scanline); } @@ -144,7 +144,7 @@ MACHINE_START_MEMBER(foodf_state,foodf) MACHINE_RESET_MEMBER(foodf_state,foodf) { timer_device *scan_timer = machine().device("scan_timer"); - scan_timer->adjust(machine().primary_screen->time_until_pos(0)); + scan_timer->adjust(m_screen->time_until_pos(0)); } diff --git a/src/mame/drivers/fuukifg2.c b/src/mame/drivers/fuukifg2.c index cfe136c8df5..1d52e05919f 100644 --- a/src/mame/drivers/fuukifg2.c +++ b/src/mame/drivers/fuukifg2.c @@ -66,9 +66,9 @@ WRITE16_MEMBER(fuuki16_state::fuuki16_vregs_w) UINT16 new_data = COMBINE_DATA(&m_vregs[offset]); if ((offset == 0x1c/2) && old_data != new_data) { - const rectangle &visarea = machine().primary_screen->visible_area(); - attotime period = machine().primary_screen->frame_period(); - m_raster_interrupt_timer->adjust(machine().primary_screen->time_until_pos(new_data, visarea.max_x + 1), 0, period); + const rectangle &visarea = m_screen->visible_area(); + attotime period = m_screen->frame_period(); + m_raster_interrupt_timer->adjust(m_screen->time_until_pos(new_data, visarea.max_x + 1), 0, period); } } @@ -410,16 +410,16 @@ void fuuki16_state::device_timer(emu_timer &timer, device_timer_id id, int param { case TIMER_LEVEL_1_INTERRUPT: m_maincpu->set_input_line(1, HOLD_LINE); - timer_set(machine().primary_screen->time_until_pos(248), TIMER_LEVEL_1_INTERRUPT); + timer_set(m_screen->time_until_pos(248), TIMER_LEVEL_1_INTERRUPT); break; case TIMER_VBLANK_INTERRUPT: m_maincpu->set_input_line(3, HOLD_LINE); // VBlank IRQ - timer_set(machine().primary_screen->time_until_vblank_start(), TIMER_VBLANK_INTERRUPT); + timer_set(m_screen->time_until_vblank_start(), TIMER_VBLANK_INTERRUPT); break; case TIMER_RASTER_INTERRUPT: m_maincpu->set_input_line(5, HOLD_LINE); // Raster Line IRQ - machine().primary_screen->update_partial(machine().primary_screen->vpos()); - m_raster_interrupt_timer->adjust(machine().primary_screen->frame_period()); + m_screen->update_partial(m_screen->vpos()); + m_raster_interrupt_timer->adjust(m_screen->frame_period()); break; default: assert_always(FALSE, "Unknown id in fuuki16_state::device_timer"); @@ -439,11 +439,11 @@ void fuuki16_state::machine_start() void fuuki16_state::machine_reset() { - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); - timer_set(machine().primary_screen->time_until_pos(248), TIMER_LEVEL_1_INTERRUPT); - timer_set(machine().primary_screen->time_until_vblank_start(), TIMER_VBLANK_INTERRUPT); - m_raster_interrupt_timer->adjust(machine().primary_screen->time_until_pos(0, visarea.max_x + 1)); + timer_set(m_screen->time_until_pos(248), TIMER_LEVEL_1_INTERRUPT); + timer_set(m_screen->time_until_vblank_start(), TIMER_VBLANK_INTERRUPT); + m_raster_interrupt_timer->adjust(m_screen->time_until_pos(0, visarea.max_x + 1)); } diff --git a/src/mame/drivers/fuukifg3.c b/src/mame/drivers/fuukifg3.c index 5b69d3d3240..a607201ae72 100644 --- a/src/mame/drivers/fuukifg3.c +++ b/src/mame/drivers/fuukifg3.c @@ -225,9 +225,9 @@ WRITE32_MEMBER(fuuki32_state::fuuki32_vregs_w) COMBINE_DATA(&m_vregs[offset]); if (offset == 0x1c / 4) { - const rectangle &visarea = machine().primary_screen->visible_area(); - attotime period = machine().primary_screen->frame_period(); - m_raster_interrupt_timer->adjust(machine().primary_screen->time_until_pos(m_vregs[0x1c / 4] >> 16, visarea.max_x + 1), 0, period); + const rectangle &visarea = m_screen->visible_area(); + attotime period = m_screen->frame_period(); + m_raster_interrupt_timer->adjust(m_screen->time_until_pos(m_vregs[0x1c / 4] >> 16, visarea.max_x + 1), 0, period); } } } @@ -527,16 +527,16 @@ void fuuki32_state::device_timer(emu_timer &timer, device_timer_id id, int param { case TIMER_LEVEL_1_INTERRUPT: m_maincpu->set_input_line(1, HOLD_LINE); - timer_set(machine().primary_screen->time_until_pos(248), TIMER_LEVEL_1_INTERRUPT); + timer_set(m_screen->time_until_pos(248), TIMER_LEVEL_1_INTERRUPT); break; case TIMER_VBLANK_INTERRUPT: m_maincpu->set_input_line(3, HOLD_LINE); // VBlank IRQ - timer_set(machine().primary_screen->time_until_vblank_start(), TIMER_VBLANK_INTERRUPT); + timer_set(m_screen->time_until_vblank_start(), TIMER_VBLANK_INTERRUPT); break; case TIMER_RASTER_INTERRUPT: m_maincpu->set_input_line(5, HOLD_LINE); // Raster Line IRQ - machine().primary_screen->update_partial(machine().primary_screen->vpos()); - m_raster_interrupt_timer->adjust(machine().primary_screen->frame_period()); + m_screen->update_partial(m_screen->vpos()); + m_raster_interrupt_timer->adjust(m_screen->frame_period()); break; default: assert_always(FALSE, "Unknown id in fuuki32_state::device_timer"); @@ -559,11 +559,11 @@ void fuuki32_state::machine_start() void fuuki32_state::machine_reset() { - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); - timer_set(machine().primary_screen->time_until_pos(248), TIMER_LEVEL_1_INTERRUPT); - timer_set(machine().primary_screen->time_until_vblank_start(), TIMER_VBLANK_INTERRUPT); - m_raster_interrupt_timer->adjust(machine().primary_screen->time_until_pos(0, visarea.max_x + 1)); + timer_set(m_screen->time_until_pos(248), TIMER_LEVEL_1_INTERRUPT); + timer_set(m_screen->time_until_vblank_start(), TIMER_VBLANK_INTERRUPT); + m_raster_interrupt_timer->adjust(m_screen->time_until_pos(0, visarea.max_x + 1)); } diff --git a/src/mame/drivers/gaelco3d.c b/src/mame/drivers/gaelco3d.c index 90a604c7396..7735c9569a1 100644 --- a/src/mame/drivers/gaelco3d.c +++ b/src/mame/drivers/gaelco3d.c @@ -250,7 +250,7 @@ MACHINE_RESET_MEMBER(gaelco3d_state,gaelco3d2) INTERRUPT_GEN_MEMBER(gaelco3d_state::vblank_gen) { - gaelco3d_render(*machine().primary_screen); + gaelco3d_render(*m_screen); device.execute().set_input_line(2, ASSERT_LINE); } diff --git a/src/mame/drivers/galaga.c b/src/mame/drivers/galaga.c index 54e40136216..66c9735bea1 100644 --- a/src/mame/drivers/galaga.c +++ b/src/mame/drivers/galaga.c @@ -866,7 +866,7 @@ TIMER_CALLBACK_MEMBER(galaga_state::cpu3_interrupt_callback) scanline = 64; /* the vertical synch chain is clocked by H256 -- this is probably not important, but oh well */ - m_cpu3_interrupt_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_cpu3_interrupt_timer->adjust(m_screen->time_until_pos(scanline), scanline); } @@ -896,7 +896,7 @@ MACHINE_RESET_MEMBER(galaga_state,galaga) /* Reset all latches */ bosco_latch_reset(); - m_cpu3_interrupt_timer->adjust(machine().primary_screen->time_until_pos(64), 64); + m_cpu3_interrupt_timer->adjust(m_screen->time_until_pos(64), 64); } MACHINE_RESET_MEMBER(xevious_state,battles) diff --git a/src/mame/drivers/galaxi.c b/src/mame/drivers/galaxi.c index a4d59810584..b038d437616 100644 --- a/src/mame/drivers/galaxi.c +++ b/src/mame/drivers/galaxi.c @@ -270,12 +270,12 @@ WRITE16_MEMBER(galaxi_state::galaxi_500004_w) CUSTOM_INPUT_MEMBER(galaxi_state::ticket_r) { - return m_ticket && !(machine().primary_screen->frame_number() % 10); + return m_ticket && !(m_screen->frame_number() % 10); } CUSTOM_INPUT_MEMBER(galaxi_state::hopper_r) { - return m_hopper && !(machine().primary_screen->frame_number() % 10); + return m_hopper && !(m_screen->frame_number() % 10); } diff --git a/src/mame/drivers/galaxia.c b/src/mame/drivers/galaxia.c index 2c8ab9ac1a4..caef850bf0f 100644 --- a/src/mame/drivers/galaxia.c +++ b/src/mame/drivers/galaxia.c @@ -82,14 +82,14 @@ INTERRUPT_GEN_MEMBER(galaxia_state::galaxia_interrupt) WRITE8_MEMBER(galaxia_state::galaxia_video_w) { -// machine().primary_screen->update_partial(machine().primary_screen->vpos()); +// m_screen->update_partial(m_screen->vpos()); m_bg_tilemap->mark_tile_dirty(offset); cvs_video_or_color_ram_w(space, offset, data); } WRITE8_MEMBER(galaxia_state::galaxia_scroll_w) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); // fixed scrolling area for (int i = 1; i < 6; i++) @@ -109,13 +109,13 @@ WRITE8_MEMBER(galaxia_state::galaxia_dataport_w) READ8_MEMBER(galaxia_state::galaxia_collision_r) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); return m_collision_register; } READ8_MEMBER(galaxia_state::galaxia_collision_clear) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_collision_register = 0; return 0xff; } diff --git a/src/mame/drivers/galaxian.c b/src/mame/drivers/galaxian.c index 98ad02dc540..aa2c28e8739 100644 --- a/src/mame/drivers/galaxian.c +++ b/src/mame/drivers/galaxian.c @@ -2253,7 +2253,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(galaxian_state::timefgtr_scanline) // change spriteram base per each 64-line part of the screen if ((split & 0x3f) == 0) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_sprites_base = 0x40 | (split << 2 & 0x300); } } diff --git a/src/mame/drivers/galpanic.c b/src/mame/drivers/galpanic.c index 5d1efdd7269..e00899ad10a 100644 --- a/src/mame/drivers/galpanic.c +++ b/src/mame/drivers/galpanic.c @@ -229,7 +229,7 @@ ADDRESS_MAP_END READ16_MEMBER(galpanic_state::comad_timer_r) { - return (machine().primary_screen->vpos() & 0x07) << 8; + return (m_screen->vpos() & 0x07) << 8; } /* a kludge! */ diff --git a/src/mame/drivers/gauntlet.c b/src/mame/drivers/gauntlet.c index 8a971047866..85dbf9abc5b 100644 --- a/src/mame/drivers/gauntlet.c +++ b/src/mame/drivers/gauntlet.c @@ -165,7 +165,7 @@ MACHINE_RESET_MEMBER(gauntlet_state,gauntlet) m_sound_reset_val = 1; atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 32); + scanline_timer_reset(*m_screen, 32); } diff --git a/src/mame/drivers/gei.c b/src/mame/drivers/gei.c index 45240fb1dc7..000fe188208 100644 --- a/src/mame/drivers/gei.c +++ b/src/mame/drivers/gei.c @@ -192,7 +192,7 @@ PALETTE_INIT_MEMBER(gei_state,quizvid) void gei_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_bitmap); + m_screen->register_screen_bitmap(m_bitmap); } UINT32 gei_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) diff --git a/src/mame/drivers/go2000.c b/src/mame/drivers/go2000.c index e84e32d5223..9dc0c84099b 100644 --- a/src/mame/drivers/go2000.c +++ b/src/mame/drivers/go2000.c @@ -207,8 +207,8 @@ UINT32 go2000_state::screen_update_go2000(screen_device &screen, bitmap_ind16 &b } /*Sprite RAM code actually copied from video/suna16.c with minor modifications.*/ - int max_x = machine().primary_screen->width() - 8; - int max_y = machine().primary_screen->height() - 8; + int max_x = m_screen->width() - 8; + int max_y = m_screen->height() - 8; for (int offs = 0xf800 / 2; offs < 0x10000 / 2 ; offs += 4/2) { diff --git a/src/mame/drivers/gottlieb.c b/src/mame/drivers/gottlieb.c index 1044b6b6c0f..f4b3993d5cd 100644 --- a/src/mame/drivers/gottlieb.c +++ b/src/mame/drivers/gottlieb.c @@ -264,7 +264,7 @@ void gottlieb_state::machine_reset() { /* if we have a laserdisc, reset our philips code callback for the next line 17 */ if (m_laserdisc != NULL) - m_laserdisc_philips_timer->adjust(machine().primary_screen->time_until_pos(17), 17); + m_laserdisc_philips_timer->adjust(m_screen->time_until_pos(17), 17); } @@ -439,7 +439,7 @@ TIMER_CALLBACK_MEMBER(gottlieb_state::laserdisc_philips_callback) /* toggle to the next one */ param = (param == 17) ? 18 : 17; - m_laserdisc_philips_timer->adjust(machine().primary_screen->time_until_pos(param * 2), param); + m_laserdisc_philips_timer->adjust(m_screen->time_until_pos(param * 2), param); } @@ -681,7 +681,7 @@ INTERRUPT_GEN_MEMBER(gottlieb_state::gottlieb_interrupt) { /* assert the NMI and set a timer to clear it at the first visible line */ device.execute().set_input_line(INPUT_LINE_NMI, ASSERT_LINE); - timer_set(machine().primary_screen->time_until_pos(0), TIMER_NMI_CLEAR); + timer_set(m_screen->time_until_pos(0), TIMER_NMI_CLEAR); /* if we have a laserdisc, update it */ if (m_laserdisc != NULL) diff --git a/src/mame/drivers/grchamp.c b/src/mame/drivers/grchamp.c index 44560e264cf..a67d470d2a2 100644 --- a/src/mame/drivers/grchamp.c +++ b/src/mame/drivers/grchamp.c @@ -334,7 +334,7 @@ UINT8 grchamp_state::get_pc3259_bits(int offs) int bits; /* force a partial update to the current position */ - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); /* get the relevant 4 bits */ bits = (m_collide >> (offs*4)) & 0x0f; diff --git a/src/mame/drivers/gridlee.c b/src/mame/drivers/gridlee.c index d8486f50494..790aac3d645 100644 --- a/src/mame/drivers/gridlee.c +++ b/src/mame/drivers/gridlee.c @@ -103,15 +103,15 @@ TIMER_CALLBACK_MEMBER(gridlee_state::irq_timer_tick) { /* next interrupt after scanline 256 is scanline 64 */ if (param == 256) - m_irq_timer->adjust(machine().primary_screen->time_until_pos(64), 64); + m_irq_timer->adjust(m_screen->time_until_pos(64), 64); else - m_irq_timer->adjust(machine().primary_screen->time_until_pos(param + 64), param + 64); + m_irq_timer->adjust(m_screen->time_until_pos(param + 64), param + 64); /* IRQ starts on scanline 0, 64, 128, etc. */ m_maincpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE); /* it will turn off on the next HBLANK */ - m_irq_off->adjust(machine().primary_screen->time_until_pos(param, GRIDLEE_HBSTART)); + m_irq_off->adjust(m_screen->time_until_pos(param, GRIDLEE_HBSTART)); } @@ -124,13 +124,13 @@ TIMER_CALLBACK_MEMBER(gridlee_state::firq_off_tick) TIMER_CALLBACK_MEMBER(gridlee_state::firq_timer_tick) { /* same time next frame */ - m_firq_timer->adjust(machine().primary_screen->time_until_pos(FIRQ_SCANLINE)); + m_firq_timer->adjust(m_screen->time_until_pos(FIRQ_SCANLINE)); /* IRQ starts on scanline FIRQ_SCANLINE? */ m_maincpu->set_input_line(M6809_FIRQ_LINE, ASSERT_LINE); /* it will turn off on the next HBLANK */ - m_firq_off->adjust(machine().primary_screen->time_until_pos(FIRQ_SCANLINE, GRIDLEE_HBSTART)); + m_firq_off->adjust(m_screen->time_until_pos(FIRQ_SCANLINE, GRIDLEE_HBSTART)); } void gridlee_state::machine_start() @@ -151,8 +151,8 @@ void gridlee_state::machine_start() void gridlee_state::machine_reset() { /* start timers to generate interrupts */ - m_irq_timer->adjust(machine().primary_screen->time_until_pos(0)); - m_firq_timer->adjust(machine().primary_screen->time_until_pos(FIRQ_SCANLINE)); + m_irq_timer->adjust(m_screen->time_until_pos(0)); + m_firq_timer->adjust(m_screen->time_until_pos(FIRQ_SCANLINE)); } diff --git a/src/mame/drivers/hitme.c b/src/mame/drivers/hitme.c index 7136261f33d..9fad05d27bd 100644 --- a/src/mame/drivers/hitme.c +++ b/src/mame/drivers/hitme.c @@ -140,7 +140,7 @@ UINT8 hitme_state::read_port_and_t0( int port ) UINT8 hitme_state::read_port_and_t0_and_hblank( int port ) { UINT8 val = read_port_and_t0(port); - if (machine().primary_screen->hpos() < (machine().primary_screen->width() * 9 / 10)) + if (m_screen->hpos() < (m_screen->width() * 9 / 10)) val ^= 0x04; return val; } diff --git a/src/mame/drivers/hng64.c b/src/mame/drivers/hng64.c index 3b43a2b34df..c6d84e690c1 100644 --- a/src/mame/drivers/hng64.c +++ b/src/mame/drivers/hng64.c @@ -892,7 +892,7 @@ WRITE32_MEMBER(hng64_state::tcram_w) if(offset == 0x02) { UINT16 min_x, min_y, max_x, max_y; - rectangle visarea = machine().primary_screen->visible_area(); + rectangle visarea = m_screen->visible_area(); min_x = (hng64_tcram[1] & 0xffff0000) >> 16; min_y = (hng64_tcram[1] & 0x0000ffff) >> 0; @@ -908,7 +908,7 @@ WRITE32_MEMBER(hng64_state::tcram_w) m_screen_dis = 0; visarea.set(min_x, min_x + max_x - 1, min_y, min_y + max_y - 1); - machine().primary_screen->configure(HTOTAL, VTOTAL, visarea, machine().primary_screen->frame_period().attoseconds ); + m_screen->configure(HTOTAL, VTOTAL, visarea, m_screen->frame_period().attoseconds ); } } diff --git a/src/mame/drivers/igs009.c b/src/mame/drivers/igs009.c index d097de6353a..ca0630708a3 100644 --- a/src/mame/drivers/igs009.c +++ b/src/mame/drivers/igs009.c @@ -365,7 +365,7 @@ UINT32 igs009_state::screen_update_jingbell(screen_device &screen, bitmap_ind16 CUSTOM_INPUT_MEMBER(igs009_state::hopper_r) { - return m_hopper && !(machine().primary_screen->frame_number()%10); + return m_hopper && !(m_screen->frame_number()%10); } diff --git a/src/mame/drivers/igs011.c b/src/mame/drivers/igs011.c index 5333ffb8f81..516229fed8e 100644 --- a/src/mame/drivers/igs011.c +++ b/src/mame/drivers/igs011.c @@ -462,7 +462,7 @@ WRITE16_MEMBER(igs011_state::igs011_blit_flags_w) int gfx_size = memregion("blitter")->bytes(); int gfx2_size = memregion("blitter_hi")->bytes(); - const rectangle &clip = machine().primary_screen->visible_area(); + const rectangle &clip = m_screen->visible_area(); COMBINE_DATA(&blitter.flags); @@ -567,7 +567,7 @@ WRITE16_MEMBER(igs011_state::igs011_blit_flags_w) CUSTOM_INPUT_MEMBER(igs011_state::igs_hopper_r) { - return (m_igs_hopper && ((machine().primary_screen->frame_number()/5)&1)) ? 0x0000 : 0x0001; + return (m_igs_hopper && ((m_screen->frame_number()/5)&1)) ? 0x0000 : 0x0001; } WRITE16_MEMBER(igs011_state::igs_dips_w) diff --git a/src/mame/drivers/igs017.c b/src/mame/drivers/igs017.c index 4870097712f..7862545485b 100644 --- a/src/mame/drivers/igs017.c +++ b/src/mame/drivers/igs017.c @@ -1567,7 +1567,7 @@ READ16_MEMBER(igs017_state::sdmg2_magic_r) { case 0x00: { - UINT16 hopper_bit = (m_hopper && ((machine().primary_screen->frame_number()/10)&1)) ? 0x0000 : 0x0001; + UINT16 hopper_bit = (m_hopper && ((m_screen->frame_number()/10)&1)) ? 0x0000 : 0x0001; return ioport("COINS")->read() | hopper_bit; } @@ -1688,7 +1688,7 @@ READ16_MEMBER(igs017_state::mgdha_magic_r) case 0x03: { - UINT16 hopper_bit = (m_hopper && ((machine().primary_screen->frame_number()/10)&1)) ? 0x0000 : 0x0001; + UINT16 hopper_bit = (m_hopper && ((m_screen->frame_number()/10)&1)) ? 0x0000 : 0x0001; return ioport("COINS")->read() | hopper_bit; } @@ -1772,7 +1772,7 @@ READ8_MEMBER(igs017_state::tjsb_input_r) case 0x02: return ioport("COINS")->read(); case 0x03: { - UINT8 hopper_bit = (m_hopper && ((machine().primary_screen->frame_number()/10)&1)) ? 0x00 : 0x20; + UINT8 hopper_bit = (m_hopper && ((m_screen->frame_number()/10)&1)) ? 0x00 : 0x20; return ioport("HOPPER")->read() | hopper_bit; } @@ -2215,7 +2215,7 @@ READ16_MEMBER(igs017_state::lhzb2a_input_r) case 0x02: { - UINT16 hopper_bit = (m_hopper && ((machine().primary_screen->frame_number()/10)&1)) ? 0x0000 : 0x0002; + UINT16 hopper_bit = (m_hopper && ((m_screen->frame_number()/10)&1)) ? 0x0000 : 0x0002; return (ioport("DSW1")->read() << 8) | ioport("COINS")->read() | hopper_bit; } diff --git a/src/mame/drivers/igspoker.c b/src/mame/drivers/igspoker.c index d492ccb28d5..fce8673fcb4 100644 --- a/src/mame/drivers/igspoker.c +++ b/src/mame/drivers/igspoker.c @@ -346,7 +346,7 @@ WRITE8_MEMBER(igspoker_state::custom_io_w) CUSTOM_INPUT_MEMBER(igspoker_state::hopper_r) { - if (m_hopper) return !(machine().primary_screen->frame_number()%10); + if (m_hopper) return !(m_screen->frame_number()%10); return machine().input().code_pressed(KEYCODE_H); } diff --git a/src/mame/drivers/itech32.c b/src/mame/drivers/itech32.c index 1865206850a..2af323d7f64 100644 --- a/src/mame/drivers/itech32.c +++ b/src/mame/drivers/itech32.c @@ -420,7 +420,7 @@ INTERRUPT_GEN_MEMBER(itech32_state::generate_int1) { /* signal the NMI */ itech32_update_interrupts(1, -1, -1); - if (FULL_LOGGING) logerror("------------ VBLANK (%d) --------------\n", machine().primary_screen->vpos()); + if (FULL_LOGGING) logerror("------------ VBLANK (%d) --------------\n", m_screen->vpos()); } @@ -503,7 +503,7 @@ READ32_MEMBER(itech32_state::trackball32_4bit_p1_r) { attotime curtime = machine().time(); - if ((curtime - m_p1_lasttime) > machine().primary_screen->scan_period()) + if ((curtime - m_p1_lasttime) > m_screen->scan_period()) { int upper, lower; int dx, dy; @@ -539,7 +539,7 @@ READ32_MEMBER(itech32_state::trackball32_4bit_p2_r) { attotime curtime = machine().time(); - if ((curtime - m_p2_lasttime) > machine().primary_screen->scan_period()) + if ((curtime - m_p2_lasttime) > m_screen->scan_period()) { int upper, lower; int dx, dy; diff --git a/src/mame/drivers/itech8.c b/src/mame/drivers/itech8.c index 5242a7f5ee1..2ea0b4462ba 100644 --- a/src/mame/drivers/itech8.c +++ b/src/mame/drivers/itech8.c @@ -614,7 +614,7 @@ INTERRUPT_GEN_MEMBER(itech8_state::generate_nmi) itech8_update_interrupts(1, -1, -1); machine().scheduler().timer_set(attotime::from_usec(1), timer_expired_delegate(FUNC(itech8_state::irq_off),this)); - if (FULL_LOGGING) logerror("------------ VBLANK (%d) --------------\n", machine().primary_screen->vpos()); + if (FULL_LOGGING) logerror("------------ VBLANK (%d) --------------\n", m_screen->vpos()); } @@ -644,7 +644,7 @@ WRITE_LINE_MEMBER(itech8_state::generate_sound_irq) MACHINE_START_MEMBER(itech8_state,sstrike) { /* we need to update behind the beam as well */ - machine().scheduler().timer_set(machine().primary_screen->time_until_pos(0), timer_expired_delegate(FUNC(itech8_state::behind_the_beam_update),this), 32); + machine().scheduler().timer_set(m_screen->time_until_pos(0), timer_expired_delegate(FUNC(itech8_state::behind_the_beam_update),this), 32); } void itech8_state::machine_reset() @@ -661,7 +661,7 @@ void itech8_state::machine_reset() /* set the visible area */ if (m_visarea.width() > 1) { - machine().primary_screen->set_visible_area(m_visarea.min_x, m_visarea.max_x, m_visarea.min_y, m_visarea.max_y); + m_screen->set_visible_area(m_visarea.min_x, m_visarea.max_x, m_visarea.min_y, m_visarea.max_y); m_visarea.set(0, 0, 0, 0); } } @@ -680,14 +680,14 @@ TIMER_CALLBACK_MEMBER(itech8_state::behind_the_beam_update) int interval = param & 0xff; /* force a partial update to the current scanline */ - machine().primary_screen->update_partial(scanline); + m_screen->update_partial(scanline); /* advance by the interval, and wrap to 0 */ scanline += interval; if (scanline >= 256) scanline = 0; /* set a new timer */ - machine().scheduler().timer_set(machine().primary_screen->time_until_pos(scanline), timer_expired_delegate(FUNC(itech8_state::behind_the_beam_update),this), (scanline << 8) + interval); + machine().scheduler().timer_set(m_screen->time_until_pos(scanline), timer_expired_delegate(FUNC(itech8_state::behind_the_beam_update),this), (scanline << 8) + interval); } diff --git a/src/mame/drivers/jackie.c b/src/mame/drivers/jackie.c index d206aabbb4a..4185f082f4c 100644 --- a/src/mame/drivers/jackie.c +++ b/src/mame/drivers/jackie.c @@ -395,7 +395,7 @@ ADDRESS_MAP_END CUSTOM_INPUT_MEMBER(jackie_state::hopper_r) { - if (m_hopper) return !(machine().primary_screen->frame_number()%10); + if (m_hopper) return !(m_screen->frame_number()%10); return machine().input().code_pressed(KEYCODE_H); } diff --git a/src/mame/drivers/jedi.c b/src/mame/drivers/jedi.c index adf1326592c..d011ab3ce65 100644 --- a/src/mame/drivers/jedi.c +++ b/src/mame/drivers/jedi.c @@ -135,7 +135,7 @@ TIMER_CALLBACK_MEMBER(jedi_state::generate_interrupt) scanline += 32; if (scanline > 256) scanline = 32; - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_interrupt_timer->adjust(m_screen->time_until_pos(scanline), scanline); } @@ -156,7 +156,7 @@ void jedi_state::machine_start() { /* set a timer to run the interrupts */ m_interrupt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(jedi_state::generate_interrupt),this)); - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(32), 32); + m_interrupt_timer->adjust(m_screen->time_until_pos(32), 32); /* configure the banks */ membank("bank1")->configure_entries(0, 3, memregion("maincpu")->base() + 0x10000, 0x4000); diff --git a/src/mame/drivers/klax.c b/src/mame/drivers/klax.c index 98ed3c60f5b..32a29ac7f41 100644 --- a/src/mame/drivers/klax.c +++ b/src/mame/drivers/klax.c @@ -61,7 +61,7 @@ WRITE16_MEMBER(klax_state::interrupt_ack_w) MACHINE_RESET_MEMBER(klax_state,klax) { atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 32); + scanline_timer_reset(*m_screen, 32); } diff --git a/src/mame/drivers/konamigx.c b/src/mame/drivers/konamigx.c index ba479f60756..36d53a5ac91 100644 --- a/src/mame/drivers/konamigx.c +++ b/src/mame/drivers/konamigx.c @@ -670,7 +670,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(konamigx_state::konamigx_hbinterrupt) // maybe this interrupt should only be every 30fps, or maybe there are flags to prevent the game running too fast // the real hardware should output the display for each screen on alternate frames - // if(device->machine().primary_screen->frame_number() & 1) + // if(device->m_screen->frame_number() & 1) if (1) // gx_syncen & 0x20) { gx_syncen &= ~0x20; diff --git a/src/mame/drivers/lastfght.c b/src/mame/drivers/lastfght.c index 937cae1eb63..8fb4a330ee2 100644 --- a/src/mame/drivers/lastfght.c +++ b/src/mame/drivers/lastfght.c @@ -137,7 +137,7 @@ void lastfght_state::video_start() { int i; for (i = 0; i < 2; i++) - machine().primary_screen->register_screen_bitmap(m_bitmap[i]); + m_screen->register_screen_bitmap(m_bitmap[i]); save_item(NAME(m_bitmap[0])); save_item(NAME(m_bitmap[1])); diff --git a/src/mame/drivers/littlerb.c b/src/mame/drivers/littlerb.c index 547d0ff6e05..26f8840ea1e 100644 --- a/src/mame/drivers/littlerb.c +++ b/src/mame/drivers/littlerb.c @@ -432,7 +432,7 @@ WRITE16_MEMBER(littlerb_state::littlerb_vdp_w) /* could be slightly different (timing wise, directly related to the irqs), but certainly they smoked some bad pot for this messy way ... */ UINT8 littlerb_state::sound_data_shift() { - return ((machine().primary_screen->frame_number() % 16) == 0) ? 8 : 0; + return ((m_screen->frame_number() % 16) == 0) ? 8 : 0; } /* l is SFX, r is BGM (they doesn't seem to share the same data ROM) */ @@ -469,7 +469,7 @@ ADDRESS_MAP_END /* guess according to DASM code and checking the gameplay speed, could be different */ CUSTOM_INPUT_MEMBER(littlerb_state::littlerb_frame_step_r) { - UINT32 ret = machine().primary_screen->frame_number(); + UINT32 ret = m_screen->frame_number(); return (ret) & 7; } @@ -593,8 +593,8 @@ TIMER_DEVICE_CALLBACK_MEMBER(littlerb_state::littlerb_scanline) void littlerb_state::video_start() { -// machine().primary_screen->register_screen_bitmap(m_temp_bitmap_sprites_back); -// machine().primary_screen->register_screen_bitmap(m_temp_bitmap_sprites); +// m_screen->register_screen_bitmap(m_temp_bitmap_sprites_back); +// m_screen->register_screen_bitmap(m_temp_bitmap_sprites); m_temp_bitmap_sprites_back = auto_bitmap_ind16_alloc(machine(),512,512); m_temp_bitmap_sprites = auto_bitmap_ind16_alloc(machine(),512,512); diff --git a/src/mame/drivers/m10.c b/src/mame/drivers/m10.c index 3ee44b89a43..435ace8f220 100644 --- a/src/mame/drivers/m10.c +++ b/src/mame/drivers/m10.c @@ -130,7 +130,7 @@ Notes (couriersud) WRITE8_MEMBER(m10_state::ic8j1_output_changed) { - LOG(("ic8j1: %d %d\n", data, machine().primary_screen->vpos())); + LOG(("ic8j1: %d %d\n", data, m_screen->vpos())); m_maincpu->set_input_line(0, !data ? CLEAR_LINE : ASSERT_LINE); } @@ -464,7 +464,7 @@ WRITE8_MEMBER(m10_state::m15_a100_w) READ8_MEMBER(m10_state::m10_a700_r) { - //LOG(("rd:%d\n",machine().primary_screen->vpos())); + //LOG(("rd:%d\n",m_screen->vpos())); LOG(("clear\n")); ttl74123_clear_w(m_ic8j1, space, 0, 0); ttl74123_clear_w(m_ic8j1, space, 0, 1); @@ -473,7 +473,7 @@ READ8_MEMBER(m10_state::m10_a700_r) READ8_MEMBER(m10_state::m11_a700_r) { - //LOG(("rd:%d\n",machine().primary_screen->vpos())); + //LOG(("rd:%d\n",m_screen->vpos())); //m_maincpu->set_input_line(0, CLEAR_LINE); LOG(("clear\n")); ttl74123_clear_w(m_ic8j1, space, 0, 0); @@ -499,12 +499,12 @@ TIMER_CALLBACK_MEMBER(m10_state::interrupt_callback) if (param == 0) { m_maincpu->set_input_line(0, ASSERT_LINE); - timer_set(machine().primary_screen->time_until_pos(IREMM10_VBSTART + 16), TIMER_INTERRUPT, 1); + timer_set(m_screen->time_until_pos(IREMM10_VBSTART + 16), TIMER_INTERRUPT, 1); } if (param == 1) { m_maincpu->set_input_line(0, ASSERT_LINE); - timer_set(machine().primary_screen->time_until_pos(IREMM10_VBSTART + 24), TIMER_INTERRUPT, 2); + timer_set(m_screen->time_until_pos(IREMM10_VBSTART + 24), TIMER_INTERRUPT, 2); } if (param == -1) m_maincpu->set_input_line(0, CLEAR_LINE); @@ -538,7 +538,7 @@ INTERRUPT_GEN_MEMBER(m10_state::m10_interrupt) INTERRUPT_GEN_MEMBER(m10_state::m15_interrupt) { device.execute().set_input_line(0, ASSERT_LINE); - timer_set(machine().primary_screen->time_until_pos(IREMM10_VBSTART + 1, 80), TIMER_INTERRUPT, -1); + timer_set(m_screen->time_until_pos(IREMM10_VBSTART + 1, 80), TIMER_INTERRUPT, -1); } /************************************* diff --git a/src/mame/drivers/m107.c b/src/mame/drivers/m107.c index 6cdedd0f886..27b7f8be10a 100644 --- a/src/mame/drivers/m107.c +++ b/src/mame/drivers/m107.c @@ -55,14 +55,14 @@ TIMER_DEVICE_CALLBACK_MEMBER(m107_state::m107_scanline_interrupt) /* raster interrupt */ if (scanline == m_raster_irq_position) { - machine().primary_screen->update_partial(scanline); + m_screen->update_partial(scanline); state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, M107_IRQ_2); } /* VBLANK interrupt */ - else if (scanline == machine().primary_screen->visible_area().max_y + 1) + else if (scanline == m_screen->visible_area().max_y + 1) { - machine().primary_screen->update_partial(scanline); + m_screen->update_partial(scanline); state->m_maincpu->set_input_line_and_vector(0, HOLD_LINE, M107_IRQ_0); } } diff --git a/src/mame/drivers/m72.c b/src/mame/drivers/m72.c index 982a5284f65..19f3e733079 100644 --- a/src/mame/drivers/m72.c +++ b/src/mame/drivers/m72.c @@ -128,19 +128,19 @@ MACHINE_RESET_MEMBER(m72_state,m72) m_mcu_sample_addr = 0; m_mcu_snd_cmd_latch = 0; - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(0)); + m_scanline_timer->adjust(m_screen->time_until_pos(0)); machine().scheduler().synchronize(timer_expired_delegate(FUNC(m72_state::synch_callback),this)); } MACHINE_RESET_MEMBER(m72_state,xmultipl) { m_irq_base = 0x08; - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(0)); + m_scanline_timer->adjust(m_screen->time_until_pos(0)); } MACHINE_RESET_MEMBER(m72_state,kengo) { - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(0)); + m_scanline_timer->adjust(m_screen->time_until_pos(0)); } TIMER_CALLBACK_MEMBER(m72_state::m72_scanline_interrupt) @@ -150,21 +150,21 @@ TIMER_CALLBACK_MEMBER(m72_state::m72_scanline_interrupt) /* raster interrupt - visible area only? */ if (scanline < 256 && scanline == m_raster_irq_position - 128) { - machine().primary_screen->update_partial(scanline); + m_screen->update_partial(scanline); m_maincpu->set_input_line_and_vector(0, HOLD_LINE, m_irq_base + 2); } /* VBLANK interrupt */ else if (scanline == 256) { - machine().primary_screen->update_partial(scanline); + m_screen->update_partial(scanline); m_maincpu->set_input_line_and_vector(0, HOLD_LINE, m_irq_base + 0); } /* adjust for next scanline */ - if (++scanline >= machine().primary_screen->height()) + if (++scanline >= m_screen->height()) scanline = 0; - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_scanline_timer->adjust(m_screen->time_until_pos(scanline), scanline); } TIMER_CALLBACK_MEMBER(m72_state::kengo_scanline_interrupt) @@ -174,7 +174,7 @@ TIMER_CALLBACK_MEMBER(m72_state::kengo_scanline_interrupt) /* raster interrupt - visible area only? */ if (scanline < 256 && scanline == m_raster_irq_position - 128) { - machine().primary_screen->update_partial(scanline); + m_screen->update_partial(scanline); m_maincpu->set_input_line(NEC_INPUT_LINE_INTP2, ASSERT_LINE); } else @@ -183,16 +183,16 @@ TIMER_CALLBACK_MEMBER(m72_state::kengo_scanline_interrupt) /* VBLANK interrupt */ if (scanline == 256) { - machine().primary_screen->update_partial(scanline); + m_screen->update_partial(scanline); m_maincpu->set_input_line(NEC_INPUT_LINE_INTP0, ASSERT_LINE); } else m_maincpu->set_input_line(NEC_INPUT_LINE_INTP0, CLEAR_LINE); /* adjust for next scanline */ - if (++scanline >= machine().primary_screen->height()) + if (++scanline >= m_screen->height()) scanline = 0; - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_scanline_timer->adjust(m_screen->time_until_pos(scanline), scanline); } /*************************************************************************** diff --git a/src/mame/drivers/m92.c b/src/mame/drivers/m92.c index 6c8cd6f872b..1a70d7148bc 100644 --- a/src/mame/drivers/m92.c +++ b/src/mame/drivers/m92.c @@ -231,14 +231,14 @@ TIMER_DEVICE_CALLBACK_MEMBER(m92_state::m92_scanline_interrupt) /* raster interrupt */ if (scanline == m_raster_irq_position) { - machine().primary_screen->update_partial(scanline); + m_screen->update_partial(scanline); m_maincpu->set_input_line_and_vector(0, HOLD_LINE, M92_IRQ_2); } /* VBLANK interrupt */ - else if (scanline == machine().primary_screen->visible_area().max_y + 1) + else if (scanline == m_screen->visible_area().max_y + 1) { - machine().primary_screen->update_partial(scanline); + m_screen->update_partial(scanline); m_maincpu->set_input_line_and_vector(0, HOLD_LINE, M92_IRQ_0); } } diff --git a/src/mame/drivers/magmax.c b/src/mame/drivers/magmax.c index 541ca66cd1b..e9b51302980 100644 --- a/src/mame/drivers/magmax.c +++ b/src/mame/drivers/magmax.c @@ -70,7 +70,7 @@ TIMER_CALLBACK_MEMBER(magmax_state::scanline_callback) scanline += 128; scanline &= 255; - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_interrupt_timer->adjust(m_screen->time_until_pos(scanline), scanline); } void magmax_state::machine_start() @@ -87,7 +87,7 @@ void magmax_state::machine_start() void magmax_state::machine_reset() { - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(64), 64); + m_interrupt_timer->adjust(m_screen->time_until_pos(64), 64); #if 0 { diff --git a/src/mame/drivers/malzak.c b/src/mame/drivers/malzak.c index ebec8134f20..4cd0b53ab85 100644 --- a/src/mame/drivers/malzak.c +++ b/src/mame/drivers/malzak.c @@ -74,7 +74,7 @@ READ8_MEMBER(malzak_state::fake_VRLE_r) { - return (s2636_work_ram_r(m_s2636_0, space, 0xcb) & 0x3f) + (machine().primary_screen->vblank() * 0x40); + return (s2636_work_ram_r(m_s2636_0, space, 0xcb) & 0x3f) + (m_screen->vblank() * 0x40); } READ8_MEMBER(malzak_state::s2636_portA_r) diff --git a/src/mame/drivers/marinedt.c b/src/mame/drivers/marinedt.c index ecbe427eea2..53a9a375270 100644 --- a/src/mame/drivers/marinedt.c +++ b/src/mame/drivers/marinedt.c @@ -310,7 +310,7 @@ WRITE8_MEMBER(marinedt_state::marinedt_pf_w) //if (data & 0xf0) // logerror("pf:%02x %d\n", m_pf); - //logerror("pd:%02x %d\n", m_pd, machine().primary_screen->frame_number()); + //logerror("pd:%02x %d\n", m_pd, m_screen->frame_number()); } diff --git a/src/mame/drivers/mazerbla.c b/src/mame/drivers/mazerbla.c index 41b4df6c143..fa44edb2f68 100644 --- a/src/mame/drivers/mazerbla.c +++ b/src/mame/drivers/mazerbla.c @@ -247,10 +247,10 @@ void mazerbla_state::video_start() m_dbg_lookup = 4; #endif - machine().primary_screen->register_screen_bitmap(m_tmpbitmaps[0]); - machine().primary_screen->register_screen_bitmap(m_tmpbitmaps[1]); - machine().primary_screen->register_screen_bitmap(m_tmpbitmaps[2]); - machine().primary_screen->register_screen_bitmap(m_tmpbitmaps[3]); + m_screen->register_screen_bitmap(m_tmpbitmaps[0]); + m_screen->register_screen_bitmap(m_tmpbitmaps[1]); + m_screen->register_screen_bitmap(m_tmpbitmaps[2]); + m_screen->register_screen_bitmap(m_tmpbitmaps[3]); save_item(NAME(m_tmpbitmaps[0])); save_item(NAME(m_tmpbitmaps[1])); diff --git a/src/mame/drivers/mcr3.c b/src/mame/drivers/mcr3.c index 1744effd802..f51c7cecbf2 100644 --- a/src/mame/drivers/mcr3.c +++ b/src/mame/drivers/mcr3.c @@ -451,7 +451,7 @@ READ8_MEMBER(mcr3_state::turbotag_ip2_r) if (m_input_mux) return ioport("ssio:IP2.ALT")->read(); - return ioport("ssio:IP2")->read() + 5 * (machine().primary_screen->frame_number() & 1); + return ioport("ssio:IP2")->read() + 5 * (m_screen->frame_number() & 1); } diff --git a/src/mame/drivers/meadows.c b/src/mame/drivers/meadows.c index cec49b43c74..9f894a043ad 100644 --- a/src/mame/drivers/meadows.c +++ b/src/mame/drivers/meadows.c @@ -138,21 +138,21 @@ READ8_MEMBER(meadows_state::hsync_chain_r) { - UINT8 val = machine().primary_screen->hpos(); + UINT8 val = m_screen->hpos(); return BITSWAP8(val,0,1,2,3,4,5,6,7); } READ8_MEMBER(meadows_state::vsync_chain_hi_r) { - UINT8 val = machine().primary_screen->vpos(); + UINT8 val = m_screen->vpos(); return ((val >> 1) & 0x08) | ((val >> 3) & 0x04) | ((val >> 5) & 0x02) | (val >> 7); } READ8_MEMBER(meadows_state::vsync_chain_lo_r) { - UINT8 val = machine().primary_screen->vpos(); + UINT8 val = m_screen->vpos(); return val & 0x0f; } diff --git a/src/mame/drivers/mediagx.c b/src/mame/drivers/mediagx.c index 1e4a74a4549..ef01c5848fc 100644 --- a/src/mame/drivers/mediagx.c +++ b/src/mame/drivers/mediagx.c @@ -279,7 +279,7 @@ void mediagx_state::draw_framebuffer(bitmap_rgb32 &bitmap, const rectangle &clip m_frame_height = height; visarea.set(0, width - 1, 0, height - 1); - machine().primary_screen->configure(width, height * 262 / 240, visarea, machine().primary_screen->frame_period().attoseconds); + m_screen->configure(width, height * 262 / 240, visarea, m_screen->frame_period().attoseconds); } if (m_disp_ctrl_reg[DC_OUTPUT_CFG] & 0x1) // 8-bit mode @@ -390,7 +390,7 @@ READ32_MEMBER(mediagx_state::disp_ctrl_r) case DC_TIMING_CFG: r |= 0x40000000; - if (machine().primary_screen->vpos() >= m_frame_height) + if (m_screen->vpos() >= m_frame_height) r &= ~0x40000000; #if SPEEDUP_HACKS diff --git a/src/mame/drivers/megaplay.c b/src/mame/drivers/megaplay.c index c176211c22b..64c1c2b6b44 100644 --- a/src/mame/drivers/megaplay.c +++ b/src/mame/drivers/megaplay.c @@ -70,7 +70,7 @@ static UINT8 hintcount; /* line interrupt counter, decreased each scan static INTERRUPT_GEN (megaplay_bios_irq) { int sline; - sline = device->machine().primary_screen->vpos(); + sline = device->m_screen->vpos(); if (sline ==0) { hintcount = segae_vdp_regs[0][10]; diff --git a/src/mame/drivers/merit.c b/src/mame/drivers/merit.c index c122c2543b7..9239877e26d 100644 --- a/src/mame/drivers/merit.c +++ b/src/mame/drivers/merit.c @@ -226,7 +226,7 @@ WRITE8_MEMBER(merit_state::palette_w) { int co; - machine().primary_screen->update_now(); + m_screen->update_now(); data &= 0x0f; co = ((m_ram_attr[offset] & 0x7F) << 3) | (offset & 0x07); @@ -307,7 +307,7 @@ static MC6845_UPDATE_ROW( update_row ) WRITE_LINE_MEMBER(merit_state::hsync_changed) { /* update any video up to the current scanline */ - machine().primary_screen->update_now(); + m_screen->update_now(); } WRITE_LINE_MEMBER(merit_state::vsync_changed) diff --git a/src/mame/drivers/mgolf.c b/src/mame/drivers/mgolf.c index bb4884694a0..47aa87de67f 100644 --- a/src/mame/drivers/mgolf.c +++ b/src/mame/drivers/mgolf.c @@ -150,7 +150,7 @@ TIMER_CALLBACK_MEMBER(mgolf_state::interrupt_callback) if (scanline >= 262) scanline = 16; - timer_set(machine().primary_screen->time_until_pos(scanline), TIMER_INTERRUPT, scanline); + timer_set(m_screen->time_until_pos(scanline), TIMER_INTERRUPT, scanline); } @@ -335,7 +335,7 @@ void mgolf_state::machine_start() void mgolf_state::machine_reset() { - timer_set(machine().primary_screen->time_until_pos(16), TIMER_INTERRUPT, 16); + timer_set(m_screen->time_until_pos(16), TIMER_INTERRUPT, 16); m_mask = 0; m_prev = 0; diff --git a/src/mame/drivers/midzeus.c b/src/mame/drivers/midzeus.c index 2647e3a731a..e926f176469 100644 --- a/src/mame/drivers/midzeus.c +++ b/src/mame/drivers/midzeus.c @@ -485,7 +485,7 @@ static void update_gun_irq(running_machine &machine) TIMER_CALLBACK_MEMBER(midzeus_state::invasn_gun_callback) { int player = param; - int beamy = machine().primary_screen->vpos(); + int beamy = m_screen->vpos(); /* set the appropriate IRQ in the internal gun control and update */ gun_irq_state |= 0x01 << player; @@ -493,8 +493,8 @@ TIMER_CALLBACK_MEMBER(midzeus_state::invasn_gun_callback) /* generate another interrupt on the next scanline while we are within the BEAM_DY */ beamy++; - if (beamy <= machine().primary_screen->visible_area().max_y && beamy <= gun_y[player] + BEAM_DY) - gun_timer[player]->adjust(machine().primary_screen->time_until_pos(beamy, MAX(0, gun_x[player] - BEAM_DX)), player); + if (beamy <= m_screen->visible_area().max_y && beamy <= gun_y[player] + BEAM_DY) + gun_timer[player]->adjust(m_screen->time_until_pos(beamy, MAX(0, gun_x[player] - BEAM_DX)), player); } @@ -515,7 +515,7 @@ WRITE32_MEMBER(midzeus_state::invasn_gun_w) UINT8 pmask = 0x04 << player; if (((old_control ^ gun_control) & pmask) != 0 && (gun_control & pmask) == 0) { - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); static const char *const names[2][2] = { { "GUNX1", "GUNY1" }, @@ -523,7 +523,7 @@ WRITE32_MEMBER(midzeus_state::invasn_gun_w) }; gun_x[player] = ioport(names[player][0])->read() * visarea.width() / 255 + visarea.min_x + BEAM_XOFFS; gun_y[player] = ioport(names[player][1])->read() * visarea.height() / 255 + visarea.min_y; - gun_timer[player]->adjust(machine().primary_screen->time_until_pos(MAX(0, gun_y[player] - BEAM_DY), MAX(0, gun_x[player] - BEAM_DX)), player); + gun_timer[player]->adjust(m_screen->time_until_pos(MAX(0, gun_y[player] - BEAM_DY), MAX(0, gun_x[player] - BEAM_DX)), player); } } } @@ -531,8 +531,8 @@ WRITE32_MEMBER(midzeus_state::invasn_gun_w) READ32_MEMBER(midzeus_state::invasn_gun_r) { - int beamx = machine().primary_screen->hpos(); - int beamy = machine().primary_screen->vpos(); + int beamx = m_screen->hpos(); + int beamy = m_screen->vpos(); UINT32 result = 0xffff; int player; diff --git a/src/mame/drivers/missile.c b/src/mame/drivers/missile.c index cab16e4841d..2cf00e114c4 100644 --- a/src/mame/drivers/missile.c +++ b/src/mame/drivers/missile.c @@ -460,7 +460,7 @@ void missile_state::schedule_next_irq(int curv) curv = ((curv + 32) & 0xff) & ~0x10; /* next one at the start of this scanline */ - m_irq_timer->adjust(machine().primary_screen->time_until_pos(v_to_scanline(curv)), curv); + m_irq_timer->adjust(m_screen->time_until_pos(v_to_scanline(curv)), curv); } @@ -473,7 +473,7 @@ TIMER_CALLBACK_MEMBER(missile_state::clock_irq) m_maincpu->set_input_line(0, m_irq_state ? ASSERT_LINE : CLEAR_LINE); /* force an update while we're here */ - machine().primary_screen->update_partial(v_to_scanline(curv)); + m_screen->update_partial(v_to_scanline(curv)); /* find the next edge */ schedule_next_irq(curv); @@ -482,7 +482,7 @@ TIMER_CALLBACK_MEMBER(missile_state::clock_irq) CUSTOM_INPUT_MEMBER(missile_state::get_vblank) { - int v = scanline_to_v(machine().primary_screen->vpos()); + int v = scanline_to_v(m_screen->vpos()); return v < 24; } @@ -506,7 +506,7 @@ TIMER_CALLBACK_MEMBER(missile_state::adjust_cpu_speed) /* scanline for the next run */ curv ^= 224; - m_cpu_timer->adjust(machine().primary_screen->time_until_pos(v_to_scanline(curv)), curv); + m_cpu_timer->adjust(m_screen->time_until_pos(v_to_scanline(curv)), curv); } @@ -519,7 +519,7 @@ void missile_state::machine_start() /* create a timer to speed/slow the CPU */ m_cpu_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(missile_state::adjust_cpu_speed),this)); - m_cpu_timer->adjust(machine().primary_screen->time_until_pos(v_to_scanline(0), 0)); + m_cpu_timer->adjust(m_screen->time_until_pos(v_to_scanline(0), 0)); /* create a timer for IRQs and set up the first callback */ m_irq_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(missile_state::clock_irq),this)); diff --git a/src/mame/drivers/model2.c b/src/mame/drivers/model2.c index b33e719b5e5..5867bd26846 100644 --- a/src/mame/drivers/model2.c +++ b/src/mame/drivers/model2.c @@ -439,7 +439,7 @@ READ32_MEMBER(model2_state::fifoctl_r) READ32_MEMBER(model2_state::videoctl_r) { - return (machine().primary_screen->frame_number() & 1) << 2; + return (m_screen->frame_number() & 1) << 2; } CUSTOM_INPUT_MEMBER(model2_state::_1c00000_r) diff --git a/src/mame/drivers/model3.c b/src/mame/drivers/model3.c index 36a061e2f9a..a5c3902a0ac 100644 --- a/src/mame/drivers/model3.c +++ b/src/mame/drivers/model3.c @@ -1604,7 +1604,7 @@ READ64_MEMBER(model3_state::real3d_status_r) { /* pretty sure this is VBLANK */ m_real3d_status &= ~U64(0x0000000200000000); - if (machine().primary_screen->vblank()) + if (m_screen->vblank()) m_real3d_status |= U64(0x0000000200000000); return m_real3d_status; } diff --git a/src/mame/drivers/multfish.c b/src/mame/drivers/multfish.c index 679a9d58ecb..cf69b1d6736 100644 --- a/src/mame/drivers/multfish.c +++ b/src/mame/drivers/multfish.c @@ -423,7 +423,7 @@ READ8_MEMBER(multfish_state::ray_r) { // the games read the raster beam position as part of the hardware checks.. // with a 6mhz clock and 640x480 resolution this seems to give the right results. - return machine().primary_screen->vpos(); + return m_screen->vpos(); } CUSTOM_INPUT_MEMBER(multfish_state::multfish_hopper_r) diff --git a/src/mame/drivers/namcofl.c b/src/mame/drivers/namcofl.c index 91b637bbef3..6919253239c 100644 --- a/src/mame/drivers/namcofl.c +++ b/src/mame/drivers/namcofl.c @@ -206,7 +206,7 @@ WRITE32_MEMBER(namcofl_state::namcofl_paletteram_w) UINT16 v = m_generic_paletteram_32[offset] >> 16; UINT16 triggerscanline=(((v>>8)&0xff)|((v&0xff)<<8))-(32+1); - m_raster_interrupt_timer->adjust(machine().primary_screen->time_until_pos(triggerscanline)); + m_raster_interrupt_timer->adjust(m_screen->time_until_pos(triggerscanline)); } } @@ -525,22 +525,22 @@ GFXDECODE_END TIMER_CALLBACK_MEMBER(namcofl_state::network_interrupt_callback) { m_maincpu->set_input_line(I960_IRQ0, ASSERT_LINE); - machine().scheduler().timer_set(machine().primary_screen->frame_period(), timer_expired_delegate(FUNC(namcofl_state::network_interrupt_callback),this)); + machine().scheduler().timer_set(m_screen->frame_period(), timer_expired_delegate(FUNC(namcofl_state::network_interrupt_callback),this)); } TIMER_CALLBACK_MEMBER(namcofl_state::vblank_interrupt_callback) { m_maincpu->set_input_line(I960_IRQ2, ASSERT_LINE); - machine().scheduler().timer_set(machine().primary_screen->frame_period(), timer_expired_delegate(FUNC(namcofl_state::vblank_interrupt_callback),this)); + machine().scheduler().timer_set(m_screen->frame_period(), timer_expired_delegate(FUNC(namcofl_state::vblank_interrupt_callback),this)); } TIMER_CALLBACK_MEMBER(namcofl_state::raster_interrupt_callback) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_maincpu->set_input_line(I960_IRQ1, ASSERT_LINE); - m_raster_interrupt_timer->adjust(machine().primary_screen->frame_period()); + m_raster_interrupt_timer->adjust(m_screen->frame_period()); } TIMER_DEVICE_CALLBACK_MEMBER(namcofl_state::mcu_irq0_cb) @@ -567,8 +567,8 @@ MACHINE_START_MEMBER(namcofl_state,namcofl) MACHINE_RESET_MEMBER(namcofl_state,namcofl) { - machine().scheduler().timer_set(machine().primary_screen->time_until_pos(machine().primary_screen->visible_area().max_y + 3), timer_expired_delegate(FUNC(namcofl_state::network_interrupt_callback),this)); - machine().scheduler().timer_set(machine().primary_screen->time_until_pos(machine().primary_screen->visible_area().max_y + 1), timer_expired_delegate(FUNC(namcofl_state::vblank_interrupt_callback),this)); + machine().scheduler().timer_set(m_screen->time_until_pos(m_screen->visible_area().max_y + 3), timer_expired_delegate(FUNC(namcofl_state::network_interrupt_callback),this)); + machine().scheduler().timer_set(m_screen->time_until_pos(m_screen->visible_area().max_y + 1), timer_expired_delegate(FUNC(namcofl_state::vblank_interrupt_callback),this)); membank("bank1")->set_base(memregion("maincpu")->base() ); membank("bank2")->set_base(m_workram ); diff --git a/src/mame/drivers/namcona1.c b/src/mame/drivers/namcona1.c index d96615c928a..dda0fdff540 100644 --- a/src/mame/drivers/namcona1.c +++ b/src/mame/drivers/namcona1.c @@ -974,7 +974,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(namcona1_state::namcona1_interrupt) if (scanline == posirq_scanline && enabled & 4) { if (posirq_scanline) - machine().primary_screen->update_partial(posirq_scanline); + m_screen->update_partial(posirq_scanline); m_maincpu->set_input_line(3, HOLD_LINE); } diff --git a/src/mame/drivers/namconb1.c b/src/mame/drivers/namconb1.c index 83ba16049f7..ce1877bfcfb 100644 --- a/src/mame/drivers/namconb1.c +++ b/src/mame/drivers/namconb1.c @@ -302,7 +302,7 @@ TIMER_CALLBACK_MEMBER(namconb1_state::namconb1_TriggerPOSIRQ) if(m_pos_irq_active || !(m_namconb_cpureg[0x02] & 0xf0)) return; - machine().primary_screen->update_partial(param); + m_screen->update_partial(param); m_pos_irq_active = 1; m_maincpu->set_input_line(m_namconb_cpureg[0x02] & 0xf, ASSERT_LINE); } @@ -356,14 +356,14 @@ INTERRUPT_GEN_MEMBER(namconb1_state::namconb1_interrupt) } if( scanline < NAMCONB1_VBSTART ) { - machine().scheduler().timer_set( machine().primary_screen->time_until_pos(scanline), timer_expired_delegate(FUNC(namconb1_state::namconb1_TriggerPOSIRQ),this), scanline); + machine().scheduler().timer_set( m_screen->time_until_pos(scanline), timer_expired_delegate(FUNC(namconb1_state::namconb1_TriggerPOSIRQ),this), scanline); } } /* namconb1_interrupt */ TIMER_CALLBACK_MEMBER(namconb1_state::namconb2_TriggerPOSIRQ) { - machine().primary_screen->update_partial(param); + m_screen->update_partial(param); m_pos_irq_active = 1; m_maincpu->set_input_line(m_namconb_cpureg[0x02], ASSERT_LINE); } @@ -410,7 +410,7 @@ INTERRUPT_GEN_MEMBER(namconb1_state::namconb2_interrupt) scanline = 0; if( scanline < NAMCONB1_VBSTART ) - machine().scheduler().timer_set( machine().primary_screen->time_until_pos(scanline), timer_expired_delegate(FUNC(namconb1_state::namconb2_TriggerPOSIRQ),this), scanline); + machine().scheduler().timer_set( m_screen->time_until_pos(scanline), timer_expired_delegate(FUNC(namconb1_state::namconb2_TriggerPOSIRQ),this), scanline); } /* namconb2_interrupt */ static void namconb1_cpureg8_w(running_machine &machine, int reg, UINT8 data) diff --git a/src/mame/drivers/namcos23.c b/src/mame/drivers/namcos23.c index c2590e158f1..5fe08456d8f 100644 --- a/src/mame/drivers/namcos23.c +++ b/src/mame/drivers/namcos23.c @@ -2242,7 +2242,7 @@ READ16_MEMBER(namcos23_state::s23_c417_r) 0: xcpreq */ case 0: - return 0x8e | (machine().primary_screen->vblank() ? 0x0000 : 0x8000); + return 0x8e | (m_screen->vblank() ? 0x0000 : 0x8000); case 1: return m_c417.adr; case 4: @@ -2479,11 +2479,11 @@ TIMER_CALLBACK_MEMBER(namcos23_state::c361_timer_cb) if (m_c361.scanline != 0x1ff) { // need to do a partial update here, but doesn't work properly yet - //machine().primary_screen->update_partial(machine().primary_screen->vpos()); + //m_screen->update_partial(m_screen->vpos()); update_main_interrupts(m_main_irqcause | MAIN_C361_IRQ); // TC2 indicates it's probably one-shot since it resets it each VBL... - //c361.timer->adjust(machine().primary_screen->time_until_pos(c361.scanline)); + //c361.timer->adjust(m_screen->time_until_pos(c361.scanline)); } else update_main_interrupts(m_main_irqcause & ~MAIN_C361_IRQ); @@ -2503,7 +2503,7 @@ WRITE16_MEMBER(namcos23_state::s23_c361_w) case 4: // interrupt control m_c361.scanline = data & 0x1ff; - m_c361.timer->adjust(machine().primary_screen->time_until_pos(m_c361.scanline)); + m_c361.timer->adjust(m_screen->time_until_pos(m_c361.scanline)); break; default: @@ -2520,10 +2520,10 @@ READ16_MEMBER(namcos23_state::s23_c361_r) // how does it work exactly? it's not understood in namcos22 either (also has a c361) case 5: update_main_interrupts(m_main_irqcause & ~MAIN_C361_IRQ); - return machine().primary_screen->vpos()*2 | (machine().primary_screen->vblank() ? 1 : 0); + return m_screen->vpos()*2 | (m_screen->vblank() ? 1 : 0); case 6: update_main_interrupts(m_main_irqcause & ~MAIN_C361_IRQ); - return machine().primary_screen->vblank() ? 1 : 0; + return m_screen->vblank() ? 1 : 0; } logerror("c361_r %x @ %04x (%08x, %08x)\n", offset, mem_mask, space.device().safe_pc(), (unsigned int)space.device().state().state_int(MIPS3_R31)); diff --git a/src/mame/drivers/nemesis.c b/src/mame/drivers/nemesis.c index 65e9b4188ca..0de90e6056d 100644 --- a/src/mame/drivers/nemesis.c +++ b/src/mame/drivers/nemesis.c @@ -73,7 +73,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(nemesis_state::konamigt_interrupt) { int scanline = param; - if (scanline == 240 && m_irq_on && (machine().primary_screen->frame_number() & 1) == 0) + if (scanline == 240 && m_irq_on && (m_screen->frame_number() & 1) == 0) m_maincpu->set_input_line(1, HOLD_LINE); if (scanline == 0 && m_irq2_on) @@ -84,7 +84,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(nemesis_state::gx400_interrupt) { int scanline = param; - if (scanline == 240 && m_irq1_on && (machine().primary_screen->frame_number() & 1) == 0) + if (scanline == 240 && m_irq1_on && (m_screen->frame_number() & 1) == 0) m_maincpu->set_input_line(1, HOLD_LINE); if (scanline == 0 && m_irq2_on) diff --git a/src/mame/drivers/neogeo.c b/src/mame/drivers/neogeo.c index 0dc214c574b..af9a0f56578 100644 --- a/src/mame/drivers/neogeo.c +++ b/src/mame/drivers/neogeo.c @@ -191,7 +191,7 @@ void neogeo_state::adjust_display_position_interrupt_timer() if ((m_display_counter + 1) != 0) { attotime period = attotime::from_hz(NEOGEO_PIXEL_CLOCK) * (m_display_counter + 1); - if (LOG_VIDEO_SYSTEM) logerror("adjust_display_position_interrupt_timer current y: %02x current x: %02x target y: %x target x: %x\n", machine().primary_screen->vpos(), machine().primary_screen->hpos(), (m_display_counter + 1) / NEOGEO_HTOTAL, (m_display_counter + 1) % NEOGEO_HTOTAL); + if (LOG_VIDEO_SYSTEM) logerror("adjust_display_position_interrupt_timer current y: %02x current x: %02x target y: %x target x: %x\n", m_screen->vpos(), m_screen->hpos(), (m_display_counter + 1) / NEOGEO_HTOTAL, (m_display_counter + 1) % NEOGEO_HTOTAL); m_display_position_interrupt_timer->adjust(period); } @@ -249,11 +249,11 @@ void neogeo_state::neogeo_acknowledge_interrupt( UINT16 data ) TIMER_CALLBACK_MEMBER(neogeo_state::display_position_interrupt_callback) { - if (LOG_VIDEO_SYSTEM) logerror("--- Scanline @ %d,%d\n", machine().primary_screen->vpos(), machine().primary_screen->hpos()); + if (LOG_VIDEO_SYSTEM) logerror("--- Scanline @ %d,%d\n", m_screen->vpos(), m_screen->hpos()); if (m_display_position_interrupt_control & IRQ2CTRL_ENABLE) { - if (LOG_VIDEO_SYSTEM) logerror("*** Scanline interrupt (IRQ2) *** y: %02x x: %02x\n", machine().primary_screen->vpos(), machine().primary_screen->hpos()); + if (LOG_VIDEO_SYSTEM) logerror("*** Scanline interrupt (IRQ2) *** y: %02x x: %02x\n", m_screen->vpos(), m_screen->hpos()); m_display_position_interrupt_pending = 1; update_interrupts(); @@ -276,13 +276,13 @@ TIMER_CALLBACK_MEMBER(neogeo_state::display_position_vblank_callback) } /* set timer for next screen */ - m_display_position_vblank_timer->adjust(machine().primary_screen->time_until_pos(NEOGEO_VBSTART, NEOGEO_VBLANK_RELOAD_HPOS)); + m_display_position_vblank_timer->adjust(m_screen->time_until_pos(NEOGEO_VBSTART, NEOGEO_VBLANK_RELOAD_HPOS)); } TIMER_CALLBACK_MEMBER(neogeo_state::vblank_interrupt_callback) { - if (LOG_VIDEO_SYSTEM) logerror("+++ VBLANK @ %d,%d\n", machine().primary_screen->vpos(), machine().primary_screen->hpos()); + if (LOG_VIDEO_SYSTEM) logerror("+++ VBLANK @ %d,%d\n", m_screen->vpos(), m_screen->hpos()); /* add a timer tick to the pd4990a */ upd4990a_addretrace(m_upd4990a); @@ -292,7 +292,7 @@ TIMER_CALLBACK_MEMBER(neogeo_state::vblank_interrupt_callback) update_interrupts(); /* set timer for next screen */ - m_vblank_interrupt_timer->adjust(machine().primary_screen->time_until_pos(NEOGEO_VBSTART)); + m_vblank_interrupt_timer->adjust(m_screen->time_until_pos(NEOGEO_VBSTART)); } @@ -306,8 +306,8 @@ void neogeo_state::create_interrupt_timers() void neogeo_state::start_interrupt_timers() { - m_vblank_interrupt_timer->adjust(machine().primary_screen->time_until_pos(NEOGEO_VBSTART)); - m_display_position_vblank_timer->adjust(machine().primary_screen->time_until_pos(NEOGEO_VBSTART, NEOGEO_VBLANK_RELOAD_HPOS)); + m_vblank_interrupt_timer->adjust(m_screen->time_until_pos(NEOGEO_VBSTART)); + m_display_position_vblank_timer->adjust(m_screen->time_until_pos(NEOGEO_VBSTART, NEOGEO_VBLANK_RELOAD_HPOS)); } diff --git a/src/mame/drivers/neoprint.c b/src/mame/drivers/neoprint.c index cf6062f1376..a7806975d6d 100644 --- a/src/mame/drivers/neoprint.c +++ b/src/mame/drivers/neoprint.c @@ -158,7 +158,7 @@ READ8_MEMBER(neoprint_state::neoprint_unk_r) /* ---- xx-- one of these two must be high */ /* ---- --xx checked right before entering into attract mode, presumably printer/camera related */ - m_vblank = (machine().primary_screen->frame_number() & 0x1) ? 0x10 : 0x00; + m_vblank = (m_screen->frame_number() & 0x1) ? 0x10 : 0x00; //if(space.device().safe_pc() != 0x1504 && space.device().safe_pc() != 0x5f86 && space.device().safe_pc() != 0x5f90) // printf("%08x\n",space.device().safe_pc()); diff --git a/src/mame/drivers/nss.c b/src/mame/drivers/nss.c index 499db0d5d1b..e63fb9e9e99 100644 --- a/src/mame/drivers/nss.c +++ b/src/mame/drivers/nss.c @@ -515,7 +515,7 @@ READ8_MEMBER(nss_state::port_00_r) UINT8 res; res = (m_joy_flag) << 7; - res|= (machine().primary_screen->vblank() & 1) << 6; + res|= (m_screen->vblank() & 1) << 6; res|= (BIT(ioport("SERIAL1_DATA1")->read(), 15) << 5); res|= (BIT(ioport("SERIAL1_DATA1")->read(), 7) << 4); res|= (BIT(ioport("SERIAL1_DATA1")->read(), 10) << 3); diff --git a/src/mame/drivers/nyny.c b/src/mame/drivers/nyny.c index 63d135425a1..04a1f13693d 100644 --- a/src/mame/drivers/nyny.c +++ b/src/mame/drivers/nyny.c @@ -465,7 +465,7 @@ WRITE8_MEMBER(nyny_state::nyny_ay8910_37_port_a_w) { /* not sure what this does */ - /*logerror("%x PORT A write %x at Y=%x X=%x\n", space.device().safe_pc(), data, space.machine().primary_screen->vpos(), space.machine().primary_screen->hpos());*/ + /*logerror("%x PORT A write %x at Y=%x X=%x\n", space.device().safe_pc(), data, m_screen->vpos(), m_screen->hpos());*/ } diff --git a/src/mame/drivers/orbit.c b/src/mame/drivers/orbit.c index 2ce05271ec9..1be72a01e8b 100644 --- a/src/mame/drivers/orbit.c +++ b/src/mame/drivers/orbit.c @@ -48,7 +48,7 @@ TIMER_CALLBACK_MEMBER(orbit_state::irq_off) INTERRUPT_GEN_MEMBER(orbit_state::orbit_interrupt) { device.execute().set_input_line(0, ASSERT_LINE); - machine().scheduler().timer_set(machine().primary_screen->time_until_vblank_end(), timer_expired_delegate(FUNC(orbit_state::irq_off),this)); + machine().scheduler().timer_set(m_screen->time_until_vblank_end(), timer_expired_delegate(FUNC(orbit_state::irq_off),this)); } diff --git a/src/mame/drivers/othldrby.c b/src/mame/drivers/othldrby.c index 2e1f094104b..542ce8e889f 100644 --- a/src/mame/drivers/othldrby.c +++ b/src/mame/drivers/othldrby.c @@ -26,7 +26,7 @@ Notes: /* Guess: reads when doing r/w to video device */ READ16_MEMBER(othldrby_state::othldrby_scanline_r) { - return machine().primary_screen->vpos(); + return m_screen->vpos(); } diff --git a/src/mame/drivers/overdriv.c b/src/mame/drivers/overdriv.c index 99586e7811f..901a4fe125d 100644 --- a/src/mame/drivers/overdriv.c +++ b/src/mame/drivers/overdriv.c @@ -72,7 +72,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(overdriv_state::overdriv_cpuA_scanline) /* TODO: irqs routines are TOO slow right now, it ends up firing spurious irqs for whatever reason (shared ram fighting?) */ /* this is a temporary solution to get rid of deprecat lib and the crashes, but also makes the game timer to be too slow */ - if(scanline == 256 && machine().primary_screen->frame_number() & 1) // vblank-out irq + if(scanline == 256 && m_screen->frame_number() & 1) // vblank-out irq m_maincpu->set_input_line(4, HOLD_LINE); else if((scanline % 128) == 0) // timer irq m_maincpu->set_input_line(5, HOLD_LINE); diff --git a/src/mame/drivers/peplus.c b/src/mame/drivers/peplus.c index ca8c8b32aa8..768c4282d7e 100644 --- a/src/mame/drivers/peplus.c +++ b/src/mame/drivers/peplus.c @@ -396,23 +396,23 @@ void peplus_state::device_timer(emu_timer &timer, device_timer_id id, int param, } -static void handle_lightpen( device_t *device ) +static void handle_lightpen( mc6845_device *device ) { peplus_state *state = device->machine().driver_data(); int x_val = device->machine().root_device().ioport("TOUCH_X")->read_safe(0x00); int y_val = device->machine().root_device().ioport("TOUCH_Y")->read_safe(0x00); - const rectangle &vis_area = device->machine().primary_screen->visible_area(); + const rectangle &vis_area = device->screen().visible_area(); int xt, yt; xt = x_val * vis_area.width() / 1024 + vis_area.min_x; yt = y_val * vis_area.height() / 1024 + vis_area.min_y; - state->timer_set(device->machine().primary_screen->time_until_pos(yt, xt), peplus_state::TIMER_ASSERT_LP, 0, device); + state->timer_set(device->screen().time_until_pos(yt, xt), peplus_state::TIMER_ASSERT_LP, 0, device); } WRITE_LINE_MEMBER(peplus_state::crtc_vsync) { - device_t *device = machine().device("crtc"); + mc6845_device *device = machine().device("crtc"); m_maincpu->set_input_line(0, state ? ASSERT_LINE : CLEAR_LINE); handle_lightpen(device); } diff --git a/src/mame/drivers/pinball2k.c b/src/mame/drivers/pinball2k.c index 9ce9d9f70b1..4c90f13c443 100644 --- a/src/mame/drivers/pinball2k.c +++ b/src/mame/drivers/pinball2k.c @@ -188,7 +188,7 @@ void pinball2k_state::draw_framebuffer(bitmap_rgb32 &bitmap, const rectangle &cl m_frame_height = height; visarea.set(0, width - 1, 0, height - 1); - machine().primary_screen->configure(width, height * 262 / 240, visarea, machine().primary_screen->frame_period().attoseconds); + m_screen->configure(width, height * 262 / 240, visarea, m_screen->frame_period().attoseconds); } if (m_disp_ctrl_reg[DC_OUTPUT_CFG] & 0x1) // 8-bit mode @@ -299,7 +299,7 @@ READ32_MEMBER(pinball2k_state::disp_ctrl_r) case DC_TIMING_CFG: r |= 0x40000000; - if (machine().primary_screen->vpos() >= m_frame_height) + if (m_screen->vpos() >= m_frame_height) r &= ~0x40000000; break; } diff --git a/src/mame/drivers/pkscram.c b/src/mame/drivers/pkscram.c index 3f27a7cbe68..d088584d552 100644 --- a/src/mame/drivers/pkscram.c +++ b/src/mame/drivers/pkscram.c @@ -225,14 +225,14 @@ TIMER_DEVICE_CALLBACK_MEMBER(pkscram_state::scanline_callback) { if (m_out & 0x2000) m_maincpu->set_input_line(1, ASSERT_LINE); - timer.adjust(machine().primary_screen->time_until_pos(param + 1), param+1); + timer.adjust(m_screen->time_until_pos(param + 1), param+1); m_interrupt_line_active = 1; } else { if (m_interrupt_line_active) m_maincpu->set_input_line(1, CLEAR_LINE); - timer.adjust(machine().primary_screen->time_until_pos(interrupt_scanline), interrupt_scanline); + timer.adjust(m_screen->time_until_pos(interrupt_scanline), interrupt_scanline); m_interrupt_line_active = 0; } } @@ -295,7 +295,7 @@ void pkscram_state::machine_reset() m_out = 0; m_interrupt_line_active=0; timer_device *scanline_timer = machine().device("scan_timer"); - scanline_timer->adjust(machine().primary_screen->time_until_pos(interrupt_scanline), interrupt_scanline); + scanline_timer->adjust(m_screen->time_until_pos(interrupt_scanline), interrupt_scanline); } static MACHINE_CONFIG_START( pkscramble, pkscram_state ) diff --git a/src/mame/drivers/polepos.c b/src/mame/drivers/polepos.c index 62bc128ee53..0a061c360a6 100644 --- a/src/mame/drivers/polepos.c +++ b/src/mame/drivers/polepos.c @@ -273,7 +273,7 @@ READ8_MEMBER(polepos_state::polepos_ready_r) { int ret = 0xff; - if (machine().primary_screen->vpos() >= 128) + if (m_screen->vpos() >= 128) ret ^= 0x02; ret ^= 0x08; /* ADC End Flag */ diff --git a/src/mame/drivers/policetr.c b/src/mame/drivers/policetr.c index 47dda5c25cd..3f6bd2d59ed 100644 --- a/src/mame/drivers/policetr.c +++ b/src/mame/drivers/policetr.c @@ -117,7 +117,7 @@ void policetr_state::device_timer(emu_timer &timer, device_timer_id id, int para INTERRUPT_GEN_MEMBER(policetr_state::irq4_gen) { device.execute().set_input_line(R3000_IRQ4, ASSERT_LINE); - timer_set(machine().primary_screen->time_until_pos(0), TIMER_IRQ5_GEN); + timer_set(m_screen->time_until_pos(0), TIMER_IRQ5_GEN); } diff --git a/src/mame/drivers/pzletime.c b/src/mame/drivers/pzletime.c index ba7e0d811f8..f9a6e5b65cd 100644 --- a/src/mame/drivers/pzletime.c +++ b/src/mame/drivers/pzletime.c @@ -218,7 +218,7 @@ WRITE16_MEMBER(pzletime_state::oki_bank_w) CUSTOM_INPUT_MEMBER(pzletime_state::ticket_status_r) { - return (m_ticket && !(machine().primary_screen->frame_number() % 128)); + return (m_ticket && !(m_screen->frame_number() % 128)); } static ADDRESS_MAP_START( pzletime_map, AS_PROGRAM, 16, pzletime_state ) diff --git a/src/mame/drivers/quizshow.c b/src/mame/drivers/quizshow.c index 549bdba0975..bd0ed92f327 100644 --- a/src/mame/drivers/quizshow.c +++ b/src/mame/drivers/quizshow.c @@ -194,7 +194,7 @@ READ8_MEMBER(quizshow_state::quizshow_timing_r) ret |= m_clocks >> 2 & 0x60; // d7: display busy/idle, during in-between tilerows(?) and blanking - if (machine().primary_screen->vpos() >= VBSTART || (machine().primary_screen->vpos() + 4) & 8) + if (m_screen->vpos() >= VBSTART || (m_screen->vpos() + 4) & 8) ret &= 0x7f; return ret; diff --git a/src/mame/drivers/rampart.c b/src/mame/drivers/rampart.c index 647370506da..19ed52c3303 100644 --- a/src/mame/drivers/rampart.c +++ b/src/mame/drivers/rampart.c @@ -62,7 +62,7 @@ void rampart_state::scanline_update(screen_device &screen, int scanline) MACHINE_RESET_MEMBER(rampart_state,rampart) { atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 32); + scanline_timer_reset(*m_screen, 32); } diff --git a/src/mame/drivers/redalert.c b/src/mame/drivers/redalert.c index ea73498055f..6eff5ad8d8d 100644 --- a/src/mame/drivers/redalert.c +++ b/src/mame/drivers/redalert.c @@ -122,7 +122,7 @@ READ8_MEMBER(redalert_state::redalert_interrupt_clear_r) m_maincpu->set_input_line(M6502_IRQ_LINE, CLEAR_LINE); /* the result never seems to be actually used */ - return machine().primary_screen->vpos(); + return m_screen->vpos(); } diff --git a/src/mame/drivers/relief.c b/src/mame/drivers/relief.c index 1699a4cf7f0..a6f8483aeb4 100644 --- a/src/mame/drivers/relief.c +++ b/src/mame/drivers/relief.c @@ -65,7 +65,7 @@ MACHINE_RESET_MEMBER(relief_state,relief) READ16_MEMBER(relief_state::special_port2_r) { int result = ioport("260010")->read(); - if (!(result & 0x0080) || get_hblank(*machine().primary_screen)) result ^= 0x0001; + if (!(result & 0x0080) || get_hblank(*m_screen)) result ^= 0x0001; return result; } diff --git a/src/mame/drivers/runaway.c b/src/mame/drivers/runaway.c index ece8d3bec58..0036e47d709 100644 --- a/src/mame/drivers/runaway.c +++ b/src/mame/drivers/runaway.c @@ -29,7 +29,7 @@ TIMER_CALLBACK_MEMBER(runaway_state::interrupt_callback) if (scanline >= 263) scanline = 16; - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_interrupt_timer->adjust(m_screen->time_until_pos(scanline), scanline); } void runaway_state::machine_start() @@ -39,7 +39,7 @@ void runaway_state::machine_start() void runaway_state::machine_reset() { - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(16), 16); + m_interrupt_timer->adjust(m_screen->time_until_pos(16), 16); } diff --git a/src/mame/drivers/sbrkout.c b/src/mame/drivers/sbrkout.c index 3a54cd662af..24d64dd7749 100644 --- a/src/mame/drivers/sbrkout.c +++ b/src/mame/drivers/sbrkout.c @@ -122,7 +122,7 @@ void sbrkout_state::machine_start() void sbrkout_state::machine_reset() { - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(0)); + m_scanline_timer->adjust(m_screen->time_until_pos(0)); } @@ -139,7 +139,7 @@ TIMER_CALLBACK_MEMBER(sbrkout_state::scanline_callback) int scanline = param; /* force a partial update before anything happens */ - machine().primary_screen->update_partial(scanline); + m_screen->update_partial(scanline); /* if this is a rising edge of 16V, assert the CPU interrupt */ if (scanline % 32 == 16) @@ -149,17 +149,17 @@ TIMER_CALLBACK_MEMBER(sbrkout_state::scanline_callback) m_dac->write_unsigned8((videoram[0x380 + 0x11] & (scanline >> 2)) ? 255 : 0); /* on the VBLANK, read the pot and schedule an interrupt time for it */ - if (scanline == machine().primary_screen->visible_area().max_y + 1) + if (scanline == m_screen->visible_area().max_y + 1) { UINT8 potvalue = ioport("PADDLE")->read(); - m_pot_timer->adjust(machine().primary_screen->time_until_pos(56 + (potvalue / 2), (potvalue % 2) * 128)); + m_pot_timer->adjust(m_screen->time_until_pos(56 + (potvalue / 2), (potvalue % 2) * 128)); } /* call us back in 4 scanlines */ scanline += 4; - if (scanline >= machine().primary_screen->height()) + if (scanline >= m_screen->height()) scanline = 0; - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_scanline_timer->adjust(m_screen->time_until_pos(scanline), scanline); } @@ -284,9 +284,9 @@ WRITE8_MEMBER(sbrkout_state::coincount_w) READ8_MEMBER(sbrkout_state::sync_r) { - int hpos = machine().primary_screen->hpos(); - m_sync2_value = (hpos >= 128 && hpos <= machine().primary_screen->visible_area().max_x); - return machine().primary_screen->vpos(); + int hpos = m_screen->hpos(); + m_sync2_value = (hpos >= 128 && hpos <= m_screen->visible_area().max_x); + return m_screen->vpos(); } diff --git a/src/mame/drivers/seabattl.c b/src/mame/drivers/seabattl.c index e39151edd7d..53bc2d072b4 100644 --- a/src/mame/drivers/seabattl.c +++ b/src/mame/drivers/seabattl.c @@ -224,7 +224,7 @@ UINT32 seabattl_state::screen_update_seabattl(screen_device &screen, bitmap_ind1 void seabattl_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_collision_bg); + m_screen->register_screen_bitmap(m_collision_bg); m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(seabattl_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); m_bg_tilemap->set_transparent_pen(0); m_bg_tilemap->set_scrolldx(-12, 0); @@ -263,7 +263,7 @@ ADDRESS_MAP_END READ8_HANDLER(seabattl_state::seabattl_collision_r) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); return m_collision; } @@ -282,14 +282,14 @@ WRITE8_MEMBER(seabattl_state::seabattl_control_w) READ8_HANDLER(seabattl_state::seabattl_collision_clear_r) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_collision = 0; return 0; } WRITE8_HANDLER(seabattl_state::seabattl_collision_clear_w ) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_collision = 0; } diff --git a/src/mame/drivers/segac2.c b/src/mame/drivers/segac2.c index 48bb6988f71..dede2d5eeff 100644 --- a/src/mame/drivers/segac2.c +++ b/src/mame/drivers/segac2.c @@ -406,7 +406,7 @@ WRITE16_MEMBER(segac2_state::io_chip_w ) newbank = data & 3; if (newbank != m_palbank) { - //space.machine().primary_screen->update_partial(space.machine().primary_screen->vpos() + 1); + //m_screen->update_partial(m_screen->vpos() + 1); m_palbank = newbank; recompute_palette_tables(); } @@ -505,11 +505,11 @@ WRITE16_MEMBER(segac2_state::prot_w ) /* if the palette changed, force an update */ if (new_sp_palbase != m_sp_palbase || new_bg_palbase != m_bg_palbase) { - //space.machine().primary_screen->update_partial(space.machine().primary_screen->vpos() + 1); + //m_screen->update_partial(m_screen->vpos() + 1); m_sp_palbase = new_sp_palbase; m_bg_palbase = new_bg_palbase; recompute_palette_tables(); - if (LOG_PALETTE) logerror("Set palbank: %d/%d (scan=%d)\n", m_bg_palbase, m_sp_palbase, space.machine().primary_screen->vpos()); + if (LOG_PALETTE) logerror("Set palbank: %d/%d (scan=%d)\n", m_bg_palbase, m_sp_palbase, m_screen->vpos()); } } diff --git a/src/mame/drivers/segahang.c b/src/mame/drivers/segahang.c index fb508db8d74..fbca7e5dc5c 100644 --- a/src/mame/drivers/segahang.c +++ b/src/mame/drivers/segahang.c @@ -118,14 +118,14 @@ WRITE8_MEMBER( segahang_state::video_lamps_w ) // // bit 7: screen flip - m_segaic16vid->segaic16_tilemap_set_flip(machine(), 0, data & 0x80); + m_segaic16vid->segaic16_tilemap_set_flip(0, data & 0x80); m_sprites->set_flip(data & 0x80); // bit 6: shadow/highlight control m_shadow = ~data & 0x40; // bit 4: enable display - m_segaic16vid->segaic16_set_display_enable(*m_screen, data & 0x10); + m_segaic16vid->segaic16_set_display_enable(data & 0x10); // bits 2 & 3: control the lamps set_led_status(machine(), 1, data & 0x08); @@ -161,8 +161,8 @@ WRITE8_MEMBER( segahang_state::tilemap_sound_w ) m_soundcpu->set_input_line(INPUT_LINE_NMI, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE); // bits 1 & 2: tilemap origin - m_segaic16vid->segaic16_tilemap_set_colscroll(machine(), 0, ~data & 0x04); - m_segaic16vid->segaic16_tilemap_set_rowscroll(machine(), 0, ~data & 0x02); + m_segaic16vid->segaic16_tilemap_set_colscroll(0, ~data & 0x04); + m_segaic16vid->segaic16_tilemap_set_rowscroll(0, ~data & 0x02); // bit 0: sound mute machine().sound().system_enable(data & 0x01); diff --git a/src/mame/drivers/segaorun.c b/src/mame/drivers/segaorun.c index 2c674ae89ee..513afab922f 100644 --- a/src/mame/drivers/segaorun.c +++ b/src/mame/drivers/segaorun.c @@ -396,7 +396,7 @@ WRITE8_MEMBER( segaorun_state::video_control_w ) // D1: (CONT) - affects sprite hardware // D0: Sound section reset (1= normal operation, 0= reset) - m_segaic16vid->segaic16_set_display_enable(*m_screen, data & 0x20); + m_segaic16vid->segaic16_set_display_enable(data & 0x20); m_adc_select = (data >> 2) & 7; m_soundcpu->set_input_line(INPUT_LINE_RESET, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE); } @@ -549,7 +549,7 @@ void segaorun_state::machine_reset() m68k_set_reset_callback(m_maincpu, m68k_reset_callback); // start timers to track interrupts - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(223), 223); + m_scanline_timer->adjust(m_screen->time_until_pos(223), 223); } @@ -584,7 +584,7 @@ void segaorun_state::device_timer(emu_timer &timer, device_timer_id id, int para case 65: case 129: case 193: - timer_set(machine().primary_screen->time_until_pos(scanline, machine().primary_screen->visible_area().max_x + 1), TID_IRQ2_GEN); + timer_set(m_screen->time_until_pos(scanline, m_screen->visible_area().max_x + 1), TID_IRQ2_GEN); next_scanline = scanline + 1; break; @@ -615,7 +615,7 @@ void segaorun_state::device_timer(emu_timer &timer, device_timer_id id, int para update_main_irqs(); // come back at the next targeted scanline - timer.adjust(machine().primary_screen->time_until_pos(next_scanline), next_scanline); + timer.adjust(m_screen->time_until_pos(next_scanline), next_scanline); break; } } @@ -747,7 +747,7 @@ WRITE16_MEMBER( segaorun_state::shangon_custom_io_w ) // D7-D6: (ADC1-0) // D5: Screen display m_adc_select = (data >> 6) & 3; - m_segaic16vid->segaic16_set_display_enable(*m_screen, (data >> 5) & 1); + m_segaic16vid->segaic16_set_display_enable((data >> 5) & 1); return; case 0x0020/2: diff --git a/src/mame/drivers/segas16a.c b/src/mame/drivers/segas16a.c index 58cfe847fef..103911c9f18 100644 --- a/src/mame/drivers/segas16a.c +++ b/src/mame/drivers/segas16a.c @@ -232,7 +232,7 @@ WRITE8_MEMBER( segas16a_state::misc_control_w ) m_video_control = data; // bit 7: screen flip - m_segaic16vid->segaic16_tilemap_set_flip(machine(), 0, data & 0x80); + m_segaic16vid->segaic16_tilemap_set_flip(0, data & 0x80); m_sprites->set_flip(data & 0x80); // bit 6: set 8751 interrupt line @@ -240,7 +240,7 @@ WRITE8_MEMBER( segas16a_state::misc_control_w ) m_mcu->set_input_line(MCS51_INT1_LINE, (data & 0x40) ? CLEAR_LINE : ASSERT_LINE); // bit 4: enable display - m_segaic16vid->segaic16_set_display_enable(*m_screen, data & 0x10); + m_segaic16vid->segaic16_set_display_enable(data & 0x10); // bits 0 & 1: update coin counters coin_counter_w(machine(), 1, data & 0x02); @@ -269,8 +269,8 @@ WRITE8_MEMBER( segas16a_state::tilemap_sound_w ) // 1= sound is enabled // m_soundcpu->set_input_line(INPUT_LINE_NMI, (data & 0x80) ? CLEAR_LINE : ASSERT_LINE); - m_segaic16vid->segaic16_tilemap_set_colscroll(machine(), 0, ~data & 0x04); - m_segaic16vid->segaic16_tilemap_set_rowscroll(machine(), 0, ~data & 0x02); + m_segaic16vid->segaic16_tilemap_set_colscroll(0, ~data & 0x04); + m_segaic16vid->segaic16_tilemap_set_rowscroll(0, ~data & 0x02); } @@ -500,7 +500,7 @@ WRITE8_MEMBER( segas16a_state::mcu_control_w ) // enable/disable the display if (data & 0x40) - m_segaic16vid->segaic16_set_display_enable(*m_screen, 1); + m_segaic16vid->segaic16_set_display_enable(1); // apply an extra boost if the main CPU is just waking up if ((m_mcu_control ^ data) & 0x40) diff --git a/src/mame/drivers/segas16b.c b/src/mame/drivers/segas16b.c index c9515602758..7b1ef6a9cec 100644 --- a/src/mame/drivers/segas16b.c +++ b/src/mame/drivers/segas16b.c @@ -1032,7 +1032,7 @@ void segas16b_state::mapper_sound_w(UINT8 data) WRITE16_MEMBER( segas16b_state::rom_5704_bank_w ) { if (ACCESSING_BITS_0_7) - m_segaic16vid->segaic16_tilemap_set_bank(machine(), 0, offset & 1, data & 7); + m_segaic16vid->segaic16_tilemap_set_bank(0, offset & 1, data & 7); } @@ -1080,7 +1080,7 @@ WRITE16_MEMBER( segas16b_state::rom_5797_bank_math_w ) case 0x2000/2: if (ACCESSING_BITS_0_7) - m_segaic16vid->segaic16_tilemap_set_bank(machine(), 0, offset & 1, data & 7); + m_segaic16vid->segaic16_tilemap_set_bank(0, offset & 1, data & 7); break; } } @@ -1153,10 +1153,10 @@ WRITE16_MEMBER( segas16b_state::standard_io_w ) // D1 : (Output to coin counter 2?) // D0 : Output to coin counter 1 // - m_segaic16vid->segaic16_tilemap_set_flip(machine(), 0, data & 0x40); + m_segaic16vid->segaic16_tilemap_set_flip(0, data & 0x40); m_sprites->set_flip(data & 0x40); if (!m_disable_screen_blanking) - m_segaic16vid->segaic16_set_display_enable(*m_screen, data & 0x20); + m_segaic16vid->segaic16_set_display_enable(data & 0x20); set_led_status(machine(), 1, data & 0x08); set_led_status(machine(), 0, data & 0x04); coin_counter_w(machine(), 1, data & 0x02); diff --git a/src/mame/drivers/segas18.c b/src/mame/drivers/segas18.c index 10296f21aa7..b4083aa3b24 100644 --- a/src/mame/drivers/segas18.c +++ b/src/mame/drivers/segas18.c @@ -297,7 +297,7 @@ WRITE16_MEMBER( segas18_state::io_chip_w ) // miscellaneous output case 0x06/2: set_grayscale(~data & 0x40); - m_segaic16vid->segaic16_tilemap_set_flip(machine(), 0, data & 0x20); + m_segaic16vid->segaic16_tilemap_set_flip(0, data & 0x20); m_sprites->set_flip(data & 0x20); // These are correct according to cgfm's docs, but mwalker and ddcrew both // enable the lockout and never turn it off @@ -312,14 +312,14 @@ WRITE16_MEMBER( segas18_state::io_chip_w ) if (m_romboard == ROM_BOARD_171_5874 || m_romboard == ROM_BOARD_171_SHADOW) for (int i = 0; i < 4; i++) { - m_segaic16vid->segaic16_tilemap_set_bank(machine(), 0, 0 + i, (data & 0xf) * 4 + i); - m_segaic16vid->segaic16_tilemap_set_bank(machine(), 0, 4 + i, ((data >> 4) & 0xf) * 4 + i); + m_segaic16vid->segaic16_tilemap_set_bank(0, 0 + i, (data & 0xf) * 4 + i); + m_segaic16vid->segaic16_tilemap_set_bank(0, 4 + i, ((data >> 4) & 0xf) * 4 + i); } break; // CNT register case 0x1c/2: - m_segaic16vid->segaic16_set_display_enable(*m_screen, data & 2); + m_segaic16vid->segaic16_set_display_enable(data & 2); if ((old ^ data) & 4) set_vdp_enable(data & 4); break; @@ -404,7 +404,7 @@ WRITE16_MEMBER( segas18_state::rom_5987_bank_w ) int maxbanks = machine().gfx[0]->elements() / 1024; if (data >= maxbanks) data %= maxbanks; - m_segaic16vid->segaic16_tilemap_set_bank(machine(), 0, offset, data); + m_segaic16vid->segaic16_tilemap_set_bank(0, offset, data); } // sprite banking diff --git a/src/mame/drivers/segas24.c b/src/mame/drivers/segas24.c index 099ff6df674..a84aca41b35 100644 --- a/src/mame/drivers/segas24.c +++ b/src/mame/drivers/segas24.c @@ -878,7 +878,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(segas24_state::irq_timer_cb) m_subcpu->set_input_line(IRQ_TIMER+1, ASSERT_LINE); if(irq_tmode == 1 || irq_tmode == 2) - machine().primary_screen->update_now(); + m_screen->update_now(); } TIMER_DEVICE_CALLBACK_MEMBER(segas24_state::irq_timer_clear_cb) diff --git a/src/mame/drivers/segas32.c b/src/mame/drivers/segas32.c index 7f78e65dd33..cb38c441e00 100644 --- a/src/mame/drivers/segas32.c +++ b/src/mame/drivers/segas32.c @@ -568,7 +568,7 @@ INTERRUPT_GEN_MEMBER(segas32_state::start_of_vblank_int) { signal_v60_irq(MAIN_IRQ_VBSTART); system32_set_vblank(1); - machine().scheduler().timer_set(machine().primary_screen->time_until_pos(0), timer_expired_delegate(FUNC(segas32_state::end_of_vblank_int),this)); + machine().scheduler().timer_set(m_screen->time_until_pos(0), timer_expired_delegate(FUNC(segas32_state::end_of_vblank_int),this)); if (m_system32_prot_vblank) (*m_system32_prot_vblank)(&device); } diff --git a/src/mame/drivers/segaxbd.c b/src/mame/drivers/segaxbd.c index c8ee5ca57f4..b8b57abefa2 100644 --- a/src/mame/drivers/segaxbd.c +++ b/src/mame/drivers/segaxbd.c @@ -479,7 +479,7 @@ WRITE16_MEMBER( segaxbd_state::iochip_0_w ) if (((oldval ^ data) & 0x40) && !(data & 0x40)) machine().watchdog_reset(); - m_segaic16vid->segaic16_set_display_enable(*m_screen, data & 0x20); + m_segaic16vid->segaic16_set_display_enable(data & 0x20); m_soundcpu->set_input_line(INPUT_LINE_RESET, (data & 0x01) ? CLEAR_LINE : ASSERT_LINE); if (m_soundcpu2 != NULL) @@ -676,7 +676,7 @@ void segaxbd_state::machine_reset() m68k_set_reset_callback(m_maincpu, &segaxbd_state::m68k_reset_callback); // start timers to track interrupts - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(1), 1); + m_scanline_timer->adjust(m_screen->time_until_pos(1), 1); } @@ -730,7 +730,7 @@ void segaxbd_state::device_timer(emu_timer &timer, device_timer_id id, int param update_main_irqs(); // come back in 2 scanlines - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(next_scanline), next_scanline); + m_scanline_timer->adjust(m_screen->time_until_pos(next_scanline), next_scanline); break; } } diff --git a/src/mame/drivers/segaybd.c b/src/mame/drivers/segaybd.c index 8fa694d33f5..55e8cd2aa93 100644 --- a/src/mame/drivers/segaybd.c +++ b/src/mame/drivers/segaybd.c @@ -204,7 +204,7 @@ WRITE16_MEMBER( segaybd_state::io_chip_w ) // D2 = YRES // D1-D0 = ADC0-1 // - m_segaic16vid->segaic16_set_display_enable(*m_screen, data & 0x80); + m_segaic16vid->segaic16_set_display_enable(data & 0x80); if (((old ^ data) & 0x20) && !(data & 0x20)) machine().watchdog_reset(); m_soundcpu->set_input_line(INPUT_LINE_RESET, (data & 0x10) ? CLEAR_LINE : ASSERT_LINE); @@ -270,7 +270,7 @@ READ8_MEMBER( segaybd_state::sound_data_r ) void segaybd_state::machine_reset() { m_irq2_scanline = 170; - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(223), 223); + m_scanline_timer->adjust(m_screen->time_until_pos(223), 223); } @@ -350,7 +350,7 @@ void segaybd_state::device_timer(emu_timer &timer, device_timer_id id, int param update_irqs(); // come back at the next appropriate scanline - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_scanline_timer->adjust(m_screen->time_until_pos(scanline), scanline); #if TWEAK_IRQ2_SCANLINE if (scanline == 223) diff --git a/src/mame/drivers/seta2.c b/src/mame/drivers/seta2.c index e129e750095..50f2679d7f0 100644 --- a/src/mame/drivers/seta2.c +++ b/src/mame/drivers/seta2.c @@ -550,7 +550,7 @@ READ32_MEMBER(seta2_state::funcube_debug_r) UINT32 ret = ioport("DEBUG")->read(); // This bits let you move the crosshair in the inputs / touch panel test with a joystick - if (!(machine().primary_screen->frame_number() % 3)) + if (!(m_screen->frame_number() % 3)) ret |= 0x3f; return ret; @@ -632,7 +632,7 @@ READ8_MEMBER(seta2_state::funcube_coins_r) UINT8 coin_bit0 = 1; // active low UINT8 coin_bit1 = 1; - UINT8 hopper_bit = (m_funcube_hopper_motor && !(machine().primary_screen->frame_number()%20)) ? 1 : 0; + UINT8 hopper_bit = (m_funcube_hopper_motor && !(m_screen->frame_number()%20)) ? 1 : 0; const UINT64 coin_total_cycles = FUNCUBE_SUB_CPU_CLOCK / (1000/20); diff --git a/src/mame/drivers/sfcbox.c b/src/mame/drivers/sfcbox.c index aa91f99ae69..0eb65859615 100644 --- a/src/mame/drivers/sfcbox.c +++ b/src/mame/drivers/sfcbox.c @@ -222,7 +222,7 @@ READ8_MEMBER( sfcbox_state::port_81_r ) */ UINT8 res; - res = (machine().primary_screen->vblank() & 1) << 7; + res = (m_screen->vblank() & 1) << 7; res = 1 << 6; res = 0 << 5; res = 0 << 4; diff --git a/src/mame/drivers/shadfrce.c b/src/mame/drivers/shadfrce.c index ff387796c0c..39fae0099a6 100644 --- a/src/mame/drivers/shadfrce.c +++ b/src/mame/drivers/shadfrce.c @@ -327,7 +327,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(shadfrce_state::shadfrce_scanline) { m_raster_scanline = (m_raster_scanline + 1) % 240; if (m_raster_scanline > 0) - machine().primary_screen->update_partial(m_raster_scanline - 1); + m_screen->update_partial(m_raster_scanline - 1); m_maincpu->set_input_line(1, ASSERT_LINE); } } @@ -338,7 +338,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(shadfrce_state::shadfrce_scanline) if (scanline % 16 == 0) { if (scanline > 0) - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); m_maincpu->set_input_line(2, ASSERT_LINE); } } @@ -348,7 +348,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(shadfrce_state::shadfrce_scanline) { if (scanline == 248) { - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); m_maincpu->set_input_line(3, ASSERT_LINE); } } diff --git a/src/mame/drivers/shuuz.c b/src/mame/drivers/shuuz.c index 124047f21a8..cd174a8971b 100644 --- a/src/mame/drivers/shuuz.c +++ b/src/mame/drivers/shuuz.c @@ -86,7 +86,7 @@ READ16_MEMBER(shuuz_state::special_port0_r) { int result = ioport("SYSTEM")->read(); - if ((result & 0x0800) && get_hblank(*machine().primary_screen)) + if ((result & 0x0800) && get_hblank(*m_screen)) result &= ~0x0800; return result; diff --git a/src/mame/drivers/sigmab98.c b/src/mame/drivers/sigmab98.c index 374852b6b82..c9ca87afeb5 100644 --- a/src/mame/drivers/sigmab98.c +++ b/src/mame/drivers/sigmab98.c @@ -886,7 +886,7 @@ READ8_MEMBER(sigmab98_state::haekaka_rambank_r) READ8_MEMBER(sigmab98_state::haekaka_vblank_r) { - return machine().primary_screen->vblank() ? 0 : 0x1c; + return m_screen->vblank() ? 0 : 0x1c; } READ8_MEMBER(sigmab98_state::haekaka_b000_r) diff --git a/src/mame/drivers/skullxbo.c b/src/mame/drivers/skullxbo.c index 8a3f6f485e3..c0d566fa8e6 100644 --- a/src/mame/drivers/skullxbo.c +++ b/src/mame/drivers/skullxbo.c @@ -62,14 +62,14 @@ void skullxbo_state::scanline_update(screen_device &screen, int scanline) WRITE16_MEMBER(skullxbo_state::skullxbo_halt_until_hblank_0_w) { - halt_until_hblank_0(space.device(), *machine().primary_screen); + halt_until_hblank_0(space.device(), *m_screen); } MACHINE_RESET_MEMBER(skullxbo_state,skullxbo) { atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 8); + scanline_timer_reset(*m_screen, 8); } diff --git a/src/mame/drivers/sliver.c b/src/mame/drivers/sliver.c index c19c3c8e0c6..6b374553656 100644 --- a/src/mame/drivers/sliver.c +++ b/src/mame/drivers/sliver.c @@ -365,8 +365,8 @@ ADDRESS_MAP_END void sliver_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_bitmap_bg); - machine().primary_screen->register_screen_bitmap(m_bitmap_fg); + m_screen->register_screen_bitmap(m_bitmap_bg); + m_screen->register_screen_bitmap(m_bitmap_fg); } UINT32 sliver_state::screen_update_sliver(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) diff --git a/src/mame/drivers/slotcarn.c b/src/mame/drivers/slotcarn.c index e83c0f6b34c..795a3529a60 100644 --- a/src/mame/drivers/slotcarn.c +++ b/src/mame/drivers/slotcarn.c @@ -76,7 +76,7 @@ WRITE8_MEMBER(slotcarn_state::palette_w) { int co; - machine().primary_screen->update_now(); + m_screen->update_now(); data &= 0x0f; co = ((m_ram_attr[offset] & 0x7F) << 3) | (offset & 0x07); @@ -160,7 +160,7 @@ static MC6845_UPDATE_ROW( update_row ) WRITE_LINE_MEMBER(slotcarn_state::hsync_changed) { /* update any video up to the current scanline */ - machine().primary_screen->update_now(); + m_screen->update_now(); } WRITE_LINE_MEMBER(slotcarn_state::vsync_changed) diff --git a/src/mame/drivers/smsmcorp.c b/src/mame/drivers/smsmcorp.c index 4ec8d2d10f9..ac7dab35a94 100644 --- a/src/mame/drivers/smsmcorp.c +++ b/src/mame/drivers/smsmcorp.c @@ -477,7 +477,7 @@ WRITE8_MEMBER(smsmfg_state::video_w) void smsmfg_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_bitmap); + m_screen->register_screen_bitmap(m_bitmap); save_item(NAME(m_vid_regs)); save_item(NAME(m_bitmap)); diff --git a/src/mame/drivers/spacefb.c b/src/mame/drivers/spacefb.c index 5d2e43e0384..bfd8f44b142 100644 --- a/src/mame/drivers/spacefb.c +++ b/src/mame/drivers/spacefb.c @@ -129,7 +129,7 @@ TIMER_CALLBACK_MEMBER(spacefb_state::interrupt_callback) int next_vpos; /* compute vector and set the interrupt line */ - int vpos = machine().primary_screen->vpos(); + int vpos = m_screen->vpos(); UINT8 vector = 0xc7 | ((vpos & 0x40) >> 2) | ((~vpos & 0x40) >> 3); m_maincpu->set_input_line_and_vector(0, HOLD_LINE, vector); @@ -139,7 +139,7 @@ TIMER_CALLBACK_MEMBER(spacefb_state::interrupt_callback) else next_vpos = SPACEFB_INT_TRIGGER_COUNT_1; - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(next_vpos)); + m_interrupt_timer->adjust(m_screen->time_until_pos(next_vpos)); } @@ -151,7 +151,7 @@ void spacefb_state::create_interrupt_timer() void spacefb_state::start_interrupt_timer() { - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(SPACEFB_INT_TRIGGER_COUNT_1)); + m_interrupt_timer->adjust(m_screen->time_until_pos(SPACEFB_INT_TRIGGER_COUNT_1)); } diff --git a/src/mame/drivers/spoker.c b/src/mame/drivers/spoker.c index b11c464b0b5..346b637528e 100644 --- a/src/mame/drivers/spoker.c +++ b/src/mame/drivers/spoker.c @@ -115,7 +115,7 @@ UINT32 spoker_state::screen_update_spoker(screen_device &screen, bitmap_ind16 &b CUSTOM_INPUT_MEMBER(spoker_state::hopper_r) { - if (m_hopper) return !(machine().primary_screen->frame_number()%10); + if (m_hopper) return !(m_screen->frame_number()%10); return machine().input().code_pressed(KEYCODE_H); } diff --git a/src/mame/drivers/sprint2.c b/src/mame/drivers/sprint2.c index d14adac741b..ebb9d28760f 100644 --- a/src/mame/drivers/sprint2.c +++ b/src/mame/drivers/sprint2.c @@ -159,13 +159,13 @@ READ8_MEMBER(sprint2_state::sprint2_sync_r) if (m_attract != 0) val |= 0x10; - if (machine().primary_screen->vpos() == 261) + if (m_screen->vpos() == 261) val |= 0x20; /* VRESET */ - if (machine().primary_screen->vpos() >= 224) + if (m_screen->vpos() >= 224) val |= 0x40; /* VBLANK */ - if (machine().primary_screen->vpos() >= 131) + if (m_screen->vpos() >= 131) val |= 0x80; /* 60 Hz? */ return val; diff --git a/src/mame/drivers/sprint4.c b/src/mame/drivers/sprint4.c index c53a4aecb3e..b1cd93a0a50 100644 --- a/src/mame/drivers/sprint4.c +++ b/src/mame/drivers/sprint4.c @@ -116,13 +116,13 @@ TIMER_CALLBACK_MEMBER(sprint4_state::nmi_callback) if (ioport("IN0")->read() & 0x40) m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); - timer_set(machine().primary_screen->time_until_pos(scanline), TIMER_NMI, scanline); + timer_set(m_screen->time_until_pos(scanline), TIMER_NMI, scanline); } void sprint4_state::machine_reset() { - timer_set(machine().primary_screen->time_until_pos(32), TIMER_NMI, 32); + timer_set(m_screen->time_until_pos(32), TIMER_NMI, 32); memset(m_steer_FF1, 0, sizeof m_steer_FF1); memset(m_steer_FF2, 0, sizeof m_steer_FF2); diff --git a/src/mame/drivers/subsino2.c b/src/mame/drivers/subsino2.c index fd0689b084c..175b1ead79b 100644 --- a/src/mame/drivers/subsino2.c +++ b/src/mame/drivers/subsino2.c @@ -815,11 +815,11 @@ READ8_MEMBER(subsino2_state::dsw_r) READ8_MEMBER(subsino2_state::vblank_bit2_r) { - return machine().primary_screen->vblank() ? 0x04 : 0x00; + return m_screen->vblank() ? 0x04 : 0x00; } READ8_MEMBER(subsino2_state::vblank_bit6_r) { - return machine().primary_screen->vblank() ? 0x40 : 0x00; + return m_screen->vblank() ? 0x40 : 0x00; } WRITE8_MEMBER(subsino2_state::oki_bank_bit0_w) @@ -917,7 +917,7 @@ READ16_MEMBER(subsino2_state::bishjan_serial_r) (machine().rand() & 0x9800) | // bit 7 - serial communication (((m_bishjan_sel==0x12) ? 0x40:0x00) << 8) | // (machine.rand() & 0xff); -// (((machine().primary_screen->frame_number()%60)==0)?0x18:0x00); +// (((m_screen->frame_number()%60)==0)?0x18:0x00); 0x18; } diff --git a/src/mame/drivers/suna8.c b/src/mame/drivers/suna8.c index fc1ca06987f..b7047f2ae89 100644 --- a/src/mame/drivers/suna8.c +++ b/src/mame/drivers/suna8.c @@ -1136,7 +1136,7 @@ WRITE8_MEMBER(suna8_state::sparkman_coin_counter_w) // To do: implement this, affects the duration of copyright screen READ8_MEMBER(suna8_state::sparkman_c0a3_r) { - return (machine().primary_screen->frame_number() & 1) ? 0x80 : 0; + return (m_screen->frame_number() & 1) ? 0x80 : 0; } static ADDRESS_MAP_START( sparkman_map, AS_PROGRAM, 8, suna8_state ) diff --git a/src/mame/drivers/taitoair.c b/src/mame/drivers/taitoair.c index cd7c6850a89..e436c3658b2 100644 --- a/src/mame/drivers/taitoair.c +++ b/src/mame/drivers/taitoair.c @@ -251,7 +251,7 @@ WRITE16_MEMBER(taitoair_state::lineram_w) m_line_ram[offset] = data; //if(offset == 0x3fff) - // printf("LineRAM go %d\n",(int)machine().primary_screen->frame_number()); + // printf("LineRAM go %d\n",(int)m_screen->frame_number()); } READ16_MEMBER(taitoair_state::dspram_r) diff --git a/src/mame/drivers/taitotz.c b/src/mame/drivers/taitotz.c index 5ece695874d..5373fb9b015 100644 --- a/src/mame/drivers/taitotz.c +++ b/src/mame/drivers/taitotz.c @@ -743,8 +743,8 @@ void taitotz_state::taitotz_exit() */ void taitotz_state::video_start() { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); m_screen_ram = auto_alloc_array(machine(), UINT32, 0x200000); m_frame_ram = auto_alloc_array(machine(), UINT32, 0x80000); diff --git a/src/mame/drivers/tasman.c b/src/mame/drivers/tasman.c index 4843a0cd2c6..b347279550a 100644 --- a/src/mame/drivers/tasman.c +++ b/src/mame/drivers/tasman.c @@ -68,7 +68,7 @@ UINT32 kongambl_state::screen_update_kongambl(screen_device &screen, bitmap_ind1 { UINT32 tile = m_vram[count] & 0xffff; - if(machine().primary_screen->visible_area().contains(x*8, y*8)) + if(m_screen->visible_area().contains(x*8, y*8)) drawgfx_opaque(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*8); count++; @@ -83,7 +83,7 @@ UINT32 kongambl_state::screen_update_kongambl(screen_device &screen, bitmap_ind1 { UINT32 tile = m_vram[count] & 0xffff; - if(machine().primary_screen->visible_area().contains(x*8, y*8)) + if(m_screen->visible_area().contains(x*8, y*8)) drawgfx_transpen(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*8,0); count++; diff --git a/src/mame/drivers/tecmosys.c b/src/mame/drivers/tecmosys.c index 9140bef31f5..bbf54ee75f1 100644 --- a/src/mame/drivers/tecmosys.c +++ b/src/mame/drivers/tecmosys.c @@ -259,7 +259,7 @@ READ16_MEMBER(tecmosys_state::unk880000_r) switch( offset ) { case 0: - if ( machine().primary_screen->vpos() >= 240) return 0; + if ( m_screen->vpos() >= 240) return 0; else return 1; default: diff --git a/src/mame/drivers/tgtpanic.c b/src/mame/drivers/tgtpanic.c index 44184d8b924..e83bcdb30aa 100644 --- a/src/mame/drivers/tgtpanic.c +++ b/src/mame/drivers/tgtpanic.c @@ -72,7 +72,7 @@ UINT32 tgtpanic_state::screen_update_tgtpanic(screen_device &screen, bitmap_rgb3 WRITE8_MEMBER(tgtpanic_state::color_w) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_color = data; } diff --git a/src/mame/drivers/thunderj.c b/src/mame/drivers/thunderj.c index edf28af889c..846a6e9149b 100644 --- a/src/mame/drivers/thunderj.c +++ b/src/mame/drivers/thunderj.c @@ -97,7 +97,7 @@ WRITE16_MEMBER(thunderj_state::latch_w) /* bits 2-5 are the alpha bank */ if (m_alpha_tile_bank != ((data >> 2) & 7)) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_vad->alpha()->mark_all_dirty(); m_alpha_tile_bank = (data >> 2) & 7; } diff --git a/src/mame/drivers/tickee.c b/src/mame/drivers/tickee.c index 858dedf1e77..0129da3addf 100644 --- a/src/mame/drivers/tickee.c +++ b/src/mame/drivers/tickee.c @@ -127,7 +127,7 @@ void tickee_state::device_timer(emu_timer &timer, device_timer_id id, int param, TIMER_CALLBACK_MEMBER(tickee_state::trigger_gun_interrupt) { int which = param & 1; - int beamx = (machine().primary_screen->hpos()/2)-58; + int beamx = (m_screen->hpos()/2)-58; /* once we're ready to fire, set the X coordinate and assert the line */ m_gunx[which] = beamx; @@ -149,7 +149,7 @@ TIMER_CALLBACK_MEMBER(tickee_state::setup_gun_interrupts) int beamx, beamy; /* set a timer to do this again next frame */ - m_setup_gun_timer->adjust(machine().primary_screen->time_until_pos(0)); + m_setup_gun_timer->adjust(m_screen->time_until_pos(0)); /* only do work if the palette is flashed */ if (m_control) @@ -158,13 +158,13 @@ TIMER_CALLBACK_MEMBER(tickee_state::setup_gun_interrupts) /* generate interrupts for player 1's gun */ get_crosshair_xy(machine(), 0, &beamx, &beamy); - timer_set(machine().primary_screen->time_until_pos(beamy + m_beamyadd, beamx + m_beamxadd), TIMER_TRIGGER_GUN_INTERRUPT, 0); - timer_set(machine().primary_screen->time_until_pos(beamy + m_beamyadd + 1, beamx + m_beamxadd), TIMER_CLEAR_GUN_INTERRUPT, 0); + timer_set(m_screen->time_until_pos(beamy + m_beamyadd, beamx + m_beamxadd), TIMER_TRIGGER_GUN_INTERRUPT, 0); + timer_set(m_screen->time_until_pos(beamy + m_beamyadd + 1, beamx + m_beamxadd), TIMER_CLEAR_GUN_INTERRUPT, 0); /* generate interrupts for player 2's gun */ get_crosshair_xy(machine(), 1, &beamx, &beamy); - timer_set(machine().primary_screen->time_until_pos(beamy + m_beamyadd, beamx + m_beamxadd), TIMER_TRIGGER_GUN_INTERRUPT, 1); - timer_set(machine().primary_screen->time_until_pos(beamy + m_beamyadd + 1, beamx + m_beamxadd), TIMER_CLEAR_GUN_INTERRUPT, 1); + timer_set(m_screen->time_until_pos(beamy + m_beamyadd, beamx + m_beamxadd), TIMER_TRIGGER_GUN_INTERRUPT, 1); + timer_set(m_screen->time_until_pos(beamy + m_beamyadd + 1, beamx + m_beamxadd), TIMER_CLEAR_GUN_INTERRUPT, 1); } @@ -179,7 +179,7 @@ VIDEO_START_MEMBER(tickee_state,tickee) { /* start a timer going on the first scanline of every frame */ m_setup_gun_timer = timer_alloc(TIMER_SETUP_GUN_INTERRUPTS); - m_setup_gun_timer->adjust(machine().primary_screen->time_until_pos(0)); + m_setup_gun_timer->adjust(m_screen->time_until_pos(0)); } diff --git a/src/mame/drivers/tmaster.c b/src/mame/drivers/tmaster.c index dbffc77331a..4e449b09276 100644 --- a/src/mame/drivers/tmaster.c +++ b/src/mame/drivers/tmaster.c @@ -332,7 +332,7 @@ VIDEO_START_MEMBER(tmaster_state,tmaster) { for (buffer = 0; buffer < 2; buffer++) { - machine().primary_screen->register_screen_bitmap(m_bitmap[layer][buffer]); + m_screen->register_screen_bitmap(m_bitmap[layer][buffer]); m_bitmap[layer][buffer].fill(0xff); } } diff --git a/src/mame/drivers/toaplan2.c b/src/mame/drivers/toaplan2.c index ef5308da56d..ea4fb54ae6d 100644 --- a/src/mame/drivers/toaplan2.c +++ b/src/mame/drivers/toaplan2.c @@ -487,7 +487,7 @@ void toaplan2_state::device_timer(emu_timer &timer, device_timer_id id, int para void toaplan2_state::toaplan2_vblank_irq(int irq_line) { // the IRQ appears to fire at line 0xe6 - timer_set(machine().primary_screen->time_until_pos(0xe6), TIMER_RAISE_IRQ, irq_line); + timer_set(m_screen->time_until_pos(0xe6), TIMER_RAISE_IRQ, irq_line); } INTERRUPT_GEN_MEMBER(toaplan2_state::toaplan2_vblank_irq1){ toaplan2_vblank_irq(1); } @@ -503,8 +503,8 @@ READ16_MEMBER(toaplan2_state::video_count_r) /* +---------+---------+--------+---------------------------+ */ /*************** Control Signals are active low ***************/ - int hpos = machine().primary_screen->hpos(); - int vpos = machine().primary_screen->vpos(); + int hpos = m_screen->hpos(); + int vpos = m_screen->vpos(); m_video_status = 0xff00; // Set signals inactive @@ -526,7 +526,7 @@ READ16_MEMBER(toaplan2_state::video_count_r) else m_video_status |= 0xff; -// logerror("VC: vpos=%04x hpos=%04x VBL=%04x\n",vpos,hpos,machine().primary_screen->vblank()); +// logerror("VC: vpos=%04x hpos=%04x VBL=%04x\n",vpos,hpos,m_screen->vblank()); return m_video_status; } diff --git a/src/mame/drivers/toobin.c b/src/mame/drivers/toobin.c index 06b6492ed13..9e4f7900b30 100644 --- a/src/mame/drivers/toobin.c +++ b/src/mame/drivers/toobin.c @@ -63,7 +63,7 @@ WRITE16_MEMBER(toobin_state::interrupt_scan_w) if (oldword != newword) { m_interrupt_scan[offset] = newword; - scanline_int_set(*machine().primary_screen, newword & 0x1ff); + scanline_int_set(*m_screen, newword & 0x1ff); } } diff --git a/src/mame/drivers/tubep.c b/src/mame/drivers/tubep.c index b12287ca966..aeaf9a3d874 100644 --- a/src/mame/drivers/tubep.c +++ b/src/mame/drivers/tubep.c @@ -322,16 +322,16 @@ TIMER_CALLBACK_MEMBER(tubep_state::tubep_scanline_callback) } - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); //debug - logerror("scanline=%3i scrgetvpos(0)=%3i\n",scanline,machine().primary_screen->vpos()); + logerror("scanline=%3i scrgetvpos(0)=%3i\n",scanline,m_screen->vpos()); scanline++; if (scanline >= 264) scanline = 0; - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_interrupt_timer->adjust(m_screen->time_until_pos(scanline), scanline); } @@ -363,7 +363,7 @@ MACHINE_START_MEMBER(tubep_state,tubep) MACHINE_RESET_MEMBER(tubep_state,tubep) { - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(0)); + m_interrupt_timer->adjust(m_screen->time_until_pos(0)); } @@ -503,15 +503,15 @@ TIMER_CALLBACK_MEMBER(tubep_state::rjammer_scanline_callback) } - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); - logerror("scanline=%3i scrgetvpos(0)=%3i\n", scanline, machine().primary_screen->vpos()); + logerror("scanline=%3i scrgetvpos(0)=%3i\n", scanline, m_screen->vpos()); scanline++; if (scanline >= 264) scanline = 0; - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_interrupt_timer->adjust(m_screen->time_until_pos(scanline), scanline); } @@ -525,7 +525,7 @@ MACHINE_START_MEMBER(tubep_state,rjammer) MACHINE_RESET_MEMBER(tubep_state,rjammer) { - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(0)); + m_interrupt_timer->adjust(m_screen->time_until_pos(0)); } diff --git a/src/mame/drivers/tugboat.c b/src/mame/drivers/tugboat.c index f5d09e28b67..5a0582a42c1 100644 --- a/src/mame/drivers/tugboat.c +++ b/src/mame/drivers/tugboat.c @@ -218,7 +218,7 @@ void tugboat_state::device_timer(emu_timer &timer, device_timer_id id, int param { case TIMER_INTERRUPT: m_maincpu->set_input_line(0, HOLD_LINE); - timer_set(machine().primary_screen->frame_period(), TIMER_INTERRUPT); + timer_set(m_screen->frame_period(), TIMER_INTERRUPT); break; default: assert_always(FALSE, "Unknown id in tugboat_state::device_timer"); @@ -227,7 +227,7 @@ void tugboat_state::device_timer(emu_timer &timer, device_timer_id id, int param void tugboat_state::machine_reset() { - timer_set(machine().primary_screen->time_until_pos(30*8+4), TIMER_INTERRUPT); + timer_set(m_screen->time_until_pos(30*8+4), TIMER_INTERRUPT); } diff --git a/src/mame/drivers/turbo.c b/src/mame/drivers/turbo.c index 1a4fabaa2ae..98fcfac174b 100644 --- a/src/mame/drivers/turbo.c +++ b/src/mame/drivers/turbo.c @@ -476,14 +476,14 @@ static I8279_INTERFACE( turbo_i8279_intf ) READ8_MEMBER(turbo_state::turbo_collision_r) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); return ioport("DSW3")->read() | (m_turbo_collision & 15); } WRITE8_MEMBER(turbo_state::turbo_collision_clear_w) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_turbo_collision = 0; } diff --git a/src/mame/drivers/tx1.c b/src/mame/drivers/tx1.c index 30e2efde1d8..612eef81715 100644 --- a/src/mame/drivers/tx1.c +++ b/src/mame/drivers/tx1.c @@ -717,7 +717,7 @@ static MACHINE_CONFIG_START( tx1, tx1_state ) MCFG_SCREEN_RAW_PARAMS(TX1_PIXEL_CLOCK, TX1_HTOTAL, TX1_HBEND, TX1_HBSTART, TX1_VTOTAL, TX1_VBEND, TX1_VBSTART) MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_tx1_left) - MCFG_SCREEN_ADD("cscreen", RASTER) + MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(TX1_PIXEL_CLOCK, TX1_HTOTAL, TX1_HBEND, TX1_HBSTART, TX1_VTOTAL, TX1_VBEND, TX1_VBSTART) MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_tx1_middle) @@ -767,7 +767,7 @@ static MACHINE_CONFIG_START( buggyboy, tx1_state ) MCFG_SCREEN_RAW_PARAMS(BB_PIXEL_CLOCK, BB_HTOTAL, BB_HBEND, BB_HBSTART, BB_VTOTAL, BB_VBEND, BB_VBSTART) MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_buggyboy_left) - MCFG_SCREEN_ADD("cscreen", RASTER) + MCFG_SCREEN_ADD("screen", RASTER) MCFG_SCREEN_RAW_PARAMS(BB_PIXEL_CLOCK, BB_HTOTAL, BB_HBEND, BB_HBSTART, BB_VTOTAL, BB_VBEND, BB_VBSTART) MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_buggyboy_middle) diff --git a/src/mame/drivers/ultratnk.c b/src/mame/drivers/ultratnk.c index 33c5f826250..e53122ecd89 100644 --- a/src/mame/drivers/ultratnk.c +++ b/src/mame/drivers/ultratnk.c @@ -68,13 +68,13 @@ TIMER_CALLBACK_MEMBER(ultratnk_state::nmi_callback) if (ioport("IN0")->read() & 0x40) m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); - timer_set(machine().primary_screen->time_until_pos(scanline), TIMER_NMI, scanline); + timer_set(m_screen->time_until_pos(scanline), TIMER_NMI, scanline); } void ultratnk_state::machine_reset() { - timer_set(machine().primary_screen->time_until_pos(32), TIMER_NMI, 32); + timer_set(m_screen->time_until_pos(32), TIMER_NMI, 32); } diff --git a/src/mame/drivers/unico.c b/src/mame/drivers/unico.c index ee52f812f45..d178f867f2c 100644 --- a/src/mame/drivers/unico.c +++ b/src/mame/drivers/unico.c @@ -110,7 +110,7 @@ READ16_MEMBER(unico_state::unico_gunx_0_msb_r) if (x<0x160) x=0x30 + (x*0xd0/0x15f); else x=((x-0x160) * 0x20)/0x1f; - return ((x&0xff) ^ (machine().primary_screen->frame_number()&1))<<8; + return ((x&0xff) ^ (m_screen->frame_number()&1))<<8; } READ16_MEMBER(unico_state::unico_guny_0_msb_r) @@ -119,7 +119,7 @@ READ16_MEMBER(unico_state::unico_guny_0_msb_r) y=0x18+((y*0xe0)/0xff); - return ((y&0xff) ^ (machine().primary_screen->frame_number()&1))<<8; + return ((y&0xff) ^ (m_screen->frame_number()&1))<<8; } READ16_MEMBER(unico_state::unico_gunx_1_msb_r) @@ -130,7 +130,7 @@ READ16_MEMBER(unico_state::unico_gunx_1_msb_r) if (x<0x160) x=0x30 + (x*0xd0/0x15f); else x=((x-0x160) * 0x20)/0x1f; - return ((x&0xff) ^ (machine().primary_screen->frame_number()&1))<<8; + return ((x&0xff) ^ (m_screen->frame_number()&1))<<8; } READ16_MEMBER(unico_state::unico_guny_1_msb_r) @@ -139,7 +139,7 @@ READ16_MEMBER(unico_state::unico_guny_1_msb_r) y=0x18+((y*0xe0)/0xff); - return ((y&0xff) ^ (machine().primary_screen->frame_number()&1))<<8; + return ((y&0xff) ^ (m_screen->frame_number()&1))<<8; } static ADDRESS_MAP_START( zeropnt_map, AS_PROGRAM, 16, unico_state ) diff --git a/src/mame/drivers/vamphalf.c b/src/mame/drivers/vamphalf.c index 33688171f28..807359a8aba 100644 --- a/src/mame/drivers/vamphalf.c +++ b/src/mame/drivers/vamphalf.c @@ -738,13 +738,13 @@ void vamphalf_handle_flipped_visible_area( screen_device &screen ) { rectangle visarea; visarea.set(31, 350, 16, 251); - screen.machine().primary_screen->configure(512, 256, visarea, HZ_TO_ATTOSECONDS(60)); + screen.configure(512, 256, visarea, HZ_TO_ATTOSECONDS(60)); } else { rectangle visarea; visarea.set(31, 350, 20, 255); - screen.machine().primary_screen->configure(512, 256, visarea, HZ_TO_ATTOSECONDS(60)); + screen.configure(512, 256, visarea, HZ_TO_ATTOSECONDS(60)); } } diff --git a/src/mame/drivers/vball.c b/src/mame/drivers/vball.c index 42bb963e400..cf25090eb71 100644 --- a/src/mame/drivers/vball.c +++ b/src/mame/drivers/vball.c @@ -106,14 +106,14 @@ inline int vball_state::scanline_to_vcount(int scanline) TIMER_DEVICE_CALLBACK_MEMBER(vball_state::vball_scanline) { int scanline = param; - int screen_height = machine().primary_screen->height(); + int screen_height = m_screen->height(); int vcount_old = scanline_to_vcount((scanline == 0) ? screen_height - 1 : scanline - 1); int vcount = scanline_to_vcount(scanline); /* Update to the current point */ if (scanline > 0) { - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); } /* IRQ fires every on every 8th scanline */ diff --git a/src/mame/drivers/vicdual.c b/src/mame/drivers/vicdual.c index dd66c450e5e..44008df6e8c 100644 --- a/src/mame/drivers/vicdual.c +++ b/src/mame/drivers/vicdual.c @@ -137,11 +137,11 @@ INPUT_CHANGED_MEMBER(vicdual_state::coin_changed) int vicdual_state::get_vcounter() { - int vcounter = machine().primary_screen->vpos(); + int vcounter = m_screen->vpos(); /* the vertical synch counter gets incremented at the end of HSYNC, compensate for this */ - if (machine().primary_screen->hpos() >= VICDUAL_HSEND) + if (m_screen->hpos() >= VICDUAL_HSEND) vcounter = (vcounter + 1) % VICDUAL_VTOTAL; return vcounter; @@ -162,7 +162,7 @@ CUSTOM_INPUT_MEMBER(vicdual_state::vicdual_get_vblank_comp) CUSTOM_INPUT_MEMBER(vicdual_state::vicdual_get_composite_blank_comp) { - return (vicdual_get_vblank_comp(field, 0) && !machine().primary_screen->hblank()); + return (vicdual_get_vblank_comp(field, 0) && !m_screen->hblank()); } @@ -205,14 +205,14 @@ int vicdual_state::vicdual_is_cabinet_color() WRITE8_MEMBER(vicdual_state::vicdual_videoram_w) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_videoram[offset] = data; } WRITE8_MEMBER(vicdual_state::vicdual_characterram_w) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_characterram[offset] = data; } diff --git a/src/mame/drivers/videopin.c b/src/mame/drivers/videopin.c index 7d9097bb9a9..e5e78e22997 100644 --- a/src/mame/drivers/videopin.c +++ b/src/mame/drivers/videopin.c @@ -69,13 +69,13 @@ TIMER_CALLBACK_MEMBER(videopin_state::interrupt_callback) if (scanline >= 263) scanline = 32; - timer_set(machine().primary_screen->time_until_pos(scanline), TIMER_INTERRUPT, scanline); + timer_set(m_screen->time_until_pos(scanline), TIMER_INTERRUPT, scanline); } void videopin_state::machine_reset() { - timer_set(machine().primary_screen->time_until_pos(32), TIMER_INTERRUPT, 32); + timer_set(m_screen->time_until_pos(32), TIMER_INTERRUPT, 32); /* both output latches are cleared on reset */ @@ -120,7 +120,7 @@ READ8_MEMBER(videopin_state::videopin_misc_r) WRITE8_MEMBER(videopin_state::videopin_led_w) { - int i = (machine().primary_screen->vpos() >> 5) & 7; + int i = (m_screen->vpos() >> 5) & 7; static const char *const matrix[8][4] = { { "LED26", "LED18", "LED11", "LED13" }, diff --git a/src/mame/drivers/vindictr.c b/src/mame/drivers/vindictr.c index f6d424c2879..65c17902c3e 100644 --- a/src/mame/drivers/vindictr.c +++ b/src/mame/drivers/vindictr.c @@ -39,7 +39,7 @@ void vindictr_state::update_interrupts() MACHINE_RESET_MEMBER(vindictr_state,vindictr) { atarigen_state::machine_reset(); - scanline_timer_reset(*machine().primary_screen, 8); + scanline_timer_reset(*m_screen, 8); } diff --git a/src/mame/drivers/wheelfir.c b/src/mame/drivers/wheelfir.c index e8798eecf56..43fd0b65782 100644 --- a/src/mame/drivers/wheelfir.c +++ b/src/mame/drivers/wheelfir.c @@ -385,8 +385,8 @@ WRITE16_MEMBER(wheelfir_state::wheelfir_blit_w) { UINT8 *rom = memregion("gfx1")->base(); - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); int src_x0=(m_blitter_data[0]>>8)+((m_blitter_data[6]&0x100)?256:0); int src_y0=(m_blitter_data[2]>>8)+((m_blitter_data[6]&0x200)?256:0); diff --git a/src/mame/drivers/wolfpack.c b/src/mame/drivers/wolfpack.c index 0ae05c88f88..5e7fa1277cd 100644 --- a/src/mame/drivers/wolfpack.c +++ b/src/mame/drivers/wolfpack.c @@ -33,13 +33,13 @@ TIMER_CALLBACK_MEMBER(wolfpack_state::periodic_callback) if (scanline >= 262) scanline = 0; - timer_set(machine().primary_screen->time_until_pos(scanline), TIMER_PERIODIC, scanline); + timer_set(m_screen->time_until_pos(scanline), TIMER_PERIODIC, scanline); } void wolfpack_state::machine_reset() { - timer_set(machine().primary_screen->time_until_pos(0), TIMER_PERIODIC); + timer_set(m_screen->time_until_pos(0), TIMER_PERIODIC); } @@ -69,7 +69,7 @@ READ8_MEMBER(wolfpack_state::wolfpack_misc_r) if (!m_collision) val |= 0x10; - if (machine().primary_screen->vpos() >= 240) + if (m_screen->vpos() >= 240) val |= 0x80; return val; diff --git a/src/mame/drivers/wwfsstar.c b/src/mame/drivers/wwfsstar.c index 34eaac284f9..b19b7ab1085 100644 --- a/src/mame/drivers/wwfsstar.c +++ b/src/mame/drivers/wwfsstar.c @@ -266,14 +266,14 @@ TIMER_DEVICE_CALLBACK_MEMBER(wwfsstar_state::wwfsstar_scanline) if (scanline % 16 == 0) { if (scanline > 0) - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); m_maincpu->set_input_line(5, ASSERT_LINE); } /* Vblank is raised on scanline 240 */ if (scanline == 240) { - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); m_maincpu->set_input_line(6, ASSERT_LINE); } } diff --git a/src/mame/drivers/wwfwfest.c b/src/mame/drivers/wwfwfest.c index 25c40e870b3..5b6288ceb59 100644 --- a/src/mame/drivers/wwfwfest.c +++ b/src/mame/drivers/wwfwfest.c @@ -358,14 +358,14 @@ TIMER_DEVICE_CALLBACK_MEMBER(wwfwfest_state::wwfwfest_scanline) if (scanline % 16 == 0) { if (scanline > 0) - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); m_maincpu->set_input_line(2, ASSERT_LINE); } /* Vblank is raised on scanline 248 */ if (scanline == 248) { - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); m_maincpu->set_input_line(3, ASSERT_LINE); } } diff --git a/src/mame/drivers/xain.c b/src/mame/drivers/xain.c index 0c1992d072d..fa4ec1a2f90 100644 --- a/src/mame/drivers/xain.c +++ b/src/mame/drivers/xain.c @@ -176,14 +176,14 @@ inline int xain_state::scanline_to_vcount(int scanline) TIMER_DEVICE_CALLBACK_MEMBER(xain_state::xain_scanline) { int scanline = param; - int screen_height = machine().primary_screen->height(); + int screen_height = m_screen->height(); int vcount_old = scanline_to_vcount((scanline == 0) ? screen_height - 1 : scanline - 1); int vcount = scanline_to_vcount(scanline); /* update to the current point */ if (scanline > 0) { - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); } /* FIRQ (IMS) fires every on every 8th scanline (except 0) */ diff --git a/src/mame/drivers/xexex.c b/src/mame/drivers/xexex.c index 71f5f64d829..42c093d6732 100644 --- a/src/mame/drivers/xexex.c +++ b/src/mame/drivers/xexex.c @@ -108,7 +108,7 @@ void xexex_state::xexex_objdma( int limiter ) UINT16 *src, *dst; counter = m_frame; - m_frame = machine().primary_screen->frame_number(); + m_frame = m_screen->frame_number(); if (limiter && counter == m_frame) return; // make sure we only do DMA transfer once per frame diff --git a/src/mame/drivers/xmen.c b/src/mame/drivers/xmen.c index 5267ac7d09f..ffa3e24ab14 100644 --- a/src/mame/drivers/xmen.c +++ b/src/mame/drivers/xmen.c @@ -242,7 +242,7 @@ INPUT_PORTS_END CUSTOM_INPUT_MEMBER(xmen_state::xmen_frame_r) { - return machine().primary_screen->frame_number() & 1; + return m_screen->frame_number() & 1; } static INPUT_PORTS_START( xmen6p ) diff --git a/src/mame/drivers/zn.c b/src/mame/drivers/zn.c index 51378d2ff14..3c9173c21a4 100644 --- a/src/mame/drivers/zn.c +++ b/src/mame/drivers/zn.c @@ -359,7 +359,7 @@ READ8_MEMBER(zn_state::boardconfig_r) int boardconfig = 64 | 32; - if( machine().primary_screen->height() == 1024 ) + if( m_screen->height() == 1024 ) { boardconfig |= 8; } diff --git a/src/mame/includes/n64.h b/src/mame/includes/n64.h index 57f141bee63..e3bfbc6c67d 100644 --- a/src/mame/includes/n64.h +++ b/src/mame/includes/n64.h @@ -43,7 +43,8 @@ struct n64_savable_data_t UINT8 mempak[2][0x8000]; }; -class n64_periphs : public device_t +class n64_periphs : public device_t, + public device_video_interface { private: struct AUDIO_DMA diff --git a/src/mame/includes/snes.h b/src/mame/includes/snes.h index 846a32e222a..ee2305a7da5 100644 --- a/src/mame/includes/snes.h +++ b/src/mame/includes/snes.h @@ -450,6 +450,8 @@ public: UINT16 ver_offset; UINT8 extbg; } m_mode7; + + screen_device *m_screen; UINT8 m_mosaic_size; UINT8 m_clip_to_black; @@ -525,7 +527,7 @@ public: inline UINT32 get_vram_address(running_machine &machine); UINT8 dbg_video(running_machine &machine, UINT16 curline); - void ppu_start(running_machine &machine); + void ppu_start(screen_device &screen); UINT8 read(address_space &space, UINT32 offset, UINT8 wrio_bit7); void write(address_space &space, UINT32 offset, UINT8 data); diff --git a/src/mame/machine/amiga.c b/src/mame/machine/amiga.c index f28a4999d6e..214f9b30026 100644 --- a/src/mame/machine/amiga.c +++ b/src/mame/machine/amiga.c @@ -298,7 +298,7 @@ MACHINE_RESET_MEMBER(amiga_state,amiga) (*m_intf->reset_callback)(machine()); /* start the scanline timer */ - timer_set(machine().primary_screen->time_until_pos(0), TIMER_SCANLINE); + timer_set(m_screen->time_until_pos(0), TIMER_SCANLINE); } @@ -352,7 +352,7 @@ TIMER_CALLBACK_MEMBER(amiga_state::scanline_callback) mos6526_tod_w(m_cia_0, 1); /* render up to this scanline */ - if (!machine().primary_screen->update_partial(scanline)) + if (!m_screen->update_partial(scanline)) { if (IS_AGA(m_intf)) { @@ -370,8 +370,8 @@ TIMER_CALLBACK_MEMBER(amiga_state::scanline_callback) amiga_audio_update(m_sound_device); /* set timer for next line */ - scanline = (scanline + 1) % machine().primary_screen->height(); - timer_set(machine().primary_screen->time_until_pos(scanline), TIMER_SCANLINE, scanline); + scanline = (scanline + 1) % m_screen->height(); + timer_set(m_screen->time_until_pos(scanline), TIMER_SCANLINE, scanline); } @@ -1189,14 +1189,14 @@ READ16_MEMBER( amiga_state::amiga_custom_r ) case REG_VPOSR: CUSTOM_REG(REG_VPOSR) &= 0x7f00; - CUSTOM_REG(REG_VPOSR) |= amiga_gethvpos(*space.machine().primary_screen) >> 16; - if(CUSTOM_REG(REG_BPLCON0) & BPLCON0_LACE && space.machine().primary_screen->frame_number() & 0x1) + CUSTOM_REG(REG_VPOSR) |= amiga_gethvpos(*m_screen) >> 16; + if(CUSTOM_REG(REG_BPLCON0) & BPLCON0_LACE && m_screen->frame_number() & 0x1) CUSTOM_REG(REG_VPOSR) |= 0x8000; // LOF bit return CUSTOM_REG(REG_VPOSR); case REG_VHPOSR: - return amiga_gethvpos(*space.machine().primary_screen) & 0xffff; + return amiga_gethvpos(*m_screen) & 0xffff; case REG_SERDATR: CUSTOM_REG(REG_SERDATR) &= ~0x4000; diff --git a/src/mame/machine/archimds.c b/src/mame/machine/archimds.c index c3362623ef4..28f4b681ffa 100644 --- a/src/mame/machine/archimds.c +++ b/src/mame/machine/archimds.c @@ -106,7 +106,7 @@ void archimedes_state::vidc_vblank() archimedes_request_irq_a(ARCHIMEDES_IRQA_VBL); // set up for next vbl - m_vbl_timer->adjust(machine().primary_screen->time_until_pos(m_vidc_regs[0xb4])); + m_vbl_timer->adjust(m_screen->time_until_pos(m_vidc_regs[0xb4])); } /* video DMA */ @@ -123,7 +123,7 @@ void archimedes_state::vidc_video_tick() vram[m_vidc_vidcur] = (space.read_byte(m_vidc_vidstart+m_vidc_vidcur)); if(m_video_dma_on) - m_vid_timer->adjust(machine().primary_screen->time_until_pos(m_vidc_regs[0xb4])); + m_vid_timer->adjust(m_screen->time_until_pos(m_vidc_regs[0xb4])); else m_vid_timer->adjust(attotime::never); } @@ -464,7 +464,7 @@ READ32_MEMBER( archimedes_state::ioc_ctrl_r ) static UINT8 flyback; //internal name for vblank here int vert_pos; - vert_pos = machine().primary_screen->vpos(); + vert_pos = m_screen->vpos(); flyback = (vert_pos <= m_vidc_regs[VIDC_VDSR] || vert_pos >= m_vidc_regs[VIDC_VDER]) ? 0x80 : 0x00; if ( m_i2cmem ) @@ -554,7 +554,7 @@ WRITE32_MEMBER( archimedes_state::ioc_ctrl_w ) archimedes_request_irq_a((data & 0x80) ? ARCHIMEDES_IRQA_FORCE : 0); if(data & 0x08) //set up the VBLANK timer - m_vbl_timer->adjust(machine().primary_screen->time_until_pos(m_vidc_regs[0xb4])); + m_vbl_timer->adjust(m_screen->time_until_pos(m_vidc_regs[0xb4])); break; @@ -800,7 +800,7 @@ void archimedes_state::vidc_dynamic_res_change() /* FIXME: pixel clock */ refresh = HZ_TO_ATTOSECONDS(pixel_rate[m_vidc_pixel_clk]*2) * m_vidc_regs[VIDC_HCR] * m_vidc_regs[VIDC_VCR]; - machine().primary_screen->configure(m_vidc_regs[VIDC_HCR], m_vidc_regs[VIDC_VCR], visarea, refresh); + m_screen->configure(m_vidc_regs[VIDC_HCR], m_vidc_regs[VIDC_VCR], visarea, refresh); } } } @@ -970,7 +970,7 @@ WRITE32_MEMBER(archimedes_state::archimedes_memc_w) if ((data>>10)&1) { m_vidc_vidcur = 0; - m_vid_timer->adjust(machine().primary_screen->time_until_pos(m_vidc_regs[0xb4])); + m_vid_timer->adjust(m_screen->time_until_pos(m_vidc_regs[0xb4])); } if ((data>>11)&1) diff --git a/src/mame/machine/atarifb.c b/src/mame/machine/atarifb.c index 5850fbb486e..960313fea11 100644 --- a/src/mame/machine/atarifb.c +++ b/src/mame/machine/atarifb.c @@ -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) { - int loop = machine().primary_screen->vpos() >= 123; + int loop = m_screen->vpos() >= 123; switch (loop) { diff --git a/src/mame/machine/balsente.c b/src/mame/machine/balsente.c index 97b46a7c8e5..0d2701538a6 100644 --- a/src/mame/machine/balsente.c +++ b/src/mame/machine/balsente.c @@ -30,15 +30,15 @@ TIMER_DEVICE_CALLBACK_MEMBER(balsente_state::balsente_interrupt_timer) { /* next interrupt after scanline 256 is scanline 64 */ if (param == 256) - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(64), 64); + m_scanline_timer->adjust(m_screen->time_until_pos(64), 64); else - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(param + 64), param + 64); + m_scanline_timer->adjust(m_screen->time_until_pos(param + 64), param + 64); /* IRQ starts on scanline 0, 64, 128, etc. */ m_maincpu->set_input_line(M6809_IRQ_LINE, ASSERT_LINE); /* it will turn off on the next HBLANK */ - machine().scheduler().timer_set(machine().primary_screen->time_until_pos(param, BALSENTE_HBSTART), timer_expired_delegate(FUNC(balsente_state::irq_off),this)); + machine().scheduler().timer_set(m_screen->time_until_pos(param, BALSENTE_HBSTART), timer_expired_delegate(FUNC(balsente_state::irq_off),this)); /* if this is Grudge Match, update the steering */ if (m_grudge_steering_result & 0x80) @@ -168,7 +168,7 @@ void balsente_state::machine_reset() m_maincpu->reset(); /* start a timer to generate interrupts */ - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(0)); + m_scanline_timer->adjust(m_screen->time_until_pos(0)); } @@ -1144,7 +1144,7 @@ void balsente_state::update_grudge_steering() READ8_MEMBER(balsente_state::grudge_steering_r) { - logerror("%04X:grudge_steering_r(@%d)\n", space.device().safe_pc(), machine().primary_screen->vpos()); + logerror("%04X:grudge_steering_r(@%d)\n", space.device().safe_pc(), m_screen->vpos()); m_grudge_steering_result |= 0x80; return m_grudge_steering_result; } diff --git a/src/mame/machine/galaxold.c b/src/mame/machine/galaxold.c index 453342fa922..094ef0d5805 100644 --- a/src/mame/machine/galaxold.c +++ b/src/mame/machine/galaxold.c @@ -60,7 +60,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(galaxold_state::galaxold_interrupt_timer) param = (param + 0x10) & 0xff; - timer.adjust(machine().primary_screen->time_until_pos(param), param); + timer.adjust(m_screen->time_until_pos(param), param); } @@ -80,7 +80,7 @@ void galaxold_state::machine_reset_common(int line) /* start a timer to generate interrupts */ timer_device *int_timer = machine().device("int_timer"); - int_timer->adjust(machine().primary_screen->time_until_pos(0)); + int_timer->adjust(m_screen->time_until_pos(0)); } MACHINE_RESET_MEMBER(galaxold_state,galaxold) diff --git a/src/mame/machine/harddriv.c b/src/mame/machine/harddriv.c index caa49c0789f..997f3ef0b27 100644 --- a/src/mame/machine/harddriv.c +++ b/src/mame/machine/harddriv.c @@ -236,7 +236,7 @@ READ16_HANDLER( hd68k_port0_r ) */ harddriv_state *state = space.machine().driver_data(); int temp = (space.machine().root_device().ioport("SW1")->read() << 8) | space.machine().root_device().ioport("IN0")->read(); - if (state->get_hblank(*space.machine().primary_screen)) temp ^= 0x0002; + if (state->get_hblank(*state->m_screen)) temp ^= 0x0002; temp ^= 0x0018; /* both EOCs always high for now */ return temp; } @@ -510,7 +510,7 @@ WRITE16_HANDLER( hdgsp_io_w ) /* detect changes to HEBLNK and HSBLNK and force an update before they change */ if ((offset == REG_HEBLNK || offset == REG_HSBLNK) && data != tms34010_io_register_r(space, offset, 0xffff)) - space.machine().primary_screen->update_partial(space.machine().primary_screen->vpos() - 1); + state->m_screen->update_partial(state->m_screen->vpos() - 1); tms34010_io_register_w(space, offset, data, mem_mask); } diff --git a/src/mame/machine/irobot.c b/src/mame/machine/irobot.c index 1e7ace99483..290d1a237c1 100644 --- a/src/mame/machine/irobot.c +++ b/src/mame/machine/irobot.c @@ -155,7 +155,7 @@ TIMER_CALLBACK_MEMBER(irobot_state::scanline_callback) /* set a callback for the next 32-scanline increment */ scanline += 32; if (scanline >= 256) scanline = 0; - machine().scheduler().timer_set(machine().primary_screen->time_until_pos(scanline), timer_expired_delegate(FUNC(irobot_state::scanline_callback),this), scanline); + machine().scheduler().timer_set(m_screen->time_until_pos(scanline), timer_expired_delegate(FUNC(irobot_state::scanline_callback),this), scanline); } void irobot_state::machine_reset() @@ -175,7 +175,7 @@ void irobot_state::machine_reset() m_irmb_timer = machine().device("irmb_timer"); /* set an initial timer to go off on scanline 0 */ - machine().scheduler().timer_set(machine().primary_screen->time_until_pos(0), timer_expired_delegate(FUNC(irobot_state::scanline_callback),this)); + machine().scheduler().timer_set(m_screen->time_until_pos(0), timer_expired_delegate(FUNC(irobot_state::scanline_callback),this)); irobot_rom_banksel_w(m_maincpu->space(AS_PROGRAM),0,0); irobot_out0_w(m_maincpu->space(AS_PROGRAM),0,0); diff --git a/src/mame/machine/leland.c b/src/mame/machine/leland.c index 2dbc1ba48f5..708a09f5bec 100644 --- a/src/mame/machine/leland.c +++ b/src/mame/machine/leland.c @@ -326,7 +326,7 @@ MACHINE_START_MEMBER(leland_state,leland) MACHINE_RESET_MEMBER(leland_state,leland) { - m_master_int_timer->adjust(machine().primary_screen->time_until_pos(8), 8); + m_master_int_timer->adjust(m_screen->time_until_pos(8), 8); /* reset globals */ m_gfx_control = 0x00; @@ -377,7 +377,7 @@ MACHINE_START_MEMBER(leland_state,ataxx) MACHINE_RESET_MEMBER(leland_state,ataxx) { memset(m_extra_tram, 0, ATAXX_EXTRA_TRAM_SIZE); - m_master_int_timer->adjust(machine().primary_screen->time_until_pos(8), 8); + m_master_int_timer->adjust(m_screen->time_until_pos(8), 8); /* initialize the XROM */ m_xrom_length = memregion("user1")->bytes(); @@ -426,7 +426,7 @@ TIMER_CALLBACK_MEMBER(leland_state::leland_interrupt_callback) scanline += 16; if (scanline > 248) scanline = 8; - m_master_int_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_master_int_timer->adjust(m_screen->time_until_pos(scanline), scanline); } @@ -438,7 +438,7 @@ TIMER_CALLBACK_MEMBER(leland_state::ataxx_interrupt_callback) m_master->set_input_line(0, HOLD_LINE); /* set a timer for the next one */ - m_master_int_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_master_int_timer->adjust(m_screen->time_until_pos(scanline), scanline); } @@ -1196,7 +1196,7 @@ WRITE8_MEMBER(leland_state::ataxx_master_output_w) break; case 0x08: /* */ - m_master_int_timer->adjust(machine().primary_screen->time_until_pos(data + 1), data + 1); + m_master_int_timer->adjust(m_screen->time_until_pos(data + 1), data + 1); break; default: @@ -1381,7 +1381,7 @@ WRITE8_MEMBER(leland_state::ataxx_slave_banksw_w) READ8_MEMBER(leland_state::leland_raster_r) { - return machine().primary_screen->vpos(); + return m_screen->vpos(); } diff --git a/src/mame/machine/mcr68.c b/src/mame/machine/mcr68.c index 30462060377..c8792017e47 100644 --- a/src/mame/machine/mcr68.c +++ b/src/mame/machine/mcr68.c @@ -228,7 +228,7 @@ TIMER_CALLBACK_MEMBER(mcr68_state::mcr68_493_callback) { m_v493_irq_state = 1; update_mcr68_interrupts(); - machine().scheduler().timer_set(machine().primary_screen->scan_period(), timer_expired_delegate(FUNC(mcr68_state::mcr68_493_off_callback),this)); + machine().scheduler().timer_set(m_screen->scan_period(), timer_expired_delegate(FUNC(mcr68_state::mcr68_493_off_callback),this)); logerror("--- (INT1) ---\n"); } @@ -284,7 +284,7 @@ TIMER_CALLBACK_MEMBER(mcr68_state::zwackery_493_callback) pia6821_device *pia = machine().device("pia0"); pia->ca1_w(1); - machine().scheduler().timer_set(machine().primary_screen->scan_period(), timer_expired_delegate(FUNC(mcr68_state::zwackery_493_off_callback),this)); + machine().scheduler().timer_set(m_screen->scan_period(), timer_expired_delegate(FUNC(mcr68_state::zwackery_493_off_callback),this)); } diff --git a/src/mame/machine/megavdp.c b/src/mame/machine/megavdp.c index d223009d032..830430cb6a9 100644 --- a/src/mame/machine/megavdp.c +++ b/src/mame/machine/megavdp.c @@ -173,11 +173,11 @@ void sega_genesis_vdp_device::device_start() if (!m_use_alt_timing) - m_render_bitmap = auto_bitmap_ind16_alloc(machine(), machine().primary_screen->width(), machine().primary_screen->height()); + m_render_bitmap = auto_bitmap_ind16_alloc(machine(), m_screen->width(), m_screen->height()); else - m_render_line = auto_alloc_array(machine(), UINT16, machine().primary_screen->width()); + m_render_line = auto_alloc_array(machine(), UINT16, m_screen->width()); - m_render_line_raw = auto_alloc_array(machine(), UINT16, machine().primary_screen->width()); + m_render_line_raw = auto_alloc_array(machine(), UINT16, m_screen->width()); // FIXME: are these all needed? I'm pretty sure some of these (most?) are just helpers which don't need to be saved, // but better safe than sorry... @@ -188,9 +188,9 @@ void sega_genesis_vdp_device::device_start() save_pointer(NAME(megadrive_vdp_palette_lookup_sprite), 0x40/2); save_pointer(NAME(megadrive_vdp_palette_lookup_shadow), 0x40/2); save_pointer(NAME(megadrive_vdp_palette_lookup_highlight), 0x40/2); - save_pointer(NAME(m_render_line_raw), machine().primary_screen->width()/2); + save_pointer(NAME(m_render_line_raw), m_screen->width()/2); if (m_use_alt_timing) - save_pointer(NAME(m_render_line), machine().primary_screen->width()/2); + save_pointer(NAME(m_render_line), m_screen->width()/2); irq6_on_timer = machine().scheduler().timer_alloc(FUNC(irq6_on_timer_callback), (void*)this); irq4_on_timer = machine().scheduler().timer_alloc(FUNC(irq4_on_timer_callback), (void*)this); @@ -2789,7 +2789,7 @@ TIMER_DEVICE_CALLBACK( megadriv_scanline_timer_callback_alt_timing ) { if (param==0) { - //printf("where are we? %d %d\n", timer.machine().primary_screen->vpos(), timer.machine().primary_screen->hpos()); + //printf("where are we? %d %d\n", m_screen->vpos(), vdp->screen().hpos()); vdp->vdp_handle_eof(timer.machine()); //vdp->vdp_clear_bitmap(); } @@ -2797,8 +2797,8 @@ TIMER_DEVICE_CALLBACK( megadriv_scanline_timer_callback_alt_timing ) vdp->vdp_handle_scanline_callback(timer.machine(), param); - int vpos = timer.machine().primary_screen->vpos(); + int vpos = vdp->screen().vpos(); if (vpos > 0) - timer.machine().primary_screen->update_partial(vpos-1); + vdp->screen().update_partial(vpos-1); } } diff --git a/src/mame/machine/mw8080bw.c b/src/mame/machine/mw8080bw.c index 1feed4bbfd3..66aae58cba1 100644 --- a/src/mame/machine/mw8080bw.c +++ b/src/mame/machine/mw8080bw.c @@ -49,7 +49,7 @@ TIMER_CALLBACK_MEMBER(mw8080bw_state::mw8080bw_interrupt_callback) int next_vblank; /* compute vector and set the interrupt line */ - int vpos = machine().primary_screen->vpos(); + int vpos = m_screen->vpos(); UINT8 counter = vpos_to_vysnc_chain_counter(vpos); UINT8 vector = 0xc7 | ((counter & 0x40) >> 2) | ((~counter & 0x40) >> 3); m_maincpu->set_input_line_and_vector(0, HOLD_LINE, vector); @@ -67,7 +67,7 @@ TIMER_CALLBACK_MEMBER(mw8080bw_state::mw8080bw_interrupt_callback) } next_vpos = vysnc_chain_counter_to_vpos(next_counter, next_vblank); - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(next_vpos)); + m_interrupt_timer->adjust(m_screen->time_until_pos(next_vpos)); } @@ -80,7 +80,7 @@ void mw8080bw_state::mw8080bw_create_interrupt_timer( ) void mw8080bw_state::mw8080bw_start_interrupt_timer( ) { int vpos = vysnc_chain_counter_to_vpos(MW8080BW_INT_TRIGGER_COUNT_1, MW8080BW_INT_TRIGGER_VBLANK_1); - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(vpos)); + m_interrupt_timer->adjust(m_screen->time_until_pos(vpos)); } diff --git a/src/mame/machine/n64.c b/src/mame/machine/n64.c index b5844b1a32e..cb3a51258be 100644 --- a/src/mame/machine/n64.c +++ b/src/mame/machine/n64.c @@ -21,6 +21,7 @@ const device_type N64PERIPH = &device_creator; n64_periphs::n64_periphs(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, N64PERIPH, "N64 Periphal Chips", tag, owner, clock, "n64_periphs", __FILE__) + , device_video_interface(mconfig, *this) , m_nvram_image(NULL) { } @@ -1056,7 +1057,7 @@ TIMER_CALLBACK_MEMBER(n64_periphs::vi_scanline_callback) void n64_periphs::vi_scanline_tick() { signal_rcp_interrupt(VI_INTERRUPT); - vi_scanline_timer->adjust(machine().primary_screen->time_until_pos(vi_intr >> 1)); + vi_scanline_timer->adjust(m_screen->time_until_pos(vi_intr >> 1)); } // Video Interface @@ -1071,8 +1072,8 @@ void n64_periphs::vi_recalculate_resolution() int width = ((vi_xscale & 0x00000fff) * (x_end - x_start)) / 0x400; int height = ((vi_yscale & 0x00000fff) * (y_end - y_start)) / 0x400; //printf("%04x | %02x | ", vi_xscale >> 16, vi_burst & 0x000000ff); - rectangle visarea = machine().primary_screen->visible_area(); - attoseconds_t period = machine().primary_screen->frame_period().attoseconds; + rectangle visarea = m_screen->visible_area(); + attoseconds_t period = m_screen->frame_period().attoseconds; if (width == 0 || height == 0) { @@ -1099,7 +1100,7 @@ void n64_periphs::vi_recalculate_resolution() visarea.max_x = width - 1; visarea.max_y = height - 1; //printf("Reconfig %d, %d (%d - %d), %08x, %08x, %08x, %08x, %08x\n", width, height, x_start, x_end, vi_width, vi_xscale, vi_hsync, vi_hstart, vi_burst); - machine().primary_screen->configure(width, 525, visarea, period); + m_screen->configure(width, 525, visarea, period); } READ32_MEMBER( n64_periphs::vi_reg_r ) @@ -1124,7 +1125,7 @@ READ32_MEMBER( n64_periphs::vi_reg_r ) break; case 0x10/4: // VI_CURRENT_REG - ret = machine().primary_screen->vpos() << 1; + ret = m_screen->vpos() << 1; break; case 0x14/4: // VI_BURST_REG @@ -1199,7 +1200,7 @@ WRITE32_MEMBER( n64_periphs::vi_reg_w ) case 0x0c/4: // VI_INTR_REG vi_intr = data; - vi_scanline_timer->adjust(machine().primary_screen->time_until_pos(vi_intr >> 1)); + vi_scanline_timer->adjust(m_screen->time_until_pos(vi_intr >> 1)); break; case 0x10/4: // VI_CURRENT_REG diff --git a/src/mame/machine/namco51.c b/src/mame/machine/namco51.c index 3ebf2f4c4f5..c1eddafb8d1 100644 --- a/src/mame/machine/namco51.c +++ b/src/mame/machine/namco51.c @@ -266,7 +266,7 @@ READ8_DEVICE_HANDLER( namco_51xx_read ) if (state->m_mode == 1) { - int on = (space.machine().primary_screen->frame_number() & 0x10) >> 4; + int on = (device->machine().first_screen()->frame_number() & 0x10) >> 4; if (state->m_credits >= 2) WRITE_PORT(state,0,0x0c | 3*on); // lamps diff --git a/src/mame/machine/namcos2.c b/src/mame/machine/namcos2.c index c39af12a41c..a6715125de8 100644 --- a/src/mame/machine/namcos2.c +++ b/src/mame/machine/namcos2.c @@ -664,14 +664,14 @@ TIMER_CALLBACK_MEMBER(namcos2_shared_state::namcos2_posirq_tick) { if (is_system21()) { if (namcos2_68k_gpu_C148[NAMCOS2_C148_POSIRQ]) { - machine().primary_screen->update_partial(param); + m_screen->update_partial(param); machine().device("gpu")->execute().set_input_line(namcos2_68k_gpu_C148[NAMCOS2_C148_POSIRQ] , ASSERT_LINE); } return; } if (namcos2_68k_master_C148[NAMCOS2_C148_POSIRQ]|namcos2_68k_slave_C148[NAMCOS2_C148_POSIRQ]) { - machine().primary_screen->update_partial(param); + m_screen->update_partial(param); if (namcos2_68k_master_C148[NAMCOS2_C148_POSIRQ]) m_maincpu->set_input_line(namcos2_68k_master_C148[NAMCOS2_C148_POSIRQ] , ASSERT_LINE); if (namcos2_68k_slave_C148[NAMCOS2_C148_POSIRQ]) m_slave->set_input_line(namcos2_68k_slave_C148[NAMCOS2_C148_POSIRQ] , ASSERT_LINE); } diff --git a/src/mame/machine/nb1414m4.c b/src/mame/machine/nb1414m4.c index 72af3684a5e..cc72be69e05 100644 --- a/src/mame/machine/nb1414m4.c +++ b/src/mame/machine/nb1414m4.c @@ -63,7 +63,7 @@ static void insert_coin_msg(address_space &space,UINT8 *vram) { UINT8 * data = (UINT8 *)space.machine().root_device().memregion("blit_data")->base(); int credit_count = (vram[0xf] & 0xff); - UINT8 fl_cond = space.machine().primary_screen->frame_number() & 0x10; /* for insert coin "flickering" */ + UINT8 fl_cond = space.machine().first_screen()->frame_number() & 0x10; /* for insert coin "flickering" */ UINT16 dst; if(credit_count == 0) @@ -84,7 +84,7 @@ static void credit_msg(address_space &space,UINT8 *vram) { UINT8 * data = (UINT8 *)space.machine().root_device().memregion("blit_data")->base(); int credit_count = (vram[0xf] & 0xff); - UINT8 fl_cond = space.machine().primary_screen->frame_number() & 0x10; /* for insert coin "flickering" */ + UINT8 fl_cond = space.machine().first_screen()->frame_number() & 0x10; /* for insert coin "flickering" */ UINT16 dst; dst = ((data[0x023]<<8)|(data[0x024]&0xff)) & 0x3fff; diff --git a/src/mame/machine/snes.c b/src/mame/machine/snes.c index 2dcd0360cb7..7d6bb6c4e4a 100644 --- a/src/mame/machine/snes.c +++ b/src/mame/machine/snes.c @@ -32,7 +32,7 @@ void snes_state::video_start() { - m_ppu.ppu_start(machine()); + m_ppu.ppu_start(m_screen); } UINT32 snes_state::screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) @@ -137,7 +137,7 @@ TIMER_CALLBACK_MEMBER(snes_state::snes_update_io) TIMER_CALLBACK_MEMBER(snes_state::snes_scanline_tick) { /* Increase current line - we want to latch on this line during it, not after it */ - m_ppu.m_beam.current_vert = machine().primary_screen->vpos(); + m_ppu.m_beam.current_vert = m_screen->vpos(); // not in hblank SNES_CPU_REG(HVBJOY) &= ~0x40; @@ -177,7 +177,7 @@ TIMER_CALLBACK_MEMBER(snes_state::snes_scanline_tick) } else { - m_hirq_timer->adjust(machine().primary_screen->time_until_pos(m_ppu.m_beam.current_vert, pixel * m_ppu.m_htmult)); + m_hirq_timer->adjust(m_screen->time_until_pos(m_ppu.m_beam.current_vert, pixel * m_ppu.m_htmult)); } } } @@ -185,7 +185,7 @@ TIMER_CALLBACK_MEMBER(snes_state::snes_scanline_tick) /* Start of VBlank */ if (m_ppu.m_beam.current_vert == m_ppu.m_beam.last_visible_line) { - timer_set(machine().primary_screen->time_until_pos(m_ppu.m_beam.current_vert, 10), TIMER_RESET_OAM_ADDRESS); + timer_set(m_screen->time_until_pos(m_ppu.m_beam.current_vert, 10), TIMER_RESET_OAM_ADDRESS); SNES_CPU_REG(HVBJOY) |= 0x81; /* Set vblank bit to on & indicate controllers being read */ SNES_CPU_REG(RDNMI) |= 0x80; /* Set NMI occurred bit */ @@ -197,7 +197,7 @@ TIMER_CALLBACK_MEMBER(snes_state::snes_scanline_tick) } /* three lines after start of vblank we update the controllers (value from snes9x) */ - m_io_timer->adjust(machine().primary_screen->time_until_pos(m_ppu.m_beam.current_vert + 2, m_hblank_offset * m_ppu.m_htmult)); + m_io_timer->adjust(m_screen->time_until_pos(m_ppu.m_beam.current_vert + 2, m_hblank_offset * m_ppu.m_htmult)); } // hdma reset happens at scanline 0, H=~6 @@ -218,7 +218,7 @@ TIMER_CALLBACK_MEMBER(snes_state::snes_scanline_tick) } m_scanline_timer->adjust(attotime::never); - m_hblank_timer->adjust(machine().primary_screen->time_until_pos(m_ppu.m_beam.current_vert, m_hblank_offset * m_ppu.m_htmult)); + m_hblank_timer->adjust(m_screen->time_until_pos(m_ppu.m_beam.current_vert, m_hblank_offset * m_ppu.m_htmult)); // printf("%02x %d\n",SNES_CPU_REG(HVBJOY),m_ppu.m_beam.current_vert); } @@ -229,7 +229,7 @@ TIMER_CALLBACK_MEMBER(snes_state::snes_hblank_tick) address_space &cpu0space = m_maincpu->space(AS_PROGRAM); int nextscan; - m_ppu.m_beam.current_vert = machine().primary_screen->vpos(); + m_ppu.m_beam.current_vert = m_screen->vpos(); /* make sure we halt */ m_hblank_timer->adjust(attotime::never); @@ -237,13 +237,13 @@ TIMER_CALLBACK_MEMBER(snes_state::snes_hblank_tick) /* draw a scanline */ if (m_ppu.m_beam.current_vert <= m_ppu.m_beam.last_visible_line) { - if (machine().primary_screen->vpos() > 0) + if (m_screen->vpos() > 0) { /* Do HDMA */ if (SNES_CPU_REG(HDMAEN)) hdma(cpu0space); - machine().primary_screen->update_partial((m_ppu.m_interlace == 2) ? (m_ppu.m_beam.current_vert * m_ppu.m_interlace) : m_ppu.m_beam.current_vert - 1); + m_screen->update_partial((m_ppu.m_interlace == 2) ? (m_ppu.m_beam.current_vert * m_ppu.m_interlace) : m_ppu.m_beam.current_vert - 1); } } @@ -257,7 +257,7 @@ TIMER_CALLBACK_MEMBER(snes_state::snes_hblank_tick) nextscan = 0; } - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(nextscan)); + m_scanline_timer->adjust(m_screen->time_until_pos(nextscan)); } @@ -441,7 +441,7 @@ READ8_MEMBER( snes_state::snes_r_io ) return value; case HVBJOY: /* H/V blank and joypad controller enable */ // electronics test says hcounter 272 is start of hblank, which is beampos 363 -// if (space.machine().primary_screen->hpos() >= 363) SNES_CPU_REG(HVBJOY) |= 0x40; +// if (m_screen->hpos() >= 363) SNES_CPU_REG(HVBJOY) |= 0x40; // else SNES_CPU_REG(HVBJOY) &= ~0x40; return (SNES_CPU_REG(HVBJOY) & 0xc1) | (snes_open_bus_r(space, 0) & 0x3e); case RDIO: /* Programmable I/O port - echos back what's written to WRIO */ @@ -572,7 +572,7 @@ WRITE8_MEMBER( snes_state::snes_w_io ) return; case HDMAEN: /* HDMA channel designation */ if (data) //if a HDMA is enabled, data is inited at the next scanline - timer_set(space.machine().primary_screen->time_until_pos(m_ppu.m_beam.current_vert + 1), TIMER_RESET_HDMA); + timer_set(m_screen->time_until_pos(m_ppu.m_beam.current_vert + 1), TIMER_RESET_HDMA); SNES_CPU_REG(HDMAEN) = data; return; case TIMEUP: // IRQ Flag is cleared on both read and write @@ -1040,7 +1040,7 @@ void snes_state::snes_init_timers() // SNES hcounter has a 0-339 range. hblank starts at counter 260. // clayfighter sets an HIRQ at 260, apparently it wants it to be before hdma kicks off, so we'll delay 2 pixels. m_hblank_offset = 274; - m_hblank_timer->adjust(machine().primary_screen->time_until_pos(((m_ppu.m_stat78 & 0x10) == SNES_NTSC) ? SNES_VTOTAL_NTSC - 1 : SNES_VTOTAL_PAL - 1, m_hblank_offset)); + m_hblank_timer->adjust(m_screen->time_until_pos(((m_ppu.m_stat78 & 0x10) == SNES_NTSC) ? SNES_VTOTAL_NTSC - 1 : SNES_VTOTAL_PAL - 1, m_hblank_offset)); } void snes_state::snes_init_ram() @@ -1066,7 +1066,7 @@ void snes_state::snes_init_ram() SNES_CPU_REG(WRIO) = 0xff; // init frame counter so first line is 0 - if (ATTOSECONDS_TO_HZ(machine().primary_screen->frame_period().attoseconds) >= 59) + if (ATTOSECONDS_TO_HZ(m_screen->frame_period().attoseconds) >= 59) m_ppu.m_beam.current_vert = SNES_VTOTAL_NTSC; else m_ppu.m_beam.current_vert = SNES_VTOTAL_PAL; @@ -1132,7 +1132,7 @@ void snes_state::machine_reset() } /* Set STAT78 to NTSC or PAL */ - if (ATTOSECONDS_TO_HZ(machine().primary_screen->frame_period().attoseconds) >= 59.0f) + if (ATTOSECONDS_TO_HZ(m_screen->frame_period().attoseconds) >= 59.0f) m_ppu.m_stat78 = SNES_NTSC; else /* if (ATTOSECONDS_TO_HZ(machine.primary_screen->frame_period().attoseconds) == 50.0f) */ m_ppu.m_stat78 = SNES_PAL; diff --git a/src/mame/machine/williams.c b/src/mame/machine/williams.c index ad241d253dc..b6db4c45cb3 100644 --- a/src/mame/machine/williams.c +++ b/src/mame/machine/williams.c @@ -231,7 +231,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(williams_state::williams_va11_callback) /* set a timer for the next update */ scanline += 0x20; if (scanline >= 256) scanline = 0; - timer.adjust(machine().primary_screen->time_until_pos(scanline), scanline); + timer.adjust(m_screen->time_until_pos(scanline), scanline); } @@ -252,10 +252,10 @@ TIMER_DEVICE_CALLBACK_MEMBER(williams_state::williams_count240_callback) pia_1->ca1_w(1); /* set a timer to turn it off once the scanline counter resets */ - machine().scheduler().timer_set(machine().primary_screen->time_until_pos(0), timer_expired_delegate(FUNC(williams_state::williams_count240_off_callback),this)); + machine().scheduler().timer_set(m_screen->time_until_pos(0), timer_expired_delegate(FUNC(williams_state::williams_count240_off_callback),this)); /* set a timer for next frame */ - timer.adjust(machine().primary_screen->time_until_pos(240)); + timer.adjust(m_screen->time_until_pos(240)); } @@ -345,11 +345,11 @@ MACHINE_RESET_MEMBER(williams_state,williams_common) { /* set a timer to go off every 16 scanlines, to toggle the VA11 line and update the screen */ timer_device *scan_timer = machine().device("scan_timer"); - scan_timer->adjust(machine().primary_screen->time_until_pos(0)); + scan_timer->adjust(m_screen->time_until_pos(0)); /* also set a timer to go off on scanline 240 */ timer_device *l240_timer = machine().device("240_timer"); - l240_timer->adjust(machine().primary_screen->time_until_pos(240)); + l240_timer->adjust(m_screen->time_until_pos(240)); } @@ -385,7 +385,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(williams_state::williams2_va11_callback) /* set a timer for the next update */ scanline += 0x20; if (scanline >= 256) scanline = 0; - timer.adjust(machine().primary_screen->time_until_pos(scanline), scanline); + timer.adjust(m_screen->time_until_pos(scanline), scanline); } @@ -406,10 +406,10 @@ TIMER_DEVICE_CALLBACK_MEMBER(williams_state::williams2_endscreen_callback) pia_0->ca1_w(0); /* set a timer to turn it off once the scanline counter resets */ - machine().scheduler().timer_set(machine().primary_screen->time_until_pos(8), timer_expired_delegate(FUNC(williams_state::williams2_endscreen_off_callback),this)); + machine().scheduler().timer_set(m_screen->time_until_pos(8), timer_expired_delegate(FUNC(williams_state::williams2_endscreen_off_callback),this)); /* set a timer for next frame */ - timer.adjust(machine().primary_screen->time_until_pos(254)); + timer.adjust(m_screen->time_until_pos(254)); } @@ -448,11 +448,11 @@ MACHINE_RESET_MEMBER(williams_state,williams2) /* set a timer to go off every 16 scanlines, to toggle the VA11 line and update the screen */ timer_device *scan_timer = machine().device("scan_timer"); - scan_timer->adjust(machine().primary_screen->time_until_pos(0)); + scan_timer->adjust(m_screen->time_until_pos(0)); /* also set a timer to go off on scanline 254 */ timer_device *l254_timer = machine().device("254_timer"); - l254_timer->adjust(machine().primary_screen->time_until_pos(254)); + l254_timer->adjust(m_screen->time_until_pos(254)); } diff --git a/src/mame/video/airbustr.c b/src/mame/video/airbustr.c index 355f23776af..a83bce7f8c5 100644 --- a/src/mame/video/airbustr.c +++ b/src/mame/video/airbustr.c @@ -112,7 +112,7 @@ void airbustr_state::video_start() m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(airbustr_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(airbustr_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); - machine().primary_screen->register_screen_bitmap(m_sprites_bitmap); + m_screen->register_screen_bitmap(m_sprites_bitmap); m_fg_tilemap->set_transparent_pen(0); m_bg_tilemap->set_scrolldx(0x094, 0x06a); diff --git a/src/mame/video/amspdwy.c b/src/mame/video/amspdwy.c index 984d64b0bc4..395290a465c 100644 --- a/src/mame/video/amspdwy.c +++ b/src/mame/video/amspdwy.c @@ -102,8 +102,8 @@ void amspdwy_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprec { UINT8 *spriteram = m_spriteram; int i; - int max_x = machine().primary_screen->width() - 1; - int max_y = machine().primary_screen->height() - 1; + int max_x = m_screen->width() - 1; + int max_y = m_screen->height() - 1; for (i = 0; i < m_spriteram.bytes() ; i += 4) { diff --git a/src/mame/video/argus.c b/src/mame/video/argus.c index c3dfef88bb0..c683691d81f 100644 --- a/src/mame/video/argus.c +++ b/src/mame/video/argus.c @@ -300,7 +300,7 @@ VIDEO_START_MEMBER(argus_state,valtric) m_tx_tilemap->set_transparent_pen(15); - machine().primary_screen->register_screen_bitmap(m_mosaicbitmap); + m_screen->register_screen_bitmap(m_mosaicbitmap); jal_blend_init(machine(), 1); } diff --git a/src/mame/video/astrocde.c b/src/mame/video/astrocde.c index c6545a0227b..df6c59245b1 100644 --- a/src/mame/video/astrocde.c +++ b/src/mame/video/astrocde.c @@ -166,7 +166,7 @@ void astrocde_state::video_start() { /* allocate timers */ m_scanline_timer = timer_alloc(TIMER_SCANLINE); - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(1), 1); + m_scanline_timer->adjust(m_screen->time_until_pos(1), 1); m_intoff_timer = timer_alloc(TIMER_INTERRUPT_OFF); /* register for save states */ @@ -182,7 +182,7 @@ VIDEO_START_MEMBER(astrocde_state,profpac) { /* allocate timers */ m_scanline_timer = timer_alloc(TIMER_SCANLINE); - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(1), 1); + m_scanline_timer->adjust(m_screen->time_until_pos(1), 1); m_intoff_timer = timer_alloc(TIMER_INTERRUPT_OFF); /* allocate videoram */ @@ -398,7 +398,7 @@ void astrocde_state::astrocade_trigger_lightpen(UINT8 vfeedback, UINT8 hfeedback if ((m_interrupt_enabl & 0x01) == 0) { m_maincpu->set_input_line_and_vector(0, HOLD_LINE, m_interrupt_vector & 0xf0); - m_intoff_timer->adjust(machine().primary_screen->time_until_pos(vfeedback)); + m_intoff_timer->adjust(m_screen->time_until_pos(vfeedback)); } /* mode 1 means assert for 1 instruction */ @@ -429,7 +429,7 @@ TIMER_CALLBACK_MEMBER(astrocde_state::scanline_callback) /* force an update against the current scanline */ if (scanline > 0) - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); /* generate a scanline interrupt if it's time */ if (astrocade_scanline == m_interrupt_scanline && (m_interrupt_enabl & 0x08) != 0) @@ -438,7 +438,7 @@ TIMER_CALLBACK_MEMBER(astrocde_state::scanline_callback) if ((m_interrupt_enabl & 0x04) == 0) { m_maincpu->set_input_line_and_vector(0, HOLD_LINE, m_interrupt_vector); - timer_set(machine().primary_screen->time_until_vblank_end(), TIMER_INTERRUPT_OFF); + timer_set(m_screen->time_until_vblank_end(), TIMER_INTERRUPT_OFF); } /* mode 1 means assert for 1 instruction */ @@ -455,9 +455,9 @@ TIMER_CALLBACK_MEMBER(astrocde_state::scanline_callback) /* advance to the next scanline */ scanline++; - if (scanline >= machine().primary_screen->height()) + if (scanline >= m_screen->height()) scanline = 0; - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_scanline_timer->adjust(m_screen->time_until_pos(scanline), scanline); } diff --git a/src/mame/video/atarigt.c b/src/mame/video/atarigt.c index 7c100498c7d..fbd6cf8042a 100644 --- a/src/mame/video/atarigt.c +++ b/src/mame/video/atarigt.c @@ -86,8 +86,8 @@ VIDEO_START_MEMBER(atarigt_state,atarigt) m_rle = machine().device("rle"); /* allocate temp bitmaps */ - width = machine().primary_screen->width(); - height = machine().primary_screen->height(); + width = m_screen->width(); + height = m_screen->height(); m_pf_bitmap = auto_bitmap_ind16_alloc(machine(), width, height); m_an_bitmap = auto_bitmap_ind16_alloc(machine(), width, height); diff --git a/src/mame/video/atarigx2.c b/src/mame/video/atarigx2.c index bf34999e58d..5c9969797c4 100644 --- a/src/mame/video/atarigx2.c +++ b/src/mame/video/atarigx2.c @@ -91,7 +91,7 @@ VIDEO_START_MEMBER(atarigx2_state,atarigx2) WRITE16_MEMBER( atarigx2_state::atarigx2_mo_control_w ) { - logerror("MOCONT = %d (scan = %d)\n", data, machine().primary_screen->vpos()); + logerror("MOCONT = %d (scan = %d)\n", data, m_screen->vpos()); /* set the control value */ COMBINE_DATA(&m_current_control); diff --git a/src/mame/video/atarirle.c b/src/mame/video/atarirle.c index dcbf8a078cb..8b858db1130 100644 --- a/src/mame/video/atarirle.c +++ b/src/mame/video/atarirle.c @@ -404,7 +404,8 @@ void atarirle_device::device_start() void atarirle_control_w(device_t *device, UINT8 bits) { atarirle_data *mo = get_safe_token(device); - int scanline = device->machine().primary_screen->vpos(); + screen_device *screen = device->machine().first_screen(); + int scanline = screen->vpos(); int oldbits = mo->control_bits; //logerror("atarirle_control_w(%d)\n", bits); @@ -414,7 +415,7 @@ void atarirle_control_w(device_t *device, UINT8 bits) return; /* force a partial update first */ - device->machine().primary_screen->update_partial(scanline); + screen->update_partial(scanline); /* if the erase flag was set, erase the front map */ if (oldbits & ATARIRLE_CONTROL_ERASE) diff --git a/src/mame/video/atarisy1.c b/src/mame/video/atarisy1.c index 79b2f02e50b..0586d69606d 100644 --- a/src/mame/video/atarisy1.c +++ b/src/mame/video/atarisy1.c @@ -183,7 +183,7 @@ WRITE16_MEMBER( atarisy1_state::atarisy1_bankselect_w ) { UINT16 oldselect = *m_bankselect; UINT16 newselect = oldselect, diff; - int scanline = machine().primary_screen->vpos(); + int scanline = m_screen->vpos(); /* update memory */ COMBINE_DATA(&newselect); @@ -198,7 +198,7 @@ WRITE16_MEMBER( atarisy1_state::atarisy1_bankselect_w ) /* if MO or playfield banks change, force a partial update */ if (diff & 0x003c) - machine().primary_screen->update_partial(scanline); + m_screen->update_partial(scanline); /* motion object bank select */ m_mob->set_bank((newselect >> 3) & 7); @@ -231,7 +231,7 @@ WRITE16_MEMBER( atarisy1_state::atarisy1_priority_w ) /* force a partial update in case this changes mid-screen */ COMBINE_DATA(&newpens); if (oldpens != newpens) - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_playfield_priority_pens = newpens; } @@ -251,7 +251,7 @@ WRITE16_MEMBER( atarisy1_state::atarisy1_xscroll_w ) /* force a partial update in case this changes mid-screen */ COMBINE_DATA(&newscroll); if (oldscroll != newscroll) - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); /* set the new scroll value */ m_playfield_tilemap->set_scrollx(0, newscroll); @@ -278,23 +278,23 @@ WRITE16_MEMBER( atarisy1_state::atarisy1_yscroll_w ) { UINT16 oldscroll = *m_yscroll; UINT16 newscroll = oldscroll; - int scanline = machine().primary_screen->vpos(); + int scanline = m_screen->vpos(); int adjusted_scroll; /* force a partial update in case this changes mid-screen */ COMBINE_DATA(&newscroll); - machine().primary_screen->update_partial(scanline); + m_screen->update_partial(scanline); /* because this latches a new value into the scroll base, we need to adjust for the scanline */ adjusted_scroll = newscroll; - if (scanline <= machine().primary_screen->visible_area().max_y) + if (scanline <= m_screen->visible_area().max_y) adjusted_scroll -= (scanline + 1); m_playfield_tilemap->set_scrolly(0, adjusted_scroll); /* but since we've adjusted it, we must reset it to the normal value once we hit scanline 0 again */ - m_yscroll_reset_timer->adjust(machine().primary_screen->time_until_pos(0), newscroll); + m_yscroll_reset_timer->adjust(m_screen->time_until_pos(0), newscroll); /* update the data */ *m_yscroll = newscroll; @@ -325,7 +325,7 @@ WRITE16_MEMBER( atarisy1_state::atarisy1_spriteram_w ) { /* if the timer is in the active bank, update the display list */ spriteram[offset] = data; - update_timers(machine().primary_screen->vpos()); + update_timers(m_screen->vpos()); } /* if we're about to modify data in the active sprite bank, make sure the video is up-to-date */ @@ -333,7 +333,7 @@ WRITE16_MEMBER( atarisy1_state::atarisy1_spriteram_w ) /* renders the next scanline's sprites to the line buffers, but Road Runner still glitches */ /* without the extra +1 */ else - machine().primary_screen->update_partial(machine().primary_screen->vpos() + 2); + m_screen->update_partial(m_screen->vpos() + 2); } /* let the MO handler do the basic work */ @@ -365,7 +365,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(atarisy1_state::atarisy1_int3_callback) scanline_int_gen(m_maincpu); /* set a timer to turn it off */ - m_int3off_timer->adjust(machine().primary_screen->scan_period()); + m_int3off_timer->adjust(m_screen->scan_period()); /* determine the time of the next one */ m_next_timer_scanline = -1; @@ -444,7 +444,7 @@ void atarisy1_state::update_timers(int scanline) /* set a new one */ if (best != -1) - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(best), best); + m_scanline_timer->adjust(m_screen->time_until_pos(best), best); else m_scanline_timer->reset(); } diff --git a/src/mame/video/atarisy2.c b/src/mame/video/atarisy2.c index f4c7c02f44c..3ea140ff273 100644 --- a/src/mame/video/atarisy2.c +++ b/src/mame/video/atarisy2.c @@ -110,7 +110,7 @@ WRITE16_MEMBER( atarisy2_state::xscroll_w ) /* if anything has changed, force a partial update */ if (newscroll != oldscroll) - space.machine().primary_screen->update_partial(space.machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); /* update the playfield scrolling - hscroll is clocked on the following scanline */ m_playfield_tilemap->set_scrollx(0, newscroll >> 6); @@ -141,13 +141,13 @@ WRITE16_MEMBER( atarisy2_state::yscroll_w ) /* if anything has changed, force a partial update */ if (newscroll != oldscroll) - space.machine().primary_screen->update_partial(space.machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); /* if bit 4 is zero, the scroll value is clocked in right away */ if (!(newscroll & 0x10)) - m_playfield_tilemap->set_scrolly(0, (newscroll >> 6) - space.machine().primary_screen->vpos()); + m_playfield_tilemap->set_scrolly(0, (newscroll >> 6) - m_screen->vpos()); else - m_yscroll_reset_timer->adjust(space.machine().primary_screen->time_until_pos(0), newscroll >> 6); + m_yscroll_reset_timer->adjust(m_screen->time_until_pos(0), newscroll >> 6); /* update the playfield banking */ if (m_playfield_tile_bank[1] != (newscroll & 0x0f) * 0x400) @@ -250,7 +250,7 @@ WRITE16_MEMBER( atarisy2_state::videoram_w ) { /* force an update if the link of object 0 is about to change */ if (offs == 0x0c03) - space.machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); COMBINE_DATA(&m_mob->spriteram()[offs - 0x0c00]); } diff --git a/src/mame/video/aztarac.c b/src/mame/video/aztarac.c index c8477b572e9..e712401e37b 100644 --- a/src/mame/video/aztarac.c +++ b/src/mame/video/aztarac.c @@ -82,7 +82,7 @@ WRITE16_MEMBER(aztarac_state::aztarac_ubr_w) void aztarac_state::video_start() { - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); int xmin = visarea.min_x; int ymin = visarea.min_y; diff --git a/src/mame/video/badlands.c b/src/mame/video/badlands.c index 9ba12abf52a..03fe50cefe2 100644 --- a/src/mame/video/badlands.c +++ b/src/mame/video/badlands.c @@ -85,7 +85,7 @@ WRITE16_MEMBER( badlands_state::badlands_pf_bank_w ) if (ACCESSING_BITS_0_7) if (m_playfield_tile_bank != (data & 1)) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_playfield_tile_bank = data & 1; m_playfield_tilemap->mark_all_dirty(); } diff --git a/src/mame/video/balsente.c b/src/mame/video/balsente.c index f4900ebf599..ad935d7e2e5 100644 --- a/src/mame/video/balsente.c +++ b/src/mame/video/balsente.c @@ -63,11 +63,11 @@ WRITE8_MEMBER(balsente_state::balsente_palette_select_w) if (m_palettebank_vis != (data & 3)) { /* update the scanline palette */ - machine().primary_screen->update_partial(machine().primary_screen->vpos() - 1 + BALSENTE_VBEND); + m_screen->update_partial(m_screen->vpos() - 1 + BALSENTE_VBEND); m_palettebank_vis = data & 3; } - logerror("balsente_palette_select_w(%d) scanline=%d\n", data & 3, machine().primary_screen->vpos()); + logerror("balsente_palette_select_w(%d) scanline=%d\n", data & 3, m_screen->vpos()); } @@ -104,7 +104,7 @@ WRITE8_MEMBER(balsente_state::shrike_sprite_select_w) if( m_sprite_data != m_sprite_bank[(data & 0x80 >> 7) ^ 1 ]) { logerror( "shrike_sprite_select_w( 0x%02x )\n", data ); - machine().primary_screen->update_partial(machine().primary_screen->vpos() - 1 + BALSENTE_VBEND); + m_screen->update_partial(m_screen->vpos() - 1 + BALSENTE_VBEND); m_sprite_data = m_sprite_bank[(data & 0x80 >> 7) ^ 1]; } diff --git a/src/mame/video/battlera.c b/src/mame/video/battlera.c index f0d9140921e..6ad5b8cbd46 100644 --- a/src/mame/video/battlera.c +++ b/src/mame/video/battlera.c @@ -364,14 +364,14 @@ TIMER_DEVICE_CALLBACK_MEMBER(battlera_state::battlera_irq) /* If raster interrupt occurs, refresh screen _up_ to this point */ if (m_rcr_enable && (m_current_scanline+56)==m_HuC6270_registers[6]) { - machine().primary_screen->update_partial(m_current_scanline); + m_screen->update_partial(m_current_scanline); m_maincpu->set_input_line(0, HOLD_LINE); /* RCR interrupt */ } /* Start of vblank */ else if (m_current_scanline==240) { m_bldwolf_vblank=1; - machine().primary_screen->update_partial(240); + m_screen->update_partial(240); if (m_irq_enable) m_maincpu->set_input_line(0, HOLD_LINE); /* VBL */ } diff --git a/src/mame/video/beathead.c b/src/mame/video/beathead.c index f6d06d2edc7..07a52c7e385 100644 --- a/src/mame/video/beathead.c +++ b/src/mame/video/beathead.c @@ -117,9 +117,9 @@ WRITE32_MEMBER( beathead_state::finescroll_w ) UINT32 newword = COMBINE_DATA(&m_finescroll); /* if VBLANK is going off on a scanline other than the last, suspend time */ - if ((oldword & 8) && !(newword & 8) && space.machine().primary_screen->vpos() != 261) + if ((oldword & 8) && !(newword & 8) && m_screen->vpos() != 261) { - logerror("Suspending time! (scanline = %d)\n", space.machine().primary_screen->vpos()); + logerror("Suspending time! (scanline = %d)\n", m_screen->vpos()); m_maincpu->set_input_line(INPUT_LINE_HALT, ASSERT_LINE); } } diff --git a/src/mame/video/beezer.c b/src/mame/video/beezer.c index 3ac27fe9f39..1c80b1273cd 100644 --- a/src/mame/video/beezer.c +++ b/src/mame/video/beezer.c @@ -68,6 +68,6 @@ WRITE8_MEMBER(beezer_state::beezer_map_w) READ8_MEMBER(beezer_state::beezer_line_r) { - return machine().primary_screen->vpos(); + return m_screen->vpos(); // Note: was (m_scanline & 0xfe) << 1; with scanline % 128 } diff --git a/src/mame/video/bigevglf.c b/src/mame/video/bigevglf.c index 4345cd91af9..439c4e8a194 100644 --- a/src/mame/video/bigevglf.c +++ b/src/mame/video/bigevglf.c @@ -50,10 +50,10 @@ READ8_MEMBER(bigevglf_state::bigevglf_vidram_r) void bigevglf_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_tmp_bitmap[0]); - machine().primary_screen->register_screen_bitmap(m_tmp_bitmap[1]); - machine().primary_screen->register_screen_bitmap(m_tmp_bitmap[2]); - machine().primary_screen->register_screen_bitmap(m_tmp_bitmap[3]); + m_screen->register_screen_bitmap(m_tmp_bitmap[0]); + m_screen->register_screen_bitmap(m_tmp_bitmap[1]); + m_screen->register_screen_bitmap(m_tmp_bitmap[2]); + m_screen->register_screen_bitmap(m_tmp_bitmap[3]); save_item(NAME(m_tmp_bitmap[0])); save_item(NAME(m_tmp_bitmap[1])); save_item(NAME(m_tmp_bitmap[2])); diff --git a/src/mame/video/bishi.c b/src/mame/video/bishi.c index 01b5e638f37..6ba0db760d8 100644 --- a/src/mame/video/bishi.c +++ b/src/mame/video/bishi.c @@ -25,7 +25,7 @@ void bishi_tile_callback( running_machine &machine, int layer, int *code, int *c void bishi_state::video_start() { - assert(machine().primary_screen->format() == BITMAP_FORMAT_RGB32); + assert(m_screen->format() == BITMAP_FORMAT_RGB32); m_k056832->set_layer_association(0); diff --git a/src/mame/video/bking.c b/src/mame/video/bking.c index 26e62372f6b..e90000d26e2 100644 --- a/src/mame/video/bking.c +++ b/src/mame/video/bking.c @@ -221,8 +221,8 @@ TILE_GET_INFO_MEMBER(bking_state::get_tile_info) void bking_state::video_start() { m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(bking_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - machine().primary_screen->register_screen_bitmap(m_colmap_bg); - machine().primary_screen->register_screen_bitmap(m_colmap_ball); + m_screen->register_screen_bitmap(m_colmap_bg); + m_screen->register_screen_bitmap(m_colmap_ball); } diff --git a/src/mame/video/blockade.c b/src/mame/video/blockade.c index 99fbd9c8e75..ac775f40b9b 100644 --- a/src/mame/video/blockade.c +++ b/src/mame/video/blockade.c @@ -8,7 +8,7 @@ WRITE8_MEMBER(blockade_state::blockade_videoram_w) if (ioport("IN3")->read() & 0x80) { - logerror("blockade_videoram_w: scanline %d\n", machine().primary_screen->vpos()); + logerror("blockade_videoram_w: scanline %d\n", m_screen->vpos()); space.device().execute().spin_until_interrupt(); } } diff --git a/src/mame/video/blockout.c b/src/mame/video/blockout.c index d97971b20e4..d05a17305a8 100644 --- a/src/mame/video/blockout.c +++ b/src/mame/video/blockout.c @@ -60,7 +60,7 @@ WRITE16_MEMBER(blockout_state::blockout_frontcolor_w) void blockout_state::video_start() { /* Allocate temporary bitmaps */ - machine().primary_screen->register_screen_bitmap(m_tmpbitmap); + m_screen->register_screen_bitmap(m_tmpbitmap); save_item(NAME(m_tmpbitmap)); } @@ -68,7 +68,7 @@ void blockout_state::update_pixels( int x, int y ) { UINT16 front, back; int color; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); if (!visarea.contains(x, y)) return; diff --git a/src/mame/video/btoads.c b/src/mame/video/btoads.c index b5b2613482d..81a1c404be1 100644 --- a/src/mame/video/btoads.c +++ b/src/mame/video/btoads.c @@ -59,9 +59,9 @@ WRITE16_MEMBER( btoads_state::display_control_w ) if (ACCESSING_BITS_8_15) { /* allow multiple changes during display */ - int scanline = machine().primary_screen->vpos(); + int scanline = m_screen->vpos(); if (scanline > 0) - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); /* bit 15 controls which page is rendered and which page is displayed */ if (data & 0x8000) @@ -91,7 +91,7 @@ WRITE16_MEMBER( btoads_state::display_control_w ) WRITE16_MEMBER( btoads_state::scroll0_w ) { /* allow multiple changes during display */ - machine().primary_screen->update_now(); + m_screen->update_now(); /* upper bits are Y scroll, lower bits are X scroll */ if (ACCESSING_BITS_8_15) @@ -104,7 +104,7 @@ WRITE16_MEMBER( btoads_state::scroll0_w ) WRITE16_MEMBER( btoads_state::scroll1_w ) { /* allow multiple changes during display */ - machine().primary_screen->update_now(); + m_screen->update_now(); /* upper bits are Y scroll, lower bits are X scroll */ if (ACCESSING_BITS_8_15) diff --git a/src/mame/video/buggychl.c b/src/mame/video/buggychl.c index 1f8a6259d38..96eb8d254a5 100644 --- a/src/mame/video/buggychl.c +++ b/src/mame/video/buggychl.c @@ -13,8 +13,8 @@ void buggychl_state::palette_init() void buggychl_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_tmp_bitmap1); - machine().primary_screen->register_screen_bitmap(m_tmp_bitmap2); + m_screen->register_screen_bitmap(m_tmp_bitmap1); + m_screen->register_screen_bitmap(m_tmp_bitmap2); save_item(NAME(m_tmp_bitmap1)); save_item(NAME(m_tmp_bitmap2)); diff --git a/src/mame/video/bwing.c b/src/mame/video/bwing.c index cedc2bb5ad1..e5440ef1cb3 100644 --- a/src/mame/video/bwing.c +++ b/src/mame/video/bwing.c @@ -119,7 +119,7 @@ WRITE8_MEMBER(bwing_state::bwing_scrollreg_w) m_srbank = data >> 6; #if BW_DEBUG - logerror("(%s)%04x: w=%02x a=%04x f=%d\n", device().tag, space.device().safe_pc(), data, 0x1b00 + offset, machine().primary_screen->frame_number()); + logerror("(%s)%04x: w=%02x a=%04x f=%d\n", device().tag, space.device().safe_pc(), data, 0x1b00 + offset, m_screen->frame_number()); #endif break; } diff --git a/src/mame/video/ccastles.c b/src/mame/video/ccastles.c index 1a8825af68f..e98b82cee7a 100644 --- a/src/mame/video/ccastles.c +++ b/src/mame/video/ccastles.c @@ -31,7 +31,7 @@ void ccastles_state::video_start() 3, resistances, m_bweights, 1000, 0); /* allocate a bitmap for drawing sprites */ - machine().primary_screen->register_screen_bitmap(m_spritebitmap); + m_screen->register_screen_bitmap(m_spritebitmap); /* register for savestates */ save_item(NAME(m_video_control)); @@ -50,7 +50,7 @@ void ccastles_state::video_start() WRITE8_MEMBER(ccastles_state::ccastles_hscroll_w) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_hscroll = data; } diff --git a/src/mame/video/cchasm.c b/src/mame/video/cchasm.c index 5f2ab0ac644..288074a6540 100644 --- a/src/mame/video/cchasm.c +++ b/src/mame/video/cchasm.c @@ -126,7 +126,7 @@ WRITE16_MEMBER(cchasm_state::cchasm_refresh_control_w) void cchasm_state::video_start() { - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); m_xcenter=visarea.xcenter() << 16; m_ycenter=visarea.ycenter() << 16; diff --git a/src/mame/video/changela.c b/src/mame/video/changela.c index b89cf2c1bd7..eb6f25037e3 100644 --- a/src/mame/video/changela.c +++ b/src/mame/video/changela.c @@ -22,13 +22,13 @@ void changela_state::video_start() m_memory_devices = auto_alloc_array(machine(), UINT8, 4 * 0x800); /* 0 - not connected, 1,2,3 - RAMs*/ m_tree_ram = auto_alloc_array(machine(), UINT8, 2 * 0x20); - machine().primary_screen->register_screen_bitmap(m_obj0_bitmap); - machine().primary_screen->register_screen_bitmap(m_river_bitmap); - machine().primary_screen->register_screen_bitmap(m_tree0_bitmap); - machine().primary_screen->register_screen_bitmap(m_tree1_bitmap); + m_screen->register_screen_bitmap(m_obj0_bitmap); + m_screen->register_screen_bitmap(m_river_bitmap); + m_screen->register_screen_bitmap(m_tree0_bitmap); + m_screen->register_screen_bitmap(m_tree1_bitmap); m_scanline_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(changela_state::changela_scanline_callback),this)); - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(30), 30); + m_scanline_timer->adjust(m_screen->time_until_pos(30), 30); save_pointer(NAME(m_memory_devices), 4 * 0x800); save_pointer(NAME(m_tree_ram), 2 * 0x20); @@ -712,7 +712,7 @@ TIMER_CALLBACK_MEMBER(changela_state::changela_scanline_callback) sy++; if (sy > 256) sy = 30; - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(sy), sy); + m_scanline_timer->adjust(m_screen->time_until_pos(sy), sy); } UINT32 changela_state::screen_update_changela(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) diff --git a/src/mame/video/cheekyms.c b/src/mame/video/cheekyms.c index 770ab40f26d..6b7bf91011c 100644 --- a/src/mame/video/cheekyms.c +++ b/src/mame/video/cheekyms.c @@ -94,8 +94,8 @@ void cheekyms_state::video_start() { int width, height; - width = machine().primary_screen->width(); - height = machine().primary_screen->height(); + width = m_screen->width(); + height = m_screen->height(); m_bitmap_buffer = auto_bitmap_ind16_alloc(machine(), width, height); m_cm_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(cheekyms_state::cheekyms_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); diff --git a/src/mame/video/cinemat.c b/src/mame/video/cinemat.c index bb9160f0827..a92ab4bcdf9 100644 --- a/src/mame/video/cinemat.c +++ b/src/mame/video/cinemat.c @@ -36,7 +36,7 @@ enum void cinemat_state::cinemat_vector_callback(INT16 sx, INT16 sy, INT16 ex, INT16 ey, UINT8 shift) { - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); int intensity = 0xff; /* adjust for slop */ diff --git a/src/mame/video/cloak.c b/src/mame/video/cloak.c index d905355398f..5a975a5ccde 100644 --- a/src/mame/video/cloak.c +++ b/src/mame/video/cloak.c @@ -93,7 +93,7 @@ void cloak_state::set_current_bitmap_videoram_pointer() WRITE8_MEMBER(cloak_state::cloak_clearbmp_w) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_bitmap_videoram_selected = data & 0x01; set_current_bitmap_videoram_pointer(); diff --git a/src/mame/video/cloud9.c b/src/mame/video/cloud9.c index fc6cf741f88..551b17c0b9f 100644 --- a/src/mame/video/cloud9.c +++ b/src/mame/video/cloud9.c @@ -35,7 +35,7 @@ void cloud9_state::video_start() 3, resistances, m_bweights, 1000, 0); /* allocate a bitmap for drawing sprites */ - machine().primary_screen->register_screen_bitmap(m_spritebitmap); + m_screen->register_screen_bitmap(m_spritebitmap); /* register for savestates */ save_pointer(NAME(m_videoram), 0x8000); diff --git a/src/mame/video/cninja.c b/src/mame/video/cninja.c index 4c3648b3482..7c78b461151 100644 --- a/src/mame/video/cninja.c +++ b/src/mame/video/cninja.c @@ -63,7 +63,7 @@ void cninja_state::cninjabl_draw_sprites( screen_device &screen, bitmap_ind16 &b } flash = y & 0x1000; - if (flash && (machine().primary_screen->frame_number() & 1)) + if (flash && (m_screen->frame_number() & 1)) continue; colour = (x >> 9) & 0x1f; diff --git a/src/mame/video/contra.c b/src/mame/video/contra.c index 9ffe10b8482..e913887e8ef 100644 --- a/src/mame/video/contra.c +++ b/src/mame/video/contra.c @@ -169,12 +169,12 @@ void contra_state::video_start() m_buffered_spriteram = auto_alloc_array(machine(), UINT8, 0x800); m_buffered_spriteram_2 = auto_alloc_array(machine(), UINT8, 0x800); - m_bg_clip = machine().primary_screen->visible_area(); + m_bg_clip = m_screen->visible_area(); m_bg_clip.min_x += 40; m_fg_clip = m_bg_clip; - m_tx_clip = machine().primary_screen->visible_area(); + m_tx_clip = m_screen->visible_area(); m_tx_clip.max_x = 39; m_tx_clip.min_x = 0; diff --git a/src/mame/video/cvs.c b/src/mame/video/cvs.c index 9a34c7cd928..1f2e1e8b76d 100644 --- a/src/mame/video/cvs.c +++ b/src/mame/video/cvs.c @@ -124,9 +124,9 @@ VIDEO_START_MEMBER(cvs_state,cvs) cvs_init_stars(); /* create helper bitmaps */ - machine().primary_screen->register_screen_bitmap(m_background_bitmap); - machine().primary_screen->register_screen_bitmap(m_collision_background); - machine().primary_screen->register_screen_bitmap(m_scrolled_collision_background); + m_screen->register_screen_bitmap(m_background_bitmap); + m_screen->register_screen_bitmap(m_collision_background); + m_screen->register_screen_bitmap(m_scrolled_collision_background); /* register save */ save_item(NAME(m_background_bitmap)); diff --git a/src/mame/video/dcheese.c b/src/mame/video/dcheese.c index 45ebe8683b4..9544b8ded9d 100644 --- a/src/mame/video/dcheese.c +++ b/src/mame/video/dcheese.c @@ -61,9 +61,9 @@ void dcheese_state::update_scanline_irq() effscan += m_blitter_vidparam[0x1e/2]; /* determine the time; if it's in this scanline, bump to the next frame */ - time = machine().primary_screen->time_until_pos(effscan); - if (time < machine().primary_screen->scan_period()) - time += machine().primary_screen->frame_period(); + time = m_screen->time_until_pos(effscan); + if (time < m_screen->scan_period()) + time += m_screen->frame_period(); m_blitter_timer->adjust(time); } } @@ -149,7 +149,7 @@ void dcheese_state::do_clear( ) memset(&m_dstbitmap->pix16(y % DSTBITMAP_HEIGHT), 0, DSTBITMAP_WIDTH * 2); /* signal an IRQ when done (timing is just a guess) */ - timer_set(machine().primary_screen->scan_period(), TIMER_SIGNAL_IRQ, 1); + timer_set(m_screen->scan_period(), TIMER_SIGNAL_IRQ, 1); } @@ -203,7 +203,7 @@ void dcheese_state::do_blit( ) } /* signal an IRQ when done (timing is just a guess) */ - timer_set(machine().primary_screen->scan_period() / 2, TIMER_SIGNAL_IRQ, 2); + timer_set(m_screen->scan_period() / 2, TIMER_SIGNAL_IRQ, 2); /* these extra parameters are written but they are always zero, so I don't know what they do */ if (m_blitter_xparam[8] != 0 || m_blitter_xparam[9] != 0 || m_blitter_xparam[10] != 0 || m_blitter_xparam[11] != 0 || diff --git a/src/mame/video/dday.c b/src/mame/video/dday.c index 72469d9805c..1d67796d08a 100644 --- a/src/mame/video/dday.c +++ b/src/mame/video/dday.c @@ -211,7 +211,7 @@ void dday_state::video_start() m_text_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(dday_state::get_text_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); m_sl_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(dday_state::get_sl_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); - machine().primary_screen->register_screen_bitmap(m_main_bitmap); + m_screen->register_screen_bitmap(m_main_bitmap); m_bg_tilemap->set_transmask(0, 0x00f0, 0xff0f); /* pens 0-3 have priority over the foreground layer */ m_fg_tilemap->set_transparent_pen(0); diff --git a/src/mame/video/deco32.c b/src/mame/video/deco32.c index 49d4166ad6f..b22cf7e26d7 100644 --- a/src/mame/video/deco32.c +++ b/src/mame/video/deco32.c @@ -542,8 +542,8 @@ VIDEO_START_MEMBER(deco32_state,nslasher) { int width, height; m_dirty_palette = auto_alloc_array(machine(), UINT8, 4096); - width = machine().primary_screen->width(); - height = machine().primary_screen->height(); + width = m_screen->width(); + height = m_screen->height(); m_tilemap_alpha_bitmap=auto_bitmap_ind16_alloc(machine(), width, height ); m_sprgen1->alloc_sprite_bitmap(); m_sprgen2->alloc_sprite_bitmap(); diff --git a/src/mame/video/deco_mlc.c b/src/mame/video/deco_mlc.c index 60ae6dea31b..aaa550ac8ae 100644 --- a/src/mame/video/deco_mlc.c +++ b/src/mame/video/deco_mlc.c @@ -159,7 +159,7 @@ void deco_mlc_state::draw_sprites( const rectangle &cliprect, int scanline, UINT { if ((mlc_spriteram[offs+0]&0x8000)==0) continue; - if ((mlc_spriteram[offs+1]&0x2000) && (machine().primary_screen->frame_number() & 1)) + if ((mlc_spriteram[offs+1]&0x2000) && (m_screen->frame_number() & 1)) continue; /* diff --git a/src/mame/video/decocass.c b/src/mame/video/decocass.c index fd7dec71b4a..63dc1c2953d 100644 --- a/src/mame/video/decocass.c +++ b/src/mame/video/decocass.c @@ -664,10 +664,10 @@ void decocass_state::video_start() m_bg_tilemap_r->set_transparent_pen(0); m_fg_tilemap->set_transparent_pen(0); - m_bg_tilemap_l_clip = machine().primary_screen->visible_area(); + m_bg_tilemap_l_clip = m_screen->visible_area(); m_bg_tilemap_l_clip.max_y = 256 / 2 - 1; - m_bg_tilemap_r_clip = machine().primary_screen->visible_area(); + m_bg_tilemap_r_clip = m_screen->visible_area(); m_bg_tilemap_r_clip.min_y = 256 / 2; /* background videoram bits D0-D3 are shared with the tileram */ diff --git a/src/mame/video/dkong.c b/src/mame/video/dkong.c index 90505da8283..05a6dfb425d 100644 --- a/src/mame/video/dkong.c +++ b/src/mame/video/dkong.c @@ -840,7 +840,7 @@ void dkong_state::radarscp_scanline(int scanline) int table_len = m_gfx3_len; int x,y,offset; UINT16 *pixel; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); y = scanline; radarscp_step(y); @@ -848,7 +848,7 @@ void dkong_state::radarscp_scanline(int scanline) m_counter = 0; offset = (m_flip ^ m_rflip_sig) ? 0x000 : 0x400; x = 0; - while (x < machine().primary_screen->width()) + while (x < m_screen->width()) { pixel = &m_bg_bits.pix16(y, x); if ((m_counter < table_len) && (x == 4 * (table[m_counter|offset] & 0x7f))) @@ -877,11 +877,11 @@ TIMER_CALLBACK_MEMBER(dkong_state::scanline_callback) radarscp_scanline(scanline); /* update any video up to the current scanline */ - machine().primary_screen->update_now(); + m_screen->update_now(); scanline = (scanline+1) % VTOTAL; /* come back at the next appropriate scanline */ - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_scanline_timer->adjust(m_screen->time_until_pos(scanline), scanline); } void dkong_state::check_palette() @@ -933,12 +933,12 @@ VIDEO_START_MEMBER(dkong_state,dkong) VIDEO_START_CALL_MEMBER(dkong_base); m_scanline_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(dkong_state::scanline_callback),this)); - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(0)); + m_scanline_timer->adjust(m_screen->time_until_pos(0)); switch (m_hardware_type) { case HARDWARE_TRS02: - machine().primary_screen->register_screen_bitmap(m_bg_bits); + m_screen->register_screen_bitmap(m_bg_bits); m_gfx3 = memregion("gfx3")->base(); m_gfx3_len = memregion("gfx3")->bytes(); /* fall through */ @@ -951,7 +951,7 @@ VIDEO_START_MEMBER(dkong_state,dkong) m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(dkong_state::radarscp1_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); m_bg_tilemap->set_scrolldx(0, 128); - machine().primary_screen->register_screen_bitmap(m_bg_bits); + m_screen->register_screen_bitmap(m_bg_bits); m_gfx4 = memregion("gfx4")->base(); m_gfx3 = memregion("gfx3")->base(); m_gfx3_len = memregion("gfx3")->bytes(); diff --git a/src/mame/video/dogfgt.c b/src/mame/video/dogfgt.c index fa0d7957663..a4aba9e7388 100644 --- a/src/mame/video/dogfgt.c +++ b/src/mame/video/dogfgt.c @@ -72,7 +72,7 @@ void dogfgt_state::video_start() m_bitmapram = auto_alloc_array(machine(), UINT8, BITMAPRAM_SIZE); save_pointer(NAME(m_bitmapram), BITMAPRAM_SIZE); - machine().primary_screen->register_screen_bitmap(m_pixbitmap); + m_screen->register_screen_bitmap(m_pixbitmap); save_item(NAME(m_pixbitmap)); } diff --git a/src/mame/video/equites.c b/src/mame/video/equites.c index f165bddb4f2..fa7e83a6e9f 100644 --- a/src/mame/video/equites.c +++ b/src/mame/video/equites.c @@ -126,7 +126,7 @@ VIDEO_START_MEMBER(equites_state,equites) VIDEO_START_MEMBER(equites_state,splndrbt) { - assert(machine().primary_screen->format() == BITMAP_FORMAT_IND16); + assert(m_screen->format() == BITMAP_FORMAT_IND16); m_fg_videoram = auto_alloc_array(machine(), UINT8, 0x800); save_pointer(NAME(m_fg_videoram), 0x800); diff --git a/src/mame/video/esripsys.c b/src/mame/video/esripsys.c index 9b3ebb2fa6b..babf9f1d661 100644 --- a/src/mame/video/esripsys.c +++ b/src/mame/video/esripsys.c @@ -17,7 +17,7 @@ INTERRUPT_GEN_MEMBER(esripsys_state::esripsys_vblank_irq) TIMER_CALLBACK_MEMBER(esripsys_state::hblank_start_callback) { - int v = machine().primary_screen->vpos(); + int v = m_screen->vpos(); if (m_video_firq) { @@ -37,19 +37,19 @@ TIMER_CALLBACK_MEMBER(esripsys_state::hblank_start_callback) v = 0; /* Set end of HBLANK timer */ - m_hblank_end_timer->adjust(machine().primary_screen->time_until_pos(v, ESRIPSYS_HBLANK_END), v); + m_hblank_end_timer->adjust(m_screen->time_until_pos(v, ESRIPSYS_HBLANK_END), v); m_hblank = 0; } TIMER_CALLBACK_MEMBER(esripsys_state::hblank_end_callback) { - int v = machine().primary_screen->vpos(); + int v = m_screen->vpos(); if (v > 0) - machine().primary_screen->update_partial(v - 1); + m_screen->update_partial(v - 1); m_12sel ^= 1; - m_hblank_start_timer->adjust(machine().primary_screen->time_until_pos(v, ESRIPSYS_HBLANK_START)); + m_hblank_start_timer->adjust(m_screen->time_until_pos(v, ESRIPSYS_HBLANK_START)); m_hblank = 1; } @@ -71,7 +71,7 @@ void esripsys_state::video_start() /* Create and initialise the HBLANK timers */ m_hblank_start_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(esripsys_state::hblank_start_callback),this)); m_hblank_end_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(esripsys_state::hblank_end_callback),this)); - m_hblank_start_timer->adjust(machine().primary_screen->time_until_pos(0, ESRIPSYS_HBLANK_START)); + m_hblank_start_timer->adjust(m_screen->time_until_pos(0, ESRIPSYS_HBLANK_START)); /* Create the sprite scaling table */ m_scale_table = auto_alloc_array(machine(), UINT8, 64 * 64); diff --git a/src/mame/video/exerion.c b/src/mame/video/exerion.c index cc34e70cd5b..e84e10ef2d5 100644 --- a/src/mame/video/exerion.c +++ b/src/mame/video/exerion.c @@ -203,9 +203,9 @@ WRITE8_MEMBER(exerion_state::exerion_videoreg_w) WRITE8_MEMBER(exerion_state::exerion_video_latch_w) { - int scanline = machine().primary_screen->vpos(); + int scanline = m_screen->vpos(); if (scanline > 0) - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); m_background_latches[offset] = data; } @@ -215,13 +215,13 @@ READ8_MEMBER(exerion_state::exerion_video_timing_r) /* bit 0 is the SNMI signal, which is the negated value of H6, if H7=1 & H8=1 & VBLANK=0, otherwise 1 */ /* bit 1 is VBLANK */ - UINT16 hcounter = machine().primary_screen->hpos() + EXERION_HCOUNT_START; + UINT16 hcounter = m_screen->hpos() + EXERION_HCOUNT_START; UINT8 snmi = 1; - if (((hcounter & 0x180) == 0x180) && !machine().primary_screen->vblank()) + if (((hcounter & 0x180) == 0x180) && !m_screen->vblank()) snmi = !((hcounter >> 6) & 0x01); - return (machine().primary_screen->vblank() << 1) | snmi; + return (m_screen->vblank() << 1) | snmi; } diff --git a/src/mame/video/exidy.c b/src/mame/video/exidy.c index 0dbd6c5506e..2abdb9da691 100644 --- a/src/mame/video/exidy.c +++ b/src/mame/video/exidy.c @@ -32,7 +32,7 @@ void exidy_state::exidy_video_config(UINT8 _collision_mask, UINT8 _collision_inv void exidy_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_background_bitmap); + m_screen->register_screen_bitmap(m_background_bitmap); m_motion_object_1_vid.allocate(16, 16); m_motion_object_2_vid.allocate(16, 16); m_motion_object_2_clip.allocate(16, 16); @@ -335,7 +335,7 @@ void exidy_state::check_collision() /* if we got one, trigger an interrupt */ if ((current_collision_mask & m_collision_mask) && (count++ < 128)) - timer_set(machine().primary_screen->time_until_pos(org_1_x + sx, org_1_y + sy), TIMER_COLLISION_IRQ, current_collision_mask); + timer_set(m_screen->time_until_pos(org_1_x + sx, org_1_y + sy), TIMER_COLLISION_IRQ, current_collision_mask); } if (m_motion_object_2_vid.pix16(sy, sx) != 0xff) @@ -343,7 +343,7 @@ void exidy_state::check_collision() /* check for background collision (M2CHAR) */ if (m_background_bitmap.pix16(org_2_y + sy, org_2_x + sx) != 0) if ((m_collision_mask & 0x08) && (count++ < 128)) - timer_set(machine().primary_screen->time_until_pos(org_2_x + sx, org_2_y + sy), TIMER_COLLISION_IRQ, 0x08); + timer_set(m_screen->time_until_pos(org_2_x + sx, org_2_y + sy), TIMER_COLLISION_IRQ, 0x08); } } } diff --git a/src/mame/video/exidy440.c b/src/mame/video/exidy440.c index 110b70784d2..21bf258422d 100644 --- a/src/mame/video/exidy440.c +++ b/src/mame/video/exidy440.c @@ -145,7 +145,7 @@ READ8_MEMBER(exidy440_state::exidy440_vertical_pos_r) * caused by collision or beam, ORed together with CHRCLK, * which probably goes off once per scanline; for now, we just * always return the current scanline */ - result = machine().primary_screen->vpos(); + result = m_screen->vpos(); return (result < 255) ? result : 255; } @@ -159,7 +159,7 @@ READ8_MEMBER(exidy440_state::exidy440_vertical_pos_r) WRITE8_MEMBER(exidy440_state::exidy440_spriteram_w) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_spriteram[offset] = data; } diff --git a/src/mame/video/fantland.c b/src/mame/video/fantland.c index fe8b205e99c..dae6cdab697 100644 --- a/src/mame/video/fantland.c +++ b/src/mame/video/fantland.c @@ -70,7 +70,7 @@ void fantland_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect *ram2 = indx_ram; // current sprite pointer in indx_ram // wheelrun is the only game with a smaller visible area - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); int special = (visarea.max_y - visarea.min_y + 1) < 0x100; for ( ; ram < indx_ram; ram += 8,ram2++) diff --git a/src/mame/video/fastlane.c b/src/mame/video/fastlane.c index 8a222a25d06..d7f006e7f1f 100644 --- a/src/mame/video/fastlane.c +++ b/src/mame/video/fastlane.c @@ -114,10 +114,10 @@ void fastlane_state::video_start() m_layer0->set_scroll_rows(32); - m_clip0 = machine().primary_screen->visible_area(); + m_clip0 = m_screen->visible_area(); m_clip0.min_x += 40; - m_clip1 = machine().primary_screen->visible_area(); + m_clip1 = m_screen->visible_area(); m_clip1.max_x = 39; m_clip1.min_x = 0; } diff --git a/src/mame/video/fgoal.c b/src/mame/video/fgoal.c index 7d9aa2ccfaf..a717de145bc 100644 --- a/src/mame/video/fgoal.c +++ b/src/mame/video/fgoal.c @@ -28,8 +28,8 @@ WRITE8_MEMBER(fgoal_state::fgoal_xpos_w) void fgoal_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_fgbitmap); - machine().primary_screen->register_screen_bitmap(m_bgbitmap); + m_screen->register_screen_bitmap(m_fgbitmap); + m_screen->register_screen_bitmap(m_bgbitmap); save_item(NAME(m_fgbitmap)); save_item(NAME(m_bgbitmap)); diff --git a/src/mame/video/firetrk.c b/src/mame/video/firetrk.c index fc3c35527a7..51fe62cc2ef 100644 --- a/src/mame/video/firetrk.c +++ b/src/mame/video/firetrk.c @@ -217,8 +217,8 @@ TILE_GET_INFO_MEMBER(firetrk_state::montecar_get_tile_info2) void firetrk_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_helper1); - machine().primary_screen->register_screen_bitmap(m_helper2); + m_screen->register_screen_bitmap(m_helper1); + m_screen->register_screen_bitmap(m_helper2); m_tilemap1 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(firetrk_state::firetrk_get_tile_info1),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); m_tilemap2 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(firetrk_state::firetrk_get_tile_info2),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); @@ -227,8 +227,8 @@ void firetrk_state::video_start() VIDEO_START_MEMBER(firetrk_state,superbug) { - machine().primary_screen->register_screen_bitmap(m_helper1); - machine().primary_screen->register_screen_bitmap(m_helper2); + m_screen->register_screen_bitmap(m_helper1); + m_screen->register_screen_bitmap(m_helper2); m_tilemap1 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(firetrk_state::superbug_get_tile_info1),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); m_tilemap2 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(firetrk_state::superbug_get_tile_info2),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); @@ -237,8 +237,8 @@ VIDEO_START_MEMBER(firetrk_state,superbug) VIDEO_START_MEMBER(firetrk_state,montecar) { - machine().primary_screen->register_screen_bitmap(m_helper1); - machine().primary_screen->register_screen_bitmap(m_helper2); + m_screen->register_screen_bitmap(m_helper1); + m_screen->register_screen_bitmap(m_helper2); m_tilemap1 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(firetrk_state::montecar_get_tile_info1),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); m_tilemap2 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(firetrk_state::montecar_get_tile_info2),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); diff --git a/src/mame/video/fromance.c b/src/mame/video/fromance.c index 619283dc7af..6ffdf8ecbb7 100644 --- a/src/mame/video/fromance.c +++ b/src/mame/video/fromance.c @@ -245,7 +245,7 @@ TIMER_CALLBACK_MEMBER(fromance_state::crtc_interrupt_gen) { m_subcpu->set_input_line(0, HOLD_LINE); if (param != 0) - m_crtc_timer->adjust(machine().primary_screen->frame_period() / param, 0, machine().primary_screen->frame_period() / param); + m_crtc_timer->adjust(m_screen->frame_period() / param, 0, m_screen->frame_period() / param); } @@ -257,7 +257,7 @@ WRITE8_MEMBER(fromance_state::fromance_crtc_data_w) { /* only register we know about.... */ case 0x0b: - m_crtc_timer->adjust(machine().primary_screen->time_until_vblank_start(), (data > 0x80) ? 2 : 1); + m_crtc_timer->adjust(m_screen->time_until_vblank_start(), (data > 0x80) ? 2 : 1); break; default: diff --git a/src/mame/video/gaelco3d.c b/src/mame/video/gaelco3d.c index 5b46d878f8a..03b4fe08df0 100644 --- a/src/mame/video/gaelco3d.c +++ b/src/mame/video/gaelco3d.c @@ -27,8 +27,8 @@ gaelco3d_renderer::gaelco3d_renderer(gaelco3d_state &state) : poly_manager(state.machine()), m_state(state), - m_screenbits(state.machine().primary_screen->width(), state.machine().primary_screen->height()), - m_zbuffer(state.machine().primary_screen->width(), state.machine().primary_screen->height()), + m_screenbits(state.m_screen->width(), state.m_screen->height()), + m_zbuffer(state.m_screen->width(), state.m_screen->height()), m_polygons(0), m_texture_size(state.memregion("gfx1")->bytes()), m_texmask_size(state.memregion("gfx2")->bytes() * 8), @@ -382,14 +382,14 @@ WRITE32_MEMBER(gaelco3d_state::gaelco3d_render_w) { if (m_polydata_count >= 18 && (m_polydata_count % 2) == 1 && IS_POLYEND(m_polydata_buffer[m_polydata_count - 2])) { - m_poly->render_poly(*machine().primary_screen, &m_polydata_buffer[0]); + m_poly->render_poly(*m_screen, &m_polydata_buffer[0]); m_polydata_count = 0; } m_video_changed = TRUE; } #if DISPLAY_STATS - m_lastscan = machine().primary_screen->vpos(); + m_lastscan = m_screen->vpos(); #endif } diff --git a/src/mame/video/gaiden.c b/src/mame/video/gaiden.c index 74e2f79e388..cf26a30b5f1 100644 --- a/src/mame/video/gaiden.c +++ b/src/mame/video/gaiden.c @@ -71,8 +71,8 @@ TILE_GET_INFO_MEMBER(gaiden_state::get_tx_tile_info) VIDEO_START_MEMBER(gaiden_state,gaiden) { /* set up tile layers */ - machine().primary_screen->register_screen_bitmap(m_tile_bitmap_bg); - machine().primary_screen->register_screen_bitmap(m_tile_bitmap_fg); + m_screen->register_screen_bitmap(m_tile_bitmap_bg); + m_screen->register_screen_bitmap(m_tile_bitmap_fg); m_background = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); m_foreground = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_fg_tile_info_raiga),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); @@ -91,14 +91,14 @@ VIDEO_START_MEMBER(gaiden_state,gaiden) m_text_layer->set_scrolldx(0, -1); /* set up sprites */ - machine().primary_screen->register_screen_bitmap(m_sprite_bitmap); + m_screen->register_screen_bitmap(m_sprite_bitmap); } VIDEO_START_MEMBER(gaiden_state,mastninj) { /* set up tile layers */ - machine().primary_screen->register_screen_bitmap(m_tile_bitmap_bg); - machine().primary_screen->register_screen_bitmap(m_tile_bitmap_fg); + m_screen->register_screen_bitmap(m_tile_bitmap_bg); + m_screen->register_screen_bitmap(m_tile_bitmap_fg); m_background = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); m_foreground = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_fg_tile_info_raiga),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); @@ -109,7 +109,7 @@ VIDEO_START_MEMBER(gaiden_state,mastninj) m_text_layer->set_transparent_pen(15); /* set up sprites */ - machine().primary_screen->register_screen_bitmap(m_sprite_bitmap); + m_screen->register_screen_bitmap(m_sprite_bitmap); m_background->set_scrolldx(-248, 248); m_foreground->set_scrolldx(-252, 252); @@ -118,8 +118,8 @@ VIDEO_START_MEMBER(gaiden_state,mastninj) VIDEO_START_MEMBER(gaiden_state,raiga) { /* set up tile layers */ - machine().primary_screen->register_screen_bitmap(m_tile_bitmap_bg); - machine().primary_screen->register_screen_bitmap(m_tile_bitmap_fg); + m_screen->register_screen_bitmap(m_tile_bitmap_bg); + m_screen->register_screen_bitmap(m_tile_bitmap_fg); m_background = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); m_foreground = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(gaiden_state::get_fg_tile_info_raiga),this), TILEMAP_SCAN_ROWS, 16, 16, 64, 32); @@ -130,7 +130,7 @@ VIDEO_START_MEMBER(gaiden_state,raiga) m_text_layer->set_transparent_pen(0); /* set up sprites */ - machine().primary_screen->register_screen_bitmap(m_sprite_bitmap); + m_screen->register_screen_bitmap(m_sprite_bitmap); } VIDEO_START_MEMBER(gaiden_state,drgnbowl) diff --git a/src/mame/video/galastrm.c b/src/mame/video/galastrm.c index 32ea3211f73..b698424478b 100644 --- a/src/mame/video/galastrm.c +++ b/src/mame/video/galastrm.c @@ -28,8 +28,8 @@ void galastrm_state::video_start() { m_spritelist = auto_alloc_array(machine(), struct tempsprite, 0x4000); - machine().primary_screen->register_screen_bitmap(m_tmpbitmaps); - machine().primary_screen->register_screen_bitmap(m_polybitmap); + m_screen->register_screen_bitmap(m_tmpbitmaps); + m_screen->register_screen_bitmap(m_polybitmap); m_poly = poly_alloc(machine(), 16, sizeof(poly_extra_data), POLYFLAG_ALLOW_QUADS); machine().add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(galastrm_state::galastrm_exit), this)); diff --git a/src/mame/video/galaxia.c b/src/mame/video/galaxia.c index 1a7b4ce18c6..f653294ee70 100644 --- a/src/mame/video/galaxia.c +++ b/src/mame/video/galaxia.c @@ -101,7 +101,7 @@ VIDEO_START_MEMBER(galaxia_state,astrowar) m_bg_tilemap->set_scroll_cols(8); m_bg_tilemap->set_scrolldx(8, 8); - machine().primary_screen->register_screen_bitmap(m_temp_bitmap); + m_screen->register_screen_bitmap(m_temp_bitmap); } diff --git a/src/mame/video/galaxian.c b/src/mame/video/galaxian.c index 010a1020c71..39a4ee62dae 100644 --- a/src/mame/video/galaxian.c +++ b/src/mame/video/galaxian.c @@ -482,7 +482,7 @@ WRITE8_MEMBER(galaxian_state::galaxian_videoram_w) { UINT8 *videoram = m_videoram; /* update any video up to the current scanline */ - machine().primary_screen->update_now(); + m_screen->update_now(); /* store the data and mark the corresponding tile dirty */ videoram[offset] = data; @@ -493,7 +493,7 @@ WRITE8_MEMBER(galaxian_state::galaxian_videoram_w) WRITE8_MEMBER(galaxian_state::galaxian_objram_w) { /* update any video up to the current scanline */ - machine().primary_screen->update_now(); + m_screen->update_now(); /* store the data */ m_spriteram[offset] = data; @@ -643,7 +643,7 @@ WRITE8_MEMBER(galaxian_state::galaxian_flip_screen_x_w) { if (m_flipscreen_x != (data & 0x01)) { - machine().primary_screen->update_now(); + m_screen->update_now(); /* when the direction changes, we count a different number of clocks */ /* per frame, so we need to reset the origin of the stars to the current */ @@ -659,7 +659,7 @@ WRITE8_MEMBER(galaxian_state::galaxian_flip_screen_y_w) { if (m_flipscreen_y != (data & 0x01)) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_flipscreen_y = data & 0x01; m_bg_tilemap->set_flip((m_flipscreen_x ? TILEMAP_FLIPX : 0) | (m_flipscreen_y ? TILEMAP_FLIPY : 0)); } @@ -682,15 +682,15 @@ WRITE8_MEMBER(galaxian_state::galaxian_flip_screen_xy_w) WRITE8_MEMBER(galaxian_state::galaxian_stars_enable_w) { if ((m_stars_enabled ^ data) & 0x01) - machine().primary_screen->update_now(); + m_screen->update_now(); if (!m_stars_enabled && (data & 0x01)) { /* on the rising edge of this, the CLR on the shift registers is released */ /* this resets the "origin" of this frame to 0 minus the number of clocks */ /* we have counted so far */ - m_star_rng_origin = STAR_RNG_PERIOD - (machine().primary_screen->vpos() * 512 + machine().primary_screen->hpos()); - m_star_rng_origin_frame = machine().primary_screen->frame_number(); + m_star_rng_origin = STAR_RNG_PERIOD - (m_screen->vpos() * 512 + m_screen->hpos()); + m_star_rng_origin_frame = m_screen->frame_number(); } m_stars_enabled = data & 0x01; } @@ -699,7 +699,7 @@ WRITE8_MEMBER(galaxian_state::galaxian_stars_enable_w) WRITE8_MEMBER(galaxian_state::scramble_background_enable_w) { if ((m_background_enable ^ data) & 0x01) - machine().primary_screen->update_now(); + m_screen->update_now(); m_background_enable = data & 0x01; } @@ -708,7 +708,7 @@ WRITE8_MEMBER(galaxian_state::scramble_background_enable_w) WRITE8_MEMBER(galaxian_state::scramble_background_red_w) { if ((m_background_red ^ data) & 0x01) - machine().primary_screen->update_now(); + m_screen->update_now(); m_background_red = data & 0x01; } @@ -717,7 +717,7 @@ WRITE8_MEMBER(galaxian_state::scramble_background_red_w) WRITE8_MEMBER(galaxian_state::scramble_background_green_w) { if ((m_background_green ^ data) & 0x01) - machine().primary_screen->update_now(); + m_screen->update_now(); m_background_green = data & 0x01; } @@ -726,7 +726,7 @@ WRITE8_MEMBER(galaxian_state::scramble_background_green_w) WRITE8_MEMBER(galaxian_state::scramble_background_blue_w) { if ((m_background_blue ^ data) & 0x01) - machine().primary_screen->update_now(); + m_screen->update_now(); m_background_blue = data & 0x01; } @@ -743,7 +743,7 @@ WRITE8_MEMBER(galaxian_state::galaxian_gfxbank_w) { if (m_gfxbank[offset] != data) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_gfxbank[offset] = data; m_bg_tilemap->mark_all_dirty(); } @@ -795,7 +795,7 @@ void galaxian_state::stars_init() void galaxian_state::stars_update_origin() { - int curframe = machine().primary_screen->frame_number(); + int curframe = m_screen->frame_number(); /* only update on a different frame */ if (curframe != m_star_rng_origin_frame) diff --git a/src/mame/video/galaxold.c b/src/mame/video/galaxold.c index ea0ce07bb72..4400da39894 100644 --- a/src/mame/video/galaxold.c +++ b/src/mame/video/galaxold.c @@ -793,7 +793,7 @@ VIDEO_START_MEMBER(galaxold_state,dambustr) m_draw_bullets = &galaxold_state::dambustr_draw_bullets; /* allocate the temporary bitmap for the background priority */ - m_dambustr_tmpbitmap = auto_bitmap_ind16_alloc(machine(), machine().primary_screen->width(), machine().primary_screen->height()); + m_dambustr_tmpbitmap = auto_bitmap_ind16_alloc(machine(), m_screen->width(), m_screen->height()); /* make a copy of the tilemap to emulate background priority */ m_dambustr_videoram2 = auto_alloc_array(machine(), UINT8, 0x0400); @@ -1590,7 +1590,7 @@ TIMER_CALLBACK_MEMBER(galaxold_state::stars_scroll_callback) void galaxold_state::start_stars_scroll_timer() { - m_stars_scroll_timer->adjust(machine().primary_screen->frame_period(), 0, machine().primary_screen->frame_period()); + m_stars_scroll_timer->adjust(m_screen->frame_period(), 0, m_screen->frame_period()); } diff --git a/src/mame/video/galpanic.c b/src/mame/video/galpanic.c index db44648e298..78e1833a9c9 100644 --- a/src/mame/video/galpanic.c +++ b/src/mame/video/galpanic.c @@ -5,8 +5,8 @@ VIDEO_START_MEMBER(galpanic_state,galpanic) { - machine().primary_screen->register_screen_bitmap(m_bitmap); - machine().primary_screen->register_screen_bitmap(m_sprites_bitmap); + m_screen->register_screen_bitmap(m_bitmap); + m_screen->register_screen_bitmap(m_sprites_bitmap); } PALETTE_INIT_MEMBER(galpanic_state,galpanic) diff --git a/src/mame/video/gameplan.c b/src/mame/video/gameplan.c index 86cdfd82f35..ce690011018 100644 --- a/src/mame/video/gameplan.c +++ b/src/mame/video/gameplan.c @@ -283,9 +283,9 @@ TIMER_CALLBACK_MEMBER(gameplan_state::via_0_ca1_timer_callback) m_via_0->write_ca1(param); if (param) - m_via_0_ca1_timer->adjust(machine().primary_screen->time_until_pos(VBSTART)); + m_via_0_ca1_timer->adjust(m_screen->time_until_pos(VBSTART)); else - m_via_0_ca1_timer->adjust(machine().primary_screen->time_until_pos(VBEND), 1); + m_via_0_ca1_timer->adjust(m_screen->time_until_pos(VBEND), 1); } @@ -334,7 +334,7 @@ VIDEO_START_MEMBER(gameplan_state,trvquest) VIDEO_RESET_MEMBER(gameplan_state,gameplan) { - m_via_0_ca1_timer->adjust(machine().primary_screen->time_until_pos(VBSTART)); + m_via_0_ca1_timer->adjust(m_screen->time_until_pos(VBSTART)); } diff --git a/src/mame/video/gaplus.c b/src/mame/video/gaplus.c index f429c10ddb8..aa0f651fc34 100644 --- a/src/mame/video/gaplus.c +++ b/src/mame/video/gaplus.c @@ -132,8 +132,8 @@ void gaplus_state::starfield_init() int x,y; int set = 0; - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); m_total_stars = 0; @@ -225,8 +225,8 @@ void gaplus_state::starfield_render(bitmap_ind16 &bitmap) struct star *stars = m_stars; int i; - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); /* check if we're running */ if ( ( m_starfield_control[0] & 1 ) == 0 ) @@ -329,8 +329,8 @@ void gaplus_state::screen_eof_gaplus(screen_device &screen, bool state)/* update struct star *stars = m_stars; int i; - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); /* check if we're running */ if ( ( m_starfield_control[0] & 1 ) == 0 ) diff --git a/src/mame/video/gauntlet.c b/src/mame/video/gauntlet.c index 18f5fa3a307..10bb1077e62 100644 --- a/src/mame/video/gauntlet.c +++ b/src/mame/video/gauntlet.c @@ -108,7 +108,7 @@ WRITE16_MEMBER( gauntlet_state::gauntlet_xscroll_w ) /* if something changed, force a partial update */ if (*m_xscroll != oldxscroll) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); /* adjust the scrolls */ m_playfield_tilemap->set_scrollx(0, *m_xscroll); @@ -132,7 +132,7 @@ WRITE16_MEMBER( gauntlet_state::gauntlet_yscroll_w ) /* if something changed, force a partial update */ if (*m_yscroll != oldyscroll) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); /* if the bank changed, mark all tiles dirty */ if (m_playfield_tile_bank != (*m_yscroll & 3)) diff --git a/src/mame/video/gomoku.c b/src/mame/video/gomoku.c index 5e6df8613fb..f8e496af833 100644 --- a/src/mame/video/gomoku.c +++ b/src/mame/video/gomoku.c @@ -111,7 +111,7 @@ void gomoku_state::video_start() int bgdata; int color; - machine().primary_screen->register_screen_bitmap(m_bg_bitmap); + m_screen->register_screen_bitmap(m_bg_bitmap); m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(gomoku_state::get_fg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32, 32); diff --git a/src/mame/video/gottlieb.c b/src/mame/video/gottlieb.c index 7163155ae0a..ff351072e63 100644 --- a/src/mame/video/gottlieb.c +++ b/src/mame/video/gottlieb.c @@ -47,7 +47,7 @@ WRITE8_MEMBER(gottlieb_state::gottlieb_video_control_w) { /* bit 0 controls foreground/background priority */ if (m_background_priority != (data & 0x01)) - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_background_priority = data & 0x01; /* bit 1 controls horizonal flip screen */ diff --git a/src/mame/video/gp9001.c b/src/mame/video/gp9001.c index 86f9326e3ce..3ac37227b35 100644 --- a/src/mame/video/gp9001.c +++ b/src/mame/video/gp9001.c @@ -204,6 +204,7 @@ const device_type GP9001_VDP = &device_creator; gp9001vdp_device::gp9001vdp_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, GP9001_VDP, "GP9001_VDP", tag, owner, clock, "gp9001vdp", __FILE__), + device_video_interface(mconfig, *this), device_memory_interface(mconfig, *this), m_space_config("gp9001vdp", ENDIANNESS_BIG, 16,14, 0, NULL, *ADDRESS_MAP_NAME(gp9001vdp_map)), m_gfxregion(0) @@ -406,7 +407,7 @@ void gp9001vdp_device::gp9001_videoram16_w(offs_t offset, UINT16 data, UINT16 me UINT16 gp9001vdp_device::gp9001_vdpstatus_r() { - return ((machine().primary_screen->vpos() + 15) % 262) >= 245; + return ((m_screen->vpos() + 15) % 262) >= 245; } void gp9001vdp_device::gp9001_scroll_reg_select_w( offs_t offset, UINT16 data, UINT16 mem_mask ) diff --git a/src/mame/video/gp9001.h b/src/mame/video/gp9001.h index 5593c610450..390a1b9b139 100644 --- a/src/mame/video/gp9001.h +++ b/src/mame/video/gp9001.h @@ -31,6 +31,7 @@ struct gp9001spritelayer : gp9001layer class gp9001vdp_device : public device_t, + public device_video_interface, public device_memory_interface { public: diff --git a/src/mame/video/grchamp.c b/src/mame/video/grchamp.c index 4fb7956dbc8..7cf1d859059 100644 --- a/src/mame/video/grchamp.c +++ b/src/mame/video/grchamp.c @@ -112,7 +112,7 @@ int grchamp_state::collision_check(grchamp_state *state, bitmap_ind16 &bitmap, i { int bgcolor = machine().pens[0]; int sprite_transp = machine().pens[0x24]; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); int y0 = 240 - m_cpu0_out[3]; int x0 = 256 - m_cpu0_out[2]; int x,y,sx,sy; diff --git a/src/mame/video/gridlee.c b/src/mame/video/gridlee.c index d7ab9fde241..88947d079a1 100644 --- a/src/mame/video/gridlee.c +++ b/src/mame/video/gridlee.c @@ -113,7 +113,7 @@ WRITE8_MEMBER(gridlee_state::gridlee_videoram_w) WRITE8_MEMBER(gridlee_state::gridlee_palette_select_w) { /* update the scanline palette */ - machine().primary_screen->update_partial(machine().primary_screen->vpos() - 1 + GRIDLEE_VBEND); + m_screen->update_partial(m_screen->vpos() - 1 + GRIDLEE_VBEND); m_palettebank_vis = data & 0x3f; } diff --git a/src/mame/video/gstriker.c b/src/mame/video/gstriker.c index 13a028c6c57..4c9f2c7c317 100644 --- a/src/mame/video/gstriker.c +++ b/src/mame/video/gstriker.c @@ -238,8 +238,8 @@ void gstriker_state::MB60553_draw(int numchip, screen_device &screen, bitmap_ind rectangle clip; m_MB60553_cur_chip = &m_MB60553[numchip]; - clip.min_x = machine().primary_screen->visible_area().min_x; - clip.max_x = machine().primary_screen->visible_area().max_x; + clip.min_x = m_screen->visible_area().min_x; + clip.max_x = m_screen->visible_area().max_x; for (line = 0; line < 224;line++) { diff --git a/src/mame/video/gyruss.c b/src/mame/video/gyruss.c index ea8b7e368b3..1eb46a083cd 100644 --- a/src/mame/video/gyruss.c +++ b/src/mame/video/gyruss.c @@ -94,7 +94,7 @@ void gyruss_state::palette_init() WRITE8_MEMBER(gyruss_state::gyruss_spriteram_w) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_spriteram[offset] = data; } @@ -123,7 +123,7 @@ void gyruss_state::video_start() READ8_MEMBER(gyruss_state::gyruss_scanline_r) { /* reads 1V - 128V */ - return machine().primary_screen->vpos(); + return m_screen->vpos(); } diff --git a/src/mame/video/harddriv.c b/src/mame/video/harddriv.c index 7e738e330f0..19c821c7e04 100644 --- a/src/mame/video/harddriv.c +++ b/src/mame/video/harddriv.c @@ -230,7 +230,7 @@ WRITE16_HANDLER( hdgsp_control_hi_w ) case 0x01: data = data & (15 >> state->m_gsp_multisync); - space.machine().primary_screen->update_partial(space.machine().primary_screen->vpos() - 1); + state->m_screen->update_partial(state->m_screen->vpos() - 1); state->m_gfx_finescroll = data; break; diff --git a/src/mame/video/hng64.c b/src/mame/video/hng64.c index 3b82aec7d31..77271712f61 100644 --- a/src/mame/video/hng64.c +++ b/src/mame/video/hng64.c @@ -1639,7 +1639,7 @@ void hng64_state::screen_eof_hng64(screen_device &screen, bool state) void hng64_state::video_start() { - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); m_old_animmask = -1; m_old_animbits = -1; diff --git a/src/mame/video/homerun.c b/src/mame/video/homerun.c index 60b466c9cab..71609d7ea47 100644 --- a/src/mame/video/homerun.c +++ b/src/mame/video/homerun.c @@ -13,7 +13,7 @@ CUSTOM_INPUT_MEMBER(homerun_state::homerun_sprite0_r) { // sprite-0 vs background collision status, similar to NES - return (machine().primary_screen->vpos() > (m_spriteram[0] - 15)) ? 1 : 0; + return (m_screen->vpos() > (m_spriteram[0] - 15)) ? 1 : 0; } WRITE8_MEMBER(homerun_state::homerun_scrollhi_w) @@ -38,8 +38,8 @@ WRITE8_MEMBER(homerun_state::homerun_scrollx_w) WRITE8_MEMBER(homerun_state::homerun_banking_w) { // games do mid-screen gfx bank switching - int vpos = machine().primary_screen->vpos(); - machine().primary_screen->update_partial(vpos); + int vpos = m_screen->vpos(); + m_screen->update_partial(vpos); // d0-d1: gfx bank // d2-d4: ? diff --git a/src/mame/video/hyhoo.c b/src/mame/video/hyhoo.c index d98102c8a4e..c0f22ba752a 100644 --- a/src/mame/video/hyhoo.c +++ b/src/mame/video/hyhoo.c @@ -225,7 +225,7 @@ void hyhoo_state::hyhoo_gfxdraw() void hyhoo_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_tmpbitmap); + m_screen->register_screen_bitmap(m_tmpbitmap); } diff --git a/src/mame/video/hyprduel.c b/src/mame/video/hyprduel.c index dc213b1aab0..0f1bc879257 100644 --- a/src/mame/video/hyprduel.c +++ b/src/mame/video/hyprduel.c @@ -460,8 +460,8 @@ void hyprduel_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, UINT8 *base_gfx8 = memregion("gfx1")->base(); UINT32 gfx_size = memregion("gfx1")->bytes(); - int max_x = machine().primary_screen->width(); - int max_y = machine().primary_screen->height(); + int max_x = m_screen->width(); + int max_y = m_screen->height(); int max_sprites = m_spriteram.bytes() / 8; int sprites = m_videoregs[0x00 / 2] % max_sprites; diff --git a/src/mame/video/ikki.c b/src/mame/video/ikki.c index 848a31e36f5..09dbcac89a4 100644 --- a/src/mame/video/ikki.c +++ b/src/mame/video/ikki.c @@ -116,7 +116,7 @@ void ikki_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) void ikki_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_sprite_bitmap); + m_screen->register_screen_bitmap(m_sprite_bitmap); save_item(NAME(m_sprite_bitmap)); } diff --git a/src/mame/video/irobot.c b/src/mame/video/irobot.c index f573fd46e3a..23bfce0fa06 100644 --- a/src/mame/video/irobot.c +++ b/src/mame/video/irobot.c @@ -78,7 +78,7 @@ WRITE8_MEMBER(irobot_state::irobot_paletteram_w) void irobot_state::_irobot_poly_clear(UINT8 *bitmap_base) { - memset(bitmap_base, 0, BITMAP_WIDTH * machine().primary_screen->height()); + memset(bitmap_base, 0, BITMAP_WIDTH * m_screen->height()); } void irobot_state::irobot_poly_clear() @@ -96,7 +96,7 @@ void irobot_state::irobot_poly_clear() void irobot_state::video_start() { /* Setup 2 bitmaps for the polygon generator */ - int height = machine().primary_screen->height(); + int height = m_screen->height(); m_polybitmap1 = auto_alloc_array(machine(), UINT8, BITMAP_WIDTH * height); m_polybitmap2 = auto_alloc_array(machine(), UINT8, BITMAP_WIDTH * height); @@ -106,8 +106,8 @@ void irobot_state::video_start() /* Set clipping */ m_ir_xmin = m_ir_ymin = 0; - m_ir_xmax = machine().primary_screen->width(); - m_ir_ymax = machine().primary_screen->height(); + m_ir_xmax = m_screen->width(); + m_ir_ymax = m_screen->height(); } diff --git a/src/mame/video/itech32.c b/src/mame/video/itech32.c index dee780ec426..e9ac9788c77 100644 --- a/src/mame/video/itech32.c +++ b/src/mame/video/itech32.c @@ -438,10 +438,10 @@ void itech32_state::update_interrupts(int fast) TIMER_CALLBACK_MEMBER(itech32_state::scanline_interrupt) { /* set timer for next frame */ - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(VIDEO_INTSCANLINE)); + m_scanline_timer->adjust(m_screen->time_until_pos(VIDEO_INTSCANLINE)); /* set the interrupt bit in the status reg */ - logerror("-------------- (DISPLAY INT @ %d) ----------------\n", machine().primary_screen->vpos()); + logerror("-------------- (DISPLAY INT @ %d) ----------------\n", m_screen->vpos()); VIDEO_INTSTATE |= VIDEOINT_SCANLINE; /* update the interrupt state */ @@ -1302,7 +1302,7 @@ WRITE16_MEMBER(itech32_state::itech32_video_w) break; case 0x2c/2: /* VIDEO_INTSCANLINE */ - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(VIDEO_INTSCANLINE)); + m_scanline_timer->adjust(m_screen->time_until_pos(VIDEO_INTSCANLINE)); break; case 0x32/2: /* VIDEO_VTOTAL */ @@ -1334,7 +1334,7 @@ WRITE16_MEMBER(itech32_state::itech32_video_w) logerror("Configure Screen: HTOTAL: %x HBSTART: %x HBEND: %x VTOTAL: %x VBSTART: %x VBEND: %x\n", VIDEO_HTOTAL, VIDEO_HBLANK_START, VIDEO_HBLANK_END, VIDEO_VTOTAL, VIDEO_VBLANK_START, VIDEO_VBLANK_END); - machine().primary_screen->configure(VIDEO_HTOTAL, VIDEO_VTOTAL, visarea, HZ_TO_ATTOSECONDS(VIDEO_CLOCK) * VIDEO_HTOTAL * VIDEO_VTOTAL); + m_screen->configure(VIDEO_HTOTAL, VIDEO_VTOTAL, visarea, HZ_TO_ATTOSECONDS(VIDEO_CLOCK) * VIDEO_HTOTAL * VIDEO_VTOTAL); } break; } @@ -1349,7 +1349,7 @@ READ16_MEMBER(itech32_state::itech32_video_r) } else if (offset == 3) { - return 0xef;/*machine().primary_screen->vpos() - 1;*/ + return 0xef;/*m_screen->vpos() - 1;*/ } return m_video[offset]; diff --git a/src/mame/video/itech8.c b/src/mame/video/itech8.c index 36083be6893..68d13622968 100644 --- a/src/mame/video/itech8.c +++ b/src/mame/video/itech8.c @@ -173,8 +173,8 @@ WRITE8_MEMBER(itech8_state::itech8_palette_w) WRITE8_MEMBER(itech8_state::itech8_page_w) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); - logerror("%04x:display_page = %02X (%d)\n", space.device().safe_pc(), data, machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); + logerror("%04x:display_page = %02X (%d)\n", space.device().safe_pc(), data, m_screen->vpos()); m_page_select = data; } @@ -273,7 +273,7 @@ void itech8_state::perform_blit(address_space &space) /* debugging */ if (FULL_LOGGING) logerror("Blit: scan=%d src=%06x @ (%05x) for %dx%d ... flags=%02x\n", - space.machine().primary_screen->vpos(), + m_screen->vpos(), (m_grom_bank << 16) | (BLITTER_ADDRHI << 8) | BLITTER_ADDRLO, m_tms34061->m_display.regs[TMS34061_XYADDRESS] | ((m_tms34061->m_display.regs[TMS34061_XYOFFSET] & 0x300) << 8), BLITTER_WIDTH, BLITTER_HEIGHT, BLITTER_FLAGS); @@ -395,7 +395,7 @@ TIMER_CALLBACK_MEMBER(itech8_state::blitter_done) m_blit_in_progress = 0; itech8_update_interrupts(-1, -1, 1); - if (FULL_LOGGING) logerror("------------ BLIT DONE (%d) --------------\n", machine().primary_screen->vpos()); + if (FULL_LOGGING) logerror("------------ BLIT DONE (%d) --------------\n", m_screen->vpos()); } @@ -532,7 +532,7 @@ WRITE8_MEMBER(itech8_state::grmatch_palette_w) WRITE8_MEMBER(itech8_state::grmatch_xscroll_w) { /* update the X scroll value */ - machine().primary_screen->update_now(); + m_screen->update_now(); m_grmatch_xscroll = data; } diff --git a/src/mame/video/jaguar.c b/src/mame/video/jaguar.c index b94c48677bc..1fbcd9f9e27 100644 --- a/src/mame/video/jaguar.c +++ b/src/mame/video/jaguar.c @@ -199,7 +199,7 @@ enum inline void jaguar_state::get_crosshair_xy(int player, int &x, int &y) { - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); /* only 2 lightguns are connected */ x = visarea.min_x + (((ioport(player ? "FAKE2_X" : "FAKE1_X")->read() & 0xff) * visarea.width()) >> 8); @@ -249,11 +249,11 @@ inline bool jaguar_state::adjust_object_timer(int vc) int hdb = hdbpix[vc % 2]; /* if setting the second one in a line, make sure we will ever actually hit it */ - if (vc % 2 == 1 && (hdbpix[1] == hdbpix[0] || hdbpix[1] >= machine().primary_screen->width())) + if (vc % 2 == 1 && (hdbpix[1] == hdbpix[0] || hdbpix[1] >= m_screen->width())) return false; /* adjust the timer */ - m_object_timer->adjust(machine().primary_screen->time_until_pos(vc / 2, hdb), vc | (hdb << 16)); + m_object_timer->adjust(m_screen->time_until_pos(vc / 2, hdb), vc | (hdb << 16)); return true; } @@ -575,18 +575,18 @@ READ16_MEMBER( jaguar_state::tom_regs_r ) return m_cpu_irq_state; case HC: - return machine().primary_screen->hpos() % (machine().primary_screen->width() / 2); + return m_screen->hpos() % (m_screen->width() / 2); case VC: { UINT8 half_line; - if(machine().primary_screen->hpos() >= (machine().primary_screen->width() / 2)) + if(m_screen->hpos() >= (m_screen->width() / 2)) half_line = 1; else half_line = 0; - return machine().primary_screen->vpos() * 2 + half_line; + return m_screen->vpos() * 2 + half_line; } } @@ -657,7 +657,7 @@ WRITE16_MEMBER( jaguar_state::tom_regs_w ) if (hperiod != 0 && vperiod != 0 && hbend < hbstart && vbend < vbstart && hbstart < hperiod) { rectangle visarea(hbend / 2, hbstart / 2 - 1, vbend / 2, vbstart / 2 - 1); - machine().primary_screen->configure(hperiod / 2, vperiod / 2, visarea, HZ_TO_ATTOSECONDS(double(m_pixel_clock) * 2 / hperiod / vperiod)); + m_screen->configure(hperiod / 2, vperiod / 2, visarea, HZ_TO_ATTOSECONDS(double(m_pixel_clock) * 2 / hperiod / vperiod)); } } break; @@ -746,7 +746,7 @@ void jaguar_state::scanline_update(int param) { int vc = param & 0xffff; int hdb = param >> 16; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); /* only run if video is enabled and we are past the "display begin" */ if ((m_gpu_regs[VMODE] & 1) && vc >= (m_gpu_regs[VDB] & 0x7ff)) @@ -799,7 +799,7 @@ void jaguar_state::scanline_update(int param) } /* point to the next counter value */ - if (++vc / 2 >= machine().primary_screen->height()) + if (++vc / 2 >= m_screen->height()) vc = 0; } while (!adjust_object_timer(vc)); diff --git a/src/mame/video/kaneko_spr.c b/src/mame/video/kaneko_spr.c index d7c2fa42720..9d99192232f 100644 --- a/src/mame/video/kaneko_spr.c +++ b/src/mame/video/kaneko_spr.c @@ -30,7 +30,8 @@ const device_type KANEKO_VU002_SPRITE = &device_creator; kaneko16_sprite_device::kaneko16_sprite_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock, device_type type) - : device_t(mconfig, type, "kaneko16_sprite_device", tag, owner, clock, "kaneko16_sprite", __FILE__) + : device_t(mconfig, type, "kaneko16_sprite_device", tag, owner, clock, "kaneko16_sprite", __FILE__), + device_video_interface(mconfig, *this) { m_keep_sprites = 0; // default disabled for games not using it @@ -61,7 +62,7 @@ void kaneko16_sprite_device::device_start() { m_first_sprite = auto_alloc_array(machine(), struct tempsprite, 0x400); m_sprites_regs = auto_alloc_array_clear(machine(), UINT16, 0x20/2); - machine().primary_screen->register_screen_bitmap(m_sprites_bitmap); + m_screen->register_screen_bitmap(m_sprites_bitmap); } @@ -204,12 +205,12 @@ int kaneko16_sprite_device::kaneko16_parse_sprite_type012(running_machine &machi if (m_sprite_flipy) { s->yoffs -= m_sprites_regs[0x2/2]; - s->yoffs -= machine.primary_screen->visible_area().min_y<<6; + s->yoffs -= m_screen->visible_area().min_y<<6; } else { s->yoffs -= m_sprites_regs[0x2/2]; - s->yoffs += machine.primary_screen->visible_area().min_y<<6; + s->yoffs += m_screen->visible_area().min_y<<6; } return ( (attr & 0x2000) ? USE_LATCHED_XY : 0 ) | @@ -325,7 +326,7 @@ void kaneko16_sprite_device::kaneko16_draw_sprites(running_machine &machine, bit in a temp buffer, then draw the buffer's contents from last to first. */ - int max = (machine.primary_screen->width() > 0x100) ? (0x200<<6) : (0x100<<6); + int max = (m_screen->width() > 0x100) ? (0x200<<6) : (0x100<<6); int i = 0; struct tempsprite *s = m_first_sprite; diff --git a/src/mame/video/kaneko_spr.h b/src/mame/video/kaneko_spr.h index a839b094f5d..47a0b890125 100644 --- a/src/mame/video/kaneko_spr.h +++ b/src/mame/video/kaneko_spr.h @@ -25,7 +25,8 @@ struct tempsprite -class kaneko16_sprite_device : public device_t +class kaneko16_sprite_device : public device_t, + public device_video_interface { public: kaneko16_sprite_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock, device_type type); diff --git a/src/mame/video/kncljoe.c b/src/mame/video/kncljoe.c index 9ef7b96efe8..706daa72ecc 100644 --- a/src/mame/video/kncljoe.c +++ b/src/mame/video/kncljoe.c @@ -183,7 +183,7 @@ void kncljoe_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprec gfx_element *gfx = machine().gfx[1 + m_sprite_bank]; int i, j; static const int pribase[4]={0x0180, 0x0080, 0x0100, 0x0000}; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); /* score covers sprites */ if (m_flipscreen) diff --git a/src/mame/video/konamigx.c b/src/mame/video/konamigx.c index 93c186437e7..9246a48ece4 100644 --- a/src/mame/video/konamigx.c +++ b/src/mame/video/konamigx.c @@ -798,7 +798,7 @@ void konamigx_state::gx_draw_basic_extended_tilemaps_1(screen_device &screen, bi if (offs == -2) { int pixeldouble_output = 0; - const rectangle &visarea = screen.machine().primary_screen->visible_area(); + const rectangle &visarea = screen.visible_area(); int width = visarea.width(); if (width>512) // vsnetscr case @@ -851,8 +851,8 @@ void konamigx_state::gx_draw_basic_extended_tilemaps_2(screen_device &screen, bi if (extra_bitmap) // soccer superstars roz layer { int xx,yy; - int width = screen.machine().primary_screen->width(); - int height = screen.machine().primary_screen->height(); + int width = screen.width(); + int height = screen.height(); const pen_t *paldata = screen.machine().pens; // the output size of the roz layer has to be doubled horizontally @@ -1301,8 +1301,8 @@ VIDEO_START_MEMBER(konamigx_state,konamigx_6bpp) VIDEO_START_MEMBER(konamigx_state,konamigx_type3) { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); m_k056832->altK056832_vh_start(machine(), "gfx1", K056832_BPP_6, 0, NULL, konamigx_type2_tile_callback, 1); m_k055673->alt_k055673_vh_start(machine(), "gfx2", K055673_LAYOUT_GX6, -132, -23, konamigx_type2_sprite_callback); @@ -1340,8 +1340,8 @@ VIDEO_START_MEMBER(konamigx_state,konamigx_type3) VIDEO_START_MEMBER(konamigx_state,konamigx_type4) { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); m_k056832->altK056832_vh_start(machine(), "gfx1", K056832_BPP_8, 0, NULL, konamigx_type2_tile_callback, 0); m_k055673->alt_k055673_vh_start(machine(), "gfx2", K055673_LAYOUT_GX6, -79, -24, konamigx_type2_sprite_callback); // -23 looks better in intro @@ -1371,8 +1371,8 @@ VIDEO_START_MEMBER(konamigx_state,konamigx_type4) VIDEO_START_MEMBER(konamigx_state,konamigx_type4_vsn) { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); m_k056832->altK056832_vh_start(machine(), "gfx1", K056832_BPP_8, 0, NULL, konamigx_type2_tile_callback, 2); // set djmain_hack to 2 to kill layer association or half the tilemaps vanish on screen 0 m_k055673->alt_k055673_vh_start(machine(), "gfx2", K055673_LAYOUT_GX6, -132, -23, konamigx_type2_sprite_callback); @@ -1401,8 +1401,8 @@ VIDEO_START_MEMBER(konamigx_state,konamigx_type4_vsn) VIDEO_START_MEMBER(konamigx_state,konamigx_type4_sd2) { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); m_k056832->altK056832_vh_start(machine(), "gfx1", K056832_BPP_8, 0, NULL, konamigx_type2_tile_callback, 0); m_k055673->alt_k055673_vh_start(machine(), "gfx2", K055673_LAYOUT_GX6, -81, -23, konamigx_type2_sprite_callback); diff --git a/src/mame/video/labyrunr.c b/src/mame/video/labyrunr.c index ccfff3cd80c..bddcc37fa8d 100644 --- a/src/mame/video/labyrunr.c +++ b/src/mame/video/labyrunr.c @@ -136,10 +136,10 @@ void labyrunr_state::video_start() m_layer0->set_transparent_pen(0); m_layer1->set_transparent_pen(0); - m_clip0 = machine().primary_screen->visible_area(); + m_clip0 = m_screen->visible_area(); m_clip0.min_x += 40; - m_clip1 = machine().primary_screen->visible_area(); + m_clip1 = m_screen->visible_area(); m_clip1.max_x = 39; m_clip1.min_x = 0; diff --git a/src/mame/video/leland.c b/src/mame/video/leland.c index fe43784cf14..06276a5a9b3 100644 --- a/src/mame/video/leland.c +++ b/src/mame/video/leland.c @@ -44,7 +44,7 @@ TIMER_CALLBACK_MEMBER(leland_state::scanline_callback) scanline = (scanline+1) % 256; /* come back at the next appropriate scanline */ - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_scanline_timer->adjust(m_screen->time_until_pos(scanline), scanline); } @@ -61,7 +61,7 @@ VIDEO_START_MEMBER(leland_state,leland) /* scanline timer */ m_scanline_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(leland_state::scanline_callback),this)); - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(0)); + m_scanline_timer->adjust(m_screen->time_until_pos(0)); } @@ -85,9 +85,9 @@ VIDEO_START_MEMBER(leland_state,ataxx) WRITE8_MEMBER(leland_state::leland_scroll_w) { - int scanline = machine().primary_screen->vpos(); + int scanline = m_screen->vpos(); if (scanline > 0) - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); /* adjust the proper scroll value */ switch (offset) @@ -117,7 +117,7 @@ WRITE8_MEMBER(leland_state::leland_scroll_w) WRITE8_MEMBER(leland_state::leland_gfx_port_w) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_gfxbank = data; } @@ -204,9 +204,9 @@ void leland_state::leland_vram_port_w(address_space &space, int offset, int data /* don't fully understand why this is needed. Isn't the video RAM just one big RAM? */ - int scanline = space.machine().primary_screen->vpos(); + int scanline = m_screen->vpos(); if (scanline > 0) - space.machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); if (LOG_COMM && addr >= 0xf000) logerror("%s:%s comm write %04X = %02X\n", space.machine().describe_context(), num ? "slave" : "master", addr, data); diff --git a/src/mame/video/lethalj.c b/src/mame/video/lethalj.c index 31b12344362..d42788d0549 100644 --- a/src/mame/video/lethalj.c +++ b/src/mame/video/lethalj.c @@ -23,7 +23,7 @@ inline void lethalj_state::get_crosshair_xy(int player, int *x, int *y) { static const char *const gunnames[] = { "LIGHT0_X", "LIGHT0_Y", "LIGHT1_X", "LIGHT1_Y" }; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); int width = visarea.width(); int height = visarea.height(); diff --git a/src/mame/video/liberatr.c b/src/mame/video/liberatr.c index 20cf1f81099..f9131fff9ed 100644 --- a/src/mame/video/liberatr.c +++ b/src/mame/video/liberatr.c @@ -187,7 +187,7 @@ void liberatr_state::init_planet(planet &liberatr_planet, UINT8 *planet_rom) /* calculate the bitmap's x coordinate for the western horizon center of bitmap - (the number of planet pixels) / 4 */ - *buffer++ = (machine().primary_screen->width() / 2) - ((line->max_x + 2) / 4); + *buffer++ = (m_screen->width() / 2) - ((line->max_x + 2) / 4); for (i = 0; i < segment_count; i++) { diff --git a/src/mame/video/lockon.c b/src/mame/video/lockon.c index ad1b3ebb8d9..6a6c834304d 100644 --- a/src/mame/video/lockon.c +++ b/src/mame/video/lockon.c @@ -67,7 +67,7 @@ TIMER_CALLBACK_MEMBER(lockon_state::cursor_callback) if (m_main_inten) m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xff); - m_cursor_timer->adjust(machine().primary_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS)); + m_cursor_timer->adjust(m_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS)); } /************************************* @@ -900,7 +900,7 @@ void lockon_state::video_start() /* Timer for the CRTC cursor pulse */ m_cursor_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(lockon_state::cursor_callback),this)); - m_cursor_timer->adjust(machine().primary_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS)); + m_cursor_timer->adjust(m_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS)); save_item(NAME(*m_back_buffer)); save_item(NAME(*m_front_buffer)); diff --git a/src/mame/video/lordgun.c b/src/mame/video/lordgun.c index 98f4d4a19f3..6328602380d 100644 --- a/src/mame/video/lordgun.c +++ b/src/mame/video/lordgun.c @@ -95,8 +95,8 @@ WRITE16_MEMBER(lordgun_state::lordgun_vram_3_w){ lordgun_vram_w(offset, data, me void lordgun_state::video_start() { int i; - int w = machine().primary_screen->width(); - int h = machine().primary_screen->height(); + int w = m_screen->width(); + int h = m_screen->height(); // 0x800 x 200 m_tilemap[0] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(lordgun_state::get_tile_info_0),this), TILEMAP_SCAN_ROWS,8,8, 0x100, 0x40 ); @@ -195,7 +195,7 @@ void lordgun_state::lorddgun_calc_gun_scr(int i) void lordgun_state::lordgun_update_gun(int i) { - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); m_gun[i].hw_x = ioport(gunnames[i])->read(); m_gun[i].hw_y = ioport(gunnames[i+2])->read(); diff --git a/src/mame/video/m107.c b/src/mame/video/m107.c index 4d6b805c1fb..9adc1550a78 100644 --- a/src/mame/video/m107.c +++ b/src/mame/video/m107.c @@ -311,7 +311,7 @@ void m107_state::m107_tilemap_draw(screen_device &screen, bitmap_ind16 &bitmap, { int line; rectangle clip; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); clip = visarea; if (m_control[0x08 + laynum] & 0x02) diff --git a/src/mame/video/m52.c b/src/mame/video/m52.c index ea6f31a172b..16d211b9dd9 100644 --- a/src/mame/video/m52.c +++ b/src/mame/video/m52.c @@ -293,7 +293,7 @@ WRITE8_MEMBER(m52_state::alpha1v_flipscreen_w) void m52_state::draw_background(bitmap_ind16 &bitmap, const rectangle &cliprect, int xpos, int ypos, int image) { rectangle rect; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); if (flip_screen()) diff --git a/src/mame/video/m58.c b/src/mame/video/m58.c index e510a35a958..32f4146670c 100644 --- a/src/mame/video/m58.c +++ b/src/mame/video/m58.c @@ -173,9 +173,9 @@ TILEMAP_MAPPER_MEMBER(m58_state::yard_tilemap_scan_rows) void m58_state::video_start() { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); - const rectangle &visarea = machine().primary_screen->visible_area(); + int width = m_screen->width(); + int height = m_screen->height(); + const rectangle &visarea = m_screen->visible_area(); m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(m58_state::yard_get_bg_tile_info),this), tilemap_mapper_delegate(FUNC(m58_state::yard_tilemap_scan_rows),this), 8, 8, 64, 32); m_bg_tilemap->set_scrolldx(visarea.min_x, width - (visarea.max_x + 1)); @@ -214,7 +214,7 @@ WRITE8_MEMBER(m58_state::yard_flipscreen_w) void m58_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect ) { int offs; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); for (offs = m_spriteram.bytes() - 4; offs >= 0; offs -= 4) { @@ -272,7 +272,7 @@ void m58_state::draw_panel( bitmap_ind16 &bitmap, const rectangle &cliprect ) const rectangle clippanel(26*8, 32*8-1, 1*8, 31*8-1); const rectangle clippanelflip(0*8, 6*8-1, 1*8, 31*8-1); rectangle clip = flip_screen() ? clippanelflip : clippanel; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); int sx = flip_screen() ? cliprect.min_x - 8 : cliprect.max_x + 1 - SCROLL_PANEL_WIDTH; int yoffs = flip_screen() ? -40 : -16; diff --git a/src/mame/video/madalien.c b/src/mame/video/madalien.c index a73cf9995be..0788962f0f9 100644 --- a/src/mame/video/madalien.c +++ b/src/mame/video/madalien.c @@ -147,7 +147,7 @@ VIDEO_START_MEMBER(madalien_state,madalien) m_tilemap_edge2[i] = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(madalien_state::get_tile_info_BG_2),this), scan_functions[i], 16, 16, tilemap_cols[i], 8); m_tilemap_edge2[i]->set_scrolldx(0, 0x50); - m_tilemap_edge2[i]->set_scrolldy(0, machine().primary_screen->height() - 256); + m_tilemap_edge2[i]->set_scrolldy(0, m_screen->height() - 256); } m_headlight_bitmap = auto_bitmap_ind16_alloc(machine(), 128, 128); diff --git a/src/mame/video/magmax.c b/src/mame/video/magmax.c index 9ad19ad7205..caa456e6e8a 100644 --- a/src/mame/video/magmax.c +++ b/src/mame/video/magmax.c @@ -72,7 +72,7 @@ void magmax_state::video_start() m_prom_tab = auto_alloc_array(machine(), UINT32, 256); - machine().primary_screen->register_screen_bitmap(m_bitmap); + m_screen->register_screen_bitmap(m_bitmap); /* Allocate temporary bitmap */ for (i=0; i<256; i++) diff --git a/src/mame/video/mappy.c b/src/mame/video/mappy.c index 2a45ac7846e..bed189904e2 100644 --- a/src/mame/video/mappy.c +++ b/src/mame/video/mappy.c @@ -321,7 +321,7 @@ TILE_GET_INFO_MEMBER(mappy_state::mappy_get_tile_info) VIDEO_START_MEMBER(mappy_state,superpac) { m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(mappy_state::superpac_get_tile_info),this),tilemap_mapper_delegate(FUNC(mappy_state::superpac_tilemap_scan),this),8,8,36,28); - machine().primary_screen->register_screen_bitmap(m_sprite_bitmap); + m_screen->register_screen_bitmap(m_sprite_bitmap); colortable_configure_tilemap_groups(machine().colortable, m_bg_tilemap, machine().gfx[0], 31); } diff --git a/src/mame/video/matmania.c b/src/mame/video/matmania.c index 323720ae9c2..7b2b8143e10 100644 --- a/src/mame/video/matmania.c +++ b/src/mame/video/matmania.c @@ -115,8 +115,8 @@ WRITE8_MEMBER(matmania_state::matmania_paletteram_w) void matmania_state::video_start() { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); /* Mat Mania has a virtual screen twice as large as the visible screen */ m_tmpbitmap = auto_bitmap_ind16_alloc(machine(), width, 2 * height); diff --git a/src/mame/video/mcd212.c b/src/mame/video/mcd212.c index 91711fe21d6..225f0ea3002 100644 --- a/src/mame/video/mcd212.c +++ b/src/mame/video/mcd212.c @@ -514,9 +514,9 @@ void mcd212_device::set_display_parameters(int channel, UINT8 value) void mcd212_device::update_visible_area() { - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); rectangle visarea1; - attoseconds_t period = machine().primary_screen->frame_period().attoseconds; + attoseconds_t period = m_screen->frame_period().attoseconds; int width = 0; if((m_channel[0].dcr & (MCD212_DCR_CF | MCD212_DCR_FD)) && (m_channel[0].csrw & MCD212_CSR1W_ST)) @@ -533,7 +533,7 @@ void mcd212_device::update_visible_area() visarea1.min_y = visarea.min_y; visarea1.max_y = visarea.max_y; - machine().primary_screen->configure(width, 302, visarea1, period); + m_screen->configure(width, 302, visarea1, period); } UINT32 mcd212_device::get_screen_width() @@ -1418,7 +1418,7 @@ WRITE16_MEMBER( mcd212_device::regs_w ) TIMER_CALLBACK_MEMBER( mcd212_device::perform_scan ) { - int scanline = machine().primary_screen->vpos(); + int scanline = m_screen->vpos(); if(1) { @@ -1463,7 +1463,7 @@ TIMER_CALLBACK_MEMBER( mcd212_device::perform_scan ) } } } - m_scan_timer->adjust(machine().primary_screen->time_until_pos(( scanline + 1 ) % 302, 0)); + m_scan_timer->adjust(m_screen->time_until_pos(( scanline + 1 ) % 302, 0)); } void mcd212_device::device_reset() @@ -1509,7 +1509,8 @@ void mcd212_device::device_reset() //------------------------------------------------- mcd212_device::mcd212_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) - : device_t(mconfig, MACHINE_MCD212, "MCD212", tag, owner, clock, "mcd212", __FILE__) + : device_t(mconfig, MACHINE_MCD212, "MCD212", tag, owner, clock, "mcd212", __FILE__), + device_video_interface(mconfig, *this) { } @@ -1519,10 +1520,10 @@ mcd212_device::mcd212_device(const machine_config &mconfig, const char *tag, dev void mcd212_device::device_start() { - machine().primary_screen->register_screen_bitmap(m_bitmap); + m_screen->register_screen_bitmap(m_bitmap); m_scan_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(mcd212_device::perform_scan), this)); - m_scan_timer->adjust(machine().primary_screen->time_until_pos(0, 0)); + m_scan_timer->adjust(m_screen->time_until_pos(0, 0)); save_item(NAME(m_region_flag_0)); save_item(NAME(m_region_flag_1)); diff --git a/src/mame/video/mcd212.h b/src/mame/video/mcd212.h index b08beaebcc9..1716136fba7 100644 --- a/src/mame/video/mcd212.h +++ b/src/mame/video/mcd212.h @@ -114,7 +114,7 @@ typedef INT16 SWORD68K; MCFG_DEVICE_ADD(_tag, MACHINE_MCD212, 0) #define MCFG_MCD212_REPLACE(_tag) \ MCFG_DEVICE_REPLACE(_tag, MACHINE_MCD212, 0) - +#define MCFG_MCD212_SET_SCREEN MCFG_VIDEO_SET_SCREEN //************************************************************************** // TYPE DEFINITIONS @@ -122,7 +122,8 @@ typedef INT16 SWORD68K; // ======================> mcd212_device -class mcd212_device : public device_t +class mcd212_device : public device_t, + public device_video_interface { public: // construction/destruction diff --git a/src/mame/video/mcr68.c b/src/mame/video/mcr68.c index 9cb2ba28c42..fb81f01b08a 100644 --- a/src/mame/video/mcr68.c +++ b/src/mame/video/mcr68.c @@ -197,7 +197,7 @@ WRITE16_MEMBER(mcr68_state::zwackery_spriteram_w) void mcr68_state::mcr68_update_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int priority) { - rectangle sprite_clip = machine().primary_screen->visible_area(); + rectangle sprite_clip = m_screen->visible_area(); UINT16 *spriteram = m_spriteram; int offs; diff --git a/src/mame/video/meadows.c b/src/mame/video/meadows.c index 9aaad9a9886..8ac018b286e 100644 --- a/src/mame/video/meadows.c +++ b/src/mame/video/meadows.c @@ -62,7 +62,7 @@ WRITE8_MEMBER(meadows_state::meadows_videoram_w) WRITE8_MEMBER(meadows_state::meadows_spriteram_w) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_spriteram[offset] = data; } diff --git a/src/mame/video/mermaid.c b/src/mame/video/mermaid.c index d448cbfaea3..cd973f72252 100644 --- a/src/mame/video/mermaid.c +++ b/src/mame/video/mermaid.c @@ -174,8 +174,8 @@ void mermaid_state::video_start() m_fg_tilemap->set_scroll_cols(32); m_fg_tilemap->set_transparent_pen(0); - machine().primary_screen->register_screen_bitmap(m_helper); - machine().primary_screen->register_screen_bitmap(m_helper2); + m_screen->register_screen_bitmap(m_helper); + m_screen->register_screen_bitmap(m_helper2); } void mermaid_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect ) @@ -253,7 +253,7 @@ void mermaid_state::screen_eof_mermaid(screen_device &screen, bool state) // rising edge if (state) { - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); UINT8 *spriteram = m_spriteram; int offs, offs2; diff --git a/src/mame/video/metro.c b/src/mame/video/metro.c index f4a80581f87..c289051fd8e 100644 --- a/src/mame/video/metro.c +++ b/src/mame/video/metro.c @@ -412,8 +412,8 @@ void metro_state::metro_draw_sprites( screen_device &screen, bitmap_ind16 &bitma UINT8 *base_gfx8 = memregion("gfx1")->base(); UINT32 gfx_size = memregion("gfx1")->bytes(); - int max_x = machine().primary_screen->width(); - int max_y = machine().primary_screen->height(); + int max_x = m_screen->width(); + int max_y = m_screen->height(); int max_sprites = m_spriteram.bytes() / 8; int sprites = m_videoregs[0x00/2] % max_sprites; diff --git a/src/mame/video/midvunit.c b/src/mame/video/midvunit.c index a83e00ce2a6..f5f9a29a1a2 100644 --- a/src/mame/video/midvunit.c +++ b/src/mame/video/midvunit.c @@ -56,7 +56,7 @@ TIMER_CALLBACK_MEMBER(midvunit_state::scanline_timer_cb) if (scanline != -1) { m_maincpu->set_input_line(0, ASSERT_LINE); - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(scanline + 1), scanline); + m_scanline_timer->adjust(m_screen->time_until_pos(scanline + 1), scanline); timer_set(attotime::from_hz(25000000), TIMER_SCANLINE, -1); } else @@ -348,7 +348,7 @@ void midvunit_renderer::process_dma_queue() objectdata.dither = ((m_state.m_dma_data[0] & 0x2000) != 0); /* render as a quad */ - render_polygon<4>(machine().primary_screen->visible_area(), callback, textured ? 2 : 0, vert); + render_polygon<4>(m_state.m_screen->visible_area(), callback, textured ? 2 : 0, vert); } @@ -403,7 +403,7 @@ WRITE32_MEMBER(midvunit_state::midvunit_page_control_w) m_video_changed = TRUE; if (LOG_DMA && machine().input().code_pressed(KEYCODE_L)) logerror("##########################################################\n"); - machine().primary_screen->update_partial(machine().primary_screen->vpos() - 1); + m_screen->update_partial(m_screen->vpos() - 1); } m_page_control = data; } @@ -431,7 +431,7 @@ WRITE32_MEMBER(midvunit_state::midvunit_video_control_w) /* update the scanline timer */ if (offset == 0) - m_scanline_timer->adjust(machine().primary_screen->time_until_pos((data & 0x1ff) + 1, 0), data & 0x1ff); + m_scanline_timer->adjust(m_screen->time_until_pos((data & 0x1ff) + 1, 0), data & 0x1ff); /* if something changed, update our parameters */ if (old != m_video_regs[offset] && m_video_regs[6] != 0 && m_video_regs[11] != 0) @@ -443,14 +443,14 @@ WRITE32_MEMBER(midvunit_state::midvunit_video_control_w) visarea.max_x = (m_video_regs[6] + m_video_regs[2] - m_video_regs[5]) % m_video_regs[6]; visarea.min_y = 0; visarea.max_y = (m_video_regs[11] + m_video_regs[7] - m_video_regs[10]) % m_video_regs[11]; - machine().primary_screen->configure(m_video_regs[6], m_video_regs[11], visarea, HZ_TO_ATTOSECONDS(MIDVUNIT_VIDEO_CLOCK / 2) * m_video_regs[6] * m_video_regs[11]); + m_screen->configure(m_video_regs[6], m_video_regs[11], visarea, HZ_TO_ATTOSECONDS(MIDVUNIT_VIDEO_CLOCK / 2) * m_video_regs[6] * m_video_regs[11]); } } READ32_MEMBER(midvunit_state::midvunit_scanline_r) { - return machine().primary_screen->vpos(); + return m_screen->vpos(); } diff --git a/src/mame/video/midzeus.c b/src/mame/video/midzeus.c index 4103c0bbaf9..361d4c76ea5 100644 --- a/src/mame/video/midzeus.c +++ b/src/mame/video/midzeus.c @@ -390,18 +390,18 @@ READ32_MEMBER(midzeus_state::zeus_r) switch (offset & ~1) { case 0xf0: - result = machine().primary_screen->hpos(); + result = m_screen->hpos(); logit = 0; break; case 0xf2: - result = machine().primary_screen->vpos(); + result = m_screen->vpos(); logit = 0; break; case 0xf4: result = 6; - if (machine().primary_screen->vblank()) + if (m_screen->vblank()) result |= 0x800; logit = 0; break; diff --git a/src/mame/video/midzeus2.c b/src/mame/video/midzeus2.c index 8f3a60e41a8..a4f95f98f38 100644 --- a/src/mame/video/midzeus2.c +++ b/src/mame/video/midzeus2.c @@ -437,7 +437,7 @@ READ32_HANDLER( zeus2_r ) /* bits $00080000 is tested in a loop until 0 */ /* bit $00000004 is tested for toggling; probably VBLANK */ result = 0x00; - if (space.machine().primary_screen->vblank()) + if (state->m_screen->vblank()) result |= 0x04; break; @@ -448,7 +448,7 @@ READ32_HANDLER( zeus2_r ) case 0x54: /* both upper 16 bits and lower 16 bits seem to be used as vertical counters */ - result = (space.machine().primary_screen->vpos() << 16) | space.machine().primary_screen->vpos(); + result = (state->m_screen->vpos() << 16) | state->m_screen->vpos(); break; } diff --git a/src/mame/video/model2.c b/src/mame/video/model2.c index b5bb9437bf0..f2eee94c21a 100644 --- a/src/mame/video/model2.c +++ b/src/mame/video/model2.c @@ -2699,7 +2699,7 @@ void model2_state::model2_exit() VIDEO_START_MEMBER(model2_state,model2) { - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); int width = visarea.width(); int height = visarea.height(); diff --git a/src/mame/video/model3.c b/src/mame/video/model3.c index 809fa21f649..d6ad3dcecac 100644 --- a/src/mame/video/model3.c +++ b/src/mame/video/model3.c @@ -117,8 +117,8 @@ void model3_state::video_start() m_poly = poly_alloc(machine(), 4000, sizeof(poly_extra_data), 0); machine().add_notifier(MACHINE_NOTIFY_EXIT, machine_notify_delegate(FUNC(model3_state::model3_exit), this)); - machine().primary_screen->register_screen_bitmap(m_bitmap3d); - machine().primary_screen->register_screen_bitmap(m_zbuffer); + m_screen->register_screen_bitmap(m_bitmap3d); + m_screen->register_screen_bitmap(m_zbuffer); m_m3_char_ram = auto_alloc_array_clear(machine(), UINT64, 0x100000/8); m_m3_tile_ram = auto_alloc_array_clear(machine(), UINT64, 0x8000/8); diff --git a/src/mame/video/moo.c b/src/mame/video/moo.c index 2eef7257e65..0fe8e262232 100644 --- a/src/mame/video/moo.c +++ b/src/mame/video/moo.c @@ -36,7 +36,7 @@ void moo_tile_callback( running_machine &machine, int layer, int *code, int *col VIDEO_START_MEMBER(moo_state,moo) { - assert(machine().primary_screen->format() == BITMAP_FORMAT_RGB32); + assert(m_screen->format() == BITMAP_FORMAT_RGB32); m_alpha_enabled = 0; m_zmask = 0xffff; @@ -50,7 +50,7 @@ VIDEO_START_MEMBER(moo_state,moo) VIDEO_START_MEMBER(moo_state,bucky) { - assert(machine().primary_screen->format() == BITMAP_FORMAT_RGB32); + assert(m_screen->format() == BITMAP_FORMAT_RGB32); m_alpha_enabled = 0; m_zmask = 0x00ff; diff --git a/src/mame/video/mrflea.c b/src/mame/video/mrflea.c index 37a28f4f2d2..273f65ad86a 100644 --- a/src/mame/video/mrflea.c +++ b/src/mame/video/mrflea.c @@ -44,7 +44,7 @@ void mrflea_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect gfx_element *gfx = machine().gfx[0]; const UINT8 *source = m_spriteram; const UINT8 *finish = source + 0x100; - rectangle clip = machine().primary_screen->visible_area(); + rectangle clip = m_screen->visible_area(); clip.max_x -= 24; clip.min_x += 16; diff --git a/src/mame/video/ms32.c b/src/mame/video/ms32.c index 2847752d893..81f84563fb7 100644 --- a/src/mame/video/ms32.c +++ b/src/mame/video/ms32.c @@ -79,9 +79,9 @@ void ms32_state::video_start() /* set up tile layers */ - machine().primary_screen->register_screen_bitmap(m_temp_bitmap_tilemaps); - machine().primary_screen->register_screen_bitmap(m_temp_bitmap_sprites); - machine().primary_screen->register_screen_bitmap(m_temp_bitmap_sprites_pri); // not actually being used for rendering, we embed pri info in the raw colour bitmap + m_screen->register_screen_bitmap(m_temp_bitmap_tilemaps); + m_screen->register_screen_bitmap(m_temp_bitmap_sprites); + m_screen->register_screen_bitmap(m_temp_bitmap_sprites_pri); // not actually being used for rendering, we embed pri info in the raw colour bitmap m_temp_bitmap_tilemaps.fill(0); m_temp_bitmap_sprites.fill(0); diff --git a/src/mame/video/mustache.c b/src/mame/video/mustache.c index 50bdb04aa6e..14ff003bcbf 100644 --- a/src/mame/video/mustache.c +++ b/src/mame/video/mustache.c @@ -100,7 +100,7 @@ void mustache_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec { rectangle clip = cliprect; gfx_element *gfx = machine().gfx[1]; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); UINT8 *spriteram = m_spriteram; int offs; diff --git a/src/mame/video/mystston.c b/src/mame/video/mystston.c index 4be4fe0b77a..784384c47f5 100644 --- a/src/mame/video/mystston.c +++ b/src/mame/video/mystston.c @@ -56,7 +56,7 @@ TIMER_CALLBACK_MEMBER(mystston_state::interrupt_callback) scanline = FIRST_INT_VPOS; /* the vertical synch chain is clocked by H256 -- this is probably not important, but oh well */ - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(scanline - 1, INT_HPOS), scanline); + m_interrupt_timer->adjust(m_screen->time_until_pos(scanline - 1, INT_HPOS), scanline); } @@ -231,7 +231,7 @@ VIDEO_START_MEMBER(mystston_state,mystston) VIDEO_RESET_MEMBER(mystston_state,mystston) { - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(FIRST_INT_VPOS - 1, INT_HPOS), FIRST_INT_VPOS); + m_interrupt_timer->adjust(m_screen->time_until_pos(FIRST_INT_VPOS - 1, INT_HPOS), FIRST_INT_VPOS); } diff --git a/src/mame/video/n8080.c b/src/mame/video/n8080.c index ee801ee5ffb..299d595bdaf 100644 --- a/src/mame/video/n8080.c +++ b/src/mame/video/n8080.c @@ -341,7 +341,7 @@ void n8080_state::screen_eof_helifire(screen_device &screen, bool state) // falling edge if (!state) { - int n = (machine().primary_screen->frame_number() >> 1) % sizeof m_helifire_LSFR; + int n = (m_screen->frame_number() >> 1) % sizeof m_helifire_LSFR; int i; @@ -358,7 +358,7 @@ void n8080_state::screen_eof_helifire(screen_device &screen, bool state) G |= B; } - if (machine().primary_screen->frame_number() & 0x04) + if (m_screen->frame_number() & 0x04) { R |= G; } diff --git a/src/mame/video/namcos22.c b/src/mame/video/namcos22.c index 2feccb3aa44..74ad23d5683 100644 --- a/src/mame/video/namcos22.c +++ b/src/mame/video/namcos22.c @@ -1800,8 +1800,8 @@ READ32_MEMBER(namcos22_state::namcos22_tilemapattr_r) UINT16 lo,hi = (m_tilemapattr[offset] & 0xffff0000) >> 16; // assume current scanline, 0x1ff if in vblank (used in alpinesa) // or maybe relative to posirq? - if (machine().primary_screen->vblank()) lo = 0x1ff; - else lo = machine().primary_screen->vpos() >> 1; + if (m_screen->vblank()) lo = 0x1ff; + else lo = m_screen->vpos() >> 1; // dirtdash has slowdowns if high bit is clear, why?? return hi<<16 | lo | 0x8000; } diff --git a/src/mame/video/naughtyb.c b/src/mame/video/naughtyb.c index b5075752a94..925f2d7d834 100644 --- a/src/mame/video/naughtyb.c +++ b/src/mame/video/naughtyb.c @@ -104,7 +104,7 @@ void naughtyb_state::video_start() m_palreg = m_bankreg = 0; /* Naughty Boy has a virtual screen twice as large as the visible screen */ - m_tmpbitmap.allocate(68*8,28*8,machine().primary_screen->format()); + m_tmpbitmap.allocate(68*8,28*8,m_screen->format()); } diff --git a/src/mame/video/nbmj8891.c b/src/mame/video/nbmj8891.c index 8131584aa6b..40ecac9181f 100644 --- a/src/mame/video/nbmj8891.c +++ b/src/mame/video/nbmj8891.c @@ -268,8 +268,8 @@ void nbmj8891_state::nbmj8891_vramflip(int vram) UINT8 color1, color2; UINT8 *vidram; - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); if (m_flipscreen == m_flipscreen_old) return; @@ -293,13 +293,13 @@ void nbmj8891_state::nbmj8891_vramflip(int vram) void nbmj8891_state::update_pixel0(int x, int y) { - UINT8 color = m_videoram0[(y * machine().primary_screen->width()) + x]; + UINT8 color = m_videoram0[(y * m_screen->width()) + x]; m_tmpbitmap0.pix16(y, x) = color; } void nbmj8891_state::update_pixel1(int x, int y) { - UINT8 color = m_videoram1[(y * machine().primary_screen->width()) + x]; + UINT8 color = m_videoram1[(y * m_screen->width()) + x]; m_tmpbitmap1.pix16(y, x) = (color == 0x7f) ? 0xff : color; } @@ -318,7 +318,7 @@ void nbmj8891_state::device_timer(emu_timer &timer, device_timer_id id, int para void nbmj8891_state::nbmj8891_gfxdraw() { UINT8 *GFX = memregion("gfx1")->base(); - int width = machine().primary_screen->width(); + int width = m_screen->width(); int x, y; int dx1, dx2, dy1, dy2; @@ -482,10 +482,10 @@ VIDEO_START_MEMBER(nbmj8891_state,nbmj8891_1layer) { UINT8 *CLUT = memregion("protection")->base(); int i; - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); - machine().primary_screen->register_screen_bitmap(m_tmpbitmap0); + m_screen->register_screen_bitmap(m_tmpbitmap0); m_videoram0 = auto_alloc_array(machine(), UINT8, width * height); m_palette = auto_alloc_array(machine(), UINT8, 0x200); m_clut = auto_alloc_array(machine(), UINT8, 0x800); @@ -498,11 +498,11 @@ VIDEO_START_MEMBER(nbmj8891_state,nbmj8891_1layer) void nbmj8891_state::video_start() { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); - machine().primary_screen->register_screen_bitmap(m_tmpbitmap0); - machine().primary_screen->register_screen_bitmap(m_tmpbitmap1); + m_screen->register_screen_bitmap(m_tmpbitmap0); + m_screen->register_screen_bitmap(m_tmpbitmap1); m_videoram0 = auto_alloc_array(machine(), UINT8, width * height); m_videoram1 = auto_alloc_array(machine(), UINT8, width * height); m_palette = auto_alloc_array(machine(), UINT8, 0x200); diff --git a/src/mame/video/nbmj8900.c b/src/mame/video/nbmj8900.c index 9bbde3dfbd0..53e59aae2fe 100644 --- a/src/mame/video/nbmj8900.c +++ b/src/mame/video/nbmj8900.c @@ -160,8 +160,8 @@ void nbmj8900_state::nbmj8900_vramflip(int vram) int x, y; unsigned char color1, color2; unsigned char *vidram; - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); if (m_flipscreen == m_flipscreen_old) return; @@ -364,11 +364,11 @@ void nbmj8900_state::nbmj8900_gfxdraw() ******************************************************************************/ void nbmj8900_state::video_start() { - m_screen_width = machine().primary_screen->width(); - m_screen_height = machine().primary_screen->height(); + m_screen_width = m_screen->width(); + m_screen_height = m_screen->height(); - machine().primary_screen->register_screen_bitmap(m_tmpbitmap0); - machine().primary_screen->register_screen_bitmap(m_tmpbitmap1); + m_screen->register_screen_bitmap(m_tmpbitmap0); + m_screen->register_screen_bitmap(m_tmpbitmap1); m_videoram0 = auto_alloc_array(machine(), UINT8, m_screen_width * m_screen_height); m_videoram1 = auto_alloc_array(machine(), UINT8, m_screen_width * m_screen_height); m_palette = auto_alloc_array(machine(), UINT8, 0x200); diff --git a/src/mame/video/nbmj8991.c b/src/mame/video/nbmj8991.c index ce7ea9c338a..dc38cb11d07 100644 --- a/src/mame/video/nbmj8991.c +++ b/src/mame/video/nbmj8991.c @@ -131,8 +131,8 @@ void nbmj8991_state::nbmj8991_vramflip() { int x, y; UINT8 color1, color2; - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); if (m_flipscreen == m_flipscreen_old) return; @@ -159,7 +159,7 @@ void nbmj8991_state::nbmj8991_vramflip() void nbmj8991_state::update_pixel(int x, int y) { - UINT8 color = m_videoram[(y * machine().primary_screen->width()) + x]; + UINT8 color = m_videoram[(y * m_screen->width()) + x]; m_tmpbitmap.pix16(y, x) = color; } @@ -171,7 +171,7 @@ TIMER_CALLBACK_MEMBER(nbmj8991_state::blitter_timer_callback) void nbmj8991_state::nbmj8991_gfxdraw() { UINT8 *GFX = memregion("gfx1")->base(); - int width = machine().primary_screen->width(); + int width = m_screen->width(); int x, y; int dx1, dx2, dy; @@ -279,10 +279,10 @@ void nbmj8991_state::nbmj8991_gfxdraw() ******************************************************************************/ void nbmj8991_state::video_start() { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); - machine().primary_screen->register_screen_bitmap(m_tmpbitmap); + m_screen->register_screen_bitmap(m_tmpbitmap); m_videoram = auto_alloc_array(machine(), UINT8, width * height); m_clut = auto_alloc_array(machine(), UINT8, 0x800); memset(m_videoram, 0x00, (width * height * sizeof(UINT8))); @@ -294,8 +294,8 @@ UINT32 nbmj8991_state::screen_update_nbmj8991_type1(screen_device &screen, bitma if (m_screen_refresh) { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); m_screen_refresh = 0; diff --git a/src/mame/video/nbmj9195.c b/src/mame/video/nbmj9195.c index cd8185c1a94..7b65fdde23d 100644 --- a/src/mame/video/nbmj9195.c +++ b/src/mame/video/nbmj9195.c @@ -96,7 +96,7 @@ void nbmj9195_state::nbmj9195_blitter_w(int offset, int data, int vram) break; case 0x01: m_scrollx[vram] = (m_scrollx[vram] & 0x0100) | data; break; case 0x02: m_scrollx[vram] = (m_scrollx[vram] & 0x00ff) | ((data << 8) & 0x0100); - new_line = machine().primary_screen->vpos(); + new_line = m_screen->vpos(); if (m_flipscreen[vram]) { for ( ; m_scanline[vram] < new_line; m_scanline[vram]++) @@ -148,8 +148,8 @@ void nbmj9195_state::nbmj9195_vramflip(int vram) { int x, y; UINT16 color1, color2; - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); if (m_flipscreen[vram] == m_flipscreen_old[vram]) return; @@ -184,7 +184,7 @@ void nbmj9195_state::nbmj9195_vramflip(int vram) void nbmj9195_state::update_pixel(int vram, int x, int y) { - UINT16 color = m_videoram[vram][(y * machine().primary_screen->width()) + x]; + UINT16 color = m_videoram[vram][(y * m_screen->width()) + x]; m_tmpbitmap[vram].pix16(y, x) = color; } @@ -203,7 +203,7 @@ void nbmj9195_state::device_timer(emu_timer &timer, device_timer_id id, int para void nbmj9195_state::nbmj9195_gfxdraw(int vram) { UINT8 *GFX = memregion("gfx1")->base(); - int width = machine().primary_screen->width(); + int width = m_screen->width(); int x, y; int dx1, dx2, dy; @@ -379,10 +379,10 @@ WRITE8_MEMBER(nbmj9195_state::nbmj9195_clut_1_w){ nbmj9195_clut_w(offset, data, ******************************************************************************/ VIDEO_START_MEMBER(nbmj9195_state,nbmj9195_1layer) { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); - machine().primary_screen->register_screen_bitmap(m_tmpbitmap[0]); + m_screen->register_screen_bitmap(m_tmpbitmap[0]); m_videoram[0] = auto_alloc_array_clear(machine(), UINT16, width * height); m_palette = auto_alloc_array(machine(), UINT8, 0x200); m_clut[0] = auto_alloc_array(machine(), UINT8, 0x1000); @@ -393,11 +393,11 @@ VIDEO_START_MEMBER(nbmj9195_state,nbmj9195_1layer) void nbmj9195_state::video_start() { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); - machine().primary_screen->register_screen_bitmap(m_tmpbitmap[0]); - machine().primary_screen->register_screen_bitmap(m_tmpbitmap[1]); + m_screen->register_screen_bitmap(m_tmpbitmap[0]); + m_screen->register_screen_bitmap(m_tmpbitmap[1]); m_videoram[0] = auto_alloc_array_clear(machine(), UINT16, width * height); m_videoram[1] = auto_alloc_array_clear(machine(), UINT16, width * height); m_palette = auto_alloc_array(machine(), UINT8, 0x200); @@ -410,11 +410,11 @@ void nbmj9195_state::video_start() VIDEO_START_MEMBER(nbmj9195_state,nbmj9195_nb22090) { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); - machine().primary_screen->register_screen_bitmap(m_tmpbitmap[0]); - machine().primary_screen->register_screen_bitmap(m_tmpbitmap[1]); + m_screen->register_screen_bitmap(m_tmpbitmap[0]); + m_screen->register_screen_bitmap(m_tmpbitmap[1]); m_videoram[0] = auto_alloc_array_clear(machine(), UINT16, width * height); m_videoram[1] = auto_alloc_array_clear(machine(), UINT16, width * height); m_videoworkram[0] = auto_alloc_array_clear(machine(), UINT16, width * height); diff --git a/src/mame/video/neogeo.c b/src/mame/video/neogeo.c index 1f8c4a0e830..2b2c07959db 100644 --- a/src/mame/video/neogeo.c +++ b/src/mame/video/neogeo.c @@ -220,7 +220,7 @@ TIMER_CALLBACK_MEMBER(neogeo_state::auto_animation_timer_callback) else m_auto_animation_frame_counter = m_auto_animation_frame_counter - 1; - m_auto_animation_timer->adjust(machine().primary_screen->time_until_pos(NEOGEO_VSSTART)); + m_auto_animation_timer->adjust(m_screen->time_until_pos(NEOGEO_VSSTART)); } @@ -232,7 +232,7 @@ void neogeo_state::create_auto_animation_timer( ) void neogeo_state::start_auto_animation_timer( ) { - m_auto_animation_timer->adjust(machine().primary_screen->time_until_pos(NEOGEO_VSSTART)); + m_auto_animation_timer->adjust(m_screen->time_until_pos(NEOGEO_VSSTART)); } @@ -627,14 +627,14 @@ TIMER_CALLBACK_MEMBER(neogeo_state::sprite_line_timer_callback) /* we are at the beginning of a scanline - we need to draw the previous scanline and parse the sprites on the current one */ if (scanline != 0) - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); parse_sprites(scanline); /* let's come back at the beginning of the next line */ scanline = (scanline + 1) % NEOGEO_VTOTAL; - m_sprite_line_timer->adjust(machine().primary_screen->time_until_pos(scanline), scanline); + m_sprite_line_timer->adjust(m_screen->time_until_pos(scanline), scanline); } @@ -646,7 +646,7 @@ void neogeo_state::create_sprite_line_timer( ) void neogeo_state::start_sprite_line_timer( ) { - m_sprite_line_timer->adjust(machine().primary_screen->time_until_pos(0)); + m_sprite_line_timer->adjust(m_screen->time_until_pos(0)); } @@ -741,7 +741,7 @@ UINT16 neogeo_state::get_video_control( ) */ /* the vertical counter chain goes from 0xf8 - 0x1ff */ - v_counter = machine().primary_screen->vpos() + 0x100; + v_counter = m_screen->vpos() + 0x100; if (v_counter >= 0x200) v_counter = v_counter - NEOGEO_VTOTAL; diff --git a/src/mame/video/ninjakd2.c b/src/mame/video/ninjakd2.c index c42f14c4a12..252d63fdbf9 100644 --- a/src/mame/video/ninjakd2.c +++ b/src/mame/video/ninjakd2.c @@ -127,7 +127,7 @@ void ninjakd2_state::video_init_common(UINT32 vram_alloc_size) m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ninjakd2_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); m_fg_tilemap->set_transparent_pen(0xf); - machine().primary_screen->register_screen_bitmap(m_sprites_bitmap); + m_screen->register_screen_bitmap(m_sprites_bitmap); m_sprites_updated = 0; m_robokid_sprites = 0; diff --git a/src/mame/video/niyanpai.c b/src/mame/video/niyanpai.c index d9576d4087d..0db3cb9e775 100644 --- a/src/mame/video/niyanpai.c +++ b/src/mame/video/niyanpai.c @@ -123,8 +123,8 @@ void niyanpai_state::niyanpai_vramflip(int vram) { int x, y; UINT16 color1, color2; - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); if (m_flipscreen[vram] == m_flipscreen_old[vram]) return; @@ -156,7 +156,7 @@ void niyanpai_state::niyanpai_vramflip(int vram) void niyanpai_state::update_pixel(int vram, int x, int y) { - UINT16 color = m_videoram[vram][(y * machine().primary_screen->width()) + x]; + UINT16 color = m_videoram[vram][(y * m_screen->width()) + x]; m_tmpbitmap[vram].pix16(y, x) = color; } @@ -175,7 +175,7 @@ void niyanpai_state::device_timer(emu_timer &timer, device_timer_id id, int para void niyanpai_state::niyanpai_gfxdraw(int vram) { UINT8 *GFX = memregion("gfx1")->base(); - int width = machine().primary_screen->width(); + int width = m_screen->width(); int x, y; int dx1, dx2, dy; @@ -353,12 +353,12 @@ WRITE16_MEMBER(niyanpai_state::niyanpai_clutsel_2_w){ niyanpai_clutsel_w(2, data ******************************************************************************/ void niyanpai_state::video_start() { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); - machine().primary_screen->register_screen_bitmap(m_tmpbitmap[0]); - machine().primary_screen->register_screen_bitmap(m_tmpbitmap[1]); - machine().primary_screen->register_screen_bitmap(m_tmpbitmap[2]); + m_screen->register_screen_bitmap(m_tmpbitmap[0]); + m_screen->register_screen_bitmap(m_tmpbitmap[1]); + m_screen->register_screen_bitmap(m_tmpbitmap[2]); m_videoram[0] = auto_alloc_array_clear(machine(), UINT16, width * height); m_videoram[1] = auto_alloc_array_clear(machine(), UINT16, width * height); m_videoram[2] = auto_alloc_array_clear(machine(), UINT16, width * height); diff --git a/src/mame/video/ojankohs.c b/src/mame/video/ojankohs.c index 0281cd3fb4d..3c450ce567f 100644 --- a/src/mame/video/ojankohs.c +++ b/src/mame/video/ojankohs.c @@ -270,7 +270,7 @@ VIDEO_START_MEMBER(ojankohs_state,ojankoy) VIDEO_START_MEMBER(ojankohs_state,ojankoc) { - machine().primary_screen->register_screen_bitmap(m_tmpbitmap); + m_screen->register_screen_bitmap(m_tmpbitmap); m_videoram.allocate(0x8000); m_paletteram.allocate(0x20); diff --git a/src/mame/video/pacland.c b/src/mame/video/pacland.c index 1af635c54c0..b492dbdde88 100644 --- a/src/mame/video/pacland.c +++ b/src/mame/video/pacland.c @@ -192,7 +192,7 @@ void pacland_state::video_start() { int color; - machine().primary_screen->register_screen_bitmap(m_fg_bitmap); + m_screen->register_screen_bitmap(m_fg_bitmap); m_fg_bitmap.fill(0xffff); m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(pacland_state::get_bg_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32); diff --git a/src/mame/video/paradise.c b/src/mame/video/paradise.c index a666ca96d98..e9c6a9fa025 100644 --- a/src/mame/video/paradise.c +++ b/src/mame/video/paradise.c @@ -157,7 +157,7 @@ void paradise_state::video_start() m_tilemap_2 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(paradise_state::get_tile_info_2),this), TILEMAP_SCAN_ROWS, 8, 8, 0x20, 0x20); /* pixmap */ - machine().primary_screen->register_screen_bitmap(m_tmpbitmap); + m_screen->register_screen_bitmap(m_tmpbitmap); m_tilemap_0->set_transparent_pen(0x0f); m_tilemap_1->set_transparent_pen(0xff); diff --git a/src/mame/video/pastelg.c b/src/mame/video/pastelg.c index 157b1585451..1e5dff4119c 100644 --- a/src/mame/video/pastelg.c +++ b/src/mame/video/pastelg.c @@ -123,8 +123,8 @@ void pastelg_state::pastelg_vramflip() { int x, y; UINT8 color1, color2; - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); if (m_flipscreen == m_flipscreen_old) return; @@ -158,7 +158,7 @@ void pastelg_state::device_timer(emu_timer &timer, device_timer_id id, int param void pastelg_state::pastelg_gfxdraw() { UINT8 *GFX = memregion("gfx1")->base(); - int width = machine().primary_screen->width(); + int width = m_screen->width(); int x, y; int dx, dy; @@ -284,8 +284,8 @@ void pastelg_state::pastelg_gfxdraw() ******************************************************************************/ void pastelg_state::video_start() { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); m_videoram = auto_alloc_array_clear(machine(), UINT8, width * height); m_clut = auto_alloc_array(machine(), UINT8, 0x10); diff --git a/src/mame/video/policetr.c b/src/mame/video/policetr.c index c3040b6602e..83f75ede2bc 100644 --- a/src/mame/video/policetr.c +++ b/src/mame/video/policetr.c @@ -257,8 +257,8 @@ WRITE32_MEMBER(policetr_state::policetr_video_w) READ32_MEMBER(policetr_state::policetr_video_r) { int inputval; - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); /* the value read is based on the latch */ switch (m_video_latch) diff --git a/src/mame/video/popper.c b/src/mame/video/popper.c index b60e63196e3..bd5588750da 100644 --- a/src/mame/video/popper.c +++ b/src/mame/video/popper.c @@ -178,7 +178,7 @@ void popper_state::video_start() m_ol_p0_tilemap->set_transmask(0, 0x0f, 0x0e); m_ol_p0_tilemap->set_transmask(1, 0x0e, 0x0f); - m_tilemap_clip = machine().primary_screen->visible_area(); + m_tilemap_clip = m_screen->visible_area(); } void popper_state::draw_sprites( bitmap_ind16 &bitmap,const rectangle &cliprect ) diff --git a/src/mame/video/powerins.c b/src/mame/video/powerins.c index 88183f815c8..b6b58f87199 100644 --- a/src/mame/video/powerins.c +++ b/src/mame/video/powerins.c @@ -253,8 +253,8 @@ void powerins_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect UINT16 *source = m_spriteram + 0x8000/2; UINT16 *finish = m_spriteram + 0x9000/2; - int screen_w = machine().primary_screen->width(); - int screen_h = machine().primary_screen->height(); + int screen_w = m_screen->width(); + int screen_h = m_screen->height(); for ( ; source < finish; source += 16/2 ) { diff --git a/src/mame/video/powervr2.c b/src/mame/video/powervr2.c index 46bc6a5ccc7..21e82f7e3bf 100644 --- a/src/mame/video/powervr2.c +++ b/src/mame/video/powervr2.c @@ -1132,8 +1132,8 @@ WRITE32_MEMBER( powervr2_device::spg_vblank_int_w ) vbin_timer->adjust(attotime::never); vbout_timer->adjust(attotime::never); - vbin_timer->adjust(space.machine().primary_screen->time_until_pos(spg_vblank_int & 0x3ff)); - vbout_timer->adjust(space.machine().primary_screen->time_until_pos((spg_vblank_int >> 16) & 0x3ff)); + vbin_timer->adjust(m_screen->time_until_pos(spg_vblank_int & 0x3ff)); + vbout_timer->adjust(m_screen->time_until_pos((spg_vblank_int >> 16) & 0x3ff)); } READ32_MEMBER( powervr2_device::spg_hblank_r ) @@ -1234,19 +1234,19 @@ WRITE32_MEMBER( powervr2_device::pal_ram_ctrl_w ) READ32_MEMBER( powervr2_device::spg_status_r ) { - UINT32 fieldnum = (machine().primary_screen->frame_number() & 1) ? 1 : 0; + UINT32 fieldnum = (m_screen->frame_number() & 1) ? 1 : 0; - UINT32 vsync = machine().primary_screen->vblank() ? 1 : 0; + UINT32 vsync = m_screen->vblank() ? 1 : 0; if(vo_control & 2) { vsync^=1; } - UINT32 hsync = machine().primary_screen->hblank() ? 1 : 0; + UINT32 hsync = m_screen->hblank() ? 1 : 0; if(vo_control & 1) { hsync^=1; } /* FIXME: following is just a wild guess */ - UINT32 blank = (machine().primary_screen->vblank() | space.machine().primary_screen->hblank()) ? 0 : 1; + UINT32 blank = (m_screen->vblank() | m_screen->hblank()) ? 0 : 1; if(vo_control & 4) { blank^=1; } - return (vsync << 13) | (hsync << 12) | (blank << 11) | (fieldnum << 10) | (machine().primary_screen->vpos() & 0x3ff); + return (vsync << 13) | (hsync << 12) | (blank << 11) | (fieldnum << 10) | (m_screen->vpos() & 0x3ff); } @@ -1457,14 +1457,14 @@ void powervr2_device::update_screen_format() INT32 vo_horz_start_pos = vo_startx & 0x3ff; INT32 vo_vert_start_pos_f1 = vo_starty & 0x3ff; - rectangle visarea = machine().primary_screen->visible_area(); + rectangle visarea = m_screen->visible_area(); /* FIXME: right visible area calculations aren't known yet*/ visarea.min_x = 0; visarea.max_x = ((spg_hbstart - spg_hbend - vo_horz_start_pos) <= 0x180 ? 320 : 640) - 1; visarea.min_y = 0; visarea.max_y = ((spg_vbstart - spg_vbend - vo_vert_start_pos_f1) <= 0x100 ? 240 : 480) - 1; - machine().primary_screen->configure(spg_hbstart, spg_vbstart, visarea, machine().primary_screen->frame_period().attoseconds ); + m_screen->configure(spg_hbstart, spg_vbstart, visarea, m_screen->frame_period().attoseconds ); } @@ -2754,14 +2754,14 @@ TIMER_CALLBACK_MEMBER(powervr2_device::vbin) { irq_cb(VBL_IN_IRQ); - vbin_timer->adjust(machine().primary_screen->time_until_pos(spg_vblank_int & 0x3ff)); + vbin_timer->adjust(m_screen->time_until_pos(spg_vblank_int & 0x3ff)); } TIMER_CALLBACK_MEMBER(powervr2_device::vbout) { irq_cb(VBL_OUT_IRQ); - vbout_timer->adjust(machine().primary_screen->time_until_pos((spg_vblank_int >> 16) & 0x3ff)); + vbout_timer->adjust(m_screen->time_until_pos((spg_vblank_int >> 16) & 0x3ff)); } TIMER_CALLBACK_MEMBER(powervr2_device::hbin) @@ -2789,7 +2789,7 @@ TIMER_CALLBACK_MEMBER(powervr2_device::hbin) next_y = spg_hblank_int & 0x3ff; } - hbin_timer->adjust(machine().primary_screen->time_until_pos(scanline, ((spg_hblank_int >> 16) & 0x3ff)-1)); + hbin_timer->adjust(m_screen->time_until_pos(scanline, ((spg_hblank_int >> 16) & 0x3ff)-1)); } @@ -2983,6 +2983,7 @@ void powervr2_device::pvr_dma_execute(address_space &space) powervr2_device::powervr2_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) : device_t(mconfig, POWERVR2, "PowerVR 2", tag, owner, clock, "powervr2", __FILE__), + device_video_interface(mconfig, *this), irq_cb(*this) { } @@ -3139,9 +3140,9 @@ void powervr2_device::device_reset() renderselect= -1; grabsel=0; - vbout_timer->adjust(machine().primary_screen->time_until_pos((spg_vblank_int >> 16) & 0x3ff)); - vbin_timer->adjust(machine().primary_screen->time_until_pos(spg_vblank_int & 0x3ff)); - hbin_timer->adjust(machine().primary_screen->time_until_pos(0, ((spg_hblank_int >> 16) & 0x3ff)-1)); + vbout_timer->adjust(m_screen->time_until_pos((spg_vblank_int >> 16) & 0x3ff)); + vbin_timer->adjust(m_screen->time_until_pos(spg_vblank_int & 0x3ff)); + hbin_timer->adjust(m_screen->time_until_pos(0, ((spg_hblank_int >> 16) & 0x3ff)-1)); scanline = 0; next_y = 0; diff --git a/src/mame/video/powervr2.h b/src/mame/video/powervr2.h index b46c5916d29..f6b18632e8e 100644 --- a/src/mame/video/powervr2.h +++ b/src/mame/video/powervr2.h @@ -5,7 +5,8 @@ MCFG_DEVICE_ADD(_tag, POWERVR2, 0) \ downcast(device)->set_irq_cb(DEVCB2_ ## _irq_cb); -class powervr2_device : public device_t +class powervr2_device : public device_t, + public device_video_interface { public: enum { NUM_BUFFERS = 4 }; diff --git a/src/mame/video/ppu2c0x.c b/src/mame/video/ppu2c0x.c index 100404e6316..d533c497ec1 100644 --- a/src/mame/video/ppu2c0x.c +++ b/src/mame/video/ppu2c0x.c @@ -500,7 +500,7 @@ void ppu2c0x_device::device_timer(emu_timer &timer, device_timer_id id, int para /* increment our scanline count */ m_scanline++; - // logerror("starting scanline %d (MAME %d, beam %d)\n", m_scanline, device->machine().primary_screen->vpos(), device->machine().primary_screen->hpos()); + // logerror("starting scanline %d (MAME %d, beam %d)\n", m_scanline, device->m_screen->vpos(), device->m_screen->hpos()); /* Note: this is called at the _end_ of each scanline */ if (m_scanline == PPU_VBLANK_FIRST_SCANLINE) diff --git a/src/mame/video/psikyo.c b/src/mame/video/psikyo.c index 7e23d4b9255..70534a27282 100644 --- a/src/mame/video/psikyo.c +++ b/src/mame/video/psikyo.c @@ -262,8 +262,8 @@ void psikyo_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, co UINT8 *TILES = memregion("spritelut")->base(); // Sprites LUT int TILES_LEN = memregion("spritelut")->bytes(); - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); /* Exit if sprites are disabled */ if (spritelist[BYTE_XOR_BE((0x800 - 2) / 2)] & 1) return; @@ -379,8 +379,8 @@ void psikyo_state::draw_sprites_bootleg( screen_device &screen, bitmap_ind16 &bi UINT8 *TILES = memregion("spritelut")->base(); // Sprites LUT int TILES_LEN = memregion("spritelut")->bytes(); - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); /* Exit if sprites are disabled */ if (spritelist[BYTE_XOR_BE((0x800 - 2) / 2)] & 1) diff --git a/src/mame/video/psikyo4.c b/src/mame/video/psikyo4.c index 1f0e46dd7aa..f6d8e7ec05d 100644 --- a/src/mame/video/psikyo4.c +++ b/src/mame/video/psikyo4.c @@ -98,7 +98,7 @@ void psikyo4_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprec if ((!scr && flipscreen1) || (scr && flipscreen2)) { - ypos = machine().primary_screen->visible_area().max_y + 1 - ypos - high * 16; /* Screen Height depends on game */ + ypos = m_screen->visible_area().max_y + 1 - ypos - high * 16; /* Screen Height depends on game */ xpos = 40 * 8 - xpos - wide * 16; flipx = !flipx; flipy = !flipy; diff --git a/src/mame/video/psikyosh.c b/src/mame/video/psikyosh.c index aa763e49919..a463b7cd065 100644 --- a/src/mame/video/psikyosh.c +++ b/src/mame/video/psikyosh.c @@ -1210,7 +1210,7 @@ void psikyosh_state::video_start() { UINT8 *alphatable = m_alphatable; - machine().primary_screen->register_screen_bitmap(m_z_bitmap); /* z-buffer */ + m_screen->register_screen_bitmap(m_z_bitmap); /* z-buffer */ m_zoom_bitmap.allocate(16*16, 16*16); /* temp buffer for assembling sprites */ m_bg_bitmap.allocate(32*16, 32*16); /* temp buffer for assembling tilemaps */ m_bg_zoom = auto_alloc_array(machine(), UINT16, 256); diff --git a/src/mame/video/qix.c b/src/mame/video/qix.c index f52a7fe7c61..59b00c419fc 100644 --- a/src/mame/video/qix.c +++ b/src/mame/video/qix.c @@ -115,7 +115,7 @@ WRITE8_MEMBER(qix_state::qix_videoram_w) { /* update the screen in case the game is writing "behind" the beam - Zookeeper likes to do this */ - machine().primary_screen->update_now(); + m_screen->update_now(); /* add in the upper bit of the address latch */ offset += (m_videoram_address[0] & 0x80) << 8; @@ -129,7 +129,7 @@ WRITE8_MEMBER(qix_state::slither_videoram_w) { /* update the screen in case the game is writing "behind" the beam - Zookeeper likes to do this */ - machine().primary_screen->update_now(); + m_screen->update_now(); /* add in the upper bit of the address latch */ offset += (m_videoram_address[0] & 0x80) << 8; @@ -166,7 +166,7 @@ READ8_MEMBER(qix_state::qix_addresslatch_r) WRITE8_MEMBER(qix_state::qix_addresslatch_w) { /* update the screen in case the game is writing "behind" the beam */ - machine().primary_screen->update_now(); + m_screen->update_now(); /* compute the value at the address latch */ offset = (m_videoram_address[0] << 8) | m_videoram_address[1]; @@ -179,7 +179,7 @@ WRITE8_MEMBER(qix_state::qix_addresslatch_w) WRITE8_MEMBER(qix_state::slither_addresslatch_w) { /* update the screen in case the game is writing "behind" the beam */ - machine().primary_screen->update_now(); + m_screen->update_now(); /* compute the value at the address latch */ offset = (m_videoram_address[0] << 8) | m_videoram_address[1]; @@ -207,7 +207,7 @@ WRITE8_MEMBER(qix_state::qix_paletteram_w) /* trigger an update if a currently visible pen has changed */ if (((offset >> 8) == m_palette_bank) && (old_data != data)) - machine().primary_screen->update_now(); + m_screen->update_now(); } @@ -216,7 +216,7 @@ WRITE8_MEMBER(qix_state::qix_palettebank_w) /* set the bank value */ if (m_palette_bank != (data & 3)) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_palette_bank = data & 3; } diff --git a/src/mame/video/quasar.c b/src/mame/video/quasar.c index 7669ad93ea8..1d62c4c34b1 100644 --- a/src/mame/video/quasar.c +++ b/src/mame/video/quasar.c @@ -96,7 +96,7 @@ VIDEO_START_MEMBER(quasar_state,quasar) m_effectram = auto_alloc_array(machine(), UINT8, 0x400); /* create helper bitmap */ - machine().primary_screen->register_screen_bitmap(m_collision_background); + m_screen->register_screen_bitmap(m_collision_background); /* register save */ save_item(NAME(m_collision_background)); diff --git a/src/mame/video/rallyx.c b/src/mame/video/rallyx.c index e1ea35340d1..46189aeacb0 100644 --- a/src/mame/video/rallyx.c +++ b/src/mame/video/rallyx.c @@ -367,7 +367,7 @@ VIDEO_START_MEMBER(rallyx_state,locomotn) m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(rallyx_state::locomotn_fg_get_tile_info),this), tilemap_mapper_delegate(FUNC(rallyx_state::fg_tilemap_scan),this), 8, 8, 8, 32); /* handle reduced visible area in some games */ - if (machine().primary_screen->visible_area().max_x == 32 * 8 - 1) + if (m_screen->visible_area().max_x == 32 * 8 - 1) { m_bg_tilemap->set_scrolldx(0, 32); m_fg_tilemap->set_scrolldx(0, 32); @@ -386,7 +386,7 @@ VIDEO_START_MEMBER(rallyx_state,commsega) m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(rallyx_state::locomotn_fg_get_tile_info),this), tilemap_mapper_delegate(FUNC(rallyx_state::fg_tilemap_scan),this), 8, 8, 8, 32); /* handle reduced visible area in some games */ - if (machine().primary_screen->visible_area().max_x == 32 * 8 - 1) + if (m_screen->visible_area().max_x == 32 * 8 - 1) { m_bg_tilemap->set_scrolldx(0, 32); m_fg_tilemap->set_scrolldx(0, 32); diff --git a/src/mame/video/realbrk.c b/src/mame/video/realbrk.c index af6a665b98b..0011f874149 100644 --- a/src/mame/video/realbrk.c +++ b/src/mame/video/realbrk.c @@ -209,8 +209,8 @@ void realbrk_state::draw_sprites(bitmap_ind16 &bitmap,const rectangle &cliprect) UINT16 *spriteram16 = m_spriteram; int offs; - int max_x = machine().primary_screen->width(); - int max_y = machine().primary_screen->height(); + int max_x = m_screen->width(); + int max_y = m_screen->height(); rectangle spritetile_clip(0, 31, 0, 31); @@ -371,8 +371,8 @@ void realbrk_state::dai2kaku_draw_sprites(bitmap_ind16 &bitmap,const rectangle & UINT16 *spriteram16 = m_spriteram; int offs; - int max_x = machine().primary_screen->width(); - int max_y = machine().primary_screen->height(); + int max_x = m_screen->width(); + int max_y = m_screen->height(); for ( offs = 0x3000/2; offs < 0x3600/2; offs += 2/2 ) { diff --git a/src/mame/video/rpunch.c b/src/mame/video/rpunch.c index a708eacfb4d..dad804b33ee 100644 --- a/src/mame/video/rpunch.c +++ b/src/mame/video/rpunch.c @@ -62,7 +62,7 @@ TIMER_CALLBACK_MEMBER(rpunch_state::crtc_interrupt_gen) { m_maincpu->set_input_line(1, HOLD_LINE); if (param != 0) - m_crtc_timer->adjust(machine().primary_screen->frame_period() / param, 0, machine().primary_screen->frame_period() / param); + m_crtc_timer->adjust(m_screen->frame_period() / param, 0, m_screen->frame_period() / param); } @@ -149,7 +149,7 @@ WRITE16_MEMBER(rpunch_state::rpunch_crtc_data_w) { /* only register we know about.... */ case 0x0b: - m_crtc_timer->adjust(machine().primary_screen->time_until_vblank_start(), (data == 0xc0) ? 2 : 1); + m_crtc_timer->adjust(m_screen->time_until_vblank_start(), (data == 0xc0) ? 2 : 1); break; default: diff --git a/src/mame/video/segag80r.c b/src/mame/video/segag80r.c index 78392faee35..577b0a6e0b7 100644 --- a/src/mame/video/segag80r.c +++ b/src/mame/video/segag80r.c @@ -332,7 +332,7 @@ WRITE8_MEMBER(segag80r_state::segag80r_video_port_w) READ8_MEMBER(segag80r_state::spaceod_back_port_r) { /* force an update to get the current detection value */ - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); return 0xfe | m_spaceod_bg_detect; } @@ -385,7 +385,7 @@ WRITE8_MEMBER(segag80r_state::spaceod_back_port_w) /* port 3: clears the background detection flag */ case 3: - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_spaceod_bg_detect = 0; break; diff --git a/src/mame/video/segag80v.c b/src/mame/video/segag80v.c index bd307ab11c3..05c34d0fb33 100644 --- a/src/mame/video/segag80v.c +++ b/src/mame/video/segag80v.c @@ -327,8 +327,8 @@ void segag80v_state::video_start() { assert_always(m_vectorram.bytes() != 0, "vectorram==0"); - m_min_x =machine().primary_screen->visible_area().min_x; - m_min_y =machine().primary_screen->visible_area().min_y; + m_min_x =m_screen->visible_area().min_x; + m_min_y =m_screen->visible_area().min_y; VIDEO_START_CALL_LEGACY(vector); } diff --git a/src/mame/video/segaic16.c b/src/mame/video/segaic16.c index f2e21258bee..302e9ac0a49 100644 --- a/src/mame/video/segaic16.c +++ b/src/mame/video/segaic16.c @@ -372,7 +372,8 @@ Quick review of the system16 hardware: const device_type SEGAIC16VID = &device_creator; segaic16_video_device::segaic16_video_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) - : device_t(mconfig, SEGAIC16VID, "Sega 16-bit Video", tag, owner, clock, "segaic16_video", __FILE__) + : device_t(mconfig, SEGAIC16VID, "Sega 16-bit Video", tag, owner, clock, "segaic16_video", __FILE__), + device_video_interface(mconfig, *this) { } @@ -404,12 +405,12 @@ void segaic16_video_device::device_reset() * *************************************/ -void segaic16_video_device::segaic16_set_display_enable(screen_device &screen, int enable) +void segaic16_video_device::segaic16_set_display_enable(int enable) { enable = (enable != 0); if (segaic16_display_enable != enable) { - screen.update_partial(screen.vpos()); + m_screen->update_partial(m_screen->vpos()); segaic16_display_enable = enable; } } @@ -1000,7 +1001,7 @@ TIMER_CALLBACK_MEMBER( segaic16_video_device::segaic16_tilemap_16b_latch_values } /* set a timer to do this again next frame */ - info->latch_timer->adjust(machine().primary_screen->time_until_pos(261), param); + info->latch_timer->adjust(m_screen->time_until_pos(261), param); } @@ -1166,16 +1167,15 @@ void segaic16_video_device::segaic16_tilemap_reset(screen_device &screen) * *************************************/ -void segaic16_video_device::segaic16_tilemap_set_bank(running_machine &machine, int which, int banknum, int offset) +void segaic16_video_device::segaic16_tilemap_set_bank(int which, int banknum, int offset) { struct tilemap_info *info = &bg_tilemap[which]; if (info->bank[banknum] != offset) { - screen_device &screen = *machine.primary_screen; - screen.update_partial(screen.vpos()); + m_screen->update_partial(m_screen->vpos()); info->bank[banknum] = offset; - machine.tilemap().mark_all_dirty(); + machine().tilemap().mark_all_dirty(); } } @@ -1187,7 +1187,7 @@ void segaic16_video_device::segaic16_tilemap_set_bank(running_machine &machine, * *************************************/ -void segaic16_video_device::segaic16_tilemap_set_flip(running_machine &machine, int which, int flip) +void segaic16_video_device::segaic16_tilemap_set_flip(int which, int flip) { struct tilemap_info *info = &bg_tilemap[which]; int pagenum; @@ -1195,8 +1195,7 @@ void segaic16_video_device::segaic16_tilemap_set_flip(running_machine &machine, flip = (flip != 0); if (info->flip != flip) { - screen_device &screen = *machine.primary_screen; - screen.update_partial(screen.vpos()); + m_screen->update_partial(m_screen->vpos()); info->flip = flip; info->textmap->set_flip(flip ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0); for (pagenum = 0; pagenum < info->numpages; pagenum++) @@ -1212,15 +1211,14 @@ void segaic16_video_device::segaic16_tilemap_set_flip(running_machine &machine, * *************************************/ -void segaic16_video_device::segaic16_tilemap_set_rowscroll(running_machine &machine, int which, int enable) +void segaic16_video_device::segaic16_tilemap_set_rowscroll(int which, int enable) { struct tilemap_info *info = &bg_tilemap[which]; enable = (enable != 0); if (info->rowscroll != enable) { - screen_device &screen = *machine.primary_screen; - screen.update_partial(screen.vpos()); + m_screen->update_partial(m_screen->vpos()); info->rowscroll = enable; } } @@ -1233,15 +1231,14 @@ void segaic16_video_device::segaic16_tilemap_set_rowscroll(running_machine &mach * *************************************/ -void segaic16_video_device::segaic16_tilemap_set_colscroll(running_machine &machine, int which, int enable) +void segaic16_video_device::segaic16_tilemap_set_colscroll(int which, int enable) { struct tilemap_info *info = &bg_tilemap[which]; enable = (enable != 0); if (info->colscroll != enable) { - screen_device &screen = *machine.primary_screen; - screen.update_partial(screen.vpos()); + m_screen->update_partial(m_screen->vpos()); info->colscroll = enable; } } @@ -1277,7 +1274,7 @@ WRITE16_MEMBER( segaic16_video_device::segaic16_textram_0_w ) { /* certain ranges need immediate updates */ if (offset >= 0xe80/2) - space.machine().primary_screen->update_partial(space.machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); COMBINE_DATA(&segaic16_textram_0[offset]); bg_tilemap[0].textmap->mark_tile_dirty(offset); diff --git a/src/mame/video/segaic16.h b/src/mame/video/segaic16.h index aa43147f61f..591a6577f37 100644 --- a/src/mame/video/segaic16.h +++ b/src/mame/video/segaic16.h @@ -89,7 +89,8 @@ struct rotate_info -class segaic16_video_device : public device_t +class segaic16_video_device : public device_t, + public device_video_interface { public: segaic16_video_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); @@ -100,10 +101,10 @@ public: UINT16 *segaic16_textram_0; UINT16 *segaic16_rotateram_0; - void segaic16_tilemap_set_colscroll(running_machine &machine, int which, int enable); - void segaic16_tilemap_set_rowscroll(running_machine &machine, int which, int enable); - void segaic16_tilemap_set_flip(running_machine &machine, int which, int flip); - void segaic16_tilemap_set_bank(running_machine &machine, int which, int banknum, int offset); + void segaic16_tilemap_set_colscroll(int which, int enable); + void segaic16_tilemap_set_rowscroll(int which, int enable); + void segaic16_tilemap_set_flip(int which, int flip); + void segaic16_tilemap_set_bank(int which, int banknum, int offset); void segaic16_tilemap_reset(screen_device &screen); void segaic16_tilemap_draw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int map, int priority, int priority_mark); // void segaic16_tilemap_16b_draw_layer(screen_device &screen, struct tilemap_info *info, bitmap_ind16 &bitmap, const rectangle &cliprect, int which, int flags, int priority); @@ -116,7 +117,7 @@ public: struct rotate_info segaic16_rotate[SEGAIC16_MAX_ROTATE]; struct tilemap_info bg_tilemap[SEGAIC16_MAX_TILEMAPS]; - void segaic16_set_display_enable(screen_device &screen, int enable); + void segaic16_set_display_enable(int enable); void segaic16_tilemap_init(running_machine &machine, int which, int type, int colorbase, int xoffs, int numbanks); void segaic16_rotate_init(running_machine &machine, int which, int type, int colorbase); diff --git a/src/mame/video/segas18.c b/src/mame/video/segas18.c index 9b557cf5ae6..4036c18d51e 100644 --- a/src/mame/video/segas18.c +++ b/src/mame/video/segas18.c @@ -57,7 +57,7 @@ void segas18_state::video_start() { - m_temp_bitmap.allocate(machine().primary_screen->width(), machine().primary_screen->height()); + m_temp_bitmap.allocate(m_screen->width(), m_screen->height()); m_grayscale_enable = false; m_vdp_enable = false; m_vdp_mixing = 0; @@ -83,7 +83,7 @@ void segas18_state::set_grayscale(bool enable) { if (enable != m_grayscale_enable) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_grayscale_enable = enable; // mame_printf_debug("Grayscale = %02X\n", enable); } @@ -94,7 +94,7 @@ void segas18_state::set_vdp_enable(bool enable) { if (enable != m_vdp_enable) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_vdp_enable = enable; #if DEBUG_VDP mame_printf_debug("VDP enable = %02X\n", enable); @@ -107,7 +107,7 @@ void segas18_state::set_vdp_mixing(UINT8 mixing) { if (mixing != m_vdp_mixing) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_vdp_mixing = mixing; #if DEBUG_VDP mame_printf_debug("VDP mixing = %02X\n", mixing); diff --git a/src/mame/video/seta.c b/src/mame/video/seta.c index 0a709fd6a8b..88be36ff166 100644 --- a/src/mame/video/seta.c +++ b/src/mame/video/seta.c @@ -827,7 +827,7 @@ UINT32 seta_state::screen_update_seta_no_layers(screen_device &screen, bitmap_in set_pens(); bitmap.fill(0x1f0, cliprect); - m_seta001->draw_sprites(bitmap,cliprect,0x1000, 1); + m_seta001->draw_sprites(screen, bitmap,cliprect,0x1000, 1); return 0; } @@ -949,7 +949,7 @@ if (screen.machine().input().code_pressed(KEYCODE_Z)) if (order & 2) // layer-sprite priority? { - if (layers_ctrl & 8) m_seta001->draw_sprites(bitmap,cliprect,sprite_bank_size, sprite_setac); + if (layers_ctrl & 8) m_seta001->draw_sprites(screen, bitmap,cliprect,sprite_bank_size, sprite_setac); if(order & 4) { @@ -969,7 +969,7 @@ if (screen.machine().input().code_pressed(KEYCODE_Z)) if (layers_ctrl & 1) m_tilemap_0->draw(screen, bitmap, cliprect, 0, 0); if (layers_ctrl & 1) m_tilemap_1->draw(screen, bitmap, cliprect, 0, 0); - if (layers_ctrl & 8) m_seta001->draw_sprites(bitmap,cliprect,sprite_bank_size, sprite_setac); + if (layers_ctrl & 8) m_seta001->draw_sprites(screen, bitmap,cliprect,sprite_bank_size, sprite_setac); } } else @@ -979,7 +979,7 @@ if (screen.machine().input().code_pressed(KEYCODE_Z)) if (order & 2) // layer-sprite priority? { - if (layers_ctrl & 8) m_seta001->draw_sprites(bitmap,cliprect,sprite_bank_size, sprite_setac); + if (layers_ctrl & 8) m_seta001->draw_sprites(screen, bitmap,cliprect,sprite_bank_size, sprite_setac); if((order & 4) && m_paletteram2 != NULL) { @@ -1033,7 +1033,7 @@ if (screen.machine().input().code_pressed(KEYCODE_Z)) } } - if (layers_ctrl & 8) m_seta001->draw_sprites(bitmap,cliprect,sprite_bank_size, sprite_setac); + if (layers_ctrl & 8) m_seta001->draw_sprites(screen,bitmap,cliprect,sprite_bank_size, sprite_setac); } } diff --git a/src/mame/video/seta001.c b/src/mame/video/seta001.c index 9eea703ca2d..bdeb2bb0390 100644 --- a/src/mame/video/seta001.c +++ b/src/mame/video/seta001.c @@ -309,7 +309,7 @@ void seta001_device::draw_background( bitmap_ind16 &bitmap, const rectangle &cli } -void seta001_device::draw_foreground( bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_size) +void seta001_device::draw_foreground( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_size) { int screenflip = (m_spritectrl[0] & 0x40) >> 6; int i; @@ -334,7 +334,7 @@ void seta001_device::draw_foreground( bitmap_ind16 &bitmap, const rectangle &cli color_pointer += bank_size; } - int max_y = machine().primary_screen->height(); + int max_y = screen.height(); /* Draw up to 512 sprites, mjyuugi has glitches if you draw them all.. */ @@ -360,7 +360,7 @@ void seta001_device::draw_foreground( bitmap_ind16 &bitmap, const rectangle &cli if (screenflip) { sy = max_y - sy - +(machine().primary_screen->height() - (machine().primary_screen->visible_area().max_y + 1)); + +(screen.height() - (screen.visible_area().max_y + 1)); flipx = !flipx; flipy = !flipy; } @@ -447,8 +447,8 @@ void seta001_device::tnzs_eof( void ) } -void seta001_device::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_size, int setac) +void seta001_device::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_size, int setac) { draw_background(bitmap, cliprect, bank_size, setac); - draw_foreground(bitmap, cliprect, bank_size); + draw_foreground(screen, bitmap, cliprect, bank_size); } diff --git a/src/mame/video/seta001.h b/src/mame/video/seta001.h index de1544573f3..3dac90e9a6a 100644 --- a/src/mame/video/seta001.h +++ b/src/mame/video/seta001.h @@ -25,7 +25,7 @@ public: DECLARE_READ16_MEMBER( spritecode_r16 ); DECLARE_WRITE16_MEMBER( spritecode_w16 ); - void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_size, int setac); + void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_size, int setac); void setac_eof( void ); void tnzs_eof( void ); @@ -71,7 +71,7 @@ protected: private: void draw_background( bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_size, int setac_type); - void draw_foreground( bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_size); + void draw_foreground( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect, int bank_size); }; diff --git a/src/mame/video/shangha3.c b/src/mame/video/shangha3.c index 39127b75b48..aafbe3c9a66 100644 --- a/src/mame/video/shangha3.c +++ b/src/mame/video/shangha3.c @@ -67,7 +67,7 @@ void shangha3_state::video_start() { int i; - machine().primary_screen->register_screen_bitmap(m_rawbitmap); + m_screen->register_screen_bitmap(m_rawbitmap); for (i = 0;i < 14;i++) m_drawmode_table[i] = DRAWMODE_SOURCE; diff --git a/src/mame/video/skullxbo.c b/src/mame/video/skullxbo.c index ff2504ebdc8..1e4411bf04d 100644 --- a/src/mame/video/skullxbo.c +++ b/src/mame/video/skullxbo.c @@ -97,7 +97,7 @@ WRITE16_MEMBER( skullxbo_state::skullxbo_xscroll_w ) /* if something changed, force an update */ if (oldscroll != newscroll) - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); /* adjust the actual scrolls */ m_playfield_tilemap->set_scrollx(0, 2 * (newscroll >> 7)); @@ -111,7 +111,7 @@ WRITE16_MEMBER( skullxbo_state::skullxbo_xscroll_w ) WRITE16_MEMBER( skullxbo_state::skullxbo_yscroll_w ) { /* combine data */ - int scanline = machine().primary_screen->vpos(); + int scanline = m_screen->vpos(); UINT16 oldscroll = *m_yscroll; UINT16 newscroll = oldscroll; UINT16 effscroll; @@ -119,10 +119,10 @@ WRITE16_MEMBER( skullxbo_state::skullxbo_yscroll_w ) /* if something changed, force an update */ if (oldscroll != newscroll) - machine().primary_screen->update_partial(scanline); + m_screen->update_partial(scanline); /* adjust the effective scroll for the current scanline */ - if (scanline > machine().primary_screen->visible_area().max_y) + if (scanline > m_screen->visible_area().max_y) scanline = 0; effscroll = (newscroll >> 7) - scanline; @@ -144,7 +144,7 @@ WRITE16_MEMBER( skullxbo_state::skullxbo_yscroll_w ) WRITE16_MEMBER( skullxbo_state::skullxbo_mobmsb_w ) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_mob->set_bank((offset >> 9) & 1); } @@ -211,7 +211,7 @@ void skullxbo_state::skullxbo_scanline_update(int scanline) /* force a partial update with the previous scroll */ if (scanline > 0) - machine().primary_screen->update_partial(scanline - 1); + m_screen->update_partial(scanline - 1); /* update the new scroll */ m_playfield_tilemap->set_scrolly(0, newscroll); diff --git a/src/mame/video/skyfox.c b/src/mame/video/skyfox.c index aad1f064804..2f1633ad7e8 100644 --- a/src/mame/video/skyfox.c +++ b/src/mame/video/skyfox.c @@ -161,8 +161,8 @@ void skyfox_state::draw_sprites( bitmap_ind16 &bitmap, const rectangle &cliprect { int offs; - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); /* The 32x32 tiles in the 80-ff range are bankswitched */ int shift =(m_bg_ctrl & 0x80) ? (4 - 1) : 4; diff --git a/src/mame/video/snes.c b/src/mame/video/snes.c index 61500cdad6e..b074ee098da 100644 --- a/src/mame/video/snes.c +++ b/src/mame/video/snes.c @@ -1643,8 +1643,11 @@ void snes_ppu_class::refresh_scanline( running_machine &machine, bitmap_rgb32 &b g_profiler.stop(); } -void snes_ppu_class::ppu_start(running_machine &machine) +void snes_ppu_class::ppu_start(screen_device &screen) { + m_screen = &screen; + running_machine &machine = screen.machine(); + #if SNES_LAYER_DEBUG memset(&debug_options, 0, sizeof(debug_options)); #endif @@ -1893,8 +1896,8 @@ READ8_MEMBER( snes_ppu_class::vram_read ) res = m_vram[offset]; else { - UINT16 v = space.machine().primary_screen->vpos(); - UINT16 h = space.machine().primary_screen->hpos(); + UINT16 v = m_screen->vpos(); + UINT16 h = m_screen->hpos(); UINT16 ls = (((m_stat78 & 0x10) == SNES_NTSC ? 525 : 625) >> 1) - 1; if (m_interlace == 2) @@ -1928,8 +1931,8 @@ WRITE8_MEMBER( snes_ppu_class::vram_write ) m_vram[offset] = data; else { - UINT16 v = space.machine().primary_screen->vpos(); - UINT16 h = space.machine().primary_screen->hpos(); + UINT16 v = m_screen->vpos(); + UINT16 h = m_screen->hpos(); if (v == 0) { if (h <= 4) @@ -1994,7 +1997,7 @@ READ8_MEMBER( snes_ppu_class::oam_read ) if (!m_screen_disabled) { - UINT16 v = space.machine().primary_screen->vpos(); + UINT16 v = m_screen->vpos(); if (v < m_beam.last_visible_line) offset = 0x010c; @@ -2012,7 +2015,7 @@ WRITE8_MEMBER( snes_ppu_class::oam_write ) if (!m_screen_disabled) { - UINT16 v = space.machine().primary_screen->vpos(); + UINT16 v = m_screen->vpos(); if (v < m_beam.last_visible_line) offset = 0x010c; @@ -2053,8 +2056,8 @@ READ8_MEMBER( snes_ppu_class::cgram_read ) #if 0 if (!m_screen_disabled) { - UINT16 v = space.machine().primary_screen->vpos(); - UINT16 h = space.machine().primary_screen->hpos(); + UINT16 v = m_screen->vpos(); + UINT16 h = m_screen->hpos(); if (v < m_beam.last_visible_line && h >= 128 && h < 1096) offset = 0x1ff; @@ -2081,8 +2084,8 @@ WRITE8_MEMBER( snes_ppu_class::cgram_write ) // writes to the cgram address if (!m_screen_disabled) { - UINT16 v = space.machine().primary_screen->vpos(); - UINT16 h = space.machine().primary_screen->hpos(); + UINT16 v = m_screen->vpos(); + UINT16 h = m_screen->hpos(); if (v < m_beam.last_visible_line && h >= 128 && h < 1096) offset = 0x1ff; diff --git a/src/mame/video/snk.c b/src/mame/video/snk.c index e39181818fd..7b320182a07 100644 --- a/src/mame/video/snk.c +++ b/src/mame/video/snk.c @@ -647,10 +647,10 @@ WRITE8_MEMBER(snk_state::tdfever_spriteram_w) /* partial updates avoid flickers in the fsoccer radar. */ if (offset < 0x80 && m_spriteram[offset] != data) { - int vpos = machine().primary_screen->vpos(); + int vpos = m_screen->vpos(); if (vpos > 0) - machine().primary_screen->update_partial(vpos - 1); + m_screen->update_partial(vpos - 1); } m_spriteram[offset] = data; diff --git a/src/mame/video/snk68.c b/src/mame/video/snk68.c index 70a61da4f02..d3fc103cb3c 100644 --- a/src/mame/video/snk68.c +++ b/src/mame/video/snk68.c @@ -52,8 +52,8 @@ void snk68_state::common_video_start() { m_fg_tilemap->set_transparent_pen(0); - m_fg_tilemap->set_scrolldx(0, machine().primary_screen->width() - 256); - m_fg_tilemap->set_scrolldy(0, machine().primary_screen->height() - 256); + m_fg_tilemap->set_scrolldx(0, m_screen->width() - 256); + m_fg_tilemap->set_scrolldy(0, m_screen->height() - 256); } void snk68_state::video_start() @@ -99,10 +99,10 @@ WRITE16_MEMBER(snk68_state::pow_spriteram_w) if (spriteram16[offset] != newword) { - int vpos = machine().primary_screen->vpos(); + int vpos = m_screen->vpos(); if (vpos > 0) - machine().primary_screen->update_partial(vpos - 1); + m_screen->update_partial(vpos - 1); spriteram16[offset] = newword; } diff --git a/src/mame/video/spacefb.c b/src/mame/video/spacefb.c index 927f07db870..5cfe1af0df5 100644 --- a/src/mame/video/spacefb.c +++ b/src/mame/video/spacefb.c @@ -17,14 +17,14 @@ WRITE8_MEMBER(spacefb_state::spacefb_port_0_w) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_port_0 = data; } WRITE8_MEMBER(spacefb_state::spacefb_port_2_w) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_port_2 = data; } @@ -78,8 +78,8 @@ void spacefb_state::video_start() 2, resistances_b, m_color_weights_b, 470, 0, 0, 0, 0, 0, 0); - width = machine().primary_screen->width(); - height = machine().primary_screen->height(); + width = m_screen->width(); + height = m_screen->height(); m_object_present_map = auto_alloc_array(machine(), UINT8, width * height); /* this start value positions the stars to match the flyer screen shot, diff --git a/src/mame/video/spbactn.c b/src/mame/video/spbactn.c index 00fef2d69c8..fe1c7714624 100644 --- a/src/mame/video/spbactn.c +++ b/src/mame/video/spbactn.c @@ -74,8 +74,8 @@ TILE_GET_INFO_MEMBER(spbactn_state::get_fg_tile_info) VIDEO_START_MEMBER(spbactn_state,spbactn) { /* allocate bitmaps */ - machine().primary_screen->register_screen_bitmap(m_tile_bitmap_bg); - machine().primary_screen->register_screen_bitmap(m_tile_bitmap_fg); + m_screen->register_screen_bitmap(m_tile_bitmap_bg); + m_screen->register_screen_bitmap(m_tile_bitmap_fg); m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(spbactn_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 64, 128); m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(spbactn_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 64, 128); diff --git a/src/mame/video/spdodgeb.c b/src/mame/video/spdodgeb.c index a1ffd59d4f7..9ce315f06b4 100644 --- a/src/mame/video/spdodgeb.c +++ b/src/mame/video/spdodgeb.c @@ -89,12 +89,12 @@ TIMER_DEVICE_CALLBACK_MEMBER(spdodgeb_state::spdodgeb_interrupt) if (scanline == 256) { m_maincpu->set_input_line(INPUT_LINE_NMI, PULSE_LINE); - machine().primary_screen->update_partial(256); + m_screen->update_partial(256); } else if ((scanline % 8) == 0) { m_maincpu->set_input_line(M6502_IRQ_LINE, HOLD_LINE); - machine().primary_screen->update_partial(scanline+16); /* TODO: pretty off ... */ + m_screen->update_partial(scanline+16); /* TODO: pretty off ... */ } } diff --git a/src/mame/video/sprint2.c b/src/mame/video/sprint2.c index 0b974e3f3a1..e63bf87477e 100644 --- a/src/mame/video/sprint2.c +++ b/src/mame/video/sprint2.c @@ -44,7 +44,7 @@ TILE_GET_INFO_MEMBER(sprint2_state::get_tile_info) void sprint2_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_helper); + m_screen->register_screen_bitmap(m_helper); m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(sprint2_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 8, 32, 32); } @@ -144,7 +144,7 @@ void sprint2_state::screen_eof_sprint2(screen_device &screen, bool state) UINT8 *video_ram = m_video_ram; int i; int j; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); /* * Collisions are detected for both player cars: diff --git a/src/mame/video/sprint4.c b/src/mame/video/sprint4.c index 57d19457c05..79d47d46e8a 100644 --- a/src/mame/video/sprint4.c +++ b/src/mame/video/sprint4.c @@ -49,7 +49,7 @@ TILE_GET_INFO_MEMBER(sprint4_state::sprint4_tile_info) void sprint4_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_helper); + m_screen->register_screen_bitmap(m_helper); m_playfield = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(sprint4_state::sprint4_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } @@ -113,7 +113,7 @@ void sprint4_state::screen_eof_sprint4(screen_device &screen, bool state) rect.max_x = horz - 15 + machine().gfx[1]->width() - 1; rect.max_y = vert - 15 + machine().gfx[1]->height() - 1; - rect &= machine().primary_screen->visible_area(); + rect &= m_screen->visible_area(); m_playfield->draw(screen, m_helper, rect, 0, 0); diff --git a/src/mame/video/sprint8.c b/src/mame/video/sprint8.c index 738ee63558c..5d7e03e8b9f 100644 --- a/src/mame/video/sprint8.c +++ b/src/mame/video/sprint8.c @@ -113,8 +113,8 @@ WRITE8_MEMBER(sprint8_state::sprint8_video_ram_w) void sprint8_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_helper1); - machine().primary_screen->register_screen_bitmap(m_helper2); + m_screen->register_screen_bitmap(m_helper1); + m_screen->register_screen_bitmap(m_helper2); m_tilemap1 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(sprint8_state::get_tile_info1),this), TILEMAP_SCAN_ROWS, 16, 8, 32, 32); m_tilemap2 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(sprint8_state::get_tile_info2),this), TILEMAP_SCAN_ROWS, 16, 8, 32, 32); @@ -169,7 +169,7 @@ void sprint8_state::screen_eof_sprint8(screen_device &screen, bool state) { int x; int y; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); m_tilemap2->draw(screen, m_helper2, visarea, 0, 0); @@ -184,7 +184,7 @@ void sprint8_state::screen_eof_sprint8(screen_device &screen, bool state) for (x = visarea.min_x; x <= visarea.max_x; x++) if (p1[x] != 0x20 && p2[x] == 0x23) - machine().scheduler().timer_set(machine().primary_screen->time_until_pos(y + 24, x), + machine().scheduler().timer_set(m_screen->time_until_pos(y + 24, x), timer_expired_delegate(FUNC(sprint8_state::sprint8_collision_callback),this), colortable_entry_get_value(machine().colortable, p1[x])); } diff --git a/src/mame/video/srmp2.c b/src/mame/video/srmp2.c index 458c3a75bed..8bb0811c859 100644 --- a/src/mame/video/srmp2.c +++ b/src/mame/video/srmp2.c @@ -64,7 +64,7 @@ UINT32 srmp2_state::screen_update_srmp2(screen_device &screen, bitmap_ind16 &bit m_seta001->set_bg_xoffsets( 0x00, 0x00 ); // bg not used? m_seta001->set_bg_yoffsets( 0x00, 0x00 ); // bg not used? - m_seta001->draw_sprites(bitmap,cliprect,0x1000, 1); + m_seta001->draw_sprites(screen,bitmap,cliprect,0x1000, 1); return 0; } @@ -79,7 +79,7 @@ UINT32 srmp2_state::screen_update_srmp3(screen_device &screen, bitmap_ind16 &bit m_seta001->set_gfxbank_callback( srmp3_gfxbank_callback ); - m_seta001->draw_sprites(bitmap,cliprect,0x1000, 1); + m_seta001->draw_sprites(screen,bitmap,cliprect,0x1000, 1); return 0; } @@ -95,6 +95,6 @@ UINT32 srmp2_state::screen_update_mjyuugi(screen_device &screen, bitmap_ind16 &b m_seta001->set_gfxbank_callback( srmp3_gfxbank_callback ); - m_seta001->draw_sprites(bitmap,cliprect,0x1000, 1); + m_seta001->draw_sprites(screen,bitmap,cliprect,0x1000, 1); return 0; } diff --git a/src/mame/video/ssv.c b/src/mame/video/ssv.c index bf4c534f34c..46cb754bd3e 100644 --- a/src/mame/video/ssv.c +++ b/src/mame/video/ssv.c @@ -371,7 +371,7 @@ VIDEO_START_MEMBER(ssv_state,gdfs) READ16_MEMBER(ssv_state::ssv_vblank_r) { - if (machine().primary_screen->vblank()) + if (m_screen->vblank()) return 0x2000 | 0x1000; else return 0x0000; @@ -727,7 +727,7 @@ void ssv_state::draw_row(bitmap_ind16 &bitmap, const rectangle &cliprect, int sx void ssv_state::draw_layer(bitmap_ind16 &bitmap, const rectangle &cliprect, int nr) { int sy; - for ( sy = 0; sy <= machine().primary_screen->visible_area().max_y; sy += 0x40 ) + for ( sy = 0; sy <= m_screen->visible_area().max_y; sy += 0x40 ) draw_row(bitmap, cliprect, 0, sy, nr); } diff --git a/src/mame/video/st0016.c b/src/mame/video/st0016.c index c83d0bf87ac..ef119ff9430 100644 --- a/src/mame/video/st0016.c +++ b/src/mame/video/st0016.c @@ -458,27 +458,27 @@ VIDEO_START_MEMBER(st0016_state,st0016) switch(st0016_game&0x3f) { case 0: //renju kizoku - machine().primary_screen->set_visible_area(0, 40*8-1, 0, 30*8-1); + m_screen->set_visible_area(0, 40*8-1, 0, 30*8-1); spr_dx=0; spr_dy=0; break; case 1: //neratte chu! - machine().primary_screen->set_visible_area(8,41*8-1,0,30*8-1); + m_screen->set_visible_area(8,41*8-1,0,30*8-1); spr_dx=0; spr_dy=8; break; case 4: //mayjinsen 1&2 - machine().primary_screen->set_visible_area(0,32*8-1,0,28*8-1); + m_screen->set_visible_area(0,32*8-1,0,28*8-1); break; case 10: - machine().primary_screen->set_visible_area(0,383,0,255); + m_screen->set_visible_area(0,383,0,255); break; case 11: - machine().primary_screen->set_visible_area(0,383,0,383); + m_screen->set_visible_area(0,383,0,383); break; } diff --git a/src/mame/video/starfire.c b/src/mame/video/starfire.c index 6aa29ce06db..78d37aa09cf 100644 --- a/src/mame/video/starfire.c +++ b/src/mame/video/starfire.c @@ -17,9 +17,9 @@ void starfire_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_starfire_screen); + m_screen->register_screen_bitmap(m_starfire_screen); m_scanline_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(starfire_state::starfire_scanline_callback),this)); - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(STARFIRE_VBEND), STARFIRE_VBEND); + m_scanline_timer->adjust(m_screen->time_until_pos(STARFIRE_VBEND), STARFIRE_VBEND); /* register for state saving */ save_item(NAME(m_starfire_vidctrl)); @@ -255,7 +255,7 @@ TIMER_CALLBACK_MEMBER(starfire_state::starfire_scanline_callback) y++; if (y >= STARFIRE_VBSTART) y = STARFIRE_VBEND; - m_scanline_timer->adjust(machine().primary_screen->time_until_pos(y), y); + m_scanline_timer->adjust(m_screen->time_until_pos(y), y); } UINT32 starfire_state::screen_update_starfire(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect) diff --git a/src/mame/video/starshp1.c b/src/mame/video/starshp1.c index 495a460ea3f..a9b7e6a9386 100644 --- a/src/mame/video/starshp1.c +++ b/src/mame/video/starshp1.c @@ -79,16 +79,16 @@ void starshp1_state::video_start() val = (val << 1) | (bit & 1); } - machine().primary_screen->register_screen_bitmap(m_helper); + m_screen->register_screen_bitmap(m_helper); } READ8_MEMBER(starshp1_state::starshp1_rng_r) { - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); - int x = machine().primary_screen->hpos(); - int y = machine().primary_screen->vpos(); + int width = m_screen->width(); + int height = m_screen->height(); + int x = m_screen->hpos(); + int y = m_screen->vpos(); /* the LFSR is only running in the non-blank region of the screen, so this is not quite right */ @@ -380,7 +380,7 @@ void starshp1_state::screen_eof_starshp1(screen_device &screen, bool state) if (state) { rectangle rect; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); rect.min_x = get_sprite_hpos(13); rect.min_y = get_sprite_vpos(13); diff --git a/src/mame/video/suna16.c b/src/mame/video/suna16.c index 1310dd0a8a3..3516a12ee11 100644 --- a/src/mame/video/suna16.c +++ b/src/mame/video/suna16.c @@ -118,8 +118,8 @@ WRITE16_MEMBER(suna16_state::suna16_paletteram16_w) void suna16_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, UINT16 *sprites, int gfx) { int offs; - int max_x = machine().primary_screen->width() - 8; - int max_y = machine().primary_screen->height() - 8; + int max_x = m_screen->width() - 8; + int max_y = m_screen->height() - 8; for ( offs = 0xfc00/2; offs < 0x10000/2 ; offs += 4/2 ) { diff --git a/src/mame/video/suna8.c b/src/mame/video/suna8.c index 2d4378b5767..a4e81323cab 100644 --- a/src/mame/video/suna8.c +++ b/src/mame/video/suna8.c @@ -225,8 +225,8 @@ void suna8_state::draw_normal_sprites(bitmap_ind16 &bitmap,const rectangle &clip int i; int mx = 0; // multisprite x counter - int max_x = machine().primary_screen->width() - 8; - int max_y = machine().primary_screen->height() - 8; + int max_x = m_screen->width() - 8; + int max_y = m_screen->height() - 8; for (i = 0x1d00; i < 0x2000; i += 4) { @@ -394,8 +394,8 @@ void suna8_state::draw_text_sprites(bitmap_ind16 &bitmap,const rectangle &clipre UINT8 *spriteram = m_spriteram; int i; - int max_x = machine().primary_screen->width() - 8; - int max_y = machine().primary_screen->height() - 8; + int max_x = m_screen->width() - 8; + int max_y = m_screen->height() - 8; for (i = 0x1900; i < 0x19ff; i += 4) { diff --git a/src/mame/video/system1.c b/src/mame/video/system1.c index 7eb73e2a60b..f0334ee0fb0 100644 --- a/src/mame/video/system1.c +++ b/src/mame/video/system1.c @@ -135,7 +135,7 @@ void system1_state::video_start_common(int pagecount) } /* allocate a temporary bitmap for sprite rendering */ - machine().primary_screen->register_screen_bitmap(m_sprite_bitmap); + m_screen->register_screen_bitmap(m_sprite_bitmap); /* register for save stats */ save_item(NAME(m_video_mode)); @@ -187,19 +187,19 @@ WRITE8_MEMBER(system1_state::system1_videomode_w) READ8_MEMBER(system1_state::system1_mixer_collision_r) { - machine().primary_screen->update_now(); + m_screen->update_now(); return m_mix_collide[offset & 0x3f] | 0x7e | (m_mix_collide_summary << 7); } WRITE8_MEMBER(system1_state::system1_mixer_collision_w) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_mix_collide[offset & 0x3f] = 0; } WRITE8_MEMBER(system1_state::system1_mixer_collision_reset_w) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_mix_collide_summary = 0; } @@ -213,19 +213,19 @@ WRITE8_MEMBER(system1_state::system1_mixer_collision_reset_w) READ8_MEMBER(system1_state::system1_sprite_collision_r) { - machine().primary_screen->update_now(); + m_screen->update_now(); return m_sprite_collide[offset & 0x3ff] | 0x7e | (m_sprite_collide_summary << 7); } WRITE8_MEMBER(system1_state::system1_sprite_collision_w) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_sprite_collide[offset & 0x3ff] = 0; } WRITE8_MEMBER(system1_state::system1_sprite_collision_reset_w) { - machine().primary_screen->update_now(); + m_screen->update_now(); m_sprite_collide_summary = 0; } @@ -271,7 +271,7 @@ WRITE8_MEMBER(system1_state::system1_videoram_w) /* force a partial update if the page is changing */ if (m_tilemap_pages > 2 && offset >= 0x740 && offset < 0x748 && offset % 2 == 0) - machine().primary_screen->update_now(); + m_screen->update_now(); } WRITE8_MEMBER(system1_state::system1_videoram_bank_w) diff --git a/src/mame/video/taito_b.c b/src/mame/video/taito_b.c index b71ec045b4f..a2ae8fab4e6 100644 --- a/src/mame/video/taito_b.c +++ b/src/mame/video/taito_b.c @@ -99,7 +99,7 @@ VIDEO_RESET_MEMBER(taitob_state,hitice) VIDEO_START_MEMBER(taitob_state,realpunc) { - m_realpunc_bitmap = auto_bitmap_ind16_alloc(machine(), machine().primary_screen->width(), machine().primary_screen->height()); + m_realpunc_bitmap = auto_bitmap_ind16_alloc(machine(), m_screen->width(), m_screen->height()); VIDEO_START_CALL_MEMBER(taitob_color_order0); } diff --git a/src/mame/video/taito_f3.c b/src/mame/video/taito_f3.c index 0a784905d1d..e72d4378ac7 100644 --- a/src/mame/video/taito_f3.c +++ b/src/mame/video/taito_f3.c @@ -636,7 +636,7 @@ VIDEO_START_MEMBER(taito_f3_state,f3) m_pixel_layer = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(taito_f3_state::get_tile_info_pixel),this),TILEMAP_SCAN_COLS,8,8,64,32); m_pf_line_inf = auto_alloc_array(machine(), struct f3_playfield_line_inf, 5); m_sa_line_inf = auto_alloc_array(machine(), struct f3_spritealpha_line_inf, 1); - machine().primary_screen->register_screen_bitmap(m_pri_alp_bitmap); + m_screen->register_screen_bitmap(m_pri_alp_bitmap); m_tile_opaque_sp = auto_alloc_array(machine(), UINT8, machine().gfx[2]->elements()); for (i=0; i<8; i++) m_tile_opaque_pf[i] = auto_alloc_array(machine(), UINT8, machine().gfx[1]->elements()); diff --git a/src/mame/video/taitoair.c b/src/mame/video/taitoair.c index ec86cb17a85..53f831e4177 100644 --- a/src/mame/video/taitoair.c +++ b/src/mame/video/taitoair.c @@ -362,8 +362,8 @@ WRITE16_MEMBER(taitoair_state::dsp_flags_w) cliprect.min_x = 0; cliprect.min_y = 3*16; - cliprect.max_x = machine().primary_screen->width() - 1; - cliprect.max_y = machine().primary_screen->height() - 1; + cliprect.max_x = m_screen->width() - 1; + cliprect.max_y = m_screen->height() - 1; { /* clear and copy operation if offset is 0x3001 */ @@ -549,8 +549,8 @@ void taitoair_state::video_start() { int width, height; - width = machine().primary_screen->width(); - height = machine().primary_screen->height(); + width = m_screen->width(); + height = m_screen->height(); m_framebuffer[0] = auto_bitmap_ind16_alloc(machine(), width, height); m_framebuffer[1] = auto_bitmap_ind16_alloc(machine(), width, height); //m_buffer3d = auto_bitmap_ind16_alloc(machine(), width, height); diff --git a/src/mame/video/taitojc.c b/src/mame/video/taitojc.c index 9d7fa81fc06..896a34fddf6 100644 --- a/src/mame/video/taitojc.c +++ b/src/mame/video/taitojc.c @@ -319,8 +319,8 @@ void taitojc_state::video_start() m_texture = auto_alloc_array(machine(), UINT8, 0x400000); - machine().primary_screen->register_screen_bitmap(m_framebuffer); - machine().primary_screen->register_screen_bitmap(m_zbuffer); + m_screen->register_screen_bitmap(m_framebuffer); + m_screen->register_screen_bitmap(m_zbuffer); /* create renderer */ m_renderer = auto_alloc(machine(), taitojc_renderer(machine(), &m_framebuffer, &m_zbuffer, m_texture)); @@ -764,6 +764,6 @@ void taitojc_renderer::render_polygons(running_machine &machine, UINT16 *polygon void taitojc_state::taitojc_clear_frame() { - m_framebuffer.fill(0, machine().primary_screen->visible_area()); - m_zbuffer.fill(0xffff, machine().primary_screen->visible_area()); + m_framebuffer.fill(0, m_screen->visible_area()); + m_zbuffer.fill(0xffff, m_screen->visible_area()); } diff --git a/src/mame/video/taitosj.c b/src/mame/video/taitosj.c index 7aa2724a879..4c6c74fd36a 100644 --- a/src/mame/video/taitosj.c +++ b/src/mame/video/taitosj.c @@ -174,8 +174,8 @@ void taitosj_state::video_start() for (i = 0; i < 3; i++) { - machine().primary_screen->register_screen_bitmap(m_layer_bitmap[i]); - machine().primary_screen->register_screen_bitmap(m_sprite_layer_collbitmap2[i]); + m_screen->register_screen_bitmap(m_layer_bitmap[i]); + m_screen->register_screen_bitmap(m_sprite_layer_collbitmap2[i]); } m_sprite_sprite_collbitmap1.allocate(32,32); @@ -388,8 +388,8 @@ void taitosj_state::check_sprite_sprite_collision() void taitosj_state::calculate_sprite_areas(int *sprites_on, rectangle *sprite_areas) { int which; - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); for (which = 0; which < 0x20; which++) { diff --git a/src/mame/video/tank8.c b/src/mame/video/tank8.c index 798fe6c4edf..1b06410f0c1 100644 --- a/src/mame/video/tank8.c +++ b/src/mame/video/tank8.c @@ -101,9 +101,9 @@ TILE_GET_INFO_MEMBER(tank8_state::tank8_get_tile_info) void tank8_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_helper1); - machine().primary_screen->register_screen_bitmap(m_helper2); - machine().primary_screen->register_screen_bitmap(m_helper3); + m_screen->register_screen_bitmap(m_helper1); + m_screen->register_screen_bitmap(m_helper2); + m_screen->register_screen_bitmap(m_helper3); m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(tank8_state::tank8_get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32); @@ -197,7 +197,7 @@ void tank8_state::screen_eof_tank8(screen_device &screen, bool state) { int x; int y; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); m_tilemap->draw(screen, m_helper1, visarea, 0, 0); @@ -215,7 +215,7 @@ void tank8_state::screen_eof_tank8(screen_device &screen, bool state) const UINT16* p2 = &m_helper2.pix16(y); const UINT16* p3 = &m_helper3.pix16(y); - if ((machine().primary_screen->frame_number() ^ y) & 1) + if ((m_screen->frame_number() ^ y) & 1) continue; /* video display is interlaced */ for (x = visarea.min_x; x <= visarea.max_x; x++) diff --git a/src/mame/video/tceptor.c b/src/mame/video/tceptor.c index 53e9740c729..6e7b2a25fb1 100644 --- a/src/mame/video/tceptor.c +++ b/src/mame/video/tceptor.c @@ -383,7 +383,7 @@ void tceptor_state::video_start() decode_sprite32("gfx4"); /* allocate temp bitmaps */ - machine().primary_screen->register_screen_bitmap(m_temp_bitmap); + m_screen->register_screen_bitmap(m_temp_bitmap); m_c45_road->set_transparent_color(colortable_entry_get_value(machine().colortable, 0xfff)); diff --git a/src/mame/video/tecmo16.c b/src/mame/video/tecmo16.c index 6fe785286be..1b091a65a2e 100644 --- a/src/mame/video/tecmo16.c +++ b/src/mame/video/tecmo16.c @@ -56,11 +56,11 @@ TILE_GET_INFO_MEMBER(tecmo16_state::tx_get_tile_info) void tecmo16_state::video_start() { /* set up tile layers */ - machine().primary_screen->register_screen_bitmap(m_tile_bitmap_bg); - machine().primary_screen->register_screen_bitmap(m_tile_bitmap_fg); + m_screen->register_screen_bitmap(m_tile_bitmap_bg); + m_screen->register_screen_bitmap(m_tile_bitmap_fg); /* set up sprites */ - machine().primary_screen->register_screen_bitmap(m_sprite_bitmap); + m_screen->register_screen_bitmap(m_sprite_bitmap); m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(tecmo16_state::fg_get_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32); m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(tecmo16_state::bg_get_tile_info),this),TILEMAP_SCAN_ROWS,16,16,32,32); @@ -78,11 +78,11 @@ void tecmo16_state::video_start() VIDEO_START_MEMBER(tecmo16_state,ginkun) { /* set up tile layers */ - machine().primary_screen->register_screen_bitmap(m_tile_bitmap_bg); - machine().primary_screen->register_screen_bitmap(m_tile_bitmap_fg); + m_screen->register_screen_bitmap(m_tile_bitmap_bg); + m_screen->register_screen_bitmap(m_tile_bitmap_fg); /* set up sprites */ - machine().primary_screen->register_screen_bitmap(m_sprite_bitmap); + m_screen->register_screen_bitmap(m_sprite_bitmap); m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(tecmo16_state::fg_get_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64,32); m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(tecmo16_state::bg_get_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64,32); @@ -98,11 +98,11 @@ VIDEO_START_MEMBER(tecmo16_state,ginkun) VIDEO_START_MEMBER(tecmo16_state,riot) { /* set up tile layers */ - machine().primary_screen->register_screen_bitmap(m_tile_bitmap_bg); - machine().primary_screen->register_screen_bitmap(m_tile_bitmap_fg); + m_screen->register_screen_bitmap(m_tile_bitmap_bg); + m_screen->register_screen_bitmap(m_tile_bitmap_fg); /* set up sprites */ - machine().primary_screen->register_screen_bitmap(m_sprite_bitmap); + m_screen->register_screen_bitmap(m_sprite_bitmap); m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(tecmo16_state::fg_get_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64,32); m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(tecmo16_state::bg_get_tile_info),this),TILEMAP_SCAN_ROWS,16,16,64,32); diff --git a/src/mame/video/tia.c b/src/mame/video/tia.c index 8e53e9809d9..f9f3966750a 100644 --- a/src/mame/video/tia.c +++ b/src/mame/video/tia.c @@ -170,7 +170,8 @@ const device_type TIA_VIDEO = &device_creator; //------------------------------------------------- tia_video_device::tia_video_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) - : device_t(mconfig, TIA_VIDEO, "TIA Video", tag, owner, clock, "tia_video", __FILE__) + : device_t(mconfig, TIA_VIDEO, "TIA Video", tag, owner, clock, "tia_video", __FILE__), + device_video_interface(mconfig, *this) { } @@ -208,9 +209,9 @@ void tia_video_device::device_start() m_vsync_callback_func.resolve(m_vsync_callback_cb, *this); - int cx = machine().primary_screen->width(); + int cx = m_screen->width(); - screen_height = machine().primary_screen->height(); + screen_height = m_screen->height(); helper[0] = auto_bitmap_ind16_alloc(machine(), cx, TIA_MAX_SCREEN_HEIGHT); helper[1] = auto_bitmap_ind16_alloc(machine(), cx, TIA_MAX_SCREEN_HEIGHT); helper[2] = auto_bitmap_ind16_alloc(machine(), cx, TIA_MAX_SCREEN_HEIGHT); @@ -813,8 +814,8 @@ WRITE8_MEMBER( tia_video_device::VSYNC_w ) if ( curr_y > 5 ) update_bitmap( - machine().primary_screen->width(), - machine().primary_screen->height()); + m_screen->width(), + m_screen->height()); if ( !m_vsync_callback_func.isnull() ) { m_vsync_callback_func(0, curr_y, 0xFFFF ); diff --git a/src/mame/video/tia.h b/src/mame/video/tia.h index 56218830885..a296dc7be07 100644 --- a/src/mame/video/tia.h +++ b/src/mame/video/tia.h @@ -49,6 +49,7 @@ struct tia_interface { // ======================> tia_video_device class tia_video_device : public device_t, + public device_video_interface, public tia_interface { public: diff --git a/src/mame/video/timeplt.c b/src/mame/video/timeplt.c index 439356f7271..af74fa0d4fd 100644 --- a/src/mame/video/timeplt.c +++ b/src/mame/video/timeplt.c @@ -160,7 +160,7 @@ WRITE8_MEMBER(timeplt_state::timeplt_flipscreen_w) READ8_MEMBER(timeplt_state::timeplt_scanline_r) { - return machine().primary_screen->vpos(); + return m_screen->vpos(); } diff --git a/src/mame/video/tnzs.c b/src/mame/video/tnzs.c index f244acbe5f4..2303f4b5787 100644 --- a/src/mame/video/tnzs.c +++ b/src/mame/video/tnzs.c @@ -49,7 +49,7 @@ UINT32 tnzs_state::screen_update_tnzs(screen_device &screen, bitmap_ind16 &bitma m_seta001->set_fg_yoffsets( -0x12, 0x0e ); m_seta001->set_bg_yoffsets( 0x1, -0x1 ); - m_seta001->draw_sprites(bitmap, cliprect, 0x800, 0 ); + m_seta001->draw_sprites(screen, bitmap, cliprect, 0x800, 0 ); return 0; } diff --git a/src/mame/video/toaplan1.c b/src/mame/video/toaplan1.c index 270b9af648f..afac4584b72 100644 --- a/src/mame/video/toaplan1.c +++ b/src/mame/video/toaplan1.c @@ -317,7 +317,7 @@ void toaplan1_state::register_common() VIDEO_START_MEMBER(toaplan1_rallybik_state,rallybik) { - m_spritegen->alloc_sprite_bitmap(); + m_spritegen->alloc_sprite_bitmap(*m_screen); m_spritegen->set_gfx_region(1); toaplan1_create_tilemaps(); @@ -373,7 +373,7 @@ VIDEO_START_MEMBER(toaplan1_state,toaplan1) READ16_MEMBER(toaplan1_state::toaplan1_frame_done_r) { - return machine().primary_screen->vblank(); + return m_screen->vblank(); } WRITE16_MEMBER(toaplan1_state::toaplan1_tile_offsets_w) @@ -428,7 +428,7 @@ WRITE16_MEMBER(toaplan1_state::toaplan1_bcu_flipscreen_w) machine().tilemap().set_flip_all((data ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0)); if (m_bcu_flipscreen) { - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); m_scrollx_offs1 = 0x151 - 6; m_scrollx_offs2 = 0x151 - 4; @@ -1028,7 +1028,7 @@ void toaplan1_state::draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, c /****** flip the sprite layer ******/ if (fcu_flipscreen) { - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); sx_base = visarea.width() - (sx_base + 8); /* visarea.x = 320 */ sy_base = visarea.height() - (sy_base + 8); /* visarea.y = 240 */ diff --git a/src/mame/video/toaplan2.c b/src/mame/video/toaplan2.c index 756320db85c..6eede6c3111 100644 --- a/src/mame/video/toaplan2.c +++ b/src/mame/video/toaplan2.c @@ -81,7 +81,7 @@ VIDEO_START_MEMBER(toaplan2_state,toaplan2) m_vdp1 = machine().device("gp9001vdp1"); /* our current VDP implementation needs this bitmap to work with */ - machine().primary_screen->register_screen_bitmap(m_custom_priority_bitmap); + m_screen->register_screen_bitmap(m_custom_priority_bitmap); if (m_vdp0 != NULL) { @@ -91,7 +91,7 @@ VIDEO_START_MEMBER(toaplan2_state,toaplan2) if (m_vdp1 != NULL) { - machine().primary_screen->register_screen_bitmap(m_secondary_render_bitmap); + m_screen->register_screen_bitmap(m_secondary_render_bitmap); m_vdp1->custom_priority_bitmap = &m_custom_priority_bitmap; } diff --git a/src/mame/video/toaplan_scu.c b/src/mame/video/toaplan_scu.c index e76a677576b..6db8d6a79c8 100644 --- a/src/mame/video/toaplan_scu.c +++ b/src/mame/video/toaplan_scu.c @@ -24,9 +24,9 @@ void toaplan_scu_device::device_reset() { } -void toaplan_scu_device::alloc_sprite_bitmap() +void toaplan_scu_device::alloc_sprite_bitmap(screen_device &screen) { - machine().primary_screen->register_screen_bitmap(m_temp_spritebitmap); + screen.register_screen_bitmap(m_temp_spritebitmap); } void toaplan_scu_device::set_gfx_region(int region) diff --git a/src/mame/video/toaplan_scu.h b/src/mame/video/toaplan_scu.h index dc8ba4e0803..13b2c735118 100644 --- a/src/mame/video/toaplan_scu.h +++ b/src/mame/video/toaplan_scu.h @@ -9,7 +9,7 @@ public: void draw_sprites_to_tempbitmap(const rectangle &cliprect, UINT16* spriteram, UINT32 bytes ); void copy_sprites_from_tempbitmap(bitmap_ind16 &bitmap, const rectangle &cliprect, int priority); - void alloc_sprite_bitmap(); + void alloc_sprite_bitmap(screen_device &screen); void set_gfx_region(int region); protected: diff --git a/src/mame/video/toki.c b/src/mame/video/toki.c index d9bc86fd39e..fc58b61daf5 100644 --- a/src/mame/video/toki.c +++ b/src/mame/video/toki.c @@ -28,7 +28,7 @@ remove all the code writing the $a0000 area.) WRITE16_MEMBER(toki_state::toki_control_w) { - machine().primary_screen->update_partial(machine().primary_screen->vpos() - 1); + m_screen->update_partial(m_screen->vpos() - 1); COMBINE_DATA(&m_scrollram16[offset]); } diff --git a/src/mame/video/toobin.c b/src/mame/video/toobin.c index 9b2fe5a6eff..1ff31180eeb 100644 --- a/src/mame/video/toobin.c +++ b/src/mame/video/toobin.c @@ -80,7 +80,7 @@ VIDEO_START_MEMBER(toobin_state,toobin) { /* allocate a playfield bitmap for rendering */ - machine().primary_screen->register_screen_bitmap(m_pfbitmap); + m_screen->register_screen_bitmap(m_pfbitmap); save_item(NAME(m_brightness)); } @@ -148,7 +148,7 @@ WRITE16_MEMBER( toobin_state::toobin_xscroll_w ) /* if anything has changed, force a partial update */ if (newscroll != oldscroll) - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); /* update the playfield scrolling - hscroll is clocked on the following scanline */ m_playfield_tilemap->set_scrollx(0, newscroll >> 6); @@ -167,7 +167,7 @@ WRITE16_MEMBER( toobin_state::toobin_yscroll_w ) /* if anything has changed, force a partial update */ if (newscroll != oldscroll) - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); /* if bit 4 is zero, the scroll value is clocked in right away */ m_playfield_tilemap->set_scrolly(0, newscroll >> 6); @@ -193,7 +193,7 @@ WRITE16_MEMBER( toobin_state::toobin_slip_w ) /* if the SLIP is changing, force a partial update first */ if (oldslip != newslip) - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); /* update the data */ m_mob->slipram(offset) = newslip; diff --git a/src/mame/video/tp84.c b/src/mame/video/tp84.c index c41a0a29b6e..20a800ee57b 100644 --- a/src/mame/video/tp84.c +++ b/src/mame/video/tp84.c @@ -107,7 +107,7 @@ void tp84_state::palette_init() WRITE8_MEMBER(tp84_state::tp84_spriteram_w) { /* the game multiplexes the sprites, so update now */ - machine().primary_screen->update_now(); + m_screen->update_now(); m_spriteram[offset] = data; } @@ -115,7 +115,7 @@ WRITE8_MEMBER(tp84_state::tp84_spriteram_w) READ8_MEMBER(tp84_state::tp84_scanline_r) { /* reads 1V - 128V */ - return machine().primary_screen->vpos(); + return m_screen->vpos(); } diff --git a/src/mame/video/triplhnt.c b/src/mame/video/triplhnt.c index d26fd3b53d0..2042f8b04df 100644 --- a/src/mame/video/triplhnt.c +++ b/src/mame/video/triplhnt.c @@ -18,7 +18,7 @@ TILE_GET_INFO_MEMBER(triplhnt_state::get_tile_info) void triplhnt_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_helper); + m_screen->register_screen_bitmap(m_helper); m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(triplhnt_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 16, 16); } @@ -105,7 +105,7 @@ void triplhnt_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprec } if (hit_line != 999 && hit_code != 999) - timer_set(machine().primary_screen->time_until_pos(hit_line), TIMER_HIT, hit_code); + timer_set(m_screen->time_until_pos(hit_line), TIMER_HIT, hit_code); } diff --git a/src/mame/video/tunhunt.c b/src/mame/video/tunhunt.c index 8303b6e9fe1..60d7ebfb6fa 100644 --- a/src/mame/video/tunhunt.c +++ b/src/mame/video/tunhunt.c @@ -72,7 +72,7 @@ void tunhunt_state::video_start() With max RLE expansion, bitmap size is 256x64. */ - m_tmpbitmap.allocate(256, 64, machine().primary_screen->format()); + m_tmpbitmap.allocate(256, 64, m_screen->format()); m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(tunhunt_state::get_fg_tile_info),this), TILEMAP_SCAN_COLS, 8, 8, 32, 32); diff --git a/src/mame/video/turbo.c b/src/mame/video/turbo.c index 95341949276..bffcc00502a 100644 --- a/src/mame/video/turbo.c +++ b/src/mame/video/turbo.c @@ -188,7 +188,7 @@ WRITE8_MEMBER(turbo_state::turbo_videoram_w) m_videoram[offset] = data; if (offset < 0x400) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_fg_tilemap->mark_tile_dirty(offset); } } diff --git a/src/mame/video/twin16.c b/src/mame/video/twin16.c index 8a57bd2a716..37b3d6ae7a3 100644 --- a/src/mame/video/twin16.c +++ b/src/mame/video/twin16.c @@ -148,7 +148,7 @@ int twin16_state::twin16_set_sprite_timer( ) // sprite system busy, maybe a dma? time is guessed, assume 4 scanlines m_sprite_busy = 1; - m_sprite_timer->adjust(machine().primary_screen->frame_period() / machine().primary_screen->height() * 4); + m_sprite_timer->adjust(m_screen->frame_period() / m_screen->height() * 4); return 0; } diff --git a/src/mame/video/twincobr.c b/src/mame/video/twincobr.c index 6112957fdca..c8928e972f7 100644 --- a/src/mame/video/twincobr.c +++ b/src/mame/video/twincobr.c @@ -96,7 +96,7 @@ void twincobr_state::twincobr_create_tilemaps() VIDEO_START_MEMBER(twincobr_state,toaplan0) { - m_spritegen->alloc_sprite_bitmap(); + m_spritegen->alloc_sprite_bitmap(*m_screen); m_spritegen->set_gfx_region(3); /* the video RAM is accessed via ports, it's not memory mapped */ diff --git a/src/mame/video/tx1.c b/src/mame/video/tx1.c index c210022d498..170cb4dcfba 100644 --- a/src/mame/video/tx1.c +++ b/src/mame/video/tx1.c @@ -36,7 +36,7 @@ TIMER_CALLBACK_MEMBER(tx1_state::interrupt_callback) { m_maincpu->set_input_line_and_vector(0, HOLD_LINE, 0xff); - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS)); + m_interrupt_timer->adjust(m_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS)); } @@ -1112,7 +1112,7 @@ VIDEO_START_MEMBER(tx1_state,tx1) m_interrupt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(tx1_state::interrupt_callback),this)); /* /CUDISP CRTC interrupt */ - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS)); + m_interrupt_timer->adjust(m_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS)); } void tx1_state::screen_eof_tx1(screen_device &screen, bool state) @@ -3006,7 +3006,7 @@ VIDEO_START_MEMBER(tx1_state,buggyboy) m_interrupt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(tx1_state::interrupt_callback),this)); /* /CUDISP CRTC interrupt */ - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS)); + m_interrupt_timer->adjust(m_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS)); } VIDEO_START_MEMBER(tx1_state,buggybjr) @@ -3020,7 +3020,7 @@ VIDEO_START_MEMBER(tx1_state,buggybjr) m_interrupt_timer = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(tx1_state::interrupt_callback),this)); /* /CUDISP CRTC interrupt */ - m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS)); + m_interrupt_timer->adjust(m_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS)); } void tx1_state::screen_eof_buggyboy(screen_device &screen, bool state) diff --git a/src/mame/video/ultratnk.c b/src/mame/video/ultratnk.c index 1f0ff193753..24ccdf19425 100644 --- a/src/mame/video/ultratnk.c +++ b/src/mame/video/ultratnk.c @@ -48,7 +48,7 @@ TILE_GET_INFO_MEMBER(ultratnk_state::ultratnk_tile_info) void ultratnk_state::video_start() { - machine().primary_screen->register_screen_bitmap(m_helper); + m_screen->register_screen_bitmap(m_helper); m_playfield = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ultratnk_state::ultratnk_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32); } @@ -117,7 +117,7 @@ void ultratnk_state::screen_eof_ultratnk(screen_device &screen, bool state) rect.max_x = horz - 15 + machine().gfx[1]->width() - 1; rect.max_y = vert - 15 + machine().gfx[1]->height() - 1; - rect &= machine().primary_screen->visible_area(); + rect &= m_screen->visible_area(); m_playfield->draw(screen, m_helper, rect, 0, 0); diff --git a/src/mame/video/vicdual.c b/src/mame/video/vicdual.c index 67dd6d55015..b2205dfbf59 100644 --- a/src/mame/video/vicdual.c +++ b/src/mame/video/vicdual.c @@ -23,7 +23,7 @@ static const pen_t pens_from_color_prom[] = WRITE8_MEMBER(vicdual_state::vicdual_palette_bank_w) { - machine().primary_screen->update_partial(machine().primary_screen->vpos()); + m_screen->update_partial(m_screen->vpos()); m_palette_bank = data & 3; } diff --git a/src/mame/video/victory.c b/src/mame/video/victory.c index f86227be466..6ba3e3d544f 100644 --- a/src/mame/video/victory.c +++ b/src/mame/video/victory.c @@ -156,7 +156,7 @@ READ8_MEMBER(victory_state::victory_video_control_r) result |= (~m_fgcoll & 1) << 6; result |= (~m_vblank_irq & 1) << 5; result |= (~m_bgcoll & 1) << 4; - result |= (machine().primary_screen->vpos() & 0x100) >> 5; + result |= (m_screen->vpos() & 0x100) >> 5; if (LOG_COLLISION) logerror("%04X:5STAT read = %02X\n", space.device().safe_pcbase(), result); return result; diff --git a/src/mame/video/volfied.c b/src/mame/video/volfied.c index 0196295947a..f3b906521bc 100644 --- a/src/mame/video/volfied.c +++ b/src/mame/video/volfied.c @@ -90,8 +90,8 @@ void volfied_state::refresh_pixel_layer( bitmap_ind16 &bitmap ) *********************************************************/ UINT16* p = m_video_ram; - int width = machine().primary_screen->width(); - int height = machine().primary_screen->height(); + int width = m_screen->width(); + int height = m_screen->height(); if (m_video_ctrl & 1) p += 0x20000; diff --git a/src/mame/video/wecleman.c b/src/mame/video/wecleman.c index 9c82c422947..8e5900df38f 100644 --- a/src/mame/video/wecleman.c +++ b/src/mame/video/wecleman.c @@ -894,7 +894,7 @@ VIDEO_START_MEMBER(wecleman_state,wecleman) UINT8 *buffer; int i, j; - assert(machine().primary_screen->format() == BITMAP_FORMAT_RGB32); + assert(m_screen->format() == BITMAP_FORMAT_RGB32); buffer = auto_alloc_array(machine(), UINT8, 0x12c00); // working buffer for sprite operations m_gameid = 0; diff --git a/src/mame/video/williams.c b/src/mame/video/williams.c index 9653667fe71..14679f3d43c 100644 --- a/src/mame/video/williams.c +++ b/src/mame/video/williams.c @@ -329,8 +329,8 @@ WRITE8_MEMBER(williams_state::williams2_fg_select_w) READ8_MEMBER(williams_state::williams_video_counter_r) { - if (machine().primary_screen->vpos() < 0x100) - return machine().primary_screen->vpos() & 0xfc; + if (m_screen->vpos() < 0x100) + return m_screen->vpos() & 0xfc; else return 0xfc; } @@ -338,8 +338,8 @@ READ8_MEMBER(williams_state::williams_video_counter_r) READ8_MEMBER(williams_state::williams2_video_counter_r) { - if (machine().primary_screen->vpos() < 0x100) - return machine().primary_screen->vpos() & 0xfc; + if (m_screen->vpos() < 0x100) + return m_screen->vpos() & 0xfc; else return 0xfc; } @@ -524,7 +524,7 @@ WRITE8_MEMBER(williams_state::williams_blitter_w) /* Log blits */ logerror("%04X:Blit @ %3d : %02X%02X -> %02X%02X, %3dx%3d, mask=%02X, flags=%02X, icount=%d, win=%d\n", - space.device().safe_pc(), machine().primary_screen->vpos(), + space.device().safe_pc(), m_screen->vpos(), m_blitterram[2], m_blitterram[3], m_blitterram[4], m_blitterram[5], m_blitterram[6], m_blitterram[7], diff --git a/src/mame/video/wolfpack.c b/src/mame/video/wolfpack.c index 4236cdc7133..344128bb1e4 100644 --- a/src/mame/video/wolfpack.c +++ b/src/mame/video/wolfpack.c @@ -103,7 +103,7 @@ void wolfpack_state::video_start() m_LFSR = auto_alloc_array(machine(), UINT8, 0x8000); - machine().primary_screen->register_screen_bitmap(m_helper); + m_screen->register_screen_bitmap(m_helper); for (i = 0; i < 0x8000; i++) { diff --git a/src/mame/video/xexex.c b/src/mame/video/xexex.c index 7c96e7a0419..05cc603bc2e 100644 --- a/src/mame/video/xexex.c +++ b/src/mame/video/xexex.c @@ -32,7 +32,7 @@ void xexex_tile_callback(running_machine &machine, int layer, int *code, int *co void xexex_state::video_start() { - assert(machine().primary_screen->format() == BITMAP_FORMAT_RGB32); + assert(m_screen->format() == BITMAP_FORMAT_RGB32); m_cur_alpha = 0; diff --git a/src/mame/video/xmen.c b/src/mame/video/xmen.c index aacf920872a..17b554e7de4 100644 --- a/src/mame/video/xmen.c +++ b/src/mame/video/xmen.c @@ -147,14 +147,14 @@ void xmen_state::screen_eof_xmen6p(screen_device &screen, bool state) rectangle cliprect; int offset; - // const rectangle *visarea = machine().primary_screen->visible_area(); + // const rectangle *visarea = m_screen->visible_area(); // cliprect = *visarea; cliprect.set(0, 64 * 8 - 1, 2 * 8, 30 * 8 - 1); address_space &space = machine().driver_data()->generic_space(); - if (machine().primary_screen->frame_number() & 0x01) + if (m_screen->frame_number() & 0x01) { /* copy the desired spritelist to the chip */ memcpy(m_k053247_ram, m_xmen6p_spriteramright, 0x1000); diff --git a/src/mame/video/yunsun16.c b/src/mame/video/yunsun16.c index 416779c2829..451387914a1 100644 --- a/src/mame/video/yunsun16.c +++ b/src/mame/video/yunsun16.c @@ -131,7 +131,7 @@ void yunsun16_state::video_start() void yunsun16_state::draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect ) { int offs; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); int max_x = visarea.max_x + 1; int max_y = visarea.max_y + 1; diff --git a/src/mame/video/zac2650.c b/src/mame/video/zac2650.c index 197e91738a2..707bf03825d 100644 --- a/src/mame/video/zac2650.c +++ b/src/mame/video/zac2650.c @@ -52,7 +52,7 @@ int zac2650_state::SpriteCollision(int first,int second) { int Checksum=0; int x,y; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); if((m_s2636_0_ram[first * 0x10 + 10] < 0xf0) && (m_s2636_0_ram[second * 0x10 + 10] < 0xf0)) { @@ -123,8 +123,8 @@ void zac2650_state::video_start() m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(zac2650_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 24, 24, 32, 32); - machine().primary_screen->register_screen_bitmap(m_bitmap); - machine().primary_screen->register_screen_bitmap(m_spritebitmap); + m_screen->register_screen_bitmap(m_bitmap); + m_screen->register_screen_bitmap(m_spritebitmap); machine().gfx[1]->set_source(m_s2636_0_ram); machine().gfx[2]->set_source(m_s2636_0_ram); @@ -133,7 +133,7 @@ void zac2650_state::video_start() void zac2650_state::draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect) { int offs; - const rectangle &visarea = machine().primary_screen->visible_area(); + const rectangle &visarea = m_screen->visible_area(); /* -------------------------------------------------------------- */ /* There seems to be a strange setup with this board, in that it */ diff --git a/src/mame/video/zaxxon.c b/src/mame/video/zaxxon.c index a3e66fa566c..864987495c4 100644 --- a/src/mame/video/zaxxon.c +++ b/src/mame/video/zaxxon.c @@ -131,8 +131,8 @@ void zaxxon_state::video_start_common(tilemap_get_info_delegate fg_tile_info) /* configure the foreground tilemap */ m_fg_tilemap->set_transparent_pen(0); - m_fg_tilemap->set_scrolldx(0, machine().primary_screen->width() - 256); - m_fg_tilemap->set_scrolldy(0, machine().primary_screen->height() - 256); + m_fg_tilemap->set_scrolldx(0, m_screen->width() - 256); + m_fg_tilemap->set_scrolldy(0, m_screen->height() - 256); /* register for save states */ save_item(NAME(m_bg_enable));