summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/emu/screen.h2
-rw-r--r--src/mame/drivers/1942.c2
-rw-r--r--src/mame/drivers/1943.c2
-rw-r--r--src/mame/drivers/1945kiii.c8
-rw-r--r--src/mame/drivers/2mindril.c5
-rw-r--r--src/mame/drivers/39in1.c12
-rw-r--r--src/mame/drivers/3do.c4
-rw-r--r--src/mame/drivers/40love.c4
-rw-r--r--src/mame/drivers/4enraya.c2
-rw-r--r--src/mame/drivers/4roses.c2
-rw-r--r--src/mame/drivers/5clown.c8
-rw-r--r--src/mame/drivers/8080bw.c30
-rw-r--r--src/mame/drivers/88games.c2
-rw-r--r--src/mame/drivers/ace.c12
-rw-r--r--src/mame/drivers/acefruit.c12
-rw-r--r--src/mame/drivers/acommand.c22
-rw-r--r--src/mame/drivers/actfancr.c4
-rw-r--r--src/mame/drivers/adp.c31
-rw-r--r--src/mame/drivers/aeroboto.c2
-rw-r--r--src/mame/drivers/aerofgt.c24
-rw-r--r--src/mame/drivers/airbustr.c4
-rw-r--r--src/mame/drivers/ajax.c2
-rw-r--r--src/mame/drivers/albazc.c5
-rw-r--r--src/mame/drivers/albazg.c8
-rw-r--r--src/mame/drivers/aleck64.c2
-rw-r--r--src/mame/drivers/alg.c2
-rw-r--r--src/mame/drivers/aliens.c2
-rw-r--r--src/mame/drivers/alpha68k.c18
-rw-r--r--src/mame/drivers/amaticmg.c22
-rw-r--r--src/mame/drivers/ambush.c2
-rw-r--r--src/mame/drivers/ampoker2.c2
-rw-r--r--src/mame/drivers/amspdwy.c2
-rw-r--r--src/mame/drivers/angelkds.c2
-rw-r--r--src/mame/drivers/appoooh.c4
-rw-r--r--src/mame/drivers/aquarium.c2
-rw-r--r--src/mame/drivers/arabian.c2
-rw-r--r--src/mame/drivers/arcadecl.c2
-rw-r--r--src/mame/drivers/arcadia.c2
-rw-r--r--src/mame/drivers/argus.c6
-rw-r--r--src/mame/drivers/aristmk4.c16
-rw-r--r--src/mame/drivers/aristmk6.c36
-rw-r--r--src/mame/drivers/arkanoid.c4
-rw-r--r--src/mame/drivers/armedf.c16
-rw-r--r--src/mame/drivers/ashnojoe.c2
-rw-r--r--src/mame/drivers/asterix.c2
-rw-r--r--src/mame/drivers/astinvad.c30
-rw-r--r--src/mame/drivers/astrocde.c4
-rw-r--r--src/mame/drivers/astrocorp.c12
-rw-r--r--src/mame/drivers/astrof.c10
-rw-r--r--src/mame/drivers/asuka.c31
-rw-r--r--src/mame/drivers/atarifb.c6
-rw-r--r--src/mame/drivers/atarig1.c4
-rw-r--r--src/mame/drivers/atarig42.c4
-rw-r--r--src/mame/drivers/atarigt.c4
-rw-r--r--src/mame/drivers/atarigx2.c4
-rw-r--r--src/mame/drivers/atarisy1.c2
-rw-r--r--src/mame/drivers/atarisy2.c2
-rw-r--r--src/mame/drivers/atarisy4.c8
-rw-r--r--src/mame/drivers/atetris.c4
-rw-r--r--src/mame/drivers/atlantis.c5
-rw-r--r--src/mame/drivers/atvtrack.c5
-rw-r--r--src/mame/drivers/avalnche.c11
-rw-r--r--src/mame/drivers/avt.c16
-rw-r--r--src/mame/drivers/backfire.c60
-rw-r--r--src/mame/drivers/badlands.c4
-rw-r--r--src/mame/drivers/bagman.c6
-rw-r--r--src/mame/drivers/balsente.c2
-rw-r--r--src/mame/drivers/bankp.c2
-rw-r--r--src/mame/drivers/baraduke.c4
-rw-r--r--src/mame/drivers/batman.c2
-rw-r--r--src/mame/drivers/battlane.c2
-rw-r--r--src/mame/drivers/battlera.c2
-rw-r--r--src/mame/drivers/battlex.c2
-rw-r--r--src/mame/drivers/battlnts.c2
-rw-r--r--src/mame/drivers/bbusters.c13
-rw-r--r--src/mame/drivers/beaminv.c10
-rw-r--r--src/mame/drivers/beezer.c2
-rw-r--r--src/mame/drivers/berzerk.c12
-rw-r--r--src/mame/drivers/bestleag.c52
-rw-r--r--src/mame/drivers/bfcobra.c32
-rw-r--r--src/mame/drivers/bigevglf.c2
-rw-r--r--src/mame/drivers/bigstrkb.c2
-rw-r--r--src/mame/drivers/bingoc.c5
-rw-r--r--src/mame/drivers/bingor.c14
-rw-r--r--src/mame/drivers/bionicc.c2
-rw-r--r--src/mame/drivers/bishi.c2
-rw-r--r--src/mame/drivers/bking.c4
-rw-r--r--src/mame/drivers/blackt96.c8
-rw-r--r--src/mame/drivers/bladestl.c2
-rw-r--r--src/mame/drivers/blitz.c8
-rw-r--r--src/mame/drivers/blitz68k.c28
-rw-r--r--src/mame/drivers/blktiger.c2
-rw-r--r--src/mame/drivers/blmbycar.c4
-rw-r--r--src/mame/drivers/blockade.c2
-rw-r--r--src/mame/drivers/blockhl.c2
-rw-r--r--src/mame/drivers/blockout.c2
-rw-r--r--src/mame/drivers/bloodbro.c6
-rw-r--r--src/mame/drivers/blstroid.c2
-rw-r--r--src/mame/drivers/blueprnt.c2
-rw-r--r--src/mame/drivers/bmcbowl.c14
-rw-r--r--src/mame/drivers/bmcpokr.c8
-rw-r--r--src/mame/drivers/bnstars.c40
-rw-r--r--src/mame/drivers/bogeyman.c2
-rw-r--r--src/mame/drivers/bombjack.c2
-rw-r--r--src/mame/drivers/boogwing.c2
-rw-r--r--src/mame/drivers/bottom9.c2
-rw-r--r--src/mame/drivers/boxer.c8
-rw-r--r--src/mame/drivers/brkthru.c4
-rw-r--r--src/mame/drivers/bsktball.c2
-rw-r--r--src/mame/drivers/btime.c14
-rw-r--r--src/mame/drivers/bublbobl.c4
-rw-r--r--src/mame/drivers/buggychl.c2
-rw-r--r--src/mame/drivers/buster.c8
-rw-r--r--src/mame/drivers/bwing.c2
-rw-r--r--src/mame/drivers/cabal.c4
-rw-r--r--src/mame/drivers/cabaret.c10
-rw-r--r--src/mame/drivers/calomega.c2
-rw-r--r--src/mame/drivers/calorie.c30
-rw-r--r--src/mame/drivers/canyon.c2
-rw-r--r--src/mame/drivers/capbowl.c2
-rw-r--r--src/mame/drivers/cardline.c14
-rw-r--r--src/mame/drivers/carjmbre.c2
-rw-r--r--src/mame/drivers/carpolo.c4
-rw-r--r--src/mame/drivers/carrera.c8
-rw-r--r--src/mame/drivers/caswin.c8
-rw-r--r--src/mame/drivers/cave.c30
-rw-r--r--src/mame/drivers/cb2001.c44
-rw-r--r--src/mame/drivers/cball.c14
-rw-r--r--src/mame/drivers/cbasebal.c2
-rw-r--r--src/mame/drivers/cbuster.c2
-rw-r--r--src/mame/drivers/ccastles.c2
-rw-r--r--src/mame/drivers/cchance.c4
-rw-r--r--src/mame/drivers/cclimber.c8
-rw-r--r--src/mame/drivers/cd32.c2
-rw-r--r--src/mame/drivers/cdi.c4
-rw-r--r--src/mame/drivers/centiped.c10
-rw-r--r--src/mame/drivers/chaknpop.c2
-rw-r--r--src/mame/drivers/cham24.c5
-rw-r--r--src/mame/drivers/champbas.c25
-rw-r--r--src/mame/drivers/champbwl.c24
-rw-r--r--src/mame/drivers/chanbara.c12
-rw-r--r--src/mame/drivers/chance32.c18
-rw-r--r--src/mame/drivers/changela.c2
-rw-r--r--src/mame/drivers/cheekyms.c2
-rw-r--r--src/mame/drivers/chinagat.c6
-rw-r--r--src/mame/drivers/chinsan.c10
-rw-r--r--src/mame/drivers/chqflag.c2
-rw-r--r--src/mame/drivers/cinemat.c4
-rw-r--r--src/mame/drivers/circus.c8
-rw-r--r--src/mame/drivers/circusc.c2
-rw-r--r--src/mame/drivers/cischeat.c8
-rw-r--r--src/mame/drivers/citycon.c2
-rw-r--r--src/mame/drivers/clayshoo.c10
-rw-r--r--src/mame/drivers/cloak.c2
-rw-r--r--src/mame/drivers/cloud9.c2
-rw-r--r--src/mame/drivers/clshroad.c4
-rw-r--r--src/mame/drivers/cmmb.c8
-rw-r--r--src/mame/drivers/cninja.c12
-rw-r--r--src/mame/drivers/cntsteer.c46
-rw-r--r--src/mame/drivers/cobra.c10
-rw-r--r--src/mame/drivers/coinmstr.c8
-rw-r--r--src/mame/drivers/coinmvga.c8
-rw-r--r--src/mame/drivers/combatsc.c4
-rw-r--r--src/mame/drivers/commando.c2
-rw-r--r--src/mame/drivers/compgolf.c2
-rw-r--r--src/mame/drivers/contra.c2
-rw-r--r--src/mame/drivers/coolridr.c42
-rw-r--r--src/mame/drivers/cop01.c4
-rw-r--r--src/mame/drivers/copsnrob.c2
-rw-r--r--src/mame/drivers/corona.c22
-rw-r--r--src/mame/drivers/cosmic.c12
-rw-r--r--src/mame/drivers/cps1.c16
-rw-r--r--src/mame/drivers/cps2.c4
-rw-r--r--src/mame/drivers/cps3.c97
-rw-r--r--src/mame/drivers/crbaloon.c2
-rw-r--r--src/mame/drivers/crimfght.c2
-rw-r--r--src/mame/drivers/crospang.c2
-rw-r--r--src/mame/drivers/crshrace.c4
-rw-r--r--src/mame/drivers/crystal.c30
-rw-r--r--src/mame/drivers/cshooter.c18
-rw-r--r--src/mame/drivers/cubeqst.c16
-rw-r--r--src/mame/drivers/cultures.c36
-rw-r--r--src/mame/drivers/cvs.c2
-rw-r--r--src/mame/drivers/cyberbal.c6
-rw-r--r--src/mame/drivers/cybertnk.c10
-rw-r--r--src/mame/drivers/cyclemb.c10
-rw-r--r--src/mame/drivers/d9final.c8
-rw-r--r--src/mame/drivers/dacholer.c20
-rw-r--r--src/mame/drivers/dai3wksi.c18
-rw-r--r--src/mame/drivers/dambustr.c2
-rw-r--r--src/mame/drivers/darius.c6
-rw-r--r--src/mame/drivers/darkmist.c2
-rw-r--r--src/mame/drivers/darkseal.c2
-rw-r--r--src/mame/drivers/dassault.c2
-rw-r--r--src/mame/drivers/dblewing.c20
-rw-r--r--src/mame/drivers/dbz.c2
-rw-r--r--src/mame/drivers/dcheese.c2
-rw-r--r--src/mame/drivers/dcon.c4
-rw-r--r--src/mame/drivers/dday.c2
-rw-r--r--src/mame/drivers/ddayjlc.c22
-rw-r--r--src/mame/drivers/ddealer.c30
-rw-r--r--src/mame/drivers/ddenlovr.c61
-rw-r--r--src/mame/drivers/ddragon.c6
-rw-r--r--src/mame/drivers/ddragon3.c4
-rw-r--r--src/mame/drivers/ddribble.c2
-rw-r--r--src/mame/drivers/ddz.c10
-rw-r--r--src/mame/drivers/deadang.c2
-rw-r--r--src/mame/drivers/dec0.c20
-rw-r--r--src/mame/drivers/dec8.c31
-rw-r--r--src/mame/drivers/deco156.c18
-rw-r--r--src/mame/drivers/deco32.c20
-rw-r--r--src/mame/drivers/deco_ld.c18
-rw-r--r--src/mame/drivers/deco_mlc.c8
-rw-r--r--src/mame/drivers/decocass.c2
-rw-r--r--src/mame/drivers/deniam.c4
-rw-r--r--src/mame/drivers/deshoros.c9
-rw-r--r--src/mame/drivers/destroyr.c22
-rw-r--r--src/mame/drivers/dgpix.c8
-rw-r--r--src/mame/drivers/dietgo.c2
-rw-r--r--src/mame/drivers/discoboy.c16
-rw-r--r--src/mame/drivers/diverboy.c5
-rw-r--r--src/mame/drivers/djboy.c4
-rw-r--r--src/mame/drivers/djmain.c2
-rw-r--r--src/mame/drivers/dkong.c8
-rw-r--r--src/mame/drivers/dlair.c8
-rw-r--r--src/mame/drivers/dmndrby.c44
-rw-r--r--src/mame/drivers/docastle.c2
-rw-r--r--src/mame/drivers/dogfgt.c2
-rw-r--r--src/mame/drivers/dominob.c14
-rw-r--r--src/mame/drivers/dooyong.c18
-rw-r--r--src/mame/drivers/dorachan.c14
-rw-r--r--src/mame/drivers/dotrikun.c12
-rw-r--r--src/mame/drivers/dragrace.c2
-rw-r--r--src/mame/drivers/dreamwld.c52
-rw-r--r--src/mame/drivers/drgnmst.c2
-rw-r--r--src/mame/drivers/dribling.c2
-rw-r--r--src/mame/drivers/drmicro.c2
-rw-r--r--src/mame/drivers/drtomy.c10
-rw-r--r--src/mame/drivers/drw80pkr.c8
-rw-r--r--src/mame/drivers/dunhuang.c18
-rw-r--r--src/mame/drivers/dwarfd.c5
-rw-r--r--src/mame/drivers/dynadice.c10
-rw-r--r--src/mame/drivers/dynax.c20
-rw-r--r--src/mame/drivers/dynduke.c2
-rw-r--r--src/mame/drivers/egghunt.c8
-rw-r--r--src/mame/drivers/embargo.c10
-rw-r--r--src/mame/drivers/enigma2.c32
-rw-r--r--src/mame/drivers/eolith.c2
-rw-r--r--src/mame/drivers/eolith16.c10
-rw-r--r--src/mame/drivers/epos.c4
-rw-r--r--src/mame/drivers/eprom.c6
-rw-r--r--src/mame/drivers/equites.c4
-rw-r--r--src/mame/drivers/esd16.c2
-rw-r--r--src/mame/drivers/esh.c16
-rw-r--r--src/mame/drivers/espial.c2
-rw-r--r--src/mame/drivers/esripsys.c2
-rw-r--r--src/mame/drivers/ettrivia.c10
-rw-r--r--src/mame/drivers/exedexes.c2
-rw-r--r--src/mame/drivers/exerion.c2
-rw-r--r--src/mame/drivers/exidy.c2
-rw-r--r--src/mame/drivers/expro02.c16
-rw-r--r--src/mame/drivers/exprraid.c2
-rw-r--r--src/mame/drivers/exzisus.c2
-rw-r--r--src/mame/drivers/f-32.c10
-rw-r--r--src/mame/drivers/f1gp.c6
-rw-r--r--src/mame/drivers/famibox.c5
-rw-r--r--src/mame/drivers/fantland.c8
-rw-r--r--src/mame/drivers/fastfred.c4
-rw-r--r--src/mame/drivers/fastlane.c2
-rw-r--r--src/mame/drivers/fcombat.c2
-rw-r--r--src/mame/drivers/fcrash.c86
-rw-r--r--src/mame/drivers/feversoc.c8
-rw-r--r--src/mame/drivers/fgoal.c2
-rw-r--r--src/mame/drivers/finalizr.c2
-rw-r--r--src/mame/drivers/firebeat.c12
-rw-r--r--src/mame/drivers/firefox.c10
-rw-r--r--src/mame/drivers/firetrap.c4
-rw-r--r--src/mame/drivers/firetrk.c6
-rw-r--r--src/mame/drivers/fitfight.c4
-rw-r--r--src/mame/drivers/flipjack.c18
-rw-r--r--src/mame/drivers/flkatck.c2
-rw-r--r--src/mame/drivers/flower.c2
-rw-r--r--src/mame/drivers/flstory.c8
-rw-r--r--src/mame/drivers/flyball.c20
-rw-r--r--src/mame/drivers/foodf.c2
-rw-r--r--src/mame/drivers/fortecar.c12
-rw-r--r--src/mame/drivers/freekick.c6
-rw-r--r--src/mame/drivers/fromanc2.c12
-rw-r--r--src/mame/drivers/fromance.c6
-rw-r--r--src/mame/drivers/funkball.c3
-rw-r--r--src/mame/drivers/funkybee.c2
-rw-r--r--src/mame/drivers/funkyjet.c2
-rw-r--r--src/mame/drivers/funworld.c2
-rw-r--r--src/mame/drivers/funybubl.c2
-rw-r--r--src/mame/drivers/fuukifg2.c2
-rw-r--r--src/mame/drivers/fuukifg3.c4
-rw-r--r--src/mame/drivers/gaelco.c8
-rw-r--r--src/mame/drivers/gaelco2.c16
-rw-r--r--src/mame/drivers/gaelco3d.c2
-rw-r--r--src/mame/drivers/gaiden.c8
-rw-r--r--src/mame/drivers/gal3.c18
-rw-r--r--src/mame/drivers/galaga.c12
-rw-r--r--src/mame/drivers/galastrm.c2
-rw-r--r--src/mame/drivers/galaxi.c16
-rw-r--r--src/mame/drivers/galaxia.c4
-rw-r--r--src/mame/drivers/galaxian.c2
-rw-r--r--src/mame/drivers/galaxold.c10
-rw-r--r--src/mame/drivers/galgame.c10
-rw-r--r--src/mame/drivers/galivan.c4
-rw-r--r--src/mame/drivers/galpani2.c2
-rw-r--r--src/mame/drivers/galpani3.c52
-rw-r--r--src/mame/drivers/galpanic.c18
-rw-r--r--src/mame/drivers/galspnbl.c2
-rw-r--r--src/mame/drivers/gamecstl.c8
-rw-r--r--src/mame/drivers/gaplus.c4
-rw-r--r--src/mame/drivers/gatron.c2
-rw-r--r--src/mame/drivers/gauntlet.c2
-rw-r--r--src/mame/drivers/gberet.c4
-rw-r--r--src/mame/drivers/gbusters.c2
-rw-r--r--src/mame/drivers/gcpinbal.c2
-rw-r--r--src/mame/drivers/gijoe.c2
-rw-r--r--src/mame/drivers/ginganin.c2
-rw-r--r--src/mame/drivers/gladiatr.c4
-rw-r--r--src/mame/drivers/glass.c2
-rw-r--r--src/mame/drivers/gng.c2
-rw-r--r--src/mame/drivers/go2000.c26
-rw-r--r--src/mame/drivers/goal92.c4
-rw-r--r--src/mame/drivers/goindol.c2
-rw-r--r--src/mame/drivers/goldngam.c8
-rw-r--r--src/mame/drivers/goldnpkr.c8
-rw-r--r--src/mame/drivers/goldstar.c44
-rw-r--r--src/mame/drivers/gomoku.c2
-rw-r--r--src/mame/drivers/good.c10
-rw-r--r--src/mame/drivers/gotcha.c2
-rw-r--r--src/mame/drivers/gottlieb.c6
-rw-r--r--src/mame/drivers/gotya.c2
-rw-r--r--src/mame/drivers/gpworld.c5
-rw-r--r--src/mame/drivers/gradius3.c2
-rw-r--r--src/mame/drivers/grchamp.c2
-rw-r--r--src/mame/drivers/gridlee.c2
-rw-r--r--src/mame/drivers/groundfx.c2
-rw-r--r--src/mame/drivers/gstream.c34
-rw-r--r--src/mame/drivers/gstriker.c4
-rw-r--r--src/mame/drivers/gsword.c4
-rw-r--r--src/mame/drivers/guab.c5
-rw-r--r--src/mame/drivers/gumbo.c2
-rw-r--r--src/mame/drivers/gunbustr.c2
-rw-r--r--src/mame/drivers/gundealr.c2
-rw-r--r--src/mame/drivers/gunpey.c8
-rw-r--r--src/mame/drivers/gunsmoke.c2
-rw-r--r--src/mame/drivers/gyruss.c2
-rw-r--r--src/mame/drivers/halleys.c44
-rw-r--r--src/mame/drivers/hanaawas.c2
-rw-r--r--src/mame/drivers/hcastle.c2
-rw-r--r--src/mame/drivers/hexion.c2
-rw-r--r--src/mame/drivers/higemaru.c2
-rw-r--r--src/mame/drivers/highvdeo.c18
-rw-r--r--src/mame/drivers/hikaru.c5
-rw-r--r--src/mame/drivers/himesiki.c2
-rw-r--r--src/mame/drivers/hitme.c16
-rw-r--r--src/mame/drivers/hitpoker.c12
-rw-r--r--src/mame/drivers/hnayayoi.c2
-rw-r--r--src/mame/drivers/hng64.c4
-rw-r--r--src/mame/drivers/holeland.c4
-rw-r--r--src/mame/drivers/homedata.c14
-rw-r--r--src/mame/drivers/homerun.c2
-rw-r--r--src/mame/drivers/hornet.c22
-rw-r--r--src/mame/drivers/hotblock.c12
-rw-r--r--src/mame/drivers/hotstuff.c16
-rw-r--r--src/mame/drivers/hvyunit.c24
-rw-r--r--src/mame/drivers/hyhoo.c2
-rw-r--r--src/mame/drivers/hyperspt.c2
-rw-r--r--src/mame/drivers/hyprduel.c4
-rw-r--r--src/mame/drivers/igs009.c28
-rw-r--r--src/mame/drivers/igs011.c24
-rw-r--r--src/mame/drivers/igs017.c26
-rw-r--r--src/mame/drivers/igs_m027.c10
-rw-r--r--src/mame/drivers/igspoker.c18
-rw-r--r--src/mame/drivers/ikki.c2
-rw-r--r--src/mame/drivers/imolagp.c10
-rw-r--r--src/mame/drivers/intrscti.c10
-rw-r--r--src/mame/drivers/inufuku.c2
-rw-r--r--src/mame/drivers/iqblock.c2
-rw-r--r--src/mame/drivers/irobot.c2
-rw-r--r--src/mame/drivers/ironhors.c4
-rw-r--r--src/mame/drivers/istellar.c10
-rw-r--r--src/mame/drivers/itech32.c2
-rw-r--r--src/mame/drivers/itech8.c24
-rw-r--r--src/mame/drivers/itgambl2.c32
-rw-r--r--src/mame/drivers/itgambl3.c32
-rw-r--r--src/mame/drivers/jack.c6
-rw-r--r--src/mame/drivers/jackal.c2
-rw-r--r--src/mame/drivers/jackie.c22
-rw-r--r--src/mame/drivers/jackpool.c20
-rw-r--r--src/mame/drivers/jailbrek.c2
-rw-r--r--src/mame/drivers/jalmah.c96
-rw-r--r--src/mame/drivers/jangou.c8
-rw-r--r--src/mame/drivers/jantotsu.c12
-rw-r--r--src/mame/drivers/jchan.c22
-rw-r--r--src/mame/drivers/jclub2.c48
-rw-r--r--src/mame/drivers/jokrwild.c8
-rw-r--r--src/mame/drivers/jollyjgr.c38
-rw-r--r--src/mame/drivers/jongkyo.c12
-rw-r--r--src/mame/drivers/jpmsys5.c5
-rw-r--r--src/mame/drivers/jrpacman.c2
-rw-r--r--src/mame/drivers/jubilee.c8
-rw-r--r--src/mame/drivers/junofrst.c2
-rw-r--r--src/mame/drivers/kaneko16.c12
-rw-r--r--src/mame/drivers/kangaroo.c2
-rw-r--r--src/mame/drivers/karnov.c4
-rw-r--r--src/mame/drivers/kchamp.c4
-rw-r--r--src/mame/drivers/kickgoal.c4
-rw-r--r--src/mame/drivers/kingdrby.c22
-rw-r--r--src/mame/drivers/kingobox.c4
-rw-r--r--src/mame/drivers/kinst.c8
-rw-r--r--src/mame/drivers/klax.c2
-rw-r--r--src/mame/drivers/kncljoe.c2
-rw-r--r--src/mame/drivers/koftball.c10
-rw-r--r--src/mame/drivers/koikoi.c8
-rw-r--r--src/mame/drivers/konamigx.c10
-rw-r--r--src/mame/drivers/konamim2.c12
-rw-r--r--src/mame/drivers/kopunch.c2
-rw-r--r--src/mame/drivers/ksayakyu.c2
-rw-r--r--src/mame/drivers/kyugo.c2
-rw-r--r--src/mame/drivers/labyrunr.c2
-rw-r--r--src/mame/drivers/ladybug.c6
-rw-r--r--src/mame/drivers/ladyfrog.c2
-rw-r--r--src/mame/drivers/laserbas.c18
-rw-r--r--src/mame/drivers/laserbat.c23
-rw-r--r--src/mame/drivers/lasso.c8
-rw-r--r--src/mame/drivers/lastduel.c4
-rw-r--r--src/mame/drivers/lastfght.c22
-rw-r--r--src/mame/drivers/lazercmd.c6
-rw-r--r--src/mame/drivers/legionna.c14
-rw-r--r--src/mame/drivers/lemmings.c4
-rw-r--r--src/mame/drivers/lethal.c2
-rw-r--r--src/mame/drivers/lgp.c8
-rw-r--r--src/mame/drivers/liberate.c8
-rw-r--r--src/mame/drivers/limenko.c38
-rw-r--r--src/mame/drivers/littlerb.c10
-rw-r--r--src/mame/drivers/lkage.c4
-rw-r--r--src/mame/drivers/lockon.c4
-rw-r--r--src/mame/drivers/looping.c8
-rw-r--r--src/mame/drivers/lordgun.c4
-rw-r--r--src/mame/drivers/lsasquad.c4
-rw-r--r--src/mame/drivers/ltcasino.c8
-rw-r--r--src/mame/drivers/luckgrln.c42
-rw-r--r--src/mame/drivers/lucky74.c2
-rw-r--r--src/mame/drivers/lvcards.c2
-rw-r--r--src/mame/drivers/lwings.c4
-rw-r--r--src/mame/drivers/m10.c4
-rw-r--r--src/mame/drivers/m107.c2
-rw-r--r--src/mame/drivers/m14.c8
-rw-r--r--src/mame/drivers/m52.c2
-rw-r--r--src/mame/drivers/m57.c2
-rw-r--r--src/mame/drivers/m58.c2
-rw-r--r--src/mame/drivers/m62.c24
-rw-r--r--src/mame/drivers/m63.c14
-rw-r--r--src/mame/drivers/m72.c26
-rw-r--r--src/mame/drivers/m79amb.c8
-rw-r--r--src/mame/drivers/m90.c6
-rw-r--r--src/mame/drivers/m92.c4
-rw-r--r--src/mame/drivers/macrossp.c4
-rw-r--r--src/mame/drivers/macs.c2
-rw-r--r--src/mame/drivers/madmotor.c2
-rw-r--r--src/mame/drivers/magic10.c20
-rw-r--r--src/mame/drivers/magicard.c17
-rw-r--r--src/mame/drivers/magicfly.c8
-rw-r--r--src/mame/drivers/magictg.c9
-rw-r--r--src/mame/drivers/magmax.c2
-rw-r--r--src/mame/drivers/mainevt.c4
-rw-r--r--src/mame/drivers/mainsnk.c2
-rw-r--r--src/mame/drivers/majorpkr.c16
-rw-r--r--src/mame/drivers/malzak.c2
-rw-r--r--src/mame/drivers/mappy.c6
-rw-r--r--src/mame/drivers/marineb.c12
-rw-r--r--src/mame/drivers/marinedt.c98
-rw-r--r--src/mame/drivers/mario.c2
-rw-r--r--src/mame/drivers/markham.c2
-rw-r--r--src/mame/drivers/mastboy.c12
-rw-r--r--src/mame/drivers/matmania.c4
-rw-r--r--src/mame/drivers/maygayv1.c18
-rw-r--r--src/mame/drivers/mayumi.c8
-rw-r--r--src/mame/drivers/mazerbla.c62
-rw-r--r--src/mame/drivers/mcatadv.c4
-rw-r--r--src/mame/drivers/mcr.c2
-rw-r--r--src/mame/drivers/mcr3.c4
-rw-r--r--src/mame/drivers/mcr68.c4
-rw-r--r--src/mame/drivers/meadows.c6
-rw-r--r--src/mame/drivers/mediagx.c8
-rw-r--r--src/mame/drivers/megaplay.c9
-rw-r--r--src/mame/drivers/megasys1.c14
-rw-r--r--src/mame/drivers/megatech.c22
-rw-r--r--src/mame/drivers/megazone.c2
-rw-r--r--src/mame/drivers/meijinsn.c10
-rw-r--r--src/mame/drivers/meritm.c22
-rw-r--r--src/mame/drivers/mermaid.c4
-rw-r--r--src/mame/drivers/metalmx.c7
-rw-r--r--src/mame/drivers/metlclsh.c2
-rw-r--r--src/mame/drivers/metro.c48
-rw-r--r--src/mame/drivers/mexico86.c6
-rw-r--r--src/mame/drivers/meyc8080.c14
-rw-r--r--src/mame/drivers/meyc8088.c29
-rw-r--r--src/mame/drivers/mgolf.c20
-rw-r--r--src/mame/drivers/midas.c14
-rw-r--r--src/mame/drivers/midvunit.c2
-rw-r--r--src/mame/drivers/midzeus.c4
-rw-r--r--src/mame/drivers/mikie.c2
-rw-r--r--src/mame/drivers/mil4000.c14
-rw-r--r--src/mame/drivers/miniboy7.c8
-rw-r--r--src/mame/drivers/minivadr.c10
-rw-r--r--src/mame/drivers/mirage.c18
-rw-r--r--src/mame/drivers/mirax.c5
-rw-r--r--src/mame/drivers/missb2.c34
-rw-r--r--src/mame/drivers/missile.c10
-rw-r--r--src/mame/drivers/mitchell.c10
-rw-r--r--src/mame/drivers/mjkjidai.c2
-rw-r--r--src/mame/drivers/mjsister.c24
-rw-r--r--src/mame/drivers/mlanding.c12
-rw-r--r--src/mame/drivers/model1.c8
-rw-r--r--src/mame/drivers/model2.c8
-rw-r--r--src/mame/drivers/model3.c8
-rw-r--r--src/mame/drivers/mogura.c14
-rw-r--r--src/mame/drivers/mole.c8
-rw-r--r--src/mame/drivers/momoko.c2
-rw-r--r--src/mame/drivers/monzagp.c26
-rw-r--r--src/mame/drivers/moo.c4
-rw-r--r--src/mame/drivers/mosaic.c2
-rw-r--r--src/mame/drivers/mouser.c2
-rw-r--r--src/mame/drivers/mpoker.c10
-rw-r--r--src/mame/drivers/mpu4dealem.c8
-rw-r--r--src/mame/drivers/mpu4plasma.c8
-rw-r--r--src/mame/drivers/mpu4vid.c8
-rw-r--r--src/mame/drivers/mquake.c2
-rw-r--r--src/mame/drivers/mrdo.c2
-rw-r--r--src/mame/drivers/mrflea.c2
-rw-r--r--src/mame/drivers/mrjong.c2
-rw-r--r--src/mame/drivers/ms32.c2
-rw-r--r--src/mame/drivers/msisaac.c2
-rw-r--r--src/mame/drivers/mugsmash.c2
-rw-r--r--src/mame/drivers/multfish.c18
-rw-r--r--src/mame/drivers/multigam.c5
-rw-r--r--src/mame/drivers/munchmo.c2
-rw-r--r--src/mame/drivers/murogem.c10
-rw-r--r--src/mame/drivers/murogmbl.c8
-rw-r--r--src/mame/drivers/mustache.c2
-rw-r--r--src/mame/drivers/mw8080bw.c10
-rw-r--r--src/mame/drivers/mwarr.c42
-rw-r--r--src/mame/drivers/mystwarr.c12
-rw-r--r--src/mame/drivers/n8080.c8
-rw-r--r--src/mame/drivers/namcofl.c2
-rw-r--r--src/mame/drivers/namcona1.c2
-rw-r--r--src/mame/drivers/namconb1.c4
-rw-r--r--src/mame/drivers/namcos1.c4
-rw-r--r--src/mame/drivers/namcos21.c6
-rw-r--r--src/mame/drivers/namcos22.c4
-rw-r--r--src/mame/drivers/namcos23.c12
-rw-r--r--src/mame/drivers/namcos86.c4
-rw-r--r--src/mame/drivers/naomi.c2
-rw-r--r--src/mame/drivers/naughtyb.c4
-rw-r--r--src/mame/drivers/nbmj8688.c8
-rw-r--r--src/mame/drivers/nbmj8891.c2
-rw-r--r--src/mame/drivers/nbmj8900.c2
-rw-r--r--src/mame/drivers/nbmj8991.c4
-rw-r--r--src/mame/drivers/nbmj9195.c4
-rw-r--r--src/mame/drivers/nemesis.c20
-rw-r--r--src/mame/drivers/neogeo.c2
-rw-r--r--src/mame/drivers/neoprint.c10
-rw-r--r--src/mame/drivers/news.c2
-rw-r--r--src/mame/drivers/nexus3d.c5
-rw-r--r--src/mame/drivers/nightgal.c8
-rw-r--r--src/mame/drivers/ninjakd2.c8
-rw-r--r--src/mame/drivers/ninjaw.c12
-rw-r--r--src/mame/drivers/nitedrvr.c2
-rw-r--r--src/mame/drivers/niyanpai.c2
-rw-r--r--src/mame/drivers/nmg5.c46
-rw-r--r--src/mame/drivers/nmk16.c100
-rw-r--r--src/mame/drivers/norautp.c13
-rw-r--r--src/mame/drivers/nova2001.c8
-rw-r--r--src/mame/drivers/nsmpoker.c8
-rw-r--r--src/mame/drivers/nwk-tr.c10
-rw-r--r--src/mame/drivers/nycaptor.c6
-rw-r--r--src/mame/drivers/offtwall.c2
-rw-r--r--src/mame/drivers/ohmygod.c2
-rw-r--r--src/mame/drivers/ojankohs.c8
-rw-r--r--src/mame/drivers/olibochu.c8
-rw-r--r--src/mame/drivers/oneshot.c4
-rw-r--r--src/mame/drivers/onetwo.c8
-rw-r--r--src/mame/drivers/opwolf.c4
-rw-r--r--src/mame/drivers/orbit.c2
-rw-r--r--src/mame/drivers/othldrby.c4
-rw-r--r--src/mame/drivers/othunder.c2
-rw-r--r--src/mame/drivers/overdriv.c2
-rw-r--r--src/mame/drivers/pacland.c2
-rw-r--r--src/mame/drivers/pacman.c4
-rw-r--r--src/mame/drivers/pandoras.c2
-rw-r--r--src/mame/drivers/panicr.c14
-rw-r--r--src/mame/drivers/paradise.c6
-rw-r--r--src/mame/drivers/parodius.c2
-rw-r--r--src/mame/drivers/pasha2.c14
-rw-r--r--src/mame/drivers/pass.c2
-rw-r--r--src/mame/drivers/pastelg.c4
-rw-r--r--src/mame/drivers/pbaction.c2
-rw-r--r--src/mame/drivers/pcktgal.c4
-rw-r--r--src/mame/drivers/pcxt.c10
-rw-r--r--src/mame/drivers/pengo.c2
-rw-r--r--src/mame/drivers/peplus.c8
-rw-r--r--src/mame/drivers/pgm.c4
-rw-r--r--src/mame/drivers/pgm2.c10
-rw-r--r--src/mame/drivers/phoenix.c4
-rw-r--r--src/mame/drivers/photon.c5
-rw-r--r--src/mame/drivers/photon2.c30
-rw-r--r--src/mame/drivers/pingpong.c2
-rw-r--r--src/mame/drivers/pinkiri8.c30
-rw-r--r--src/mame/drivers/pipedrm.c4
-rw-r--r--src/mame/drivers/pipeline.c10
-rw-r--r--src/mame/drivers/pirates.c2
-rw-r--r--src/mame/drivers/pitnrun.c2
-rw-r--r--src/mame/drivers/pkscram.c12
-rw-r--r--src/mame/drivers/pktgaldx.c4
-rw-r--r--src/mame/drivers/playch10.c4
-rw-r--r--src/mame/drivers/playmark.c12
-rw-r--r--src/mame/drivers/plygonet.c2
-rw-r--r--src/mame/drivers/pokechmp.c2
-rw-r--r--src/mame/drivers/poker72.c16
-rw-r--r--src/mame/drivers/polepos.c4
-rw-r--r--src/mame/drivers/policetr.c2
-rw-r--r--src/mame/drivers/polyplay.c2
-rw-r--r--src/mame/drivers/poo.c24
-rw-r--r--src/mame/drivers/poolshrk.c2
-rw-r--r--src/mame/drivers/pooyan.c2
-rw-r--r--src/mame/drivers/popeye.c2
-rw-r--r--src/mame/drivers/popobear.c8
-rw-r--r--src/mame/drivers/popper.c2
-rw-r--r--src/mame/drivers/portrait.c2
-rw-r--r--src/mame/drivers/powerbal.c9
-rw-r--r--src/mame/drivers/powerins.c2
-rw-r--r--src/mame/drivers/ppmast93.c10
-rw-r--r--src/mame/drivers/prehisle.c2
-rw-r--r--src/mame/drivers/progolf.c12
-rw-r--r--src/mame/drivers/psattack.c10
-rw-r--r--src/mame/drivers/psikyo.c16
-rw-r--r--src/mame/drivers/psikyo4.c4
-rw-r--r--src/mame/drivers/psikyosh.c2
-rw-r--r--src/mame/drivers/psychic5.c4
-rw-r--r--src/mame/drivers/pturn.c18
-rw-r--r--src/mame/drivers/punchout.c8
-rw-r--r--src/mame/drivers/pushman.c4
-rw-r--r--src/mame/drivers/pzletime.c28
-rw-r--r--src/mame/drivers/qdrmfgp.c4
-rw-r--r--src/mame/drivers/quakeat.c5
-rw-r--r--src/mame/drivers/quasar.c2
-rw-r--r--src/mame/drivers/quizdna.c2
-rw-r--r--src/mame/drivers/quizo.c8
-rw-r--r--src/mame/drivers/quizpani.c2
-rw-r--r--src/mame/drivers/quizpun2.c10
-rw-r--r--src/mame/drivers/quizshow.c8
-rw-r--r--src/mame/drivers/r2dx_v33.c18
-rw-r--r--src/mame/drivers/rabbit.c36
-rw-r--r--src/mame/drivers/raiden.c2
-rw-r--r--src/mame/drivers/raiden2.c25
-rw-r--r--src/mame/drivers/rainbow.c4
-rw-r--r--src/mame/drivers/rallyx.c10
-rw-r--r--src/mame/drivers/rampart.c2
-rw-r--r--src/mame/drivers/rastan.c2
-rw-r--r--src/mame/drivers/rbmk.c14
-rw-r--r--src/mame/drivers/realbrk.c4
-rw-r--r--src/mame/drivers/redclash.c8
-rw-r--r--src/mame/drivers/relief.c2
-rw-r--r--src/mame/drivers/renegade.c2
-rw-r--r--src/mame/drivers/retofinv.c2
-rw-r--r--src/mame/drivers/rgum.c8
-rw-r--r--src/mame/drivers/rltennis.c2
-rw-r--r--src/mame/drivers/rmhaihai.c8
-rw-r--r--src/mame/drivers/rockrage.c2
-rw-r--r--src/mame/drivers/rocnrope.c2
-rw-r--r--src/mame/drivers/rohga.c8
-rw-r--r--src/mame/drivers/rollerg.c2
-rw-r--r--src/mame/drivers/rollrace.c2
-rw-r--r--src/mame/drivers/rotaryf.c10
-rw-r--r--src/mame/drivers/roul.c8
-rw-r--r--src/mame/drivers/route16.c6
-rw-r--r--src/mame/drivers/royalmah.c10
-rw-r--r--src/mame/drivers/rpunch.c2
-rw-r--r--src/mame/drivers/runaway.c4
-rw-r--r--src/mame/drivers/rungun.c2
-rw-r--r--src/mame/drivers/safarir.c12
-rw-r--r--src/mame/drivers/sandscrp.c20
-rw-r--r--src/mame/drivers/saturn.c8
-rw-r--r--src/mame/drivers/sauro.c4
-rw-r--r--src/mame/drivers/sbasketb.c2
-rw-r--r--src/mame/drivers/sbowling.c10
-rw-r--r--src/mame/drivers/sbrkout.c10
-rw-r--r--src/mame/drivers/sbugger.c2
-rw-r--r--src/mame/drivers/scobra.c4
-rw-r--r--src/mame/drivers/scotrsht.c2
-rw-r--r--src/mame/drivers/scramble.c4
-rw-r--r--src/mame/drivers/scregg.c4
-rw-r--r--src/mame/drivers/sderby.c8
-rw-r--r--src/mame/drivers/seattle.c8
-rw-r--r--src/mame/drivers/segac2.c9
-rw-r--r--src/mame/drivers/segae.c12
-rw-r--r--src/mame/drivers/segag80r.c2
-rw-r--r--src/mame/drivers/segag80v.c2
-rw-r--r--src/mame/drivers/segald.c5
-rw-r--r--src/mame/drivers/segas24.c2
-rw-r--r--src/mame/drivers/segas32.c6
-rw-r--r--src/mame/drivers/seibuspi.c6
-rw-r--r--src/mame/drivers/seicross.c2
-rw-r--r--src/mame/drivers/senjyo.c2
-rw-r--r--src/mame/drivers/seta.c97
-rw-r--r--src/mame/drivers/seta2.c12
-rw-r--r--src/mame/drivers/sf.c2
-rw-r--r--src/mame/drivers/sfbonus.c136
-rw-r--r--src/mame/drivers/shadfrce.c4
-rw-r--r--src/mame/drivers/shangha3.c6
-rw-r--r--src/mame/drivers/shanghai.c9
-rw-r--r--src/mame/drivers/shangkid.c4
-rw-r--r--src/mame/drivers/shaolins.c2
-rw-r--r--src/mame/drivers/shisen.c2
-rw-r--r--src/mame/drivers/shootout.c4
-rw-r--r--src/mame/drivers/shougi.c10
-rw-r--r--src/mame/drivers/shtzone.c5
-rw-r--r--src/mame/drivers/shuuz.c2
-rw-r--r--src/mame/drivers/sidearms.c6
-rw-r--r--src/mame/drivers/sidepckt.c2
-rw-r--r--src/mame/drivers/sigmab52.c5
-rw-r--r--src/mame/drivers/sigmab98.c17
-rw-r--r--src/mame/drivers/silkroad.c2
-rw-r--r--src/mame/drivers/silvmil.c12
-rw-r--r--src/mame/drivers/simpl156.c2
-rw-r--r--src/mame/drivers/simpsons.c2
-rw-r--r--src/mame/drivers/skimaxx.c7
-rw-r--r--src/mame/drivers/skullxbo.c2
-rw-r--r--src/mame/drivers/skyarmy.c12
-rw-r--r--src/mame/drivers/skydiver.c2
-rw-r--r--src/mame/drivers/skyfox.c2
-rw-r--r--src/mame/drivers/skykid.c2
-rw-r--r--src/mame/drivers/skylncr.c22
-rw-r--r--src/mame/drivers/skyraid.c2
-rw-r--r--src/mame/drivers/slapfght.c8
-rw-r--r--src/mame/drivers/slapshot.c8
-rw-r--r--src/mame/drivers/sliver.c10
-rw-r--r--src/mame/drivers/sms.c8
-rw-r--r--src/mame/drivers/snk.c12
-rw-r--r--src/mame/drivers/snk6502.c4
-rw-r--r--src/mame/drivers/snk68.c2
-rw-r--r--src/mame/drivers/snookr10.c2
-rw-r--r--src/mame/drivers/snowbros.c18
-rw-r--r--src/mame/drivers/solomon.c2
-rw-r--r--src/mame/drivers/sonson.c2
-rw-r--r--src/mame/drivers/spacefb.c2
-rw-r--r--src/mame/drivers/spaceg.c10
-rw-r--r--src/mame/drivers/spbactn.c2
-rw-r--r--src/mame/drivers/spcforce.c2
-rw-r--r--src/mame/drivers/spdodgeb.c2
-rw-r--r--src/mame/drivers/speedatk.c2
-rw-r--r--src/mame/drivers/speedbal.c2
-rw-r--r--src/mame/drivers/speedspn.c2
-rw-r--r--src/mame/drivers/speglsht.c16
-rw-r--r--src/mame/drivers/splash.c6
-rw-r--r--src/mame/drivers/spoker.c10
-rw-r--r--src/mame/drivers/spool99.c8
-rw-r--r--src/mame/drivers/sprcros2.c2
-rw-r--r--src/mame/drivers/sprint2.c4
-rw-r--r--src/mame/drivers/sprint4.c4
-rw-r--r--src/mame/drivers/sprint8.c4
-rw-r--r--src/mame/drivers/spy.c2
-rw-r--r--src/mame/drivers/srmp2.c6
-rw-r--r--src/mame/drivers/srmp5.c26
-rw-r--r--src/mame/drivers/srmp6.c14
-rw-r--r--src/mame/drivers/srumbler.c2
-rw-r--r--src/mame/drivers/ssfindo.c18
-rw-r--r--src/mame/drivers/sshangha.c2
-rw-r--r--src/mame/drivers/sshot.c8
-rw-r--r--src/mame/drivers/sslam.c4
-rw-r--r--src/mame/drivers/ssozumo.c2
-rw-r--r--src/mame/drivers/sspeedr.c4
-rw-r--r--src/mame/drivers/ssrj.c4
-rw-r--r--src/mame/drivers/sstrangr.c22
-rw-r--r--src/mame/drivers/ssv.c6
-rw-r--r--src/mame/drivers/st0016.c2
-rw-r--r--src/mame/drivers/stadhero.c2
-rw-r--r--src/mame/drivers/starcrus.c2
-rw-r--r--src/mame/drivers/starfire.c2
-rw-r--r--src/mame/drivers/starshp1.c4
-rw-r--r--src/mame/drivers/statriv2.c8
-rw-r--r--src/mame/drivers/stfight.c2
-rw-r--r--src/mame/drivers/stlforce.c2
-rw-r--r--src/mame/drivers/strnskil.c2
-rw-r--r--src/mame/drivers/sub.c26
-rw-r--r--src/mame/drivers/subs.c4
-rw-r--r--src/mame/drivers/subsino.c64
-rw-r--r--src/mame/drivers/subsino2.c28
-rw-r--r--src/mame/drivers/summit.c8
-rw-r--r--src/mame/drivers/suna16.c8
-rw-r--r--src/mame/drivers/suna8.c10
-rw-r--r--src/mame/drivers/supbtime.c4
-rw-r--r--src/mame/drivers/supdrapo.c10
-rw-r--r--src/mame/drivers/superchs.c2
-rw-r--r--src/mame/drivers/superdq.c8
-rw-r--r--src/mame/drivers/superqix.c8
-rw-r--r--src/mame/drivers/supertnk.c14
-rw-r--r--src/mame/drivers/superwng.c26
-rw-r--r--src/mame/drivers/suprgolf.c14
-rw-r--r--src/mame/drivers/suprloco.c2
-rw-r--r--src/mame/drivers/suprnova.c4
-rw-r--r--src/mame/drivers/suprridr.c2
-rw-r--r--src/mame/drivers/suprslam.c2
-rw-r--r--src/mame/drivers/surpratk.c2
-rw-r--r--src/mame/drivers/system1.c6
-rw-r--r--src/mame/drivers/system16.c14
-rw-r--r--src/mame/drivers/tagteam.c2
-rw-r--r--src/mame/drivers/tail2nos.c2
-rw-r--r--src/mame/drivers/taito_b.c78
-rw-r--r--src/mame/drivers/taito_f2.c84
-rw-r--r--src/mame/drivers/taito_f3.c8
-rw-r--r--src/mame/drivers/taito_h.c6
-rw-r--r--src/mame/drivers/taito_l.c16
-rw-r--r--src/mame/drivers/taito_o.c2
-rw-r--r--src/mame/drivers/taito_x.c8
-rw-r--r--src/mame/drivers/taito_z.c20
-rw-r--r--src/mame/drivers/taitoair.c2
-rw-r--r--src/mame/drivers/taitojc.c4
-rw-r--r--src/mame/drivers/taitopjc.c5
-rw-r--r--src/mame/drivers/taitosj.c4
-rw-r--r--src/mame/drivers/taitotz.c12
-rw-r--r--src/mame/drivers/taitowlf.c5
-rw-r--r--src/mame/drivers/tank8.c4
-rw-r--r--src/mame/drivers/tankbatt.c2
-rw-r--r--src/mame/drivers/tankbust.c2
-rw-r--r--src/mame/drivers/taotaido.c4
-rw-r--r--src/mame/drivers/targeth.c2
-rw-r--r--src/mame/drivers/tasman.c10
-rw-r--r--src/mame/drivers/tatsumi.c8
-rw-r--r--src/mame/drivers/tattack.c10
-rw-r--r--src/mame/drivers/taxidriv.c2
-rw-r--r--src/mame/drivers/tbowl.c4
-rw-r--r--src/mame/drivers/tceptor.c8
-rw-r--r--src/mame/drivers/tcl.c5
-rw-r--r--src/mame/drivers/tecmo.c4
-rw-r--r--src/mame/drivers/tecmo16.c2
-rw-r--r--src/mame/drivers/tecmosys.c2
-rw-r--r--src/mame/drivers/tehkanwc.c2
-rw-r--r--src/mame/drivers/terracre.c6
-rw-r--r--src/mame/drivers/tetrisp2.c18
-rw-r--r--src/mame/drivers/tgtpanic.c12
-rw-r--r--src/mame/drivers/thedeep.c2
-rw-r--r--src/mame/drivers/thepit.c2
-rw-r--r--src/mame/drivers/thief.c6
-rw-r--r--src/mame/drivers/thoop2.c2
-rw-r--r--src/mame/drivers/thunderj.c2
-rw-r--r--src/mame/drivers/thunderx.c4
-rw-r--r--src/mame/drivers/tiamc1.c2
-rw-r--r--src/mame/drivers/tigeroad.c2
-rw-r--r--src/mame/drivers/timelimt.c2
-rw-r--r--src/mame/drivers/timeplt.c2
-rw-r--r--src/mame/drivers/timetrv.c8
-rw-r--r--src/mame/drivers/tmaster.c12
-rw-r--r--src/mame/drivers/tmmjprd.c50
-rw-r--r--src/mame/drivers/tmnt.c26
-rw-r--r--src/mame/drivers/tmspoker.c8
-rw-r--r--src/mame/drivers/tnzs.c28
-rw-r--r--src/mame/drivers/toaplan1.c32
-rw-r--r--src/mame/drivers/toaplan2.c68
-rw-r--r--src/mame/drivers/toki.c4
-rw-r--r--src/mame/drivers/toobin.c2
-rw-r--r--src/mame/drivers/topspeed.c2
-rw-r--r--src/mame/drivers/toratora.c16
-rw-r--r--src/mame/drivers/toypop.c2
-rw-r--r--src/mame/drivers/tp84.c2
-rw-r--r--src/mame/drivers/trackfld.c4
-rw-r--r--src/mame/drivers/travrusa.c2
-rw-r--r--src/mame/drivers/triforce.c5
-rw-r--r--src/mame/drivers/triplhnt.c2
-rw-r--r--src/mame/drivers/truco.c2
-rw-r--r--src/mame/drivers/trucocl.c2
-rw-r--r--src/mame/drivers/trvmadns.c14
-rw-r--r--src/mame/drivers/tryout.c2
-rw-r--r--src/mame/drivers/tsamurai.c6
-rw-r--r--src/mame/drivers/ttchamp.c10
-rw-r--r--src/mame/drivers/tubep.c4
-rw-r--r--src/mame/drivers/tugboat.c10
-rw-r--r--src/mame/drivers/tumbleb.c24
-rw-r--r--src/mame/drivers/tumblep.c2
-rw-r--r--src/mame/drivers/tunhunt.c2
-rw-r--r--src/mame/drivers/turbo.c6
-rw-r--r--src/mame/drivers/tutankhm.c2
-rw-r--r--src/mame/drivers/twin16.c8
-rw-r--r--src/mame/drivers/twincobr.c2
-rw-r--r--src/mame/drivers/twins.c24
-rw-r--r--src/mame/drivers/tx1.c20
-rw-r--r--src/mame/drivers/ultraman.c2
-rw-r--r--src/mame/drivers/ultratnk.c4
-rw-r--r--src/mame/drivers/ultrsprt.c8
-rw-r--r--src/mame/drivers/umipoker.c22
-rw-r--r--src/mame/drivers/undrfire.c4
-rw-r--r--src/mame/drivers/unico.c6
-rw-r--r--src/mame/drivers/unkhorse.c10
-rw-r--r--src/mame/drivers/upscope.c2
-rw-r--r--src/mame/drivers/usgames.c2
-rw-r--r--src/mame/drivers/vamphalf.c10
-rw-r--r--src/mame/drivers/vaportra.c2
-rw-r--r--src/mame/drivers/vastar.c2
-rw-r--r--src/mame/drivers/vball.c2
-rw-r--r--src/mame/drivers/vcombat.c12
-rw-r--r--src/mame/drivers/vectrex.c2
-rw-r--r--src/mame/drivers/vega.c34
-rw-r--r--src/mame/drivers/vegaeo.c14
-rw-r--r--src/mame/drivers/vegas.c8
-rw-r--r--src/mame/drivers/vendetta.c2
-rw-r--r--src/mame/drivers/vicdual.c26
-rw-r--r--src/mame/drivers/victory.c2
-rw-r--r--src/mame/drivers/videopin.c2
-rw-r--r--src/mame/drivers/videopkr.c10
-rw-r--r--src/mame/drivers/vigilant.c6
-rw-r--r--src/mame/drivers/vindictr.c2
-rw-r--r--src/mame/drivers/viper.c15
-rw-r--r--src/mame/drivers/vmetal.c24
-rw-r--r--src/mame/drivers/volfied.c2
-rw-r--r--src/mame/drivers/vpoker.c8
-rw-r--r--src/mame/drivers/vroulet.c10
-rw-r--r--src/mame/drivers/vulgus.c2
-rw-r--r--src/mame/drivers/wallc.c8
-rw-r--r--src/mame/drivers/wardner.c2
-rw-r--r--src/mame/drivers/warpsped.c12
-rw-r--r--src/mame/drivers/warpwarp.c4
-rw-r--r--src/mame/drivers/warriorb.c8
-rw-r--r--src/mame/drivers/wc90.c2
-rw-r--r--src/mame/drivers/wc90b.c2
-rw-r--r--src/mame/drivers/wecleman.c4
-rw-r--r--src/mame/drivers/welltris.c2
-rw-r--r--src/mame/drivers/wgp.c2
-rw-r--r--src/mame/drivers/wheelfir.c24
-rw-r--r--src/mame/drivers/wildpkr.c6
-rw-r--r--src/mame/drivers/williams.c6
-rw-r--r--src/mame/drivers/wink.c8
-rw-r--r--src/mame/drivers/wiping.c2
-rw-r--r--src/mame/drivers/witch.c16
-rw-r--r--src/mame/drivers/wiz.c6
-rw-r--r--src/mame/drivers/wolfpack.c4
-rw-r--r--src/mame/drivers/wrally.c2
-rw-r--r--src/mame/drivers/wwfsstar.c2
-rw-r--r--src/mame/drivers/wwfwfest.c2
-rw-r--r--src/mame/drivers/xain.c2
-rw-r--r--src/mame/drivers/xexex.c2
-rw-r--r--src/mame/drivers/xmen.c8
-rw-r--r--src/mame/drivers/xorworld.c2
-rw-r--r--src/mame/drivers/xxmissio.c2
-rw-r--r--src/mame/drivers/xybots.c2
-rw-r--r--src/mame/drivers/xyonix.c2
-rw-r--r--src/mame/drivers/yiear.c2
-rw-r--r--src/mame/drivers/yunsun16.c4
-rw-r--r--src/mame/drivers/yunsung8.c2
-rw-r--r--src/mame/drivers/zac2650.c2
-rw-r--r--src/mame/drivers/zaccaria.c2
-rw-r--r--src/mame/drivers/zaxxon.c8
-rw-r--r--src/mame/drivers/zr107.c20
-rw-r--r--src/mame/includes/1942.h1
-rw-r--r--src/mame/includes/1943.h1
-rw-r--r--src/mame/includes/20pacgal.h1
-rw-r--r--src/mame/includes/3do.h3
-rw-r--r--src/mame/includes/40love.h3
-rw-r--r--src/mame/includes/4enraya.h3
-rw-r--r--src/mame/includes/8080bw.h33
-rw-r--r--src/mame/includes/88games.h3
-rw-r--r--src/mame/includes/actfancr.h3
-rw-r--r--src/mame/includes/aeroboto.h3
-rw-r--r--src/mame/includes/aerofgt.h30
-rw-r--r--src/mame/includes/airbustr.h6
-rw-r--r--src/mame/includes/ajax.h3
-rw-r--r--src/mame/includes/aliens.h3
-rw-r--r--src/mame/includes/alpha68k.h18
-rw-r--r--src/mame/includes/ambush.h3
-rw-r--r--src/mame/includes/amiga.h6
-rw-r--r--src/mame/includes/ampoker2.h3
-rw-r--r--src/mame/includes/amspdwy.h3
-rw-r--r--src/mame/includes/angelkds.h3
-rw-r--r--src/mame/includes/appoooh.h6
-rw-r--r--src/mame/includes/aquarium.h3
-rw-r--r--src/mame/includes/arabian.h3
-rw-r--r--src/mame/includes/arcadecl.h3
-rw-r--r--src/mame/includes/argus.h9
-rw-r--r--src/mame/includes/arkanoid.h2
-rw-r--r--src/mame/includes/armedf.h3
-rw-r--r--src/mame/includes/ashnojoe.h3
-rw-r--r--src/mame/includes/asterix.h3
-rw-r--r--src/mame/includes/astrocde.h6
-rw-r--r--src/mame/includes/astrof.h2
-rw-r--r--src/mame/includes/asuka.h7
-rw-r--r--src/mame/includes/atarifb.h9
-rw-r--r--src/mame/includes/atarig1.h6
-rw-r--r--src/mame/includes/atarig42.h6
-rw-r--r--src/mame/includes/atarigt.h6
-rw-r--r--src/mame/includes/atarigx2.h6
-rw-r--r--src/mame/includes/atarisy1.h3
-rw-r--r--src/mame/includes/atarisy2.h3
-rw-r--r--src/mame/includes/atetris.h3
-rw-r--r--src/mame/includes/avalnche.h1
-rw-r--r--src/mame/includes/badlands.h3
-rw-r--r--src/mame/includes/bagman.h3
-rw-r--r--src/mame/includes/balsente.h3
-rw-r--r--src/mame/includes/bankp.h3
-rw-r--r--src/mame/includes/baraduke.h6
-rw-r--r--src/mame/includes/batman.h3
-rw-r--r--src/mame/includes/battlane.h3
-rw-r--r--src/mame/includes/battlera.h3
-rw-r--r--src/mame/includes/battlex.h1
-rw-r--r--src/mame/includes/battlnts.h3
-rw-r--r--src/mame/includes/bbusters.h7
-rw-r--r--src/mame/includes/beezer.h3
-rw-r--r--src/mame/includes/bigevglf.h3
-rw-r--r--src/mame/includes/bigstrkb.h3
-rw-r--r--src/mame/includes/bionicc.h3
-rw-r--r--src/mame/includes/bishi.h3
-rw-r--r--src/mame/includes/bking.h6
-rw-r--r--src/mame/includes/bladestl.h3
-rw-r--r--src/mame/includes/blktiger.h3
-rw-r--r--src/mame/includes/blmbycar.h3
-rw-r--r--src/mame/includes/blockade.h3
-rw-r--r--src/mame/includes/blockhl.h3
-rw-r--r--src/mame/includes/blockout.h3
-rw-r--r--src/mame/includes/bloodbro.h9
-rw-r--r--src/mame/includes/blstroid.h3
-rw-r--r--src/mame/includes/blueprnt.h3
-rw-r--r--src/mame/includes/bogeyman.h3
-rw-r--r--src/mame/includes/bombjack.h3
-rw-r--r--src/mame/includes/boogwing.h3
-rw-r--r--src/mame/includes/bottom9.h3
-rw-r--r--src/mame/includes/brkthru.h3
-rw-r--r--src/mame/includes/bsktball.h3
-rw-r--r--src/mame/includes/btime.h21
-rw-r--r--src/mame/includes/bublbobl.h3
-rw-r--r--src/mame/includes/buggychl.h3
-rw-r--r--src/mame/includes/bwing.h3
-rw-r--r--src/mame/includes/cabal.h1
-rw-r--r--src/mame/includes/calomega.h3
-rw-r--r--src/mame/includes/canyon.h3
-rw-r--r--src/mame/includes/capbowl.h3
-rw-r--r--src/mame/includes/carjmbre.h3
-rw-r--r--src/mame/includes/carpolo.h6
-rw-r--r--src/mame/includes/cave.h3
-rw-r--r--src/mame/includes/cbasebal.h3
-rw-r--r--src/mame/includes/cbuster.h3
-rw-r--r--src/mame/includes/ccastles.h3
-rw-r--r--src/mame/includes/cclimber.h12
-rw-r--r--src/mame/includes/cdi.h2
-rw-r--r--src/mame/includes/centiped.h12
-rw-r--r--src/mame/includes/chaknpop.h3
-rw-r--r--src/mame/includes/champbas.h7
-rw-r--r--src/mame/includes/changela.h3
-rw-r--r--src/mame/includes/cheekyms.h3
-rw-r--r--src/mame/includes/chqflag.h3
-rw-r--r--src/mame/includes/cinemat.h6
-rw-r--r--src/mame/includes/circus.h4
-rw-r--r--src/mame/includes/circusc.h3
-rw-r--r--src/mame/includes/cischeat.h12
-rw-r--r--src/mame/includes/citycon.h3
-rw-r--r--src/mame/includes/cloak.h3
-rw-r--r--src/mame/includes/cloud9.h3
-rw-r--r--src/mame/includes/clshroad.h3
-rw-r--r--src/mame/includes/cninja.h15
-rw-r--r--src/mame/includes/combatsc.h6
-rw-r--r--src/mame/includes/commando.h3
-rw-r--r--src/mame/includes/compgolf.h3
-rw-r--r--src/mame/includes/contra.h3
-rw-r--r--src/mame/includes/cop01.h3
-rw-r--r--src/mame/includes/copsnrob.h3
-rw-r--r--src/mame/includes/cosmic.h18
-rw-r--r--src/mame/includes/cps1.h8
-rw-r--r--src/mame/includes/cps3.h1
-rw-r--r--src/mame/includes/crbaloon.h3
-rw-r--r--src/mame/includes/crgolf.h1
-rw-r--r--src/mame/includes/crimfght.h3
-rw-r--r--src/mame/includes/crospang.h3
-rw-r--r--src/mame/includes/crshrace.h6
-rw-r--r--src/mame/includes/cvs.h3
-rw-r--r--src/mame/includes/cyberbal.h9
-rw-r--r--src/mame/includes/darius.h9
-rw-r--r--src/mame/includes/darkmist.h3
-rw-r--r--src/mame/includes/darkseal.h3
-rw-r--r--src/mame/includes/dassault.h3
-rw-r--r--src/mame/includes/dbz.h3
-rw-r--r--src/mame/includes/dc.h3
-rw-r--r--src/mame/includes/dcheese.h3
-rw-r--r--src/mame/includes/dcon.h6
-rw-r--r--src/mame/includes/dday.h3
-rw-r--r--src/mame/includes/ddragon.h3
-rw-r--r--src/mame/includes/ddragon3.h2
-rw-r--r--src/mame/includes/ddribble.h3
-rw-r--r--src/mame/includes/deadang.h3
-rw-r--r--src/mame/includes/dec0.h27
-rw-r--r--src/mame/includes/dec8.h25
-rw-r--r--src/mame/includes/deco32.h18
-rw-r--r--src/mame/includes/deco_mlc.h6
-rw-r--r--src/mame/includes/deniam.h3
-rw-r--r--src/mame/includes/dietgo.h3
-rw-r--r--src/mame/includes/djboy.h6
-rw-r--r--src/mame/includes/djmain.h3
-rw-r--r--src/mame/includes/dkong.h9
-rw-r--r--src/mame/includes/docastle.h3
-rw-r--r--src/mame/includes/dogfgt.h3
-rw-r--r--src/mame/includes/dooyong.h24
-rw-r--r--src/mame/includes/dragrace.h3
-rw-r--r--src/mame/includes/drgnmst.h3
-rw-r--r--src/mame/includes/dribling.h3
-rw-r--r--src/mame/includes/drmicro.h3
-rw-r--r--src/mame/includes/dynax.h24
-rw-r--r--src/mame/includes/dynduke.h3
-rw-r--r--src/mame/includes/eolith.h3
-rw-r--r--src/mame/includes/epos.h3
-rw-r--r--src/mame/includes/eprom.h6
-rw-r--r--src/mame/includes/equites.h2
-rw-r--r--src/mame/includes/esd16.h3
-rw-r--r--src/mame/includes/espial.h3
-rw-r--r--src/mame/includes/esripsys.h3
-rw-r--r--src/mame/includes/exedexes.h1
-rw-r--r--src/mame/includes/exerion.h3
-rw-r--r--src/mame/includes/exidy.h3
-rw-r--r--src/mame/includes/exidy440.h2
-rw-r--r--src/mame/includes/exprraid.h1
-rw-r--r--src/mame/includes/exzisus.h3
-rw-r--r--src/mame/includes/f1gp.h9
-rw-r--r--src/mame/includes/fantland.h3
-rw-r--r--src/mame/includes/fastfred.h6
-rw-r--r--src/mame/includes/fastlane.h3
-rw-r--r--src/mame/includes/fcombat.h3
-rw-r--r--src/mame/includes/fgoal.h3
-rw-r--r--src/mame/includes/finalizr.h3
-rw-r--r--src/mame/includes/firetrap.h3
-rw-r--r--src/mame/includes/firetrk.h9
-rw-r--r--src/mame/includes/fitfight.h3
-rw-r--r--src/mame/includes/flkatck.h3
-rw-r--r--src/mame/includes/flower.h3
-rw-r--r--src/mame/includes/flstory.h9
-rw-r--r--src/mame/includes/foodf.h3
-rw-r--r--src/mame/includes/freekick.h9
-rw-r--r--src/mame/includes/fromanc2.h6
-rw-r--r--src/mame/includes/fromance.h6
-rw-r--r--src/mame/includes/funkybee.h3
-rw-r--r--src/mame/includes/funkyjet.h3
-rw-r--r--src/mame/includes/funworld.h3
-rw-r--r--src/mame/includes/funybubl.h3
-rw-r--r--src/mame/includes/fuukifg2.h3
-rw-r--r--src/mame/includes/fuukifg3.h6
-rw-r--r--src/mame/includes/gaelco.h6
-rw-r--r--src/mame/includes/gaelco2.h9
-rw-r--r--src/mame/includes/gaelco3d.h3
-rw-r--r--src/mame/includes/gaiden.h9
-rw-r--r--src/mame/includes/galaga.h19
-rw-r--r--src/mame/includes/galastrm.h3
-rw-r--r--src/mame/includes/galaxia.h6
-rw-r--r--src/mame/includes/galaxian.h3
-rw-r--r--src/mame/includes/galaxold.h6
-rw-r--r--src/mame/includes/galivan.h6
-rw-r--r--src/mame/includes/galpani2.h3
-rw-r--r--src/mame/includes/galpanic.h7
-rw-r--r--src/mame/includes/galspnbl.h3
-rw-r--r--src/mame/includes/gameplan.h2
-rw-r--r--src/mame/includes/gaplus.h14
-rw-r--r--src/mame/includes/gatron.h3
-rw-r--r--src/mame/includes/gauntlet.h3
-rw-r--r--src/mame/includes/gberet.h6
-rw-r--r--src/mame/includes/gbusters.h3
-rw-r--r--src/mame/includes/gcpinbal.h3
-rw-r--r--src/mame/includes/gijoe.h3
-rw-r--r--src/mame/includes/ginganin.h3
-rw-r--r--src/mame/includes/gladiatr.h6
-rw-r--r--src/mame/includes/glass.h3
-rw-r--r--src/mame/includes/gng.h3
-rw-r--r--src/mame/includes/goal92.h6
-rw-r--r--src/mame/includes/goindol.h3
-rw-r--r--src/mame/includes/goldstar.h18
-rw-r--r--src/mame/includes/gomoku.h3
-rw-r--r--src/mame/includes/gotcha.h3
-rw-r--r--src/mame/includes/gottlieb.h3
-rw-r--r--src/mame/includes/gotya.h3
-rw-r--r--src/mame/includes/gradius3.h3
-rw-r--r--src/mame/includes/grchamp.h3
-rw-r--r--src/mame/includes/gridlee.h3
-rw-r--r--src/mame/includes/groundfx.h3
-rw-r--r--src/mame/includes/gstriker.h3
-rw-r--r--src/mame/includes/gsword.h3
-rw-r--r--src/mame/includes/gumbo.h3
-rw-r--r--src/mame/includes/gunbustr.h3
-rw-r--r--src/mame/includes/gundealr.h3
-rw-r--r--src/mame/includes/gunsmoke.h3
-rw-r--r--src/mame/includes/gyruss.h3
-rw-r--r--src/mame/includes/hanaawas.h3
-rw-r--r--src/mame/includes/hcastle.h3
-rw-r--r--src/mame/includes/hexion.h3
-rw-r--r--src/mame/includes/higemaru.h3
-rw-r--r--src/mame/includes/himesiki.h3
-rw-r--r--src/mame/includes/hitme.h2
-rw-r--r--src/mame/includes/hnayayoi.h3
-rw-r--r--src/mame/includes/hng64.h6
-rw-r--r--src/mame/includes/holeland.h6
-rw-r--r--src/mame/includes/homedata.h15
-rw-r--r--src/mame/includes/homerun.h3
-rw-r--r--src/mame/includes/hyhoo.h3
-rw-r--r--src/mame/includes/hyperspt.h3
-rw-r--r--src/mame/includes/hyprduel.h3
-rw-r--r--src/mame/includes/ikki.h3
-rw-r--r--src/mame/includes/inufuku.h3
-rw-r--r--src/mame/includes/iqblock.h3
-rw-r--r--src/mame/includes/irobot.h3
-rw-r--r--src/mame/includes/ironhors.h6
-rw-r--r--src/mame/includes/itech32.h3
-rw-r--r--src/mame/includes/itech8.h15
-rw-r--r--src/mame/includes/jack.h6
-rw-r--r--src/mame/includes/jackal.h3
-rw-r--r--src/mame/includes/jailbrek.h3
-rw-r--r--src/mame/includes/jedi.h1
-rw-r--r--src/mame/includes/kaneko16.h7
-rw-r--r--src/mame/includes/kangaroo.h3
-rw-r--r--src/mame/includes/karnov.h3
-rw-r--r--src/mame/includes/kchamp.h6
-rw-r--r--src/mame/includes/kickgoal.h3
-rw-r--r--src/mame/includes/kingobox.h6
-rw-r--r--src/mame/includes/klax.h3
-rw-r--r--src/mame/includes/kncljoe.h3
-rw-r--r--src/mame/includes/konamigx.h9
-rw-r--r--src/mame/includes/kopunch.h3
-rw-r--r--src/mame/includes/ksayakyu.h3
-rw-r--r--src/mame/includes/kyugo.h3
-rw-r--r--src/mame/includes/labyrunr.h3
-rw-r--r--src/mame/includes/ladybug.h15
-rw-r--r--src/mame/includes/ladyfrog.h3
-rw-r--r--src/mame/includes/laserbat.h1
-rw-r--r--src/mame/includes/lasso.h9
-rw-r--r--src/mame/includes/lastduel.h6
-rw-r--r--src/mame/includes/lazercmd.h3
-rw-r--r--src/mame/includes/legionna.h9
-rw-r--r--src/mame/includes/leland.h2
-rw-r--r--src/mame/includes/lemmings.h6
-rw-r--r--src/mame/includes/lethal.h3
-rw-r--r--src/mame/includes/liberate.h12
-rw-r--r--src/mame/includes/lkage.h3
-rw-r--r--src/mame/includes/lockon.h6
-rw-r--r--src/mame/includes/lordgun.h3
-rw-r--r--src/mame/includes/lsasquad.h6
-rw-r--r--src/mame/includes/lucky74.h3
-rw-r--r--src/mame/includes/lvcards.h3
-rw-r--r--src/mame/includes/lwings.h6
-rw-r--r--src/mame/includes/m10.h6
-rw-r--r--src/mame/includes/m107.h3
-rw-r--r--src/mame/includes/m52.h3
-rw-r--r--src/mame/includes/m57.h3
-rw-r--r--src/mame/includes/m58.h3
-rw-r--r--src/mame/includes/m62.h33
-rw-r--r--src/mame/includes/m72.h6
-rw-r--r--src/mame/includes/m90.h9
-rw-r--r--src/mame/includes/m92.h6
-rw-r--r--src/mame/includes/macrossp.h6
-rw-r--r--src/mame/includes/madalien.h1
-rw-r--r--src/mame/includes/madmotor.h3
-rw-r--r--src/mame/includes/magmax.h3
-rw-r--r--src/mame/includes/mainevt.h6
-rw-r--r--src/mame/includes/mainsnk.h3
-rw-r--r--src/mame/includes/malzak.h3
-rw-r--r--src/mame/includes/mappy.h9
-rw-r--r--src/mame/includes/marineb.h15
-rw-r--r--src/mame/includes/mario.h3
-rw-r--r--src/mame/includes/markham.h3
-rw-r--r--src/mame/includes/matmania.h6
-rw-r--r--src/mame/includes/mcatadv.h6
-rw-r--r--src/mame/includes/mcr.h3
-rw-r--r--src/mame/includes/mcr3.h6
-rw-r--r--src/mame/includes/mcr68.h6
-rw-r--r--src/mame/includes/meadows.h3
-rw-r--r--src/mame/includes/megadriv.h9
-rw-r--r--src/mame/includes/megasys1.h6
-rw-r--r--src/mame/includes/megazone.h3
-rw-r--r--src/mame/includes/mermaid.h6
-rw-r--r--src/mame/includes/metalmx.h1
-rw-r--r--src/mame/includes/metlclsh.h3
-rw-r--r--src/mame/includes/metro.h3
-rw-r--r--src/mame/includes/mexico86.h6
-rw-r--r--src/mame/includes/midvunit.h3
-rw-r--r--src/mame/includes/midzeus.h6
-rw-r--r--src/mame/includes/mikie.h3
-rw-r--r--src/mame/includes/mitchell.h3
-rw-r--r--src/mame/includes/mjkjidai.h3
-rw-r--r--src/mame/includes/model1.h6
-rw-r--r--src/mame/includes/model2.h3
-rw-r--r--src/mame/includes/model3.h3
-rw-r--r--src/mame/includes/momoko.h3
-rw-r--r--src/mame/includes/moo.h3
-rw-r--r--src/mame/includes/mosaic.h3
-rw-r--r--src/mame/includes/mouser.h3
-rw-r--r--src/mame/includes/mrdo.h3
-rw-r--r--src/mame/includes/mrflea.h3
-rw-r--r--src/mame/includes/mrjong.h3
-rw-r--r--src/mame/includes/ms32.h3
-rw-r--r--src/mame/includes/msisaac.h3
-rw-r--r--src/mame/includes/mugsmash.h3
-rw-r--r--src/mame/includes/munchmo.h3
-rw-r--r--src/mame/includes/mustache.h3
-rw-r--r--src/mame/includes/mw8080bw.h15
-rw-r--r--src/mame/includes/mystston.h1
-rw-r--r--src/mame/includes/mystwarr.h12
-rw-r--r--src/mame/includes/n64.h1
-rw-r--r--src/mame/includes/n8080.h12
-rw-r--r--src/mame/includes/namcofl.h3
-rw-r--r--src/mame/includes/namcona1.h1
-rw-r--r--src/mame/includes/namconb1.h6
-rw-r--r--src/mame/includes/namcos1.h6
-rw-r--r--src/mame/includes/namcos21.h1
-rw-r--r--src/mame/includes/namcos22.h6
-rw-r--r--src/mame/includes/namcos86.h6
-rw-r--r--src/mame/includes/naughtyb.h3
-rw-r--r--src/mame/includes/nbmj8688.h9
-rw-r--r--src/mame/includes/nbmj8891.h3
-rw-r--r--src/mame/includes/nbmj8900.h3
-rw-r--r--src/mame/includes/nbmj8991.h6
-rw-r--r--src/mame/includes/nbmj9195.h3
-rw-r--r--src/mame/includes/nemesis.h3
-rw-r--r--src/mame/includes/neogeo.h3
-rw-r--r--src/mame/includes/news.h3
-rw-r--r--src/mame/includes/ninjakd2.h4
-rw-r--r--src/mame/includes/ninjaw.h9
-rw-r--r--src/mame/includes/nitedrvr.h3
-rw-r--r--src/mame/includes/niyanpai.h3
-rw-r--r--src/mame/includes/nmk16.h45
-rw-r--r--src/mame/includes/norautp.h1
-rw-r--r--src/mame/includes/nova2001.h4
-rw-r--r--src/mame/includes/nycaptor.h3
-rw-r--r--src/mame/includes/offtwall.h3
-rw-r--r--src/mame/includes/ohmygod.h3
-rw-r--r--src/mame/includes/ojankohs.h6
-rw-r--r--src/mame/includes/oneshot.h6
-rw-r--r--src/mame/includes/opwolf.h3
-rw-r--r--src/mame/includes/orbit.h3
-rw-r--r--src/mame/includes/othldrby.h6
-rw-r--r--src/mame/includes/othunder.h3
-rw-r--r--src/mame/includes/overdriv.h3
-rw-r--r--src/mame/includes/pacland.h3
-rw-r--r--src/mame/includes/pacman.h6
-rw-r--r--src/mame/includes/pandoras.h3
-rw-r--r--src/mame/includes/paradise.h9
-rw-r--r--src/mame/includes/parodius.h3
-rw-r--r--src/mame/includes/pass.h3
-rw-r--r--src/mame/includes/pastelg.h3
-rw-r--r--src/mame/includes/pbaction.h1
-rw-r--r--src/mame/includes/pcktgal.h6
-rw-r--r--src/mame/includes/pgm.h6
-rw-r--r--src/mame/includes/phoenix.h3
-rw-r--r--src/mame/includes/pingpong.h3
-rw-r--r--src/mame/includes/pirates.h3
-rw-r--r--src/mame/includes/pitnrun.h3
-rw-r--r--src/mame/includes/pktgaldx.h6
-rw-r--r--src/mame/includes/playch10.h7
-rw-r--r--src/mame/includes/playmark.h16
-rw-r--r--src/mame/includes/plygonet.h3
-rw-r--r--src/mame/includes/pokechmp.h3
-rw-r--r--src/mame/includes/polepos.h3
-rw-r--r--src/mame/includes/policetr.h3
-rw-r--r--src/mame/includes/polyplay.h3
-rw-r--r--src/mame/includes/poolshrk.h3
-rw-r--r--src/mame/includes/pooyan.h3
-rw-r--r--src/mame/includes/popeye.h3
-rw-r--r--src/mame/includes/popper.h3
-rw-r--r--src/mame/includes/portrait.h3
-rw-r--r--src/mame/includes/powerins.h3
-rw-r--r--src/mame/includes/prehisle.h3
-rw-r--r--src/mame/includes/psikyo.h9
-rw-r--r--src/mame/includes/psikyo4.h6
-rw-r--r--src/mame/includes/psikyosh.h5
-rw-r--r--src/mame/includes/psychic5.h6
-rw-r--r--src/mame/includes/punchout.h12
-rw-r--r--src/mame/includes/pushman.h3
-rw-r--r--src/mame/includes/qdrmfgp.h3
-rw-r--r--src/mame/includes/quasar.h3
-rw-r--r--src/mame/includes/quizdna.h3
-rw-r--r--src/mame/includes/quizpani.h3
-rw-r--r--src/mame/includes/raiden.h3
-rw-r--r--src/mame/includes/raiden2.h1
-rw-r--r--src/mame/includes/rainbow.h6
-rw-r--r--src/mame/includes/rallyx.h9
-rw-r--r--src/mame/includes/rampart.h3
-rw-r--r--src/mame/includes/rastan.h3
-rw-r--r--src/mame/includes/realbrk.h6
-rw-r--r--src/mame/includes/redalert.h3
-rw-r--r--src/mame/includes/relief.h3
-rw-r--r--src/mame/includes/renegade.h3
-rw-r--r--src/mame/includes/retofinv.h3
-rw-r--r--src/mame/includes/rltennis.h3
-rw-r--r--src/mame/includes/rockrage.h3
-rw-r--r--src/mame/includes/rocnrope.h3
-rw-r--r--src/mame/includes/rohga.h9
-rw-r--r--src/mame/includes/rollerg.h3
-rw-r--r--src/mame/includes/rollrace.h3
-rw-r--r--src/mame/includes/route16.h9
-rw-r--r--src/mame/includes/rpunch.h3
-rw-r--r--src/mame/includes/runaway.h6
-rw-r--r--src/mame/includes/rungun.h3
-rw-r--r--src/mame/includes/sauro.h6
-rw-r--r--src/mame/includes/sbasketb.h3
-rw-r--r--src/mame/includes/sbugger.h3
-rw-r--r--src/mame/includes/scotrsht.h3
-rw-r--r--src/mame/includes/sderby.h6
-rw-r--r--src/mame/includes/segag80r.h3
-rw-r--r--src/mame/includes/segag80v.h3
-rw-r--r--src/mame/includes/segas24.h3
-rw-r--r--src/mame/includes/segas32.h9
-rw-r--r--src/mame/includes/seibuspi.h6
-rw-r--r--src/mame/includes/seicross.h3
-rw-r--r--src/mame/includes/senjyo.h3
-rw-r--r--src/mame/includes/seta.h20
-rw-r--r--src/mame/includes/seta2.h6
-rw-r--r--src/mame/includes/sf.h3
-rw-r--r--src/mame/includes/shadfrce.h6
-rw-r--r--src/mame/includes/shangha3.h3
-rw-r--r--src/mame/includes/shangkid.h6
-rw-r--r--src/mame/includes/shaolins.h3
-rw-r--r--src/mame/includes/shisen.h3
-rw-r--r--src/mame/includes/shootout.h6
-rw-r--r--src/mame/includes/shuuz.h3
-rw-r--r--src/mame/includes/sidearms.h3
-rw-r--r--src/mame/includes/sidepckt.h3
-rw-r--r--src/mame/includes/silkroad.h3
-rw-r--r--src/mame/includes/simpl156.h3
-rw-r--r--src/mame/includes/simpsons.h3
-rw-r--r--src/mame/includes/skullxbo.h3
-rw-r--r--src/mame/includes/skydiver.h3
-rw-r--r--src/mame/includes/skyfox.h3
-rw-r--r--src/mame/includes/skykid.h3
-rw-r--r--src/mame/includes/skyraid.h3
-rw-r--r--src/mame/includes/slapfght.h6
-rw-r--r--src/mame/includes/slapshot.h6
-rw-r--r--src/mame/includes/snk.h5
-rw-r--r--src/mame/includes/snk6502.h3
-rw-r--r--src/mame/includes/snk68.h3
-rw-r--r--src/mame/includes/snookr10.h3
-rw-r--r--src/mame/includes/snowbros.h6
-rw-r--r--src/mame/includes/solomon.h3
-rw-r--r--src/mame/includes/sonson.h3
-rw-r--r--src/mame/includes/spacefb.h3
-rw-r--r--src/mame/includes/spbactn.h3
-rw-r--r--src/mame/includes/spcforce.h3
-rw-r--r--src/mame/includes/spdodgeb.h3
-rw-r--r--src/mame/includes/speedatk.h3
-rw-r--r--src/mame/includes/speedbal.h3
-rw-r--r--src/mame/includes/speedspn.h3
-rw-r--r--src/mame/includes/splash.h6
-rw-r--r--src/mame/includes/sprcros2.h3
-rw-r--r--src/mame/includes/sprint2.h6
-rw-r--r--src/mame/includes/sprint4.h6
-rw-r--r--src/mame/includes/sprint8.h6
-rw-r--r--src/mame/includes/spy.h3
-rw-r--r--src/mame/includes/srmp2.h9
-rw-r--r--src/mame/includes/srumbler.h5
-rw-r--r--src/mame/includes/sshangha.h3
-rw-r--r--src/mame/includes/sslam.h6
-rw-r--r--src/mame/includes/ssozumo.h3
-rw-r--r--src/mame/includes/sspeedr.h6
-rw-r--r--src/mame/includes/ssrj.h6
-rw-r--r--src/mame/includes/ssv.h9
-rw-r--r--src/mame/includes/st0016.h5
-rw-r--r--src/mame/includes/stactics.h1
-rw-r--r--src/mame/includes/stadhero.h3
-rw-r--r--src/mame/includes/starcrus.h3
-rw-r--r--src/mame/includes/starfire.h3
-rw-r--r--src/mame/includes/starshp1.h6
-rw-r--r--src/mame/includes/stfight.h3
-rw-r--r--src/mame/includes/stlforce.h3
-rw-r--r--src/mame/includes/strnskil.h3
-rw-r--r--src/mame/includes/stv.h6
-rw-r--r--src/mame/includes/subs.h6
-rw-r--r--src/mame/includes/suna16.h6
-rw-r--r--src/mame/includes/suna8.h3
-rw-r--r--src/mame/includes/supbtime.h3
-rw-r--r--src/mame/includes/superchs.h3
-rw-r--r--src/mame/includes/superqix.h6
-rw-r--r--src/mame/includes/suprloco.h3
-rw-r--r--src/mame/includes/suprnova.h6
-rw-r--r--src/mame/includes/suprridr.h3
-rw-r--r--src/mame/includes/suprslam.h3
-rw-r--r--src/mame/includes/surpratk.h3
-rw-r--r--src/mame/includes/system1.h9
-rw-r--r--src/mame/includes/system16.h4
-rw-r--r--src/mame/includes/tagteam.h3
-rw-r--r--src/mame/includes/tail2nos.h3
-rw-r--r--src/mame/includes/taito_b.h9
-rw-r--r--src/mame/includes/taito_f2.h39
-rw-r--r--src/mame/includes/taito_f3.h6
-rw-r--r--src/mame/includes/taito_h.h9
-rw-r--r--src/mame/includes/taito_l.h6
-rw-r--r--src/mame/includes/taito_o.h3
-rw-r--r--src/mame/includes/taito_z.h24
-rw-r--r--src/mame/includes/taitoair.h3
-rw-r--r--src/mame/includes/taitojc.h6
-rw-r--r--src/mame/includes/taitosj.h6
-rw-r--r--src/mame/includes/tank8.h6
-rw-r--r--src/mame/includes/tankbatt.h3
-rw-r--r--src/mame/includes/tankbust.h3
-rw-r--r--src/mame/includes/taotaido.h6
-rw-r--r--src/mame/includes/targeth.h3
-rw-r--r--src/mame/includes/tatsumi.h12
-rw-r--r--src/mame/includes/taxidriv.h3
-rw-r--r--src/mame/includes/tbowl.h6
-rw-r--r--src/mame/includes/tceptor.h12
-rw-r--r--src/mame/includes/tecmo.h3
-rw-r--r--src/mame/includes/tecmo16.h3
-rw-r--r--src/mame/includes/tecmosys.h3
-rw-r--r--src/mame/includes/tehkanwc.h1
-rw-r--r--src/mame/includes/terracre.h3
-rw-r--r--src/mame/includes/tetrisp2.h21
-rw-r--r--src/mame/includes/thedeep.h3
-rw-r--r--src/mame/includes/thepit.h3
-rw-r--r--src/mame/includes/thief.h3
-rw-r--r--src/mame/includes/thoop2.h3
-rw-r--r--src/mame/includes/thunderj.h3
-rw-r--r--src/mame/includes/thunderx.h3
-rw-r--r--src/mame/includes/tiamc1.h3
-rw-r--r--src/mame/includes/tigeroad.h3
-rw-r--r--src/mame/includes/timelimt.h3
-rw-r--r--src/mame/includes/timeplt.h3
-rw-r--r--src/mame/includes/tmnt.h24
-rw-r--r--src/mame/includes/tnzs.h6
-rw-r--r--src/mame/includes/toaplan1.h15
-rw-r--r--src/mame/includes/toaplan2.h20
-rw-r--r--src/mame/includes/toki.h6
-rw-r--r--src/mame/includes/toobin.h3
-rw-r--r--src/mame/includes/topspeed.h3
-rw-r--r--src/mame/includes/toypop.h3
-rw-r--r--src/mame/includes/tp84.h3
-rw-r--r--src/mame/includes/trackfld.h3
-rw-r--r--src/mame/includes/travrusa.h3
-rw-r--r--src/mame/includes/triplhnt.h3
-rw-r--r--src/mame/includes/truco.h3
-rw-r--r--src/mame/includes/trucocl.h3
-rw-r--r--src/mame/includes/tryout.h3
-rw-r--r--src/mame/includes/tsamurai.h6
-rw-r--r--src/mame/includes/tubep.h6
-rw-r--r--src/mame/includes/tumbleb.h30
-rw-r--r--src/mame/includes/tumblep.h3
-rw-r--r--src/mame/includes/tunhunt.h3
-rw-r--r--src/mame/includes/turbo.h9
-rw-r--r--src/mame/includes/tutankhm.h3
-rw-r--r--src/mame/includes/twin16.h6
-rw-r--r--src/mame/includes/twincobr.h3
-rw-r--r--src/mame/includes/tx1.h27
-rw-r--r--src/mame/includes/ultraman.h3
-rw-r--r--src/mame/includes/ultratnk.h6
-rw-r--r--src/mame/includes/undrfire.h6
-rw-r--r--src/mame/includes/unico.h6
-rw-r--r--src/mame/includes/usgames.h3
-rw-r--r--src/mame/includes/vaportra.h3
-rw-r--r--src/mame/includes/vastar.h3
-rw-r--r--src/mame/includes/vball.h3
-rw-r--r--src/mame/includes/vectrex.h3
-rw-r--r--src/mame/includes/vendetta.h3
-rw-r--r--src/mame/includes/vicdual.h9
-rw-r--r--src/mame/includes/victory.h3
-rw-r--r--src/mame/includes/videopin.h3
-rw-r--r--src/mame/includes/vigilant.h6
-rw-r--r--src/mame/includes/vindictr.h3
-rw-r--r--src/mame/includes/volfied.h3
-rw-r--r--src/mame/includes/vsnes.h4
-rw-r--r--src/mame/includes/vulgus.h3
-rw-r--r--src/mame/includes/warpwarp.h3
-rw-r--r--src/mame/includes/warriorb.h6
-rw-r--r--src/mame/includes/wc90.h3
-rw-r--r--src/mame/includes/wc90b.h3
-rw-r--r--src/mame/includes/wecleman.h6
-rw-r--r--src/mame/includes/welltris.h3
-rw-r--r--src/mame/includes/wgp.h3
-rw-r--r--src/mame/includes/williams.h9
-rw-r--r--src/mame/includes/wiping.h3
-rw-r--r--src/mame/includes/wiz.h9
-rw-r--r--src/mame/includes/wolfpack.h6
-rw-r--r--src/mame/includes/wrally.h3
-rw-r--r--src/mame/includes/wwfsstar.h3
-rw-r--r--src/mame/includes/wwfwfest.h3
-rw-r--r--src/mame/includes/xain.h3
-rw-r--r--src/mame/includes/xexex.h3
-rw-r--r--src/mame/includes/xmen.h12
-rw-r--r--src/mame/includes/xorworld.h3
-rw-r--r--src/mame/includes/xxmissio.h3
-rw-r--r--src/mame/includes/xybots.h3
-rw-r--r--src/mame/includes/xyonix.h3
-rw-r--r--src/mame/includes/yiear.h3
-rw-r--r--src/mame/includes/yunsun16.h3
-rw-r--r--src/mame/includes/yunsung8.h3
-rw-r--r--src/mame/includes/zac2650.h3
-rw-r--r--src/mame/includes/zaccaria.h3
-rw-r--r--src/mame/includes/zaxxon.h12
-rw-r--r--src/mame/machine/3do.c17
-rw-r--r--src/mame/machine/decocass.h3
-rw-r--r--src/mame/machine/slikshot.c45
-rw-r--r--src/mame/video/1942.c7
-rw-r--r--src/mame/video/1943.c25
-rw-r--r--src/mame/video/20pacgal.c13
-rw-r--r--src/mame/video/40love.c7
-rw-r--r--src/mame/video/4enraya.c5
-rw-r--r--src/mame/video/8080bw.c119
-rw-r--r--src/mame/video/88games.c31
-rw-r--r--src/mame/video/actfancr.c9
-rw-r--r--src/mame/video/aeroboto.c37
-rw-r--r--src/mame/video/aerofgt.c168
-rw-r--r--src/mame/video/airbustr.c16
-rw-r--r--src/mame/video/ajax.c21
-rw-r--r--src/mame/video/aliens.c15
-rw-r--r--src/mame/video/alpha68k.c52
-rw-r--r--src/mame/video/ambush.c31
-rw-r--r--src/mame/video/amiga.c2
-rw-r--r--src/mame/video/amigaaga.c2
-rw-r--r--src/mame/video/ampoker2.c5
-rw-r--r--src/mame/video/amspdwy.c5
-rw-r--r--src/mame/video/angelkds.c19
-rw-r--r--src/mame/video/appoooh.c46
-rw-r--r--src/mame/video/aquarium.c25
-rw-r--r--src/mame/video/arabian.c11
-rw-r--r--src/mame/video/arcadecl.c5
-rw-r--r--src/mame/video/argus.c29
-rw-r--r--src/mame/video/arkanoid.c10
-rw-r--r--src/mame/video/armedf.c29
-rw-r--r--src/mame/video/ashnojoe.c23
-rw-r--r--src/mame/video/asterix.c57
-rw-r--r--src/mame/video/astrocde.c40
-rw-r--r--src/mame/video/asuka.c30
-rw-r--r--src/mame/video/atarifb.c6
-rw-r--r--src/mame/video/atarig1.c16
-rw-r--r--src/mame/video/atarig42.c30
-rw-r--r--src/mame/video/atarigt.c32
-rw-r--r--src/mame/video/atarigx2.c30
-rw-r--r--src/mame/video/atarisy1.c9
-rw-r--r--src/mame/video/atarisy2.c13
-rw-r--r--src/mame/video/atetris.c5
-rw-r--r--src/mame/video/badlands.c5
-rw-r--r--src/mame/video/bagman.c7
-rw-r--r--src/mame/video/balsente.c9
-rw-r--r--src/mame/video/bankp.c31
-rw-r--r--src/mame/video/baraduke.c30
-rw-r--r--src/mame/video/batman.c21
-rw-r--r--src/mame/video/battlane.c7
-rw-r--r--src/mame/video/battlera.c37
-rw-r--r--src/mame/video/battlex.c7
-rw-r--r--src/mame/video/battlnts.c11
-rw-r--r--src/mame/video/bbusters.c46
-rw-r--r--src/mame/video/beezer.c5
-rw-r--r--src/mame/video/bigevglf.c5
-rw-r--r--src/mame/video/bigstrkb.c17
-rw-r--r--src/mame/video/bionicc.c13
-rw-r--r--src/mame/video/bishi.c13
-rw-r--r--src/mame/video/bking.c78
-rw-r--r--src/mame/video/bladestl.c15
-rw-r--r--src/mame/video/blktiger.c17
-rw-r--r--src/mame/video/blmbycar.c15
-rw-r--r--src/mame/video/blockade.c5
-rw-r--r--src/mame/video/blockhl.c13
-rw-r--r--src/mame/video/blockout.c7
-rw-r--r--src/mame/video/bloodbro.c51
-rw-r--r--src/mame/video/blstroid.c7
-rw-r--r--src/mame/video/blueprnt.c13
-rw-r--r--src/mame/video/bogeyman.c7
-rw-r--r--src/mame/video/bombjack.c7
-rw-r--r--src/mame/video/boogwing.c41
-rw-r--r--src/mame/video/bosco.c24
-rw-r--r--src/mame/video/bottom9.c21
-rw-r--r--src/mame/video/brkthru.c13
-rw-r--r--src/mame/video/bsktball.c5
-rw-r--r--src/mame/video/btime.c83
-rw-r--r--src/mame/video/bublbobl.c29
-rw-r--r--src/mame/video/buggychl.c7
-rw-r--r--src/mame/video/bwing.c47
-rw-r--r--src/mame/video/cabal.c7
-rw-r--r--src/mame/video/calomega.c5
-rw-r--r--src/mame/video/canyon.c5
-rw-r--r--src/mame/video/capbowl.c2
-rw-r--r--src/mame/video/carjmbre.c25
-rw-r--r--src/mame/video/carpolo.c66
-rw-r--r--src/mame/video/cave.c57
-rw-r--r--src/mame/video/cbasebal.c13
-rw-r--r--src/mame/video/cbuster.c27
-rw-r--r--src/mame/video/ccastles.c23
-rw-r--r--src/mame/video/cclimber.c35
-rw-r--r--src/mame/video/centiped.c52
-rw-r--r--src/mame/video/chaknpop.c5
-rw-r--r--src/mame/video/champbas.c10
-rw-r--r--src/mame/video/changela.c11
-rw-r--r--src/mame/video/cheekyms.c19
-rw-r--r--src/mame/video/chqflag.c13
-rw-r--r--src/mame/video/cinemat.c6
-rw-r--r--src/mame/video/circus.c20
-rw-r--r--src/mame/video/circusc.c11
-rw-r--r--src/mame/video/cischeat.c128
-rw-r--r--src/mame/video/citycon.c15
-rw-r--r--src/mame/video/cloak.c5
-rw-r--r--src/mame/video/cloud9.c23
-rw-r--r--src/mame/video/clshroad.c17
-rw-r--r--src/mame/video/cninja.c133
-rw-r--r--src/mame/video/combatsc.c92
-rw-r--r--src/mame/video/commando.c7
-rw-r--r--src/mame/video/compgolf.c15
-rw-r--r--src/mame/video/contra.c31
-rw-r--r--src/mame/video/cop01.c13
-rw-r--r--src/mame/video/copsnrob.c41
-rw-r--r--src/mame/video/cosmic.c18
-rw-r--r--src/mame/video/cps1.c54
-rw-r--r--src/mame/video/crbaloon.c5
-rw-r--r--src/mame/video/crgolf.c25
-rw-r--r--src/mame/video/crimfght.c17
-rw-r--r--src/mame/video/crospang.c9
-rw-r--r--src/mame/video/crshrace.c16
-rw-r--r--src/mame/video/cvs.c59
-rw-r--r--src/mame/video/cyberbal.c6
-rw-r--r--src/mame/video/darius.c6
-rw-r--r--src/mame/video/darkmist.c35
-rw-r--r--src/mame/video/darkseal.c19
-rw-r--r--src/mame/video/dassault.c33
-rw-r--r--src/mame/video/dbz.c37
-rw-r--r--src/mame/video/dc.c15
-rw-r--r--src/mame/video/dcheese.c5
-rw-r--r--src/mame/video/dcon.c64
-rw-r--r--src/mame/video/dday.c19
-rw-r--r--src/mame/video/ddragon.c15
-rw-r--r--src/mame/video/ddragon3.c48
-rw-r--r--src/mame/video/ddribble.c25
-rw-r--r--src/mame/video/deadang.c33
-rw-r--r--src/mame/video/dec0.c287
-rw-r--r--src/mame/video/dec8.c102
-rw-r--r--src/mame/video/deco32.c128
-rw-r--r--src/mame/video/deco_mlc.c9
-rw-r--r--src/mame/video/decocass.c81
-rw-r--r--src/mame/video/deniam.c31
-rw-r--r--src/mame/video/dietgo.c15
-rw-r--r--src/mame/video/digdug.c7
-rw-r--r--src/mame/video/djboy.c22
-rw-r--r--src/mame/video/djmain.c2
-rw-r--r--src/mame/video/dkong.c39
-rw-r--r--src/mame/video/docastle.c7
-rw-r--r--src/mame/video/dogfgt.c15
-rw-r--r--src/mame/video/dooyong.c82
-rw-r--r--src/mame/video/dragrace.c19
-rw-r--r--src/mame/video/drgnmst.c57
-rw-r--r--src/mame/video/dribling.c11
-rw-r--r--src/mame/video/drmicro.c21
-rw-r--r--src/mame/video/dynax.c61
-rw-r--r--src/mame/video/dynduke.c15
-rw-r--r--src/mame/video/eolith.c5
-rw-r--r--src/mame/video/epos.c11
-rw-r--r--src/mame/video/eprom.c18
-rw-r--r--src/mame/video/equites.c22
-rw-r--r--src/mame/video/esd16.c33
-rw-r--r--src/mame/video/espial.c5
-rw-r--r--src/mame/video/esripsys.c19
-rw-r--r--src/mame/video/exedexes.c21
-rw-r--r--src/mame/video/exerion.c27
-rw-r--r--src/mame/video/exidy.c5
-rw-r--r--src/mame/video/exidy440.c11
-rw-r--r--src/mame/video/exprraid.c9
-rw-r--r--src/mame/video/exzisus.c47
-rw-r--r--src/mame/video/f1gp.c45
-rw-r--r--src/mame/video/fantland.c2
-rw-r--r--src/mame/video/fastfred.c16
-rw-r--r--src/mame/video/fastlane.c17
-rw-r--r--src/mame/video/fcombat.c35
-rw-r--r--src/mame/video/fgoal.c29
-rw-r--r--src/mame/video/finalizr.c23
-rw-r--r--src/mame/video/firetrap.c9
-rw-r--r--src/mame/video/firetrk.c97
-rw-r--r--src/mame/video/fitfight.c45
-rw-r--r--src/mame/video/flkatck.c23
-rw-r--r--src/mame/video/flower.c17
-rw-r--r--src/mame/video/flstory.c27
-rw-r--r--src/mame/video/foodf.c9
-rw-r--r--src/mame/video/freekick.c15
-rw-r--r--src/mame/video/fromanc2.c22
-rw-r--r--src/mame/video/fromance.c26
-rw-r--r--src/mame/video/funkybee.c5
-rw-r--r--src/mame/video/funkyjet.c15
-rw-r--r--src/mame/video/funworld.c5
-rw-r--r--src/mame/video/funybubl.c7
-rw-r--r--src/mame/video/fuukifg2.c43
-rw-r--r--src/mame/video/fuukifg3.c56
-rw-r--r--src/mame/video/gaelco.c70
-rw-r--r--src/mame/video/gaelco2.c27
-rw-r--r--src/mame/video/gaelco3d.c19
-rw-r--r--src/mame/video/gaiden.c51
-rw-r--r--src/mame/video/galaga.c18
-rw-r--r--src/mame/video/galastrm.c57
-rw-r--r--src/mame/video/galaxia.c42
-rw-r--r--src/mame/video/galaxian.c15
-rw-r--r--src/mame/video/galaxold.c48
-rw-r--r--src/mame/video/galivan.c34
-rw-r--r--src/mame/video/galpani2.c19
-rw-r--r--src/mame/video/galpanic.c16
-rw-r--r--src/mame/video/galspnbl.c7
-rw-r--r--src/mame/video/gameplan.c20
-rw-r--r--src/mame/video/gaplus.c22
-rw-r--r--src/mame/video/gatron.c5
-rw-r--r--src/mame/video/gauntlet.c9
-rw-r--r--src/mame/video/gberet.c14
-rw-r--r--src/mame/video/gbusters.c31
-rw-r--r--src/mame/video/gcpinbal.c51
-rw-r--r--src/mame/video/gijoe.c73
-rw-r--r--src/mame/video/ginganin.c33
-rw-r--r--src/mame/video/gladiatr.c32
-rw-r--r--src/mame/video/glass.c17
-rw-r--r--src/mame/video/gng.c9
-rw-r--r--src/mame/video/goal92.c34
-rw-r--r--src/mame/video/goindol.c17
-rw-r--r--src/mame/video/goldstar.c172
-rw-r--r--src/mame/video/gomoku.c15
-rw-r--r--src/mame/video/gotcha.c9
-rw-r--r--src/mame/video/gottlieb.c11
-rw-r--r--src/mame/video/gotya.c7
-rw-r--r--src/mame/video/gradius3.c25
-rw-r--r--src/mame/video/grchamp.c61
-rw-r--r--src/mame/video/gridlee.c17
-rw-r--r--src/mame/video/groundfx.c5
-rw-r--r--src/mame/video/gstriker.c9
-rw-r--r--src/mame/video/gsword.c5
-rw-r--r--src/mame/video/gumbo.c7
-rw-r--r--src/mame/video/gunbustr.c2
-rw-r--r--src/mame/video/gundealr.c7
-rw-r--r--src/mame/video/gunsmoke.c17
-rw-r--r--src/mame/video/gyruss.c9
-rw-r--r--src/mame/video/hanaawas.c5
-rw-r--r--src/mame/video/hcastle.c65
-rw-r--r--src/mame/video/hexion.c7
-rw-r--r--src/mame/video/higemaru.c5
-rw-r--r--src/mame/video/himesiki.c9
-rw-r--r--src/mame/video/hnayayoi.c13
-rw-r--r--src/mame/video/hng64.c87
-rw-r--r--src/mame/video/holeland.c14
-rw-r--r--src/mame/video/homedata.c97
-rw-r--r--src/mame/video/homerun.c9
-rw-r--r--src/mame/video/hyhoo.c7
-rw-r--r--src/mame/video/hyperspt.c11
-rw-r--r--src/mame/video/hyprduel.c37
-rw-r--r--src/mame/video/ikki.c29
-rw-r--r--src/mame/video/inufuku.c23
-rw-r--r--src/mame/video/iqblock.c9
-rw-r--r--src/mame/video/irobot.c9
-rw-r--r--src/mame/video/ironhors.c14
-rw-r--r--src/mame/video/itech32.c9
-rw-r--r--src/mame/video/itech8.c34
-rw-r--r--src/mame/video/jack.c10
-rw-r--r--src/mame/video/jackal.c2
-rw-r--r--src/mame/video/jailbrek.c23
-rw-r--r--src/mame/video/jedi.c13
-rw-r--r--src/mame/video/kan_panb.c34
-rw-r--r--src/mame/video/kaneko16.c29
-rw-r--r--src/mame/video/kangaroo.c27
-rw-r--r--src/mame/video/karnov.c7
-rw-r--r--src/mame/video/kchamp.c10
-rw-r--r--src/mame/video/kickgoal.c21
-rw-r--r--src/mame/video/kingobox.c18
-rw-r--r--src/mame/video/klax.c5
-rw-r--r--src/mame/video/kncljoe.c5
-rw-r--r--src/mame/video/konamigx.c28
-rw-r--r--src/mame/video/kopunch.c7
-rw-r--r--src/mame/video/ksayakyu.c9
-rw-r--r--src/mame/video/kyugo.c15
-rw-r--r--src/mame/video/labyrunr.c43
-rw-r--r--src/mame/video/ladybug.c40
-rw-r--r--src/mame/video/ladyfrog.c5
-rw-r--r--src/mame/video/lasso.c29
-rw-r--r--src/mame/video/lastduel.c30
-rw-r--r--src/mame/video/lazercmd.c9
-rw-r--r--src/mame/video/legionna.c95
-rw-r--r--src/mame/video/leland.c34
-rw-r--r--src/mame/video/lemmings.c30
-rw-r--r--src/mame/video/lethal.c13
-rw-r--r--src/mame/video/liberate.c64
-rw-r--r--src/mame/video/lkage.c59
-rw-r--r--src/mame/video/lockon.c18
-rw-r--r--src/mame/video/lordgun.c37
-rw-r--r--src/mame/video/lsasquad.c11
-rw-r--r--src/mame/video/lucky74.c7
-rw-r--r--src/mame/video/lvcards.c5
-rw-r--r--src/mame/video/lwings.c18
-rw-r--r--src/mame/video/m10.c32
-rw-r--r--src/mame/video/m107.c2
-rw-r--r--src/mame/video/m52.c35
-rw-r--r--src/mame/video/m57.c2
-rw-r--r--src/mame/video/m58.c9
-rw-r--r--src/mame/video/m62.c149
-rw-r--r--src/mame/video/m72.c52
-rw-r--r--src/mame/video/m90.c249
-rw-r--r--src/mame/video/m92.c14
-rw-r--r--src/mame/video/macrossp.c38
-rw-r--r--src/mame/video/madalien.c17
-rw-r--r--src/mame/video/madmotor.c7
-rw-r--r--src/mame/video/magmax.c41
-rw-r--r--src/mame/video/mainevt.c28
-rw-r--r--src/mame/video/mainsnk.c7
-rw-r--r--src/mame/video/malzak.c15
-rw-r--r--src/mame/video/mappy.c33
-rw-r--r--src/mame/video/marineb.c97
-rw-r--r--src/mame/video/mario.c13
-rw-r--r--src/mame/video/markham.c9
-rw-r--r--src/mame/video/matmania.c74
-rw-r--r--src/mame/video/mcatadv.c28
-rw-r--r--src/mame/video/mcd212.c10
-rw-r--r--src/mame/video/mcr.c2
-rw-r--r--src/mame/video/mcr3.c20
-rw-r--r--src/mame/video/mcr68.c14
-rw-r--r--src/mame/video/meadows.c5
-rw-r--r--src/mame/video/megasys1.c42
-rw-r--r--src/mame/video/megazone.c45
-rw-r--r--src/mame/video/mermaid.c134
-rw-r--r--src/mame/video/metlclsh.c17
-rw-r--r--src/mame/video/metro.c31
-rw-r--r--src/mame/video/mexico86.c50
-rw-r--r--src/mame/video/midvunit.c15
-rw-r--r--src/mame/video/midzeus.c5
-rw-r--r--src/mame/video/midzeus2.c5
-rw-r--r--src/mame/video/mikie.c7
-rw-r--r--src/mame/video/mitchell.c5
-rw-r--r--src/mame/video/mjkjidai.c7
-rw-r--r--src/mame/video/model1.c9
-rw-r--r--src/mame/video/model2.c33
-rw-r--r--src/mame/video/model3.c59
-rw-r--r--src/mame/video/momoko.c49
-rw-r--r--src/mame/video/moo.c53
-rw-r--r--src/mame/video/mosaic.c7
-rw-r--r--src/mame/video/mouser.c23
-rw-r--r--src/mame/video/mrdo.c7
-rw-r--r--src/mame/video/mrflea.c2
-rw-r--r--src/mame/video/mrjong.c5
-rw-r--r--src/mame/video/ms32.c89
-rw-r--r--src/mame/video/msisaac.c9
-rw-r--r--src/mame/video/mugsmash.c7
-rw-r--r--src/mame/video/munchmo.c2
-rw-r--r--src/mame/video/mustache.c5
-rw-r--r--src/mame/video/mw8080bw.c47
-rw-r--r--src/mame/video/mystston.c15
-rw-r--r--src/mame/video/mystwarr.c68
-rw-r--r--src/mame/video/n64.c15
-rw-r--r--src/mame/video/n8080.c90
-rw-r--r--src/mame/video/namcofl.c7
-rw-r--r--src/mame/video/namcona1.c31
-rw-r--r--src/mame/video/namconb1.c18
-rw-r--r--src/mame/video/namcos1.c44
-rw-r--r--src/mame/video/namcos21.c27
-rw-r--r--src/mame/video/namcos22.c19
-rw-r--r--src/mame/video/namcos86.c26
-rw-r--r--src/mame/video/naughtyb.c23
-rw-r--r--src/mame/video/nbmj8688.c29
-rw-r--r--src/mame/video/nbmj8891.c23
-rw-r--r--src/mame/video/nbmj8900.c31
-rw-r--r--src/mame/video/nbmj8991.c40
-rw-r--r--src/mame/video/nbmj9195.c39
-rw-r--r--src/mame/video/nemesis.c31
-rw-r--r--src/mame/video/neogeo.c5
-rw-r--r--src/mame/video/news.c7
-rw-r--r--src/mame/video/ninjakd2.c50
-rw-r--r--src/mame/video/ninjaw.c6
-rw-r--r--src/mame/video/nitedrvr.c5
-rw-r--r--src/mame/video/niyanpai.c29
-rw-r--r--src/mame/video/nmk16.c56
-rw-r--r--src/mame/video/nova2001.c32
-rw-r--r--src/mame/video/nycaptor.c77
-rw-r--r--src/mame/video/offtwall.c5
-rw-r--r--src/mame/video/ohmygod.c5
-rw-r--r--src/mame/video/ojankohs.c20
-rw-r--r--src/mame/video/oneshot.c26
-rw-r--r--src/mame/video/opwolf.c15
-rw-r--r--src/mame/video/orbit.c7
-rw-r--r--src/mame/video/othldrby.c32
-rw-r--r--src/mame/video/othunder.c13
-rw-r--r--src/mame/video/overdriv.c19
-rw-r--r--src/mame/video/pacland.c9
-rw-r--r--src/mame/video/pacman.c64
-rw-r--r--src/mame/video/pandoras.c9
-rw-r--r--src/mame/video/paradise.c51
-rw-r--r--src/mame/video/parodius.c31
-rw-r--r--src/mame/video/pass.c7
-rw-r--r--src/mame/video/pastelg.c7
-rw-r--r--src/mame/video/pbaction.c7
-rw-r--r--src/mame/video/pcktgal.c6
-rw-r--r--src/mame/video/pgm.c24
-rw-r--r--src/mame/video/phoenix.c7
-rw-r--r--src/mame/video/pingpong.c5
-rw-r--r--src/mame/video/pirates.c13
-rw-r--r--src/mame/video/pitnrun.c25
-rw-r--r--src/mame/video/pktgaldx.c42
-rw-r--r--src/mame/video/playch10.c37
-rw-r--r--src/mame/video/playmark.c59
-rw-r--r--src/mame/video/plygonet.c7
-rw-r--r--src/mame/video/pokechmp.c5
-rw-r--r--src/mame/video/polepos.c7
-rw-r--r--src/mame/video/policetr.c5
-rw-r--r--src/mame/video/polyplay.c5
-rw-r--r--src/mame/video/poolshrk.c11
-rw-r--r--src/mame/video/pooyan.c5
-rw-r--r--src/mame/video/popeye.c5
-rw-r--r--src/mame/video/popper.c21
-rw-r--r--src/mame/video/portrait.c19
-rw-r--r--src/mame/video/powerins.c19
-rw-r--r--src/mame/video/prehisle.c9
-rw-r--r--src/mame/video/psikyo.c131
-rw-r--r--src/mame/video/psikyo4.c4
-rw-r--r--src/mame/video/psikyosh.c13
-rw-r--r--src/mame/video/psychic5.c18
-rw-r--r--src/mame/video/punchout.c40
-rw-r--r--src/mame/video/pushman.c11
-rw-r--r--src/mame/video/qdrmfgp.c2
-rw-r--r--src/mame/video/quasar.c33
-rw-r--r--src/mame/video/quizdna.c9
-rw-r--r--src/mame/video/quizpani.c17
-rw-r--r--src/mame/video/raiden.c27
-rw-r--r--src/mame/video/rainbow.c30
-rw-r--r--src/mame/video/rallyx.c43
-rw-r--r--src/mame/video/rampart.c2
-rw-r--r--src/mame/video/rastan.c11
-rw-r--r--src/mame/video/realbrk.c78
-rw-r--r--src/mame/video/redalert.c63
-rw-r--r--src/mame/video/redclash.c9
-rw-r--r--src/mame/video/relief.c7
-rw-r--r--src/mame/video/renegade.c9
-rw-r--r--src/mame/video/retofinv.c7
-rw-r--r--src/mame/video/rltennis.c7
-rw-r--r--src/mame/video/rockrage.c15
-rw-r--r--src/mame/video/rocnrope.c5
-rw-r--r--src/mame/video/rohga.c85
-rw-r--r--src/mame/video/rollerg.c7
-rw-r--r--src/mame/video/rollrace.c45
-rw-r--r--src/mame/video/route16.c25
-rw-r--r--src/mame/video/rpunch.c13
-rw-r--r--src/mame/video/runaway.c32
-rw-r--r--src/mame/video/rungun.c11
-rw-r--r--src/mame/video/sauro.c12
-rw-r--r--src/mame/video/sbasketb.c7
-rw-r--r--src/mame/video/sbugger.c5
-rw-r--r--src/mame/video/scotrsht.c7
-rw-r--r--src/mame/video/sderby.c18
-rw-r--r--src/mame/video/segag80r.c5
-rw-r--r--src/mame/video/segag80v.c2
-rw-r--r--src/mame/video/segas24.c11
-rw-r--r--src/mame/video/segas32.c29
-rw-r--r--src/mame/video/seibuspi.c33
-rw-r--r--src/mame/video/seicross.c7
-rw-r--r--src/mame/video/senjyo.c47
-rw-r--r--src/mame/video/seta.c22
-rw-r--r--src/mame/video/seta2.c12
-rw-r--r--src/mame/video/sf.c13
-rw-r--r--src/mame/video/shadfrce.c18
-rw-r--r--src/mame/video/shangha3.c5
-rw-r--r--src/mame/video/shangkid.c17
-rw-r--r--src/mame/video/shaolins.c5
-rw-r--r--src/mame/video/shisen.c7
-rw-r--r--src/mame/video/shootout.c14
-rw-r--r--src/mame/video/shuuz.c5
-rw-r--r--src/mame/video/sidearms.c17
-rw-r--r--src/mame/video/sidepckt.c7
-rw-r--r--src/mame/video/silkroad.c31
-rw-r--r--src/mame/video/simpl156.c13
-rw-r--r--src/mame/video/simpsons.c31
-rw-r--r--src/mame/video/skullxbo.c7
-rw-r--r--src/mame/video/skydiver.c5
-rw-r--r--src/mame/video/skyfox.c2
-rw-r--r--src/mame/video/skykid.c25
-rw-r--r--src/mame/video/skyraid.c13
-rw-r--r--src/mame/video/slapfght.c50
-rw-r--r--src/mame/video/slapshot.c72
-rw-r--r--src/mame/video/snk.c81
-rw-r--r--src/mame/video/snk6502.c7
-rw-r--r--src/mame/video/snk68.c5
-rw-r--r--src/mame/video/snookr10.c5
-rw-r--r--src/mame/video/solomon.c7
-rw-r--r--src/mame/video/sonson.c5
-rw-r--r--src/mame/video/spacefb.c2
-rw-r--r--src/mame/video/spbactn.c33
-rw-r--r--src/mame/video/spcforce.c13
-rw-r--r--src/mame/video/spdodgeb.c7
-rw-r--r--src/mame/video/speedatk.c21
-rw-r--r--src/mame/video/speedbal.c11
-rw-r--r--src/mame/video/speedspn.c11
-rw-r--r--src/mame/video/splash.c22
-rw-r--r--src/mame/video/sprcros2.c7
-rw-r--r--src/mame/video/sprint2.c30
-rw-r--r--src/mame/video/sprint4.c22
-rw-r--r--src/mame/video/sprint8.c22
-rw-r--r--src/mame/video/spy.c17
-rw-r--r--src/mame/video/srmp2.c11
-rw-r--r--src/mame/video/srumbler.c9
-rw-r--r--src/mame/video/sshangha.c23
-rw-r--r--src/mame/video/sslam.c40
-rw-r--r--src/mame/video/ssozumo.c7
-rw-r--r--src/mame/video/sspeedr.c9
-rw-r--r--src/mame/video/ssrj.c20
-rw-r--r--src/mame/video/ssv.c38
-rw-r--r--src/mame/video/st0016.c4
-rw-r--r--src/mame/video/stactics.c13
-rw-r--r--src/mame/video/stadhero.c9
-rw-r--r--src/mame/video/starcrus.c41
-rw-r--r--src/mame/video/starfire.c5
-rw-r--r--src/mame/video/starshp1.c54
-rw-r--r--src/mame/video/stfight.c13
-rw-r--r--src/mame/video/stlforce.c39
-rw-r--r--src/mame/video/strnskil.c15
-rw-r--r--src/mame/video/stvvdp2.c24
-rw-r--r--src/mame/video/subs.c14
-rw-r--r--src/mame/video/suna16.c12
-rw-r--r--src/mame/video/suna8.c41
-rw-r--r--src/mame/video/supbtime.c15
-rw-r--r--src/mame/video/superchs.c2
-rw-r--r--src/mame/video/superqix.c14
-rw-r--r--src/mame/video/suprloco.c7
-rw-r--r--src/mame/video/suprnova.c45
-rw-r--r--src/mame/video/suprridr.c25
-rw-r--r--src/mame/video/suprslam.c13
-rw-r--r--src/mame/video/surpratk.c31
-rw-r--r--src/mame/video/system1.c45
-rw-r--r--src/mame/video/system16.c164
-rw-r--r--src/mame/video/tagteam.c5
-rw-r--r--src/mame/video/tail2nos.c9
-rw-r--r--src/mame/video/taito_b.c67
-rw-r--r--src/mame/video/taito_f2.c304
-rw-r--r--src/mame/video/taito_f3.c74
-rw-r--r--src/mame/video/taito_h.c41
-rw-r--r--src/mame/video/taito_l.c44
-rw-r--r--src/mame/video/taito_o.c11
-rw-r--r--src/mame/video/taito_z.c126
-rw-r--r--src/mame/video/taitoair.c17
-rw-r--r--src/mame/video/taitojc.c18
-rw-r--r--src/mame/video/taitosj.c4
-rw-r--r--src/mame/video/tank8.c32
-rw-r--r--src/mame/video/tankbatt.c5
-rw-r--r--src/mame/video/tankbust.c13
-rw-r--r--src/mame/video/taotaido.c26
-rw-r--r--src/mame/video/targeth.c15
-rw-r--r--src/mame/video/tatsumi.c82
-rw-r--r--src/mame/video/taxidriv.c47
-rw-r--r--src/mame/video/tbowl.c42
-rw-r--r--src/mame/video/tceptor.c38
-rw-r--r--src/mame/video/tecmo.c9
-rw-r--r--src/mame/video/tecmo16.c21
-rw-r--r--src/mame/video/tecmosys.c43
-rw-r--r--src/mame/video/tehkanwc.c15
-rw-r--r--src/mame/video/terracre.c9
-rw-r--r--src/mame/video/tetrisp2.c207
-rw-r--r--src/mame/video/thedeep.c17
-rw-r--r--src/mame/video/thepit.c21
-rw-r--r--src/mame/video/thief.c9
-rw-r--r--src/mame/video/thoop2.c43
-rw-r--r--src/mame/video/thunderj.c21
-rw-r--r--src/mame/video/thunderx.c21
-rw-r--r--src/mame/video/tiamc1.c17
-rw-r--r--src/mame/video/tigeroad.c9
-rw-r--r--src/mame/video/timelimt.c11
-rw-r--r--src/mame/video/timeplt.c7
-rw-r--r--src/mame/video/tmnt.c220
-rw-r--r--src/mame/video/tnzs.c14
-rw-r--r--src/mame/video/toaplan1.c55
-rw-r--r--src/mame/video/toaplan2.c82
-rw-r--r--src/mame/video/toki.c70
-rw-r--r--src/mame/video/toobin.c15
-rw-r--r--src/mame/video/topspeed.c45
-rw-r--r--src/mame/video/toypop.c7
-rw-r--r--src/mame/video/tp84.c17
-rw-r--r--src/mame/video/trackfld.c11
-rw-r--r--src/mame/video/travrusa.c7
-rw-r--r--src/mame/video/triplhnt.c11
-rw-r--r--src/mame/video/truco.c5
-rw-r--r--src/mame/video/trucocl.c5
-rw-r--r--src/mame/video/tryout.c25
-rw-r--r--src/mame/video/tsamurai.c24
-rw-r--r--src/mame/video/tubep.c44
-rw-r--r--src/mame/video/tumbleb.c104
-rw-r--r--src/mame/video/tumblep.c15
-rw-r--r--src/mame/video/tunhunt.c31
-rw-r--r--src/mame/video/turbo.c81
-rw-r--r--src/mame/video/tutankhm.c11
-rw-r--r--src/mame/video/twin16.c26
-rw-r--r--src/mame/video/twincobr.c11
-rw-r--r--src/mame/video/tx1.c59
-rw-r--r--src/mame/video/ultraman.c13
-rw-r--r--src/mame/video/ultratnk.c22
-rw-r--r--src/mame/video/undrfire.c82
-rw-r--r--src/mame/video/unico.c42
-rw-r--r--src/mame/video/usgames.c5
-rw-r--r--src/mame/video/vaportra.c49
-rw-r--r--src/mame/video/vastar.c31
-rw-r--r--src/mame/video/vball.c11
-rw-r--r--src/mame/video/vectrex.c19
-rw-r--r--src/mame/video/vendetta.c29
-rw-r--r--src/mame/video/vicdual.c24
-rw-r--r--src/mame/video/victory.c13
-rw-r--r--src/mame/video/videopin.c15
-rw-r--r--src/mame/video/vigilant.c22
-rw-r--r--src/mame/video/vindictr.c7
-rw-r--r--src/mame/video/volfied.c5
-rw-r--r--src/mame/video/vulgus.c11
-rw-r--r--src/mame/video/warpwarp.c7
-rw-r--r--src/mame/video/warriorb.c4
-rw-r--r--src/mame/video/wc90.c21
-rw-r--r--src/mame/video/wc90b.c19
-rw-r--r--src/mame/video/wecleman.c58
-rw-r--r--src/mame/video/welltris.c9
-rw-r--r--src/mame/video/wgp.c47
-rw-r--r--src/mame/video/williams.c37
-rw-r--r--src/mame/video/wiping.c29
-rw-r--r--src/mame/video/wiz.c37
-rw-r--r--src/mame/video/wolfpack.c42
-rw-r--r--src/mame/video/wrally.c33
-rw-r--r--src/mame/video/wwfsstar.c11
-rw-r--r--src/mame/video/wwfwfest.c45
-rw-r--r--src/mame/video/xain.c53
-rw-r--r--src/mame/video/xevious.c7
-rw-r--r--src/mame/video/xexex.c47
-rw-r--r--src/mame/video/xmen.c86
-rw-r--r--src/mame/video/xorworld.c5
-rw-r--r--src/mame/video/xxmissio.c13
-rw-r--r--src/mame/video/xybots.c7
-rw-r--r--src/mame/video/xyonix.c5
-rw-r--r--src/mame/video/yiear.c5
-rw-r--r--src/mame/video/yunsun16.c29
-rw-r--r--src/mame/video/yunsung8.c9
-rw-r--r--src/mame/video/zac2650.c5
-rw-r--r--src/mame/video/zaccaria.c11
-rw-r--r--src/mame/video/zaxxon.c20
-rw-r--r--src/mess/drivers/a51xx.c10
-rw-r--r--src/mess/drivers/a7150.c5
-rw-r--r--src/mess/drivers/a7800.c2
-rw-r--r--src/mess/drivers/ac1.c4
-rw-r--r--src/mess/drivers/ami1200.c2
-rw-r--r--src/mess/drivers/amiga.c2
-rw-r--r--src/mess/drivers/amstrad.c12
-rw-r--r--src/mess/drivers/apexc.c12
-rw-r--r--src/mess/drivers/apogee.c2
-rw-r--r--src/mess/drivers/apple1.c2
-rw-r--r--src/mess/drivers/apple2.c2
-rw-r--r--src/mess/drivers/apple2gs.c2
-rw-r--r--src/mess/drivers/apple3.c2
-rw-r--r--src/mess/drivers/apricot.c10
-rw-r--r--src/mess/drivers/aquarius.c2
-rw-r--r--src/mess/drivers/arcadia.c2
-rw-r--r--src/mess/drivers/astrocde.c2
-rw-r--r--src/mess/drivers/b2m.c2
-rw-r--r--src/mess/drivers/bcs3.c46
-rw-r--r--src/mess/drivers/bk.c2
-rw-r--r--src/mess/drivers/bmjr.c12
-rw-r--r--src/mess/drivers/bml3.c51
-rw-r--r--src/mess/drivers/busicom.c2
-rw-r--r--src/mess/drivers/c65.c4
-rw-r--r--src/mess/drivers/casloopy.c5
-rw-r--r--src/mess/drivers/cat.c18
-rw-r--r--src/mess/drivers/cfx9850.c10
-rw-r--r--src/mess/drivers/cgenie.c2
-rw-r--r--src/mess/drivers/channelf.c8
-rw-r--r--src/mess/drivers/codata.c5
-rw-r--r--src/mess/drivers/compis.c9
-rw-r--r--src/mess/drivers/comquest.c2
-rw-r--r--src/mess/drivers/concept.c2
-rw-r--r--src/mess/drivers/cortex.c5
-rw-r--r--src/mess/drivers/craft.c5
-rw-r--r--src/mess/drivers/cxhumax.c19
-rw-r--r--src/mess/drivers/cybiko.c4
-rw-r--r--src/mess/drivers/d6800.c11
-rw-r--r--src/mess/drivers/dai.c2
-rw-r--r--src/mess/drivers/dc.c2
-rw-r--r--src/mess/drivers/dct11em.c5
-rw-r--r--src/mess/drivers/dm7000.c4
-rw-r--r--src/mess/drivers/dms5000.c5
-rw-r--r--src/mess/drivers/einstein.c11
-rw-r--r--src/mess/drivers/electron.c2
-rw-r--r--src/mess/drivers/elwro800.c6
-rw-r--r--src/mess/drivers/enterp.c2
-rw-r--r--src/mess/drivers/fm7.c10
-rw-r--r--src/mess/drivers/fp6000.c50
-rw-r--r--src/mess/drivers/galaxy.c4
-rw-r--r--src/mess/drivers/galeb.c2
-rw-r--r--src/mess/drivers/gamepock.c2
-rw-r--r--src/mess/drivers/gmaster.c11
-rw-r--r--src/mess/drivers/gp2x.c22
-rw-r--r--src/mess/drivers/gp32.c10
-rw-r--r--src/mess/drivers/hec2hrp.c12
-rw-r--r--src/mess/drivers/homelab.c22
-rw-r--r--src/mess/drivers/hp16500.c5
-rw-r--r--src/mess/drivers/hp48.c2
-rw-r--r--src/mess/drivers/hp9k.c5
-rw-r--r--src/mess/drivers/hx20.c5
-rw-r--r--src/mess/drivers/interact.c10
-rw-r--r--src/mess/drivers/intv.c4
-rw-r--r--src/mess/drivers/ip20.c5
-rw-r--r--src/mess/drivers/ipds.c8
-rw-r--r--src/mess/drivers/jr100.c14
-rw-r--r--src/mess/drivers/jr200.c12
-rw-r--r--src/mess/drivers/kaypro.c6
-rw-r--r--src/mess/drivers/konin.c5
-rw-r--r--src/mess/drivers/kramermc.c2
-rw-r--r--src/mess/drivers/lisa.c2
-rw-r--r--src/mess/drivers/llc.c4
-rw-r--r--src/mess/drivers/lviv.c2
-rw-r--r--src/mess/drivers/m20.c8
-rw-r--r--src/mess/drivers/m79152pc.c12
-rw-r--r--src/mess/drivers/mac.c30
-rw-r--r--src/mess/drivers/macpci.c4
-rw-r--r--src/mess/drivers/mbc200.c8
-rw-r--r--src/mess/drivers/mbc55x.c2
-rw-r--r--src/mess/drivers/mbee.c4
-rw-r--r--src/mess/drivers/mc80.c4
-rw-r--r--src/mess/drivers/microtan.c2
-rw-r--r--src/mess/drivers/mikro80.c2
-rw-r--r--src/mess/drivers/mikrosha.c2
-rw-r--r--src/mess/drivers/mirage.c5
-rw-r--r--src/mess/drivers/mk85.c5
-rw-r--r--src/mess/drivers/mk90.c5
-rw-r--r--src/mess/drivers/ms0515.c22
-rw-r--r--src/mess/drivers/multi16.c44
-rw-r--r--src/mess/drivers/multi8.c72
-rw-r--r--src/mess/drivers/myb3k.c50
-rw-r--r--src/mess/drivers/mz2000.c28
-rw-r--r--src/mess/drivers/mz2500.c10
-rw-r--r--src/mess/drivers/mz700.c4
-rw-r--r--src/mess/drivers/mz80.c6
-rw-r--r--src/mess/drivers/n64.c2
-rw-r--r--src/mess/drivers/nascom1.c4
-rw-r--r--src/mess/drivers/nc.c2
-rw-r--r--src/mess/drivers/nes.c2
-rw-r--r--src/mess/drivers/ng_aes.c2
-rw-r--r--src/mess/drivers/ngp.c8
-rw-r--r--src/mess/drivers/odyssey2.c6
-rw-r--r--src/mess/drivers/okean240.c10
-rw-r--r--src/mess/drivers/ondra.c2
-rw-r--r--src/mess/drivers/orao.c2
-rw-r--r--src/mess/drivers/oric.c2
-rw-r--r--src/mess/drivers/orion.c6
-rw-r--r--src/mess/drivers/p112.c5
-rw-r--r--src/mess/drivers/p2000t.c2
-rw-r--r--src/mess/drivers/partner.c2
-rw-r--r--src/mess/drivers/paso1600.c46
-rw-r--r--src/mess/drivers/pasogo.c7
-rw-r--r--src/mess/drivers/pasopia7.c12
-rw-r--r--src/mess/drivers/pc100.c10
-rw-r--r--src/mess/drivers/pc6001.c73
-rw-r--r--src/mess/drivers/pc88va.c26
-rw-r--r--src/mess/drivers/pcw.c6
-rw-r--r--src/mess/drivers/pcw16.c2
-rw-r--r--src/mess/drivers/pdp1.c4
-rw-r--r--src/mess/drivers/pet.c2
-rw-r--r--src/mess/drivers/pk8000.c5
-rw-r--r--src/mess/drivers/pk8020.c2
-rw-r--r--src/mess/drivers/pocketc.c8
-rw-r--r--src/mess/drivers/pockstat.c10
-rw-r--r--src/mess/drivers/poly88.c2
-rw-r--r--src/mess/drivers/pp01.c2
-rw-r--r--src/mess/drivers/primo.c2
-rw-r--r--src/mess/drivers/pt68k4.c5
-rw-r--r--src/mess/drivers/pv1000.c10
-rw-r--r--src/mess/drivers/pv9234.c5
-rw-r--r--src/mess/drivers/px4.c12
-rw-r--r--src/mess/drivers/radio86.c2
-rw-r--r--src/mess/drivers/rainbow.c6
-rw-r--r--src/mess/drivers/rm380z.c7
-rw-r--r--src/mess/drivers/rmnimbus.c4
-rw-r--r--src/mess/drivers/sapi1.c4
-rw-r--r--src/mess/drivers/scv.c66
-rw-r--r--src/mess/drivers/sgi_ip6.c5
-rw-r--r--src/mess/drivers/sm1800.c8
-rw-r--r--src/mess/drivers/smc777.c24
-rw-r--r--src/mess/drivers/sms.c18
-rw-r--r--src/mess/drivers/socrates.c16
-rw-r--r--src/mess/drivers/special.c8
-rw-r--r--src/mess/drivers/spectrum.c4
-rw-r--r--src/mess/drivers/ssem.c28
-rw-r--r--src/mess/drivers/ssystem3.c2
-rw-r--r--src/mess/drivers/super80.c14
-rw-r--r--src/mess/drivers/supracan.c82
-rw-r--r--src/mess/drivers/svision.c24
-rw-r--r--src/mess/drivers/sys2900.c5
-rw-r--r--src/mess/drivers/terak.c5
-rw-r--r--src/mess/drivers/ti85.c2
-rw-r--r--src/mess/drivers/ti990_10.c8
-rw-r--r--src/mess/drivers/ti990_4.c13
-rw-r--r--src/mess/drivers/ti99_2.c8
-rw-r--r--src/mess/drivers/tim011.c5
-rw-r--r--src/mess/drivers/timex.c4
-rw-r--r--src/mess/drivers/tk80bs.c8
-rw-r--r--src/mess/drivers/trs80.c12
-rw-r--r--src/mess/drivers/tx0.c4
-rw-r--r--src/mess/drivers/uknc.c5
-rw-r--r--src/mess/drivers/unior.c14
-rw-r--r--src/mess/drivers/unistar.c5
-rw-r--r--src/mess/drivers/ut88.c2
-rw-r--r--src/mess/drivers/uzebox.c5
-rw-r--r--src/mess/drivers/vboy.c26
-rw-r--r--src/mess/drivers/vc4000.c2
-rw-r--r--src/mess/drivers/vector06.c2
-rw-r--r--src/mess/drivers/vii.c18
-rw-r--r--src/mess/drivers/vt100.c5
-rw-r--r--src/mess/drivers/vt220.c5
-rw-r--r--src/mess/drivers/vt320.c5
-rw-r--r--src/mess/drivers/vt520.c5
-rw-r--r--src/mess/drivers/vta2000.c12
-rw-r--r--src/mess/drivers/vtech2.c2
-rw-r--r--src/mess/drivers/x1.c9
-rw-r--r--src/mess/drivers/x1twin.c7
-rw-r--r--src/mess/drivers/x68k.c2
-rw-r--r--src/mess/drivers/z100.c46
-rw-r--r--src/mess/drivers/z1013.c10
-rw-r--r--src/mess/drivers/z9001.c16
-rw-r--r--src/mess/drivers/zx.c2
-rw-r--r--src/mess/includes/a7800.h3
-rw-r--r--src/mess/includes/abc1600.h1
-rw-r--r--src/mess/includes/ac1.h6
-rw-r--r--src/mess/includes/ace.h1
-rw-r--r--src/mess/includes/amstrad.h6
-rw-r--r--src/mess/includes/apple1.h3
-rw-r--r--src/mess/includes/apple2.h3
-rw-r--r--src/mess/includes/apple2gs.h3
-rw-r--r--src/mess/includes/apple3.h3
-rw-r--r--src/mess/includes/aquarius.h3
-rw-r--r--src/mess/includes/arcadia.h1
-rw-r--r--src/mess/includes/b2m.h1
-rw-r--r--src/mess/includes/bbc.h3
-rw-r--r--src/mess/includes/bk.h1
-rw-r--r--src/mess/includes/busicom.h1
-rw-r--r--src/mess/includes/c65.h1
-rw-r--r--src/mess/includes/cgc7900.h1
-rw-r--r--src/mess/includes/cgenie.h3
-rw-r--r--src/mess/includes/channelf.h3
-rw-r--r--src/mess/includes/compis.h1
-rw-r--r--src/mess/includes/comquest.h3
-rw-r--r--src/mess/includes/concept.h3
-rw-r--r--src/mess/includes/cxhumax.h1
-rw-r--r--src/mess/includes/cybiko.h1
-rw-r--r--src/mess/includes/dai.h3
-rw-r--r--src/mess/includes/dm7000.h1
-rw-r--r--src/mess/includes/einstein.h1
-rw-r--r--src/mess/includes/electron.h3
-rw-r--r--src/mess/includes/enterp.h3
-rw-r--r--src/mess/includes/fm7.h3
-rw-r--r--src/mess/includes/galaxy.h3
-rw-r--r--src/mess/includes/galeb.h1
-rw-r--r--src/mess/includes/gamepock.h3
-rw-r--r--src/mess/includes/gmaster.h1
-rw-r--r--src/mess/includes/gp32.h1
-rw-r--r--src/mess/includes/hec2hrp.h3
-rw-r--r--src/mess/includes/hp48.h18
-rw-r--r--src/mess/includes/intv.h2
-rw-r--r--src/mess/includes/kaypro.h9
-rw-r--r--src/mess/includes/kramermc.h3
-rw-r--r--src/mess/includes/lisa.h3
-rw-r--r--src/mess/includes/llc.h2
-rw-r--r--src/mess/includes/lviv.h1
-rw-r--r--src/mess/includes/mac.h27
-rw-r--r--src/mess/includes/macpci.h1
-rw-r--r--src/mess/includes/mbc55x.h3
-rw-r--r--src/mess/includes/mbee.h7
-rw-r--r--src/mess/includes/mc80.h2
-rw-r--r--src/mess/includes/microtan.h1
-rw-r--r--src/mess/includes/mikro80.h1
-rw-r--r--src/mess/includes/mikromik.h1
-rw-r--r--src/mess/includes/mz700.h6
-rw-r--r--src/mess/includes/mz80.h3
-rw-r--r--src/mess/includes/nascom1.h6
-rw-r--r--src/mess/includes/nc.h1
-rw-r--r--src/mess/includes/nes.h3
-rw-r--r--src/mess/includes/odyssey2.h3
-rw-r--r--src/mess/includes/ondra.h1
-rw-r--r--src/mess/includes/orao.h1
-rw-r--r--src/mess/includes/oric.h3
-rw-r--r--src/mess/includes/orion.h1
-rw-r--r--src/mess/includes/p2000t.h1
-rw-r--r--src/mess/includes/pc1251.h3
-rw-r--r--src/mess/includes/pc1350.h3
-rw-r--r--src/mess/includes/pc1401.h3
-rw-r--r--src/mess/includes/pc1403.h3
-rw-r--r--src/mess/includes/pc1512.h1
-rw-r--r--src/mess/includes/pcw.h2
-rw-r--r--src/mess/includes/pcw16.h1
-rw-r--r--src/mess/includes/pdp1.h6
-rw-r--r--src/mess/includes/pet.h3
-rw-r--r--src/mess/includes/pk8020.h1
-rw-r--r--src/mess/includes/poly88.h1
-rw-r--r--src/mess/includes/pp01.h1
-rw-r--r--src/mess/includes/primo.h1
-rw-r--r--src/mess/includes/px8.h1
-rw-r--r--src/mess/includes/radio86.h8
-rw-r--r--src/mess/includes/rm380z.h1
-rw-r--r--src/mess/includes/rmnimbus.h6
-rw-r--r--src/mess/includes/sapi1.h2
-rw-r--r--src/mess/includes/sms.h9
-rw-r--r--src/mess/includes/special.h12
-rw-r--r--src/mess/includes/spectrum.h12
-rw-r--r--src/mess/includes/ssystem3.h1
-rw-r--r--src/mess/includes/super80.h18
-rw-r--r--src/mess/includes/svision.h2
-rw-r--r--src/mess/includes/tdv2324.h1
-rw-r--r--src/mess/includes/ti85.h3
-rw-r--r--src/mess/includes/trs80.h18
-rw-r--r--src/mess/includes/tx0.h6
-rw-r--r--src/mess/includes/ut88.h1
-rw-r--r--src/mess/includes/vc4000.h1
-rw-r--r--src/mess/includes/vector06.h1
-rw-r--r--src/mess/includes/vixen.h1
-rw-r--r--src/mess/includes/vtech2.h1
-rw-r--r--src/mess/includes/x1.h3
-rw-r--r--src/mess/includes/x68k.h3
-rw-r--r--src/mess/includes/zx.h3
-rw-r--r--src/mess/machine/amstrad.c9
-rw-r--r--src/mess/machine/concept.c5
-rw-r--r--src/mess/machine/gamepock.c73
-rw-r--r--src/mess/machine/lisa.c9
-rw-r--r--src/mess/machine/sms.c39
-rw-r--r--src/mess/video/a7800.c7
-rw-r--r--src/mess/video/ac1.c4
-rw-r--r--src/mess/video/apple1.c5
-rw-r--r--src/mess/video/apple2.c40
-rw-r--r--src/mess/video/apple2gs.c32
-rw-r--r--src/mess/video/apple3.c5
-rw-r--r--src/mess/video/aquarius.c5
-rw-r--r--src/mess/video/arcadia.c5
-rw-r--r--src/mess/video/b2m.c13
-rw-r--r--src/mess/video/bbc.c19
-rw-r--r--src/mess/video/bk.c7
-rw-r--r--src/mess/video/busicom.c7
-rw-r--r--src/mess/video/cgenie.c5
-rw-r--r--src/mess/video/channelf.c7
-rw-r--r--src/mess/video/comquest.c2
-rw-r--r--src/mess/video/dai.c39
-rw-r--r--src/mess/video/electron.c127
-rw-r--r--src/mess/video/epnick.c7
-rw-r--r--src/mess/video/fm7.c51
-rw-r--r--src/mess/video/galaxy.c13
-rw-r--r--src/mess/video/galeb.c5
-rw-r--r--src/mess/video/hec2video.c11
-rw-r--r--src/mess/video/hp48.c6
-rw-r--r--src/mess/video/intv.c38
-rw-r--r--src/mess/video/kaypro.c35
-rw-r--r--src/mess/video/kramermc.c2
-rw-r--r--src/mess/video/llc.c18
-rw-r--r--src/mess/video/lviv.c13
-rw-r--r--src/mess/video/mac.c205
-rw-r--r--src/mess/video/mbc55x.c2
-rw-r--r--src/mess/video/mbee.c11
-rw-r--r--src/mess/video/mc80.c10
-rw-r--r--src/mess/video/microtan.c5
-rw-r--r--src/mess/video/mikro80.c9
-rw-r--r--src/mess/video/mz700.c20
-rw-r--r--src/mess/video/mz80.c35
-rw-r--r--src/mess/video/nascom1.c10
-rw-r--r--src/mess/video/nc.c9
-rw-r--r--src/mess/video/nes.c23
-rw-r--r--src/mess/video/odyssey2.c5
-rw-r--r--src/mess/video/ondra.c5
-rw-r--r--src/mess/video/orao.c5
-rw-r--r--src/mess/video/oric.c25
-rw-r--r--src/mess/video/orion.c17
-rw-r--r--src/mess/video/p2000m.c7
-rw-r--r--src/mess/video/pc1251.c23
-rw-r--r--src/mess/video/pc1350.c17
-rw-r--r--src/mess/video/pc1401.c39
-rw-r--r--src/mess/video/pc1403.c113
-rw-r--r--src/mess/video/pcw.c32
-rw-r--r--src/mess/video/pcw16.c17
-rw-r--r--src/mess/video/pdp1.c22
-rw-r--r--src/mess/video/pet.c7
-rw-r--r--src/mess/video/pk8020.c9
-rw-r--r--src/mess/video/poly88.c9
-rw-r--r--src/mess/video/pp01.c9
-rw-r--r--src/mess/video/primo.c2
-rw-r--r--src/mess/video/radio86.c5
-rw-r--r--src/mess/video/rmnimbus.c13
-rw-r--r--src/mess/video/sapi1.c13
-rw-r--r--src/mess/video/special.c28
-rw-r--r--src/mess/video/spectrum.c24
-rw-r--r--src/mess/video/ssystem3.c29
-rw-r--r--src/mess/video/super80.c82
-rw-r--r--src/mess/video/ti85.c43
-rw-r--r--src/mess/video/timex.c22
-rw-r--r--src/mess/video/trs80.c130
-rw-r--r--src/mess/video/tx0.c18
-rw-r--r--src/mess/video/ut88.c7
-rw-r--r--src/mess/video/vc4000.c5
-rw-r--r--src/mess/video/vector06.c11
-rw-r--r--src/mess/video/vtech2.c23
-rw-r--r--src/mess/video/x68k.c127
-rw-r--r--src/mess/video/zx.c9
2576 files changed, 16636 insertions, 16455 deletions
diff --git a/src/emu/screen.h b/src/emu/screen.h
index c89f227c1b7..76e5c77ed5b 100644
--- a/src/emu/screen.h
+++ b/src/emu/screen.h
@@ -352,6 +352,8 @@ typedef device_type_iterator<&device_creator<screen_device>, screen_device> scre
#define SCREEN_UPDATE_RGB32(name) UINT32 SCREEN_UPDATE_NAME(name)(device_t *, screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
#define SCREEN_UPDATE16_CALL(name) SCREEN_UPDATE_NAME(name)(NULL, screen, bitmap, cliprect)
#define SCREEN_UPDATE32_CALL(name) SCREEN_UPDATE_NAME(name)(NULL, screen, bitmap, cliprect)
+#define SCREEN_UPDATE16_CALL_MEMBER(name) SCREEN_UPDATE_NAME(name)(screen, bitmap, cliprect)
+#define SCREEN_UPDATE32_CALL_MEMBER(name) SCREEN_UPDATE_NAME(name)(screen, bitmap, cliprect)
#define SCREEN_VBLANK_NAME(name) screen_vblank_##name
#define SCREEN_VBLANK(name) void SCREEN_VBLANK_NAME(name)(device_t *, screen_device &screen, bool vblank_on)
diff --git a/src/mame/drivers/1942.c b/src/mame/drivers/1942.c
index 4aaa35aab84..7b0d663716c 100644
--- a/src/mame/drivers/1942.c
+++ b/src/mame/drivers/1942.c
@@ -274,7 +274,7 @@ static MACHINE_CONFIG_START( 1942, _1942_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(1942)
+ MCFG_SCREEN_UPDATE_DRIVER(_1942_state, screen_update_1942)
/* sound hardware */
diff --git a/src/mame/drivers/1943.c b/src/mame/drivers/1943.c
index 48e7a38c0ca..f4a1f0f70ec 100644
--- a/src/mame/drivers/1943.c
+++ b/src/mame/drivers/1943.c
@@ -270,7 +270,7 @@ static MACHINE_CONFIG_START( 1943, _1943_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(1943)
+ MCFG_SCREEN_UPDATE_DRIVER(_1943_state, screen_update_1943)
MCFG_GFXDECODE(1943)
MCFG_PALETTE_LENGTH(32*4+16*16+16*16+16*16)
diff --git a/src/mame/drivers/1945kiii.c b/src/mame/drivers/1945kiii.c
index 7f5f0562737..6bfb4734df5 100644
--- a/src/mame/drivers/1945kiii.c
+++ b/src/mame/drivers/1945kiii.c
@@ -77,6 +77,7 @@ public:
TILE_GET_INFO_MEMBER(get_k3_bg_tile_info);
virtual void machine_start();
virtual void video_start();
+ UINT32 screen_update_k3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -123,10 +124,9 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-static SCREEN_UPDATE_IND16(k3)
+UINT32 k3_state::screen_update_k3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- k3_state *state = screen.machine().driver_data<k3_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
@@ -267,7 +267,7 @@ static MACHINE_CONFIG_START( k3, k3_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(k3)
+ MCFG_SCREEN_UPDATE_DRIVER(k3_state, screen_update_k3)
MCFG_PALETTE_LENGTH(0x800)
diff --git a/src/mame/drivers/2mindril.c b/src/mame/drivers/2mindril.c
index dd3d35f38ee..f1a50371e72 100644
--- a/src/mame/drivers/2mindril.c
+++ b/src/mame/drivers/2mindril.c
@@ -63,7 +63,6 @@ public:
DECLARE_DRIVER_INIT(drill);
DECLARE_MACHINE_START(drill);
DECLARE_MACHINE_RESET(drill);
-
};
@@ -458,8 +457,8 @@ static MACHINE_CONFIG_START( drill, _2mindril_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* inaccurate, same as Taito F3? (needs screen raw params anyway) */
MCFG_SCREEN_SIZE(40*8+48*2, 32*8)
MCFG_SCREEN_VISIBLE_AREA(46, 40*8-1 + 46, 24, 24+224-1)
- MCFG_SCREEN_UPDATE_STATIC(f3)
- MCFG_SCREEN_VBLANK_STATIC(f3)
+ MCFG_SCREEN_UPDATE_DRIVER(_2mindril_state, screen_update_f3)
+ MCFG_SCREEN_VBLANK_DRIVER(_2mindril_state, screen_eof_f3)
MCFG_PALETTE_LENGTH(0x2000)
diff --git a/src/mame/drivers/39in1.c b/src/mame/drivers/39in1.c
index 8f07a266ef3..83badf7bae5 100644
--- a/src/mame/drivers/39in1.c
+++ b/src/mame/drivers/39in1.c
@@ -74,6 +74,7 @@ public:
DECLARE_READ32_MEMBER(prot_cheater_r);
DECLARE_DRIVER_INIT(39in1);
virtual void machine_start();
+ UINT32 screen_update_39in1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -1517,18 +1518,17 @@ static INPUT_PORTS_START( 39in1 )
PORT_SERVICE_NO_TOGGLE( 0x80000000, IP_ACTIVE_LOW )
INPUT_PORTS_END
-static SCREEN_UPDATE_RGB32( 39in1 )
+UINT32 _39in1_state::screen_update_39in1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- _39in1_state *state = screen.machine().driver_data<_39in1_state>();
int x = 0;
int y = 0;
- for(y = 0; y <= (state->m_lcd_regs.lccr2 & PXA255_LCCR2_LPP); y++)
+ for(y = 0; y <= (m_lcd_regs.lccr2 & PXA255_LCCR2_LPP); y++)
{
UINT32 *d = &bitmap.pix32(y);
- for(x = 0; x <= (state->m_lcd_regs.lccr1 & PXA255_LCCR1_PPL); x++)
+ for(x = 0; x <= (m_lcd_regs.lccr1 & PXA255_LCCR1_PPL); x++)
{
- d[x] = state->m_pxa255_lcd_palette[state->m_pxa255_lcd_framebuffer[y*((state->m_lcd_regs.lccr1 & PXA255_LCCR1_PPL) + 1) + x]];
+ d[x] = m_pxa255_lcd_palette[m_pxa255_lcd_framebuffer[y*((m_lcd_regs.lccr1 & PXA255_LCCR1_PPL) + 1) + x]];
}
}
return 0;
@@ -1600,7 +1600,7 @@ static MACHINE_CONFIG_START( 39in1, _39in1_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(1024, 1024)
MCFG_SCREEN_VISIBLE_AREA(0, 295, 0, 479)
- MCFG_SCREEN_UPDATE_STATIC(39in1)
+ MCFG_SCREEN_UPDATE_DRIVER(_39in1_state, screen_update_39in1)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/3do.c b/src/mame/drivers/3do.c
index b3e9653b783..73555d1311c 100644
--- a/src/mame/drivers/3do.c
+++ b/src/mame/drivers/3do.c
@@ -165,7 +165,7 @@ static MACHINE_CONFIG_START( 3do, _3do_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS( X2_CLOCK_NTSC / 2, 1592, 254, 1534, 263, 22, 262 )
- MCFG_SCREEN_UPDATE_STATIC( _3do )
+ MCFG_SCREEN_UPDATE_DRIVER(_3do_state, screen_update__3do)
MCFG_CDROM_ADD( "cdrom", _3do_cdrom)
MACHINE_CONFIG_END
@@ -179,7 +179,7 @@ static MACHINE_CONFIG_START( 3do_pal, _3do_state )
MCFG_SCREEN_ADD("screen", RASTER)
- MCFG_SCREEN_UPDATE_STATIC( _3do )
+ MCFG_SCREEN_UPDATE_DRIVER(_3do_state, screen_update__3do)
MCFG_SCREEN_SIZE( 640, 625 )
MCFG_SCREEN_VISIBLE_AREA( 0, 639, 0, 479 )
MCFG_SCREEN_REFRESH_RATE( 50 )
diff --git a/src/mame/drivers/40love.c b/src/mame/drivers/40love.c
index 4fd0156e6ca..6f7d5026d53 100644
--- a/src/mame/drivers/40love.c
+++ b/src/mame/drivers/40love.c
@@ -1080,7 +1080,7 @@ static MACHINE_CONFIG_START( 40love, fortyl_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(128,128+255, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(fortyl)
+ MCFG_SCREEN_UPDATE_DRIVER(fortyl_state, screen_update_fortyl)
MCFG_GFXDECODE(40love)
MCFG_PALETTE_LENGTH(1024)
@@ -1135,7 +1135,7 @@ static MACHINE_CONFIG_START( undoukai, fortyl_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(128,128+255, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(fortyl)
+ MCFG_SCREEN_UPDATE_DRIVER(fortyl_state, screen_update_fortyl)
MCFG_GFXDECODE(40love)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/4enraya.c b/src/mame/drivers/4enraya.c
index 5266657d61f..f37c19c75ed 100644
--- a/src/mame/drivers/4enraya.c
+++ b/src/mame/drivers/4enraya.c
@@ -330,7 +330,7 @@ static MACHINE_CONFIG_START( 4enraya, _4enraya_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(4enraya)
+ MCFG_SCREEN_UPDATE_DRIVER(_4enraya_state, screen_update_4enraya)
MCFG_GFXDECODE(4enraya)
diff --git a/src/mame/drivers/4roses.c b/src/mame/drivers/4roses.c
index d2656839b80..79b4205400e 100644
--- a/src/mame/drivers/4roses.c
+++ b/src/mame/drivers/4roses.c
@@ -396,7 +396,7 @@ static MACHINE_CONFIG_START( 4roses, _4roses_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE((124+1)*4, (30+1)*8) /* guess. taken from funworld games */
MCFG_SCREEN_VISIBLE_AREA(0*4, 96*4-1, 0*8, 29*8-1) /* guess. taken from funworld games */
- MCFG_SCREEN_UPDATE_STATIC(funworld)
+ MCFG_SCREEN_UPDATE_DRIVER(_4roses_state, screen_update_funworld)
MCFG_GFXDECODE(4roses)
diff --git a/src/mame/drivers/5clown.c b/src/mame/drivers/5clown.c
index 9620e9510c7..17c4e32e0a9 100644
--- a/src/mame/drivers/5clown.c
+++ b/src/mame/drivers/5clown.c
@@ -486,6 +486,7 @@ public:
TILE_GET_INFO_MEMBER(get_fclown_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_fclown(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -537,10 +538,9 @@ void _5clown_state::video_start()
}
-static SCREEN_UPDATE_IND16( fclown )
+UINT32 _5clown_state::screen_update_fclown(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- _5clown_state *state = screen.machine().driver_data<_5clown_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -1081,7 +1081,7 @@ static MACHINE_CONFIG_START( fclown, _5clown_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE((39+1)*8, (31+1)*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(fclown)
+ MCFG_SCREEN_UPDATE_DRIVER(_5clown_state, screen_update_fclown)
MCFG_GFXDECODE(fclown)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/8080bw.c b/src/mame/drivers/8080bw.c
index 1b2804669d2..41f805af587 100644
--- a/src/mame/drivers/8080bw.c
+++ b/src/mame/drivers/8080bw.c
@@ -396,7 +396,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( invadpt2, mw8080bw_root, _8080bw_state )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(invadpt2)
+ MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_invadpt2)
/* sound hardware */
MCFG_FRAGMENT_ADD(invaders_samples_audio)
@@ -572,7 +572,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( cosmo, mw8080bw_root, _8080bw_state )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(cosmo)
+ MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_cosmo)
/* sound hardware */
MCFG_FRAGMENT_ADD(invaders_samples_audio)
@@ -802,7 +802,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( lrescue, mw8080bw_root, _8080bw_state )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(invadpt2)
+ MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_invadpt2)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -954,7 +954,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( rollingc, mw8080bw_root, _8080bw_state )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(rollingc)
+ MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_rollingc)
/* sound hardware */
MCFG_FRAGMENT_ADD(invaders_samples_audio)
@@ -1072,7 +1072,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( schaser, mw8080bw_root, _8080bw_state )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(schaser)
+ MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_schaser)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1141,7 +1141,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( schasercv, mw8080bw_root, _8080bw_state )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(schasercv)
+ MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_schasercv)
/* sound hardware */
MCFG_FRAGMENT_ADD(invaders_samples_audio)
@@ -1222,7 +1222,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( sflush, mw8080bw_root, _8080bw_state )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(sflush)
+ MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_sflush)
MACHINE_CONFIG_END
@@ -1329,7 +1329,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( lupin3, mw8080bw_root, _8080bw_state )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(indianbt)
+ MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_indianbt)
/* sound hardware */
MCFG_FRAGMENT_ADD(invaders_samples_audio)
@@ -1349,7 +1349,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( lupin3a, mw8080bw_root, _8080bw_state )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(lupin3)
+ MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_lupin3)
/* sound hardware */
MCFG_FRAGMENT_ADD(invaders_samples_audio)
@@ -1469,7 +1469,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( polaris, mw8080bw_root, _8080bw_state )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(polaris)
+ MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_polaris)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1592,7 +1592,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( ballbomb, mw8080bw_root, _8080bw_state )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(ballbomb)
+ MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_ballbomb)
/* sound hardware */
MCFG_FRAGMENT_ADD(invaders_samples_audio)
@@ -1763,7 +1763,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( indianbt, mw8080bw_root, _8080bw_state )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(indianbt)
+ MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_indianbt)
/* sound hardware */
MCFG_FRAGMENT_ADD(invaders_samples_audio)
@@ -1837,7 +1837,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( steelwkr, mw8080bw_root, _8080bw_state )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(invadpt2)
+ MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_invadpt2)
/* sound hardware */
MCFG_FRAGMENT_ADD(invaders_samples_audio)
@@ -1972,7 +1972,7 @@ static MACHINE_CONFIG_DERIVED_CLASS( shuttlei, mw8080bw_root, _8080bw_state )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 24*8-1)
- MCFG_SCREEN_UPDATE_STATIC(shuttlei)
+ MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_shuttlei)
/* sound hardware */
MCFG_FRAGMENT_ADD(invaders_samples_audio)
@@ -2153,7 +2153,7 @@ MACHINE_CONFIG_DERIVED_CLASS( vortex, mw8080bw_root, _8080bw_state )
/* video hardware */
// TODO: replace with modified invaders color renderer code allowing midscanline color writes
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(invaders)
+ MCFG_SCREEN_UPDATE_DRIVER(_8080bw_state, screen_update_invaders)
/* add shifter */
MCFG_MB14241_ADD("mb14241")
diff --git a/src/mame/drivers/88games.c b/src/mame/drivers/88games.c
index a054de42e2d..4f6f87bcdbb 100644
--- a/src/mame/drivers/88games.c
+++ b/src/mame/drivers/88games.c
@@ -386,7 +386,7 @@ static MACHINE_CONFIG_START( 88games, _88games_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(88games)
+ MCFG_SCREEN_UPDATE_DRIVER(_88games_state, screen_update_88games)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/ace.c b/src/mame/drivers/ace.c
index 7bdef149339..3c0bf68debc 100644
--- a/src/mame/drivers/ace.c
+++ b/src/mame/drivers/ace.c
@@ -68,6 +68,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_ace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -91,9 +92,8 @@ void aceal_state::video_start()
machine().gfx[4]->set_source(m_scoreram);
}
-static SCREEN_UPDATE_IND16( ace )
+UINT32 aceal_state::screen_update_ace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- aceal_state *state = screen.machine().driver_data<aceal_state>();
int offs;
/* first of all, fill the screen with the background color */
@@ -103,19 +103,19 @@ static SCREEN_UPDATE_IND16( ace )
0,
0,
0, 0,
- state->m_objpos[0], state->m_objpos[1]);
+ m_objpos[0], m_objpos[1]);
drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[2],
0,
0,
0, 0,
- state->m_objpos[2], state->m_objpos[3]);
+ m_objpos[2], m_objpos[3]);
drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[3],
0,
0,
0, 0,
- state->m_objpos[4], state->m_objpos[5]);
+ m_objpos[4], m_objpos[5]);
for (offs = 0; offs < 8; offs++)
{
@@ -359,7 +359,7 @@ static MACHINE_CONFIG_START( ace, aceal_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(4*8, 32*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(ace)
+ MCFG_SCREEN_UPDATE_DRIVER(aceal_state, screen_update_ace)
MCFG_GFXDECODE(ace)
MCFG_PALETTE_LENGTH(2)
diff --git a/src/mame/drivers/acefruit.c b/src/mame/drivers/acefruit.c
index 8100daef70b..e65674e952b 100644
--- a/src/mame/drivers/acefruit.c
+++ b/src/mame/drivers/acefruit.c
@@ -39,6 +39,7 @@ public:
DECLARE_DRIVER_INIT(sidewndr);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_acefruit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -89,9 +90,8 @@ static INTERRUPT_GEN( acefruit_vblank )
state->m_refresh_timer->adjust( attotime::zero );
}
-static SCREEN_UPDATE_IND16( acefruit )
+UINT32 acefruit_state::screen_update_acefruit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- acefruit_state *state = screen.machine().driver_data<acefruit_state>();
int startrow = cliprect.min_y / 8;
int endrow = cliprect.max_y / 8;
int row;
@@ -106,8 +106,8 @@ static SCREEN_UPDATE_IND16( acefruit )
for( col = 0; col < 32; col++ )
{
int tile_index = ( col * 32 ) + row;
- int code = state->m_videoram[ tile_index ];
- int color = state->m_colorram[ tile_index ];
+ int code = m_videoram[ tile_index ];
+ int color = m_colorram[ tile_index ];
if( color < 0x4 )
{
@@ -123,7 +123,7 @@ static SCREEN_UPDATE_IND16( acefruit )
for( x = 0; x < 16; x++ )
{
- int sprite = ( state->m_spriteram[ ( spriteindex / 64 ) % 6 ] & 0xf ) ^ 0xf;
+ int sprite = ( m_spriteram[ ( spriteindex / 64 ) % 6 ] & 0xf ) ^ 0xf;
const UINT8 *gfxdata = gfx->get_data(sprite);
for( y = 0; y < 8; y++ )
@@ -592,7 +592,7 @@ static MACHINE_CONFIG_START( acefruit, acefruit_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 255)
- MCFG_SCREEN_UPDATE_STATIC(acefruit)
+ MCFG_SCREEN_UPDATE_DRIVER(acefruit_state, screen_update_acefruit)
MCFG_PALETTE_LENGTH(16)
diff --git a/src/mame/drivers/acommand.c b/src/mame/drivers/acommand.c
index 610644229c3..6ceaee97c7b 100644
--- a/src/mame/drivers/acommand.c
+++ b/src/mame/drivers/acommand.c
@@ -92,6 +92,7 @@ public:
TILE_GET_INFO_MEMBER(ac_get_bg_tile_info);
TILE_GET_INFO_MEMBER(ac_get_tx_tile_info);
virtual void video_start();
+ UINT32 screen_update_acommand(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -249,21 +250,20 @@ static void draw_led(bitmap_ind16 &bitmap, int x, int y,UINT8 value)
}
-static SCREEN_UPDATE_IND16( acommand )
+UINT32 acommand_state::screen_update_acommand(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- acommand_state *state = screen.machine().driver_data<acommand_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(),bitmap,cliprect,0,0);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0,0);
/*Order might be wrong,but these for sure are the led numbers tested*/
- draw_led(bitmap, 0, 20, (state->m_led0 & 0x0f00) >> 8);
- draw_led(bitmap, 6, 20, (state->m_led0 & 0x00f0) >> 4);
- draw_led(bitmap, 12, 20, (state->m_led0 & 0x000f));
+ draw_led(bitmap, 0, 20, (m_led0 & 0x0f00) >> 8);
+ draw_led(bitmap, 6, 20, (m_led0 & 0x00f0) >> 4);
+ draw_led(bitmap, 12, 20, (m_led0 & 0x000f));
- draw_led(bitmap, 256-18,20,(state->m_led0 & 0xf000) >> 12);
- draw_led(bitmap, 256-12,20,(state->m_led1 & 0xf0) >> 4);
- draw_led(bitmap, 256-6,20, (state->m_led1 & 0xf));
+ draw_led(bitmap, 256-18,20,(m_led0 & 0xf000) >> 12);
+ draw_led(bitmap, 256-12,20,(m_led1 & 0xf0) >> 4);
+ draw_led(bitmap, 256-6,20, (m_led1 & 0xf));
return 0;
}
@@ -609,7 +609,7 @@ static MACHINE_CONFIG_START( acommand, acommand_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(acommand)
+ MCFG_SCREEN_UPDATE_DRIVER(acommand_state, screen_update_acommand)
MCFG_GFXDECODE(acommand)
MCFG_PALETTE_LENGTH(0x4000)
diff --git a/src/mame/drivers/actfancr.c b/src/mame/drivers/actfancr.c
index 8abb946a694..ff35a1b2935 100644
--- a/src/mame/drivers/actfancr.c
+++ b/src/mame/drivers/actfancr.c
@@ -337,7 +337,7 @@ static MACHINE_CONFIG_START( actfancr, actfancr_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(actfancr)
+ MCFG_SCREEN_UPDATE_DRIVER(actfancr_state, screen_update_actfancr)
MCFG_GFXDECODE(actfan)
MCFG_PALETTE_LENGTH(768)
@@ -387,7 +387,7 @@ static MACHINE_CONFIG_START( triothep, actfancr_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(actfancr)
+ MCFG_SCREEN_UPDATE_DRIVER(actfancr_state, screen_update_actfancr)
MCFG_GFXDECODE(triothep)
MCFG_PALETTE_LENGTH(768)
diff --git a/src/mame/drivers/adp.c b/src/mame/drivers/adp.c
index 5fa12f6cbf9..806149d9d4f 100644
--- a/src/mame/drivers/adp.c
+++ b/src/mame/drivers/adp.c
@@ -183,6 +183,7 @@ public:
DECLARE_MACHINE_START(skattv);
DECLARE_MACHINE_RESET(skattv);
DECLARE_PALETTE_INIT(adp);
+ UINT32 screen_update_adp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -203,24 +204,22 @@ UINT32 adp_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, con
#if 0
-static SCREEN_UPDATE_IND16( adp )
+UINT32 adp_state::screen_update_adp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- adp_state *state = screen.machine().driver_data<adp_state>();
- state->m_h63484->update_screen(bitmap, cliprect);
+ m_h63484->update_screen(bitmap, cliprect);
#if 0
- adp_state *state = screen.machine().driver_data<adp_state>();
int x, y, b, src;
- b = ((hd63484_regs_r(state->m_hd63484, 0xcc/2, 0xffff) & 0x000f) << 16) + hd63484_regs_r(state->m_hd63484, 0xce/2, 0xffff);
+ b = ((hd63484_regs_r(m_hd63484, 0xcc/2, 0xffff) & 0x000f) << 16) + hd63484_regs_r(m_hd63484, 0xce/2, 0xffff);
for (y = 0;y < 280;y++)
{
- for (x = 0 ; x < (hd63484_regs_r(state->m_hd63484, 0xca/2, 0xffff) & 0x0fff) * 4 ; x += 4)
+ for (x = 0 ; x < (hd63484_regs_r(m_hd63484, 0xca/2, 0xffff) & 0x0fff) * 4 ; x += 4)
{
b &= (HD63484_RAM_SIZE - 1);
- src = hd63484_ram_r(state->m_hd63484, b, 0xffff);
+ src = hd63484_ram_r(m_hd63484, b, 0xffff);
bitmap.pix16(y, x ) = ((src & 0x000f) >> 0) << 0;
bitmap.pix16(y, x + 1) = ((src & 0x00f0) >> 4) << 0;
bitmap.pix16(y, x + 2) = ((src & 0x0f00) >> 8) << 0;
@@ -229,24 +228,24 @@ static SCREEN_UPDATE_IND16( adp )
}
}
if (!screen.machine().input().code_pressed(KEYCODE_O)) // debug: toggle window
- if ((hd63484_regs_r(state->m_hd63484, 0x06/2, 0xffff) & 0x0300) == 0x0300)
+ if ((hd63484_regs_r(m_hd63484, 0x06/2, 0xffff) & 0x0300) == 0x0300)
{
- int sy = (hd63484_regs_r(state->m_hd63484, 0x94/2, 0xffff) & 0x0fff) - (hd63484_regs_r(state->m_hd63484, 0x88/2, 0xffff) >> 8);
- int h = hd63484_regs_r(state->m_hd63484, 0x96/2, 0xffff) & 0x0fff;
- int sx = ((hd63484_regs_r(state->m_hd63484, 0x92/2, 0xffff) >> 8) - (hd63484_regs_r(state->m_hd63484, 0x84/2, 0xffff) >> 8)) * 2 * 2;
- int w = (hd63484_regs_r(state->m_hd63484, 0x92/2, 0xffff) & 0xff) * 2;
+ int sy = (hd63484_regs_r(m_hd63484, 0x94/2, 0xffff) & 0x0fff) - (hd63484_regs_r(m_hd63484, 0x88/2, 0xffff) >> 8);
+ int h = hd63484_regs_r(m_hd63484, 0x96/2, 0xffff) & 0x0fff;
+ int sx = ((hd63484_regs_r(m_hd63484, 0x92/2, 0xffff) >> 8) - (hd63484_regs_r(m_hd63484, 0x84/2, 0xffff) >> 8)) * 2 * 2;
+ int w = (hd63484_regs_r(m_hd63484, 0x92/2, 0xffff) & 0xff) * 2;
if (sx < 0) sx = 0; // not sure about this (shangha2 title screen)
- b = (((hd63484_regs_r(state->m_hd63484, 0xdc/2, 0xffff) & 0x000f) << 16) + hd63484_regs_r(state->m_hd63484, 0xde/2, 0xffff));
+ b = (((hd63484_regs_r(m_hd63484, 0xdc/2, 0xffff) & 0x000f) << 16) + hd63484_regs_r(m_hd63484, 0xde/2, 0xffff));
for (y = sy ; y <= sy + h && y < 280 ; y++)
{
- for (x = 0 ; x < (hd63484_regs_r(state->m_hd63484, 0xca/2, 0xffff) & 0x0fff) * 4 ; x += 4)
+ for (x = 0 ; x < (hd63484_regs_r(m_hd63484, 0xca/2, 0xffff) & 0x0fff) * 4 ; x += 4)
{
b &= (HD63484_RAM_SIZE - 1);
- src = hd63484_ram_r(state->m_hd63484, b, 0xffff);
+ src = hd63484_ram_r(m_hd63484, b, 0xffff);
- if (x <= w && x + sx >= 0 && x + sx < (hd63484_regs_r(state->m_hd63484, 0xca/2, 0xffff) & 0x0fff) * 4)
+ if (x <= w && x + sx >= 0 && x + sx < (hd63484_regs_r(m_hd63484, 0xca/2, 0xffff) & 0x0fff) * 4)
{
bitmap.pix16(y, x + sx ) = ((src & 0x000f) >> 0) << 0;
bitmap.pix16(y, x + sx + 1) = ((src & 0x00f0) >> 4) << 0;
diff --git a/src/mame/drivers/aeroboto.c b/src/mame/drivers/aeroboto.c
index 03453cfd449..c7922e411e8 100644
--- a/src/mame/drivers/aeroboto.c
+++ b/src/mame/drivers/aeroboto.c
@@ -265,7 +265,7 @@ static MACHINE_CONFIG_START( formatz, aeroboto_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(aeroboto)
+ MCFG_SCREEN_UPDATE_DRIVER(aeroboto_state, screen_update_aeroboto)
MCFG_GFXDECODE(aeroboto)
diff --git a/src/mame/drivers/aerofgt.c b/src/mame/drivers/aerofgt.c
index 7bb74c18671..23cf346dbba 100644
--- a/src/mame/drivers/aerofgt.c
+++ b/src/mame/drivers/aerofgt.c
@@ -1343,7 +1343,7 @@ static MACHINE_CONFIG_START( pspikes, aerofgt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8+4, 44*8+4-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pspikes)
+ MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_pspikes)
MCFG_GFXDECODE(pspikes)
MCFG_PALETTE_LENGTH(2048)
@@ -1379,7 +1379,7 @@ static MACHINE_CONFIG_START( spikes91, aerofgt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 320-1, 0*8+4, 224+4-1)
- MCFG_SCREEN_UPDATE_STATIC(spikes91)
+ MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_spikes91)
MCFG_GFXDECODE(spikes91)
MCFG_PALETTE_LENGTH(2048)
@@ -1411,7 +1411,7 @@ static MACHINE_CONFIG_START( pspikesb, aerofgt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8+4, 44*8+4-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pspikesb)
+ MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_pspikesb)
MCFG_GFXDECODE(pspikesb)
MCFG_PALETTE_LENGTH(2048)
@@ -1441,7 +1441,7 @@ static MACHINE_CONFIG_START( pspikesc, aerofgt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8+4, 44*8+4-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pspikes)
+ MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_pspikes)
MCFG_GFXDECODE(pspikes)
MCFG_PALETTE_LENGTH(2048)
@@ -1476,7 +1476,7 @@ static MACHINE_CONFIG_START( karatblz, aerofgt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 45*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(karatblz)
+ MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_karatblz)
MCFG_GFXDECODE(turbofrc)
MCFG_PALETTE_LENGTH(1024)
@@ -1515,7 +1515,7 @@ static MACHINE_CONFIG_START( spinlbrk, aerofgt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 45*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(spinlbrk)
+ MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_spinlbrk)
MCFG_GFXDECODE(turbofrc)
MCFG_PALETTE_LENGTH(1024)
@@ -1554,7 +1554,7 @@ static MACHINE_CONFIG_START( turbofrc, aerofgt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 44*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(turbofrc)
+ MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_turbofrc)
MCFG_GFXDECODE(turbofrc)
MCFG_PALETTE_LENGTH(1024)
@@ -1594,7 +1594,7 @@ static MACHINE_CONFIG_START( aerofgtb, aerofgt_state )
/* wrong but improves sprite-background synchronization */
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8+12, 40*8-1+12, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(turbofrc)
+ MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_turbofrc)
MCFG_GFXDECODE(aerofgtb)
MCFG_PALETTE_LENGTH(1024)
@@ -1634,7 +1634,7 @@ static MACHINE_CONFIG_START( aerofgt, aerofgt_state )
/* wrong but improves sprite-background synchronization */
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(aerofgt)
+ MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_aerofgt)
MCFG_GFXDECODE(aerofgt)
MCFG_PALETTE_LENGTH(1024)
@@ -1672,7 +1672,7 @@ static MACHINE_CONFIG_START( aerfboot, aerofgt_state )
/* wrong but improves sprite-background synchronization */
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8+12, 40*8-1+12, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(aerfboot)
+ MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_aerfboot)
MCFG_GFXDECODE(aerfboot)
MCFG_PALETTE_LENGTH(1024)
@@ -1703,7 +1703,7 @@ static MACHINE_CONFIG_START( aerfboo2, aerofgt_state )
/* wrong but improves sprite-background synchronization */
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8+12, 40*8-1+12, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(aerfboo2)
+ MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_aerfboo2)
MCFG_GFXDECODE(aerfboo2)
MCFG_PALETTE_LENGTH(1024)
@@ -1736,7 +1736,7 @@ static MACHINE_CONFIG_START( wbbc97, aerofgt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8+14, 44*8-1+4, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(wbbc97)
+ MCFG_SCREEN_UPDATE_DRIVER(aerofgt_state, screen_update_wbbc97)
MCFG_GFXDECODE(wbbc97)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/airbustr.c b/src/mame/drivers/airbustr.c
index 6932b2a06ab..0d14e3b4965 100644
--- a/src/mame/drivers/airbustr.c
+++ b/src/mame/drivers/airbustr.c
@@ -647,8 +647,8 @@ static MACHINE_CONFIG_START( airbustr, airbustr_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(airbustr)
- MCFG_SCREEN_VBLANK_STATIC(airbustr)
+ MCFG_SCREEN_UPDATE_DRIVER(airbustr_state, screen_update_airbustr)
+ MCFG_SCREEN_VBLANK_DRIVER(airbustr_state, screen_eof_airbustr)
MCFG_GFXDECODE(airbustr)
MCFG_PALETTE_LENGTH(768)
diff --git a/src/mame/drivers/ajax.c b/src/mame/drivers/ajax.c
index 54360ba3260..2f7e61d8ebc 100644
--- a/src/mame/drivers/ajax.c
+++ b/src/mame/drivers/ajax.c
@@ -229,7 +229,7 @@ static MACHINE_CONFIG_START( ajax, ajax_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(ajax)
+ MCFG_SCREEN_UPDATE_DRIVER(ajax_state, screen_update_ajax)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/albazc.c b/src/mame/drivers/albazc.c
index e79e9c8da27..7eae69ccf9e 100644
--- a/src/mame/drivers/albazc.c
+++ b/src/mame/drivers/albazc.c
@@ -34,6 +34,7 @@ public:
DECLARE_WRITE8_MEMBER(albazc_vregs_w);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_hanaroku(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -87,7 +88,7 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-static SCREEN_UPDATE_IND16(hanaroku)
+UINT32 albazc_state::screen_update_hanaroku(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(0x1f0, cliprect); // ???
draw_sprites(screen.machine(), bitmap, cliprect);
@@ -278,7 +279,7 @@ static MACHINE_CONFIG_START( hanaroku, albazc_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0, 48*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(hanaroku)
+ MCFG_SCREEN_UPDATE_DRIVER(albazc_state, screen_update_hanaroku)
MCFG_GFXDECODE(hanaroku)
MCFG_PALETTE_LENGTH(0x200)
diff --git a/src/mame/drivers/albazg.c b/src/mame/drivers/albazg.c
index 8680b0a3f7f..ac7c64a0631 100644
--- a/src/mame/drivers/albazg.c
+++ b/src/mame/drivers/albazg.c
@@ -76,6 +76,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_yumefuda(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
TILE_GET_INFO_MEMBER(albazg_state::y_get_bg_tile_info)
@@ -96,10 +97,9 @@ void albazg_state::video_start()
m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(albazg_state::y_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
-static SCREEN_UPDATE_IND16( yumefuda )
+UINT32 albazg_state::screen_update_yumefuda(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- albazg_state *state = screen.machine().driver_data<albazg_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -395,7 +395,7 @@ static MACHINE_CONFIG_START( yumefuda, albazg_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 0, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC( yumefuda )
+ MCFG_SCREEN_UPDATE_DRIVER(albazg_state, screen_update_yumefuda)
MCFG_MC6845_ADD("crtc", H46505, MASTER_CLOCK/16, mc6845_intf) /* hand tuned to get ~60 fps */
diff --git a/src/mame/drivers/aleck64.c b/src/mame/drivers/aleck64.c
index 14f78825e2e..f3bb67e5d38 100644
--- a/src/mame/drivers/aleck64.c
+++ b/src/mame/drivers/aleck64.c
@@ -817,7 +817,7 @@ static MACHINE_CONFIG_START( aleck64, n64_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(640, 525)
MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(n64)
+ MCFG_SCREEN_UPDATE_DRIVER(n64_state, screen_update_n64)
MCFG_PALETTE_LENGTH(0x1000)
diff --git a/src/mame/drivers/alg.c b/src/mame/drivers/alg.c
index 97472725efc..e06c45c0c38 100644
--- a/src/mame/drivers/alg.c
+++ b/src/mame/drivers/alg.c
@@ -447,7 +447,7 @@ static MACHINE_CONFIG_START( alg_r1, alg_state )
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_LASERDISC_LDP1450_ADD("laserdisc")
- MCFG_LASERDISC_OVERLAY_STATIC(512*2, 262, amiga)
+ MCFG_LASERDISC_OVERLAY_DRIVER(512*2, 262, amiga_state, screen_update_amiga)
MCFG_LASERDISC_OVERLAY_CLIP((129-8)*2, (449+8-1)*2, 44-8, 244+8-1)
/* video hardware */
diff --git a/src/mame/drivers/aliens.c b/src/mame/drivers/aliens.c
index 2474b5e2c22..50a11a7f01d 100644
--- a/src/mame/drivers/aliens.c
+++ b/src/mame/drivers/aliens.c
@@ -270,7 +270,7 @@ static MACHINE_CONFIG_START( aliens, aliens_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(aliens)
+ MCFG_SCREEN_UPDATE_DRIVER(aliens_state, screen_update_aliens)
MCFG_PALETTE_LENGTH(512)
diff --git a/src/mame/drivers/alpha68k.c b/src/mame/drivers/alpha68k.c
index b44ce979eb5..5068f4b9e6d 100644
--- a/src/mame/drivers/alpha68k.c
+++ b/src/mame/drivers/alpha68k.c
@@ -1978,7 +1978,7 @@ static MACHINE_CONFIG_START( sstingry, alpha68k_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(sstingry)
+ MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_sstingry)
MCFG_GFXDECODE(sstingry)
MCFG_PALETTE_LENGTH(256 + 1)
@@ -2023,7 +2023,7 @@ static MACHINE_CONFIG_START( kyros, alpha68k_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(kyros)
+ MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_kyros)
MCFG_GFXDECODE(kyros)
MCFG_PALETTE_LENGTH(256 + 1)
@@ -2068,7 +2068,7 @@ static MACHINE_CONFIG_START( jongbou, alpha68k_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(kyros)
+ MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_kyros)
MCFG_GFXDECODE(jongbou)
MCFG_PALETTE_LENGTH(256 + 1)
@@ -2102,7 +2102,7 @@ static MACHINE_CONFIG_START( alpha68k_I, alpha68k_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(alpha68k_I)
+ MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_I)
MCFG_GFXDECODE(paddle)
@@ -2146,7 +2146,7 @@ static MACHINE_CONFIG_START( alpha68k_II, alpha68k_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(alpha68k_II)
+ MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_II)
MCFG_GFXDECODE(alpha68k_II)
MCFG_PALETTE_LENGTH(2048)
@@ -2195,7 +2195,7 @@ static MACHINE_CONFIG_START( alpha68k_II_gm, alpha68k_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(alpha68k_II)
+ MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_II)
MCFG_GFXDECODE(alpha68k_II)
MCFG_PALETTE_LENGTH(2048)
@@ -2238,7 +2238,7 @@ static MACHINE_CONFIG_START( alpha68k_V, alpha68k_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(alpha68k_V)
+ MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_V)
MCFG_GFXDECODE(alpha68k_V)
MCFG_PALETTE_LENGTH(4096)
@@ -2280,7 +2280,7 @@ static MACHINE_CONFIG_START( alpha68k_V_sb, alpha68k_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(alpha68k_V_sb)
+ MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_V_sb)
MCFG_GFXDECODE(alpha68k_V)
MCFG_PALETTE_LENGTH(4096)
@@ -2321,7 +2321,7 @@ static MACHINE_CONFIG_START( tnextspc, alpha68k_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(alpha68k_I)
+ MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_I)
MCFG_GFXDECODE(tnextspc)
diff --git a/src/mame/drivers/amaticmg.c b/src/mame/drivers/amaticmg.c
index f20f73dfc8e..fed5a063276 100644
--- a/src/mame/drivers/amaticmg.c
+++ b/src/mame/drivers/amaticmg.c
@@ -452,6 +452,8 @@ public:
virtual void video_start();
virtual void palette_init();
DECLARE_PALETTE_INIT(amaticmg2);
+ UINT32 screen_update_amaticmg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_amaticmg2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -463,9 +465,8 @@ void amaticmg_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( amaticmg )
+UINT32 amaticmg_state::screen_update_amaticmg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- amaticmg_state *state = screen.machine().driver_data<amaticmg_state>();
gfx_element *gfx = screen.machine().gfx[0];
int y,x;
int count = 0;
@@ -474,12 +475,12 @@ static SCREEN_UPDATE_IND16( amaticmg )
{
for (x=0;x<96;x++)
{
- UINT16 tile = state->m_vram[count];
+ UINT16 tile = m_vram[count];
UINT8 color;
- tile += ((state->m_attr[count]&0x0f)<<8);
+ tile += ((m_attr[count]&0x0f)<<8);
/* TODO: this looks so out of place ... */
- color = (state->m_attr[count]&0xf0)>>3;
+ color = (m_attr[count]&0xf0)>>3;
drawgfx_opaque(bitmap,cliprect,gfx,tile,color,0,0,x*4,y*8);
count++;
@@ -489,9 +490,8 @@ static SCREEN_UPDATE_IND16( amaticmg )
return 0;
}
-static SCREEN_UPDATE_IND16( amaticmg2 )
+UINT32 amaticmg_state::screen_update_amaticmg2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- amaticmg_state *state = screen.machine().driver_data<amaticmg_state>();
gfx_element *gfx = screen.machine().gfx[0];
int y,x;
int count = 16;
@@ -500,10 +500,10 @@ static SCREEN_UPDATE_IND16( amaticmg2 )
{
for (x=0;x<96;x++)
{
- UINT16 tile = state->m_vram[count];
+ UINT16 tile = m_vram[count];
UINT8 color;
- tile += ((state->m_attr[count]&0xff)<<8);
+ tile += ((m_attr[count]&0xff)<<8);
color = 0;
drawgfx_opaque(bitmap,cliprect,gfx,tile,color,0,0,x*4,y*8);
@@ -881,7 +881,7 @@ static MACHINE_CONFIG_START( amaticmg, amaticmg_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(amaticmg)
+ MCFG_SCREEN_UPDATE_DRIVER(amaticmg_state, screen_update_amaticmg)
MCFG_MC6845_ADD("crtc", MC6845, CRTC_CLOCK, mc6845_intf)
@@ -919,7 +919,7 @@ static MACHINE_CONFIG_DERIVED( amaticmg2, amaticmg )
MCFG_CPU_VBLANK_INT("screen", amaticmg2_irq)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(amaticmg2)
+ MCFG_SCREEN_UPDATE_DRIVER(amaticmg_state, screen_update_amaticmg2)
MCFG_GFXDECODE(amaticmg2)
MCFG_PALETTE_INIT_OVERRIDE(amaticmg_state,amaticmg2)
diff --git a/src/mame/drivers/ambush.c b/src/mame/drivers/ambush.c
index ff17cb4fc6e..c8f655547ac 100644
--- a/src/mame/drivers/ambush.c
+++ b/src/mame/drivers/ambush.c
@@ -240,7 +240,7 @@ static MACHINE_CONFIG_START( ambush, ambush_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-3) /* The -3 makes the cocktail mode perfect */
- MCFG_SCREEN_UPDATE_STATIC(ambush)
+ MCFG_SCREEN_UPDATE_DRIVER(ambush_state, screen_update_ambush)
MCFG_GFXDECODE(ambush)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/ampoker2.c b/src/mame/drivers/ampoker2.c
index 3722ebcd6d0..a999d65a87a 100644
--- a/src/mame/drivers/ampoker2.c
+++ b/src/mame/drivers/ampoker2.c
@@ -1182,7 +1182,7 @@ static MACHINE_CONFIG_START( ampoker2, ampoker2_state )
*/
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(20*8, 56*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(ampoker2)
+ MCFG_SCREEN_UPDATE_DRIVER(ampoker2_state, screen_update_ampoker2)
MCFG_GFXDECODE(ampoker2)
MCFG_PALETTE_LENGTH(512)
diff --git a/src/mame/drivers/amspdwy.c b/src/mame/drivers/amspdwy.c
index be07180e7b4..0301cd17ae5 100644
--- a/src/mame/drivers/amspdwy.c
+++ b/src/mame/drivers/amspdwy.c
@@ -288,7 +288,7 @@ static MACHINE_CONFIG_START( amspdwy, amspdwy_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(amspdwy)
+ MCFG_SCREEN_UPDATE_DRIVER(amspdwy_state, screen_update_amspdwy)
MCFG_GFXDECODE(amspdwy)
MCFG_PALETTE_LENGTH(32)
diff --git a/src/mame/drivers/angelkds.c b/src/mame/drivers/angelkds.c
index 68b0f6ec85d..736f2e78b2d 100644
--- a/src/mame/drivers/angelkds.c
+++ b/src/mame/drivers/angelkds.c
@@ -617,7 +617,7 @@ static MACHINE_CONFIG_START( angelkds, angelkds_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(angelkds)
+ MCFG_SCREEN_UPDATE_DRIVER(angelkds_state, screen_update_angelkds)
MCFG_GFXDECODE(angelkds)
MCFG_PALETTE_LENGTH(0x100)
diff --git a/src/mame/drivers/appoooh.c b/src/mame/drivers/appoooh.c
index 5aeb41b0982..77f3c3c05cc 100644
--- a/src/mame/drivers/appoooh.c
+++ b/src/mame/drivers/appoooh.c
@@ -475,7 +475,7 @@ static MACHINE_CONFIG_DERIVED( appoooh, appoooh_common )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(appoooh)
+ MCFG_SCREEN_UPDATE_DRIVER(appoooh_state, screen_update_appoooh)
MCFG_GFXDECODE(appoooh)
MCFG_PALETTE_LENGTH(32*8+32*8)
@@ -493,7 +493,7 @@ static MACHINE_CONFIG_DERIVED( robowres, appoooh_common )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(robowres)
+ MCFG_SCREEN_UPDATE_DRIVER(appoooh_state, screen_update_robowres)
MCFG_GFXDECODE(robowres)
MCFG_PALETTE_LENGTH(32*8+32*8)
diff --git a/src/mame/drivers/aquarium.c b/src/mame/drivers/aquarium.c
index 7b222739b16..0bec20ed5be 100644
--- a/src/mame/drivers/aquarium.c
+++ b/src/mame/drivers/aquarium.c
@@ -331,7 +331,7 @@ static MACHINE_CONFIG_START( aquarium, aquarium_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(2*8, 42*8-1, 2*8, 34*8-1)
- MCFG_SCREEN_UPDATE_STATIC(aquarium)
+ MCFG_SCREEN_UPDATE_DRIVER(aquarium_state, screen_update_aquarium)
MCFG_GFXDECODE(aquarium)
MCFG_PALETTE_LENGTH(0x1000/2)
diff --git a/src/mame/drivers/arabian.c b/src/mame/drivers/arabian.c
index 5ceab530ee3..9ad4875559a 100644
--- a/src/mame/drivers/arabian.c
+++ b/src/mame/drivers/arabian.c
@@ -374,7 +374,7 @@ static MACHINE_CONFIG_START( arabian, arabian_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 255, 11, 244)
- MCFG_SCREEN_UPDATE_STATIC(arabian)
+ MCFG_SCREEN_UPDATE_DRIVER(arabian_state, screen_update_arabian)
MCFG_PALETTE_LENGTH(256*32)
diff --git a/src/mame/drivers/arcadecl.c b/src/mame/drivers/arcadecl.c
index ac026539275..633042de663 100644
--- a/src/mame/drivers/arcadecl.c
+++ b/src/mame/drivers/arcadecl.c
@@ -343,7 +343,7 @@ static MACHINE_CONFIG_START( arcadecl, arcadecl_state )
/* note: these parameters are from published specs, not derived */
/* the board uses an SOS-2 chip to generate video signals */
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 456, 0+12, 336+12, 262, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(arcadecl)
+ MCFG_SCREEN_UPDATE_DRIVER(arcadecl_state, screen_update_arcadecl)
MCFG_VIDEO_START_OVERRIDE(arcadecl_state,arcadecl)
diff --git a/src/mame/drivers/arcadia.c b/src/mame/drivers/arcadia.c
index 46060a6b935..4912e4ab055 100644
--- a/src/mame/drivers/arcadia.c
+++ b/src/mame/drivers/arcadia.c
@@ -325,7 +325,7 @@ static MACHINE_CONFIG_START( arcadia, arcadia_amiga_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512*2, 262)
MCFG_SCREEN_VISIBLE_AREA((129-8)*2, (449+8-1)*2, 44-8, 244+8-1)
- MCFG_SCREEN_UPDATE_STATIC(amiga)
+ MCFG_SCREEN_UPDATE_DRIVER(amiga_state, screen_update_amiga)
MCFG_PALETTE_LENGTH(4096)
MCFG_PALETTE_INIT_OVERRIDE(arcadia_amiga_state,amiga)
diff --git a/src/mame/drivers/argus.c b/src/mame/drivers/argus.c
index 98bc279163f..0d9d2b4e8fb 100644
--- a/src/mame/drivers/argus.c
+++ b/src/mame/drivers/argus.c
@@ -559,7 +559,7 @@ static MACHINE_CONFIG_START( argus, argus_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* This value is referred to psychic5 driver */)
MCFG_SCREEN_SIZE(32*16, 32*16)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(argus)
+ MCFG_SCREEN_UPDATE_DRIVER(argus_state, screen_update_argus)
MCFG_GFXDECODE(argus)
MCFG_PALETTE_LENGTH(896)
@@ -603,7 +603,7 @@ static MACHINE_CONFIG_START( valtric, argus_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* This value is referred to psychic5 driver */)
MCFG_SCREEN_SIZE(32*16, 32*16)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(valtric)
+ MCFG_SCREEN_UPDATE_DRIVER(argus_state, screen_update_valtric)
MCFG_GFXDECODE(valtric)
MCFG_PALETTE_LENGTH(768)
@@ -647,7 +647,7 @@ static MACHINE_CONFIG_START( butasan, argus_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* This value is taken from psychic5 driver */)
MCFG_SCREEN_SIZE(32*16, 32*16)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(butasan)
+ MCFG_SCREEN_UPDATE_DRIVER(argus_state, screen_update_butasan)
MCFG_GFXDECODE(butasan)
MCFG_PALETTE_LENGTH(768)
diff --git a/src/mame/drivers/aristmk4.c b/src/mame/drivers/aristmk4.c
index 60721f6d406..d31bbdd52ec 100644
--- a/src/mame/drivers/aristmk4.c
+++ b/src/mame/drivers/aristmk4.c
@@ -321,6 +321,7 @@ public:
virtual void video_start();
virtual void palette_init();
DECLARE_PALETTE_INIT(lions);
+ UINT32 screen_update_aristmk4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/* Partial Cashcade protocol */
@@ -370,9 +371,8 @@ INLINE void uBackgroundColour(running_machine &machine)
}
}
-static SCREEN_UPDATE_IND16(aristmk4)
+UINT32 aristmk4_state::screen_update_aristmk4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- aristmk4_state *state = screen.machine().driver_data<aristmk4_state>();
gfx_element *gfx = screen.machine().gfx[0];
int x,y;
int count = 0;
@@ -386,14 +386,14 @@ static SCREEN_UPDATE_IND16(aristmk4)
{
for (x=38;x--;)
{
- color = ((state->m_mkiv_vram[count]) & 0xe0) >> 5;
- tile = (state->m_mkiv_vram[count+1]|state->m_mkiv_vram[count]<<8) & 0x3ff;
- bgtile = (state->m_mkiv_vram[count+1]|state->m_mkiv_vram[count]<<8) & 0xff; // first 256 tiles
+ color = ((m_mkiv_vram[count]) & 0xe0) >> 5;
+ tile = (m_mkiv_vram[count+1]|m_mkiv_vram[count]<<8) & 0x3ff;
+ bgtile = (m_mkiv_vram[count+1]|m_mkiv_vram[count]<<8) & 0xff; // first 256 tiles
uBackgroundColour(screen.machine()); // read sw7
gfx->decode(bgtile); // force the machine to update only the first 256 tiles.
// as we only update the background, not the entire display.
- flipx = ((state->m_mkiv_vram[count]) & 0x04);
- flipy = ((state->m_mkiv_vram[count]) & 0x08);
+ flipx = ((m_mkiv_vram[count]) & 0x04);
+ flipy = ((m_mkiv_vram[count]) & 0x08);
drawgfx_opaque(bitmap,cliprect,gfx,tile,color,flipx,flipy,(38-x-1)<<3,(27-y-1)<<3);
count+=2;
}
@@ -1699,7 +1699,7 @@ static MACHINE_CONFIG_START( aristmk4, aristmk4_state )
MCFG_GFXDECODE(aristmk4)
MCFG_PALETTE_LENGTH(512)
- MCFG_SCREEN_UPDATE_STATIC(aristmk4)
+ MCFG_SCREEN_UPDATE_DRIVER(aristmk4_state, screen_update_aristmk4)
MCFG_I8255A_ADD( "ppi8255_0", ppi8255_intf )
MCFG_VIA6522_ADD("via6522_0", 0, via_interface) /* 1 MHz.(only 1 or 2 MHz.are valid) */
diff --git a/src/mame/drivers/aristmk6.c b/src/mame/drivers/aristmk6.c
index adeccbdf856..196d25b8163 100644
--- a/src/mame/drivers/aristmk6.c
+++ b/src/mame/drivers/aristmk6.c
@@ -18,6 +18,7 @@ public:
UINT8 m_type;
DECLARE_READ64_MEMBER(test_r);
virtual void video_start();
+ UINT32 screen_update_aristmk6(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -25,51 +26,50 @@ void aristmk6_state::video_start()
{
}
-SCREEN_UPDATE_RGB32(aristmk6)
+UINT32 aristmk6_state::screen_update_aristmk6(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- aristmk6_state *state = screen.machine().driver_data<aristmk6_state>();
int x,y,count;
- const UINT8 *blit_ram = state->memregion("maincpu")->base();
+ const UINT8 *blit_ram = memregion("maincpu")->base();
if(screen.machine().input().code_pressed(KEYCODE_Z))
- state->m_test_x++;
+ m_test_x++;
if(screen.machine().input().code_pressed(KEYCODE_X))
- state->m_test_x--;
+ m_test_x--;
if(screen.machine().input().code_pressed(KEYCODE_A))
- state->m_test_y++;
+ m_test_y++;
if(screen.machine().input().code_pressed(KEYCODE_S))
- state->m_test_y--;
+ m_test_y--;
if(screen.machine().input().code_pressed(KEYCODE_Q))
- state->m_start_offs+=0x2000;
+ m_start_offs+=0x2000;
if(screen.machine().input().code_pressed(KEYCODE_W))
- state->m_start_offs-=0x2000;
+ m_start_offs-=0x2000;
if(screen.machine().input().code_pressed(KEYCODE_E))
- state->m_start_offs++;
+ m_start_offs++;
if(screen.machine().input().code_pressed(KEYCODE_R))
- state->m_start_offs--;
+ m_start_offs--;
if(screen.machine().input().code_pressed_once(KEYCODE_L))
- state->m_type^=1;
+ m_type^=1;
- popmessage("%d %d %04x %d",state->m_test_x,state->m_test_y,state->m_start_offs,state->m_type);
+ popmessage("%d %d %04x %d",m_test_x,m_test_y,m_start_offs,m_type);
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- count = (state->m_start_offs);
+ count = (m_start_offs);
- for(y=0;y<state->m_test_y;y++)
+ for(y=0;y<m_test_y;y++)
{
- for(x=0;x<state->m_test_x;x++)
+ for(x=0;x<m_test_x;x++)
{
- if(state->m_type)
+ if(m_type)
{
UINT16 vram;
int r,g,b;
@@ -143,7 +143,7 @@ static MACHINE_CONFIG_START( aristmk6, aristmk6_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(aristmk6)
+ MCFG_SCREEN_UPDATE_DRIVER(aristmk6_state, screen_update_aristmk6)
MCFG_PALETTE_LENGTH(0x1000)
diff --git a/src/mame/drivers/arkanoid.c b/src/mame/drivers/arkanoid.c
index 773f5a06a52..488a277edf1 100644
--- a/src/mame/drivers/arkanoid.c
+++ b/src/mame/drivers/arkanoid.c
@@ -1036,7 +1036,7 @@ static MACHINE_CONFIG_START( arkanoid, arkanoid_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(arkanoid)
+ MCFG_SCREEN_UPDATE_DRIVER(arkanoid_state, screen_update_arkanoid)
MCFG_GFXDECODE(arkanoid)
MCFG_PALETTE_LENGTH(512)
@@ -1069,7 +1069,7 @@ static MACHINE_CONFIG_START( hexa, arkanoid_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(hexa)
+ MCFG_SCREEN_UPDATE_DRIVER(arkanoid_state, screen_update_hexa)
MCFG_GFXDECODE(hexa)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/armedf.c b/src/mame/drivers/armedf.c
index 6d69a25fb7f..adc126d88e5 100644
--- a/src/mame/drivers/armedf.c
+++ b/src/mame/drivers/armedf.c
@@ -1197,7 +1197,7 @@ static MACHINE_CONFIG_START( terraf, armedf_state )
MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 1*8, 31*8-1 )
MCFG_VIDEO_START_OVERRIDE(armedf_state,terraf)
- MCFG_SCREEN_UPDATE_STATIC(armedf)
+ MCFG_SCREEN_UPDATE_DRIVER(armedf_state, screen_update_armedf)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(armedf)
@@ -1246,7 +1246,7 @@ static MACHINE_CONFIG_START( terrafb, armedf_state )
MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 1*8, 31*8-1 )
MCFG_VIDEO_START_OVERRIDE(armedf_state,terraf)
- MCFG_SCREEN_UPDATE_STATIC(armedf)
+ MCFG_SCREEN_UPDATE_DRIVER(armedf_state, screen_update_armedf)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(armedf)
@@ -1290,7 +1290,7 @@ static MACHINE_CONFIG_START( kozure, armedf_state )
MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 1*8, 31*8-1 ) // 320 x 240, trusted
MCFG_VIDEO_START_OVERRIDE(armedf_state,terraf)
- MCFG_SCREEN_UPDATE_STATIC(armedf)
+ MCFG_SCREEN_UPDATE_DRIVER(armedf_state, screen_update_armedf)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(armedf)
@@ -1334,7 +1334,7 @@ static MACHINE_CONFIG_START( armedf, armedf_state )
MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 1*8, 31*8-1 )
MCFG_VIDEO_START_OVERRIDE(armedf_state,armedf)
- MCFG_SCREEN_UPDATE_STATIC(armedf)
+ MCFG_SCREEN_UPDATE_DRIVER(armedf_state, screen_update_armedf)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(armedf)
@@ -1378,7 +1378,7 @@ static MACHINE_CONFIG_START( cclimbr2, armedf_state )
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
MCFG_VIDEO_START_OVERRIDE(armedf_state,terraf)
- MCFG_SCREEN_UPDATE_STATIC(armedf)
+ MCFG_SCREEN_UPDATE_DRIVER(armedf_state, screen_update_armedf)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(armedf)
@@ -1422,7 +1422,7 @@ static MACHINE_CONFIG_START( legion, armedf_state )
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
MCFG_VIDEO_START_OVERRIDE(armedf_state,terraf)
- MCFG_SCREEN_UPDATE_STATIC(armedf)
+ MCFG_SCREEN_UPDATE_DRIVER(armedf_state, screen_update_armedf)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(armedf)
@@ -1466,7 +1466,7 @@ static MACHINE_CONFIG_START( legiono, armedf_state )
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
MCFG_VIDEO_START_OVERRIDE(armedf_state,terraf)
- MCFG_SCREEN_UPDATE_STATIC(armedf)
+ MCFG_SCREEN_UPDATE_DRIVER(armedf_state, screen_update_armedf)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(armedf)
@@ -1523,7 +1523,7 @@ static MACHINE_CONFIG_START( bigfghtr, bigfghtr_state )
MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 1*8, 31*8-1 )
MCFG_VIDEO_START_OVERRIDE(armedf_state,armedf)
- MCFG_SCREEN_UPDATE_STATIC(armedf)
+ MCFG_SCREEN_UPDATE_DRIVER(armedf_state, screen_update_armedf)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(armedf)
diff --git a/src/mame/drivers/ashnojoe.c b/src/mame/drivers/ashnojoe.c
index 6bed7ee151e..15467971f7b 100644
--- a/src/mame/drivers/ashnojoe.c
+++ b/src/mame/drivers/ashnojoe.c
@@ -364,7 +364,7 @@ static MACHINE_CONFIG_START( ashnojoe, ashnojoe_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 512)
MCFG_SCREEN_VISIBLE_AREA(14*8, 50*8-1, 3*8, 29*8-1)
- MCFG_SCREEN_UPDATE_STATIC(ashnojoe)
+ MCFG_SCREEN_UPDATE_DRIVER(ashnojoe_state, screen_update_ashnojoe)
MCFG_GFXDECODE(ashnojoe)
MCFG_PALETTE_LENGTH(0x1000/2)
diff --git a/src/mame/drivers/asterix.c b/src/mame/drivers/asterix.c
index 2ef76f54fdb..c329451a059 100644
--- a/src/mame/drivers/asterix.c
+++ b/src/mame/drivers/asterix.c
@@ -307,7 +307,7 @@ static MACHINE_CONFIG_START( asterix, asterix_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(asterix)
+ MCFG_SCREEN_UPDATE_DRIVER(asterix_state, screen_update_asterix)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/astinvad.c b/src/mame/drivers/astinvad.c
index c01646523f0..f74835e4a43 100644
--- a/src/mame/drivers/astinvad.c
+++ b/src/mame/drivers/astinvad.c
@@ -81,6 +81,8 @@ public:
DECLARE_MACHINE_START(spaceint);
DECLARE_MACHINE_RESET(spaceint);
DECLARE_VIDEO_START(spaceint);
+ UINT32 screen_update_astinvad(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_spaceint(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -167,36 +169,34 @@ static void plot_byte( running_machine &machine, bitmap_rgb32 &bitmap, UINT8 y,
}
-static SCREEN_UPDATE_RGB32( astinvad )
+UINT32 astinvad_state::screen_update_astinvad(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- astinvad_state *state = screen.machine().driver_data<astinvad_state>();
- const UINT8 *color_prom = state->memregion("proms")->base();
- UINT8 yoffs = state->m_flip_yoffs & state->m_screen_flip;
+ const UINT8 *color_prom = memregion("proms")->base();
+ UINT8 yoffs = m_flip_yoffs & m_screen_flip;
int x, y;
/* render the visible pixels */
for (y = cliprect.min_y; y <= cliprect.max_y; y++)
for (x = cliprect.min_x & ~7; x <= cliprect.max_x; x += 8)
{
- UINT8 color = color_prom[((y & 0xf8) << 2) | (x >> 3)] >> (state->m_screen_flip ? 0 : 4);
- UINT8 data = state->m_videoram[(((y ^ state->m_screen_flip) + yoffs) << 5) | ((x ^ state->m_screen_flip) >> 3)];
- plot_byte(screen.machine(), bitmap, y, x, data, state->m_screen_red ? 1 : color);
+ UINT8 color = color_prom[((y & 0xf8) << 2) | (x >> 3)] >> (m_screen_flip ? 0 : 4);
+ UINT8 data = m_videoram[(((y ^ m_screen_flip) + yoffs) << 5) | ((x ^ m_screen_flip) >> 3)];
+ plot_byte(screen.machine(), bitmap, y, x, data, m_screen_red ? 1 : color);
}
return 0;
}
-static SCREEN_UPDATE_RGB32( spaceint )
+UINT32 astinvad_state::screen_update_spaceint(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- astinvad_state *state = screen.machine().driver_data<astinvad_state>();
- const UINT8 *color_prom = state->memregion("proms")->base();
+ const UINT8 *color_prom = memregion("proms")->base();
int offs;
- for (offs = 0; offs < state->m_videoram.bytes(); offs++)
+ for (offs = 0; offs < m_videoram.bytes(); offs++)
{
- UINT8 data = state->m_videoram[offs];
- UINT8 color = state->m_colorram[offs];
+ UINT8 data = m_videoram[offs];
+ UINT8 color = m_colorram[offs];
UINT8 y = ~offs;
UINT8 x = offs >> 8 << 3;
@@ -601,7 +601,7 @@ static MACHINE_CONFIG_START( kamikaze, astinvad_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK, 320, 0, 256, 256, 32, 256)
- MCFG_SCREEN_UPDATE_STATIC(astinvad)
+ MCFG_SCREEN_UPDATE_DRIVER(astinvad_state, screen_update_astinvad)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -637,7 +637,7 @@ static MACHINE_CONFIG_START( spaceint, astinvad_state )
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_UPDATE_STATIC(spaceint)
+ MCFG_SCREEN_UPDATE_DRIVER(astinvad_state, screen_update_spaceint)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/astrocde.c b/src/mame/drivers/astrocde.c
index 074995f8b10..9e404c1fae2 100644
--- a/src/mame/drivers/astrocde.c
+++ b/src/mame/drivers/astrocde.c
@@ -1298,7 +1298,7 @@ static MACHINE_CONFIG_START( astrocade_base, astrocde_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(ASTROCADE_CLOCK, 455, 0, 352, 262, 0, 240)
MCFG_SCREEN_DEFAULT_POSITION(1.1, 0.0, 1.18, -0.018) /* clip out borders */
- MCFG_SCREEN_UPDATE_STATIC(astrocde)
+ MCFG_SCREEN_UPDATE_DRIVER(astrocde_state, screen_update_astrocde)
MACHINE_CONFIG_END
@@ -1315,7 +1315,7 @@ static MACHINE_CONFIG_DERIVED( astrocade_16color_base, astrocade_base )
MCFG_VIDEO_START_OVERRIDE(astrocde_state,profpac)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(profpac)
+ MCFG_SCREEN_UPDATE_DRIVER(astrocde_state, screen_update_profpac)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/astrocorp.c b/src/mame/drivers/astrocorp.c
index d4c724cf22e..84198b42790 100644
--- a/src/mame/drivers/astrocorp.c
+++ b/src/mame/drivers/astrocorp.c
@@ -64,6 +64,7 @@ public:
DECLARE_DRIVER_INIT(showhanc);
DECLARE_DRIVER_INIT(showhand);
DECLARE_VIDEO_START(astrocorp);
+ UINT32 screen_update_astrocorp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/***************************************************************************
@@ -150,12 +151,11 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-static SCREEN_UPDATE_IND16(astrocorp)
+UINT32 astrocorp_state::screen_update_astrocorp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- astrocorp_state *state = screen.machine().driver_data<astrocorp_state>();
- if (state->m_screen_enable & 1)
- copybitmap(bitmap, state->m_bitmap, 0,0,0,0, cliprect);
+ if (m_screen_enable & 1)
+ copybitmap(bitmap, m_bitmap, 0,0,0,0, cliprect);
else
bitmap.fill(get_black_pen(screen.machine()), cliprect);
@@ -487,7 +487,7 @@ static MACHINE_CONFIG_START( showhand, astrocorp_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(astrocorp)
+ MCFG_SCREEN_UPDATE_DRIVER(astrocorp_state, screen_update_astrocorp)
MCFG_GFXDECODE(astrocorp)
MCFG_PALETTE_LENGTH(0x100)
@@ -538,7 +538,7 @@ static MACHINE_CONFIG_START( skilldrp, astrocorp_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(0x200, 0x100)
MCFG_SCREEN_VISIBLE_AREA(0, 0x200-1, 0, 0xf0-1)
- MCFG_SCREEN_UPDATE_STATIC(astrocorp)
+ MCFG_SCREEN_UPDATE_DRIVER(astrocorp_state, screen_update_astrocorp)
MCFG_GFXDECODE(astrocorp)
MCFG_PALETTE_LENGTH(0x100)
diff --git a/src/mame/drivers/astrof.c b/src/mame/drivers/astrof.c
index 7039cec625a..07d09b1e736 100644
--- a/src/mame/drivers/astrof.c
+++ b/src/mame/drivers/astrof.c
@@ -413,7 +413,7 @@ static void video_update_common( running_machine &machine, bitmap_rgb32 &bitmap,
}
-static SCREEN_UPDATE_RGB32( astrof )
+UINT32 astrof_state::screen_update_astrof(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
pen_t pens[ASTROF_NUM_PENS];
@@ -425,7 +425,7 @@ static SCREEN_UPDATE_RGB32( astrof )
}
-static SCREEN_UPDATE_RGB32( tomahawk )
+UINT32 astrof_state::screen_update_tomahawk(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
pen_t pens[TOMAHAWK_NUM_PENS];
@@ -962,7 +962,7 @@ static MACHINE_CONFIG_DERIVED( astrof, base )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(astrof)
+ MCFG_SCREEN_UPDATE_DRIVER(astrof_state, screen_update_astrof)
/* audio hardware */
MCFG_FRAGMENT_ADD(astrof_audio)
@@ -988,7 +988,7 @@ static MACHINE_CONFIG_DERIVED( spfghmk2, base )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(astrof)
+ MCFG_SCREEN_UPDATE_DRIVER(astrof_state, screen_update_astrof)
/* audio hardware */
MCFG_FRAGMENT_ADD(spfghmk2_audio)
@@ -1005,7 +1005,7 @@ static MACHINE_CONFIG_DERIVED( tomahawk, base )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(tomahawk)
+ MCFG_SCREEN_UPDATE_DRIVER(astrof_state, screen_update_tomahawk)
/* audio hardware */
MCFG_FRAGMENT_ADD(tomahawk_audio)
diff --git a/src/mame/drivers/asuka.c b/src/mame/drivers/asuka.c
index e4aca9360e0..ae6f37a6c38 100644
--- a/src/mame/drivers/asuka.c
+++ b/src/mame/drivers/asuka.c
@@ -870,13 +870,12 @@ void asuka_state::machine_reset()
memset(m_cval, 0, 26);
}
-static SCREEN_VBLANK( asuka )
+void asuka_state::screen_eof_asuka(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- asuka_state *state = screen.machine().driver_data<asuka_state>();
- pc090oj_eof_callback(state->m_pc090oj);
+ pc090oj_eof_callback(m_pc090oj);
}
}
@@ -911,8 +910,8 @@ static MACHINE_CONFIG_START( bonzeadv, asuka_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 3*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(bonzeadv)
- MCFG_SCREEN_VBLANK_STATIC(asuka)
+ MCFG_SCREEN_UPDATE_DRIVER(asuka_state, screen_update_bonzeadv)
+ MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka)
MCFG_GFXDECODE(asuka)
MCFG_PALETTE_LENGTH(4096)
@@ -954,8 +953,8 @@ static MACHINE_CONFIG_START( asuka, asuka_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(asuka)
- MCFG_SCREEN_VBLANK_STATIC(asuka)
+ MCFG_SCREEN_UPDATE_DRIVER(asuka_state, screen_update_asuka)
+ MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka)
MCFG_GFXDECODE(asuka)
MCFG_PALETTE_LENGTH(4096)
@@ -1004,8 +1003,8 @@ static MACHINE_CONFIG_START( cadash, asuka_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(bonzeadv)
- MCFG_SCREEN_VBLANK_STATIC(asuka)
+ MCFG_SCREEN_UPDATE_DRIVER(asuka_state, screen_update_bonzeadv)
+ MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka)
MCFG_GFXDECODE(asuka)
MCFG_PALETTE_LENGTH(4096)
@@ -1046,8 +1045,8 @@ static MACHINE_CONFIG_START( mofflott, asuka_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(asuka)
- MCFG_SCREEN_VBLANK_STATIC(asuka)
+ MCFG_SCREEN_UPDATE_DRIVER(asuka_state, screen_update_asuka)
+ MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka)
MCFG_GFXDECODE(asuka)
MCFG_PALETTE_LENGTH(4096) /* only Mofflott uses full palette space */
@@ -1092,8 +1091,8 @@ static MACHINE_CONFIG_START( galmedes, asuka_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(asuka)
- MCFG_SCREEN_VBLANK_STATIC(asuka)
+ MCFG_SCREEN_UPDATE_DRIVER(asuka_state, screen_update_asuka)
+ MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka)
MCFG_GFXDECODE(asuka)
MCFG_PALETTE_LENGTH(4096) /* only Mofflott uses full palette space */
@@ -1134,8 +1133,8 @@ static MACHINE_CONFIG_START( eto, asuka_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(asuka)
- MCFG_SCREEN_VBLANK_STATIC(asuka)
+ MCFG_SCREEN_UPDATE_DRIVER(asuka_state, screen_update_asuka)
+ MCFG_SCREEN_VBLANK_DRIVER(asuka_state, screen_eof_asuka)
MCFG_GFXDECODE(asuka)
MCFG_PALETTE_LENGTH(4096)
diff --git a/src/mame/drivers/atarifb.c b/src/mame/drivers/atarifb.c
index b59119ce99b..335c2460b34 100644
--- a/src/mame/drivers/atarifb.c
+++ b/src/mame/drivers/atarifb.c
@@ -564,7 +564,7 @@ static MACHINE_CONFIG_START( atarifb, atarifb_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2037) /* 16.3ms * 1/8 = 2037.5. Is it 1/8th or 3/32nds? (1528?) */)
MCFG_SCREEN_SIZE(38*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 38*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(atarifb)
+ MCFG_SCREEN_UPDATE_DRIVER(atarifb_state, screen_update_atarifb)
MCFG_GFXDECODE(atarifb)
MCFG_PALETTE_LENGTH(12)
@@ -595,7 +595,7 @@ static MACHINE_CONFIG_DERIVED( abaseb, atarifb )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(abaseb)
+ MCFG_SCREEN_UPDATE_DRIVER(atarifb_state, screen_update_abaseb)
/* sound hardware */
MCFG_SOUND_REPLACE("discrete", DISCRETE, 0)
@@ -613,7 +613,7 @@ static MACHINE_CONFIG_DERIVED( soccer, atarifb )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0*8, 38*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(soccer)
+ MCFG_SCREEN_UPDATE_DRIVER(atarifb_state, screen_update_soccer)
MCFG_GFXDECODE(soccer)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/atarig1.c b/src/mame/drivers/atarig1.c
index 09618e0f558..1c2281f0212 100644
--- a/src/mame/drivers/atarig1.c
+++ b/src/mame/drivers/atarig1.c
@@ -463,8 +463,8 @@ static MACHINE_CONFIG_START( atarig1, atarig1_state )
MCFG_SCREEN_ADD("screen", RASTER)
/* note: these parameters are from published specs, not derived */
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(atarig1)
- MCFG_SCREEN_VBLANK_STATIC(atarig1)
+ MCFG_SCREEN_UPDATE_DRIVER(atarig1_state, screen_update_atarig1)
+ MCFG_SCREEN_VBLANK_DRIVER(atarig1_state, screen_eof_atarig1)
MCFG_VIDEO_START_OVERRIDE(atarig1_state,atarig1)
diff --git a/src/mame/drivers/atarig42.c b/src/mame/drivers/atarig42.c
index fc2d3b16c80..12d9f12eb5a 100644
--- a/src/mame/drivers/atarig42.c
+++ b/src/mame/drivers/atarig42.c
@@ -569,8 +569,8 @@ static MACHINE_CONFIG_START( atarig42, atarig42_state )
/* note: these parameters are from published specs, not derived */
/* the board uses an SOS chip to generate video signals */
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(atarig42)
- MCFG_SCREEN_VBLANK_STATIC(atarig42)
+ MCFG_SCREEN_UPDATE_DRIVER(atarig42_state, screen_update_atarig42)
+ MCFG_SCREEN_VBLANK_DRIVER(atarig42_state, screen_eof_atarig42)
MCFG_VIDEO_START_OVERRIDE(atarig42_state,atarig42)
diff --git a/src/mame/drivers/atarigt.c b/src/mame/drivers/atarigt.c
index f2b70528324..e4869b338e8 100644
--- a/src/mame/drivers/atarigt.c
+++ b/src/mame/drivers/atarigt.c
@@ -826,8 +826,8 @@ static MACHINE_CONFIG_START( atarigt, atarigt_state )
/* note: these parameters are from published specs, not derived */
/* the board uses a pair of GALs to determine H and V parameters */
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(atarigt)
- MCFG_SCREEN_VBLANK_STATIC(atarigt)
+ MCFG_SCREEN_UPDATE_DRIVER(atarigt_state, screen_update_atarigt)
+ MCFG_SCREEN_VBLANK_DRIVER(atarigt_state, screen_eof_atarigt)
MCFG_VIDEO_START_OVERRIDE(atarigt_state,atarigt)
diff --git a/src/mame/drivers/atarigx2.c b/src/mame/drivers/atarigx2.c
index 326dea91a2c..8f93e26edbd 100644
--- a/src/mame/drivers/atarigx2.c
+++ b/src/mame/drivers/atarigx2.c
@@ -1446,8 +1446,8 @@ static MACHINE_CONFIG_START( atarigx2, atarigx2_state )
/* note: these parameters are from published specs, not derived */
/* the board uses a pair of GALs to determine H and V parameters */
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(atarigx2)
- MCFG_SCREEN_VBLANK_STATIC(atarigx2)
+ MCFG_SCREEN_UPDATE_DRIVER(atarigx2_state, screen_update_atarigx2)
+ MCFG_SCREEN_VBLANK_DRIVER(atarigx2_state, screen_eof_atarigx2)
MCFG_VIDEO_START_OVERRIDE(atarigx2_state,atarigx2)
diff --git a/src/mame/drivers/atarisy1.c b/src/mame/drivers/atarisy1.c
index d3f9ad222d4..ada267edfc7 100644
--- a/src/mame/drivers/atarisy1.c
+++ b/src/mame/drivers/atarisy1.c
@@ -785,7 +785,7 @@ static MACHINE_CONFIG_START( atarisy1, atarisy1_state )
/* note: these parameters are from published specs, not derived */
/* video timing comes from an 82S163 (H) and an 82S129 (V) */
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(atarisy1)
+ MCFG_SCREEN_UPDATE_DRIVER(atarisy1_state, screen_update_atarisy1)
MCFG_VIDEO_START_OVERRIDE(atarisy1_state,atarisy1)
diff --git a/src/mame/drivers/atarisy2.c b/src/mame/drivers/atarisy2.c
index d7e33dadbdb..dd03234c812 100644
--- a/src/mame/drivers/atarisy2.c
+++ b/src/mame/drivers/atarisy2.c
@@ -1279,7 +1279,7 @@ static MACHINE_CONFIG_START( atarisy2, atarisy2_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK/2, 640, 0, 512, 416, 0, 384)
- MCFG_SCREEN_UPDATE_STATIC(atarisy2)
+ MCFG_SCREEN_UPDATE_DRIVER(atarisy2_state, screen_update_atarisy2)
MCFG_VIDEO_START_OVERRIDE(atarisy2_state,atarisy2)
diff --git a/src/mame/drivers/atarisy4.c b/src/mame/drivers/atarisy4.c
index 353939fecd4..af85a7cb49e 100644
--- a/src/mame/drivers/atarisy4.c
+++ b/src/mame/drivers/atarisy4.c
@@ -58,6 +58,7 @@ public:
virtual void video_start();
virtual void video_reset();
DECLARE_MACHINE_RESET(airrace);
+ UINT32 screen_update_atarisy4(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -155,9 +156,8 @@ void atarisy4_state::video_reset()
gpu.vblank_wait = 0;
}
-static SCREEN_UPDATE_RGB32( atarisy4 )
+UINT32 atarisy4_state::screen_update_atarisy4(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- atarisy4_state *state = screen.machine().driver_data<atarisy4_state>();
int y;
UINT32 offset = 0;
@@ -174,7 +174,7 @@ static SCREEN_UPDATE_RGB32( atarisy4 )
for (y = cliprect.min_y; y <= cliprect.max_y; ++y)
{
- UINT16 *src = &state->m_screen_ram[(offset + (4096 * y)) / 2];
+ UINT16 *src = &m_screen_ram[(offset + (4096 * y)) / 2];
UINT32 *dest = &bitmap.pix32(y, cliprect.min_x);
int x;
@@ -740,7 +740,7 @@ static MACHINE_CONFIG_START( atarisy4, atarisy4_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(32000000/2, 660, 0, 512, 404, 0, 384)
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
- MCFG_SCREEN_UPDATE_STATIC(atarisy4)
+ MCFG_SCREEN_UPDATE_DRIVER(atarisy4_state, screen_update_atarisy4)
MCFG_PALETTE_LENGTH(256)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/atetris.c b/src/mame/drivers/atetris.c
index 23309f483e7..6ec79b58832 100644
--- a/src/mame/drivers/atetris.c
+++ b/src/mame/drivers/atetris.c
@@ -354,7 +354,7 @@ static MACHINE_CONFIG_START( atetris, atetris_state )
/* note: these parameters are from published specs, not derived */
/* the board uses an SOS-2 chip to generate video signals */
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 456, 0, 336, 262, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(atetris)
+ MCFG_SCREEN_UPDATE_DRIVER(atetris_state, screen_update_atetris)
/* sound hardware */
@@ -386,7 +386,7 @@ static MACHINE_CONFIG_START( atetrisb2, atetris_state )
/* note: these parameters are from published specs, not derived */
/* the board uses an SOS-2 chip to generate video signals */
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 456, 0, 336, 262, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(atetris)
+ MCFG_SCREEN_UPDATE_DRIVER(atetris_state, screen_update_atetris)
/* sound hardware */
diff --git a/src/mame/drivers/atlantis.c b/src/mame/drivers/atlantis.c
index 9f2ee47543a..5ae2fa314eb 100644
--- a/src/mame/drivers/atlantis.c
+++ b/src/mame/drivers/atlantis.c
@@ -48,6 +48,7 @@ public:
DECLARE_DRIVER_INIT(mwskins);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_mwskins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -85,7 +86,7 @@ void atlantis_state::machine_reset()
*
*************************************/
-static SCREEN_UPDATE_IND16( mwskins )
+UINT32 atlantis_state::screen_update_mwskins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -166,7 +167,7 @@ static MACHINE_CONFIG_START( mwskins, atlantis_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(mwskins)
+ MCFG_SCREEN_UPDATE_DRIVER(atlantis_state, screen_update_mwskins)
MCFG_PALETTE_INIT(BBBBB_GGGGG_RRRRR)
MCFG_PALETTE_LENGTH(32768)
diff --git a/src/mame/drivers/atvtrack.c b/src/mame/drivers/atvtrack.c
index 144907e50b7..76dc617eaf4 100644
--- a/src/mame/drivers/atvtrack.c
+++ b/src/mame/drivers/atvtrack.c
@@ -85,6 +85,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_atvtrack(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
static void logbinary(UINT32 data,int high=31,int low=0)
@@ -318,7 +319,7 @@ void atvtrack_state::video_start()
{
}
-SCREEN_UPDATE_RGB32(atvtrack)
+UINT32 atvtrack_state::screen_update_atvtrack(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -401,7 +402,7 @@ static MACHINE_CONFIG_START( atvtrack, atvtrack_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(atvtrack)
+ MCFG_SCREEN_UPDATE_DRIVER(atvtrack_state, screen_update_atvtrack)
MCFG_PALETTE_LENGTH(0x1000)
diff --git a/src/mame/drivers/avalnche.c b/src/mame/drivers/avalnche.c
index 635b8b7c1af..8a0eecc22c4 100644
--- a/src/mame/drivers/avalnche.c
+++ b/src/mame/drivers/avalnche.c
@@ -44,24 +44,23 @@
*
*************************************/
-static SCREEN_UPDATE_RGB32( avalnche )
+UINT32 avalnche_state::screen_update_avalnche(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- avalnche_state *state = screen.machine().driver_data<avalnche_state>();
offs_t offs;
- for (offs = 0; offs < state->m_videoram.bytes(); offs++)
+ for (offs = 0; offs < m_videoram.bytes(); offs++)
{
int i;
UINT8 x = offs << 3;
int y = offs >> 5;
- UINT8 data = state->m_videoram[offs];
+ UINT8 data = m_videoram[offs];
for (i = 0; i < 8; i++)
{
pen_t pen;
- if (state->m_avalance_video_inverted)
+ if (m_avalance_video_inverted)
pen = (data & 0x80) ? RGB_WHITE : RGB_BLACK;
else
pen = (data & 0x80) ? RGB_BLACK : RGB_WHITE;
@@ -258,7 +257,7 @@ static MACHINE_CONFIG_START( avalnche, avalnche_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(avalnche)
+ MCFG_SCREEN_UPDATE_DRIVER(avalnche_state, screen_update_avalnche)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/avt.c b/src/mame/drivers/avt.c
index 477a6c82b65..08fe2374178 100644
--- a/src/mame/drivers/avt.c
+++ b/src/mame/drivers/avt.c
@@ -444,15 +444,16 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_avt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
#define mc6845_h_char_total (state->m_crtc_vreg[0])
-#define mc6845_h_display (state->m_crtc_vreg[1])
+#define mc6845_h_display (m_crtc_vreg[1])
#define mc6845_h_sync_pos (state->m_crtc_vreg[2])
#define mc6845_sync_width (state->m_crtc_vreg[3])
#define mc6845_v_char_total (state->m_crtc_vreg[4])
#define mc6845_v_total_adj (state->m_crtc_vreg[5])
-#define mc6845_v_display (state->m_crtc_vreg[6])
+#define mc6845_v_display (m_crtc_vreg[6])
#define mc6845_v_sync_pos (state->m_crtc_vreg[7])
#define mc6845_mode_ctrl (state->m_crtc_vreg[8])
#define mc6845_tile_height (state->m_crtc_vreg[9]+1)
@@ -504,9 +505,8 @@ void avt_state::video_start()
}
-static SCREEN_UPDATE_IND16( avt )
+UINT32 avt_state::screen_update_avt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- avt_state *state = screen.machine().driver_data<avt_state>();
int x,y;
int count;
gfx_element *gfx = screen.machine().gfx[0];
@@ -517,15 +517,15 @@ static SCREEN_UPDATE_IND16( avt )
{
for(x=0;x<mc6845_h_display;x++)
{
- UINT16 tile = state->m_videoram[count] | ((state->m_colorram[count] & 1) << 8);
- UINT8 color = (state->m_colorram[count] & 0xf0) >> 4;
+ UINT16 tile = m_videoram[count] | ((m_colorram[count] & 1) << 8);
+ UINT8 color = (m_colorram[count] & 0xf0) >> 4;
drawgfx_opaque(bitmap,cliprect,gfx,tile,color,0,0,x*8,(y*8));
count++;
}
}
- //state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ //m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -902,7 +902,7 @@ static MACHINE_CONFIG_START( avt, avt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1) /* 240x224 (through CRTC) */
- MCFG_SCREEN_UPDATE_STATIC(avt)
+ MCFG_SCREEN_UPDATE_DRIVER(avt_state, screen_update_avt)
MCFG_GFXDECODE(avt)
diff --git a/src/mame/drivers/backfire.c b/src/mame/drivers/backfire.c
index 1b841dd01d4..341497d942c 100644
--- a/src/mame/drivers/backfire.c
+++ b/src/mame/drivers/backfire.c
@@ -79,6 +79,8 @@ public:
DECLARE_DRIVER_INIT(backfire);
virtual void machine_start();
virtual void video_start();
+ UINT32 screen_update_backfire_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_backfire_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
//UINT32 *backfire_180010, *backfire_188010;
@@ -108,68 +110,66 @@ void backfire_state::video_start()
-static SCREEN_UPDATE_IND16( backfire_left )
+UINT32 backfire_state::screen_update_backfire_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- backfire_state *state = screen.machine().driver_data<backfire_state>();
//FIXME: flip_screen_x should not be written!
- state->flip_screen_set_no_update(1);
+ flip_screen_set_no_update(1);
/* screen 1 uses pf1 as the forground and pf3 as the background */
/* screen 2 uses pf2 as the foreground and pf4 as the background */
- deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
- deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
+ deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
+ deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
screen.machine().priority_bitmap.fill(0);
bitmap.fill(0x100, cliprect);
- if (state->m_left_priority[0] == 0)
+ if (m_left_priority[0] == 0)
{
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 1);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 2);
- screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram_1, 0x800);
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 1);
+ deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2);
+ screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram_1, 0x800);
}
- else if (state->m_left_priority[0] == 2)
+ else if (m_left_priority[0] == 2)
{
- deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 2);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 4);
- screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram_1, 0x800);
+ deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2);
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 4);
+ screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram_1, 0x800);
}
else
- popmessage( "unknown left priority %08x", state->m_left_priority[0]);
+ popmessage( "unknown left priority %08x", m_left_priority[0]);
return 0;
}
-static SCREEN_UPDATE_IND16( backfire_right )
+UINT32 backfire_state::screen_update_backfire_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- backfire_state *state = screen.machine().driver_data<backfire_state>();
//FIXME: flip_screen_x should not be written!
- state->flip_screen_set_no_update(1);
+ flip_screen_set_no_update(1);
/* screen 1 uses pf1 as the forground and pf3 as the background */
/* screen 2 uses pf2 as the foreground and pf4 as the background */
- deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
- deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
+ deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
+ deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
screen.machine().priority_bitmap.fill(0);
bitmap.fill(0x500, cliprect);
- if (state->m_right_priority[0] == 0)
+ if (m_right_priority[0] == 0)
{
- deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 1);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 2);
- screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, state->m_spriteram_2, 0x800);
+ deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, 0, 1);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2);
+ screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, m_spriteram_2, 0x800);
}
- else if (state->m_right_priority[0] == 2)
+ else if (m_right_priority[0] == 2)
{
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 2);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 4);
- screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, state->m_spriteram_2, 0x800);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2);
+ deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, 0, 4);
+ screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, m_spriteram_2, 0x800);
}
else
- popmessage( "unknown right priority %08x", state->m_right_priority[0]);
+ popmessage( "unknown right priority %08x", m_right_priority[0]);
return 0;
}
@@ -515,14 +515,14 @@ static MACHINE_CONFIG_START( backfire, backfire_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(backfire_left)
+ MCFG_SCREEN_UPDATE_DRIVER(backfire_state, screen_update_backfire_left)
MCFG_SCREEN_ADD("rscreen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(backfire_right)
+ MCFG_SCREEN_UPDATE_DRIVER(backfire_state, screen_update_backfire_right)
MCFG_DECO16IC_ADD("tilegen1", backfire_deco16ic_tilegen1_intf)
diff --git a/src/mame/drivers/badlands.c b/src/mame/drivers/badlands.c
index 5b77846ca52..27391d806e3 100644
--- a/src/mame/drivers/badlands.c
+++ b/src/mame/drivers/badlands.c
@@ -520,7 +520,7 @@ static MACHINE_CONFIG_START( badlands, badlands_state )
/* note: these parameters are from published specs, not derived */
/* the board uses an SOS-2 chip to generate video signals */
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(badlands)
+ MCFG_SCREEN_UPDATE_DRIVER(badlands_state, screen_update_badlands)
MCFG_VIDEO_START_OVERRIDE(badlands_state,badlands)
@@ -726,7 +726,7 @@ static MACHINE_CONFIG_START( badlandsb, badlands_state )
/* note: these parameters are from published specs, not derived */
/* the board uses an SOS-2 chip to generate video signals */
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(badlands)
+ MCFG_SCREEN_UPDATE_DRIVER(badlands_state, screen_update_badlands)
MCFG_VIDEO_START_OVERRIDE(badlands_state,badlands)
diff --git a/src/mame/drivers/bagman.c b/src/mame/drivers/bagman.c
index d48ae7d3de9..ebdba31fb80 100644
--- a/src/mame/drivers/bagman.c
+++ b/src/mame/drivers/bagman.c
@@ -484,7 +484,7 @@ static MACHINE_CONFIG_START( bagman, bagman_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(BAGMAN_HCLK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(bagman)
+ MCFG_SCREEN_UPDATE_DRIVER(bagman_state, screen_update_bagman)
MCFG_GFXDECODE(bagman)
MCFG_PALETTE_LENGTH(64)
@@ -520,7 +520,7 @@ static MACHINE_CONFIG_START( pickin, bagman_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(BAGMAN_HCLK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(bagman)
+ MCFG_SCREEN_UPDATE_DRIVER(bagman_state, screen_update_bagman)
MCFG_GFXDECODE(pickin)
MCFG_PALETTE_LENGTH(64)
@@ -572,7 +572,7 @@ static MACHINE_CONFIG_START( botanic, bagman_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(BAGMAN_HCLK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(bagman)
+ MCFG_SCREEN_UPDATE_DRIVER(bagman_state, screen_update_bagman)
MCFG_GFXDECODE(bagman)
MCFG_PALETTE_LENGTH(64)
diff --git a/src/mame/drivers/balsente.c b/src/mame/drivers/balsente.c
index 39e53042375..31387d9675d 100644
--- a/src/mame/drivers/balsente.c
+++ b/src/mame/drivers/balsente.c
@@ -1222,7 +1222,7 @@ static MACHINE_CONFIG_START( balsente, balsente_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(BALSENTE_PIXEL_CLOCK, BALSENTE_HTOTAL, BALSENTE_HBEND, BALSENTE_HBSTART, BALSENTE_VTOTAL, BALSENTE_VBEND, BALSENTE_VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(balsente)
+ MCFG_SCREEN_UPDATE_DRIVER(balsente_state, screen_update_balsente)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/bankp.c b/src/mame/drivers/bankp.c
index 47bde28cf22..d426a6cc7e5 100644
--- a/src/mame/drivers/bankp.c
+++ b/src/mame/drivers/bankp.c
@@ -309,7 +309,7 @@ static MACHINE_CONFIG_START( bankp, bankp_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(bankp)
+ MCFG_SCREEN_UPDATE_DRIVER(bankp_state, screen_update_bankp)
MCFG_GFXDECODE(bankp)
MCFG_PALETTE_LENGTH(32*4+16*8)
diff --git a/src/mame/drivers/baraduke.c b/src/mame/drivers/baraduke.c
index c0fcae8e5ba..1538d242146 100644
--- a/src/mame/drivers/baraduke.c
+++ b/src/mame/drivers/baraduke.c
@@ -394,8 +394,8 @@ static MACHINE_CONFIG_START( baraduke, baraduke_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(baraduke)
- MCFG_SCREEN_VBLANK_STATIC(baraduke)
+ MCFG_SCREEN_UPDATE_DRIVER(baraduke_state, screen_update_baraduke)
+ MCFG_SCREEN_VBLANK_DRIVER(baraduke_state, screen_eof_baraduke)
MCFG_GFXDECODE(baraduke)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/batman.c b/src/mame/drivers/batman.c
index a5c53f052cd..ec1da1ba80d 100644
--- a/src/mame/drivers/batman.c
+++ b/src/mame/drivers/batman.c
@@ -248,7 +248,7 @@ static MACHINE_CONFIG_START( batman, batman_state )
/* note: these parameters are from published specs, not derived */
/* the board uses a VAD chip to generate video signals */
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(batman)
+ MCFG_SCREEN_UPDATE_DRIVER(batman_state, screen_update_batman)
MCFG_VIDEO_START_OVERRIDE(batman_state,batman)
diff --git a/src/mame/drivers/battlane.c b/src/mame/drivers/battlane.c
index b801bc1c609..e06e0e30147 100644
--- a/src/mame/drivers/battlane.c
+++ b/src/mame/drivers/battlane.c
@@ -303,7 +303,7 @@ static MACHINE_CONFIG_START( battlane, battlane_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32 * 8, 32 * 8)
MCFG_SCREEN_VISIBLE_AREA(1 * 8, 31 * 8 - 1, 0 * 8, 32 * 8 - 1)
- MCFG_SCREEN_UPDATE_STATIC(battlane)
+ MCFG_SCREEN_UPDATE_DRIVER(battlane_state, screen_update_battlane)
MCFG_GFXDECODE(battlane)
MCFG_PALETTE_LENGTH(64)
diff --git a/src/mame/drivers/battlera.c b/src/mame/drivers/battlera.c
index e3de7eedbcf..7e5fee8ab1f 100644
--- a/src/mame/drivers/battlera.c
+++ b/src/mame/drivers/battlera.c
@@ -245,7 +245,7 @@ static MACHINE_CONFIG_START( battlera, battlera_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(battlera)
+ MCFG_SCREEN_UPDATE_DRIVER(battlera_state, screen_update_battlera)
MCFG_GFXDECODE(battlera)
MCFG_PALETTE_LENGTH(512)
diff --git a/src/mame/drivers/battlex.c b/src/mame/drivers/battlex.c
index 4ff9b742cad..fa884738b5c 100644
--- a/src/mame/drivers/battlex.c
+++ b/src/mame/drivers/battlex.c
@@ -259,7 +259,7 @@ static MACHINE_CONFIG_START( battlex, battlex_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(battlex)
+ MCFG_SCREEN_UPDATE_DRIVER(battlex_state, screen_update_battlex)
MCFG_GFXDECODE(battlex)
MCFG_PALETTE_LENGTH(64)
diff --git a/src/mame/drivers/battlnts.c b/src/mame/drivers/battlnts.c
index a1dd2153f81..febce81c0a1 100644
--- a/src/mame/drivers/battlnts.c
+++ b/src/mame/drivers/battlnts.c
@@ -260,7 +260,7 @@ static MACHINE_CONFIG_START( battlnts, battlnts_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(battlnts)
+ MCFG_SCREEN_UPDATE_DRIVER(battlnts_state, screen_update_battlnts)
MCFG_GFXDECODE(battlnts)
MCFG_PALETTE_LENGTH(128)
diff --git a/src/mame/drivers/bbusters.c b/src/mame/drivers/bbusters.c
index dfe6f82070b..9e76a831418 100644
--- a/src/mame/drivers/bbusters.c
+++ b/src/mame/drivers/bbusters.c
@@ -659,11 +659,10 @@ static const ym2610_interface ym2610_config =
/******************************************************************************/
-static SCREEN_VBLANK( bbuster )
+void bbusters_state::screen_eof_bbuster(screen_device &screen, bool state)
{
- bbusters_state *state = screen.machine().driver_data<bbusters_state>();
- state->m_spriteram->vblank_copy_rising(screen, vblank_on);
- state->m_spriteram2->vblank_copy_rising(screen, vblank_on);
+ m_spriteram->vblank_copy_rising(screen, state);
+ m_spriteram2->vblank_copy_rising(screen, state);
}
static MACHINE_CONFIG_START( bbusters, bbusters_state )
@@ -684,8 +683,8 @@ static MACHINE_CONFIG_START( bbusters, bbusters_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(bbuster)
- MCFG_SCREEN_VBLANK_STATIC(bbuster)
+ MCFG_SCREEN_UPDATE_DRIVER(bbusters_state, screen_update_bbuster)
+ MCFG_SCREEN_VBLANK_DRIVER(bbusters_state, screen_eof_bbuster)
MCFG_GFXDECODE(bbusters)
MCFG_PALETTE_LENGTH(2048)
@@ -722,7 +721,7 @@ static MACHINE_CONFIG_START( mechatt, bbusters_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(mechatt)
+ MCFG_SCREEN_UPDATE_DRIVER(bbusters_state, screen_update_mechatt)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(mechatt)
diff --git a/src/mame/drivers/beaminv.c b/src/mame/drivers/beaminv.c
index 7bc565902af..41ff62ae6e3 100644
--- a/src/mame/drivers/beaminv.c
+++ b/src/mame/drivers/beaminv.c
@@ -79,6 +79,7 @@ public:
DECLARE_READ8_MEMBER(controller_r);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_beaminv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -168,18 +169,17 @@ void beaminv_state::machine_reset()
*
*************************************/
-static SCREEN_UPDATE_RGB32( beaminv )
+UINT32 beaminv_state::screen_update_beaminv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- beaminv_state *state = screen.machine().driver_data<beaminv_state>();
offs_t offs;
- for (offs = 0; offs < state->m_videoram.bytes(); offs++)
+ for (offs = 0; offs < m_videoram.bytes(); offs++)
{
int i;
UINT8 y = offs;
UINT8 x = offs >> 8 << 3;
- UINT8 data = state->m_videoram[offs];
+ UINT8 data = m_videoram[offs];
for (i = 0; i < 8; i++)
{
@@ -342,7 +342,7 @@ static MACHINE_CONFIG_START( beaminv, beaminv_state )
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 247, 16, 231)
MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_UPDATE_STATIC(beaminv)
+ MCFG_SCREEN_UPDATE_DRIVER(beaminv_state, screen_update_beaminv)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/beezer.c b/src/mame/drivers/beezer.c
index 1fcb02f381f..2d226162015 100644
--- a/src/mame/drivers/beezer.c
+++ b/src/mame/drivers/beezer.c
@@ -99,7 +99,7 @@ static MACHINE_CONFIG_START( beezer, beezer_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(384, 256)
MCFG_SCREEN_VISIBLE_AREA(16, 304-1, 0, 240-1) // 288 x 240, correct?
- MCFG_SCREEN_UPDATE_STATIC(beezer)
+ MCFG_SCREEN_UPDATE_DRIVER(beezer_state, screen_update_beezer)
MCFG_PALETTE_LENGTH(16)
diff --git a/src/mame/drivers/berzerk.c b/src/mame/drivers/berzerk.c
index 1886939820e..60a7df61104 100644
--- a/src/mame/drivers/berzerk.c
+++ b/src/mame/drivers/berzerk.c
@@ -58,6 +58,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_berzerk(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -455,20 +456,19 @@ static void get_pens(running_machine &machine, pen_t *pens)
}
-static SCREEN_UPDATE_RGB32( berzerk )
+UINT32 berzerk_state::screen_update_berzerk(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- berzerk_state *state = screen.machine().driver_data<berzerk_state>();
pen_t pens[NUM_PENS];
offs_t offs;
get_pens(screen.machine(), pens);
- for (offs = 0; offs < state->m_videoram.bytes(); offs++)
+ for (offs = 0; offs < m_videoram.bytes(); offs++)
{
int i;
- UINT8 data = state->m_videoram[offs];
- UINT8 color = state->m_colorram[((offs >> 2) & 0x07e0) | (offs & 0x001f)];
+ UINT8 data = m_videoram[offs];
+ UINT8 color = m_colorram[((offs >> 2) & 0x07e0) | (offs & 0x001f)];
UINT8 y = offs >> 5;
UINT8 x = offs << 3;
@@ -1092,7 +1092,7 @@ static MACHINE_CONFIG_START( berzerk, berzerk_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(berzerk)
+ MCFG_SCREEN_UPDATE_DRIVER(berzerk_state, screen_update_berzerk)
/* audio hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/bestleag.c b/src/mame/drivers/bestleag.c
index a9756a05c5d..5ee5209fb3f 100644
--- a/src/mame/drivers/bestleag.c
+++ b/src/mame/drivers/bestleag.c
@@ -51,6 +51,8 @@ public:
TILE_GET_INFO_MEMBER(get_fg_tile_info);
TILEMAP_MAPPER_MEMBER(bsb_bg_scan);
virtual void video_start();
+ UINT32 screen_update_bestleag(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_bestleaw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -172,37 +174,35 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-static SCREEN_UPDATE_IND16(bestleag)
+UINT32 bestleag_state::screen_update_bestleag(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bestleag_state *state = screen.machine().driver_data<bestleag_state>();
- state->m_bg_tilemap->set_scrollx(0,(state->m_vregs[0x00/2] & 0xfff) + (state->m_vregs[0x08/2] & 0x7) - 3);
- state->m_bg_tilemap->set_scrolly(0,state->m_vregs[0x02/2]);
- state->m_tx_tilemap->set_scrollx(0,state->m_vregs[0x04/2]);
- state->m_tx_tilemap->set_scrolly(0,state->m_vregs[0x06/2]);
- state->m_fg_tilemap->set_scrollx(0,state->m_vregs[0x08/2] & 0xfff8);
- state->m_fg_tilemap->set_scrolly(0,state->m_vregs[0x0a/2]);
-
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->set_scrollx(0,(m_vregs[0x00/2] & 0xfff) + (m_vregs[0x08/2] & 0x7) - 3);
+ m_bg_tilemap->set_scrolly(0,m_vregs[0x02/2]);
+ m_tx_tilemap->set_scrollx(0,m_vregs[0x04/2]);
+ m_tx_tilemap->set_scrolly(0,m_vregs[0x06/2]);
+ m_fg_tilemap->set_scrollx(0,m_vregs[0x08/2] & 0xfff8);
+ m_fg_tilemap->set_scrolly(0,m_vregs[0x0a/2]);
+
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(),bitmap,cliprect);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
-static SCREEN_UPDATE_IND16(bestleaw)
+UINT32 bestleag_state::screen_update_bestleaw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bestleag_state *state = screen.machine().driver_data<bestleag_state>();
- state->m_bg_tilemap->set_scrollx(0,state->m_vregs[0x08/2]);
- state->m_bg_tilemap->set_scrolly(0,state->m_vregs[0x0a/2]);
- state->m_tx_tilemap->set_scrollx(0,state->m_vregs[0x00/2]);
- state->m_tx_tilemap->set_scrolly(0,state->m_vregs[0x02/2]);
- state->m_fg_tilemap->set_scrollx(0,state->m_vregs[0x04/2]);
- state->m_fg_tilemap->set_scrolly(0,state->m_vregs[0x06/2]);
-
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->set_scrollx(0,m_vregs[0x08/2]);
+ m_bg_tilemap->set_scrolly(0,m_vregs[0x0a/2]);
+ m_tx_tilemap->set_scrollx(0,m_vregs[0x00/2]);
+ m_tx_tilemap->set_scrolly(0,m_vregs[0x02/2]);
+ m_fg_tilemap->set_scrollx(0,m_vregs[0x04/2]);
+ m_fg_tilemap->set_scrolly(0,m_vregs[0x06/2]);
+
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(),bitmap,cliprect);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
@@ -372,7 +372,7 @@ static MACHINE_CONFIG_START( bestleag, bestleag_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(bestleag)
+ MCFG_SCREEN_UPDATE_DRIVER(bestleag_state, screen_update_bestleag)
MCFG_GFXDECODE(bestleag)
MCFG_PALETTE_LENGTH(0x800)
@@ -387,7 +387,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( bestleaw, bestleag )
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(bestleaw)
+ MCFG_SCREEN_UPDATE_DRIVER(bestleag_state, screen_update_bestleaw)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/bfcobra.c b/src/mame/drivers/bfcobra.c
index 032a3f545bc..887d3510992 100644
--- a/src/mame/drivers/bfcobra.c
+++ b/src/mame/drivers/bfcobra.c
@@ -299,6 +299,7 @@ public:
DECLARE_DRIVER_INIT(bfcobra);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_bfcobra(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -366,9 +367,8 @@ void bfcobra_state::video_start()
}
}
-static SCREEN_UPDATE_RGB32( bfcobra )
+UINT32 bfcobra_state::screen_update_bfcobra(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- bfcobra_state *state = screen.machine().driver_data<bfcobra_state>();
int x, y;
UINT8 *src;
UINT32 *dest;
@@ -378,39 +378,39 @@ static SCREEN_UPDATE_RGB32( bfcobra )
/* Select screen has to be programmed into two registers */
/* No idea what happens if the registers are different */
- if (state->m_flip_8 & 0x40 && state->m_flip_22 & 0x40)
+ if (m_flip_8 & 0x40 && m_flip_22 & 0x40)
offset = 0x10000;
else
offset = 0;
- if(state->m_videomode & 0x20)
+ if(m_videomode & 0x20)
{
- hirescol = state->m_col3bit;
- lorescol = state->m_col7bit;
+ hirescol = m_col3bit;
+ lorescol = m_col7bit;
}
- else if(state->m_videomode & 0x40)
+ else if(m_videomode & 0x40)
{
- hirescol = state->m_col4bit;
- lorescol = state->m_col6bit;
+ hirescol = m_col4bit;
+ lorescol = m_col6bit;
}
else
{
- hirescol = state->m_col4bit;
- lorescol = state->m_col8bit;
+ hirescol = m_col4bit;
+ lorescol = m_col8bit;
}
for (y = cliprect.min_y; y <= cliprect.max_y; ++y)
{
- UINT16 y_offset = (y + state->m_v_scroll) * 256;
- src = &state->m_video_ram[offset + y_offset];
+ UINT16 y_offset = (y + m_v_scroll) * 256;
+ src = &m_video_ram[offset + y_offset];
dest = &bitmap.pix32(y);
for (x = cliprect.min_x; x <= cliprect.max_x / 2; ++x)
{
- UINT8 x_offset = x + state->m_h_scroll;
+ UINT8 x_offset = x + m_h_scroll;
UINT8 pen = *(src + x_offset);
- if ( ( state->m_videomode & 0x81 ) == 1 || (state->m_videomode & 0x80 && pen & 0x80) )
+ if ( ( m_videomode & 0x81 ) == 1 || (m_videomode & 0x80 && pen & 0x80) )
{
*dest++ = screen.machine().pens[hirescol[pen & 0x0f]];
*dest++ = screen.machine().pens[hirescol[(pen >> 4) & 0x0f]];
@@ -1794,7 +1794,7 @@ static MACHINE_CONFIG_START( bfcobra, bfcobra_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512 - 1, 0, 256 - 1)
- MCFG_SCREEN_UPDATE_STATIC(bfcobra)
+ MCFG_SCREEN_UPDATE_DRIVER(bfcobra_state, screen_update_bfcobra)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/bigevglf.c b/src/mame/drivers/bigevglf.c
index dee01456218..3c297d1cb82 100644
--- a/src/mame/drivers/bigevglf.c
+++ b/src/mame/drivers/bigevglf.c
@@ -519,7 +519,7 @@ static MACHINE_CONFIG_START( bigevglf, bigevglf_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(bigevglf)
+ MCFG_SCREEN_UPDATE_DRIVER(bigevglf_state, screen_update_bigevglf)
MCFG_GFXDECODE(bigevglf)
MCFG_PALETTE_LENGTH(0x800)
diff --git a/src/mame/drivers/bigstrkb.c b/src/mame/drivers/bigstrkb.c
index b3d496b7098..6a222ca54e4 100644
--- a/src/mame/drivers/bigstrkb.c
+++ b/src/mame/drivers/bigstrkb.c
@@ -207,7 +207,7 @@ static MACHINE_CONFIG_START( bigstrkb, bigstrkb_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(bigstrkb)
+ MCFG_SCREEN_UPDATE_DRIVER(bigstrkb_state, screen_update_bigstrkb)
MCFG_PALETTE_LENGTH(0x400)
diff --git a/src/mame/drivers/bingoc.c b/src/mame/drivers/bingoc.c
index 8715e85627b..507af29d7a4 100644
--- a/src/mame/drivers/bingoc.c
+++ b/src/mame/drivers/bingoc.c
@@ -46,6 +46,7 @@ public:
DECLARE_WRITE16_MEMBER(main_sound_latch_w);
DECLARE_WRITE8_MEMBER(bingoc_play_w);
virtual void video_start();
+ UINT32 screen_update_bingoc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -56,7 +57,7 @@ void bingoc_state::video_start()
}
-static SCREEN_UPDATE_IND16(bingoc)
+UINT32 bingoc_state::screen_update_bingoc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -160,7 +161,7 @@ static MACHINE_CONFIG_START( bingoc, bingoc_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(bingoc)
+ MCFG_SCREEN_UPDATE_DRIVER(bingoc_state, screen_update_bingoc)
MCFG_PALETTE_LENGTH(0x100)
diff --git a/src/mame/drivers/bingor.c b/src/mame/drivers/bingor.c
index f74486fe2f4..50d11ad684e 100644
--- a/src/mame/drivers/bingor.c
+++ b/src/mame/drivers/bingor.c
@@ -454,6 +454,7 @@ public:
DECLARE_READ16_MEMBER(test_r);
DECLARE_READ8_MEMBER(test8_r);
virtual void video_start();
+ UINT32 screen_update_bingor(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -461,9 +462,8 @@ void bingor_state::video_start()
{
}
-static SCREEN_UPDATE_RGB32(bingor)
+UINT32 bingor_state::screen_update_bingor(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- bingor_state *state = screen.machine().driver_data<bingor_state>();
int x,y,count;
bitmap.fill(get_black_pen(screen.machine()), cliprect);
@@ -476,22 +476,22 @@ static SCREEN_UPDATE_RGB32(bingor)
{
UINT32 color;
- color = (state->m_blit_ram[count] & 0xf000)>>12;
+ color = (m_blit_ram[count] & 0xf000)>>12;
if(cliprect.contains(x+3, y))
bitmap.pix32(y, x+3) = screen.machine().pens[color];
- color = (state->m_blit_ram[count] & 0x0f00)>>8;
+ color = (m_blit_ram[count] & 0x0f00)>>8;
if(cliprect.contains(x+2, y))
bitmap.pix32(y, x+2) = screen.machine().pens[color];
- color = (state->m_blit_ram[count] & 0x00f0)>>4;
+ color = (m_blit_ram[count] & 0x00f0)>>4;
if(cliprect.contains(x+1, y))
bitmap.pix32(y, x+1) = screen.machine().pens[color];
- color = (state->m_blit_ram[count] & 0x000f)>>0;
+ color = (m_blit_ram[count] & 0x000f)>>0;
if(cliprect.contains(x+0, y))
bitmap.pix32(y, x+0) = screen.machine().pens[color];
@@ -635,7 +635,7 @@ static MACHINE_CONFIG_START( bingor, bingor_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(400, 300)
MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 300-1)
- MCFG_SCREEN_UPDATE_STATIC(bingor)
+ MCFG_SCREEN_UPDATE_DRIVER(bingor_state, screen_update_bingor)
MCFG_PALETTE_LENGTH(0x100)
diff --git a/src/mame/drivers/bionicc.c b/src/mame/drivers/bionicc.c
index 04e4785a47a..8985f7bad24 100644
--- a/src/mame/drivers/bionicc.c
+++ b/src/mame/drivers/bionicc.c
@@ -371,7 +371,7 @@ static MACHINE_CONFIG_START( bionicc, bionicc_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(bionicc)
+ MCFG_SCREEN_UPDATE_DRIVER(bionicc_state, screen_update_bionicc)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(bionicc)
diff --git a/src/mame/drivers/bishi.c b/src/mame/drivers/bishi.c
index 61f3e0dbaeb..a09fad44e49 100644
--- a/src/mame/drivers/bishi.c
+++ b/src/mame/drivers/bishi.c
@@ -422,7 +422,7 @@ static MACHINE_CONFIG_START( bishi, bishi_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1200))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(29, 29+288-1, 16, 16+224-1)
- MCFG_SCREEN_UPDATE_STATIC(bishi)
+ MCFG_SCREEN_UPDATE_DRIVER(bishi_state, screen_update_bishi)
MCFG_PALETTE_LENGTH(4096)
diff --git a/src/mame/drivers/bking.c b/src/mame/drivers/bking.c
index f136636ba05..3a7fc0da52a 100644
--- a/src/mame/drivers/bking.c
+++ b/src/mame/drivers/bking.c
@@ -485,8 +485,8 @@ static MACHINE_CONFIG_START( bking, bking_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(bking)
- MCFG_SCREEN_VBLANK_STATIC(bking)
+ MCFG_SCREEN_UPDATE_DRIVER(bking_state, screen_update_bking)
+ MCFG_SCREEN_VBLANK_DRIVER(bking_state, screen_eof_bking)
MCFG_GFXDECODE(bking)
MCFG_PALETTE_LENGTH(4*8+4*4+4*2+4*2)
diff --git a/src/mame/drivers/blackt96.c b/src/mame/drivers/blackt96.c
index 352d4215baa..fcdea2270f5 100644
--- a/src/mame/drivers/blackt96.c
+++ b/src/mame/drivers/blackt96.c
@@ -131,6 +131,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg6_tile_info);
TILE_GET_INFO_MEMBER(get_bg7_tile_info);
virtual void video_start();
+ UINT32 screen_update_blackt96(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
#define GET_INFO( ram ) \
@@ -227,9 +228,8 @@ static void draw_strip(running_machine &machine, bitmap_ind16 &bitmap, const rec
}
-static SCREEN_UPDATE_IND16( blackt96 )
+UINT32 blackt96_state::screen_update_blackt96(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- blackt96_state *state = screen.machine().driver_data<blackt96_state>();
int count;
int x,y;
gfx_element *gfx = screen.machine().gfx[2];
@@ -263,7 +263,7 @@ static SCREEN_UPDATE_IND16( blackt96 )
{
for (y=0;y<32;y++)
{
- UINT16 tile = (state->m_tilemapram[count*2]&0x7ff)+0x800; // +0xc00 for korean text
+ UINT16 tile = (m_tilemapram[count*2]&0x7ff)+0x800; // +0xc00 for korean text
drawgfx_transpen(bitmap,cliprect,gfx,tile,0,0,0,x*8,-16+y*8,0);
count++;
}
@@ -621,7 +621,7 @@ static MACHINE_CONFIG_START( blackt96, blackt96_state )
MCFG_SCREEN_SIZE(256, 256)
// MCFG_SCREEN_VISIBLE_AREA(0*8, 16*32-1, 0*8, 16*32-1)
MCFG_SCREEN_VISIBLE_AREA(0*8, 256-1, 0*8, 208-1)
- MCFG_SCREEN_UPDATE_STATIC(blackt96)
+ MCFG_SCREEN_UPDATE_DRIVER(blackt96_state, screen_update_blackt96)
MCFG_PALETTE_LENGTH(0x800)
diff --git a/src/mame/drivers/bladestl.c b/src/mame/drivers/bladestl.c
index 2e612ac28e5..dcca2ed97d5 100644
--- a/src/mame/drivers/bladestl.c
+++ b/src/mame/drivers/bladestl.c
@@ -347,7 +347,7 @@ static MACHINE_CONFIG_START( bladestl, bladestl_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(bladestl)
+ MCFG_SCREEN_UPDATE_DRIVER(bladestl_state, screen_update_bladestl)
MCFG_GFXDECODE(bladestl)
MCFG_PALETTE_LENGTH(32 + 16*16)
diff --git a/src/mame/drivers/blitz.c b/src/mame/drivers/blitz.c
index 53fd019dfb2..a192c1a304e 100644
--- a/src/mame/drivers/blitz.c
+++ b/src/mame/drivers/blitz.c
@@ -313,6 +313,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_megadpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -359,10 +360,9 @@ void blitz_state::video_start()
m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(blitz_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
-static SCREEN_UPDATE_IND16( megadpkr )
+UINT32 blitz_state::screen_update_megadpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- blitz_state *state = screen.machine().driver_data<blitz_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -810,7 +810,7 @@ static MACHINE_CONFIG_START( megadpkr, blitz_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE((32)*8, (32)*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(megadpkr)
+ MCFG_SCREEN_UPDATE_DRIVER(blitz_state, screen_update_megadpkr)
MCFG_MC6845_ADD("crtc", MC6845, CPU_CLOCK, mc6845_intf)
diff --git a/src/mame/drivers/blitz68k.c b/src/mame/drivers/blitz68k.c
index 6e701be6207..e9d07d6c874 100644
--- a/src/mame/drivers/blitz68k.c
+++ b/src/mame/drivers/blitz68k.c
@@ -173,6 +173,8 @@ public:
DECLARE_DRIVER_INIT(dualgame);
DECLARE_VIDEO_START(blitz68k);
DECLARE_VIDEO_START(blitz68k_addr_factor1);
+ UINT32 screen_update_blitz68k(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_blitz68k_noblit(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
/*************************************************************************************************************
@@ -206,12 +208,11 @@ VIDEO_START_MEMBER(blitz68k_state,blitz68k_addr_factor1)
blit.addr_factor = 1;
}
-static SCREEN_UPDATE_RGB32(blitz68k)
+UINT32 blitz68k_state::screen_update_blitz68k(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- blitz68k_state *state = screen.machine().driver_data<blitz68k_state>();
int x,y;
- UINT8 *src = state->m_blit_buffer;
+ UINT8 *src = m_blit_buffer;
for(y = 0; y < 256; y++)
{
@@ -227,12 +228,11 @@ static SCREEN_UPDATE_RGB32(blitz68k)
// Blitter-less board (SPI-68K)
-static SCREEN_UPDATE_RGB32(blitz68k_noblit)
+UINT32 blitz68k_state::screen_update_blitz68k_noblit(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- blitz68k_state *state = screen.machine().driver_data<blitz68k_state>();
int x,y;
- UINT16 *src = state->m_frame_buffer;
+ UINT16 *src = m_frame_buffer;
for(y = 0; y < 256; y++)
{
@@ -1722,7 +1722,7 @@ static MACHINE_CONFIG_START( ilpag, blitz68k_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(blitz68k)
+ MCFG_SCREEN_UPDATE_DRIVER(blitz68k_state, screen_update_blitz68k)
MCFG_NVRAM_ADD_0FILL("nvram")
@@ -1797,7 +1797,7 @@ static MACHINE_CONFIG_START( cjffruit, blitz68k_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-8-1)
- MCFG_SCREEN_UPDATE_STATIC(blitz68k)
+ MCFG_SCREEN_UPDATE_DRIVER(blitz68k_state, screen_update_blitz68k)
MCFG_MC6845_ADD("crtc", R6545_1, XTAL_22_1184MHz/8, mc6845_intf_irq1)
@@ -1829,7 +1829,7 @@ static MACHINE_CONFIG_START( bankrob, blitz68k_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+4, 256-1-4)
- MCFG_SCREEN_UPDATE_STATIC(blitz68k)
+ MCFG_SCREEN_UPDATE_DRIVER(blitz68k_state, screen_update_blitz68k)
MCFG_MC6845_ADD("crtc", H46505, XTAL_11_0592MHz/4, mc6845_intf_irq3)
@@ -1859,7 +1859,7 @@ static MACHINE_CONFIG_START( bankroba, blitz68k_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+7, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(blitz68k)
+ MCFG_SCREEN_UPDATE_DRIVER(blitz68k_state, screen_update_blitz68k)
MCFG_MC6845_ADD("crtc", H46505, XTAL_11_0592MHz/4, mc6845_intf_irq5)
@@ -1888,7 +1888,7 @@ static MACHINE_CONFIG_START( deucesw2, blitz68k_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(blitz68k)
+ MCFG_SCREEN_UPDATE_DRIVER(blitz68k_state, screen_update_blitz68k)
MCFG_MC6845_ADD("crtc", R6545_1, XTAL_22_1184MHz/8, mc6845_intf_irq3)
@@ -1919,7 +1919,7 @@ static MACHINE_CONFIG_START( dualgame, blitz68k_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+4, 256-1-4)
- MCFG_SCREEN_UPDATE_STATIC(blitz68k)
+ MCFG_SCREEN_UPDATE_DRIVER(blitz68k_state, screen_update_blitz68k)
MCFG_MC6845_ADD("crtc", H46505, XTAL_11_0592MHz/4, mc6845_intf_irq3)
@@ -1948,7 +1948,7 @@ static MACHINE_CONFIG_START( hermit, blitz68k_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+4, 256-1-4)
- MCFG_SCREEN_UPDATE_STATIC(blitz68k)
+ MCFG_SCREEN_UPDATE_DRIVER(blitz68k_state, screen_update_blitz68k)
MCFG_MC6845_ADD("crtc", H46505, XTAL_22_1184MHz/8, mc6845_intf_irq1)
@@ -1982,7 +1982,7 @@ static MACHINE_CONFIG_START( maxidbl, blitz68k_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(blitz68k_noblit)
+ MCFG_SCREEN_UPDATE_DRIVER(blitz68k_state, screen_update_blitz68k_noblit)
MCFG_MC6845_ADD("crtc", H46505, XTAL_11_0592MHz/4, mc6845_intf_irq3)
diff --git a/src/mame/drivers/blktiger.c b/src/mame/drivers/blktiger.c
index 4ea40332110..29b464b094e 100644
--- a/src/mame/drivers/blktiger.c
+++ b/src/mame/drivers/blktiger.c
@@ -334,7 +334,7 @@ static MACHINE_CONFIG_START( blktiger, blktiger_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(blktiger)
+ MCFG_SCREEN_UPDATE_DRIVER(blktiger_state, screen_update_blktiger)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(blktiger)
diff --git a/src/mame/drivers/blmbycar.c b/src/mame/drivers/blmbycar.c
index 840572d22d7..a023fa62425 100644
--- a/src/mame/drivers/blmbycar.c
+++ b/src/mame/drivers/blmbycar.c
@@ -366,7 +366,7 @@ static MACHINE_CONFIG_START( blmbycar, blmbycar_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x180, 0x100)
MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1, 0, 0x100-1)
- MCFG_SCREEN_UPDATE_STATIC(blmbycar)
+ MCFG_SCREEN_UPDATE_DRIVER(blmbycar_state, screen_update_blmbycar)
MCFG_GFXDECODE(blmbycar)
MCFG_PALETTE_LENGTH(0x300)
@@ -409,7 +409,7 @@ static MACHINE_CONFIG_START( watrball, blmbycar_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(0x180, 0x100)
MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1, 16, 0x100-1)
- MCFG_SCREEN_UPDATE_STATIC(blmbycar)
+ MCFG_SCREEN_UPDATE_DRIVER(blmbycar_state, screen_update_blmbycar)
MCFG_GFXDECODE(blmbycar)
MCFG_PALETTE_LENGTH(0x300)
diff --git a/src/mame/drivers/blockade.c b/src/mame/drivers/blockade.c
index a19d7cc77e6..3b57e2d82f7 100644
--- a/src/mame/drivers/blockade.c
+++ b/src/mame/drivers/blockade.c
@@ -481,7 +481,7 @@ static MACHINE_CONFIG_START( blockade, blockade_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 28*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(blockade)
+ MCFG_SCREEN_UPDATE_DRIVER(blockade_state, screen_update_blockade)
MCFG_GFXDECODE(blockade)
MCFG_PALETTE_LENGTH(2)
diff --git a/src/mame/drivers/blockhl.c b/src/mame/drivers/blockhl.c
index cc541ee13ac..0c4d22d38a9 100644
--- a/src/mame/drivers/blockhl.c
+++ b/src/mame/drivers/blockhl.c
@@ -229,7 +229,7 @@ static MACHINE_CONFIG_START( blockhl, blockhl_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(blockhl)
+ MCFG_SCREEN_UPDATE_DRIVER(blockhl_state, screen_update_blockhl)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/blockout.c b/src/mame/drivers/blockout.c
index 00633d433b3..e42aca18a58 100644
--- a/src/mame/drivers/blockout.c
+++ b/src/mame/drivers/blockout.c
@@ -322,7 +322,7 @@ static MACHINE_CONFIG_START( blockout, blockout_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 8, 247)
- MCFG_SCREEN_UPDATE_STATIC(blockout)
+ MCFG_SCREEN_UPDATE_DRIVER(blockout_state, screen_update_blockout)
MCFG_PALETTE_LENGTH(513)
diff --git a/src/mame/drivers/bloodbro.c b/src/mame/drivers/bloodbro.c
index d5d462376f7..28c19c9eaaa 100644
--- a/src/mame/drivers/bloodbro.c
+++ b/src/mame/drivers/bloodbro.c
@@ -449,7 +449,7 @@ static MACHINE_CONFIG_START( bloodbro, bloodbro_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(bloodbro)
+ MCFG_SCREEN_UPDATE_DRIVER(bloodbro_state, screen_update_bloodbro)
MCFG_GFXDECODE(bloodbro)
MCFG_PALETTE_LENGTH(2048)
@@ -469,7 +469,7 @@ static MACHINE_CONFIG_DERIVED( weststry, bloodbro )
MCFG_PALETTE_LENGTH(1024)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(weststry)
+ MCFG_SCREEN_UPDATE_DRIVER(bloodbro_state, screen_update_weststry)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( skysmash, bloodbro )
@@ -478,7 +478,7 @@ static MACHINE_CONFIG_DERIVED( skysmash, bloodbro )
MCFG_CPU_VBLANK_INT("screen", irq2_line_hold)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(skysmash)
+ MCFG_SCREEN_UPDATE_DRIVER(bloodbro_state, screen_update_skysmash)
MACHINE_CONFIG_END
/* ROMs */
diff --git a/src/mame/drivers/blstroid.c b/src/mame/drivers/blstroid.c
index 4cc18aa8220..2aa2ffb843a 100644
--- a/src/mame/drivers/blstroid.c
+++ b/src/mame/drivers/blstroid.c
@@ -219,7 +219,7 @@ static MACHINE_CONFIG_START( blstroid, blstroid_state )
/* note: these parameters are from published specs, not derived */
/* the board uses an SOS-2 chip to generate video signals */
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz, 456*2, 0, 320*2, 262, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(blstroid)
+ MCFG_SCREEN_UPDATE_DRIVER(blstroid_state, screen_update_blstroid)
MCFG_VIDEO_START_OVERRIDE(blstroid_state,blstroid)
diff --git a/src/mame/drivers/blueprnt.c b/src/mame/drivers/blueprnt.c
index be92f5ebdb4..a7c6f52d3ed 100644
--- a/src/mame/drivers/blueprnt.c
+++ b/src/mame/drivers/blueprnt.c
@@ -310,7 +310,7 @@ static MACHINE_CONFIG_START( blueprnt, blueprnt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(blueprnt)
+ MCFG_SCREEN_UPDATE_DRIVER(blueprnt_state, screen_update_blueprnt)
MCFG_GFXDECODE(blueprnt)
MCFG_PALETTE_LENGTH(128*4+8)
diff --git a/src/mame/drivers/bmcbowl.c b/src/mame/drivers/bmcbowl.c
index 804ebdc30d1..ca0078dfa0e 100644
--- a/src/mame/drivers/bmcbowl.c
+++ b/src/mame/drivers/bmcbowl.c
@@ -137,6 +137,7 @@ public:
DECLARE_DRIVER_INIT(bmcbowl);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_bmcbowl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -148,9 +149,8 @@ void bmcbowl_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( bmcbowl )
+UINT32 bmcbowl_state::screen_update_bmcbowl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bmcbowl_state *state = screen.machine().driver_data<bmcbowl_state>();
/*
280x230,4 bitmap layers, 8bpp,
missing scroll and priorities (maybe fixed ones)
@@ -164,28 +164,28 @@ static SCREEN_UPDATE_IND16( bmcbowl )
{
for (x=0;x<280;x+=2)
{
- pixdat = state->m_vid2[0x8000+z];
+ pixdat = m_vid2[0x8000+z];
if(pixdat&0xff)
bitmap.pix16(y, x+1) = (pixdat&0xff);
if(pixdat>>8)
bitmap.pix16(y, x) = (pixdat>>8);
- pixdat = state->m_vid2[z];
+ pixdat = m_vid2[z];
if(pixdat&0xff)
bitmap.pix16(y, x+1) = (pixdat&0xff);
if(pixdat>>8)
bitmap.pix16(y, x) = (pixdat>>8);
- pixdat = state->m_vid1[0x8000+z];
+ pixdat = m_vid1[0x8000+z];
if(pixdat&0xff)
bitmap.pix16(y, x+1) = (pixdat&0xff);
if(pixdat>>8)
bitmap.pix16(y, x) = (pixdat>>8);
- pixdat = state->m_vid1[z];
+ pixdat = m_vid1[z];
if(pixdat&0xff)
bitmap.pix16(y, x+1) = (pixdat&0xff);
@@ -510,7 +510,7 @@ static MACHINE_CONFIG_START( bmcbowl, bmcbowl_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(35*8, 30*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 35*8-1, 0*8, 29*8-1)
- MCFG_SCREEN_UPDATE_STATIC(bmcbowl)
+ MCFG_SCREEN_UPDATE_DRIVER(bmcbowl_state, screen_update_bmcbowl)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/bmcpokr.c b/src/mame/drivers/bmcpokr.c
index b9dc2ccca9a..488b0e9d998 100644
--- a/src/mame/drivers/bmcpokr.c
+++ b/src/mame/drivers/bmcpokr.c
@@ -60,6 +60,7 @@ public:
required_device<cpu_device> m_maincpu;
required_shared_ptr<UINT16> m_videoram;
virtual void video_start();
+ UINT32 screen_update_bmcpokr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -198,9 +199,8 @@ static GFXDECODE_START( bmcpokr )
GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0, 16 )
GFXDECODE_END
-SCREEN_UPDATE_IND16( bmcpokr )
+UINT32 bmcpokr_state::screen_update_bmcpokr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bmcpokr_state *state = screen.machine().driver_data<bmcpokr_state>();
gfx_element *gfx = screen.machine().gfx[0];
int count = 0;
@@ -208,7 +208,7 @@ SCREEN_UPDATE_IND16( bmcpokr )
{
for (int x=0;x<64;x++)
{
- UINT16 data = state->m_videoram[count];
+ UINT16 data = m_videoram[count];
count++;
drawgfx_opaque(bitmap,cliprect,gfx,data,0,0,0,x*8,y*8);
@@ -235,7 +235,7 @@ static MACHINE_CONFIG_START( bmcpokr, bmcpokr_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_UPDATE_STATIC(bmcpokr)
+ MCFG_SCREEN_UPDATE_DRIVER(bmcpokr_state, screen_update_bmcpokr)
MCFG_GFXDECODE(bmcpokr)
diff --git a/src/mame/drivers/bnstars.c b/src/mame/drivers/bnstars.c
index e5203e771ac..ea660a852f4 100644
--- a/src/mame/drivers/bnstars.c
+++ b/src/mame/drivers/bnstars.c
@@ -155,6 +155,8 @@ public:
TILE_GET_INFO_MEMBER(get_ms32_roz1_tile_info);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_bnstars_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_bnstars_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -530,51 +532,49 @@ void bnstars_state::video_start()
-static SCREEN_UPDATE_IND16(bnstars_left)
+UINT32 bnstars_state::screen_update_bnstars_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bnstars_state *state = screen.machine().driver_data<bnstars_state>();
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(0, cliprect); /* bg color */
- state->m_ms32_bg_tilemap[0]->set_scrollx(0, state->m_ms32_bg0_scroll[0x00/4] + state->m_ms32_bg0_scroll[0x08/4] + 0x10 );
- state->m_ms32_bg_tilemap[0]->set_scrolly(0, state->m_ms32_bg0_scroll[0x0c/4] + state->m_ms32_bg0_scroll[0x14/4] );
- state->m_ms32_bg_tilemap[0]->draw(bitmap, cliprect, 0,1);
+ m_ms32_bg_tilemap[0]->set_scrollx(0, m_ms32_bg0_scroll[0x00/4] + m_ms32_bg0_scroll[0x08/4] + 0x10 );
+ m_ms32_bg_tilemap[0]->set_scrolly(0, m_ms32_bg0_scroll[0x0c/4] + m_ms32_bg0_scroll[0x14/4] );
+ m_ms32_bg_tilemap[0]->draw(bitmap, cliprect, 0,1);
draw_roz(screen.machine(),bitmap,cliprect,2,0);
- state->m_ms32_tx_tilemap[0]->set_scrollx(0, state->m_ms32_tx0_scroll[0x00/4] + state->m_ms32_tx0_scroll[0x08/4] + 0x18);
- state->m_ms32_tx_tilemap[0]->set_scrolly(0, state->m_ms32_tx0_scroll[0x0c/4] + state->m_ms32_tx0_scroll[0x14/4]);
- state->m_ms32_tx_tilemap[0]->draw(bitmap, cliprect, 0,4);
+ m_ms32_tx_tilemap[0]->set_scrollx(0, m_ms32_tx0_scroll[0x00/4] + m_ms32_tx0_scroll[0x08/4] + 0x18);
+ m_ms32_tx_tilemap[0]->set_scrolly(0, m_ms32_tx0_scroll[0x0c/4] + m_ms32_tx0_scroll[0x14/4]);
+ m_ms32_tx_tilemap[0]->draw(bitmap, cliprect, 0,4);
- draw_sprites(screen.machine(),bitmap,cliprect, state->m_ms32_spram, 0x20000, 0);
+ draw_sprites(screen.machine(),bitmap,cliprect, m_ms32_spram, 0x20000, 0);
return 0;
}
-static SCREEN_UPDATE_IND16(bnstars_right)
+UINT32 bnstars_state::screen_update_bnstars_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bnstars_state *state = screen.machine().driver_data<bnstars_state>();
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(0x8000+0, cliprect); /* bg color */
- state->m_ms32_bg_tilemap[1]->set_scrollx(0, state->m_ms32_bg1_scroll[0x00/4] + state->m_ms32_bg1_scroll[0x08/4] + 0x10 );
- state->m_ms32_bg_tilemap[1]->set_scrolly(0, state->m_ms32_bg1_scroll[0x0c/4] + state->m_ms32_bg1_scroll[0x14/4] );
- state->m_ms32_bg_tilemap[1]->draw(bitmap, cliprect, 0,1);
+ m_ms32_bg_tilemap[1]->set_scrollx(0, m_ms32_bg1_scroll[0x00/4] + m_ms32_bg1_scroll[0x08/4] + 0x10 );
+ m_ms32_bg_tilemap[1]->set_scrolly(0, m_ms32_bg1_scroll[0x0c/4] + m_ms32_bg1_scroll[0x14/4] );
+ m_ms32_bg_tilemap[1]->draw(bitmap, cliprect, 0,1);
draw_roz(screen.machine(),bitmap,cliprect,2,1);
- state->m_ms32_tx_tilemap[1]->set_scrollx(0, state->m_ms32_tx1_scroll[0x00/4] + state->m_ms32_tx1_scroll[0x08/4] + 0x18);
- state->m_ms32_tx_tilemap[1]->set_scrolly(0, state->m_ms32_tx1_scroll[0x0c/4] + state->m_ms32_tx1_scroll[0x14/4]);
- state->m_ms32_tx_tilemap[1]->draw(bitmap, cliprect, 0,4);
+ m_ms32_tx_tilemap[1]->set_scrollx(0, m_ms32_tx1_scroll[0x00/4] + m_ms32_tx1_scroll[0x08/4] + 0x18);
+ m_ms32_tx_tilemap[1]->set_scrolly(0, m_ms32_tx1_scroll[0x0c/4] + m_ms32_tx1_scroll[0x14/4]);
+ m_ms32_tx_tilemap[1]->draw(bitmap, cliprect, 0,4);
- draw_sprites(screen.machine(),bitmap,cliprect, state->m_ms32_spram+(0x20000/4), 0x20000, 4);
+ draw_sprites(screen.machine(),bitmap,cliprect, m_ms32_spram+(0x20000/4), 0x20000, 4);
return 0;
}
@@ -1396,14 +1396,14 @@ static MACHINE_CONFIG_START( bnstars, bnstars_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(bnstars_left)
+ MCFG_SCREEN_UPDATE_DRIVER(bnstars_state, screen_update_bnstars_left)
MCFG_SCREEN_ADD("rscreen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(bnstars_right)
+ MCFG_SCREEN_UPDATE_DRIVER(bnstars_state, screen_update_bnstars_right)
/* sound hardware */
diff --git a/src/mame/drivers/bogeyman.c b/src/mame/drivers/bogeyman.c
index 310154fc9b9..cf6845fee83 100644
--- a/src/mame/drivers/bogeyman.c
+++ b/src/mame/drivers/bogeyman.c
@@ -252,7 +252,7 @@ static MACHINE_CONFIG_START( bogeyman, bogeyman_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(bogeyman)
+ MCFG_SCREEN_UPDATE_DRIVER(bogeyman_state, screen_update_bogeyman)
MCFG_GFXDECODE(bogeyman)
MCFG_PALETTE_LENGTH(16+256)
diff --git a/src/mame/drivers/bombjack.c b/src/mame/drivers/bombjack.c
index 7d712f285a6..825326241a1 100644
--- a/src/mame/drivers/bombjack.c
+++ b/src/mame/drivers/bombjack.c
@@ -374,7 +374,7 @@ static MACHINE_CONFIG_START( bombjack, bombjack_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(bombjack)
+ MCFG_SCREEN_UPDATE_DRIVER(bombjack_state, screen_update_bombjack)
MCFG_GFXDECODE(bombjack)
MCFG_PALETTE_LENGTH(128)
diff --git a/src/mame/drivers/boogwing.c b/src/mame/drivers/boogwing.c
index b44b95605e5..4252b88568e 100644
--- a/src/mame/drivers/boogwing.c
+++ b/src/mame/drivers/boogwing.c
@@ -354,7 +354,7 @@ static MACHINE_CONFIG_START( boogwing, boogwing_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(boogwing)
+ MCFG_SCREEN_UPDATE_DRIVER(boogwing_state, screen_update_boogwing)
MCFG_PALETTE_LENGTH(2048)
MCFG_GFXDECODE(boogwing)
diff --git a/src/mame/drivers/bottom9.c b/src/mame/drivers/bottom9.c
index cd00541a535..84940e06bcd 100644
--- a/src/mame/drivers/bottom9.c
+++ b/src/mame/drivers/bottom9.c
@@ -368,7 +368,7 @@ static MACHINE_CONFIG_START( bottom9, bottom9_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(bottom9)
+ MCFG_SCREEN_UPDATE_DRIVER(bottom9_state, screen_update_bottom9)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/boxer.c b/src/mame/drivers/boxer.c
index 39d033416b7..4e4ac6a3b8a 100644
--- a/src/mame/drivers/boxer.c
+++ b/src/mame/drivers/boxer.c
@@ -49,6 +49,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void palette_init();
+ UINT32 screen_update_boxer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*************************************
@@ -170,9 +171,8 @@ static void draw_boxer( running_machine &machine, bitmap_ind16 &bitmap, const re
}
-static SCREEN_UPDATE_IND16( boxer )
+UINT32 boxer_state::screen_update_boxer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- boxer_state *state = screen.machine().driver_data<boxer_state>();
int i, j;
bitmap.fill(1, cliprect);
@@ -181,7 +181,7 @@ static SCREEN_UPDATE_IND16( boxer )
{
for (j = 0; j < 32; j++)
{
- UINT8 code = state->m_tile_ram[32 * i + j];
+ UINT8 code = m_tile_ram[32 * i + j];
drawgfx_transpen(bitmap, cliprect,
screen.machine().gfx[2],
@@ -455,7 +455,7 @@ static MACHINE_CONFIG_START( boxer, boxer_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(256, 262)
MCFG_SCREEN_VISIBLE_AREA(8, 247, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(boxer)
+ MCFG_SCREEN_UPDATE_DRIVER(boxer_state, screen_update_boxer)
MCFG_GFXDECODE(boxer)
MCFG_PALETTE_LENGTH(4)
diff --git a/src/mame/drivers/brkthru.c b/src/mame/drivers/brkthru.c
index 7bebce964b9..ba04cf61e2f 100644
--- a/src/mame/drivers/brkthru.c
+++ b/src/mame/drivers/brkthru.c
@@ -407,7 +407,7 @@ static MACHINE_CONFIG_START( brkthru, brkthru_state )
/* not sure; assuming to be the same as darwin */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 384, 8, 248, 272, 8, 248)
- MCFG_SCREEN_UPDATE_STATIC(brkthru)
+ MCFG_SCREEN_UPDATE_DRIVER(brkthru_state, screen_update_brkthru)
/* sound hardware */
@@ -454,7 +454,7 @@ static MACHINE_CONFIG_START( darwin, brkthru_state )
= 15.625kHz / (240 + 32)
= 57.444855Hz
tuned by Shingo SUZUKI(VSyncMAME Project) 2000/10/19 */
- MCFG_SCREEN_UPDATE_STATIC(brkthru)
+ MCFG_SCREEN_UPDATE_DRIVER(brkthru_state, screen_update_brkthru)
/* sound hardware */
diff --git a/src/mame/drivers/bsktball.c b/src/mame/drivers/bsktball.c
index 5aa482356e3..b40fecf1ea6 100644
--- a/src/mame/drivers/bsktball.c
+++ b/src/mame/drivers/bsktball.c
@@ -258,7 +258,7 @@ static MACHINE_CONFIG_START( bsktball, bsktball_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 28*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(bsktball)
+ MCFG_SCREEN_UPDATE_DRIVER(bsktball_state, screen_update_bsktball)
MCFG_GFXDECODE(bsktball)
MCFG_PALETTE_LENGTH(2*4 + 4*4*4*4)
diff --git a/src/mame/drivers/btime.c b/src/mame/drivers/btime.c
index 38f04ae4500..38d01f02fc3 100644
--- a/src/mame/drivers/btime.c
+++ b/src/mame/drivers/btime.c
@@ -1468,7 +1468,7 @@ static MACHINE_CONFIG_START( btime, btime_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(HCLK, 384, 8, 248, 272, 8, 248)
- MCFG_SCREEN_UPDATE_STATIC(btime)
+ MCFG_SCREEN_UPDATE_DRIVER(btime_state, screen_update_btime)
MCFG_MACHINE_START_OVERRIDE(btime_state,btime)
MCFG_MACHINE_RESET_OVERRIDE(btime_state,btime)
@@ -1514,7 +1514,7 @@ static MACHINE_CONFIG_DERIVED( cookrace, btime )
MCFG_PALETTE_LENGTH(16)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(cookrace)
+ MCFG_SCREEN_UPDATE_DRIVER(btime_state, screen_update_cookrace)
MACHINE_CONFIG_END
@@ -1532,7 +1532,7 @@ static MACHINE_CONFIG_DERIVED( lnc, btime )
MCFG_PALETTE_INIT_OVERRIDE(btime_state,lnc)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(lnc)
+ MCFG_SCREEN_UPDATE_DRIVER(btime_state, screen_update_lnc)
MACHINE_CONFIG_END
@@ -1542,7 +1542,7 @@ static MACHINE_CONFIG_DERIVED( wtennis, lnc )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(eggs)
+ MCFG_SCREEN_UPDATE_DRIVER(btime_state, screen_update_eggs)
MACHINE_CONFIG_END
@@ -1569,7 +1569,7 @@ static MACHINE_CONFIG_DERIVED( sdtennis, btime )
MCFG_VIDEO_START_OVERRIDE(btime_state,bnj)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(bnj)
+ MCFG_SCREEN_UPDATE_DRIVER(btime_state, screen_update_bnj)
MACHINE_CONFIG_END
@@ -1597,7 +1597,7 @@ static MACHINE_CONFIG_DERIVED( zoar, btime )
MCFG_PALETTE_LENGTH(64)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(zoar)
+ MCFG_SCREEN_UPDATE_DRIVER(btime_state, screen_update_zoar)
MCFG_SOUND_REPLACE("ay1", AY8910, HCLK1)
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.23)
@@ -1623,7 +1623,7 @@ static MACHINE_CONFIG_DERIVED( disco, btime )
MCFG_PALETTE_LENGTH(32)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(disco)
+ MCFG_SCREEN_UPDATE_DRIVER(btime_state, screen_update_disco)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/bublbobl.c b/src/mame/drivers/bublbobl.c
index 5642dd0addf..a8f057b0e57 100644
--- a/src/mame/drivers/bublbobl.c
+++ b/src/mame/drivers/bublbobl.c
@@ -781,7 +781,7 @@ static MACHINE_CONFIG_START( tokio, bublbobl_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MAIN_XTAL/4, 384, 0, 256, 264, 16, 240)
- MCFG_SCREEN_UPDATE_STATIC(bublbobl)
+ MCFG_SCREEN_UPDATE_DRIVER(bublbobl_state, screen_update_bublbobl)
MCFG_GFXDECODE(bublbobl)
MCFG_PALETTE_LENGTH(256)
@@ -862,7 +862,7 @@ static MACHINE_CONFIG_START( bublbobl, bublbobl_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MAIN_XTAL/4, 384, 0, 256, 264, 16, 240)
- MCFG_SCREEN_UPDATE_STATIC(bublbobl)
+ MCFG_SCREEN_UPDATE_DRIVER(bublbobl_state, screen_update_bublbobl)
MCFG_GFXDECODE(bublbobl)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/buggychl.c b/src/mame/drivers/buggychl.c
index 86543a230dd..3c26841180a 100644
--- a/src/mame/drivers/buggychl.c
+++ b/src/mame/drivers/buggychl.c
@@ -412,7 +412,7 @@ static MACHINE_CONFIG_START( buggychl, buggychl_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(buggychl)
+ MCFG_SCREEN_UPDATE_DRIVER(buggychl_state, screen_update_buggychl)
MCFG_GFXDECODE(buggychl)
MCFG_PALETTE_LENGTH(128+128)
diff --git a/src/mame/drivers/buster.c b/src/mame/drivers/buster.c
index c4e1d726470..9869e21e62d 100644
--- a/src/mame/drivers/buster.c
+++ b/src/mame/drivers/buster.c
@@ -23,6 +23,7 @@ public:
DECLARE_READ8_MEMBER(test_r);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_buster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -30,9 +31,8 @@ void buster_state::video_start()
{
}
-static SCREEN_UPDATE_IND16(buster)
+UINT32 buster_state::screen_update_buster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- buster_state *state = screen.machine().driver_data<buster_state>();
gfx_element *gfx = screen.machine().gfx[0];
int count = 0x0000;
@@ -43,7 +43,7 @@ static SCREEN_UPDATE_IND16(buster)
{
for (x=0;x<32;x++)
{
- int tile = (state->m_vram[count+1])|(state->m_vram[count]<<8);
+ int tile = (m_vram[count+1])|(m_vram[count]<<8);
//int colour = tile>>12;
drawgfx_opaque(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*4);
@@ -341,7 +341,7 @@ static MACHINE_CONFIG_START( buster, buster_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(buster)
+ MCFG_SCREEN_UPDATE_DRIVER(buster_state, screen_update_buster)
MCFG_MC6845_ADD("crtc", MC6845, XTAL_3_579545MHz/4, mc6845_intf) //unknown clock / type
MCFG_GFXDECODE(buster)
diff --git a/src/mame/drivers/bwing.c b/src/mame/drivers/bwing.c
index 2e4c2ee086c..d83c61eca49 100644
--- a/src/mame/drivers/bwing.c
+++ b/src/mame/drivers/bwing.c
@@ -387,7 +387,7 @@ static MACHINE_CONFIG_START( bwing, bwing_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(600)) // must be long enough for polling
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(bwing)
+ MCFG_SCREEN_UPDATE_DRIVER(bwing_state, screen_update_bwing)
MCFG_GFXDECODE(bwing)
MCFG_PALETTE_LENGTH(64)
diff --git a/src/mame/drivers/cabal.c b/src/mame/drivers/cabal.c
index 08373963777..e22b9b80c16 100644
--- a/src/mame/drivers/cabal.c
+++ b/src/mame/drivers/cabal.c
@@ -505,7 +505,7 @@ static MACHINE_CONFIG_START( cabal, cabal_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(cabal)
+ MCFG_SCREEN_UPDATE_DRIVER(cabal_state, screen_update_cabal)
MCFG_GFXDECODE(cabal)
MCFG_PALETTE_LENGTH(1024)
@@ -560,7 +560,7 @@ static MACHINE_CONFIG_START( cabalbl, cabal_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(cabal)
+ MCFG_SCREEN_UPDATE_DRIVER(cabal_state, screen_update_cabal)
MCFG_GFXDECODE(cabal)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/cabaret.c b/src/mame/drivers/cabaret.c
index fd04fcdfa08..d42bbc719b3 100644
--- a/src/mame/drivers/cabaret.c
+++ b/src/mame/drivers/cabaret.c
@@ -55,6 +55,7 @@ public:
TILE_GET_INFO_MEMBER(get_fg_tile_info);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_cabaret(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -112,14 +113,13 @@ void cabaret_state::video_start()
}
-static SCREEN_UPDATE_IND16(cabaret)
+UINT32 cabaret_state::screen_update_cabaret(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cabaret_state *state = screen.machine().driver_data<cabaret_state>();
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -345,7 +345,7 @@ static MACHINE_CONFIG_START( cabaret, cabaret_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(cabaret)
+ MCFG_SCREEN_UPDATE_DRIVER(cabaret_state, screen_update_cabaret)
MCFG_GFXDECODE(cabaret)
MCFG_PALETTE_LENGTH(0x800)
diff --git a/src/mame/drivers/calomega.c b/src/mame/drivers/calomega.c
index 30ff79fb27c..9dbd4b57dec 100644
--- a/src/mame/drivers/calomega.c
+++ b/src/mame/drivers/calomega.c
@@ -2749,7 +2749,7 @@ static MACHINE_CONFIG_START( sys903, calomega_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE((39+1)*8, (31+1)*8) /* Taken from MC6845 init, registers 00 & 04. Normally programmed with (value-1) */
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 31*8-1) /* Taken from MC6845 init, registers 01 & 06 */
- MCFG_SCREEN_UPDATE_STATIC(calomega)
+ MCFG_SCREEN_UPDATE_DRIVER(calomega_state, screen_update_calomega)
MCFG_GFXDECODE(calomega)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/calorie.c b/src/mame/drivers/calorie.c
index 3ca95f3695c..f7f0c91dcf3 100644
--- a/src/mame/drivers/calorie.c
+++ b/src/mame/drivers/calorie.c
@@ -112,6 +112,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_calorie(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -150,19 +151,18 @@ void calorie_state::video_start()
m_fg_tilemap->set_transparent_pen(0);
}
-static SCREEN_UPDATE_IND16( calorie )
+UINT32 calorie_state::screen_update_calorie(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- calorie_state *state = screen.machine().driver_data<calorie_state>();
int x;
- if (state->m_bg_bank & 0x10)
+ if (m_bg_bank & 0x10)
{
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
}
else
{
- state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
}
@@ -170,16 +170,16 @@ static SCREEN_UPDATE_IND16( calorie )
{
int xpos, ypos, tileno, color, flipx, flipy;
- tileno = state->m_sprites[x + 0];
- color = state->m_sprites[x + 1] & 0x0f;
- flipx = state->m_sprites[x + 1] & 0x40;
+ tileno = m_sprites[x + 0];
+ color = m_sprites[x + 1] & 0x0f;
+ flipx = m_sprites[x + 1] & 0x40;
flipy = 0;
- ypos = 0xff - state->m_sprites[x + 2];
- xpos = state->m_sprites[x + 3];
+ ypos = 0xff - m_sprites[x + 2];
+ xpos = m_sprites[x + 3];
- if (state->flip_screen())
+ if (flip_screen())
{
- if (state->m_sprites[x + 1] & 0x10)
+ if (m_sprites[x + 1] & 0x10)
ypos = 0xff - ypos + 32;
else
ypos = 0xff - ypos + 16;
@@ -189,7 +189,7 @@ static SCREEN_UPDATE_IND16( calorie )
flipy = !flipy;
}
- if (state->m_sprites[x + 1] & 0x10)
+ if (m_sprites[x + 1] & 0x10)
{
/* 32x32 sprites */
drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[3], tileno | 0x40, color, flipx, flipy, xpos, ypos - 31, 0);
@@ -456,7 +456,7 @@ static MACHINE_CONFIG_START( calorie, calorie_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(calorie)
+ MCFG_SCREEN_UPDATE_DRIVER(calorie_state, screen_update_calorie)
MCFG_GFXDECODE(calorie)
MCFG_PALETTE_LENGTH(0x100)
diff --git a/src/mame/drivers/canyon.c b/src/mame/drivers/canyon.c
index 09aae521a08..a026acac13f 100644
--- a/src/mame/drivers/canyon.c
+++ b/src/mame/drivers/canyon.c
@@ -248,7 +248,7 @@ static MACHINE_CONFIG_START( canyon, canyon_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(22 * 1000000 / 15750))
MCFG_SCREEN_SIZE(256, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(canyon)
+ MCFG_SCREEN_UPDATE_DRIVER(canyon_state, screen_update_canyon)
MCFG_GFXDECODE(canyon)
MCFG_PALETTE_LENGTH(4)
diff --git a/src/mame/drivers/capbowl.c b/src/mame/drivers/capbowl.c
index f8cc53d2da5..5e800efb2fc 100644
--- a/src/mame/drivers/capbowl.c
+++ b/src/mame/drivers/capbowl.c
@@ -376,7 +376,7 @@ static MACHINE_CONFIG_START( capbowl, capbowl_state )
MCFG_SCREEN_SIZE(360, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 359, 0, 244)
MCFG_SCREEN_REFRESH_RATE(57)
- MCFG_SCREEN_UPDATE_STATIC(capbowl)
+ MCFG_SCREEN_UPDATE_DRIVER(capbowl_state, screen_update_capbowl)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cardline.c b/src/mame/drivers/cardline.c
index 4cdb0bc2043..9175c94b99b 100644
--- a/src/mame/drivers/cardline.c
+++ b/src/mame/drivers/cardline.c
@@ -41,20 +41,20 @@ public:
DECLARE_READ8_MEMBER(unk_r);
DECLARE_WRITE8_MEMBER(lamps_w);
virtual void palette_init();
+ UINT32 screen_update_cardline(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
#define DRAW_TILE(machine, offset, transparency) drawgfx_transpen(bitmap, cliprect, (machine).gfx[0],\
- (state->m_videoram[index+offset] | (state->m_colorram[index+offset]<<8))&0x3fff,\
- (state->m_colorram[index+offset]&0x80)>>7,\
+ (m_videoram[index+offset] | (m_colorram[index+offset]<<8))&0x3fff,\
+ (m_colorram[index+offset]&0x80)>>7,\
0,0,\
x<<3, y<<3,\
transparency?transparency:(UINT32)-1);
-static SCREEN_UPDATE_IND16( cardline )
+UINT32 cardline_state::screen_update_cardline(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cardline_state *state = screen.machine().driver_data<cardline_state>();
int x,y;
bitmap.fill(0, cliprect);
for(y=0;y<32;y++)
@@ -62,13 +62,13 @@ static SCREEN_UPDATE_IND16( cardline )
for(x=0;x<64;x++)
{
int index=y*64+x;
- if(state->m_video&1)
+ if(m_video&1)
{
DRAW_TILE(screen.machine(),0,0);
DRAW_TILE(screen.machine(),0x800,1);
}
- if(state->m_video&2)
+ if(m_video&2)
{
DRAW_TILE(screen.machine(),0x1000,0);
DRAW_TILE(screen.machine(),0x1800,1);
@@ -226,7 +226,7 @@ static MACHINE_CONFIG_START( cardline, cardline_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 35*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(cardline)
+ MCFG_SCREEN_UPDATE_DRIVER(cardline_state, screen_update_cardline)
MCFG_GFXDECODE(cardline)
MCFG_PALETTE_LENGTH(512)
diff --git a/src/mame/drivers/carjmbre.c b/src/mame/drivers/carjmbre.c
index fed4d4e807a..385127fa447 100644
--- a/src/mame/drivers/carjmbre.c
+++ b/src/mame/drivers/carjmbre.c
@@ -217,7 +217,7 @@ static MACHINE_CONFIG_START( carjmbre, carjmbre_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(carjmbre)
+ MCFG_SCREEN_UPDATE_DRIVER(carjmbre_state, screen_update_carjmbre)
MCFG_GFXDECODE(carjmbre)
MCFG_PALETTE_LENGTH(64)
diff --git a/src/mame/drivers/carpolo.c b/src/mame/drivers/carpolo.c
index 708a434970e..ffe1421eba7 100644
--- a/src/mame/drivers/carpolo.c
+++ b/src/mame/drivers/carpolo.c
@@ -273,8 +273,8 @@ static MACHINE_CONFIG_START( carpolo, carpolo_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 239, 0, 255)
- MCFG_SCREEN_UPDATE_STATIC(carpolo)
- MCFG_SCREEN_VBLANK_STATIC(carpolo)
+ MCFG_SCREEN_UPDATE_DRIVER(carpolo_state, screen_update_carpolo)
+ MCFG_SCREEN_VBLANK_DRIVER(carpolo_state, screen_eof_carpolo)
MCFG_GFXDECODE(carpolo)
MCFG_PALETTE_LENGTH(12*2+2*16+4*2)
diff --git a/src/mame/drivers/carrera.c b/src/mame/drivers/carrera.c
index 7d61aac220a..9529d2ab3f6 100644
--- a/src/mame/drivers/carrera.c
+++ b/src/mame/drivers/carrera.c
@@ -62,6 +62,7 @@ public:
required_shared_ptr<UINT8> m_tileram;
DECLARE_READ8_MEMBER(unknown_r);
virtual void palette_init();
+ UINT32 screen_update_carrera(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -247,9 +248,8 @@ static GFXDECODE_START( carrera )
GFXDECODE_ENTRY( "gfx1", 0, tiles8x8_layout, 0, 1 )
GFXDECODE_END
-static SCREEN_UPDATE_IND16(carrera)
+UINT32 carrera_state::screen_update_carrera(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- carrera_state *state = screen.machine().driver_data<carrera_state>();
int x,y;
int count = 0;
@@ -258,7 +258,7 @@ static SCREEN_UPDATE_IND16(carrera)
{
for (x=0;x<64;x++)
{
- int tile = state->m_tileram[count&0x7ff] | state->m_tileram[(count&0x7ff)+0x800]<<8;
+ int tile = m_tileram[count&0x7ff] | m_tileram[(count&0x7ff)+0x800]<<8;
drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],tile,0,0,0,x*8,y*8);
count++;
@@ -338,7 +338,7 @@ static MACHINE_CONFIG_START( carrera, carrera_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(carrera)
+ MCFG_SCREEN_UPDATE_DRIVER(carrera_state, screen_update_carrera)
MCFG_MC6845_ADD("crtc", MC6845, MASTER_CLOCK / 16, mc6845_intf)
diff --git a/src/mame/drivers/caswin.c b/src/mame/drivers/caswin.c
index eaa9e087458..dd28e3ff9ca 100644
--- a/src/mame/drivers/caswin.c
+++ b/src/mame/drivers/caswin.c
@@ -68,6 +68,7 @@ public:
TILE_GET_INFO_MEMBER(get_sc0_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_vvillage(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -89,10 +90,9 @@ void caswin_state::video_start()
m_sc0_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(caswin_state::get_sc0_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
}
-static SCREEN_UPDATE_IND16(vvillage)
+UINT32 caswin_state::screen_update_vvillage(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- caswin_state *state = screen.machine().driver_data<caswin_state>();
- state->m_sc0_tilemap->draw(bitmap, cliprect, 0,0);
+ m_sc0_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
@@ -313,7 +313,7 @@ static MACHINE_CONFIG_START( vvillage, caswin_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(vvillage)
+ MCFG_SCREEN_UPDATE_DRIVER(caswin_state, screen_update_vvillage)
MCFG_NVRAM_ADD_0FILL("nvram")
diff --git a/src/mame/drivers/cave.c b/src/mame/drivers/cave.c
index 653dba9acbf..d6594783e29 100644
--- a/src/mame/drivers/cave.c
+++ b/src/mame/drivers/cave.c
@@ -1868,7 +1868,7 @@ static MACHINE_CONFIG_START( dfeveron, cave_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(cave)
+ MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
MCFG_GFXDECODE(dfeveron)
MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */
@@ -1910,7 +1910,7 @@ static MACHINE_CONFIG_START( ddonpach, cave_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(cave)
+ MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
MCFG_GFXDECODE(ddonpach)
MCFG_PALETTE_LENGTH(0x8000 + 0x40*16) // $400 extra entries for layers 1&2
@@ -1956,7 +1956,7 @@ static MACHINE_CONFIG_START( donpachi, cave_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(cave)
+ MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
MCFG_GFXDECODE(donpachi)
MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */
@@ -2002,7 +2002,7 @@ static MACHINE_CONFIG_START( esprade, cave_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(cave)
+ MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
MCFG_GFXDECODE(esprade)
MCFG_PALETTE_LENGTH(0x8000)
@@ -2042,7 +2042,7 @@ static MACHINE_CONFIG_START( gaia, cave_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
- MCFG_SCREEN_UPDATE_STATIC(cave)
+ MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
MCFG_GFXDECODE(esprade)
MCFG_PALETTE_LENGTH(0x8000)
@@ -2083,7 +2083,7 @@ static MACHINE_CONFIG_START( guwange, cave_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(cave)
+ MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
MCFG_GFXDECODE(esprade)
MCFG_PALETTE_LENGTH(0x8000)
@@ -2127,7 +2127,7 @@ static MACHINE_CONFIG_START( hotdogst, cave_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(384, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(cave)
+ MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
MCFG_GFXDECODE(hotdogst)
MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */
@@ -2179,7 +2179,7 @@ static MACHINE_CONFIG_START( korokoro, cave_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1-2, 0, 240-1-1)
- MCFG_SCREEN_UPDATE_STATIC(cave)
+ MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
MCFG_GFXDECODE(korokoro)
MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */
@@ -2233,7 +2233,7 @@ static MACHINE_CONFIG_START( mazinger, cave_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(384, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(cave)
+ MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
MCFG_GFXDECODE(mazinger)
MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */
@@ -2291,7 +2291,7 @@ static MACHINE_CONFIG_START( metmqstr, cave_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x200, 240)
MCFG_SCREEN_VISIBLE_AREA(0x7d, 0x7d + 0x180-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(cave)
+ MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
MCFG_GFXDECODE(donpachi)
MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */
@@ -2346,7 +2346,7 @@ static MACHINE_CONFIG_START( pacslot, cave_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x200, 240)
MCFG_SCREEN_VISIBLE_AREA(0x80, 0x80 + 0x140-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(cave)
+ MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
MCFG_GFXDECODE(tjumpman)
MCFG_PALETTE_LENGTH(0x8000)
@@ -2402,7 +2402,7 @@ static MACHINE_CONFIG_START( pwrinst2, cave_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x200, 240)
MCFG_SCREEN_VISIBLE_AREA(0x70, 0x70 + 0x140-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(cave)
+ MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
MCFG_GFXDECODE(pwrinst2)
MCFG_PALETTE_LENGTH(0x8000+0x2800)
@@ -2465,7 +2465,7 @@ static MACHINE_CONFIG_START( sailormn, cave_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320+1, 240)
MCFG_SCREEN_VISIBLE_AREA(0+1, 320+1-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(cave)
+ MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
MCFG_GFXDECODE(sailormn)
MCFG_PALETTE_LENGTH(0x8000) /* $8000 palette entries for consistency with the other games */
@@ -2519,7 +2519,7 @@ static MACHINE_CONFIG_START( tjumpman, cave_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x200, 240)
MCFG_SCREEN_VISIBLE_AREA(0x80, 0x80 + 0x140-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(cave)
+ MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
MCFG_GFXDECODE(tjumpman)
MCFG_PALETTE_LENGTH(0x8000)
@@ -2560,7 +2560,7 @@ static MACHINE_CONFIG_START( uopoko, cave_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(cave)
+ MCFG_SCREEN_UPDATE_DRIVER(cave_state, screen_update_cave)
MCFG_GFXDECODE(uopoko)
MCFG_PALETTE_LENGTH(0x8000)
diff --git a/src/mame/drivers/cb2001.c b/src/mame/drivers/cb2001.c
index c1595d7d35c..ed01f887aa3 100644
--- a/src/mame/drivers/cb2001.c
+++ b/src/mame/drivers/cb2001.c
@@ -71,6 +71,7 @@ public:
TILE_GET_INFO_MEMBER(get_cb2001_reel3_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_cb2001(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -331,18 +332,17 @@ e3 -> c6
*/
-static SCREEN_UPDATE_RGB32(cb2001)
+UINT32 cb2001_state::screen_update_cb2001(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- cb2001_state *state = screen.machine().driver_data<cb2001_state>();
int count,x,y;
bitmap.fill(get_black_pen(screen.machine()), cliprect);
count = 0x0000;
// render bg as 8x8 tilemaps
- if (state->m_other1 & 0x02)
+ if (m_other1 & 0x02)
{
- if (!(state->m_other1 & 0x04))
+ if (!(m_other1 & 0x04))
{
for (y=0;y<32;y++)
{
@@ -351,9 +351,9 @@ static SCREEN_UPDATE_RGB32(cb2001)
int tile;
int colour;
- tile = (state->m_vram_bg[count] & 0x0fff);
- colour = (state->m_vram_bg[count] & 0xf000)>>12;
- tile += state->m_videobank*0x2000;
+ tile = (m_vram_bg[count] & 0x0fff);
+ colour = (m_vram_bg[count] & 0xf000)>>12;
+ tile += m_videobank*0x2000;
drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],tile,colour,0,0,x*8,y*8);
@@ -370,26 +370,26 @@ static SCREEN_UPDATE_RGB32(cb2001)
{
UINT16 scroll;
- scroll = state->m_vram_bg[0xa00/2 + i/2];
+ scroll = m_vram_bg[0xa00/2 + i/2];
if (i&1)
scroll >>=8;
scroll &=0xff;
- state->m_reel2_tilemap->set_scrolly(i, scroll);
+ m_reel2_tilemap->set_scrolly(i, scroll);
- scroll = state->m_vram_bg[0x800/2 + i/2];
+ scroll = m_vram_bg[0x800/2 + i/2];
if (i&1)
scroll >>=8;
scroll &=0xff;
- state->m_reel1_tilemap->set_scrolly(i, scroll);
+ m_reel1_tilemap->set_scrolly(i, scroll);
- scroll = state->m_vram_bg[0xc00/2 + i/2];
+ scroll = m_vram_bg[0xc00/2 + i/2];
if (i&1)
scroll >>=8;
scroll &=0xff;
- state->m_reel3_tilemap->set_scrolly(i, scroll);
+ m_reel3_tilemap->set_scrolly(i, scroll);
}
@@ -398,9 +398,9 @@ static SCREEN_UPDATE_RGB32(cb2001)
const rectangle visible2(0*8, (14+48)*8-1, 10*8, (10+7)*8-1);
const rectangle visible3(0*8, (14+48)*8-1, 17*8, (17+7)*8-1);
- state->m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
- state->m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
- state->m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
+ m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
+ m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
+ m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
}
}
@@ -413,11 +413,11 @@ static SCREEN_UPDATE_RGB32(cb2001)
int tile;
int colour;
- tile = (state->m_vram_fg[count] & 0x0fff);
- colour = (state->m_vram_fg[count] & 0xf000)>>12;
- tile += state->m_videobank*0x2000;
+ tile = (m_vram_fg[count] & 0x0fff);
+ colour = (m_vram_fg[count] & 0xf000)>>12;
+ tile += m_videobank*0x2000;
- if (state->m_other2 & 0x4)
+ if (m_other2 & 0x4)
{
tile += 0x1000;
}
@@ -427,7 +427,7 @@ static SCREEN_UPDATE_RGB32(cb2001)
}
}
- popmessage("%02x %02x %02x %02x\n",state->m_videobank,state->m_videomode, state->m_other1, state->m_other2);
+ popmessage("%02x %02x %02x %02x\n",m_videobank,m_videomode, m_other1, m_other2);
return 0;
}
@@ -849,7 +849,7 @@ static MACHINE_CONFIG_START( cb2001, cb2001_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(cb2001)
+ MCFG_SCREEN_UPDATE_DRIVER(cb2001_state, screen_update_cb2001)
MCFG_PALETTE_LENGTH(0x100)
diff --git a/src/mame/drivers/cball.c b/src/mame/drivers/cball.c
index 078c8568403..ea32dfc1a7c 100644
--- a/src/mame/drivers/cball.c
+++ b/src/mame/drivers/cball.c
@@ -32,6 +32,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_cball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -56,20 +57,19 @@ void cball_state::video_start()
}
-static SCREEN_UPDATE_IND16( cball )
+UINT32 cball_state::screen_update_cball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cball_state *state = screen.machine().driver_data<cball_state>();
/* draw playfield */
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
/* draw sprite */
drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1],
- state->m_video_ram[0x399] >> 4,
+ m_video_ram[0x399] >> 4,
0,
0, 0,
- 240 - state->m_video_ram[0x390],
- 240 - state->m_video_ram[0x398], 0);
+ 240 - m_video_ram[0x390],
+ 240 - m_video_ram[0x398], 0);
return 0;
}
@@ -236,7 +236,7 @@ static MACHINE_CONFIG_START( cball, cball_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(256, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 223)
- MCFG_SCREEN_UPDATE_STATIC(cball)
+ MCFG_SCREEN_UPDATE_DRIVER(cball_state, screen_update_cball)
MCFG_GFXDECODE(cball)
MCFG_PALETTE_LENGTH(6)
diff --git a/src/mame/drivers/cbasebal.c b/src/mame/drivers/cbasebal.c
index af31eeb72fd..bd05b4a4f2d 100644
--- a/src/mame/drivers/cbasebal.c
+++ b/src/mame/drivers/cbasebal.c
@@ -290,7 +290,7 @@ static MACHINE_CONFIG_START( cbasebal, cbasebal_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(cbasebal)
+ MCFG_SCREEN_UPDATE_DRIVER(cbasebal_state, screen_update_cbasebal)
MCFG_GFXDECODE(cbasebal)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/cbuster.c b/src/mame/drivers/cbuster.c
index 2dec4f4f761..668a2c47985 100644
--- a/src/mame/drivers/cbuster.c
+++ b/src/mame/drivers/cbuster.c
@@ -338,7 +338,7 @@ static MACHINE_CONFIG_START( twocrude, cbuster_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(twocrude)
+ MCFG_SCREEN_UPDATE_DRIVER(cbuster_state, screen_update_twocrude)
MCFG_GFXDECODE(cbuster)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/ccastles.c b/src/mame/drivers/ccastles.c
index 7b8c684f52d..1ad668beb00 100644
--- a/src/mame/drivers/ccastles.c
+++ b/src/mame/drivers/ccastles.c
@@ -484,7 +484,7 @@ static MACHINE_CONFIG_START( ccastles, ccastles_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, 0, HTOTAL - 1, VTOTAL, 0, VTOTAL - 1) /* will be adjusted later */
- MCFG_SCREEN_UPDATE_STATIC(ccastles)
+ MCFG_SCREEN_UPDATE_DRIVER(ccastles_state, screen_update_ccastles)
/* sound hardware */
diff --git a/src/mame/drivers/cchance.c b/src/mame/drivers/cchance.c
index 3bb6d8eb133..76fecf8774e 100644
--- a/src/mame/drivers/cchance.c
+++ b/src/mame/drivers/cchance.c
@@ -236,8 +236,8 @@ static MACHINE_CONFIG_START( cchance, cchance_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tnzs)
- MCFG_SCREEN_VBLANK_STATIC(tnzs)
+ MCFG_SCREEN_UPDATE_DRIVER(cchance_state, screen_update_tnzs)
+ MCFG_SCREEN_VBLANK_DRIVER(cchance_state, screen_eof_tnzs)
MCFG_PALETTE_LENGTH(512)
MCFG_PALETTE_INIT_OVERRIDE(cchance_state,arknoid2)
diff --git a/src/mame/drivers/cclimber.c b/src/mame/drivers/cclimber.c
index e240c6d3c21..9e089fc2c6e 100644
--- a/src/mame/drivers/cclimber.c
+++ b/src/mame/drivers/cclimber.c
@@ -997,7 +997,7 @@ static MACHINE_CONFIG_START( root, cclimber_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(cclimber)
+ MCFG_SCREEN_UPDATE_DRIVER(cclimber_state, screen_update_cclimber)
MCFG_GFXDECODE(cclimber)
MCFG_PALETTE_LENGTH(16*4+8*4)
@@ -1047,7 +1047,7 @@ static MACHINE_CONFIG_DERIVED( yamato, root )
MCFG_PALETTE_LENGTH(16*4+8*4+256)
MCFG_PALETTE_INIT_OVERRIDE(cclimber_state,yamato)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(yamato)
+ MCFG_SCREEN_UPDATE_DRIVER(cclimber_state, screen_update_yamato)
/* audio hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1073,7 +1073,7 @@ static MACHINE_CONFIG_DERIVED( toprollr, cclimber )
MCFG_VIDEO_START_OVERRIDE(cclimber_state,toprollr)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(toprollr)
+ MCFG_SCREEN_UPDATE_DRIVER(cclimber_state, screen_update_toprollr)
MACHINE_CONFIG_END
@@ -1095,7 +1095,7 @@ static MACHINE_CONFIG_START( swimmer, cclimber_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(swimmer)
+ MCFG_SCREEN_UPDATE_DRIVER(cclimber_state, screen_update_swimmer)
MCFG_GFXDECODE(swimmer)
MCFG_PALETTE_LENGTH(32*8+4*8+1)
diff --git a/src/mame/drivers/cd32.c b/src/mame/drivers/cd32.c
index 11b63a22a9a..d126a1b546b 100644
--- a/src/mame/drivers/cd32.c
+++ b/src/mame/drivers/cd32.c
@@ -782,7 +782,7 @@ static MACHINE_CONFIG_START( cd32base, cd32_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512*2, 312)
MCFG_SCREEN_VISIBLE_AREA((129-8-8)*2, (449+8-1+8)*2, 44-8, 300+8-1)
- MCFG_SCREEN_UPDATE_STATIC(amiga_aga)
+ MCFG_SCREEN_UPDATE_DRIVER(amiga_state, screen_update_amiga_aga)
MCFG_VIDEO_START_OVERRIDE(cd32_state,amiga_aga)
diff --git a/src/mame/drivers/cdi.c b/src/mame/drivers/cdi.c
index 075b346b109..8d8afcd0f2b 100644
--- a/src/mame/drivers/cdi.c
+++ b/src/mame/drivers/cdi.c
@@ -331,14 +331,14 @@ static MACHINE_CONFIG_START( cdi, cdi_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(384, 302)
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 22, 302-1) //dynamic resolution,TODO
- MCFG_SCREEN_UPDATE_STATIC(cdimono1)
+ MCFG_SCREEN_UPDATE_DRIVER(cdi_state, screen_update_cdimono1)
MCFG_SCREEN_ADD("lcd", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(192, 22)
MCFG_SCREEN_VISIBLE_AREA(0, 192-1, 0, 22-1)
- MCFG_SCREEN_UPDATE_STATIC(cdimono1_lcd)
+ MCFG_SCREEN_UPDATE_DRIVER(cdi_state, screen_update_cdimono1_lcd)
MCFG_PALETTE_LENGTH(0x100)
diff --git a/src/mame/drivers/centiped.c b/src/mame/drivers/centiped.c
index 59cda529e77..53434ae257e 100644
--- a/src/mame/drivers/centiped.c
+++ b/src/mame/drivers/centiped.c
@@ -1766,7 +1766,7 @@ static MACHINE_CONFIG_START( centiped_base, centiped_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(centiped)
+ MCFG_SCREEN_UPDATE_DRIVER(centiped_state, screen_update_centiped)
MCFG_GFXDECODE(centiped)
MCFG_PALETTE_LENGTH(4+4*4*4*4)
@@ -1846,7 +1846,7 @@ static MACHINE_CONFIG_DERIVED( milliped, centiped )
MCFG_VIDEO_START_OVERRIDE(centiped_state,milliped)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(milliped)
+ MCFG_SCREEN_UPDATE_DRIVER(centiped_state, screen_update_milliped)
/* sound hardware */
MCFG_POKEY_REPLACE("pokey", 12096000/8)
@@ -1883,7 +1883,7 @@ static MACHINE_CONFIG_DERIVED( warlords, centiped )
MCFG_PALETTE_INIT_OVERRIDE(centiped_state,warlords)
MCFG_VIDEO_START_OVERRIDE(centiped_state,warlords)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(warlords)
+ MCFG_SCREEN_UPDATE_DRIVER(centiped_state, screen_update_warlords)
/* sound hardware */
MCFG_POKEY_REPLACE("pokey", 12096000/8)
@@ -1898,7 +1898,7 @@ static MACHINE_CONFIG_DERIVED( mazeinv, milliped )
MCFG_CPU_MODIFY("maincpu")
MCFG_CPU_PROGRAM_MAP(mazeinv_map)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(centiped)
+ MCFG_SCREEN_UPDATE_DRIVER(centiped_state, screen_update_centiped)
MACHINE_CONFIG_END
@@ -1916,7 +1916,7 @@ static MACHINE_CONFIG_START( bullsdrt, centiped_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(bullsdrt)
+ MCFG_SCREEN_UPDATE_DRIVER(centiped_state, screen_update_bullsdrt)
MCFG_GFXDECODE(centiped)
MCFG_PALETTE_LENGTH(4+4*4*4*4)
diff --git a/src/mame/drivers/chaknpop.c b/src/mame/drivers/chaknpop.c
index 36e20d33eb8..e789d71184b 100644
--- a/src/mame/drivers/chaknpop.c
+++ b/src/mame/drivers/chaknpop.c
@@ -384,7 +384,7 @@ static MACHINE_CONFIG_START( chaknpop, chaknpop_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(chaknpop)
+ MCFG_SCREEN_UPDATE_DRIVER(chaknpop_state, screen_update_chaknpop)
MCFG_GFXDECODE(chaknpop)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/cham24.c b/src/mame/drivers/cham24.c
index 25ea74e3063..5119f5989a4 100644
--- a/src/mame/drivers/cham24.c
+++ b/src/mame/drivers/cham24.c
@@ -88,6 +88,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_cham24(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -302,7 +303,7 @@ void cham24_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( cham24 )
+UINT32 cham24_state::screen_update_cham24(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
/* render the ppu */
ppu2c0x_device *ppu = screen.machine().device<ppu2c0x_device>("ppu");
@@ -354,7 +355,7 @@ static MACHINE_CONFIG_START( cham24, cham24_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(32*8, 262)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(cham24)
+ MCFG_SCREEN_UPDATE_DRIVER(cham24_state, screen_update_cham24)
MCFG_GFXDECODE(cham24)
MCFG_PALETTE_LENGTH(8*4*16)
diff --git a/src/mame/drivers/champbas.c b/src/mame/drivers/champbas.c
index 6b0b624692c..823606773d7 100644
--- a/src/mame/drivers/champbas.c
+++ b/src/mame/drivers/champbas.c
@@ -95,15 +95,14 @@ TODO:
*
*************************************/
-static SCREEN_VBLANK( champbas )
+void champbas_state::screen_eof_champbas(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- champbas_state *state = screen.machine().driver_data<champbas_state>();
- state->m_watchdog_count++;
+ m_watchdog_count++;
- if (state->m_watchdog_count == 0x10)
+ if (m_watchdog_count == 0x10)
screen.machine().schedule_soft_reset();
}
}
@@ -633,8 +632,8 @@ static MACHINE_CONFIG_START( talbot, champbas_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(champbas)
- MCFG_SCREEN_VBLANK_STATIC(champbas)
+ MCFG_SCREEN_UPDATE_DRIVER(champbas_state, screen_update_champbas)
+ MCFG_SCREEN_VBLANK_DRIVER(champbas_state, screen_eof_champbas)
MCFG_GFXDECODE(talbot)
MCFG_PALETTE_LENGTH(0x200)
@@ -668,8 +667,8 @@ static MACHINE_CONFIG_START( champbas, champbas_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(champbas)
- MCFG_SCREEN_VBLANK_STATIC(champbas)
+ MCFG_SCREEN_UPDATE_DRIVER(champbas_state, screen_update_champbas)
+ MCFG_SCREEN_VBLANK_DRIVER(champbas_state, screen_eof_champbas)
MCFG_GFXDECODE(champbas)
MCFG_PALETTE_LENGTH(0x200)
@@ -725,8 +724,8 @@ static MACHINE_CONFIG_START( exctsccr, champbas_state )
MCFG_SCREEN_REFRESH_RATE(60.54)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(exctsccr)
- MCFG_SCREEN_VBLANK_STATIC(champbas)
+ MCFG_SCREEN_UPDATE_DRIVER(champbas_state, screen_update_exctsccr)
+ MCFG_SCREEN_VBLANK_DRIVER(champbas_state, screen_eof_champbas)
MCFG_GFXDECODE(exctsccr)
MCFG_PALETTE_LENGTH(0x200)
@@ -776,8 +775,8 @@ static MACHINE_CONFIG_START( exctsccrb, champbas_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(exctsccr)
- MCFG_SCREEN_VBLANK_STATIC(champbas)
+ MCFG_SCREEN_UPDATE_DRIVER(champbas_state, screen_update_exctsccr)
+ MCFG_SCREEN_VBLANK_DRIVER(champbas_state, screen_eof_champbas)
MCFG_GFXDECODE(exctsccr)
MCFG_PALETTE_LENGTH(0x200)
diff --git a/src/mame/drivers/champbwl.c b/src/mame/drivers/champbwl.c
index 4b2770655a8..70caa7166ad 100644
--- a/src/mame/drivers/champbwl.c
+++ b/src/mame/drivers/champbwl.c
@@ -171,6 +171,10 @@ public:
DECLARE_MACHINE_START(champbwl);
DECLARE_MACHINE_RESET(champbwl);
DECLARE_MACHINE_START(doraemon);
+ UINT32 screen_update_champbwl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_doraemon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_champbwl(screen_device &screen, bool state);
+ void screen_eof_doraemon(screen_device &screen, bool state);
};
@@ -452,7 +456,7 @@ MACHINE_RESET_MEMBER(champbwl_state,champbwl)
}
-SCREEN_UPDATE_IND16( champbwl )
+UINT32 champbwl_state::screen_update_champbwl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(0x1f0, cliprect);
@@ -463,10 +467,10 @@ SCREEN_UPDATE_IND16( champbwl )
return 0;
}
-SCREEN_VBLANK( champbwl )
+void champbwl_state::screen_eof_champbwl(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
screen.machine().device<seta001_device>("spritegen")->tnzs_eof();
}
@@ -491,8 +495,8 @@ static MACHINE_CONFIG_START( champbwl, champbwl_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(champbwl)
- MCFG_SCREEN_VBLANK_STATIC(champbwl)
+ MCFG_SCREEN_UPDATE_DRIVER(champbwl_state, screen_update_champbwl)
+ MCFG_SCREEN_VBLANK_DRIVER(champbwl_state, screen_eof_champbwl)
MCFG_GFXDECODE(champbwl)
MCFG_PALETTE_LENGTH(512)
@@ -511,7 +515,7 @@ MACHINE_CONFIG_END
-static SCREEN_UPDATE_IND16( doraemon )
+UINT32 champbwl_state::screen_update_doraemon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(0x1f0, cliprect);
@@ -522,10 +526,10 @@ static SCREEN_UPDATE_IND16( doraemon )
return 0;
}
-static SCREEN_VBLANK( doraemon )
+void champbwl_state::screen_eof_doraemon(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
screen.machine().device<seta001_device>("spritegen")->setac_eof();
}
@@ -554,8 +558,8 @@ static MACHINE_CONFIG_START( doraemon, champbwl_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(doraemon)
- MCFG_SCREEN_VBLANK_STATIC(doraemon)
+ MCFG_SCREEN_UPDATE_DRIVER(champbwl_state, screen_update_doraemon)
+ MCFG_SCREEN_VBLANK_DRIVER(champbwl_state, screen_eof_doraemon)
MCFG_GFXDECODE(champbwl)
MCFG_PALETTE_LENGTH(512)
diff --git a/src/mame/drivers/chanbara.c b/src/mame/drivers/chanbara.c
index 0c262bd8cae..dca41c4ee16 100644
--- a/src/mame/drivers/chanbara.c
+++ b/src/mame/drivers/chanbara.c
@@ -92,6 +92,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_chanbara(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -206,14 +207,13 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-static SCREEN_UPDATE_IND16( chanbara )
+UINT32 chanbara_state::screen_update_chanbara(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- chanbara_state *state = screen.machine().driver_data<chanbara_state>();
- state->m_bg2_tilemap->set_scrolly(0, state->m_scroll | (state->m_scrollhi << 8));
- state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg2_tilemap->set_scrolly(0, m_scroll | (m_scrollhi << 8));
+ m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -415,7 +415,7 @@ static MACHINE_CONFIG_START( chanbara, chanbara_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(chanbara)
+ MCFG_SCREEN_UPDATE_DRIVER(chanbara_state, screen_update_chanbara)
MCFG_GFXDECODE(chanbara)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/chance32.c b/src/mame/drivers/chance32.c
index ac9a33a42a1..3d3ff5f86ff 100644
--- a/src/mame/drivers/chance32.c
+++ b/src/mame/drivers/chance32.c
@@ -62,6 +62,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_chance32(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -101,18 +102,17 @@ void chance32_state::video_start()
}
-SCREEN_UPDATE_IND16( chance32 )
+UINT32 chance32_state::screen_update_chance32(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- chance32_state *state = screen.machine().driver_data<chance32_state>();
/* TODO: wtf? */
- state->m_bg_tilemap->set_scrollx(0, 352);
- state->m_bg_tilemap->set_scrolly(0, 160);
- state->m_fg_tilemap->set_scrollx(0, 352);
- state->m_fg_tilemap->set_scrolly(0, 160);
+ m_bg_tilemap->set_scrollx(0, 352);
+ m_bg_tilemap->set_scrolly(0, 160);
+ m_fg_tilemap->set_scrollx(0, 352);
+ m_fg_tilemap->set_scrolly(0, 160);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -481,7 +481,7 @@ static MACHINE_CONFIG_START( chance32, chance32_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*16, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 35*16-1, 0, 29*8-1)
- MCFG_SCREEN_UPDATE_STATIC(chance32)
+ MCFG_SCREEN_UPDATE_DRIVER(chance32_state, screen_update_chance32)
MCFG_MC6845_ADD("crtc", H46505, 12000000/16, mc6845_intf) /* 52.786 Hz (similar to Major Poker) */
diff --git a/src/mame/drivers/changela.c b/src/mame/drivers/changela.c
index f16e0959163..8b1272a14e9 100644
--- a/src/mame/drivers/changela.c
+++ b/src/mame/drivers/changela.c
@@ -515,7 +515,7 @@ static MACHINE_CONFIG_START( changela, changela_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(32*8, 262) /* vert size is a guess */
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(changela)
+ MCFG_SCREEN_UPDATE_DRIVER(changela_state, screen_update_changela)
MCFG_PALETTE_LENGTH(0x40)
diff --git a/src/mame/drivers/cheekyms.c b/src/mame/drivers/cheekyms.c
index 01b990ff977..978869a62a0 100644
--- a/src/mame/drivers/cheekyms.c
+++ b/src/mame/drivers/cheekyms.c
@@ -139,7 +139,7 @@ static MACHINE_CONFIG_START( cheekyms, cheekyms_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(cheekyms)
+ MCFG_SCREEN_UPDATE_DRIVER(cheekyms_state, screen_update_cheekyms)
MCFG_GFXDECODE(cheekyms)
MCFG_PALETTE_LENGTH(0xc0)
diff --git a/src/mame/drivers/chinagat.c b/src/mame/drivers/chinagat.c
index 97827b39278..f1debbd27dd 100644
--- a/src/mame/drivers/chinagat.c
+++ b/src/mame/drivers/chinagat.c
@@ -587,7 +587,7 @@ static MACHINE_CONFIG_START( chinagat, ddragon_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240) /* based on ddragon driver */
- MCFG_SCREEN_UPDATE_STATIC(ddragon)
+ MCFG_SCREEN_UPDATE_DRIVER(ddragon_state, screen_update_ddragon)
MCFG_GFXDECODE(chinagat)
MCFG_PALETTE_LENGTH(384)
@@ -631,7 +631,7 @@ static MACHINE_CONFIG_START( saiyugoub1, ddragon_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240) /* based on ddragon driver */
- MCFG_SCREEN_UPDATE_STATIC(ddragon)
+ MCFG_SCREEN_UPDATE_DRIVER(ddragon_state, screen_update_ddragon)
MCFG_GFXDECODE(chinagat)
MCFG_PALETTE_LENGTH(384)
@@ -672,7 +672,7 @@ static MACHINE_CONFIG_START( saiyugoub2, ddragon_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240) /* based on ddragon driver */
- MCFG_SCREEN_UPDATE_STATIC(ddragon)
+ MCFG_SCREEN_UPDATE_DRIVER(ddragon_state, screen_update_ddragon)
MCFG_GFXDECODE(chinagat)
MCFG_PALETTE_LENGTH(384)
diff --git a/src/mame/drivers/chinsan.c b/src/mame/drivers/chinsan.c
index e09e745303e..d6c2f341609 100644
--- a/src/mame/drivers/chinsan.c
+++ b/src/mame/drivers/chinsan.c
@@ -75,6 +75,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_chinsan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -97,9 +98,8 @@ void chinsan_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( chinsan )
+UINT32 chinsan_state::screen_update_chinsan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- chinsan_state *state = screen.machine().driver_data<chinsan_state>();
int y, x, count;
count = 0;
for (y = 0; y < 32; y++)
@@ -107,8 +107,8 @@ static SCREEN_UPDATE_IND16( chinsan )
for (x = 0; x < 64; x++)
{
int tileno, colour;
- tileno = state->m_video[count] | (state->m_video[count + 0x800] << 8);
- colour = state->m_video[count + 0x1000] >> 3;
+ tileno = m_video[count] | (m_video[count + 0x800] << 8);
+ colour = m_video[count + 0x1000] >> 3;
drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],tileno,colour,0,0,x*8,y*8);
count++;
}
@@ -614,7 +614,7 @@ static MACHINE_CONFIG_START( chinsan, chinsan_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_VISIBLE_AREA(24, 512-24-1, 16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(chinsan)
+ MCFG_SCREEN_UPDATE_DRIVER(chinsan_state, screen_update_chinsan)
MCFG_GFXDECODE(chinsan)
MCFG_PALETTE_LENGTH(0x100)
diff --git a/src/mame/drivers/chqflag.c b/src/mame/drivers/chqflag.c
index 3e3fc35ae93..c55a9b0ad94 100644
--- a/src/mame/drivers/chqflag.c
+++ b/src/mame/drivers/chqflag.c
@@ -373,7 +373,7 @@ static MACHINE_CONFIG_START( chqflag, chqflag_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(12*8, (64-14)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(chqflag)
+ MCFG_SCREEN_UPDATE_DRIVER(chqflag_state, screen_update_chqflag)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/cinemat.c b/src/mame/drivers/cinemat.c
index c4664942d88..171c4dae2d1 100644
--- a/src/mame/drivers/cinemat.c
+++ b/src/mame/drivers/cinemat.c
@@ -999,7 +999,7 @@ static MACHINE_CONFIG_START( cinemat_nojmi_4k, cinemat_state )
MCFG_SCREEN_REFRESH_RATE(MASTER_CLOCK/4/16/16/16/16/2)
MCFG_SCREEN_SIZE(1024, 768)
MCFG_SCREEN_VISIBLE_AREA(0, 1023, 0, 767)
- MCFG_SCREEN_UPDATE_STATIC(cinemat)
+ MCFG_SCREEN_UPDATE_DRIVER(cinemat_state, screen_update_cinemat)
MACHINE_CONFIG_END
@@ -1045,7 +1045,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( spacewar, cinemat_nojmi_4k )
MCFG_FRAGMENT_ADD(spacewar_sound)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(spacewar)
+ MCFG_SCREEN_UPDATE_DRIVER(cinemat_state, screen_update_spacewar)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/circus.c b/src/mame/drivers/circus.c
index ba618ffd36f..59d4421813a 100644
--- a/src/mame/drivers/circus.c
+++ b/src/mame/drivers/circus.c
@@ -296,7 +296,7 @@ static MACHINE_CONFIG_START( circus, circus_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3500) /* frames per second, vblank duration (complete guess) */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(circus)
+ MCFG_SCREEN_UPDATE_DRIVER(circus_state, screen_update_circus)
MCFG_GFXDECODE(circus)
MCFG_PALETTE_LENGTH(2)
@@ -329,7 +329,7 @@ static MACHINE_CONFIG_START( robotbwl, circus_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3500) /* frames per second, vblank duration (complete guess) */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(robotbwl)
+ MCFG_SCREEN_UPDATE_DRIVER(circus_state, screen_update_robotbwl)
MCFG_GFXDECODE(robotbwl)
MCFG_PALETTE_LENGTH(2)
@@ -369,7 +369,7 @@ static MACHINE_CONFIG_START( crash, circus_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3500) /* frames per second, vblank duration (complete guess) */)
MCFG_SCREEN_SIZE(40*8, 40*8) //TODO
MCFG_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(crash)
+ MCFG_SCREEN_UPDATE_DRIVER(circus_state, screen_update_crash)
MCFG_GFXDECODE(circus)
MCFG_PALETTE_LENGTH(2)
@@ -401,7 +401,7 @@ static MACHINE_CONFIG_START( ripcord, circus_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3500) /* frames per second, vblank duration (complete guess) */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(ripcord)
+ MCFG_SCREEN_UPDATE_DRIVER(circus_state, screen_update_ripcord)
MCFG_GFXDECODE(circus)
MCFG_PALETTE_LENGTH(2)
diff --git a/src/mame/drivers/circusc.c b/src/mame/drivers/circusc.c
index 7d2b8481a79..fb3bcc6b2a6 100644
--- a/src/mame/drivers/circusc.c
+++ b/src/mame/drivers/circusc.c
@@ -371,7 +371,7 @@ static MACHINE_CONFIG_START( circusc, circusc_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(circusc)
+ MCFG_SCREEN_UPDATE_DRIVER(circusc_state, screen_update_circusc)
MCFG_GFXDECODE(circusc)
MCFG_PALETTE_LENGTH(16*16+16*16)
diff --git a/src/mame/drivers/cischeat.c b/src/mame/drivers/cischeat.c
index 7ccd9d669d0..a292d13667c 100644
--- a/src/mame/drivers/cischeat.c
+++ b/src/mame/drivers/cischeat.c
@@ -1584,7 +1584,7 @@ static MACHINE_CONFIG_START( bigrun, cischeat_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(bigrun)
+ MCFG_SCREEN_UPDATE_DRIVER(cischeat_state, screen_update_bigrun)
MCFG_GFXDECODE(bigrun)
MCFG_PALETTE_LENGTH(16*16 * 3 + 64*16 * 2 + 64*16) /* scroll 0,1,2; road 0,1; sprites */
@@ -1626,7 +1626,7 @@ static MACHINE_CONFIG_DERIVED( cischeat, bigrun )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-8-1)
- MCFG_SCREEN_UPDATE_STATIC(cischeat)
+ MCFG_SCREEN_UPDATE_DRIVER(cischeat_state, screen_update_cischeat)
MCFG_GFXDECODE(cischeat)
MCFG_PALETTE_LENGTH(32*16 * 3 + 64*16 * 2 + 128*16) /* scroll 0,1,2; road 0,1; sprites */
@@ -1659,7 +1659,7 @@ static MACHINE_CONFIG_DERIVED( f1gpstar, bigrun )
MCFG_VIDEO_START_OVERRIDE(cischeat_state,f1gpstar)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(f1gpstar)
+ MCFG_SCREEN_UPDATE_DRIVER(cischeat_state, screen_update_f1gpstar)
MACHINE_CONFIG_END
@@ -1717,7 +1717,7 @@ static MACHINE_CONFIG_START( scudhamm, cischeat_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500 * 3) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0 +16, 256-1 -16)
- MCFG_SCREEN_UPDATE_STATIC(scudhamm)
+ MCFG_SCREEN_UPDATE_DRIVER(cischeat_state, screen_update_scudhamm)
MCFG_GFXDECODE(scudhamm)
MCFG_PALETTE_LENGTH(16*16+16*16+128*16)
diff --git a/src/mame/drivers/citycon.c b/src/mame/drivers/citycon.c
index 348a7afb1ae..3a60804238d 100644
--- a/src/mame/drivers/citycon.c
+++ b/src/mame/drivers/citycon.c
@@ -219,7 +219,7 @@ static MACHINE_CONFIG_START( citycon, citycon_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(citycon)
+ MCFG_SCREEN_UPDATE_DRIVER(citycon_state, screen_update_citycon)
MCFG_GFXDECODE(citycon)
MCFG_PALETTE_LENGTH(640+1024) /* 640 real palette + 1024 virtual palette */
diff --git a/src/mame/drivers/clayshoo.c b/src/mame/drivers/clayshoo.c
index 3bf9e0b6a6d..f8b4145b2a3 100644
--- a/src/mame/drivers/clayshoo.c
+++ b/src/mame/drivers/clayshoo.c
@@ -40,6 +40,7 @@ public:
DECLARE_READ8_MEMBER(input_port_r);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_clayshoo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -185,17 +186,16 @@ void clayshoo_state::machine_start()
*
*************************************/
-static SCREEN_UPDATE_RGB32( clayshoo )
+UINT32 clayshoo_state::screen_update_clayshoo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- clayshoo_state *state = screen.machine().driver_data<clayshoo_state>();
offs_t offs;
- for (offs = 0; offs < state->m_videoram.bytes(); offs++)
+ for (offs = 0; offs < m_videoram.bytes(); offs++)
{
int i;
UINT8 x = offs << 3;
UINT8 y = ~(offs >> 5);
- UINT8 data = state->m_videoram[offs];
+ UINT8 data = m_videoram[offs];
for (i = 0; i < 8; i++)
{
@@ -340,7 +340,7 @@ static MACHINE_CONFIG_START( clayshoo, clayshoo_state )
MCFG_SCREEN_VISIBLE_AREA(0, 255, 64, 255)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_UPDATE_STATIC(clayshoo)
+ MCFG_SCREEN_UPDATE_DRIVER(clayshoo_state, screen_update_clayshoo)
MCFG_I8255A_ADD( "ppi8255_0", ppi8255_0_intf )
MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1_intf )
diff --git a/src/mame/drivers/cloak.c b/src/mame/drivers/cloak.c
index 1c19066ae3e..e10fde1444f 100644
--- a/src/mame/drivers/cloak.c
+++ b/src/mame/drivers/cloak.c
@@ -349,7 +349,7 @@ static MACHINE_CONFIG_START( cloak, cloak_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 3*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(cloak)
+ MCFG_SCREEN_UPDATE_DRIVER(cloak_state, screen_update_cloak)
MCFG_GFXDECODE(cloak)
MCFG_PALETTE_LENGTH(64)
diff --git a/src/mame/drivers/cloud9.c b/src/mame/drivers/cloud9.c
index 0166aa9aee9..49d42bc88da 100644
--- a/src/mame/drivers/cloud9.c
+++ b/src/mame/drivers/cloud9.c
@@ -436,7 +436,7 @@ static MACHINE_CONFIG_START( cloud9, cloud9_state )
MCFG_SCREEN_SIZE(HTOTAL, VTOTAL)
MCFG_SCREEN_VBLANK_TIME(0) /* VBLANK is handled manually */
MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 231)
- MCFG_SCREEN_UPDATE_STATIC(cloud9)
+ MCFG_SCREEN_UPDATE_DRIVER(cloud9_state, screen_update_cloud9)
/* sound hardware */
diff --git a/src/mame/drivers/clshroad.c b/src/mame/drivers/clshroad.c
index 8c920d2760d..27c05b6ed1d 100644
--- a/src/mame/drivers/clshroad.c
+++ b/src/mame/drivers/clshroad.c
@@ -244,7 +244,7 @@ static MACHINE_CONFIG_START( firebatl, clshroad_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x120, 0x100)
MCFG_SCREEN_VISIBLE_AREA(0, 0x120-1, 0x0+16, 0x100-16-1)
- MCFG_SCREEN_UPDATE_STATIC(clshroad)
+ MCFG_SCREEN_UPDATE_DRIVER(clshroad_state, screen_update_clshroad)
MCFG_GFXDECODE(firebatl)
MCFG_PALETTE_LENGTH(512+64*4)
@@ -277,7 +277,7 @@ static MACHINE_CONFIG_START( clshroad, clshroad_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x120, 0x100)
MCFG_SCREEN_VISIBLE_AREA(0, 0x120-1, 0x0+16, 0x100-16-1)
- MCFG_SCREEN_UPDATE_STATIC(clshroad)
+ MCFG_SCREEN_UPDATE_DRIVER(clshroad_state, screen_update_clshroad)
MCFG_GFXDECODE(clshroad)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/cmmb.c b/src/mame/drivers/cmmb.c
index bb0f20ee12d..5b7fa965897 100644
--- a/src/mame/drivers/cmmb.c
+++ b/src/mame/drivers/cmmb.c
@@ -66,6 +66,7 @@ public:
DECLARE_READ8_MEMBER(kludge_r);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_cmmb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -74,10 +75,9 @@ void cmmb_state::video_start()
}
-static SCREEN_UPDATE_IND16( cmmb )
+UINT32 cmmb_state::screen_update_cmmb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cmmb_state *state = screen.machine().driver_data<cmmb_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
gfx_element *gfx = screen.machine().gfx[0];
int count = 0x00000;
@@ -325,7 +325,7 @@ static MACHINE_CONFIG_START( cmmb, cmmb_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // unknown
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(cmmb)
+ MCFG_SCREEN_UPDATE_DRIVER(cmmb_state, screen_update_cmmb)
MCFG_GFXDECODE(cmmb)
MCFG_PALETTE_LENGTH(512)
diff --git a/src/mame/drivers/cninja.c b/src/mame/drivers/cninja.c
index 08093d90912..0190aa2a8a8 100644
--- a/src/mame/drivers/cninja.c
+++ b/src/mame/drivers/cninja.c
@@ -919,7 +919,7 @@ static MACHINE_CONFIG_START( cninja, cninja_state )
MCFG_SCREEN_REFRESH_RATE(58)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(cninja)
+ MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_cninja)
MCFG_GFXDECODE(cninja)
MCFG_PALETTE_LENGTH(2048)
@@ -971,7 +971,7 @@ static MACHINE_CONFIG_START( stoneage, cninja_state )
MCFG_SCREEN_REFRESH_RATE(58)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(cninja)
+ MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_cninja)
MCFG_GFXDECODE(cninja)
MCFG_PALETTE_LENGTH(2048)
@@ -1023,7 +1023,7 @@ static MACHINE_CONFIG_START( cninjabl, cninja_state )
MCFG_SCREEN_REFRESH_RATE(58)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(cninjabl)
+ MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_cninjabl)
MCFG_GFXDECODE(cninjabl)
MCFG_PALETTE_LENGTH(2048)
@@ -1066,7 +1066,7 @@ static MACHINE_CONFIG_START( edrandy, cninja_state )
MCFG_SCREEN_REFRESH_RATE(58)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(edrandy)
+ MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_edrandy)
MCFG_GFXDECODE(cninja)
MCFG_PALETTE_LENGTH(2048)
@@ -1118,7 +1118,7 @@ static MACHINE_CONFIG_START( robocop2, cninja_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(robocop2)
+ MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_robocop2)
MCFG_GFXDECODE(robocop2)
MCFG_PALETTE_LENGTH(2048)
@@ -1171,7 +1171,7 @@ static MACHINE_CONFIG_START( mutantf, cninja_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(mutantf)
+ MCFG_SCREEN_UPDATE_DRIVER(cninja_state, screen_update_mutantf)
MCFG_VIDEO_START_OVERRIDE(cninja_state,mutantf)
diff --git a/src/mame/drivers/cntsteer.c b/src/mame/drivers/cntsteer.c
index a192b424b3e..aab0610ed8a 100644
--- a/src/mame/drivers/cntsteer.c
+++ b/src/mame/drivers/cntsteer.c
@@ -90,6 +90,8 @@ public:
DECLARE_MACHINE_RESET(zerotrgt);
DECLARE_VIDEO_START(zerotrgt);
DECLARE_PALETTE_INIT(zerotrgt);
+ UINT32 screen_update_cntsteer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_zerotrgt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -278,19 +280,18 @@ static void cntsteer_draw_sprites( running_machine &machine, bitmap_ind16 &bitma
}
}
-static SCREEN_UPDATE_IND16( zerotrgt )
+UINT32 cntsteer_state::screen_update_zerotrgt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cntsteer_state *state = screen.machine().driver_data<cntsteer_state>();
- if (state->m_disable_roz)
- bitmap.fill(screen.machine().pens[8 * state->m_bg_color_bank], cliprect);
+ if (m_disable_roz)
+ bitmap.fill(screen.machine().pens[8 * m_bg_color_bank], cliprect);
else
{
int p1, p2, p3, p4;
int rot_val, x, y;
- rot_val = state->m_rotation_sign ? (-state->m_rotation_x) : (state->m_rotation_x);
+ rot_val = m_rotation_sign ? (-m_rotation_x) : (m_rotation_x);
-// popmessage("%d %02x %02x", rot_val, state->m_rotation_sign, state->m_rotation_x);
+// popmessage("%d %02x %02x", rot_val, m_rotation_sign, m_rotation_x);
if (rot_val > 90) { rot_val = 90; }
if (rot_val < -90) { rot_val = -90; }
@@ -312,10 +313,10 @@ static SCREEN_UPDATE_IND16( zerotrgt )
p3 = 65536 * 1 * sin(2 * M_PI * (rot_val) / 1024);
p4 = -65536 * 1 * cos(2 * M_PI * (rot_val) / 1024);
- x = -256 - (state->m_scrollx | state->m_scrollx_hi);
- y = 256 + (state->m_scrolly | state->m_scrolly_hi);
+ x = -256 - (m_scrollx | m_scrollx_hi);
+ y = 256 + (m_scrolly | m_scrolly_hi);
- state->m_bg_tilemap->draw_roz(bitmap, cliprect,
+ m_bg_tilemap->draw_roz(bitmap, cliprect,
(x << 16), (y << 16),
p1, p2,
p3, p4,
@@ -324,25 +325,24 @@ static SCREEN_UPDATE_IND16( zerotrgt )
}
zerotrgt_draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-static SCREEN_UPDATE_IND16( cntsteer )
+UINT32 cntsteer_state::screen_update_cntsteer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cntsteer_state *state = screen.machine().driver_data<cntsteer_state>();
- if (state->m_disable_roz)
- bitmap.fill(screen.machine().pens[8 * state->m_bg_color_bank], cliprect);
+ if (m_disable_roz)
+ bitmap.fill(screen.machine().pens[8 * m_bg_color_bank], cliprect);
else
{
int p1, p2, p3, p4;
int rot_val, x, y;
- rot_val = (state->m_rotation_x) | ((state->m_rotation_sign & 3) << 8);
- rot_val = (state->m_rotation_sign & 4) ? (rot_val) : (-rot_val);
-// popmessage("%d %02x %02x", rot_val, state->m_rotation_sign, state->m_rotation_x);
+ rot_val = (m_rotation_x) | ((m_rotation_sign & 3) << 8);
+ rot_val = (m_rotation_sign & 4) ? (rot_val) : (-rot_val);
+// popmessage("%d %02x %02x", rot_val, m_rotation_sign, m_rotation_x);
/*
(u, v) = (a + cx + dy, b - dx + cy) when (x, y)=screen and (u, v) = tilemap
@@ -361,10 +361,10 @@ static SCREEN_UPDATE_IND16( cntsteer )
p3 = 65536 * 1 * sin(2 * M_PI * (rot_val) / 1024);
p4 = -65536 * 1 * cos(2 * M_PI * (rot_val) / 1024);
- x = 256 + (state->m_scrollx | state->m_scrollx_hi);
- y = 256 - (state->m_scrolly | state->m_scrolly_hi);
+ x = 256 + (m_scrollx | m_scrollx_hi);
+ y = 256 - (m_scrolly | m_scrolly_hi);
- state->m_bg_tilemap->draw_roz(bitmap, cliprect,
+ m_bg_tilemap->draw_roz(bitmap, cliprect,
(x << 16), (y << 16),
p1, p2,
p3, p4,
@@ -373,7 +373,7 @@ static SCREEN_UPDATE_IND16( cntsteer )
}
cntsteer_draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -902,7 +902,7 @@ static MACHINE_CONFIG_START( cntsteer, cntsteer_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(cntsteer)
+ MCFG_SCREEN_UPDATE_DRIVER(cntsteer_state, screen_update_cntsteer)
MCFG_QUANTUM_TIME(attotime::from_hz(6000))
@@ -951,7 +951,7 @@ static MACHINE_CONFIG_START( zerotrgt, cntsteer_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(zerotrgt)
+ MCFG_SCREEN_UPDATE_DRIVER(cntsteer_state, screen_update_zerotrgt)
MCFG_GFXDECODE(zerotrgt)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/cobra.c b/src/mame/drivers/cobra.c
index 35a5d884020..e5a21e411f1 100644
--- a/src/mame/drivers/cobra.c
+++ b/src/mame/drivers/cobra.c
@@ -720,6 +720,7 @@ public:
DECLARE_DRIVER_INIT(cobra);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_cobra(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
void cobra_renderer::render_color_scan(INT32 scanline, const extent_t &extent, const cobra_polydata &extradata, int threadid)
@@ -994,11 +995,10 @@ void cobra_state::video_start()
m_renderer->gfx_init(machine());
}
-SCREEN_UPDATE_RGB32( cobra )
+UINT32 cobra_state::screen_update_cobra(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- cobra_state *cobra = screen.machine().driver_data<cobra_state>();
- if (cobra->m_has_psac)
+ if (m_has_psac)
{
device_t *k001604 = screen.machine().device("k001604");
@@ -1006,7 +1006,7 @@ SCREEN_UPDATE_RGB32( cobra )
k001604_draw_front_layer(k001604, bitmap, cliprect);
}
- cobra->m_renderer->display(&bitmap, cliprect);
+ m_renderer->display(&bitmap, cliprect);
return 0;
}
@@ -3260,7 +3260,7 @@ static MACHINE_CONFIG_START( cobra, cobra_state )
MCFG_SCREEN_SIZE(512, 400)
MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 399)
MCFG_PALETTE_LENGTH(65536)
- MCFG_SCREEN_UPDATE_STATIC(cobra)
+ MCFG_SCREEN_UPDATE_DRIVER(cobra_state, screen_update_cobra)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/coinmstr.c b/src/mame/drivers/coinmstr.c
index e07d5a7b4df..037676af032 100644
--- a/src/mame/drivers/coinmstr.c
+++ b/src/mame/drivers/coinmstr.c
@@ -55,6 +55,7 @@ public:
DECLARE_DRIVER_INIT(coinmstr);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
+ UINT32 screen_update_coinmstr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -920,10 +921,9 @@ void coinmstr_state::video_start()
m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(coinmstr_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 46, 32);
}
-static SCREEN_UPDATE_IND16( coinmstr )
+UINT32 coinmstr_state::screen_update_coinmstr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- coinmstr_state *state = screen.machine().driver_data<coinmstr_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -1022,7 +1022,7 @@ static MACHINE_CONFIG_START( coinmstr, coinmstr_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 46*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(coinmstr)
+ MCFG_SCREEN_UPDATE_DRIVER(coinmstr_state, screen_update_coinmstr)
MCFG_GFXDECODE(coinmstr)
MCFG_PALETTE_LENGTH(46*32*4)
diff --git a/src/mame/drivers/coinmvga.c b/src/mame/drivers/coinmvga.c
index 8185c9f09fb..9b7894aedcc 100644
--- a/src/mame/drivers/coinmvga.c
+++ b/src/mame/drivers/coinmvga.c
@@ -236,6 +236,7 @@ public:
DECLARE_DRIVER_INIT(cmrltv75);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_coinmvga(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -249,9 +250,8 @@ void coinmvga_state::video_start()
}
-static SCREEN_UPDATE_IND16( coinmvga )
+UINT32 coinmvga_state::screen_update_coinmvga(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- coinmvga_state *state = screen.machine().driver_data<coinmvga_state>();
gfx_element *gfx = screen.machine().gfx[0];
int count = 0x04000/2;
@@ -262,7 +262,7 @@ static SCREEN_UPDATE_IND16( coinmvga )
{
for (x=0;x<128;x++)
{
- int tile = state->m_vram[count];
+ int tile = m_vram[count];
//int colour = tile>>12;
drawgfx_opaque(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*8);
@@ -683,7 +683,7 @@ static MACHINE_CONFIG_START( coinmvga, coinmvga_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(640,480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(coinmvga)
+ MCFG_SCREEN_UPDATE_DRIVER(coinmvga_state, screen_update_coinmvga)
MCFG_GFXDECODE(coinmvga)
diff --git a/src/mame/drivers/combatsc.c b/src/mame/drivers/combatsc.c
index 8b1012fd21f..f29aff33055 100644
--- a/src/mame/drivers/combatsc.c
+++ b/src/mame/drivers/combatsc.c
@@ -750,7 +750,7 @@ static MACHINE_CONFIG_START( combatsc, combatsc_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(combatsc)
+ MCFG_SCREEN_UPDATE_DRIVER(combatsc_state, screen_update_combatsc)
MCFG_GFXDECODE(combatsc)
MCFG_PALETTE_LENGTH(8*16*16)
@@ -801,7 +801,7 @@ static MACHINE_CONFIG_START( combatscb, combatsc_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(combatscb)
+ MCFG_SCREEN_UPDATE_DRIVER(combatsc_state, screen_update_combatscb)
MCFG_GFXDECODE(combatscb)
MCFG_PALETTE_LENGTH(8*16*16)
diff --git a/src/mame/drivers/commando.c b/src/mame/drivers/commando.c
index 1205396936d..d8af16cd562 100644
--- a/src/mame/drivers/commando.c
+++ b/src/mame/drivers/commando.c
@@ -260,7 +260,7 @@ static MACHINE_CONFIG_START( commando, commando_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(commando)
+ MCFG_SCREEN_UPDATE_DRIVER(commando_state, screen_update_commando)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(commando)
diff --git a/src/mame/drivers/compgolf.c b/src/mame/drivers/compgolf.c
index 098892bbfc4..2ce772f68b1 100644
--- a/src/mame/drivers/compgolf.c
+++ b/src/mame/drivers/compgolf.c
@@ -257,7 +257,7 @@ static MACHINE_CONFIG_START( compgolf, compgolf_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(1*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(compgolf)
+ MCFG_SCREEN_UPDATE_DRIVER(compgolf_state, screen_update_compgolf)
MCFG_PALETTE_LENGTH(0x100)
MCFG_GFXDECODE(compgolf)
diff --git a/src/mame/drivers/contra.c b/src/mame/drivers/contra.c
index 7d9d77ad2a7..8d98e8ac490 100644
--- a/src/mame/drivers/contra.c
+++ b/src/mame/drivers/contra.c
@@ -206,7 +206,7 @@ static MACHINE_CONFIG_START( contra, contra_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(37*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 35*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(contra)
+ MCFG_SCREEN_UPDATE_DRIVER(contra_state, screen_update_contra)
MCFG_GFXDECODE(contra)
MCFG_PALETTE_LENGTH(2*8*16*16)
diff --git a/src/mame/drivers/coolridr.c b/src/mame/drivers/coolridr.c
index 62c8900adfc..dd2e175c5a2 100644
--- a/src/mame/drivers/coolridr.c
+++ b/src/mame/drivers/coolridr.c
@@ -319,6 +319,7 @@ public:
DECLARE_DRIVER_INIT(coolridr);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_coolridr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -331,9 +332,8 @@ void coolridr_state::video_start()
m_test_offs = 0x2000;
}
-static SCREEN_UPDATE_RGB32(coolridr)
+UINT32 coolridr_state::screen_update_coolridr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- coolridr_state *state = screen.machine().driver_data<coolridr_state>();
/* planes seems to basically be at 0x8000 and 0x28000... */
gfx_element *gfx = screen.machine().gfx[2];
UINT32 count;
@@ -341,35 +341,35 @@ static SCREEN_UPDATE_RGB32(coolridr)
if(screen.machine().input().code_pressed(KEYCODE_Z))
- state->m_test_offs+=4;
+ m_test_offs+=4;
if(screen.machine().input().code_pressed(KEYCODE_X))
- state->m_test_offs-=4;
+ m_test_offs-=4;
if(screen.machine().input().code_pressed(KEYCODE_C))
- state->m_test_offs+=0x40;
+ m_test_offs+=0x40;
if(screen.machine().input().code_pressed(KEYCODE_V))
- state->m_test_offs-=0x40;
+ m_test_offs-=0x40;
if(screen.machine().input().code_pressed(KEYCODE_B))
- state->m_test_offs+=0x400;
+ m_test_offs+=0x400;
if(screen.machine().input().code_pressed(KEYCODE_N))
- state->m_test_offs-=0x400;
+ m_test_offs-=0x400;
if(screen.machine().input().code_pressed_once(KEYCODE_A))
- state->m_color++;
+ m_color++;
if(screen.machine().input().code_pressed_once(KEYCODE_S))
- state->m_color--;
+ m_color--;
- if(state->m_test_offs > 0x100000*4)
- state->m_test_offs = 0;
+ if(m_test_offs > 0x100000*4)
+ m_test_offs = 0;
- count = state->m_test_offs/4;
+ count = m_test_offs/4;
- popmessage("%08x %04x",state->m_test_offs,state->m_color);
+ popmessage("%08x %04x",m_test_offs,m_color);
for (y=0;y<64;y++)
{
@@ -377,18 +377,18 @@ static SCREEN_UPDATE_RGB32(coolridr)
{
int tile;
- tile = (state->m_h1_vram[count] & 0x0fff0000) >> 16;
- drawgfx_opaque(bitmap,cliprect,gfx,tile,state->m_color,0,0,(x+0)*16,y*16);
+ tile = (m_h1_vram[count] & 0x0fff0000) >> 16;
+ drawgfx_opaque(bitmap,cliprect,gfx,tile,m_color,0,0,(x+0)*16,y*16);
- tile = (state->m_h1_vram[count] & 0x00000fff) >> 0;
- drawgfx_opaque(bitmap,cliprect,gfx,tile,state->m_color,0,0,(x+1)*16,y*16);
+ tile = (m_h1_vram[count] & 0x00000fff) >> 0;
+ drawgfx_opaque(bitmap,cliprect,gfx,tile,m_color,0,0,(x+1)*16,y*16);
count++;
}
}
- copybitmap_trans(bitmap, state->m_temp_bitmap_sprites, 0, 0, 0, 0, cliprect, 0);
- state->m_temp_bitmap_sprites.fill(0, cliprect);
+ copybitmap_trans(bitmap, m_temp_bitmap_sprites, 0, 0, 0, 0, cliprect, 0);
+ m_temp_bitmap_sprites.fill(0, cliprect);
return 0;
@@ -1181,7 +1181,7 @@ static MACHINE_CONFIG_START( coolridr, coolridr_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
MCFG_SCREEN_SIZE(128*8+22, 64*8+44)
MCFG_SCREEN_VISIBLE_AREA(0*8, 128*8-1, 0*8, 64*8-1) //TODO: these are just two different screens
- MCFG_SCREEN_UPDATE_STATIC(coolridr)
+ MCFG_SCREEN_UPDATE_DRIVER(coolridr_state, screen_update_coolridr)
MCFG_PALETTE_LENGTH(0x10000)
diff --git a/src/mame/drivers/cop01.c b/src/mame/drivers/cop01.c
index f070434e0d4..c2866446810 100644
--- a/src/mame/drivers/cop01.c
+++ b/src/mame/drivers/cop01.c
@@ -467,7 +467,7 @@ static MACHINE_CONFIG_START( cop01, cop01_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(cop01)
+ MCFG_SCREEN_UPDATE_DRIVER(cop01_state, screen_update_cop01)
MCFG_GFXDECODE(cop01)
MCFG_PALETTE_LENGTH(16+8*16+16*16)
@@ -505,7 +505,7 @@ static MACHINE_CONFIG_START( mightguy, cop01_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(cop01)
+ MCFG_SCREEN_UPDATE_DRIVER(cop01_state, screen_update_cop01)
MCFG_GFXDECODE(cop01)
MCFG_PALETTE_LENGTH(16+8*16+16*16)
diff --git a/src/mame/drivers/copsnrob.c b/src/mame/drivers/copsnrob.c
index e487ee47451..dfd66ffa2a1 100644
--- a/src/mame/drivers/copsnrob.c
+++ b/src/mame/drivers/copsnrob.c
@@ -276,7 +276,7 @@ static MACHINE_CONFIG_START( copsnrob, copsnrob_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 26*8-1)
- MCFG_SCREEN_UPDATE_STATIC(copsnrob)
+ MCFG_SCREEN_UPDATE_DRIVER(copsnrob_state, screen_update_copsnrob)
MCFG_GFXDECODE(copsnrob)
MCFG_PALETTE_LENGTH(2)
diff --git a/src/mame/drivers/corona.c b/src/mame/drivers/corona.c
index a9244202bcb..4ba6d045b85 100644
--- a/src/mame/drivers/corona.c
+++ b/src/mame/drivers/corona.c
@@ -348,6 +348,8 @@ public:
DECLARE_WRITE8_MEMBER(ay_port_b_out);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_winner(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_luckyrlt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -459,26 +461,24 @@ void corona_state::video_start()
m_videobuf = auto_alloc_array_clear(machine(), UINT8, VIDEOBUF_SIZE);
}
-static SCREEN_UPDATE_IND16(winner)
+UINT32 corona_state::screen_update_winner(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- corona_state *state = screen.machine().driver_data<corona_state>();
int x, y;
for (y = 0; y < 256; y++)
for (x = 0; x < 256; x++)
- bitmap.pix16(y, x) = state->m_videobuf[y * 512 + x];
+ bitmap.pix16(y, x) = m_videobuf[y * 512 + x];
return 0;
}
-static SCREEN_UPDATE_IND16(luckyrlt)
+UINT32 corona_state::screen_update_luckyrlt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- corona_state *state = screen.machine().driver_data<corona_state>();
int x, y;
for (y = 0; y < 256; y++)
for (x = 0; x < 256; x++)
- bitmap.pix16(255 - y, x) = state->m_videobuf[y * 512 + x];
+ bitmap.pix16(255 - y, x) = m_videobuf[y * 512 + x];
return 0;
}
@@ -1374,7 +1374,7 @@ static MACHINE_CONFIG_START( winner81, corona_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(winner)
+ MCFG_SCREEN_UPDATE_DRIVER(corona_state, screen_update_winner)
MCFG_PALETTE_LENGTH(0x100)
@@ -1405,7 +1405,7 @@ static MACHINE_CONFIG_START( winner82, corona_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(winner)
+ MCFG_SCREEN_UPDATE_DRIVER(corona_state, screen_update_winner)
MCFG_PALETTE_LENGTH(0x100)
@@ -1436,7 +1436,7 @@ static MACHINE_CONFIG_START( re800, corona_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(winner)
+ MCFG_SCREEN_UPDATE_DRIVER(corona_state, screen_update_winner)
MCFG_PALETTE_LENGTH(0x100)
@@ -1466,7 +1466,7 @@ static MACHINE_CONFIG_START( rcirulet, corona_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(winner)
+ MCFG_SCREEN_UPDATE_DRIVER(corona_state, screen_update_winner)
MCFG_PALETTE_LENGTH(0x100)
@@ -1497,7 +1497,7 @@ static MACHINE_CONFIG_START( luckyrlt, corona_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(luckyrlt)
+ MCFG_SCREEN_UPDATE_DRIVER(corona_state, screen_update_luckyrlt)
MCFG_PALETTE_LENGTH(0x100)
diff --git a/src/mame/drivers/cosmic.c b/src/mame/drivers/cosmic.c
index 1a53b11d941..0bd0a1fb3e1 100644
--- a/src/mame/drivers/cosmic.c
+++ b/src/mame/drivers/cosmic.c
@@ -1025,7 +1025,7 @@ static MACHINE_CONFIG_DERIVED( panic, cosmic )
MCFG_PALETTE_INIT_OVERRIDE(cosmic_state,panic)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(panic)
+ MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_panic)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1050,7 +1050,7 @@ static MACHINE_CONFIG_DERIVED( cosmica, cosmic )
MCFG_PALETTE_INIT_OVERRIDE(cosmic_state,cosmica)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(cosmica)
+ MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_cosmica)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1083,7 +1083,7 @@ static MACHINE_CONFIG_START( cosmicg, cosmic_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(cosmicg)
+ MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_cosmicg)
MCFG_PALETTE_LENGTH(16)
@@ -1112,7 +1112,7 @@ static MACHINE_CONFIG_DERIVED( magspot, cosmic )
MCFG_PALETTE_INIT_OVERRIDE(cosmic_state,magspot)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(magspot)
+ MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_magspot)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1128,7 +1128,7 @@ static MACHINE_CONFIG_DERIVED( devzone, magspot )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(devzone)
+ MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_devzone)
MACHINE_CONFIG_END
@@ -1144,7 +1144,7 @@ static MACHINE_CONFIG_DERIVED( nomnlnd, cosmic )
MCFG_PALETTE_INIT_OVERRIDE(cosmic_state,nomnlnd)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(nomnlnd)
+ MCFG_SCREEN_UPDATE_DRIVER(cosmic_state, screen_update_nomnlnd)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/cps1.c b/src/mame/drivers/cps1.c
index a247ee8280c..cf612f93c48 100644
--- a/src/mame/drivers/cps1.c
+++ b/src/mame/drivers/cps1.c
@@ -3067,8 +3067,8 @@ static MACHINE_CONFIG_START( cps1_10MHz, cps_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(cps1)
- MCFG_SCREEN_VBLANK_STATIC(cps1)
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_cps1)
+ MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1)
MCFG_GFXDECODE(cps1)
MCFG_PALETTE_LENGTH(0xc00)
@@ -3151,8 +3151,8 @@ static MACHINE_CONFIG_START( cpspicb, cps_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(cps1)
- MCFG_SCREEN_VBLANK_STATIC(cps1)
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_cps1)
+ MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1)
MCFG_GFXDECODE(cps1)
MCFG_PALETTE_LENGTH(0xc00)
@@ -3225,8 +3225,8 @@ static MACHINE_CONFIG_START( sf2mdt, cps_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(cps1)
- MCFG_SCREEN_VBLANK_STATIC(cps1)
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_cps1)
+ MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1)
MCFG_GFXDECODE(cps1)
MCFG_PALETTE_LENGTH(0xc00)
@@ -3309,8 +3309,8 @@ static MACHINE_CONFIG_START( knightsb, cps_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(cps1)
- MCFG_SCREEN_VBLANK_STATIC(cps1)
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_cps1)
+ MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1)
MCFG_GFXDECODE(cps1)
MCFG_PALETTE_LENGTH(0xc00)
diff --git a/src/mame/drivers/cps2.c b/src/mame/drivers/cps2.c
index e1602dfccfe..13c9b5fe56d 100644
--- a/src/mame/drivers/cps2.c
+++ b/src/mame/drivers/cps2.c
@@ -1241,8 +1241,8 @@ static MACHINE_CONFIG_START( cps2, cps_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL_8MHz, 518, 64, 448, 259, 16, 240)
- MCFG_SCREEN_UPDATE_STATIC(cps1)
- MCFG_SCREEN_VBLANK_STATIC(cps1)
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_cps1)
+ MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1)
/*
Measured clocks:
V = 59.6376Hz
diff --git a/src/mame/drivers/cps3.c b/src/mame/drivers/cps3.c
index 267a211aede..4ab17fffbd4 100644
--- a/src/mame/drivers/cps3.c
+++ b/src/mame/drivers/cps3.c
@@ -933,9 +933,8 @@ static void cps3_draw_tilemapsprite_line(running_machine &machine, int tmnum, in
}
}
-static SCREEN_UPDATE_RGB32(cps3)
+UINT32 cps3_state::screen_update_cps3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- cps3_state *state = screen.machine().driver_data<cps3_state>();
int y,x, count;
attoseconds_t period = screen.frame_period().attoseconds;
rectangle visarea = screen.visible_area();
@@ -951,27 +950,27 @@ static SCREEN_UPDATE_RGB32(cps3)
/* registers are normally 002a006f 01ef01c6
widescreen mode = 00230076 026501c6
only SFIII2 uses widescreen, I don't know exactly which register controls it */
- if (((state->m_fullscreenzoom[1]&0xffff0000)>>16)==0x0265)
+ if (((m_fullscreenzoom[1]&0xffff0000)>>16)==0x0265)
{
- if (state->m_screenwidth!=496)
+ if (m_screenwidth!=496)
{
- state->m_screenwidth = 496;
+ m_screenwidth = 496;
visarea.set(0, 496-1, 0, 224-1);
screen.configure(496, 224, visarea, period);
}
}
else
{
- if (state->m_screenwidth!=384)
+ if (m_screenwidth!=384)
{
- state->m_screenwidth = 384;
+ m_screenwidth = 384;
visarea.set(0, 384-1, 0, 224-1);
screen.configure(384, 224, visarea, period);
}
}
- fullscreenzoomx = state->m_fullscreenzoom[3] & 0x000000ff;
- fullscreenzoomy = state->m_fullscreenzoom[3] & 0x000000ff;
+ fullscreenzoomx = m_fullscreenzoom[3] & 0x000000ff;
+ fullscreenzoomy = m_fullscreenzoom[3] & 0x000000ff;
/* clamp at 0x80, I don't know if this is accurate */
if (fullscreenzoomx>0x80) fullscreenzoomx = 0x80;
if (fullscreenzoomy>0x80) fullscreenzoomy = 0x80;
@@ -979,12 +978,12 @@ static SCREEN_UPDATE_RGB32(cps3)
fszx = (fullscreenzoomx<<16)/0x40;
fszy = (fullscreenzoomy<<16)/0x40;
- state->m_renderbuffer_clip.min_x = 0;
- state->m_renderbuffer_clip.max_x = ((state->m_screenwidth*fszx)>>16)-1;
- state->m_renderbuffer_clip.min_y = 0;
- state->m_renderbuffer_clip.max_y = ((224*fszx)>>16)-1;
+ m_renderbuffer_clip.min_x = 0;
+ m_renderbuffer_clip.max_x = ((m_screenwidth*fszx)>>16)-1;
+ m_renderbuffer_clip.min_y = 0;
+ m_renderbuffer_clip.max_y = ((224*fszx)>>16)-1;
- state->m_renderbuffer_bitmap.fill(0, state->m_renderbuffer_clip);
+ m_renderbuffer_bitmap.fill(0, m_renderbuffer_clip);
/* Sprites */
{
@@ -993,37 +992,37 @@ static SCREEN_UPDATE_RGB32(cps3)
//printf("Spritelist start:\n");
for (i=0x00000/4;i<0x2000/4;i+=4)
{
- int xpos = (state->m_spriteram[i+1]&0x03ff0000)>>16;
- int ypos = state->m_spriteram[i+1]&0x000003ff;
+ int xpos = (m_spriteram[i+1]&0x03ff0000)>>16;
+ int ypos = m_spriteram[i+1]&0x000003ff;
int j;
- int gscroll = (state->m_spriteram[i+0]&0x70000000)>>28;
- int length = (state->m_spriteram[i+0]&0x01ff0000)>>16; // how many entries in the sprite table
- UINT32 start = (state->m_spriteram[i+0]&0x00007ff0)>>4;
-
- int whichbpp = (state->m_spriteram[i+2]&0x40000000)>>30; // not 100% sure if this is right, jojo title / characters
- int whichpal = (state->m_spriteram[i+2]&0x20000000)>>29;
- int global_xflip = (state->m_spriteram[i+2]&0x10000000)>>28;
- int global_yflip = (state->m_spriteram[i+2]&0x08000000)>>27;
- int global_alpha = (state->m_spriteram[i+2]&0x04000000)>>26; // alpha / shadow? set on sfiii2 shadows, and big black image in jojo intro
- int global_bpp = (state->m_spriteram[i+2]&0x02000000)>>25;
- int global_pal = (state->m_spriteram[i+2]&0x01ff0000)>>16;
-
- int gscrollx = (state->m_unk_vidregs[gscroll]&0x03ff0000)>>16;
- int gscrolly = (state->m_unk_vidregs[gscroll]&0x000003ff)>>0;
+ int gscroll = (m_spriteram[i+0]&0x70000000)>>28;
+ int length = (m_spriteram[i+0]&0x01ff0000)>>16; // how many entries in the sprite table
+ UINT32 start = (m_spriteram[i+0]&0x00007ff0)>>4;
+
+ int whichbpp = (m_spriteram[i+2]&0x40000000)>>30; // not 100% sure if this is right, jojo title / characters
+ int whichpal = (m_spriteram[i+2]&0x20000000)>>29;
+ int global_xflip = (m_spriteram[i+2]&0x10000000)>>28;
+ int global_yflip = (m_spriteram[i+2]&0x08000000)>>27;
+ int global_alpha = (m_spriteram[i+2]&0x04000000)>>26; // alpha / shadow? set on sfiii2 shadows, and big black image in jojo intro
+ int global_bpp = (m_spriteram[i+2]&0x02000000)>>25;
+ int global_pal = (m_spriteram[i+2]&0x01ff0000)>>16;
+
+ int gscrollx = (m_unk_vidregs[gscroll]&0x03ff0000)>>16;
+ int gscrolly = (m_unk_vidregs[gscroll]&0x000003ff)>>0;
start = (start * 0x100) >> 2;
- if ((state->m_spriteram[i+0]&0xf0000000) == 0x80000000)
+ if ((m_spriteram[i+0]&0xf0000000) == 0x80000000)
break;
for (j=0;j<(length)*4;j+=4)
{
- UINT32 value1 = (state->m_spriteram[start+j+0]);
- UINT32 value2 = (state->m_spriteram[start+j+1]);
- UINT32 value3 = (state->m_spriteram[start+j+2]);
+ UINT32 value1 = (m_spriteram[start+j+0]);
+ UINT32 value2 = (m_spriteram[start+j+1]);
+ UINT32 value3 = (m_spriteram[start+j+2]);
- //UINT8* srcdata = (UINT8*)state->m_char_ram;
+ //UINT8* srcdata = (UINT8*)m_char_ram;
//UINT32 sourceoffset = (value1 >>14)&0x7fffff;
int count;
@@ -1061,7 +1060,7 @@ static SCREEN_UPDATE_RGB32(cps3)
//int endline;
//int height = (value3 & 0x7f000000)>>24;
int uu;
-// UINT32* tmapregs[4] = { state->m_tilemap20_regs_base, state->m_tilemap30_regs_base, state->m_tilemap40_regs_base, state->m_tilemap50_regs_base };
+// UINT32* tmapregs[4] = { m_tilemap20_regs_base, m_tilemap30_regs_base, m_tilemap40_regs_base, m_tilemap50_regs_base };
// UINT32* regs;
// regs = tmapregs[tilemapnum];
//endline = value2;
@@ -1083,7 +1082,7 @@ static SCREEN_UPDATE_RGB32(cps3)
{
for (uu=0;uu<1023;uu++)
{
- cps3_draw_tilemapsprite_line(screen.machine(), tilemapnum, uu, state->m_renderbuffer_bitmap, state->m_renderbuffer_clip );
+ cps3_draw_tilemapsprite_line(screen.machine(), tilemapnum, uu, m_renderbuffer_bitmap, m_renderbuffer_clip );
}
}
bg_drawn[tilemapnum] = 1;
@@ -1141,7 +1140,7 @@ static SCREEN_UPDATE_RGB32(cps3)
if (current_ypos&0x200) current_ypos-=0x400;
- //if ( (whichbpp) && (machine.primary_screen->frame_number() & 1)) continue;
+ //if ( (whichbpp) && (machine().primary_screen->frame_number() & 1)) continue;
/* use the palette value from the main list or the sublists? */
if (whichpal)
@@ -1170,11 +1169,11 @@ static SCREEN_UPDATE_RGB32(cps3)
if (global_alpha || alpha)
{
- cps3_drawgfxzoom(state->m_renderbuffer_bitmap,state->m_renderbuffer_clip,screen.machine().gfx[1],realtileno,actualpal,0^flipx,0^flipy,current_xpos,current_ypos,CPS3_TRANSPARENCY_PEN_INDEX_BLEND,0,xinc,yinc, NULL, 0);
+ cps3_drawgfxzoom(m_renderbuffer_bitmap,m_renderbuffer_clip,screen.machine().gfx[1],realtileno,actualpal,0^flipx,0^flipy,current_xpos,current_ypos,CPS3_TRANSPARENCY_PEN_INDEX_BLEND,0,xinc,yinc, NULL, 0);
}
else
{
- cps3_drawgfxzoom(state->m_renderbuffer_bitmap,state->m_renderbuffer_clip,screen.machine().gfx[1],realtileno,actualpal,0^flipx,0^flipy,current_xpos,current_ypos,CPS3_TRANSPARENCY_PEN_INDEX,0,xinc,yinc, NULL, 0);
+ cps3_drawgfxzoom(m_renderbuffer_bitmap,m_renderbuffer_clip,screen.machine().gfx[1],realtileno,actualpal,0^flipx,0^flipy,current_xpos,current_ypos,CPS3_TRANSPARENCY_PEN_INDEX,0,xinc,yinc, NULL, 0);
}
count++;
}
@@ -1201,12 +1200,12 @@ static SCREEN_UPDATE_RGB32(cps3)
for (rendery=0;rendery<224;rendery++)
{
dstbitmap = &bitmap.pix32(rendery);
- srcbitmap = &state->m_renderbuffer_bitmap.pix32(srcy>>16);
+ srcbitmap = &m_renderbuffer_bitmap.pix32(srcy>>16);
srcx=0;
- for (renderx=0;renderx<state->m_screenwidth;renderx++)
+ for (renderx=0;renderx<m_screenwidth;renderx++)
{
- dstbitmap[renderx] = state->m_mame_colours[srcbitmap[srcx>>16]&0x1ffff];
+ dstbitmap[renderx] = m_mame_colours[srcbitmap[srcx>>16]&0x1ffff];
srcx += fszx;
}
@@ -1218,26 +1217,26 @@ static SCREEN_UPDATE_RGB32(cps3)
/* Copy the first 0x800 colours to be used for fg layer rendering */
// for (offset=0;offset<0x200;offset++)
// {
-// int palreadbase = (state->m_ss_pal_base << 9);
-// palette_set_color(machine,offset,state->m_mame_colours[palreadbase+offset]);
+// int palreadbase = (m_ss_pal_base << 9);
+// palette_set_color(machine(),offset,m_mame_colours[palreadbase+offset]);
// }
// fg layer
{
// bank select? (sfiii2 intro)
- if (state->m_ss_bank_base & 0x01000000) count = 0x000;
+ if (m_ss_bank_base & 0x01000000) count = 0x000;
else count = 0x800;
for (y=0;y<32;y++)
{
for (x=0;x<64;x++)
{
- UINT32 data = state->m_ss_ram[count]; // +0x800 = 2nd bank, used on sfiii2 intro..
+ UINT32 data = m_ss_ram[count]; // +0x800 = 2nd bank, used on sfiii2 intro..
UINT32 tile = (data >> 16) & 0x1ff;
int pal = (data&0x003f) >> 1;
int flipx = (data & 0x0080) >> 7;
int flipy = (data & 0x0040) >> 6;
- pal += state->m_ss_pal_base << 5;
+ pal += m_ss_pal_base << 5;
tile+=0x200;
cps3_drawgfxzoom(bitmap, cliprect, screen.machine().gfx[0],tile,pal,flipx,flipy,x*8,y*8,CPS3_TRANSPARENCY_PEN,0,0x10000,0x10000,NULL,0);
@@ -2506,7 +2505,7 @@ static MACHINE_CONFIG_START( cps3, cps3_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL_60MHz/8, 486, 0, 384, 259, 0, 224)
- MCFG_SCREEN_UPDATE_STATIC(cps3)
+ MCFG_SCREEN_UPDATE_DRIVER(cps3_state, screen_update_cps3)
/*
Measured clocks:
V = 59.5992Hz
diff --git a/src/mame/drivers/crbaloon.c b/src/mame/drivers/crbaloon.c
index cd7cea200dd..a9d51f3416d 100644
--- a/src/mame/drivers/crbaloon.c
+++ b/src/mame/drivers/crbaloon.c
@@ -384,7 +384,7 @@ static MACHINE_CONFIG_START( crbaloon, crbaloon_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(crbaloon)
+ MCFG_SCREEN_UPDATE_DRIVER(crbaloon_state, screen_update_crbaloon)
/* audio hardware */
MCFG_FRAGMENT_ADD(crbaloon_audio)
diff --git a/src/mame/drivers/crimfght.c b/src/mame/drivers/crimfght.c
index 3593b6ddb73..34bd6a5e069 100644
--- a/src/mame/drivers/crimfght.c
+++ b/src/mame/drivers/crimfght.c
@@ -296,7 +296,7 @@ static MACHINE_CONFIG_START( crimfght, crimfght_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(crimfght)
+ MCFG_SCREEN_UPDATE_DRIVER(crimfght_state, screen_update_crimfght)
MCFG_PALETTE_LENGTH(512)
diff --git a/src/mame/drivers/crospang.c b/src/mame/drivers/crospang.c
index 9468e8d49e3..2bc030be116 100644
--- a/src/mame/drivers/crospang.c
+++ b/src/mame/drivers/crospang.c
@@ -362,7 +362,7 @@ static MACHINE_CONFIG_START( crospang, crospang_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(crospang)
+ MCFG_SCREEN_UPDATE_DRIVER(crospang_state, screen_update_crospang)
MCFG_PALETTE_LENGTH(0x300)
MCFG_GFXDECODE(crospang)
diff --git a/src/mame/drivers/crshrace.c b/src/mame/drivers/crshrace.c
index 5719f009a89..fb7c55d2ff2 100644
--- a/src/mame/drivers/crshrace.c
+++ b/src/mame/drivers/crshrace.c
@@ -475,8 +475,8 @@ static MACHINE_CONFIG_START( crshrace, crshrace_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(crshrace)
- MCFG_SCREEN_VBLANK_STATIC(crshrace)
+ MCFG_SCREEN_UPDATE_DRIVER(crshrace_state, screen_update_crshrace)
+ MCFG_SCREEN_VBLANK_DRIVER(crshrace_state, screen_eof_crshrace)
MCFG_GFXDECODE(crshrace)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/crystal.c b/src/mame/drivers/crystal.c
index dee733d7012..f41c72ed2eb 100644
--- a/src/mame/drivers/crystal.c
+++ b/src/mame/drivers/crystal.c
@@ -190,6 +190,8 @@ public:
DECLARE_DRIVER_INIT(evosocc);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_crystal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_crystal(screen_device &screen, bool state);
};
static void IntReq( running_machine &machine, int num )
@@ -647,9 +649,8 @@ static void SetVidReg( address_space &space, UINT16 reg, UINT16 val )
}
-static SCREEN_UPDATE_IND16( crystal )
+UINT32 crystal_state::screen_update_crystal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- crystal_state *state = screen.machine().driver_data<crystal_state>();
address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
int DoFlip;
@@ -664,18 +665,18 @@ static SCREEN_UPDATE_IND16( crystal )
if (GetVidReg(space, 0x8e) & 1)
{
- Front = (UINT16*) (state->m_frameram + B1 / 4);
- Back = (UINT16*) (state->m_frameram + B0 / 4);
+ Front = (UINT16*) (m_frameram + B1 / 4);
+ Back = (UINT16*) (m_frameram + B0 / 4);
}
else
{
- Front = (UINT16*) (state->m_frameram + B0 / 4);
- Back = (UINT16*) (state->m_frameram + B1 / 4);
+ Front = (UINT16*) (m_frameram + B0 / 4);
+ Back = (UINT16*) (m_frameram + B1 / 4);
}
Visible = (UINT16*) Front;
// ERROR: This cast is NOT endian-safe without the use of BYTE/WORD/DWORD_XOR_* macros!
- DrawDest = reinterpret_cast<UINT16 *>(state->m_frameram.target());
+ DrawDest = reinterpret_cast<UINT16 *>(m_frameram.target());
if (GetVidReg(space, 0x8c) & 0x80)
@@ -693,7 +694,7 @@ static SCREEN_UPDATE_IND16( crystal )
while ((head & 0x7ff) != (tail & 0x7ff))
{
// ERROR: This cast is NOT endian-safe without the use of BYTE/WORD/DWORD_XOR_* macros!
- DoFlip = vrender0_ProcessPacket(state->m_vr0video, 0x03800000 + head * 64, DrawDest, reinterpret_cast<UINT8*>(state->m_textureram.target()));
+ DoFlip = vrender0_ProcessPacket(m_vr0video, 0x03800000 + head * 64, DrawDest, reinterpret_cast<UINT8*>(m_textureram.target()));
head++;
head &= 0x7ff;
if (DoFlip)
@@ -710,12 +711,11 @@ static SCREEN_UPDATE_IND16( crystal )
return 0;
}
-static SCREEN_VBLANK(crystal)
+void crystal_state::screen_eof_crystal(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- crystal_state *state = screen.machine().driver_data<crystal_state>();
address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
UINT16 head, tail;
int DoFlip = 0;
@@ -735,8 +735,8 @@ static SCREEN_VBLANK(crystal)
SetVidReg(space, 0x82, head);
if (DoFlip)
{
- if (state->m_FlipCount)
- state->m_FlipCount--;
+ if (m_FlipCount)
+ m_FlipCount--;
}
}
@@ -851,8 +851,8 @@ static MACHINE_CONFIG_START( crystal, crystal_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(crystal)
- MCFG_SCREEN_VBLANK_STATIC(crystal)
+ MCFG_SCREEN_UPDATE_DRIVER(crystal_state, screen_update_crystal)
+ MCFG_SCREEN_VBLANK_DRIVER(crystal_state, screen_eof_crystal)
MCFG_VIDEO_VRENDER0_ADD("vr0", vr0video_config)
diff --git a/src/mame/drivers/cshooter.c b/src/mame/drivers/cshooter.c
index b9e3f2b08d0..65211ca2d5e 100644
--- a/src/mame/drivers/cshooter.c
+++ b/src/mame/drivers/cshooter.c
@@ -119,6 +119,7 @@ public:
virtual void video_start();
DECLARE_MACHINE_RESET(cshooter);
DECLARE_MACHINE_RESET(airraid);
+ UINT32 screen_update_cshooter(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -150,17 +151,16 @@ void cshooter_state::video_start()
m_txtilemap->set_transparent_pen(3);
}
-static SCREEN_UPDATE_IND16(cshooter)
+UINT32 cshooter_state::screen_update_cshooter(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cshooter_state *state = screen.machine().driver_data<cshooter_state>();
bitmap.fill(0/*get_black_pen(screen.screen.machine(, cliprect))*/);
- state->m_txtilemap->mark_all_dirty();
+ m_txtilemap->mark_all_dirty();
//sprites
{
- UINT8 *spriteram = state->m_spriteram;
+ UINT8 *spriteram = m_spriteram;
int i;
- for(i=0;i<state->m_spriteram.bytes();i+=4)
+ for(i=0;i<m_spriteram.bytes();i+=4)
{
if(spriteram[i+3]!=0)
{
@@ -193,8 +193,8 @@ static SCREEN_UPDATE_IND16(cshooter)
}
}
- state->m_txtilemap->mark_all_dirty();
- state->m_txtilemap->draw(bitmap, cliprect, 0,0);
+ m_txtilemap->mark_all_dirty();
+ m_txtilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
@@ -452,7 +452,7 @@ static MACHINE_CONFIG_START( cshooter, cshooter_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-1-16)
- MCFG_SCREEN_UPDATE_STATIC(cshooter)
+ MCFG_SCREEN_UPDATE_DRIVER(cshooter_state, screen_update_cshooter)
MCFG_GFXDECODE(cshooter)
MCFG_PALETTE_LENGTH(0x1000)
@@ -478,7 +478,7 @@ static MACHINE_CONFIG_START( airraid, cshooter_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-1-16)
- MCFG_SCREEN_UPDATE_STATIC(cshooter)
+ MCFG_SCREEN_UPDATE_DRIVER(cshooter_state, screen_update_cshooter)
MCFG_GFXDECODE(cshooter)
MCFG_PALETTE_LENGTH(0x1000)
diff --git a/src/mame/drivers/cubeqst.c b/src/mame/drivers/cubeqst.c
index 80e4748a8aa..97f6b29b2e6 100644
--- a/src/mame/drivers/cubeqst.c
+++ b/src/mame/drivers/cubeqst.c
@@ -56,6 +56,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_cubeqst(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -110,9 +111,8 @@ WRITE16_MEMBER(cubeqst_state::palette_w)
}
/* TODO: This is a simplified version of what actually happens */
-static SCREEN_UPDATE_RGB32( cubeqst )
+UINT32 cubeqst_state::screen_update_cubeqst(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- cubeqst_state *state = screen.machine().driver_data<cubeqst_state>();
int y;
/*
@@ -121,7 +121,7 @@ static SCREEN_UPDATE_RGB32( cubeqst )
*/
/* Bit 3 selects LD/#GRAPHICS */
- bitmap.fill(state->m_colormap[255], cliprect);
+ bitmap.fill(m_colormap[255], cliprect);
/* TODO: Add 1 for linebuffering? */
for (y = cliprect.min_y; y <= cliprect.max_y; ++y)
@@ -133,7 +133,7 @@ static SCREEN_UPDATE_RGB32( cubeqst )
UINT32 pen;
/* Zap the depth buffer */
- memset(state->m_depth_buffer, 0xff, 512);
+ memset(m_depth_buffer, 0xff, 512);
/* Process all the spans on this scanline */
if (y < 256)
@@ -170,13 +170,13 @@ static SCREEN_UPDATE_RGB32( cubeqst )
}
/* Draw the span, testing for depth */
- pen = state->m_colormap[state->m_generic_paletteram_16[color]];
+ pen = m_colormap[m_generic_paletteram_16[color]];
for (x = h1; x <= h2; ++x)
{
- if (!(state->m_depth_buffer[x] < depth))
+ if (!(m_depth_buffer[x] < depth))
{
dest[x] = pen;
- state->m_depth_buffer[x] = depth;
+ m_depth_buffer[x] = depth;
}
}
}
@@ -532,7 +532,7 @@ static MACHINE_CONFIG_START( cubeqst, cubeqst_state )
MCFG_NVRAM_ADD_0FILL("nvram")
MCFG_LASERDISC_SIMUTREK_ADD("laserdisc")
- MCFG_LASERDISC_OVERLAY_STATIC(CUBEQST_HBLANK, CUBEQST_VCOUNT, cubeqst)
+ MCFG_LASERDISC_OVERLAY_DRIVER(CUBEQST_HBLANK, CUBEQST_VCOUNT, cubeqst_state, screen_update_cubeqst)
MCFG_LASERDISC_OVERLAY_CLIP(0, 320-1, 0, 256-8)
MCFG_LASERDISC_OVERLAY_POSITION(0.002f, -0.018f)
MCFG_LASERDISC_OVERLAY_SCALE(1.0f, 1.030f)
diff --git a/src/mame/drivers/cultures.c b/src/mame/drivers/cultures.c
index ebc7d41f708..9c915e73ec7 100644
--- a/src/mame/drivers/cultures.c
+++ b/src/mame/drivers/cultures.c
@@ -56,6 +56,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_cultures(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -98,32 +99,31 @@ void cultures_state::video_start()
m_bg2_tilemap->set_scrolldy(255, 0);
}
-static SCREEN_UPDATE_IND16( cultures )
+UINT32 cultures_state::screen_update_cultures(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cultures_state *state = screen.machine().driver_data<cultures_state>();
int attr;
// tilemaps attributes
- attr = (state->m_bg0_regs_x[3] & 1 ? TILEMAP_FLIPX : 0) | (state->m_bg0_regs_y[3] & 1 ? TILEMAP_FLIPY : 0);
- state->m_bg0_tilemap->set_flip(attr);
+ attr = (m_bg0_regs_x[3] & 1 ? TILEMAP_FLIPX : 0) | (m_bg0_regs_y[3] & 1 ? TILEMAP_FLIPY : 0);
+ m_bg0_tilemap->set_flip(attr);
- attr = (state->m_bg1_regs_x[3] & 1 ? TILEMAP_FLIPX : 0) | (state->m_bg1_regs_y[3] & 1 ? TILEMAP_FLIPY : 0);
- state->m_bg1_tilemap->set_flip(attr);
+ attr = (m_bg1_regs_x[3] & 1 ? TILEMAP_FLIPX : 0) | (m_bg1_regs_y[3] & 1 ? TILEMAP_FLIPY : 0);
+ m_bg1_tilemap->set_flip(attr);
- attr = (state->m_bg2_regs_x[3] & 1 ? TILEMAP_FLIPX : 0) | (state->m_bg2_regs_y[3] & 1 ? TILEMAP_FLIPY : 0);
- state->m_bg2_tilemap->set_flip(attr);
+ attr = (m_bg2_regs_x[3] & 1 ? TILEMAP_FLIPX : 0) | (m_bg2_regs_y[3] & 1 ? TILEMAP_FLIPY : 0);
+ m_bg2_tilemap->set_flip(attr);
// tilemaps scrolls
- state->m_bg0_tilemap->set_scrollx(0, (state->m_bg0_regs_x[2] << 8) + state->m_bg0_regs_x[0]);
- state->m_bg1_tilemap->set_scrollx(0, (state->m_bg1_regs_x[2] << 8) + state->m_bg1_regs_x[0]);
- state->m_bg2_tilemap->set_scrollx(0, (state->m_bg2_regs_x[2] << 8) + state->m_bg2_regs_x[0]);
- state->m_bg0_tilemap->set_scrolly(0, (state->m_bg0_regs_y[2] << 8) + state->m_bg0_regs_y[0]);
- state->m_bg1_tilemap->set_scrolly(0, (state->m_bg1_regs_y[2] << 8) + state->m_bg1_regs_y[0]);
- state->m_bg2_tilemap->set_scrolly(0, (state->m_bg2_regs_y[2] << 8) + state->m_bg2_regs_y[0]);
+ m_bg0_tilemap->set_scrollx(0, (m_bg0_regs_x[2] << 8) + m_bg0_regs_x[0]);
+ m_bg1_tilemap->set_scrollx(0, (m_bg1_regs_x[2] << 8) + m_bg1_regs_x[0]);
+ m_bg2_tilemap->set_scrollx(0, (m_bg2_regs_x[2] << 8) + m_bg2_regs_x[0]);
+ m_bg0_tilemap->set_scrolly(0, (m_bg0_regs_y[2] << 8) + m_bg0_regs_y[0]);
+ m_bg1_tilemap->set_scrolly(0, (m_bg1_regs_y[2] << 8) + m_bg1_regs_y[0]);
+ m_bg2_tilemap->set_scrolly(0, (m_bg2_regs_y[2] << 8) + m_bg2_regs_y[0]);
- state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_bg0_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg0_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -407,7 +407,7 @@ static MACHINE_CONFIG_START( cultures, cultures_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(cultures)
+ MCFG_SCREEN_UPDATE_DRIVER(cultures_state, screen_update_cultures)
MCFG_GFXDECODE(culture)
MCFG_PALETTE_LENGTH(0x2000)
diff --git a/src/mame/drivers/cvs.c b/src/mame/drivers/cvs.c
index d2d18e32577..508d188e9bf 100644
--- a/src/mame/drivers/cvs.c
+++ b/src/mame/drivers/cvs.c
@@ -1068,7 +1068,7 @@ static MACHINE_CONFIG_START( cvs, cvs_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 30*8-1, 1*8, 32*8-1)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1000))
- MCFG_SCREEN_UPDATE_STATIC(cvs)
+ MCFG_SCREEN_UPDATE_DRIVER(cvs_state, screen_update_cvs)
MCFG_S2636_ADD("s2636_0", s2636_0_config)
MCFG_S2636_ADD("s2636_1", s2636_1_config)
diff --git a/src/mame/drivers/cyberbal.c b/src/mame/drivers/cyberbal.c
index bf4a7686b6e..e547255de08 100644
--- a/src/mame/drivers/cyberbal.c
+++ b/src/mame/drivers/cyberbal.c
@@ -457,13 +457,13 @@ static MACHINE_CONFIG_START( cyberbal, cyberbal_state )
/* note: these parameters are from published specs, not derived */
/* the board uses an SOS-2 chip to generate video signals */
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz, 456*2, 0, 336*2, 262, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(cyberbal_left)
+ MCFG_SCREEN_UPDATE_DRIVER(cyberbal_state, screen_update_cyberbal_left)
MCFG_SCREEN_ADD("rscreen", RASTER)
/* note: these parameters are from published specs, not derived */
/* the board uses an SOS-2 chip to generate video signals */
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz, 456*2, 0, 336*2, 262, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(cyberbal_right)
+ MCFG_SCREEN_UPDATE_DRIVER(cyberbal_state, screen_update_cyberbal_right)
MCFG_VIDEO_START_OVERRIDE(cyberbal_state,cyberbal)
@@ -503,7 +503,7 @@ static MACHINE_CONFIG_START( cyberbal2p, cyberbal_state )
/* note: these parameters are from published specs, not derived */
/* the board uses an SOS-2 chip to generate video signals */
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz, 456*2, 0, 336*2, 262, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(cyberbal2p)
+ MCFG_SCREEN_UPDATE_DRIVER(cyberbal_state, screen_update_cyberbal2p)
MCFG_VIDEO_START_OVERRIDE(cyberbal_state,cyberbal2p)
diff --git a/src/mame/drivers/cybertnk.c b/src/mame/drivers/cybertnk.c
index 74c468fa5fd..4e3e801c4d7 100644
--- a/src/mame/drivers/cybertnk.c
+++ b/src/mame/drivers/cybertnk.c
@@ -219,6 +219,8 @@ public:
TILE_GET_INFO_MEMBER(get_tilemap1_tile_info);
TILE_GET_INFO_MEMBER(get_tilemap2_tile_info);
virtual void video_start();
+ UINT32 screen_update_cybertnk_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_cybertnk_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/* tile format
@@ -498,8 +500,8 @@ static UINT32 update_screen(screen_device &screen, bitmap_ind16 &bitmap, const r
return 0;
}
-static SCREEN_UPDATE_IND16( cybertnk_left ) { return update_screen(screen, bitmap, cliprect, 0); }
-static SCREEN_UPDATE_IND16( cybertnk_right ) { return update_screen(screen, bitmap, cliprect, -256); }
+UINT32 cybertnk_state::screen_update_cybertnk_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 0); }
+UINT32 cybertnk_state::screen_update_cybertnk_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, -256); }
WRITE16_MEMBER(cybertnk_state::tilemap0_vram_w)
@@ -851,14 +853,14 @@ static MACHINE_CONFIG_START( cybertnk, cybertnk_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(cybertnk_left)
+ MCFG_SCREEN_UPDATE_DRIVER(cybertnk_state, screen_update_cybertnk_left)
MCFG_SCREEN_ADD("rscreen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(cybertnk_right)
+ MCFG_SCREEN_UPDATE_DRIVER(cybertnk_state, screen_update_cybertnk_right)
MCFG_GFXDECODE(cybertnk)
MCFG_PALETTE_LENGTH(0x4000)
diff --git a/src/mame/drivers/cyclemb.c b/src/mame/drivers/cyclemb.c
index 1a94a9c4f86..3f3ae5fd36b 100644
--- a/src/mame/drivers/cyclemb.c
+++ b/src/mame/drivers/cyclemb.c
@@ -119,6 +119,8 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_cyclemb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_skydest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -357,14 +359,14 @@ static void skydest_draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, co
}
}
-static SCREEN_UPDATE_IND16( cyclemb )
+UINT32 cyclemb_state::screen_update_cyclemb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
cyclemb_draw_tilemap(screen,bitmap,cliprect);
cyclemb_draw_sprites(screen,bitmap,cliprect);
return 0;
}
-static SCREEN_UPDATE_IND16( skydest )
+UINT32 cyclemb_state::screen_update_skydest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(0, cliprect);
@@ -917,7 +919,7 @@ static MACHINE_CONFIG_START( cyclemb, cyclemb_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(cyclemb)
+ MCFG_SCREEN_UPDATE_DRIVER(cyclemb_state, screen_update_cyclemb)
MCFG_GFXDECODE(cyclemb)
MCFG_PALETTE_LENGTH(256)
@@ -938,7 +940,7 @@ static MACHINE_CONFIG_DERIVED( skydest, cyclemb )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(2*8, 34*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(skydest)
+ MCFG_SCREEN_UPDATE_DRIVER(cyclemb_state, screen_update_skydest)
// MCFG_PALETTE_INIT_OVERRIDE(cyclemb_state,skydest)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/d9final.c b/src/mame/drivers/d9final.c
index 2797bf54779..55ed1a0d1bc 100644
--- a/src/mame/drivers/d9final.c
+++ b/src/mame/drivers/d9final.c
@@ -45,6 +45,7 @@ public:
TILE_GET_INFO_MEMBER(get_sc0_tile_info);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_d9final(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -66,10 +67,9 @@ void d9final_state::video_start()
m_sc0_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(d9final_state::get_sc0_tile_info),this),TILEMAP_SCAN_ROWS,8,8,64,32);
}
-static SCREEN_UPDATE_IND16(d9final)
+UINT32 d9final_state::screen_update_d9final(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- d9final_state *state = screen.machine().driver_data<d9final_state>();
- state->m_sc0_tilemap->draw(bitmap, cliprect, 0,0);
+ m_sc0_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
@@ -293,7 +293,7 @@ static MACHINE_CONFIG_START( d9final, d9final_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(d9final)
+ MCFG_SCREEN_UPDATE_DRIVER(d9final_state, screen_update_d9final)
MCFG_GFXDECODE(d9final)
MCFG_PALETTE_LENGTH(0x400)
diff --git a/src/mame/drivers/dacholer.c b/src/mame/drivers/dacholer.c
index 82f8956c302..a91816783ed 100644
--- a/src/mame/drivers/dacholer.c
+++ b/src/mame/drivers/dacholer.c
@@ -89,6 +89,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_dacholer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
TILE_GET_INFO_MEMBER(dacholer_state::get_bg_tile_info)
@@ -151,24 +152,23 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-static SCREEN_UPDATE_IND16(dacholer)
+UINT32 dacholer_state::screen_update_dacholer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dacholer_state *state = screen.machine().driver_data<dacholer_state>();
- if (state->flip_screen())
+ if (flip_screen())
{
- state->m_bg_tilemap->set_scrollx(0, 256 - state->m_scroll_x);
- state->m_bg_tilemap->set_scrolly(0, 256 - state->m_scroll_y);
+ m_bg_tilemap->set_scrollx(0, 256 - m_scroll_x);
+ m_bg_tilemap->set_scrolly(0, 256 - m_scroll_y);
}
else
{
- state->m_bg_tilemap->set_scrollx(0, state->m_scroll_x);
- state->m_bg_tilemap->set_scrolly(0, state->m_scroll_y);
+ m_bg_tilemap->set_scrollx(0, m_scroll_x);
+ m_bg_tilemap->set_scrolly(0, m_scroll_y);
}
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -666,7 +666,7 @@ static MACHINE_CONFIG_START( dacholer, dacholer_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-1-16)
- MCFG_SCREEN_UPDATE_STATIC(dacholer)
+ MCFG_SCREEN_UPDATE_DRIVER(dacholer_state, screen_update_dacholer)
MCFG_PALETTE_LENGTH(32)
MCFG_GFXDECODE(dacholer)
diff --git a/src/mame/drivers/dai3wksi.c b/src/mame/drivers/dai3wksi.c
index e2ef3810bf6..50b0fe4dd11 100644
--- a/src/mame/drivers/dai3wksi.c
+++ b/src/mame/drivers/dai3wksi.c
@@ -67,6 +67,7 @@ public:
DECLARE_WRITE8_MEMBER(dai3wksi_audio_3_w);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_dai3wksi(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -128,31 +129,30 @@ static void dai3wksi_get_pens(pen_t *pens)
}
-static SCREEN_UPDATE_RGB32( dai3wksi )
+UINT32 dai3wksi_state::screen_update_dai3wksi(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- dai3wksi_state *state = screen.machine().driver_data<dai3wksi_state>();
offs_t offs;
pen_t pens[8];
dai3wksi_get_pens(pens);
- for (offs = 0; offs < state->m_dai3wksi_videoram.bytes(); offs++)
+ for (offs = 0; offs < m_dai3wksi_videoram.bytes(); offs++)
{
offs_t i;
UINT8 x = offs << 2;
UINT8 y = offs >> 6;
- UINT8 data = state->m_dai3wksi_videoram[offs];
+ UINT8 data = m_dai3wksi_videoram[offs];
UINT8 color;
- int value = (x >> 2) + ((y >> 5) << 6) + 64 * 8 * (state->m_dai3wksi_redterop ? 1 : 0);
+ int value = (x >> 2) + ((y >> 5) << 6) + 64 * 8 * (m_dai3wksi_redterop ? 1 : 0);
- if (state->m_dai3wksi_redscreen)
+ if (m_dai3wksi_redscreen)
{
color = 0x02;
}
else
{
- if (state->ioport("IN2")->read() & 0x03)
+ if (ioport("IN2")->read() & 0x03)
color = vr_prom2[value];
else
color = vr_prom1[value];
@@ -162,7 +162,7 @@ static SCREEN_UPDATE_RGB32( dai3wksi )
{
pen_t pen = (data & (1 << i)) ? pens[color] : pens[0];
- if (state->m_dai3wksi_flipscreen)
+ if (m_dai3wksi_flipscreen)
bitmap.pix32(255-y, 255-x) = pen;
else
bitmap.pix32(y, x) = pen;
@@ -599,7 +599,7 @@ static MACHINE_CONFIG_START( dai3wksi, dai3wksi_state )
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(4, 251, 8, 247)
MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_UPDATE_STATIC(dai3wksi)
+ MCFG_SCREEN_UPDATE_DRIVER(dai3wksi_state, screen_update_dai3wksi)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/dambustr.c b/src/mame/drivers/dambustr.c
index 226599175d0..74c8f683742 100644
--- a/src/mame/drivers/dambustr.c
+++ b/src/mame/drivers/dambustr.c
@@ -261,7 +261,7 @@ static MACHINE_CONFIG_START( dambustr, dambustr_state )
MCFG_SCREEN_REFRESH_RATE(16000.0/132/2)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(dambustr)
+ MCFG_SCREEN_UPDATE_DRIVER(dambustr_state, screen_update_dambustr)
MCFG_GFXDECODE(dambustr)
MCFG_PALETTE_LENGTH(32+2+64+8) /* 32 for the characters, 2 for the bullets, 64 for the stars, 8 for the background */
diff --git a/src/mame/drivers/darius.c b/src/mame/drivers/darius.c
index d5eb171821e..cdf09e14c53 100644
--- a/src/mame/drivers/darius.c
+++ b/src/mame/drivers/darius.c
@@ -944,21 +944,21 @@ static MACHINE_CONFIG_START( darius, darius_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(36*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 29*8-1)
- MCFG_SCREEN_UPDATE_STATIC(darius_left)
+ MCFG_SCREEN_UPDATE_DRIVER(darius_state, screen_update_darius_left)
MCFG_SCREEN_ADD("mscreen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(36*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 29*8-1)
- MCFG_SCREEN_UPDATE_STATIC(darius_middle)
+ MCFG_SCREEN_UPDATE_DRIVER(darius_state, screen_update_darius_middle)
MCFG_SCREEN_ADD("rscreen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(36*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 29*8-1)
- MCFG_SCREEN_UPDATE_STATIC(darius_right)
+ MCFG_SCREEN_UPDATE_DRIVER(darius_state, screen_update_darius_right)
MCFG_PC080SN_ADD("pc080sn", darius_pc080sn_intf)
diff --git a/src/mame/drivers/darkmist.c b/src/mame/drivers/darkmist.c
index f6f4cdd8320..36dcb921d64 100644
--- a/src/mame/drivers/darkmist.c
+++ b/src/mame/drivers/darkmist.c
@@ -242,7 +242,7 @@ static MACHINE_CONFIG_START( darkmist, darkmist_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(darkmist)
+ MCFG_SCREEN_UPDATE_DRIVER(darkmist_state, screen_update_darkmist)
MCFG_GFXDECODE(darkmist)
MCFG_PALETTE_LENGTH(0x100*4)
diff --git a/src/mame/drivers/darkseal.c b/src/mame/drivers/darkseal.c
index a708c68ffed..1585ae34e6f 100644
--- a/src/mame/drivers/darkseal.c
+++ b/src/mame/drivers/darkseal.c
@@ -274,7 +274,7 @@ static MACHINE_CONFIG_START( darkseal, darkseal_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(darkseal)
+ MCFG_SCREEN_UPDATE_DRIVER(darkseal_state, screen_update_darkseal)
MCFG_GFXDECODE(darkseal)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/dassault.c b/src/mame/drivers/dassault.c
index f35218f70ba..1cf0477cc63 100644
--- a/src/mame/drivers/dassault.c
+++ b/src/mame/drivers/dassault.c
@@ -524,7 +524,7 @@ static MACHINE_CONFIG_START( dassault, dassault_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(dassault)
+ MCFG_SCREEN_UPDATE_DRIVER(dassault_state, screen_update_dassault)
MCFG_GFXDECODE(dassault)
diff --git a/src/mame/drivers/dblewing.c b/src/mame/drivers/dblewing.c
index 2217562beca..e507200b6a0 100644
--- a/src/mame/drivers/dblewing.c
+++ b/src/mame/drivers/dblewing.c
@@ -83,6 +83,7 @@ public:
DECLARE_DRIVER_INIT(dblewing);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_dblewing(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
UINT16 dblwings_pri_callback(UINT16 x)
@@ -101,21 +102,20 @@ UINT16 dblwings_pri_callback(UINT16 x)
-static SCREEN_UPDATE_IND16(dblewing)
+UINT32 dblewing_state::screen_update_dblewing(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dblewing_state *state = screen.machine().driver_data<dblewing_state>();
- address_space &space = state->generic_space();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
+ address_space &space = generic_space();
+ UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
- state->flip_screen_set(BIT(flip, 7));
- deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
+ flip_screen_set(BIT(flip, 7));
+ deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
bitmap.fill(0, cliprect); /* not Confirmed */
screen.machine().priority_bitmap.fill(0);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 2);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 4);
- screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2);
+ deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 4);
+ screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
return 0;
}
@@ -656,7 +656,7 @@ static MACHINE_CONFIG_START( dblewing, dblewing_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(dblewing)
+ MCFG_SCREEN_UPDATE_DRIVER(dblewing_state, screen_update_dblewing)
MCFG_PALETTE_LENGTH(4096)
MCFG_GFXDECODE(dblewing)
diff --git a/src/mame/drivers/dbz.c b/src/mame/drivers/dbz.c
index 399db0b6fa1..ddd17c846f1 100644
--- a/src/mame/drivers/dbz.c
+++ b/src/mame/drivers/dbz.c
@@ -398,7 +398,7 @@ static MACHINE_CONFIG_START( dbz, dbz_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 40*8)
MCFG_SCREEN_VISIBLE_AREA(0, 48*8-1, 0, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(dbz)
+ MCFG_SCREEN_UPDATE_DRIVER(dbz_state, screen_update_dbz)
MCFG_GFXDECODE(dbz)
diff --git a/src/mame/drivers/dcheese.c b/src/mame/drivers/dcheese.c
index b64d531f0c7..108bf01894d 100644
--- a/src/mame/drivers/dcheese.c
+++ b/src/mame/drivers/dcheese.c
@@ -424,7 +424,7 @@ static MACHINE_CONFIG_START( dcheese, dcheese_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(360, 262) /* guess, need to see what the games write to the vid registers */
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(dcheese)
+ MCFG_SCREEN_UPDATE_DRIVER(dcheese_state, screen_update_dcheese)
MCFG_PALETTE_LENGTH(65534)
diff --git a/src/mame/drivers/dcon.c b/src/mame/drivers/dcon.c
index 6ad41b36733..e884a3ea95f 100644
--- a/src/mame/drivers/dcon.c
+++ b/src/mame/drivers/dcon.c
@@ -263,7 +263,7 @@ static MACHINE_CONFIG_START( dcon, dcon_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(dcon)
+ MCFG_SCREEN_UPDATE_DRIVER(dcon_state, screen_update_dcon)
MCFG_GFXDECODE(dcon)
MCFG_PALETTE_LENGTH(2048)
@@ -290,7 +290,7 @@ static MACHINE_CONFIG_START( sdgndmps, dcon_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(sdgndmps)
+ MCFG_SCREEN_UPDATE_DRIVER(dcon_state, screen_update_sdgndmps)
MCFG_GFXDECODE(dcon)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/dday.c b/src/mame/drivers/dday.c
index c0e5d3f471e..2ace7e0419a 100644
--- a/src/mame/drivers/dday.c
+++ b/src/mame/drivers/dday.c
@@ -267,7 +267,7 @@ static MACHINE_CONFIG_START( dday, dday_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(dday)
+ MCFG_SCREEN_UPDATE_DRIVER(dday_state, screen_update_dday)
MCFG_GFXDECODE(dday)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/ddayjlc.c b/src/mame/drivers/ddayjlc.c
index d792b12a757..5c48cda7b98 100644
--- a/src/mame/drivers/ddayjlc.c
+++ b/src/mame/drivers/ddayjlc.c
@@ -105,6 +105,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_ddayjlc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -388,18 +389,17 @@ void ddayjlc_state::video_start()
m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(ddayjlc_state::get_tile_info_bg),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
-static SCREEN_UPDATE_IND16( ddayjlc )
+UINT32 ddayjlc_state::screen_update_ddayjlc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ddayjlc_state *state = screen.machine().driver_data<ddayjlc_state>();
UINT32 i;
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
for (i = 0; i < 0x400; i += 4)
{
- UINT8 flags = state->m_spriteram[i + 2];
- UINT8 y = 256 - state->m_spriteram[i + 0] - 8;
- UINT16 code = state->m_spriteram[i + 1];
- UINT8 x = state->m_spriteram[i + 3] - 16;
+ UINT8 flags = m_spriteram[i + 2];
+ UINT8 y = 256 - m_spriteram[i + 0] - 8;
+ UINT16 code = m_spriteram[i + 1];
+ UINT8 x = m_spriteram[i + 3] - 16;
UINT8 xflip = flags & 0x80;
UINT8 yflip = (code & 0x80);
UINT8 color = flags & 0xf;
@@ -415,11 +415,11 @@ static SCREEN_UPDATE_IND16( ddayjlc )
for (y = 0; y < 32; y++)
for (x = 0; x < 32; x++)
{
- c = state->m_videoram[y * 32 + x];
+ c = m_videoram[y * 32 + x];
if (x > 1 && x < 30)
- drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1], c + state->m_char_bank * 0x100, 2, 0, 0, x*8, y*8, 0);
+ drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1], c + m_char_bank * 0x100, 2, 0, 0, x*8, y*8, 0);
else
- drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[1], c + state->m_char_bank * 0x100, 2, 0, 0, x*8, y*8);
+ drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[1], c + m_char_bank * 0x100, 2, 0, 0, x*8, y*8);
}
}
return 0;
@@ -533,7 +533,7 @@ static MACHINE_CONFIG_START( ddayjlc, ddayjlc_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(ddayjlc)
+ MCFG_SCREEN_UPDATE_DRIVER(ddayjlc_state, screen_update_ddayjlc)
MCFG_GFXDECODE(ddayjlc)
MCFG_PALETTE_LENGTH(0x200)
diff --git a/src/mame/drivers/ddealer.c b/src/mame/drivers/ddealer.c
index ba8b85606b6..d19d69b21a3 100644
--- a/src/mame/drivers/ddealer.c
+++ b/src/mame/drivers/ddealer.c
@@ -156,6 +156,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_ddealer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -264,12 +265,11 @@ static void ddealer_draw_video_layer( running_machine &machine, UINT16* vreg_bas
}
-static SCREEN_UPDATE_IND16( ddealer )
+UINT32 ddealer_state::screen_update_ddealer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ddealer_state *state = screen.machine().driver_data<ddealer_state>();
- state->m_back_tilemap->set_scrollx(0, state->m_flipscreen ? -192 : -64);
- state->m_back_tilemap->set_flip(state->m_flipscreen ? TILEMAP_FLIPY | TILEMAP_FLIPX : 0);
- state->m_back_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_back_tilemap->set_scrollx(0, m_flipscreen ? -192 : -64);
+ m_back_tilemap->set_flip(m_flipscreen ? TILEMAP_FLIPY | TILEMAP_FLIPX : 0);
+ m_back_tilemap->draw(bitmap, cliprect, 0, 0);
/* the fg tilemap handling is a little hacky right now,
i'm not sure if it should be a single tilemap with
@@ -277,28 +277,28 @@ static SCREEN_UPDATE_IND16( ddealer )
combined, the flipscreen case makes things more
difficult to understand */
- if (!state->m_flipscreen)
+ if (!m_flipscreen)
{
- if (state->m_vregs[0xcc / 2] & 0x80)
+ if (m_vregs[0xcc / 2] & 0x80)
{
- ddealer_draw_video_layer(screen.machine(), &state->m_vregs[0x1e0 / 2], state->m_left_fg_vram_top, state->m_left_fg_vram_bottom, bitmap, cliprect, state->m_flipscreen);
- ddealer_draw_video_layer(screen.machine(), &state->m_vregs[0xcc / 2], state->m_right_fg_vram_top, state->m_right_fg_vram_bottom, bitmap, cliprect, state->m_flipscreen);
+ ddealer_draw_video_layer(screen.machine(), &m_vregs[0x1e0 / 2], m_left_fg_vram_top, m_left_fg_vram_bottom, bitmap, cliprect, m_flipscreen);
+ ddealer_draw_video_layer(screen.machine(), &m_vregs[0xcc / 2], m_right_fg_vram_top, m_right_fg_vram_bottom, bitmap, cliprect, m_flipscreen);
}
else
{
- ddealer_draw_video_layer(screen.machine(), &state->m_vregs[0x1e0 / 2], state->m_left_fg_vram_top, state->m_left_fg_vram_bottom, bitmap, cliprect, state->m_flipscreen);
+ ddealer_draw_video_layer(screen.machine(), &m_vregs[0x1e0 / 2], m_left_fg_vram_top, m_left_fg_vram_bottom, bitmap, cliprect, m_flipscreen);
}
}
else
{
- if (state->m_vregs[0xcc / 2] & 0x80)
+ if (m_vregs[0xcc / 2] & 0x80)
{
- ddealer_draw_video_layer(screen.machine(), &state->m_vregs[0xcc / 2], state->m_left_fg_vram_top, state->m_left_fg_vram_bottom, bitmap, cliprect, state->m_flipscreen);
- ddealer_draw_video_layer(screen.machine(), &state->m_vregs[0x1e0 / 2], state->m_right_fg_vram_top, state->m_right_fg_vram_bottom, bitmap, cliprect, state->m_flipscreen);
+ ddealer_draw_video_layer(screen.machine(), &m_vregs[0xcc / 2], m_left_fg_vram_top, m_left_fg_vram_bottom, bitmap, cliprect, m_flipscreen);
+ ddealer_draw_video_layer(screen.machine(), &m_vregs[0x1e0 / 2], m_right_fg_vram_top, m_right_fg_vram_bottom, bitmap, cliprect, m_flipscreen);
}
else
{
- ddealer_draw_video_layer(screen.machine(), &state->m_vregs[0x1e0 / 2], state->m_left_fg_vram_top, state->m_left_fg_vram_bottom, bitmap, cliprect, state->m_flipscreen);
+ ddealer_draw_video_layer(screen.machine(), &m_vregs[0x1e0 / 2], m_left_fg_vram_top, m_left_fg_vram_bottom, bitmap, cliprect, m_flipscreen);
}
}
@@ -640,7 +640,7 @@ static MACHINE_CONFIG_START( ddealer, ddealer_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(ddealer)
+ MCFG_SCREEN_UPDATE_DRIVER(ddealer_state, screen_update_ddealer)
MCFG_PALETTE_LENGTH(0x400)
diff --git a/src/mame/drivers/ddenlovr.c b/src/mame/drivers/ddenlovr.c
index bc7d2bed0ec..650cbba36f0 100644
--- a/src/mame/drivers/ddenlovr.c
+++ b/src/mame/drivers/ddenlovr.c
@@ -1289,9 +1289,8 @@ static void copylayer(running_machine &machine, bitmap_ind16 &bitmap, const rect
}
}
-SCREEN_UPDATE_IND16(ddenlovr)
+UINT32 dynax_state::screen_update_ddenlovr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dynax_state *state = screen.machine().driver_data<dynax_state>();
static const int order[24][4] =
{
@@ -1303,22 +1302,22 @@ SCREEN_UPDATE_IND16(ddenlovr)
int pri;
- int enab = state->m_ddenlovr_layer_enable;
- int enab2 = state->m_ddenlovr_layer_enable2;
+ int enab = m_ddenlovr_layer_enable;
+ int enab2 = m_ddenlovr_layer_enable2;
#if 0
static int base = 0x0;
const UINT8 *gfx = screen.machine().root_device().memregion("blitter")->base();
int next;
- memset(state->m_ddenlovr_pixmap[0], 0, 512 * 512);
- memset(state->m_ddenlovr_pixmap[1], 0, 512 * 512);
- memset(state->m_ddenlovr_pixmap[2], 0, 512 * 512);
- memset(state->m_ddenlovr_pixmap[3], 0, 512 * 512);
- state->m_ddenlovr_dest_layer = 8;
- state->m_ddenlovr_blit_pen = 0;
- state->m_ddenlovr_blit_pen_mode = 0;
- state->m_ddenlovr_blit_y = 5;
- state->m_ddenlovr_clip_ctrl = 0x0f;
+ memset(m_ddenlovr_pixmap[0], 0, 512 * 512);
+ memset(m_ddenlovr_pixmap[1], 0, 512 * 512);
+ memset(m_ddenlovr_pixmap[2], 0, 512 * 512);
+ memset(m_ddenlovr_pixmap[3], 0, 512 * 512);
+ m_ddenlovr_dest_layer = 8;
+ m_ddenlovr_blit_pen = 0;
+ m_ddenlovr_blit_pen_mode = 0;
+ m_ddenlovr_blit_y = 5;
+ m_ddenlovr_clip_ctrl = 0x0f;
next = blit_draw(screen.machine(), base, 0);
popmessage("GFX %06x", base);
if (screen.machine().input().code_pressed(KEYCODE_S)) base = next;
@@ -1329,7 +1328,7 @@ SCREEN_UPDATE_IND16(ddenlovr)
if (screen.machine().input().code_pressed_once(KEYCODE_F)) { base++; while ((gfx[base] & 0xf0) != 0x30) base++; }
#endif
- bitmap.fill(state->m_ddenlovr_bgcolor, cliprect);
+ bitmap.fill(m_ddenlovr_bgcolor, cliprect);
#ifdef MAME_DEBUG
if (screen.machine().input().code_pressed(KEYCODE_Z))
@@ -1345,7 +1344,7 @@ SCREEN_UPDATE_IND16(ddenlovr)
mask2 = 0;
- if (state->m_extra_layers)
+ if (m_extra_layers)
{
if (screen.machine().input().code_pressed(KEYCODE_A)) mask2 |= 1;
if (screen.machine().input().code_pressed(KEYCODE_S)) mask2 |= 2;
@@ -1355,13 +1354,13 @@ SCREEN_UPDATE_IND16(ddenlovr)
if (mask || mask2)
{
- state->m_ddenlovr_layer_enable &= mask;
- state->m_ddenlovr_layer_enable2 &= mask2;
+ m_ddenlovr_layer_enable &= mask;
+ m_ddenlovr_layer_enable2 &= mask2;
}
}
#endif
- pri = state->m_ddenlovr_priority;
+ pri = m_ddenlovr_priority;
if (pri >= 24)
{
@@ -1374,9 +1373,9 @@ SCREEN_UPDATE_IND16(ddenlovr)
copylayer(screen.machine(), bitmap, cliprect, order[pri][2]);
copylayer(screen.machine(), bitmap, cliprect, order[pri][3]);
- if (state->m_extra_layers)
+ if (m_extra_layers)
{
- pri = state->m_ddenlovr_priority2;
+ pri = m_ddenlovr_priority2;
if (pri >= 24)
{
@@ -1390,8 +1389,8 @@ SCREEN_UPDATE_IND16(ddenlovr)
copylayer(screen.machine(), bitmap, cliprect, order[pri][3] + 4);
}
- state->m_ddenlovr_layer_enable = enab;
- state->m_ddenlovr_layer_enable2 = enab2;
+ m_ddenlovr_layer_enable = enab;
+ m_ddenlovr_layer_enable2 = enab2;
return 0;
}
@@ -8513,7 +8512,7 @@ static MACHINE_CONFIG_START( ddenlovr, dynax_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(336, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-16+5-1)
- MCFG_SCREEN_UPDATE_STATIC(ddenlovr)
+ MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_ddenlovr)
MCFG_PALETTE_LENGTH(0x100)
@@ -8637,7 +8636,7 @@ static MACHINE_CONFIG_START( quizchq, dynax_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(336, 256+22)
MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-16+5-1)
- MCFG_SCREEN_UPDATE_STATIC(ddenlovr)
+ MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_ddenlovr)
MCFG_PALETTE_LENGTH(0x100)
@@ -8728,7 +8727,7 @@ static MACHINE_CONFIG_START( mmpanic, dynax_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(336, 256+22)
MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-16+5-1)
- MCFG_SCREEN_UPDATE_STATIC(ddenlovr)
+ MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_ddenlovr)
MCFG_PALETTE_LENGTH(0x100)
@@ -8812,7 +8811,7 @@ static MACHINE_CONFIG_START( hanakanz, dynax_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(336, 256+22)
MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-11-1)
- MCFG_SCREEN_UPDATE_STATIC(ddenlovr)
+ MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_ddenlovr)
MCFG_PALETTE_LENGTH(0x200)
@@ -9228,7 +9227,7 @@ static MACHINE_CONFIG_START( jongtei, dynax_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(336, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 5, 256-11-1)
- MCFG_SCREEN_UPDATE_STATIC(ddenlovr)
+ MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_ddenlovr)
MCFG_PALETTE_LENGTH(0x200)
@@ -9269,7 +9268,7 @@ static MACHINE_CONFIG_START( sryudens, dynax_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(336, 256+22)
MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 0+5, 256-12-1)
- MCFG_SCREEN_UPDATE_STATIC(ddenlovr)
+ MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_ddenlovr)
MCFG_PALETTE_LENGTH(0x100)
@@ -9314,7 +9313,7 @@ static MACHINE_CONFIG_START( janshinp, dynax_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(336, 256+22)
MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 0+5, 256-12-1)
- MCFG_SCREEN_UPDATE_STATIC(ddenlovr)
+ MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_ddenlovr)
MCFG_PALETTE_LENGTH(0x100)
@@ -9388,7 +9387,7 @@ static MACHINE_CONFIG_START( seljan2, dynax_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(336, 256+22)
MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 0+5, 256-12-1)
- MCFG_SCREEN_UPDATE_STATIC(ddenlovr)
+ MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_ddenlovr)
MCFG_PALETTE_LENGTH(0x100)
@@ -9435,7 +9434,7 @@ static MACHINE_CONFIG_START( daimyojn, dynax_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(336, 256+22)
MCFG_SCREEN_VISIBLE_AREA(0, 336-1-1, 1, 256-15-1)
- MCFG_SCREEN_UPDATE_STATIC(ddenlovr)
+ MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_ddenlovr)
MCFG_PALETTE_LENGTH(0x200)
diff --git a/src/mame/drivers/ddragon.c b/src/mame/drivers/ddragon.c
index d4fb3043f1f..16bbeb7ad44 100644
--- a/src/mame/drivers/ddragon.c
+++ b/src/mame/drivers/ddragon.c
@@ -985,7 +985,7 @@ static MACHINE_CONFIG_START( ddragon, ddragon_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(ddragon)
+ MCFG_SCREEN_UPDATE_DRIVER(ddragon_state, screen_update_ddragon)
MCFG_VIDEO_START_OVERRIDE(ddragon_state,ddragon)
@@ -1048,7 +1048,7 @@ static MACHINE_CONFIG_START( ddragon6809, ddragon_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(ddragon)
+ MCFG_SCREEN_UPDATE_DRIVER(ddragon_state, screen_update_ddragon)
MCFG_VIDEO_START_OVERRIDE(ddragon_state,ddragon)
@@ -1094,7 +1094,7 @@ static MACHINE_CONFIG_START( ddragon2, ddragon_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(ddragon)
+ MCFG_SCREEN_UPDATE_DRIVER(ddragon_state, screen_update_ddragon)
MCFG_VIDEO_START_OVERRIDE(ddragon_state,ddragon)
diff --git a/src/mame/drivers/ddragon3.c b/src/mame/drivers/ddragon3.c
index 5571cf52db2..d95e036498c 100644
--- a/src/mame/drivers/ddragon3.c
+++ b/src/mame/drivers/ddragon3.c
@@ -602,7 +602,7 @@ static MACHINE_CONFIG_START( ddragon3, ddragon3_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 448, 0, 320, 272, 8, 248) /* HTOTAL and VTOTAL are guessed */
- MCFG_SCREEN_UPDATE_STATIC(ddragon3)
+ MCFG_SCREEN_UPDATE_DRIVER(ddragon3_state, screen_update_ddragon3)
MCFG_GFXDECODE(ddragon3)
MCFG_PALETTE_LENGTH(768)
@@ -636,7 +636,7 @@ static MACHINE_CONFIG_DERIVED( ctribe, ddragon3 )
MCFG_CPU_PROGRAM_MAP(ctribe_sound_map)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(ctribe)
+ MCFG_SCREEN_UPDATE_DRIVER(ddragon3_state, screen_update_ctribe)
MCFG_SOUND_MODIFY("ym2151")
MCFG_SOUND_ROUTES_RESET()
diff --git a/src/mame/drivers/ddribble.c b/src/mame/drivers/ddribble.c
index 85bca3ad893..ba59864cf75 100644
--- a/src/mame/drivers/ddribble.c
+++ b/src/mame/drivers/ddribble.c
@@ -302,7 +302,7 @@ static MACHINE_CONFIG_START( ddribble, ddribble_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
/* MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1) */
- MCFG_SCREEN_UPDATE_STATIC(ddribble)
+ MCFG_SCREEN_UPDATE_DRIVER(ddribble_state, screen_update_ddribble)
MCFG_GFXDECODE(ddribble)
MCFG_PALETTE_LENGTH(64 + 256)
diff --git a/src/mame/drivers/ddz.c b/src/mame/drivers/ddz.c
index e473dcc7793..49cff3f5cb8 100644
--- a/src/mame/drivers/ddz.c
+++ b/src/mame/drivers/ddz.c
@@ -23,6 +23,8 @@ public:
: driver_device(mconfig, type, tag) { }
virtual void video_start();
+ UINT32 screen_update_ddz(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void screen_eof_ddz(screen_device &screen, bool state);
};
@@ -35,12 +37,12 @@ void ddz_state::video_start()
}
-static SCREEN_UPDATE_RGB32(ddz)
+UINT32 ddz_state::screen_update_ddz(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
return 0;
}
-static SCREEN_VBLANK(ddz)
+void ddz_state::screen_eof_ddz(screen_device &screen, bool state)
{
}
@@ -75,8 +77,8 @@ static MACHINE_CONFIG_START( ddz, ddz_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(ddz)
- MCFG_SCREEN_VBLANK_STATIC(ddz)
+ MCFG_SCREEN_UPDATE_DRIVER(ddz_state, screen_update_ddz)
+ MCFG_SCREEN_VBLANK_DRIVER(ddz_state, screen_eof_ddz)
MCFG_PALETTE_LENGTH(8192)
diff --git a/src/mame/drivers/deadang.c b/src/mame/drivers/deadang.c
index 49d89a689d9..451d1ef46c8 100644
--- a/src/mame/drivers/deadang.c
+++ b/src/mame/drivers/deadang.c
@@ -253,7 +253,7 @@ static MACHINE_CONFIG_START( deadang, deadang_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(deadang)
+ MCFG_SCREEN_UPDATE_DRIVER(deadang_state, screen_update_deadang)
MCFG_GFXDECODE(deadang)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/dec0.c b/src/mame/drivers/dec0.c
index 5b7ef10c7b0..5a1ab49d6d3 100644
--- a/src/mame/drivers/dec0.c
+++ b/src/mame/drivers/dec0.c
@@ -1413,7 +1413,7 @@ static MACHINE_CONFIG_START( automat, dec0_automat_state )
// MCFG_SCREEN_REFRESH_RATE(57.41)
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */)
MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(automat)
+ MCFG_SCREEN_UPDATE_DRIVER(dec0_automat_state, screen_update_automat)
MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0_nodma)
MCFG_DEVICE_ADD("tilegen1", DECO_BAC06, 0)
@@ -1466,7 +1466,7 @@ static MACHINE_CONFIG_START( secretab, dec0_automat_state )
// MCFG_SCREEN_REFRESH_RATE(57.41)
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 57.41 Hz, 529us Vblank */)
MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(secretab)
+ MCFG_SCREEN_UPDATE_DRIVER(dec0_automat_state, screen_update_secretab)
MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0_nodma)
MCFG_DEVICE_ADD("tilegen1", DECO_BAC06, 0)
@@ -1525,7 +1525,7 @@ static MACHINE_CONFIG_DERIVED( hbarrel, dec0_base_sound )
MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
//MCFG_SCREEN_SIZE(32*8, 32*8)
//MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(hbarrel)
+ MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_hbarrel)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( baddudes, dec0_base_sound )
@@ -1545,7 +1545,7 @@ static MACHINE_CONFIG_DERIVED( baddudes, dec0_base_sound )
MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
// MCFG_SCREEN_SIZE(32*8, 32*8)
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(baddudes)
+ MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_baddudes)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( birdtry, dec0_base_sound )
@@ -1565,7 +1565,7 @@ static MACHINE_CONFIG_DERIVED( birdtry, dec0_base_sound )
MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
// MCFG_SCREEN_SIZE(32*8, 32*8)
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(birdtry)
+ MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_birdtry)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( robocop, dec0_base_sound )
@@ -1590,7 +1590,7 @@ static MACHINE_CONFIG_DERIVED( robocop, dec0_base_sound )
MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
// MCFG_SCREEN_SIZE(32*8, 32*8)
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(robocop)
+ MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_robocop)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( robocopb, dec0_base_sound )
@@ -1610,7 +1610,7 @@ static MACHINE_CONFIG_DERIVED( robocopb, dec0_base_sound )
MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
// MCFG_SCREEN_SIZE(32*8, 32*8)
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(robocop)
+ MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_robocop)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( hippodrm, dec0_base_sound )
@@ -1635,7 +1635,7 @@ static MACHINE_CONFIG_DERIVED( hippodrm, dec0_base_sound )
MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
// MCFG_SCREEN_SIZE(32*8, 32*8)
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(hippodrm)
+ MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_hippodrm)
MACHINE_CONFIG_END
MACHINE_RESET_MEMBER(dec0_state,slyspy)
@@ -1661,7 +1661,7 @@ static MACHINE_CONFIG_DERIVED( slyspy, dec0_base_sound_alt )
MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
// MCFG_SCREEN_SIZE(32*8, 32*8)
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(slyspy)
+ MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_slyspy)
MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0_nodma)
@@ -1688,7 +1688,7 @@ static MACHINE_CONFIG_DERIVED( midres, dec0_base_sound_alt )
MCFG_SCREEN_RAW_PARAMS(DEC0_PIXEL_CLOCK,DEC0_HTOTAL,DEC0_HBEND,DEC0_HBSTART,DEC0_VTOTAL,DEC0_VBEND,DEC0_VBSTART)
// MCFG_SCREEN_SIZE(32*8, 32*8)
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(midres)
+ MCFG_SCREEN_UPDATE_DRIVER(dec0_state, screen_update_midres)
MCFG_GFXDECODE(midres)
MCFG_VIDEO_START_OVERRIDE(dec0_state,dec0_nodma)
diff --git a/src/mame/drivers/dec8.c b/src/mame/drivers/dec8.c
index 1e5a898dc0e..78da8e36dc5 100644
--- a/src/mame/drivers/dec8.c
+++ b/src/mame/drivers/dec8.c
@@ -66,14 +66,13 @@ WRITE8_MEMBER(dec8_state::dec8_mxc06_karn_buffer_spriteram_w)
}
/* Only used by ghostb, gondo, garyoret, other games can control buffering */
-static SCREEN_VBLANK( dec8 )
+void dec8_state::screen_eof_dec8(screen_device &screen, bool state)
{
- dec8_state *state = screen.machine().driver_data<dec8_state>();
// rising edge
- if (vblank_on)
+ if (state)
{
address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
- state->dec8_mxc06_karn_buffer_spriteram_w(space, 0, 0);
+ dec8_mxc06_karn_buffer_spriteram_w(space, 0, 0);
}
}
@@ -2056,7 +2055,7 @@ static MACHINE_CONFIG_START( lastmisn, dec8_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* 58Hz, 529ms Vblank duration */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(lastmisn)
+ MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_lastmisn)
MCFG_GFXDECODE(shackled)
MCFG_PALETTE_LENGTH(1024)
@@ -2103,7 +2102,7 @@ static MACHINE_CONFIG_START( shackled, dec8_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* 58Hz, 529ms Vblank duration */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(shackled)
+ MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_shackled)
MCFG_GFXDECODE(shackled)
MCFG_PALETTE_LENGTH(1024)
@@ -2150,8 +2149,8 @@ static MACHINE_CONFIG_START( gondo, dec8_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 58Hz, 529ms Vblank duration */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(gondo)
- MCFG_SCREEN_VBLANK_STATIC(dec8)
+ MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_gondo)
+ MCFG_SCREEN_VBLANK_DRIVER(dec8_state, screen_eof_dec8)
MCFG_GFXDECODE(gondo)
MCFG_PALETTE_LENGTH(1024)
@@ -2198,8 +2197,8 @@ static MACHINE_CONFIG_START( garyoret, dec8_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 58Hz, 529ms Vblank duration */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(garyoret)
- MCFG_SCREEN_VBLANK_STATIC(dec8)
+ MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_garyoret)
+ MCFG_SCREEN_VBLANK_DRIVER(dec8_state, screen_eof_dec8)
MCFG_GFXDECODE(gondo)
MCFG_PALETTE_LENGTH(1024)
@@ -2249,8 +2248,8 @@ static MACHINE_CONFIG_START( ghostb, dec8_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* 58Hz, 529ms Vblank duration */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(ghostb)
- MCFG_SCREEN_VBLANK_STATIC(dec8)
+ MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_ghostb)
+ MCFG_SCREEN_VBLANK_DRIVER(dec8_state, screen_eof_dec8)
MCFG_GFXDECODE(ghostb)
MCFG_PALETTE_LENGTH(1024)
@@ -2299,7 +2298,7 @@ static MACHINE_CONFIG_START( csilver, dec8_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 58Hz, 529ms Vblank duration */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(lastmisn)
+ MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_lastmisn)
MCFG_GFXDECODE(shackled)
MCFG_PALETTE_LENGTH(1024)
@@ -2354,7 +2353,7 @@ static MACHINE_CONFIG_START( oscar, dec8_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* 58Hz, 529ms Vblank duration */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(oscar)
+ MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_oscar)
MCFG_GFXDECODE(oscar)
MCFG_PALETTE_LENGTH(512)
@@ -2395,7 +2394,7 @@ static MACHINE_CONFIG_START( srdarwin, dec8_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 58Hz, 529ms Vblank duration */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(srdarwin)
+ MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_srdarwin)
MCFG_GFXDECODE(srdarwin)
MCFG_PALETTE_LENGTH(144)
@@ -2445,7 +2444,7 @@ static MACHINE_CONFIG_START( cobracom, dec8_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 58Hz, 529ms Vblank duration */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(cobracom)
+ MCFG_SCREEN_UPDATE_DRIVER(dec8_state, screen_update_cobracom)
MCFG_GFXDECODE(cobracom)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/deco156.c b/src/mame/drivers/deco156.c
index f3b26a479e4..ce487616e59 100644
--- a/src/mame/drivers/deco156.c
+++ b/src/mame/drivers/deco156.c
@@ -54,6 +54,7 @@ public:
DECLARE_DRIVER_INIT(hvysmsh);
DECLARE_DRIVER_INIT(wcvol95);
virtual void video_start();
+ UINT32 screen_update_wcvol95(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -68,20 +69,19 @@ void deco156_state::video_start()
}
-static SCREEN_UPDATE_RGB32( wcvol95 )
+UINT32 deco156_state::screen_update_wcvol95(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
//FIXME: flip_screen_x should not be written!
- deco156_state *state = screen.machine().driver_data<deco156_state>();
- state->flip_screen_set_no_update(1);
+ flip_screen_set_no_update(1);
screen.machine().priority_bitmap.fill(0);
bitmap.fill(0);
- deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
+ deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x800);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x800);
+ deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
return 0;
}
@@ -363,7 +363,7 @@ static MACHINE_CONFIG_START( hvysmsh, deco156_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(wcvol95)
+ MCFG_SCREEN_UPDATE_DRIVER(deco156_state, screen_update_wcvol95)
MCFG_GFXDECODE(hvysmsh)
MCFG_PALETTE_LENGTH(1024)
@@ -400,7 +400,7 @@ static MACHINE_CONFIG_START( wcvol95, deco156_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(wcvol95)
+ MCFG_SCREEN_UPDATE_DRIVER(deco156_state, screen_update_wcvol95)
MCFG_GFXDECODE(hvysmsh)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/deco32.c b/src/mame/drivers/deco32.c
index 9d4d573a8bb..6c6c2377686 100644
--- a/src/mame/drivers/deco32.c
+++ b/src/mame/drivers/deco32.c
@@ -1748,8 +1748,8 @@ static MACHINE_CONFIG_START( captaven, deco32_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(42*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(captaven)
- MCFG_SCREEN_VBLANK_STATIC(captaven)
+ MCFG_SCREEN_UPDATE_DRIVER(deco32_state, screen_update_captaven)
+ MCFG_SCREEN_VBLANK_DRIVER(deco32_state, screen_eof_captaven)
MCFG_GFXDECODE(captaven)
MCFG_PALETTE_LENGTH(2048)
@@ -1799,7 +1799,7 @@ static MACHINE_CONFIG_START( fghthist, deco32_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(42*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(fghthist)
+ MCFG_SCREEN_UPDATE_DRIVER(deco32_state, screen_update_fghthist)
MCFG_GFXDECODE(fghthist)
MCFG_PALETTE_LENGTH(2048)
@@ -1845,7 +1845,7 @@ static MACHINE_CONFIG_START( fghthsta, deco32_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(42*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(fghthist)
+ MCFG_SCREEN_UPDATE_DRIVER(deco32_state, screen_update_fghthist)
MCFG_GFXDECODE(fghthist)
MCFG_PALETTE_LENGTH(2048)
@@ -1958,8 +1958,8 @@ static MACHINE_CONFIG_START( dragngun, dragngun_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(42*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(dragngun)
- MCFG_SCREEN_VBLANK_STATIC(dragngun)
+ MCFG_SCREEN_UPDATE_DRIVER(dragngun_state, screen_update_dragngun)
+ MCFG_SCREEN_VBLANK_DRIVER(dragngun_state, screen_eof_dragngun)
MCFG_BUFFERED_SPRITERAM32_ADD("spriteram")
@@ -2034,8 +2034,8 @@ static MACHINE_CONFIG_START( lockload, dragngun_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(42*8, 32*8+22)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(dragngun)
- MCFG_SCREEN_VBLANK_STATIC(dragngun)
+ MCFG_SCREEN_UPDATE_DRIVER(dragngun_state, screen_update_dragngun)
+ MCFG_SCREEN_VBLANK_DRIVER(dragngun_state, screen_eof_dragngun)
MCFG_BUFFERED_SPRITERAM32_ADD("spriteram")
@@ -2119,7 +2119,7 @@ static MACHINE_CONFIG_START( tattass, deco32_state )
MCFG_SCREEN_SIZE(42*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(nslasher)
+ MCFG_SCREEN_UPDATE_DRIVER(deco32_state, screen_update_nslasher)
MCFG_DECO16IC_ADD("tilegen1", tattass_deco16ic_tilegen1_intf)
MCFG_DECO16IC_ADD("tilegen2", tattass_deco16ic_tilegen2_intf)
@@ -2158,7 +2158,7 @@ static MACHINE_CONFIG_START( nslasher, deco32_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(42*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(nslasher)
+ MCFG_SCREEN_UPDATE_DRIVER(deco32_state, screen_update_nslasher)
MCFG_DECO16IC_ADD("tilegen1", tattass_deco16ic_tilegen1_intf)
MCFG_DECO16IC_ADD("tilegen2", tattass_deco16ic_tilegen2_intf)
diff --git a/src/mame/drivers/deco_ld.c b/src/mame/drivers/deco_ld.c
index fcfef1f14a3..b10d5d1b68a 100644
--- a/src/mame/drivers/deco_ld.c
+++ b/src/mame/drivers/deco_ld.c
@@ -146,6 +146,7 @@ public:
DECLARE_CUSTOM_INPUT_MEMBER(begas_vblank_r);
DECLARE_INPUT_CHANGED_MEMBER(coin_inserted);
virtual void machine_start();
+ UINT32 screen_update_rblaster(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
static void draw_sprites(running_machine &machine, bitmap_rgb32 &bitmap, const rectangle &cliprect, UINT8 *spriteram, UINT16 tile_bank )
@@ -193,23 +194,22 @@ static void draw_sprites(running_machine &machine, bitmap_rgb32 &bitmap, const r
}
}
-static SCREEN_UPDATE_RGB32( rblaster )
+UINT32 deco_ld_state::screen_update_rblaster(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- deco_ld_state *state = screen.machine().driver_data<deco_ld_state>();
gfx_element *gfx = screen.machine().gfx[0];
int y,x;
bitmap.fill(0, cliprect);
- draw_sprites(screen.machine(), bitmap,cliprect,state->m_vram1,0x000);
- draw_sprites(screen.machine(), bitmap,cliprect,state->m_vram0,0x100);
+ draw_sprites(screen.machine(), bitmap,cliprect,m_vram1,0x000);
+ draw_sprites(screen.machine(), bitmap,cliprect,m_vram0,0x100);
for (y=0;y<32;y++)
{
for (x=0;x<32;x++)
{
- int attr = state->m_attr0[x+y*32];
- int tile = state->m_vram0[x+y*32] | ((attr & 3) << 8);
+ int attr = m_attr0[x+y*32];
+ int tile = m_vram0[x+y*32] | ((attr & 3) << 8);
int colour = (6 & 0x7); /* TODO */
drawgfx_transpen(bitmap,cliprect,gfx,tile|0x400,colour,0,0,x*8,y*8,0);
@@ -220,8 +220,8 @@ static SCREEN_UPDATE_RGB32( rblaster )
{
for (x=0;x<32;x++)
{
- int attr = state->m_attr1[x+y*32];
- int tile = state->m_vram1[x+y*32] | ((attr & 3) << 8);
+ int attr = m_attr1[x+y*32];
+ int tile = m_vram1[x+y*32] | ((attr & 3) << 8);
int colour = (6 & 0x7); /* TODO */
drawgfx_transpen(bitmap,cliprect,gfx,tile,colour,0,0,x*8,y*8,0);
@@ -468,7 +468,7 @@ static MACHINE_CONFIG_START( rblaster, deco_ld_state )
// MCFG_QUANTUM_TIME(attotime::from_hz(6000))
MCFG_LASERDISC_LDV1000_ADD("laserdisc") //Sony LDP-1000A, is it truly compatible with the Pioneer?
- MCFG_LASERDISC_OVERLAY_STATIC(256, 256, rblaster)
+ MCFG_LASERDISC_OVERLAY_DRIVER(256, 256, deco_ld_state, screen_update_rblaster)
MCFG_LASERDISC_OVERLAY_CLIP(0, 256-1, 8, 240-1)
/* video hardware */
diff --git a/src/mame/drivers/deco_mlc.c b/src/mame/drivers/deco_mlc.c
index 011580091b1..73e699b3150 100644
--- a/src/mame/drivers/deco_mlc.c
+++ b/src/mame/drivers/deco_mlc.c
@@ -391,8 +391,8 @@ static MACHINE_CONFIG_START( avengrgs, deco_mlc_state )
MCFG_SCREEN_REFRESH_RATE(58)
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(mlc)
- MCFG_SCREEN_VBLANK_STATIC(mlc)
+ MCFG_SCREEN_UPDATE_DRIVER(deco_mlc_state, screen_update_mlc)
+ MCFG_SCREEN_VBLANK_DRIVER(deco_mlc_state, screen_eof_mlc)
MCFG_GFXDECODE(deco_mlc)
MCFG_PALETTE_LENGTH(2048)
@@ -423,8 +423,8 @@ static MACHINE_CONFIG_START( mlc, deco_mlc_state )
MCFG_SCREEN_REFRESH_RATE(58)
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(mlc)
- MCFG_SCREEN_VBLANK_STATIC(mlc)
+ MCFG_SCREEN_UPDATE_DRIVER(deco_mlc_state, screen_update_mlc)
+ MCFG_SCREEN_VBLANK_DRIVER(deco_mlc_state, screen_eof_mlc)
MCFG_GFXDECODE(deco_mlc)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/decocass.c b/src/mame/drivers/decocass.c
index f3f62a6d9ec..aa79aa04228 100644
--- a/src/mame/drivers/decocass.c
+++ b/src/mame/drivers/decocass.c
@@ -780,7 +780,7 @@ static MACHINE_CONFIG_START( decocass, decocass_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(HCLK, 384, 0*8, 256, 272, 1*8, 248)
- MCFG_SCREEN_UPDATE_STATIC(decocass)
+ MCFG_SCREEN_UPDATE_DRIVER(decocass_state, screen_update_decocass)
MCFG_GFXDECODE(decocass)
MCFG_PALETTE_LENGTH(32+2*8+2*4)
diff --git a/src/mame/drivers/deniam.c b/src/mame/drivers/deniam.c
index fde6aaf42be..0f7b4839481 100644
--- a/src/mame/drivers/deniam.c
+++ b/src/mame/drivers/deniam.c
@@ -286,7 +286,7 @@ static MACHINE_CONFIG_START( deniam16b, deniam_state )
MCFG_SCREEN_SIZE(512, 256)
//MCFG_SCREEN_VISIBLE_AREA(24*8, 64*8-1, 0*8, 28*8-1) // looks better but doesn't match hardware
MCFG_SCREEN_VISIBLE_AREA(24*8-4, 64*8-5, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(deniam)
+ MCFG_SCREEN_UPDATE_DRIVER(deniam_state, screen_update_deniam)
MCFG_GFXDECODE(deniam)
MCFG_PALETTE_LENGTH(2048)
@@ -318,7 +318,7 @@ static MACHINE_CONFIG_START( deniam16c, deniam_state )
MCFG_SCREEN_SIZE(512, 256)
//MCFG_SCREEN_VISIBLE_AREA(24*8, 64*8-1, 0*8, 28*8-1) // looks better but doesn't match hardware
MCFG_SCREEN_VISIBLE_AREA(24*8-4, 64*8-5, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(deniam)
+ MCFG_SCREEN_UPDATE_DRIVER(deniam_state, screen_update_deniam)
MCFG_GFXDECODE(deniam)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/deshoros.c b/src/mame/drivers/deshoros.c
index 08d0b8e7772..a59a28765ec 100644
--- a/src/mame/drivers/deshoros.c
+++ b/src/mame/drivers/deshoros.c
@@ -59,6 +59,8 @@ protected:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+public:
+ UINT32 screen_update_destiny(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -72,10 +74,9 @@ void destiny_state::video_start()
m_led_array[20] = 0;
}
-static SCREEN_UPDATE_IND16( destiny )
+UINT32 destiny_state::screen_update_destiny(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- destiny_state *state = screen.machine().driver_data<destiny_state>();
- popmessage("%s",state->m_led_array);
+ popmessage("%s",m_led_array);
return 0;
}
@@ -268,7 +269,7 @@ static MACHINE_CONFIG_START( destiny, destiny_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(48*8, 16*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 16*8-1)
- MCFG_SCREEN_UPDATE_STATIC(destiny)
+ MCFG_SCREEN_UPDATE_DRIVER(destiny_state, screen_update_destiny)
MCFG_PALETTE_LENGTH(16)
diff --git a/src/mame/drivers/destroyr.c b/src/mame/drivers/destroyr.c
index c1145352c8f..2b2515f4aec 100644
--- a/src/mame/drivers/destroyr.c
+++ b/src/mame/drivers/destroyr.c
@@ -51,12 +51,12 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void palette_init();
+ UINT32 screen_update_destroyr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
-static SCREEN_UPDATE_IND16( destroyr )
+UINT32 destroyr_state::screen_update_destroyr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- destroyr_state *state = screen.machine().driver_data<destroyr_state>();
int i, j;
bitmap.fill(0, cliprect);
@@ -64,8 +64,8 @@ static SCREEN_UPDATE_IND16( destroyr )
/* draw major objects */
for (i = 0; i < 16; i++)
{
- int attr = state->m_major_obj_ram[2 * i + 0] ^ 0xff;
- int horz = state->m_major_obj_ram[2 * i + 1];
+ int attr = m_major_obj_ram[2 * i + 0] ^ 0xff;
+ int horz = m_major_obj_ram[2 * i + 1];
int num = attr & 3;
int scan = attr & 4;
@@ -90,7 +90,7 @@ static SCREEN_UPDATE_IND16( destroyr )
{
for (j = 0; j < 32; j++)
{
- int num = state->m_alpha_num_ram[32 * i + j];
+ int num = m_alpha_num_ram[32 * i + j];
drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0], num, 0, 0, 0, 8 * j, 8 * i, 0);
}
@@ -99,9 +99,9 @@ static SCREEN_UPDATE_IND16( destroyr )
/* draw minor objects */
for (i = 0; i < 2; i++)
{
- int num = i << 4 | (state->m_minor_obj_ram[i + 0] & 0xf);
- int horz = 256 - state->m_minor_obj_ram[i + 2];
- int vert = 256 - state->m_minor_obj_ram[i + 4];
+ int num = i << 4 | (m_minor_obj_ram[i + 0] & 0xf);
+ int horz = 256 - m_minor_obj_ram[i + 2];
+ int vert = 256 - m_minor_obj_ram[i + 4];
drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1], num, 0, 0, 0, horz, vert, 0);
}
@@ -109,14 +109,14 @@ static SCREEN_UPDATE_IND16( destroyr )
/* draw waves */
for (i = 0; i < 4; i++)
{
- drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[3], state->m_wavemod ? 1 : 0, 0, 0, 0, 64 * i, 0x4e, 0);
+ drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[3], m_wavemod ? 1 : 0, 0, 0, 0, 64 * i, 0x4e, 0);
}
/* draw cursor */
for (i = 0; i < 256; i++)
{
if (i & 4)
- bitmap.pix16(state->m_cursor ^ 0xff, i) = 7;
+ bitmap.pix16(m_cursor ^ 0xff, i) = 7;
}
return 0;
}
@@ -460,7 +460,7 @@ static MACHINE_CONFIG_START( destroyr, destroyr_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(256, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(destroyr)
+ MCFG_SCREEN_UPDATE_DRIVER(destroyr_state, screen_update_destroyr)
MCFG_GFXDECODE(destroyr)
MCFG_PALETTE_LENGTH(8)
diff --git a/src/mame/drivers/dgpix.c b/src/mame/drivers/dgpix.c
index e818b66af2a..aa5f977b676 100644
--- a/src/mame/drivers/dgpix.c
+++ b/src/mame/drivers/dgpix.c
@@ -77,6 +77,7 @@ public:
DECLARE_DRIVER_INIT(kdynastg);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_dgpix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -291,15 +292,14 @@ void dgpix_state::video_start()
m_vram = auto_alloc_array(machine(), UINT32, 0x40000*2/4);
}
-static SCREEN_UPDATE_IND16( dgpix )
+UINT32 dgpix_state::screen_update_dgpix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dgpix_state *state = screen.machine().driver_data<dgpix_state>();
int y;
for (y = 0; y < 240; y++)
{
int x;
- UINT32 *src = &state->m_vram[(state->m_vbuffer ? 0 : 0x10000) | (y << 8)];
+ UINT32 *src = &m_vram[(m_vbuffer ? 0 : 0x10000) | (y << 8)];
UINT16 *dest = &bitmap.pix16(y);
for (x = 0; x < 320; x += 2)
@@ -342,7 +342,7 @@ static MACHINE_CONFIG_START( dgpix, dgpix_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(dgpix)
+ MCFG_SCREEN_UPDATE_DRIVER(dgpix_state, screen_update_dgpix)
MCFG_PALETTE_INIT(BBBBB_GGGGG_RRRRR)
MCFG_PALETTE_LENGTH(32768)
diff --git a/src/mame/drivers/dietgo.c b/src/mame/drivers/dietgo.c
index 5ad2461d581..ce0a4c83f2b 100644
--- a/src/mame/drivers/dietgo.c
+++ b/src/mame/drivers/dietgo.c
@@ -220,7 +220,7 @@ static MACHINE_CONFIG_START( dietgo, dietgo_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(dietgo)
+ MCFG_SCREEN_UPDATE_DRIVER(dietgo_state, screen_update_dietgo)
MCFG_PALETTE_LENGTH(1024)
MCFG_GFXDECODE(dietgo)
diff --git a/src/mame/drivers/discoboy.c b/src/mame/drivers/discoboy.c
index 247485ac1f5..420f6ebeef1 100644
--- a/src/mame/drivers/discoboy.c
+++ b/src/mame/drivers/discoboy.c
@@ -86,6 +86,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_discoboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -142,9 +143,8 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
-static SCREEN_UPDATE_IND16( discoboy )
+UINT32 discoboy_state::screen_update_discoboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- discoboy_state *state = screen.machine().driver_data<discoboy_state>();
UINT16 x, y;
int i;
int count = 0;
@@ -153,7 +153,7 @@ static SCREEN_UPDATE_IND16( discoboy )
{
UINT16 pal;
int r, g, b;
- pal = state->m_ram_1[i] | (state->m_ram_1[i + 1] << 8);
+ pal = m_ram_1[i] | (m_ram_1[i + 1] << 8);
b = ((pal >> 0) & 0xf) << 4;
g = ((pal >> 4) & 0xf) << 4;
@@ -166,7 +166,7 @@ static SCREEN_UPDATE_IND16( discoboy )
{
UINT16 pal;
int r,g,b;
- pal = state->m_ram_2[i] | (state->m_ram_2[i + 1] << 8);
+ pal = m_ram_2[i] | (m_ram_2[i + 1] << 8);
b = ((pal >> 0) & 0xf) << 4;
g = ((pal >> 4) & 0xf) << 4;
@@ -181,17 +181,17 @@ static SCREEN_UPDATE_IND16( discoboy )
{
for (x = 0; x < 64; x++)
{
- UINT16 tileno = state->m_ram_3[count] | (state->m_ram_3[count + 1] << 8);
+ UINT16 tileno = m_ram_3[count] | (m_ram_3[count + 1] << 8);
if (tileno > 0x2000)
{
- if ((state->m_gfxbank & 0x40) == 0x40)
+ if ((m_gfxbank & 0x40) == 0x40)
tileno = 0x2000 + (tileno & 0x1fff) + 0x2000;
else
tileno = 0x2000 + (tileno & 0x1fff) + 0x0000;
}
- drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[1], tileno, state->m_ram_att[count / 2], 0, 0, x*8, y*8);
+ drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[1], tileno, m_ram_att[count / 2], 0, 0, x*8, y*8);
count += 2;
}
}
@@ -511,7 +511,7 @@ static MACHINE_CONFIG_START( discoboy, discoboy_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(8*8, 512-1-8*8, 0+8, 256-1-8)
- MCFG_SCREEN_UPDATE_STATIC(discoboy)
+ MCFG_SCREEN_UPDATE_DRIVER(discoboy_state, screen_update_discoboy)
MCFG_GFXDECODE(discoboy)
MCFG_PALETTE_LENGTH(0x1000)
diff --git a/src/mame/drivers/diverboy.c b/src/mame/drivers/diverboy.c
index 9f13f5b0365..12e69de0b61 100644
--- a/src/mame/drivers/diverboy.c
+++ b/src/mame/drivers/diverboy.c
@@ -70,6 +70,7 @@ public:
DECLARE_WRITE8_MEMBER(okibank_w);
virtual void machine_start();
virtual void video_start();
+ UINT32 screen_update_diverboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -113,7 +114,7 @@ static void draw_sprites( running_machine& machine, bitmap_ind16 &bitmap, const
}
}
-static SCREEN_UPDATE_IND16(diverboy)
+UINT32 diverboy_state::screen_update_diverboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
// bitmap.fill(get_black_pen(screen.machine()), cliprect);
draw_sprites(screen.machine(), bitmap, cliprect);
@@ -269,7 +270,7 @@ static MACHINE_CONFIG_START( diverboy, diverboy_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8+4, 40*8+1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(diverboy)
+ MCFG_SCREEN_UPDATE_DRIVER(diverboy_state, screen_update_diverboy)
MCFG_PALETTE_LENGTH(0x400)
diff --git a/src/mame/drivers/djboy.c b/src/mame/drivers/djboy.c
index d953ab47ff9..80bb595b6fd 100644
--- a/src/mame/drivers/djboy.c
+++ b/src/mame/drivers/djboy.c
@@ -595,8 +595,8 @@ static MACHINE_CONFIG_START( djboy, djboy_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(djboy)
- MCFG_SCREEN_VBLANK_STATIC(djboy)
+ MCFG_SCREEN_UPDATE_DRIVER(djboy_state, screen_update_djboy)
+ MCFG_SCREEN_VBLANK_DRIVER(djboy_state, screen_eof_djboy)
MCFG_GFXDECODE(djboy)
MCFG_PALETTE_LENGTH(0x200)
diff --git a/src/mame/drivers/djmain.c b/src/mame/drivers/djmain.c
index b210d55eab7..78f646b546a 100644
--- a/src/mame/drivers/djmain.c
+++ b/src/mame/drivers/djmain.c
@@ -1471,7 +1471,7 @@ static MACHINE_CONFIG_START( djmain, djmain_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(12, 512-12-1, 0, 384-1)
- MCFG_SCREEN_UPDATE_STATIC(djmain)
+ MCFG_SCREEN_UPDATE_DRIVER(djmain_state, screen_update_djmain)
MCFG_PALETTE_LENGTH(0x4440/4)
MCFG_GFXDECODE(djmain)
diff --git a/src/mame/drivers/dkong.c b/src/mame/drivers/dkong.c
index d713f70ac70..b6042d6f12b 100644
--- a/src/mame/drivers/dkong.c
+++ b/src/mame/drivers/dkong.c
@@ -1661,7 +1661,7 @@ static MACHINE_CONFIG_START( dkong_base, dkong_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(dkong)
+ MCFG_SCREEN_UPDATE_DRIVER(dkong_state, screen_update_dkong)
MCFG_GFXDECODE(dkong)
MCFG_PALETTE_LENGTH(DK2B_PALETTE_LENGTH)
@@ -1724,7 +1724,7 @@ static MACHINE_CONFIG_START( dkong3, dkong_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(dkong)
+ MCFG_SCREEN_UPDATE_DRIVER(dkong_state, screen_update_dkong)
MCFG_GFXDECODE(dkong)
MCFG_PALETTE_LENGTH(DK3_PALETTE_LENGTH)
@@ -1752,7 +1752,7 @@ static MACHINE_CONFIG_DERIVED( pestplce, dkongjr )
MCFG_PALETTE_LENGTH(DK2B_PALETTE_LENGTH)
MCFG_PALETTE_INIT_OVERRIDE(dkong_state,dkong2b) /* wrong! */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(pestplce)
+ MCFG_SCREEN_UPDATE_DRIVER(dkong_state, screen_update_pestplce)
MACHINE_CONFIG_END
@@ -1790,7 +1790,7 @@ static MACHINE_CONFIG_DERIVED( spclforc, s2650 )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(spclforc)
+ MCFG_SCREEN_UPDATE_DRIVER(dkong_state, screen_update_spclforc)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/dlair.c b/src/mame/drivers/dlair.c
index 6a8543ca3b4..266fcceca50 100644
--- a/src/mame/drivers/dlair.c
+++ b/src/mame/drivers/dlair.c
@@ -113,6 +113,7 @@ public:
DECLARE_MACHINE_START(dlair);
DECLARE_MACHINE_RESET(dlair);
DECLARE_PALETTE_INIT(dleuro);
+ UINT32 screen_update_dleuro(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -226,10 +227,9 @@ PALETTE_INIT_MEMBER(dlair_state,dleuro)
*
*************************************/
-static SCREEN_UPDATE_IND16( dleuro )
+UINT32 dlair_state::screen_update_dleuro(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dlair_state *state = screen.machine().driver_data<dlair_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
int x, y;
/* redraw the overlay */
@@ -772,7 +772,7 @@ static MACHINE_CONFIG_START( dleuro, dlair_state )
MCFG_MACHINE_RESET_OVERRIDE(dlair_state,dlair)
MCFG_LASERDISC_22VP932_ADD("ld_22vp932")
- MCFG_LASERDISC_OVERLAY_STATIC(256, 256, dleuro)
+ MCFG_LASERDISC_OVERLAY_DRIVER(256, 256, dlair_state, screen_update_dleuro)
/* video hardware */
MCFG_LASERDISC_SCREEN_ADD_PAL("screen", "ld_22vp932")
diff --git a/src/mame/drivers/dmndrby.c b/src/mame/drivers/dmndrby.c
index e2a1b4a7c31..bfaac82f707 100644
--- a/src/mame/drivers/dmndrby.c
+++ b/src/mame/drivers/dmndrby.c
@@ -80,6 +80,7 @@ public:
TILE_GET_INFO_MEMBER(get_dmndrby_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_dderby(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -345,9 +346,8 @@ void dmndrby_state::video_start()
}
-static SCREEN_UPDATE_IND16(dderby)
+UINT32 dmndrby_state::screen_update_dderby(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dmndrby_state *state = screen.machine().driver_data<dmndrby_state>();
int x,y,count;
int off,scrolly;
gfx_element *gfx = screen.machine().gfx[0];
@@ -363,22 +363,22 @@ racetrack seems to be stored in 4th and 5th prom.
can we draw it with the tilemap? maybe not, the layout is a litle strange
*/
-// base = state->m_scroll_ram[0];
+// base = m_scroll_ram[0];
- off=0x1900-(state->m_bg*0x100)+(state->m_scroll_ram[1])*0x100;
- scrolly = 0xff-(state->m_scroll_ram[0]);
- if(state->m_scroll_ram[1]==0xff) off=0x1800;
+ off=0x1900-(m_bg*0x100)+(m_scroll_ram[1])*0x100;
+ scrolly = 0xff-(m_scroll_ram[0]);
+ if(m_scroll_ram[1]==0xff) off=0x1800;
for(x=0;x<16;x++) {
for(y=0;y<16;y++) {
- int chr = state->m_racetrack_tilemap_rom[off];
- int col = state->m_racetrack_tilemap_rom[off+0x2000]&0x1f;
- int flipx = state->m_racetrack_tilemap_rom[off+0x2000]&0x40;
+ int chr = m_racetrack_tilemap_rom[off];
+ int col = m_racetrack_tilemap_rom[off+0x2000]&0x1f;
+ int flipx = m_racetrack_tilemap_rom[off+0x2000]&0x40;
drawgfx_opaque(bitmap,cliprect,track,chr,col,flipx,0,y*16+scrolly,x*16);
// draw another bit of track
// a rubbish way of doing it
- chr = state->m_racetrack_tilemap_rom[off-0x100];
- col = state->m_racetrack_tilemap_rom[off+0x1f00]&0x1f;
- flipx = state->m_racetrack_tilemap_rom[off+0x1f00]&0x40;
+ chr = m_racetrack_tilemap_rom[off-0x100];
+ col = m_racetrack_tilemap_rom[off+0x1f00]&0x1f;
+ flipx = m_racetrack_tilemap_rom[off+0x1f00]&0x40;
drawgfx_opaque(bitmap,cliprect,track,chr,col,flipx,0,y*16-256+scrolly,x*16);
off++;
}
@@ -399,12 +399,12 @@ wouldnt like to say its the most effective way though...
int a=0;
int b=0;
int base = count*4;
- int sprx=state->m_sprite_ram[base+3];
- int spry=state->m_sprite_ram[base+2];
- //state->m_sprite_ram[base+1];
- int col = (state->m_sprite_ram[base+1]&0x1f);
- int anim = (state->m_sprite_ram[base]&0x3)*0x40; // animation frame - probably wrong but seems right
- int horse = (state->m_sprite_ram[base+1]&0x7)*8+7; // horse label from 1 - 6
+ int sprx=m_sprite_ram[base+3];
+ int spry=m_sprite_ram[base+2];
+ //m_sprite_ram[base+1];
+ int col = (m_sprite_ram[base+1]&0x1f);
+ int anim = (m_sprite_ram[base]&0x3)*0x40; // animation frame - probably wrong but seems right
+ int horse = (m_sprite_ram[base+1]&0x7)*8+7; // horse label from 1 - 6
for (a=0;a<8 ;a++)
{
@@ -427,10 +427,10 @@ wouldnt like to say its the most effective way though...
for(x=0;x<32;x++)
{
int tileno,bank,color;
- tileno=state->m_dderby_vidchars[count];
- bank=(state->m_dderby_vidattribs[count]&0x20)>>5;
+ tileno=m_dderby_vidchars[count];
+ bank=(m_dderby_vidattribs[count]&0x20)>>5;
tileno|=(bank<<8);
- color=((state->m_dderby_vidattribs[count])&0x1f);
+ color=((m_dderby_vidattribs[count])&0x1f);
drawgfx_transpen(bitmap,cliprect,gfx,tileno,color,0,0,x*8,y*8,(tileno == 0x38) ? 0 : -1);
@@ -527,7 +527,7 @@ static MACHINE_CONFIG_START( dderby, dmndrby_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(dderby)
+ MCFG_SCREEN_UPDATE_DRIVER(dmndrby_state, screen_update_dderby)
MCFG_GFXDECODE(dmndrby)
MCFG_PALETTE_LENGTH(0x300)
diff --git a/src/mame/drivers/docastle.c b/src/mame/drivers/docastle.c
index eda75ba4ad4..ff69b5d7460 100644
--- a/src/mame/drivers/docastle.c
+++ b/src/mame/drivers/docastle.c
@@ -620,7 +620,7 @@ static MACHINE_CONFIG_START( docastle, docastle_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(docastle)
+ MCFG_SCREEN_UPDATE_DRIVER(docastle_state, screen_update_docastle)
MCFG_GFXDECODE(docastle)
MCFG_PALETTE_LENGTH(512)
diff --git a/src/mame/drivers/dogfgt.c b/src/mame/drivers/dogfgt.c
index 3a1ce7e4b1f..729168fd2f4 100644
--- a/src/mame/drivers/dogfgt.c
+++ b/src/mame/drivers/dogfgt.c
@@ -256,7 +256,7 @@ static MACHINE_CONFIG_START( dogfgt, dogfgt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(dogfgt)
+ MCFG_SCREEN_UPDATE_DRIVER(dogfgt_state, screen_update_dogfgt)
MCFG_GFXDECODE(dogfgt)
MCFG_PALETTE_LENGTH(16+64)
diff --git a/src/mame/drivers/dominob.c b/src/mame/drivers/dominob.c
index f37940464cb..e3fd1bdde57 100644
--- a/src/mame/drivers/dominob.c
+++ b/src/mame/drivers/dominob.c
@@ -85,6 +85,7 @@ public:
DECLARE_WRITE8_MEMBER(dominob_d008_w);
DECLARE_READ8_MEMBER(dominob_unk_port02_r);
virtual void video_start();
+ UINT32 screen_update_dominob(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
void dominob_state::video_start()
@@ -122,9 +123,8 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
-static SCREEN_UPDATE_IND16( dominob )
+UINT32 dominob_state::screen_update_dominob(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dominob_state *state = screen.machine().driver_data<dominob_state>();
int x,y;
int index = 0;
@@ -136,8 +136,8 @@ static SCREEN_UPDATE_IND16( dominob )
drawgfx_opaque(bitmap,
cliprect,
screen.machine().gfx[1],
- state->m_bgram[index] + 256 * (state->m_bgram[index + 1] & 0xf),
- state->m_bgram[index + 1] >> 4,
+ m_bgram[index] + 256 * (m_bgram[index + 1] & 0xf),
+ m_bgram[index + 1] >> 4,
0, 0,
x * 32, y * 32);
index += 2;
@@ -151,8 +151,8 @@ static SCREEN_UPDATE_IND16( dominob )
drawgfx_transpen( bitmap,
cliprect,
screen.machine().gfx[0],
- state->m_videoram[(y * 32 + x) * 2 + 1] + (state->m_videoram[(y * 32 + x) * 2] & 7) * 256,
- (state->m_videoram[(y * 32 + x) * 2] >> 3),
+ m_videoram[(y * 32 + x) * 2 + 1] + (m_videoram[(y * 32 + x) * 2] & 7) * 256,
+ (m_videoram[(y * 32 + x) * 2] >> 3),
0, 0,
x * 8, y * 8,0);
}
@@ -307,7 +307,7 @@ static MACHINE_CONFIG_START( dominob, dominob_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(dominob)
+ MCFG_SCREEN_UPDATE_DRIVER(dominob_state, screen_update_dominob)
MCFG_GFXDECODE(dominob)
MCFG_PALETTE_LENGTH(512)
diff --git a/src/mame/drivers/dooyong.c b/src/mame/drivers/dooyong.c
index 7efa878a52c..3a1700401f1 100644
--- a/src/mame/drivers/dooyong.c
+++ b/src/mame/drivers/dooyong.c
@@ -882,7 +882,7 @@ static MACHINE_CONFIG_START( lastday, dooyong_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(lastday)
+ MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_lastday)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(lastday)
@@ -924,7 +924,7 @@ static MACHINE_CONFIG_START( gulfstrm, dooyong_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(gulfstrm)
+ MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_gulfstrm)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(lastday)
@@ -957,7 +957,7 @@ static MACHINE_CONFIG_START( pollux, dooyong_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(pollux)
+ MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_pollux)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(lastday)
@@ -989,7 +989,7 @@ static MACHINE_CONFIG_START( bluehawk, dooyong_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(bluehawk)
+ MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_bluehawk)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(bluehawk)
@@ -1021,7 +1021,7 @@ static MACHINE_CONFIG_START( flytiger, dooyong_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(flytiger)
+ MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_flytiger)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(flytiger)
@@ -1051,7 +1051,7 @@ static MACHINE_CONFIG_START( primella, dooyong_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 0*8, 32*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(primella)
+ MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_primella)
MCFG_GFXDECODE(primella)
MCFG_PALETTE_LENGTH(1024)
@@ -1092,7 +1092,7 @@ static MACHINE_CONFIG_START( rshark, dooyong_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(rshark)
+ MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_rshark)
MCFG_SCREEN_VBLANK_DEVICE("spriteram16", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(rshark)
@@ -1122,7 +1122,7 @@ static MACHINE_CONFIG_START( superx, dooyong_state ) // dif mem map
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(rshark)
+ MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_rshark)
MCFG_SCREEN_VBLANK_DEVICE("spriteram16", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(rshark)
@@ -1152,7 +1152,7 @@ static MACHINE_CONFIG_START( popbingo, dooyong_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(popbingo)
+ MCFG_SCREEN_UPDATE_DRIVER(dooyong_state, screen_update_popbingo)
MCFG_SCREEN_VBLANK_DEVICE("spriteram16", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(popbingo)
diff --git a/src/mame/drivers/dorachan.c b/src/mame/drivers/dorachan.c
index 355e8c7f7df..cee73b77946 100644
--- a/src/mame/drivers/dorachan.c
+++ b/src/mame/drivers/dorachan.c
@@ -35,6 +35,7 @@ public:
DECLARE_CUSTOM_INPUT_MEMBER(dorachan_v128_r);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_dorachan(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -81,18 +82,17 @@ static void get_pens(pen_t *pens)
}
-static SCREEN_UPDATE_RGB32( dorachan )
+UINT32 dorachan_state::screen_update_dorachan(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- dorachan_state *state = screen.machine().driver_data<dorachan_state>();
pen_t pens[NUM_PENS];
offs_t offs;
const UINT8 *color_map_base;
get_pens(pens);
- color_map_base = state->memregion("proms")->base();
+ color_map_base = memregion("proms")->base();
- for (offs = 0; offs < state->m_videoram.bytes(); offs++)
+ for (offs = 0; offs < m_videoram.bytes(); offs++)
{
int i;
UINT8 fore_color;
@@ -103,9 +103,9 @@ static SCREEN_UPDATE_RGB32( dorachan )
/* the need for +1 is extremely unusual, but definetely correct */
offs_t color_address = ((((offs << 2) & 0x03e0) | (offs >> 8)) + 1) & 0x03ff;
- UINT8 data = state->m_videoram[offs];
+ UINT8 data = m_videoram[offs];
- if (state->m_flip_screen)
+ if (m_flip_screen)
fore_color = (color_map_base[color_address] >> 3) & 0x07;
else
fore_color = (color_map_base[color_address] >> 0) & 0x07;
@@ -251,7 +251,7 @@ static MACHINE_CONFIG_START( dorachan, dorachan_state )
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 1*8, 31*8-1)
MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_UPDATE_STATIC(dorachan)
+ MCFG_SCREEN_UPDATE_DRIVER(dorachan_state, screen_update_dorachan)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/dotrikun.c b/src/mame/drivers/dotrikun.c
index ad0413fb758..7e4bd3ffdcf 100644
--- a/src/mame/drivers/dotrikun.c
+++ b/src/mame/drivers/dotrikun.c
@@ -39,6 +39,7 @@ public:
DECLARE_WRITE8_MEMBER(dotrikun_color_w);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_dotrikun(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -62,19 +63,18 @@ WRITE8_MEMBER(dotrikun_state::dotrikun_color_w)
}
-static SCREEN_UPDATE_RGB32( dotrikun )
+UINT32 dotrikun_state::screen_update_dotrikun(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- dotrikun_state *state = screen.machine().driver_data<dotrikun_state>();
int x,y,i;
- pen_t back_pen = MAKE_RGB(pal1bit(state->m_color >> 3), pal1bit(state->m_color >> 4), pal1bit(state->m_color >> 5));
- pen_t fore_pen = MAKE_RGB(pal1bit(state->m_color >> 0), pal1bit(state->m_color >> 1), pal1bit(state->m_color >> 2));
+ pen_t back_pen = MAKE_RGB(pal1bit(m_color >> 3), pal1bit(m_color >> 4), pal1bit(m_color >> 5));
+ pen_t fore_pen = MAKE_RGB(pal1bit(m_color >> 0), pal1bit(m_color >> 1), pal1bit(m_color >> 2));
for(y = (cliprect.min_y & ~1); y < cliprect.max_y; y+=2)
{
for (x = 0; x < 256; x+=16)
{
- UINT8 data = state->m_dotrikun_bitmap[((x/16)+((y/2)*16))];
+ UINT8 data = m_dotrikun_bitmap[((x/16)+((y/2)*16))];
for (i = 0; i < 8; i++)
{
@@ -161,7 +161,7 @@ static MACHINE_CONFIG_START( dotrikun, dotrikun_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK, 256+32, 0, 256, 192+32, 0, 192) // FIXME: h/v params of this are completely inaccurate, shows it especially under the "CRT test"
- MCFG_SCREEN_UPDATE_STATIC(dotrikun)
+ MCFG_SCREEN_UPDATE_DRIVER(dotrikun_state, screen_update_dotrikun)
/* sound hardware */
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/dragrace.c b/src/mame/drivers/dragrace.c
index 83f0e6565a9..1fe7413dc36 100644
--- a/src/mame/drivers/dragrace.c
+++ b/src/mame/drivers/dragrace.c
@@ -343,7 +343,7 @@ static MACHINE_CONFIG_START( dragrace, dragrace_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(256, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(dragrace)
+ MCFG_SCREEN_UPDATE_DRIVER(dragrace_state, screen_update_dragrace)
MCFG_GFXDECODE(dragrace)
MCFG_PALETTE_LENGTH(16)
diff --git a/src/mame/drivers/dreamwld.c b/src/mame/drivers/dreamwld.c
index a1fd4dd6b0a..0beaa64431f 100644
--- a/src/mame/drivers/dreamwld.c
+++ b/src/mame/drivers/dreamwld.c
@@ -163,6 +163,8 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_dreamwld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_dreamwld(screen_device &screen, bool state);
};
@@ -284,35 +286,33 @@ void dreamwld_state::video_start()
}
-SCREEN_VBLANK( dreamwld )
+void dreamwld_state::screen_eof_dreamwld(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- dreamwld_state *state = screen.machine().driver_data<dreamwld_state>();
- memcpy(state->m_spritebuf2, state->m_spritebuf1, 0x2000);
- memcpy(state->m_spritebuf1, state->m_spriteram, 0x2000);
+ memcpy(m_spritebuf2, m_spritebuf1, 0x2000);
+ memcpy(m_spritebuf1, m_spriteram, 0x2000);
}
}
-static SCREEN_UPDATE_IND16( dreamwld )
+UINT32 dreamwld_state::screen_update_dreamwld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dreamwld_state *state = screen.machine().driver_data<dreamwld_state>();
// int tm0size, tm1size;
tilemap_t *tmptilemap0, *tmptilemap1;
- tmptilemap0 = state->m_bg_tilemap;
- tmptilemap1 = state->m_bg2_tilemap;
+ tmptilemap0 = m_bg_tilemap;
+ tmptilemap1 = m_bg2_tilemap;
- int layer0_scrolly = state->m_vregs[(0x400 / 4)] + 32;
- int layer1_scrolly = state->m_vregs[(0x400 / 4) + 2] + 32;
+ int layer0_scrolly = m_vregs[(0x400 / 4)] + 32;
+ int layer1_scrolly = m_vregs[(0x400 / 4) + 2] + 32;
- int layer0_scrollx = state->m_vregs[(0x400 / 4) + 1] + 3;
- int layer1_scrollx = state->m_vregs[(0x400 / 4) + 3] + 5;
- UINT32 layer0_ctrl = state->m_vregs[0x412 / 4];
- UINT32 layer1_ctrl = state->m_vregs[0x416 / 4];
+ int layer0_scrollx = m_vregs[(0x400 / 4) + 1] + 3;
+ int layer1_scrollx = m_vregs[(0x400 / 4) + 3] + 5;
+ UINT32 layer0_ctrl = m_vregs[0x412 / 4];
+ UINT32 layer1_ctrl = m_vregs[0x416 / 4];
tmptilemap0->set_scrolly(0, layer0_scrolly);
tmptilemap1->set_scrolly(0, layer1_scrolly);
@@ -342,7 +342,7 @@ static SCREEN_UPDATE_IND16( dreamwld )
int x0 = 0, x1 = 0;
/* layer 0 */
- UINT16 *vregs = reinterpret_cast<UINT16 *>(state->m_vregs.target());
+ UINT16 *vregs = reinterpret_cast<UINT16 *>(m_vregs.target());
if (layer0_ctrl & 0x0300)
{
if (layer0_ctrl & 0x0200)
@@ -377,19 +377,19 @@ static SCREEN_UPDATE_IND16( dreamwld )
}
- state->m_tilebank[0] = (state->m_vregs[(0x400 / 4) + 4] >> 6) & 1;
- state->m_tilebank[1] = (state->m_vregs[(0x400 / 4) + 5] >> 6) & 1;
+ m_tilebank[0] = (m_vregs[(0x400 / 4) + 4] >> 6) & 1;
+ m_tilebank[1] = (m_vregs[(0x400 / 4) + 5] >> 6) & 1;
- if (state->m_tilebank[0] != state->m_tilebankold[0])
+ if (m_tilebank[0] != m_tilebankold[0])
{
- state->m_tilebankold[0] = state->m_tilebank[0];
- state->m_bg_tilemap->mark_all_dirty();
+ m_tilebankold[0] = m_tilebank[0];
+ m_bg_tilemap->mark_all_dirty();
}
- if (state->m_tilebank[1] != state->m_tilebankold[1])
+ if (m_tilebank[1] != m_tilebankold[1])
{
- state->m_tilebankold[1] = state->m_tilebank[1];
- state->m_bg2_tilemap->mark_all_dirty();
+ m_tilebankold[1] = m_tilebank[1];
+ m_bg2_tilemap->mark_all_dirty();
}
tmptilemap0->draw(bitmap, cliprect, 0, 0);
@@ -598,8 +598,8 @@ static MACHINE_CONFIG_START( baryon, dreamwld_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
MCFG_SCREEN_SIZE(512,256)
MCFG_SCREEN_VISIBLE_AREA(0, 304-1, 0, 224-1)
- MCFG_SCREEN_UPDATE_STATIC(dreamwld)
- MCFG_SCREEN_VBLANK_STATIC(dreamwld)
+ MCFG_SCREEN_UPDATE_DRIVER(dreamwld_state, screen_update_dreamwld)
+ MCFG_SCREEN_VBLANK_DRIVER(dreamwld_state, screen_eof_dreamwld)
MCFG_PALETTE_LENGTH(0x1000)
MCFG_GFXDECODE(dreamwld)
diff --git a/src/mame/drivers/drgnmst.c b/src/mame/drivers/drgnmst.c
index e046f153a8a..a866ba0021c 100644
--- a/src/mame/drivers/drgnmst.c
+++ b/src/mame/drivers/drgnmst.c
@@ -411,7 +411,7 @@ static MACHINE_CONFIG_START( drgnmst, drgnmst_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, 56*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(drgnmst)
+ MCFG_SCREEN_UPDATE_DRIVER(drgnmst_state, screen_update_drgnmst)
MCFG_PALETTE_LENGTH(0x2000)
diff --git a/src/mame/drivers/dribling.c b/src/mame/drivers/dribling.c
index c3cea192ea0..85963f36b8c 100644
--- a/src/mame/drivers/dribling.c
+++ b/src/mame/drivers/dribling.c
@@ -319,7 +319,7 @@ static MACHINE_CONFIG_START( dribling, dribling_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 255, 40, 255)
- MCFG_SCREEN_UPDATE_STATIC(dribling)
+ MCFG_SCREEN_UPDATE_DRIVER(dribling_state, screen_update_dribling)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/drmicro.c b/src/mame/drivers/drmicro.c
index 738806a9c06..fe53f04931b 100644
--- a/src/mame/drivers/drmicro.c
+++ b/src/mame/drivers/drmicro.c
@@ -274,7 +274,7 @@ static MACHINE_CONFIG_START( drmicro, drmicro_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(drmicro)
+ MCFG_SCREEN_UPDATE_DRIVER(drmicro_state, screen_update_drmicro)
MCFG_GFXDECODE(drmicro)
MCFG_PALETTE_LENGTH(512)
diff --git a/src/mame/drivers/drtomy.c b/src/mame/drivers/drtomy.c
index 684ce096e67..daf58c8f81c 100644
--- a/src/mame/drivers/drtomy.c
+++ b/src/mame/drivers/drtomy.c
@@ -40,6 +40,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_drtomy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -131,12 +132,11 @@ void drtomy_state::video_start()
m_tilemap_fg->set_transparent_pen(0);
}
-static SCREEN_UPDATE_IND16( drtomy )
+UINT32 drtomy_state::screen_update_drtomy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- drtomy_state *state = screen.machine().driver_data<drtomy_state>();
- state->m_tilemap_bg->draw(bitmap, cliprect, 0, 0);
- state->m_tilemap_fg->draw(bitmap, cliprect, 0, 0);
+ m_tilemap_bg->draw(bitmap, cliprect, 0, 0);
+ m_tilemap_fg->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
@@ -309,7 +309,7 @@ static MACHINE_CONFIG_START( drtomy, drtomy_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*16, 32*16)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(drtomy)
+ MCFG_SCREEN_UPDATE_DRIVER(drtomy_state, screen_update_drtomy)
MCFG_GFXDECODE(drtomy)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/drw80pkr.c b/src/mame/drivers/drw80pkr.c
index 45e83a7c725..20e0a85a665 100644
--- a/src/mame/drivers/drw80pkr.c
+++ b/src/mame/drivers/drw80pkr.c
@@ -70,6 +70,7 @@ public:
virtual void machine_start();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_drw80pkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -339,10 +340,9 @@ void drw80pkr_state::video_start()
m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(drw80pkr_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 24, 27);
}
-static SCREEN_UPDATE_IND16( drw80pkr )
+UINT32 drw80pkr_state::screen_update_drw80pkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- drw80pkr_state *state = screen.machine().driver_data<drw80pkr_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -477,7 +477,7 @@ static MACHINE_CONFIG_START( drw80pkr, drw80pkr_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE((31+1)*8, (31+1)*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 24*8-1, 0*8, 27*8-1)
- MCFG_SCREEN_UPDATE_STATIC(drw80pkr)
+ MCFG_SCREEN_UPDATE_DRIVER(drw80pkr_state, screen_update_drw80pkr)
MCFG_GFXDECODE(drw80pkr)
MCFG_PALETTE_LENGTH(16*16)
diff --git a/src/mame/drivers/dunhuang.c b/src/mame/drivers/dunhuang.c
index 7ab60f6245c..3ee886db00c 100644
--- a/src/mame/drivers/dunhuang.c
+++ b/src/mame/drivers/dunhuang.c
@@ -122,6 +122,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_dunhuang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -158,9 +159,8 @@ void dunhuang_state::video_start()
save_item(NAME(m_paldata));
}
-static SCREEN_UPDATE_IND16( dunhuang )
+UINT32 dunhuang_state::screen_update_dunhuang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dunhuang_state *state = screen.machine().driver_data<dunhuang_state>();
int layers_ctrl = -1;
#if DUNHUANG_DEBUG
@@ -175,19 +175,19 @@ if (screen.machine().input().code_pressed(KEYCODE_Z))
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- switch (state->m_layers)
+ switch (m_layers)
{
case 0x04: // girl select: bg over fg
- if (layers_ctrl & 2) state->m_tmap2->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- if (layers_ctrl & 1) state->m_tmap->draw(bitmap, cliprect, 0, 0);
+ if (layers_ctrl & 2) m_tmap2->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ if (layers_ctrl & 1) m_tmap->draw(bitmap, cliprect, 0, 0);
break;
case 0x05: // dips: must hide fg
- if (layers_ctrl & 1) state->m_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ if (layers_ctrl & 1) m_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
break;
case 0x07: // game,demo: fg over bg
default:
- if (layers_ctrl & 1) state->m_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- if (layers_ctrl & 2) state->m_tmap2->draw(bitmap, cliprect, 0, 0);
+ if (layers_ctrl & 1) m_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ if (layers_ctrl & 2) m_tmap2->draw(bitmap, cliprect, 0, 0);
break;
}
@@ -830,7 +830,7 @@ static MACHINE_CONFIG_START( dunhuang, dunhuang_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0+8, 512-8-1, 0+16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(dunhuang)
+ MCFG_SCREEN_UPDATE_DRIVER(dunhuang_state, screen_update_dunhuang)
MCFG_GFXDECODE(dunhuang)
MCFG_PALETTE_LENGTH(0x100)
diff --git a/src/mame/drivers/dwarfd.c b/src/mame/drivers/dwarfd.c
index f0a5903ed76..f34b13b04b6 100644
--- a/src/mame/drivers/dwarfd.c
+++ b/src/mame/drivers/dwarfd.c
@@ -349,6 +349,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_dwarfd(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -847,7 +848,7 @@ static void drawCrt( running_machine &machine, bitmap_rgb32 &bitmap,const rectan
}
-static SCREEN_UPDATE_RGB32( dwarfd )
+UINT32 dwarfd_state::screen_update_dwarfd(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
bitmap.fill(get_black_pen(screen.machine()), cliprect);
drawCrt(screen.machine(), bitmap, cliprect);
@@ -1080,7 +1081,7 @@ static MACHINE_CONFIG_START( dwarfd, dwarfd_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(272*2, 200+4*8)
MCFG_SCREEN_VISIBLE_AREA(0, 272*2-1, 0, 200-1)
- MCFG_SCREEN_UPDATE_STATIC(dwarfd)
+ MCFG_SCREEN_UPDATE_DRIVER(dwarfd_state, screen_update_dwarfd)
MCFG_GFXDECODE(dwarfd)
MCFG_PALETTE_LENGTH(0x100)
diff --git a/src/mame/drivers/dynadice.c b/src/mame/drivers/dynadice.c
index 0652e8a4b50..65e5901a88f 100644
--- a/src/mame/drivers/dynadice.c
+++ b/src/mame/drivers/dynadice.c
@@ -65,6 +65,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_dynadice(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -212,13 +213,12 @@ void dynadice_state::video_start()
m_bg_tilemap->set_scrollx(0, -16);
}
-static SCREEN_UPDATE_IND16( dynadice )
+UINT32 dynadice_state::screen_update_dynadice(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dynadice_state *state = screen.machine().driver_data<dynadice_state>();
rectangle myclip = cliprect;
myclip.max_x = 15;
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_top_tilemap->draw(bitmap, myclip, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_top_tilemap->draw(bitmap, myclip, 0, 0);
return 0;
}
@@ -259,7 +259,7 @@ static MACHINE_CONFIG_START( dynadice, dynadice_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256+16, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 34*8-1, 3*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(dynadice)
+ MCFG_SCREEN_UPDATE_DRIVER(dynadice_state, screen_update_dynadice)
MCFG_GFXDECODE(dynadice)
MCFG_PALETTE_LENGTH(8)
diff --git a/src/mame/drivers/dynax.c b/src/mame/drivers/dynax.c
index 0d3d1994073..dda1ca86c4a 100644
--- a/src/mame/drivers/dynax.c
+++ b/src/mame/drivers/dynax.c
@@ -4301,7 +4301,7 @@ static MACHINE_CONFIG_START( hanamai, dynax_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1-4, 16+8, 255-8)
- MCFG_SCREEN_UPDATE_STATIC(hanamai)
+ MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_hanamai)
MCFG_PALETTE_LENGTH(512)
@@ -4358,7 +4358,7 @@ static MACHINE_CONFIG_START( hnoridur, dynax_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256+22)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1-4, 16, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(hnoridur)
+ MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_hnoridur)
MCFG_PALETTE_LENGTH(16*256)
@@ -4403,7 +4403,7 @@ static MACHINE_CONFIG_START( hjingi, dynax_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1-4, 16, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(hnoridur)
+ MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_hnoridur)
MCFG_PALETTE_LENGTH(16*256)
@@ -4461,7 +4461,7 @@ static MACHINE_CONFIG_START( sprtmtch, dynax_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(sprtmtch)
+ MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_sprtmtch)
MCFG_PALETTE_LENGTH(512)
@@ -4503,7 +4503,7 @@ static MACHINE_CONFIG_START( mjfriday, dynax_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(mjdialq2)
+ MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_mjdialq2)
MCFG_PALETTE_LENGTH(512)
@@ -4667,14 +4667,14 @@ static MACHINE_CONFIG_START( jantouki, dynax_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(jantouki_top)
+ MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_jantouki_top)
MCFG_SCREEN_ADD("bottom", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(jantouki_bottom)
+ MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_jantouki_bottom)
MCFG_PALETTE_INIT_OVERRIDE(dynax_state,sprtmtch) // static palette
MCFG_VIDEO_START_OVERRIDE(dynax_state,jantouki)
@@ -4840,7 +4840,7 @@ static MACHINE_CONFIG_START( htengoku, dynax_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 336-1, 0+8, 256-1-8)
- MCFG_SCREEN_UPDATE_STATIC(htengoku)
+ MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_htengoku)
MCFG_PALETTE_LENGTH(16*256)
@@ -4923,7 +4923,7 @@ static MACHINE_CONFIG_START( tenkai, dynax_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256+22)
MCFG_SCREEN_VISIBLE_AREA(4, 512-1, 4, 255-8-4) // hide first 4 horizontal pixels (see scroll of gal 4 in test mode)
- MCFG_SCREEN_UPDATE_STATIC(hnoridur)
+ MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_hnoridur)
MCFG_PALETTE_LENGTH(16*256)
@@ -4992,7 +4992,7 @@ static MACHINE_CONFIG_START( gekisha, dynax_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(2, 256-1, 16, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(mjdialq2)
+ MCFG_SCREEN_UPDATE_DRIVER(dynax_state, screen_update_mjdialq2)
MCFG_PALETTE_LENGTH(512)
MCFG_PALETTE_INIT_OVERRIDE(dynax_state,sprtmtch) // static palette
diff --git a/src/mame/drivers/dynduke.c b/src/mame/drivers/dynduke.c
index 60da0946272..f9e7f9c27a2 100644
--- a/src/mame/drivers/dynduke.c
+++ b/src/mame/drivers/dynduke.c
@@ -294,7 +294,7 @@ static MACHINE_CONFIG_START( dynduke, dynduke_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(dynduke)
+ MCFG_SCREEN_UPDATE_DRIVER(dynduke_state, screen_update_dynduke)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(dynduke)
diff --git a/src/mame/drivers/egghunt.c b/src/mame/drivers/egghunt.c
index 200ecab5f04..14f9718fc1a 100644
--- a/src/mame/drivers/egghunt.c
+++ b/src/mame/drivers/egghunt.c
@@ -79,6 +79,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_egghunt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -180,10 +181,9 @@ void egghunt_state::video_start()
save_item(NAME(m_spram));
}
-static SCREEN_UPDATE_IND16(egghunt)
+UINT32 egghunt_state::screen_update_egghunt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- egghunt_state *state = screen.machine().driver_data<egghunt_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
@@ -424,7 +424,7 @@ static MACHINE_CONFIG_START( egghunt, egghunt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, 56*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(egghunt)
+ MCFG_SCREEN_UPDATE_DRIVER(egghunt_state, screen_update_egghunt)
MCFG_GFXDECODE(egghunt)
MCFG_PALETTE_LENGTH(0x400)
diff --git a/src/mame/drivers/embargo.c b/src/mame/drivers/embargo.c
index c5796b8005e..1bf208e35a4 100644
--- a/src/mame/drivers/embargo.c
+++ b/src/mame/drivers/embargo.c
@@ -29,6 +29,7 @@ public:
DECLARE_WRITE8_MEMBER(input_select_w);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_embargo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -38,18 +39,17 @@ public:
*
*************************************/
-static SCREEN_UPDATE_RGB32( embargo )
+UINT32 embargo_state::screen_update_embargo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- embargo_state *state = screen.machine().driver_data<embargo_state>();
offs_t offs;
- for (offs = 0; offs < state->m_videoram.bytes(); offs++)
+ for (offs = 0; offs < m_videoram.bytes(); offs++)
{
int i;
UINT8 x = offs << 3;
UINT8 y = offs >> 5;
- UINT8 data = state->m_videoram[offs];
+ UINT8 data = m_videoram[offs];
for (i = 0; i < 8; i++)
{
@@ -265,7 +265,7 @@ static MACHINE_CONFIG_START( embargo, embargo_state )
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_UPDATE_STATIC(embargo)
+ MCFG_SCREEN_UPDATE_DRIVER(embargo_state, screen_update_embargo)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/enigma2.c b/src/mame/drivers/enigma2.c
index 3ceddf51373..13572a19bbc 100644
--- a/src/mame/drivers/enigma2.c
+++ b/src/mame/drivers/enigma2.c
@@ -89,6 +89,8 @@ public:
DECLARE_DRIVER_INIT(enigma2);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_enigma2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_enigma2a(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -205,15 +207,14 @@ static void get_pens(pen_t *pens)
}
-static SCREEN_UPDATE_RGB32( enigma2 )
+UINT32 enigma2_state::screen_update_enigma2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- enigma2_state *state = screen.machine().driver_data<enigma2_state>();
pen_t pens[NUM_PENS];
const rectangle &visarea = screen.visible_area();
- UINT8 *prom = state->memregion("proms")->base();
- UINT8 *color_map_base = state->m_flip_screen ? &prom[0x0400] : &prom[0x0000];
- UINT8 *star_map_base = (state->m_blink_count & 0x08) ? &prom[0x0c00] : &prom[0x0800];
+ UINT8 *prom = memregion("proms")->base();
+ UINT8 *color_map_base = m_flip_screen ? &prom[0x0400] : &prom[0x0000];
+ UINT8 *star_map_base = (m_blink_count & 0x08) ? &prom[0x0c00] : &prom[0x0800];
UINT8 x = 0;
UINT16 bitmap_y = visarea.min_y;
@@ -243,16 +244,16 @@ static SCREEN_UPDATE_RGB32( enigma2 )
/* when the screen is flipped, all the video address bits are inverted,
and the adder at 16A is activated */
- if (state->m_flip_screen) videoram_address = (~videoram_address + 0x0400) & 0x1fff;
+ if (m_flip_screen) videoram_address = (~videoram_address + 0x0400) & 0x1fff;
- video_data = state->m_videoram[videoram_address];
+ video_data = m_videoram[videoram_address];
fore_color = color_map_base[color_map_address] & 0x07;
star_color = star_map_base[star_map_address] & 0x07;
}
/* plot the current pixel */
- if (state->m_flip_screen)
+ if (m_flip_screen)
{
bit = video_data & 0x80;
video_data = video_data << 1;
@@ -287,15 +288,14 @@ static SCREEN_UPDATE_RGB32( enigma2 )
}
}
- state->m_blink_count++;
+ m_blink_count++;
return 0;
}
-static SCREEN_UPDATE_RGB32( enigma2a )
+UINT32 enigma2_state::screen_update_enigma2a(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- enigma2_state *state = screen.machine().driver_data<enigma2_state>();
UINT8 x = 0;
const rectangle &visarea = screen.visible_area();
UINT16 bitmap_y = visarea.min_y;
@@ -314,13 +314,13 @@ static SCREEN_UPDATE_RGB32( enigma2a )
/* when the screen is flipped, all the video address bits are inverted,
and the adder at 16A is activated */
- if (state->m_flip_screen) videoram_address = (~videoram_address + 0x0400) & 0x1fff;
+ if (m_flip_screen) videoram_address = (~videoram_address + 0x0400) & 0x1fff;
- video_data = state->m_videoram[videoram_address];
+ video_data = m_videoram[videoram_address];
}
/* plot the current pixel */
- if (state->m_flip_screen)
+ if (m_flip_screen)
{
bit = video_data & 0x80;
video_data = video_data << 1;
@@ -617,7 +617,7 @@ static MACHINE_CONFIG_START( enigma2, enigma2_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(enigma2)
+ MCFG_SCREEN_UPDATE_DRIVER(enigma2_state, screen_update_enigma2)
/* audio hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -643,7 +643,7 @@ static MACHINE_CONFIG_START( enigma2a, enigma2_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(enigma2a)
+ MCFG_SCREEN_UPDATE_DRIVER(enigma2_state, screen_update_enigma2a)
/* audio hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/eolith.c b/src/mame/drivers/eolith.c
index 2d4c4b34525..547d9b152af 100644
--- a/src/mame/drivers/eolith.c
+++ b/src/mame/drivers/eolith.c
@@ -592,7 +592,7 @@ static MACHINE_CONFIG_START( eolith45, eolith_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
MCFG_SCREEN_SIZE(512, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(eolith)
+ MCFG_SCREEN_UPDATE_DRIVER(eolith_state, screen_update_eolith)
MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB)
MCFG_PALETTE_LENGTH(32768)
diff --git a/src/mame/drivers/eolith16.c b/src/mame/drivers/eolith16.c
index 9d35dea24eb..2dd5fa938ff 100644
--- a/src/mame/drivers/eolith16.c
+++ b/src/mame/drivers/eolith16.c
@@ -33,6 +33,7 @@ public:
DECLARE_DRIVER_INIT(eolith16);
DECLARE_VIDEO_START(eolith16);
DECLARE_PALETTE_INIT(eolith16);
+ UINT32 screen_update_eolith16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -126,9 +127,8 @@ VIDEO_START_MEMBER(eolith16_state,eolith16)
m_vram = auto_alloc_array(machine(), UINT16, 0x10000);
}
-static SCREEN_UPDATE_IND16( eolith16 )
+UINT32 eolith16_state::screen_update_eolith16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- eolith16_state *state = screen.machine().driver_data<eolith16_state>();
int x,y,count;
int color;
@@ -137,10 +137,10 @@ static SCREEN_UPDATE_IND16( eolith16 )
{
for (x=0;x < 320/2;x++)
{
- color = state->m_vram[count + (0x10000/2) * (state->m_vbuffer ^ 1)] & 0xff;
+ color = m_vram[count + (0x10000/2) * (m_vbuffer ^ 1)] & 0xff;
bitmap.pix16(y, x*2 + 0) = color;
- color = (state->m_vram[count + (0x10000/2) * (state->m_vbuffer ^ 1)] & 0xff00) >> 8;
+ color = (m_vram[count + (0x10000/2) * (m_vbuffer ^ 1)] & 0xff00) >> 8;
bitmap.pix16(y, x*2 + 1) = color;
count++;
@@ -189,7 +189,7 @@ static MACHINE_CONFIG_START( eolith16, eolith16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
MCFG_SCREEN_SIZE(512, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 199)
- MCFG_SCREEN_UPDATE_STATIC(eolith16)
+ MCFG_SCREEN_UPDATE_DRIVER(eolith16_state, screen_update_eolith16)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/epos.c b/src/mame/drivers/epos.c
index e0aa19cd52e..428556737f8 100644
--- a/src/mame/drivers/epos.c
+++ b/src/mame/drivers/epos.c
@@ -407,7 +407,7 @@ static MACHINE_CONFIG_START( epos, epos_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(272, 241)
MCFG_SCREEN_VISIBLE_AREA(0, 271, 0, 235)
- MCFG_SCREEN_UPDATE_STATIC(epos)
+ MCFG_SCREEN_UPDATE_DRIVER(epos_state, screen_update_epos)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -434,7 +434,7 @@ static MACHINE_CONFIG_START( dealer, epos_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(272, 241)
MCFG_SCREEN_VISIBLE_AREA(0, 271, 0, 235)
- MCFG_SCREEN_UPDATE_STATIC(epos)
+ MCFG_SCREEN_UPDATE_DRIVER(epos_state, screen_update_epos)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/eprom.c b/src/mame/drivers/eprom.c
index c88baa6ec81..d9c146c8c24 100644
--- a/src/mame/drivers/eprom.c
+++ b/src/mame/drivers/eprom.c
@@ -426,7 +426,7 @@ static MACHINE_CONFIG_START( eprom, eprom_state )
/* note: these parameters are from published specs, not derived */
/* the board uses a SYNGEN chip to generate video signals */
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(eprom)
+ MCFG_SCREEN_UPDATE_DRIVER(eprom_state, screen_update_eprom)
MCFG_VIDEO_START_OVERRIDE(eprom_state,eprom)
@@ -457,7 +457,7 @@ static MACHINE_CONFIG_START( klaxp, eprom_state )
/* note: these parameters are from published specs, not derived */
/* the board uses a SYNGEN chip to generate video signals */
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(eprom)
+ MCFG_SCREEN_UPDATE_DRIVER(eprom_state, screen_update_eprom)
MCFG_VIDEO_START_OVERRIDE(eprom_state,eprom)
@@ -488,7 +488,7 @@ static MACHINE_CONFIG_START( guts, eprom_state )
/* note: these parameters are from published specs, not derived */
/* the board uses a SYNGEN chip to generate video signals */
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(guts)
+ MCFG_SCREEN_UPDATE_DRIVER(eprom_state, screen_update_guts)
MCFG_VIDEO_START_OVERRIDE(eprom_state,guts)
diff --git a/src/mame/drivers/equites.c b/src/mame/drivers/equites.c
index eb7736e82bb..273fb29ea01 100644
--- a/src/mame/drivers/equites.c
+++ b/src/mame/drivers/equites.c
@@ -1263,7 +1263,7 @@ static MACHINE_CONFIG_START( equites, equites_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 3*8, 29*8-1)
- MCFG_SCREEN_UPDATE_STATIC(equites)
+ MCFG_SCREEN_UPDATE_DRIVER(equites_state, screen_update_equites)
MCFG_GFXDECODE(equites)
MCFG_PALETTE_LENGTH(0x180)
@@ -1300,7 +1300,7 @@ static MACHINE_CONFIG_START( splndrbt, equites_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(splndrbt)
+ MCFG_SCREEN_UPDATE_DRIVER(equites_state, screen_update_splndrbt)
MCFG_GFXDECODE(splndrbt)
MCFG_PALETTE_LENGTH(0x280)
diff --git a/src/mame/drivers/esd16.c b/src/mame/drivers/esd16.c
index 99ed71bbff9..76075fc2221 100644
--- a/src/mame/drivers/esd16.c
+++ b/src/mame/drivers/esd16.c
@@ -630,7 +630,7 @@ static MACHINE_CONFIG_START( esd16, esd16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x140, 0x100)
MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0+8, 0x100-8-1)
- MCFG_SCREEN_UPDATE_STATIC(hedpanic)
+ MCFG_SCREEN_UPDATE_DRIVER(esd16_state, screen_update_hedpanic)
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 0);
diff --git a/src/mame/drivers/esh.c b/src/mame/drivers/esh.c
index a11ce729649..b8f7a5c4c7f 100644
--- a/src/mame/drivers/esh.c
+++ b/src/mame/drivers/esh.c
@@ -49,6 +49,7 @@ public:
DECLARE_DRIVER_INIT(esh);
virtual void machine_start();
virtual void palette_init();
+ UINT32 screen_update_esh(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -57,9 +58,8 @@ public:
/* VIDEO GOODS */
-static SCREEN_UPDATE_RGB32( esh )
+UINT32 esh_state::screen_update_esh(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- esh_state *state = screen.machine().driver_data<esh_state>();
int charx, chary;
/* clear */
@@ -72,13 +72,13 @@ static SCREEN_UPDATE_RGB32( esh )
{
int current_screen_character = (chary*32) + charx;
- int palIndex = (state->m_tile_control_ram[current_screen_character] & 0x0f);
- int tileOffs = (state->m_tile_control_ram[current_screen_character] & 0x10) >> 4;
- //int blinkLine = (state->m_tile_control_ram[current_screen_character] & 0x40) >> 6;
- //int blinkChar = (state->m_tile_control_ram[current_screen_character] & 0x80) >> 7;
+ int palIndex = (m_tile_control_ram[current_screen_character] & 0x0f);
+ int tileOffs = (m_tile_control_ram[current_screen_character] & 0x10) >> 4;
+ //int blinkLine = (m_tile_control_ram[current_screen_character] & 0x40) >> 6;
+ //int blinkChar = (m_tile_control_ram[current_screen_character] & 0x80) >> 7;
drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0],
- state->m_tile_ram[current_screen_character] + (0x100 * tileOffs),
+ m_tile_ram[current_screen_character] + (0x100 * tileOffs),
palIndex,
0, 0, charx*8, chary*8, 0);
}
@@ -308,7 +308,7 @@ static MACHINE_CONFIG_START( esh, esh_state )
MCFG_LASERDISC_LDV1000_ADD("laserdisc")
- MCFG_LASERDISC_OVERLAY_STATIC(256, 256, esh)
+ MCFG_LASERDISC_OVERLAY_DRIVER(256, 256, esh_state, screen_update_esh)
/* video hardware */
MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
diff --git a/src/mame/drivers/espial.c b/src/mame/drivers/espial.c
index a909f64dbac..4b4d514b284 100644
--- a/src/mame/drivers/espial.c
+++ b/src/mame/drivers/espial.c
@@ -337,7 +337,7 @@ static MACHINE_CONFIG_START( espial, espial_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(espial)
+ MCFG_SCREEN_UPDATE_DRIVER(espial_state, screen_update_espial)
MCFG_GFXDECODE(espial)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/esripsys.c b/src/mame/drivers/esripsys.c
index be1cb3f0ed2..cbc19d2c6a9 100644
--- a/src/mame/drivers/esripsys.c
+++ b/src/mame/drivers/esripsys.c
@@ -716,7 +716,7 @@ static MACHINE_CONFIG_START( esripsys, esripsys_state )
/* Video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(ESRIPSYS_PIXEL_CLOCK, ESRIPSYS_HTOTAL, ESRIPSYS_HBLANK_END, ESRIPSYS_HBLANK_START, ESRIPSYS_VTOTAL, ESRIPSYS_VBLANK_END, ESRIPSYS_VBLANK_START)
- MCFG_SCREEN_UPDATE_STATIC(esripsys)
+ MCFG_SCREEN_UPDATE_DRIVER(esripsys_state, screen_update_esripsys)
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
diff --git a/src/mame/drivers/ettrivia.c b/src/mame/drivers/ettrivia.c
index 5040f670a84..8143a1b7f3c 100644
--- a/src/mame/drivers/ettrivia.c
+++ b/src/mame/drivers/ettrivia.c
@@ -60,6 +60,7 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info_fg);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_ettrivia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -260,11 +261,10 @@ void ettrivia_state::video_start()
m_fg_tilemap->set_transparent_pen(0);
}
-static SCREEN_UPDATE_IND16( ettrivia )
+UINT32 ettrivia_state::screen_update_ettrivia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ettrivia_state *state = screen.machine().driver_data<ettrivia_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
@@ -311,7 +311,7 @@ static MACHINE_CONFIG_START( ettrivia, ettrivia_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(ettrivia)
+ MCFG_SCREEN_UPDATE_DRIVER(ettrivia_state, screen_update_ettrivia)
MCFG_GFXDECODE(ettrivia)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/exedexes.c b/src/mame/drivers/exedexes.c
index a2c82bf00f3..bd12cd744cc 100644
--- a/src/mame/drivers/exedexes.c
+++ b/src/mame/drivers/exedexes.c
@@ -243,7 +243,7 @@ static MACHINE_CONFIG_START( exedexes, exedexes_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(exedexes)
+ MCFG_SCREEN_UPDATE_DRIVER(exedexes_state, screen_update_exedexes)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(exedexes)
diff --git a/src/mame/drivers/exerion.c b/src/mame/drivers/exerion.c
index 8c89178b8a2..4fc73995fdc 100644
--- a/src/mame/drivers/exerion.c
+++ b/src/mame/drivers/exerion.c
@@ -418,7 +418,7 @@ static MACHINE_CONFIG_START( exerion, exerion_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(EXERION_PIXEL_CLOCK, EXERION_HTOTAL, EXERION_HBEND, EXERION_HBSTART, EXERION_VTOTAL, EXERION_VBEND, EXERION_VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(exerion)
+ MCFG_SCREEN_UPDATE_DRIVER(exerion_state, screen_update_exerion)
MCFG_GFXDECODE(exerion)
MCFG_PALETTE_LENGTH(256*3)
diff --git a/src/mame/drivers/exidy.c b/src/mame/drivers/exidy.c
index 24df2a13f69..b0b9c514ce3 100644
--- a/src/mame/drivers/exidy.c
+++ b/src/mame/drivers/exidy.c
@@ -815,7 +815,7 @@ static MACHINE_CONFIG_START( base, exidy_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(EXIDY_PIXEL_CLOCK, EXIDY_HTOTAL, EXIDY_HBEND, EXIDY_HBSTART, EXIDY_VTOTAL, EXIDY_VBEND, EXIDY_VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(exidy)
+ MCFG_SCREEN_UPDATE_DRIVER(exidy_state, screen_update_exidy)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/expro02.c b/src/mame/drivers/expro02.c
index 9a30a91cedd..be6b0dfcbda 100644
--- a/src/mame/drivers/expro02.c
+++ b/src/mame/drivers/expro02.c
@@ -182,6 +182,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_galsnew(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -196,9 +197,8 @@ void expro02_state::palette_init()
palette_set_color_rgb(machine(),2048 + i,pal5bit(i >> 5),pal5bit(i >> 10),pal5bit(i >> 0));
}
-SCREEN_UPDATE_IND16( galsnew )
+UINT32 expro02_state::screen_update_galsnew(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- expro02_state *state = screen.machine().driver_data<expro02_state>();
// kaneko16_fill_bitmap(screen.machine(),bitmap,cliprect);
int y,x;
int count;
@@ -211,7 +211,7 @@ SCREEN_UPDATE_IND16( galsnew )
for (x=0;x<256;x++)
{
- UINT16 dat = (state->m_galsnew_fg_pixram[count] & 0xfffe)>>1;
+ UINT16 dat = (m_galsnew_fg_pixram[count] & 0xfffe)>>1;
dat+=2048;
dest[x] = dat;
count++;
@@ -225,7 +225,7 @@ SCREEN_UPDATE_IND16( galsnew )
for (x=0;x<256;x++)
{
- UINT16 dat = (state->m_galsnew_bg_pixram[count]);
+ UINT16 dat = (m_galsnew_bg_pixram[count]);
//dat &=0x3ff;
if (dat)
dest[x] = dat;
@@ -240,14 +240,14 @@ SCREEN_UPDATE_IND16( galsnew )
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_view2_0->kaneko16_prepare(bitmap, cliprect);
+ m_view2_0->kaneko16_prepare(bitmap, cliprect);
for ( i = 0; i < 8; i++ )
{
- state->m_view2_0->render_tilemap_chip(bitmap,cliprect,i);
+ m_view2_0->render_tilemap_chip(bitmap,cliprect,i);
}
- state->m_kaneko_spr->kaneko16_render_sprites(screen.machine(),bitmap,cliprect, state->m_spriteram, state->m_spriteram.bytes());
+ m_kaneko_spr->kaneko16_render_sprites(screen.machine(),bitmap,cliprect, m_spriteram, m_spriteram.bytes());
return 0;
}
@@ -557,7 +557,7 @@ static MACHINE_CONFIG_START( galsnew, expro02_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-32-1)
- MCFG_SCREEN_UPDATE_STATIC(galsnew)
+ MCFG_SCREEN_UPDATE_DRIVER(expro02_state, screen_update_galsnew)
MCFG_GFXDECODE(1x4bit_1x4bit)
MCFG_PALETTE_LENGTH(2048 + 32768)
diff --git a/src/mame/drivers/exprraid.c b/src/mame/drivers/exprraid.c
index 0953205323a..242a87544ea 100644
--- a/src/mame/drivers/exprraid.c
+++ b/src/mame/drivers/exprraid.c
@@ -503,7 +503,7 @@ static MACHINE_CONFIG_START( exprraid, exprraid_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(exprraid)
+ MCFG_SCREEN_UPDATE_DRIVER(exprraid_state, screen_update_exprraid)
MCFG_GFXDECODE(exprraid)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/exzisus.c b/src/mame/drivers/exzisus.c
index 7d81d5f976e..161624f96fe 100644
--- a/src/mame/drivers/exzisus.c
+++ b/src/mame/drivers/exzisus.c
@@ -295,7 +295,7 @@ static MACHINE_CONFIG_START( exzisus, exzisus_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(exzisus)
+ MCFG_SCREEN_UPDATE_DRIVER(exzisus_state, screen_update_exzisus)
MCFG_GFXDECODE(exzisus)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/f-32.c b/src/mame/drivers/f-32.c
index 6332b831cff..f865958d397 100644
--- a/src/mame/drivers/f-32.c
+++ b/src/mame/drivers/f-32.c
@@ -29,12 +29,12 @@ public:
required_device<e132xn_device> m_maincpu;
required_shared_ptr<UINT32> m_videoram;
DECLARE_READ32_MEMBER(f32_input_port_1_r);
+ UINT32 screen_update_mosaicf2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
-static SCREEN_UPDATE_IND16( mosaicf2 )
+UINT32 mosaicf2_state::screen_update_mosaicf2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mosaicf2_state *state = screen.machine().driver_data<mosaicf2_state>();
offs_t offs;
for (offs = 0; offs < 0x10000; offs++)
@@ -44,8 +44,8 @@ static SCREEN_UPDATE_IND16( mosaicf2 )
if ((x < 0xa0) && (y < 0xe0))
{
- bitmap.pix16(y, (x * 2) + 0) = (state->m_videoram[offs] >> 16) & 0x7fff;
- bitmap.pix16(y, (x * 2) + 1) = (state->m_videoram[offs] >> 0) & 0x7fff;
+ bitmap.pix16(y, (x * 2) + 0) = (m_videoram[offs] >> 16) & 0x7fff;
+ bitmap.pix16(y, (x * 2) + 1) = (m_videoram[offs] >> 0) & 0x7fff;
}
}
@@ -147,7 +147,7 @@ static MACHINE_CONFIG_START( mosaicf2, mosaicf2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(512, 512)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 223)
- MCFG_SCREEN_UPDATE_STATIC(mosaicf2)
+ MCFG_SCREEN_UPDATE_DRIVER(mosaicf2_state, screen_update_mosaicf2)
MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB)
MCFG_PALETTE_LENGTH(32768)
diff --git a/src/mame/drivers/f1gp.c b/src/mame/drivers/f1gp.c
index 18a27ec18b0..6a5e0a69bc8 100644
--- a/src/mame/drivers/f1gp.c
+++ b/src/mame/drivers/f1gp.c
@@ -471,7 +471,7 @@ static MACHINE_CONFIG_START( f1gp, f1gp_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(f1gp)
+ MCFG_SCREEN_UPDATE_DRIVER(f1gp_state, screen_update_f1gp)
MCFG_GFXDECODE(f1gp)
MCFG_PALETTE_LENGTH(2048)
@@ -514,7 +514,7 @@ static MACHINE_CONFIG_START( f1gpb, f1gp_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(f1gpb)
+ MCFG_SCREEN_UPDATE_DRIVER(f1gp_state, screen_update_f1gpb)
MCFG_GFXDECODE(f1gp)
MCFG_PALETTE_LENGTH(2048)
@@ -540,7 +540,7 @@ static MACHINE_CONFIG_DERIVED( f1gp2, f1gp )
MCFG_GFXDECODE(f1gp2)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(f1gp2)
+ MCFG_SCREEN_UPDATE_DRIVER(f1gp_state, screen_update_f1gp2)
MCFG_DEVICE_REMOVE("k053936")
MCFG_K053936_ADD("k053936", f1gp2_k053936_intf)
diff --git a/src/mame/drivers/famibox.c b/src/mame/drivers/famibox.c
index 22320ae46ef..9e6a01e17b6 100644
--- a/src/mame/drivers/famibox.c
+++ b/src/mame/drivers/famibox.c
@@ -109,6 +109,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_famibox(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/******************************************************
@@ -538,7 +539,7 @@ void famibox_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( famibox )
+UINT32 famibox_state::screen_update_famibox(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
/* render the ppu */
ppu2c0x_device *ppu = screen.machine().device<ppu2c0x_device>("ppu");
@@ -589,7 +590,7 @@ static MACHINE_CONFIG_START( famibox, famibox_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(32*8, 262)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(famibox)
+ MCFG_SCREEN_UPDATE_DRIVER(famibox_state, screen_update_famibox)
MCFG_GFXDECODE(famibox)
MCFG_PALETTE_LENGTH(8*4*16)
diff --git a/src/mame/drivers/fantland.c b/src/mame/drivers/fantland.c
index 8b65d0f41d5..471a1edde6d 100644
--- a/src/mame/drivers/fantland.c
+++ b/src/mame/drivers/fantland.c
@@ -865,7 +865,7 @@ static MACHINE_CONFIG_START( fantland, fantland_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(352,256)
MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(fantland)
+ MCFG_SCREEN_UPDATE_DRIVER(fantland_state, screen_update_fantland)
MCFG_GFXDECODE(fantland)
MCFG_PALETTE_LENGTH(256)
@@ -915,7 +915,7 @@ static MACHINE_CONFIG_START( galaxygn, fantland_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(352,256)
MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(fantland)
+ MCFG_SCREEN_UPDATE_DRIVER(fantland_state, screen_update_fantland)
MCFG_GFXDECODE(fantland)
MCFG_PALETTE_LENGTH(256)
@@ -1019,7 +1019,7 @@ static MACHINE_CONFIG_START( borntofi, fantland_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(352,256)
MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(fantland)
+ MCFG_SCREEN_UPDATE_DRIVER(fantland_state, screen_update_fantland)
MCFG_GFXDECODE(fantland)
MCFG_PALETTE_LENGTH(256)
@@ -1059,7 +1059,7 @@ static MACHINE_CONFIG_START( wheelrun, fantland_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256,224)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 224-1)
- MCFG_SCREEN_UPDATE_STATIC(fantland)
+ MCFG_SCREEN_UPDATE_DRIVER(fantland_state, screen_update_fantland)
MCFG_GFXDECODE(fantland)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/fastfred.c b/src/mame/drivers/fastfred.c
index 215d9eddd55..08d14725f9e 100644
--- a/src/mame/drivers/fastfred.c
+++ b/src/mame/drivers/fastfred.c
@@ -659,7 +659,7 @@ static MACHINE_CONFIG_START( fastfred, fastfred_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) //CLOCK/16/60
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(fastfred)
+ MCFG_SCREEN_UPDATE_DRIVER(fastfred_state, screen_update_fastfred)
MCFG_GFXDECODE(fastfred)
MCFG_PALETTE_LENGTH(32*8)
@@ -706,7 +706,7 @@ static MACHINE_CONFIG_DERIVED( imago, fastfred )
MCFG_VIDEO_START_OVERRIDE(fastfred_state,imago)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(imago)
+ MCFG_SCREEN_UPDATE_DRIVER(fastfred_state, screen_update_imago)
MACHINE_CONFIG_END
#undef CLOCK
diff --git a/src/mame/drivers/fastlane.c b/src/mame/drivers/fastlane.c
index d3a46c5b006..c8745136123 100644
--- a/src/mame/drivers/fastlane.c
+++ b/src/mame/drivers/fastlane.c
@@ -228,7 +228,7 @@ static MACHINE_CONFIG_START( fastlane, fastlane_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(37*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 35*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(fastlane)
+ MCFG_SCREEN_UPDATE_DRIVER(fastlane_state, screen_update_fastlane)
MCFG_GFXDECODE(fastlane)
MCFG_PALETTE_LENGTH(1024*16)
diff --git a/src/mame/drivers/fcombat.c b/src/mame/drivers/fcombat.c
index e7890604b7a..d7617679f84 100644
--- a/src/mame/drivers/fcombat.c
+++ b/src/mame/drivers/fcombat.c
@@ -298,7 +298,7 @@ static MACHINE_CONFIG_START( fcombat, fcombat_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(FCOMBAT_PIXEL_CLOCK, FCOMBAT_HTOTAL, FCOMBAT_HBEND, FCOMBAT_HBSTART, FCOMBAT_VTOTAL, FCOMBAT_VBEND, FCOMBAT_VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(fcombat)
+ MCFG_SCREEN_UPDATE_DRIVER(fcombat_state, screen_update_fcombat)
MCFG_GFXDECODE(fcombat)
MCFG_PALETTE_LENGTH(256*3)
diff --git a/src/mame/drivers/fcrash.c b/src/mame/drivers/fcrash.c
index 372a84265be..ab1861a2fa6 100644
--- a/src/mame/drivers/fcrash.c
+++ b/src/mame/drivers/fcrash.c
@@ -217,16 +217,15 @@ static void fcrash_build_palette( running_machine &machine )
}
}
-static SCREEN_UPDATE_IND16( fcrash )
+UINT32 cps_state::screen_update_fcrash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cps_state *state = screen.machine().driver_data<cps_state>();
int layercontrol, l0, l1, l2, l3;
- int videocontrol = state->m_cps_a_regs[0x22 / 2];
+ int videocontrol = m_cps_a_regs[0x22 / 2];
- state->flip_screen_set(videocontrol & 0x8000);
+ flip_screen_set(videocontrol & 0x8000);
- layercontrol = state->m_cps_b_regs[0x20 / 2];
+ layercontrol = m_cps_b_regs[0x20 / 2];
/* Get video memory base registers */
cps1_get_video_base(screen.machine());
@@ -236,37 +235,37 @@ static SCREEN_UPDATE_IND16( fcrash )
fcrash_update_transmasks(screen.machine());
- state->m_bg_tilemap[0]->set_scrollx(0, state->m_scroll1x - 62);
- state->m_bg_tilemap[0]->set_scrolly(0, state->m_scroll1y);
+ m_bg_tilemap[0]->set_scrollx(0, m_scroll1x - 62);
+ m_bg_tilemap[0]->set_scrolly(0, m_scroll1y);
if (videocontrol & 0x01) /* linescroll enable */
{
- int scrly = -state->m_scroll2y;
+ int scrly = -m_scroll2y;
int i;
int otheroffs;
- state->m_bg_tilemap[1]->set_scroll_rows(1024);
+ m_bg_tilemap[1]->set_scroll_rows(1024);
- otheroffs = state->m_cps_a_regs[CPS1_ROWSCROLL_OFFS];
+ otheroffs = m_cps_a_regs[CPS1_ROWSCROLL_OFFS];
for (i = 0; i < 256; i++)
- state->m_bg_tilemap[1]->set_scrollx((i - scrly) & 0x3ff, state->m_scroll2x + state->m_other[(i + otheroffs) & 0x3ff]);
+ m_bg_tilemap[1]->set_scrollx((i - scrly) & 0x3ff, m_scroll2x + m_other[(i + otheroffs) & 0x3ff]);
}
else
{
- state->m_bg_tilemap[1]->set_scroll_rows(1);
- state->m_bg_tilemap[1]->set_scrollx(0, state->m_scroll2x - 60);
+ m_bg_tilemap[1]->set_scroll_rows(1);
+ m_bg_tilemap[1]->set_scrollx(0, m_scroll2x - 60);
}
- state->m_bg_tilemap[1]->set_scrolly(0, state->m_scroll2y);
- state->m_bg_tilemap[2]->set_scrollx(0, state->m_scroll3x - 64);
- state->m_bg_tilemap[2]->set_scrolly(0, state->m_scroll3y);
+ m_bg_tilemap[1]->set_scrolly(0, m_scroll2y);
+ m_bg_tilemap[2]->set_scrollx(0, m_scroll3x - 64);
+ m_bg_tilemap[2]->set_scrolly(0, m_scroll3y);
/* turn all tilemaps on regardless of settings in get_video_base() */
/* write a custom get_video_base for this bootleg hardware? */
- state->m_bg_tilemap[0]->enable(1);
- state->m_bg_tilemap[1]->enable(1);
- state->m_bg_tilemap[2]->enable(1);
+ m_bg_tilemap[0]->enable(1);
+ m_bg_tilemap[1]->enable(1);
+ m_bg_tilemap[2]->enable(1);
/* Blank screen */
bitmap.fill(0xbff, cliprect);
@@ -298,15 +297,14 @@ static SCREEN_UPDATE_IND16( fcrash )
}
// doesn't have the scroll offsets like fcrash
-static SCREEN_UPDATE_IND16( kodb )
+UINT32 cps_state::screen_update_kodb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cps_state *state = screen.machine().driver_data<cps_state>();
int layercontrol, l0, l1, l2, l3;
- int videocontrol = state->m_cps_a_regs[0x22 / 2];
+ int videocontrol = m_cps_a_regs[0x22 / 2];
- state->flip_screen_set(videocontrol & 0x8000);
+ flip_screen_set(videocontrol & 0x8000);
- layercontrol = state->m_cps_b_regs[0x20 / 2];
+ layercontrol = m_cps_b_regs[0x20 / 2];
/* Get video memory base registers */
cps1_get_video_base(screen.machine());
@@ -316,38 +314,38 @@ static SCREEN_UPDATE_IND16( kodb )
fcrash_update_transmasks(screen.machine());
- state->m_bg_tilemap[0]->set_scrollx(0, state->m_scroll1x);
- state->m_bg_tilemap[0]->set_scrolly(0, state->m_scroll1y);
+ m_bg_tilemap[0]->set_scrollx(0, m_scroll1x);
+ m_bg_tilemap[0]->set_scrolly(0, m_scroll1y);
if (videocontrol & 0x01) /* linescroll enable */
{
- int scrly= -state->m_scroll2y;
+ int scrly= -m_scroll2y;
int i;
int otheroffs;
- state->m_bg_tilemap[1]->set_scroll_rows(1024);
+ m_bg_tilemap[1]->set_scroll_rows(1024);
- otheroffs = state->m_cps_a_regs[CPS1_ROWSCROLL_OFFS];
+ otheroffs = m_cps_a_regs[CPS1_ROWSCROLL_OFFS];
for (i = 0; i < 256; i++)
- state->m_bg_tilemap[1]->set_scrollx((i - scrly) & 0x3ff, state->m_scroll2x + state->m_other[(i + otheroffs) & 0x3ff]);
+ m_bg_tilemap[1]->set_scrollx((i - scrly) & 0x3ff, m_scroll2x + m_other[(i + otheroffs) & 0x3ff]);
}
else
{
- state->m_bg_tilemap[1]->set_scroll_rows(1);
- state->m_bg_tilemap[1]->set_scrollx(0, state->m_scroll2x);
+ m_bg_tilemap[1]->set_scroll_rows(1);
+ m_bg_tilemap[1]->set_scrollx(0, m_scroll2x);
}
- state->m_bg_tilemap[1]->set_scrolly(0, state->m_scroll2y);
- state->m_bg_tilemap[2]->set_scrollx(0, state->m_scroll3x);
- state->m_bg_tilemap[2]->set_scrolly(0, state->m_scroll3y);
+ m_bg_tilemap[1]->set_scrolly(0, m_scroll2y);
+ m_bg_tilemap[2]->set_scrollx(0, m_scroll3x);
+ m_bg_tilemap[2]->set_scrolly(0, m_scroll3y);
/* turn all tilemaps on regardless of settings in get_video_base() */
/* write a custom get_video_base for this bootleg hardware? */
- state->m_bg_tilemap[0]->enable(1);
- state->m_bg_tilemap[1]->enable(1);
- state->m_bg_tilemap[2]->enable(1);
+ m_bg_tilemap[0]->enable(1);
+ m_bg_tilemap[1]->enable(1);
+ m_bg_tilemap[2]->enable(1);
/* Blank screen */
bitmap.fill(0xbff, cliprect);
@@ -742,8 +740,8 @@ static MACHINE_CONFIG_START( fcrash, cps_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(fcrash)
- MCFG_SCREEN_VBLANK_STATIC(cps1)
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_fcrash)
+ MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1)
MCFG_GFXDECODE(cps1)
MCFG_PALETTE_LENGTH(4096)
@@ -792,8 +790,8 @@ static MACHINE_CONFIG_START( kodb, cps_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(kodb)
- MCFG_SCREEN_VBLANK_STATIC(cps1)
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_kodb)
+ MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1)
MCFG_GFXDECODE(cps1)
MCFG_PALETTE_LENGTH(0xc00)
@@ -948,8 +946,8 @@ static MACHINE_CONFIG_START( sgyxz, cps_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(kodb)
- MCFG_SCREEN_VBLANK_STATIC(cps1)
+ MCFG_SCREEN_UPDATE_DRIVER(cps_state, screen_update_kodb)
+ MCFG_SCREEN_VBLANK_DRIVER(cps_state, screen_eof_cps1)
MCFG_GFXDECODE(cps1)
MCFG_PALETTE_LENGTH(0xc00)
diff --git a/src/mame/drivers/feversoc.c b/src/mame/drivers/feversoc.c
index e9b93ed2035..3d8d2768d6d 100644
--- a/src/mame/drivers/feversoc.c
+++ b/src/mame/drivers/feversoc.c
@@ -78,6 +78,7 @@ public:
DECLARE_WRITE32_MEMBER(output_w);
DECLARE_DRIVER_INIT(feversoc);
virtual void video_start();
+ UINT32 screen_update_feversoc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -88,10 +89,9 @@ void feversoc_state::video_start()
}
-static SCREEN_UPDATE_IND16( feversoc )
+UINT32 feversoc_state::screen_update_feversoc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- feversoc_state *state = screen.machine().driver_data<feversoc_state>();
- UINT32 *spriteram32 = state->m_spriteram;
+ UINT32 *spriteram32 = m_spriteram;
int offs,spr_offs,colour,sx,sy,h,w,dx,dy;
bitmap.fill(screen.machine().pens[0], cliprect); //black pen
@@ -264,7 +264,7 @@ static MACHINE_CONFIG_START( feversoc, feversoc_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1) //dynamic resolution?
- MCFG_SCREEN_UPDATE_STATIC(feversoc)
+ MCFG_SCREEN_UPDATE_DRIVER(feversoc_state, screen_update_feversoc)
MCFG_GFXDECODE(feversoc)
MCFG_PALETTE_LENGTH(0x1000)
diff --git a/src/mame/drivers/fgoal.c b/src/mame/drivers/fgoal.c
index 0b9373adfa4..0be93b869a7 100644
--- a/src/mame/drivers/fgoal.c
+++ b/src/mame/drivers/fgoal.c
@@ -372,7 +372,7 @@ static MACHINE_CONFIG_START( fgoal, fgoal_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(256, 263)
MCFG_SCREEN_VISIBLE_AREA(0, 255, 16, 255)
- MCFG_SCREEN_UPDATE_STATIC(fgoal)
+ MCFG_SCREEN_UPDATE_DRIVER(fgoal_state, screen_update_fgoal)
MCFG_GFXDECODE(fgoal)
MCFG_PALETTE_LENGTH(128 + 16 + 1)
diff --git a/src/mame/drivers/finalizr.c b/src/mame/drivers/finalizr.c
index 5de9bdb2ceb..edb1c4f7693 100644
--- a/src/mame/drivers/finalizr.c
+++ b/src/mame/drivers/finalizr.c
@@ -292,7 +292,7 @@ static MACHINE_CONFIG_START( finalizr, finalizr_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(36*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 35*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(finalizr)
+ MCFG_SCREEN_UPDATE_DRIVER(finalizr_state, screen_update_finalizr)
MCFG_GFXDECODE(finalizr)
MCFG_PALETTE_LENGTH(2*16*16)
diff --git a/src/mame/drivers/firebeat.c b/src/mame/drivers/firebeat.c
index ae6378af0a3..709c9dd77a6 100644
--- a/src/mame/drivers/firebeat.c
+++ b/src/mame/drivers/firebeat.c
@@ -183,6 +183,8 @@ public:
DECLARE_MACHINE_START(firebeat);
DECLARE_MACHINE_RESET(firebeat);
DECLARE_VIDEO_START(firebeat);
+ UINT32 screen_update_firebeat_0(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_firebeat_1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -598,8 +600,8 @@ static UINT32 update_screen(screen_device &screen, bitmap_ind16 &bitmap, const r
return 0;
}
-static SCREEN_UPDATE_IND16( firebeat_0 ) { return update_screen(screen, bitmap, cliprect, 0); }
-static SCREEN_UPDATE_IND16( firebeat_1 ) { return update_screen(screen, bitmap, cliprect, 1); }
+UINT32 firebeat_state::screen_update_firebeat_0(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 0); }
+UINT32 firebeat_state::screen_update_firebeat_1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 1); }
static UINT32 GCU_r(running_machine &machine, int chip, UINT32 offset, UINT32 mem_mask)
{
@@ -1994,7 +1996,7 @@ static MACHINE_CONFIG_START( firebeat, firebeat_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
- MCFG_SCREEN_UPDATE_STATIC(firebeat_0)
+ MCFG_SCREEN_UPDATE_DRIVER(firebeat_state, screen_update_firebeat_0)
MCFG_VIDEO_START_OVERRIDE(firebeat_state,firebeat)
@@ -2040,14 +2042,14 @@ static MACHINE_CONFIG_START( firebeat2, firebeat_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
- MCFG_SCREEN_UPDATE_STATIC(firebeat_0)
+ MCFG_SCREEN_UPDATE_DRIVER(firebeat_state, screen_update_firebeat_0)
MCFG_SCREEN_ADD("rscreen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
- MCFG_SCREEN_UPDATE_STATIC(firebeat_1)
+ MCFG_SCREEN_UPDATE_DRIVER(firebeat_state, screen_update_firebeat_1)
MCFG_VIDEO_START_OVERRIDE(firebeat_state,firebeat)
diff --git a/src/mame/drivers/firefox.c b/src/mame/drivers/firefox.c
index 0f9a29efcdc..603d9632268 100644
--- a/src/mame/drivers/firefox.c
+++ b/src/mame/drivers/firefox.c
@@ -98,6 +98,7 @@ public:
TILE_GET_INFO_MEMBER(bgtile_get_info);
virtual void machine_start();
virtual void video_start();
+ UINT32 screen_update_firefox(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -214,9 +215,8 @@ void firefox_state::video_start()
}
-static SCREEN_UPDATE_RGB32( firefox )
+UINT32 firefox_state::screen_update_firefox(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- firefox_state *state = screen.machine().driver_data<firefox_state>();
int sprite;
int gfxtop = screen.visible_area().min_y;
@@ -224,7 +224,7 @@ static SCREEN_UPDATE_RGB32( firefox )
for( sprite = 0; sprite < 32; sprite++ )
{
- UINT8 *sprite_data = state->m_spriteram + ( 0x200 * state->m_sprite_bank ) + ( sprite * 16 );
+ UINT8 *sprite_data = m_spriteram + ( 0x200 * m_sprite_bank ) + ( sprite * 16 );
int flags = sprite_data[ 0 ];
int y = sprite_data[ 1 ] + ( 256 * ( ( flags >> 0 ) & 1 ) );
int x = sprite_data[ 2 ] + ( 256 * ( ( flags >> 1 ) & 1 ) );
@@ -245,7 +245,7 @@ static SCREEN_UPDATE_RGB32( firefox )
}
}
- state->m_bgtiles->draw(bitmap, cliprect, 0, 0 );
+ m_bgtiles->draw(bitmap, cliprect, 0, 0 );
return 0;
}
@@ -716,7 +716,7 @@ static MACHINE_CONFIG_START( firefox, firefox_state )
MCFG_LASERDISC_22VP931_ADD("laserdisc")
- MCFG_LASERDISC_OVERLAY_STATIC(64*8, 525, firefox)
+ MCFG_LASERDISC_OVERLAY_DRIVER(64*8, 525, firefox_state, screen_update_firefox)
MCFG_LASERDISC_OVERLAY_CLIP(7*8, 53*8-1, 44, 480+44)
MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
diff --git a/src/mame/drivers/firetrap.c b/src/mame/drivers/firetrap.c
index 74fe287930a..30b54082786 100644
--- a/src/mame/drivers/firetrap.c
+++ b/src/mame/drivers/firetrap.c
@@ -657,7 +657,7 @@ static MACHINE_CONFIG_START( firetrap, firetrap_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(firetrap)
+ MCFG_SCREEN_UPDATE_DRIVER(firetrap_state, screen_update_firetrap)
MCFG_GFXDECODE(firetrap)
MCFG_PALETTE_LENGTH(256)
@@ -697,7 +697,7 @@ static MACHINE_CONFIG_START( firetrapbl, firetrap_state )
MCFG_GFXDECODE(firetrap)
MCFG_PALETTE_LENGTH(256)
- MCFG_SCREEN_UPDATE_STATIC(firetrap)
+ MCFG_SCREEN_UPDATE_DRIVER(firetrap_state, screen_update_firetrap)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/firetrk.c b/src/mame/drivers/firetrk.c
index 9c14c2e2fae..baa91dd8e4c 100644
--- a/src/mame/drivers/firetrk.c
+++ b/src/mame/drivers/firetrk.c
@@ -887,7 +887,7 @@ static MACHINE_CONFIG_START( firetrk, firetrk_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(320, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(firetrk)
+ MCFG_SCREEN_UPDATE_DRIVER(firetrk_state, screen_update_firetrk)
MCFG_PALETTE_LENGTH(28)
MCFG_GFXDECODE(firetrk)
@@ -909,7 +909,7 @@ static MACHINE_CONFIG_DERIVED( superbug, firetrk )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(superbug)
+ MCFG_SCREEN_UPDATE_DRIVER(firetrk_state, screen_update_superbug)
MCFG_VIDEO_START_OVERRIDE(firetrk_state,superbug)
MCFG_GFXDECODE(superbug)
@@ -930,7 +930,7 @@ static MACHINE_CONFIG_DERIVED( montecar, firetrk )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(montecar)
+ MCFG_SCREEN_UPDATE_DRIVER(firetrk_state, screen_update_montecar)
MCFG_VIDEO_START_OVERRIDE(firetrk_state,montecar)
MCFG_GFXDECODE(montecar)
diff --git a/src/mame/drivers/fitfight.c b/src/mame/drivers/fitfight.c
index afa8f1a930a..233eaa4521b 100644
--- a/src/mame/drivers/fitfight.c
+++ b/src/mame/drivers/fitfight.c
@@ -751,7 +751,7 @@ static MACHINE_CONFIG_START( fitfight, fitfight_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(2*8, 39*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(fitfight)
+ MCFG_SCREEN_UPDATE_DRIVER(fitfight_state, screen_update_fitfight)
MCFG_PALETTE_LENGTH(0x800)
@@ -776,7 +776,7 @@ static MACHINE_CONFIG_START( bbprot, fitfight_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(2*8, 39*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(fitfight)
+ MCFG_SCREEN_UPDATE_DRIVER(fitfight_state, screen_update_fitfight)
MCFG_PALETTE_LENGTH(0x2000)
diff --git a/src/mame/drivers/flipjack.c b/src/mame/drivers/flipjack.c
index 5f2cbd92664..8a6ce406bed 100644
--- a/src/mame/drivers/flipjack.c
+++ b/src/mame/drivers/flipjack.c
@@ -122,6 +122,7 @@ public:
DECLARE_WRITE8_MEMBER(flipjack_portc_w);
virtual void machine_start();
virtual void palette_init();
+ UINT32 screen_update_flipjack(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -147,17 +148,16 @@ void flipjack_state::palette_init()
}
-static SCREEN_UPDATE_RGB32( flipjack )
+UINT32 flipjack_state::screen_update_flipjack(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- flipjack_state *state = screen.machine().driver_data<flipjack_state>();
int x,y,count;
bitmap.fill(get_black_pen(screen.machine()), cliprect);
// draw playfield
- if (state->m_layer & 2)
+ if (m_layer & 2)
{
- const UINT8 *blit_data = state->memregion("gfx2")->base();
+ const UINT8 *blit_data = memregion("gfx2")->base();
count = 0;
@@ -194,15 +194,15 @@ static SCREEN_UPDATE_RGB32( flipjack )
for (x=0;x<32;x++)
{
gfx_element *gfx = screen.machine().gfx[0];
- int tile = state->m_bank << 8 | state->m_vram[x+y*0x100];
- int color = state->m_cram[x+y*0x100] & 0x3f;
+ int tile = m_bank << 8 | m_vram[x+y*0x100];
+ int color = m_cram[x+y*0x100] & 0x3f;
drawgfx_transpen(bitmap, cliprect, gfx, tile, color, 0, 0, x*8, y*8, 0);
}
}
// draw framebuffer
- if (state->m_layer & 4)
+ if (m_layer & 4)
{
count = 0;
@@ -213,7 +213,7 @@ static SCREEN_UPDATE_RGB32( flipjack )
UINT32 pen,color;
int xi;
- pen = (state->m_fbram[count] & 0xff)>>0;
+ pen = (m_fbram[count] & 0xff)>>0;
for(xi=0;xi<8;xi++)
{
@@ -491,7 +491,7 @@ static MACHINE_CONFIG_START( flipjack, flipjack_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK, 0x188, 0, 0x100, 0x100, 0, 0xc0) // from crtc
- MCFG_SCREEN_UPDATE_STATIC(flipjack)
+ MCFG_SCREEN_UPDATE_DRIVER(flipjack_state, screen_update_flipjack)
MCFG_MC6845_ADD("crtc", HD6845, VIDEO_CLOCK/8, mc6845_intf)
diff --git a/src/mame/drivers/flkatck.c b/src/mame/drivers/flkatck.c
index 323b46472a5..7b4f052cd88 100644
--- a/src/mame/drivers/flkatck.c
+++ b/src/mame/drivers/flkatck.c
@@ -236,7 +236,7 @@ static MACHINE_CONFIG_START( flkatck, flkatck_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(37*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 35*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(flkatck)
+ MCFG_SCREEN_UPDATE_DRIVER(flkatck_state, screen_update_flkatck)
MCFG_GFXDECODE(flkatck)
MCFG_PALETTE_LENGTH(512)
diff --git a/src/mame/drivers/flower.c b/src/mame/drivers/flower.c
index ef360f0b1a2..bc54b918a6f 100644
--- a/src/mame/drivers/flower.c
+++ b/src/mame/drivers/flower.c
@@ -270,7 +270,7 @@ static MACHINE_CONFIG_START( flower, flower_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(34*8, 33*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 34*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(flower)
+ MCFG_SCREEN_UPDATE_DRIVER(flower_state, screen_update_flower)
MCFG_GFXDECODE(flower)
diff --git a/src/mame/drivers/flstory.c b/src/mame/drivers/flstory.c
index 4975c8d99a3..0e166f2a1f0 100644
--- a/src/mame/drivers/flstory.c
+++ b/src/mame/drivers/flstory.c
@@ -1102,7 +1102,7 @@ static MACHINE_CONFIG_START( flstory, flstory_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(flstory)
+ MCFG_SCREEN_UPDATE_DRIVER(flstory_state, screen_update_flstory)
MCFG_GFXDECODE(flstory)
MCFG_PALETTE_LENGTH(512)
@@ -1159,7 +1159,7 @@ static MACHINE_CONFIG_START( onna34ro, flstory_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(flstory)
+ MCFG_SCREEN_UPDATE_DRIVER(flstory_state, screen_update_flstory)
MCFG_GFXDECODE(flstory)
MCFG_PALETTE_LENGTH(512)
@@ -1216,7 +1216,7 @@ static MACHINE_CONFIG_START( victnine, flstory_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(victnine)
+ MCFG_SCREEN_UPDATE_DRIVER(flstory_state, screen_update_victnine)
MCFG_GFXDECODE(flstory)
MCFG_PALETTE_LENGTH(512)
@@ -1279,7 +1279,7 @@ static MACHINE_CONFIG_START( rumba, flstory_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(rumba)
+ MCFG_SCREEN_UPDATE_DRIVER(flstory_state, screen_update_rumba)
MCFG_GFXDECODE(flstory)
MCFG_PALETTE_LENGTH(512)
diff --git a/src/mame/drivers/flyball.c b/src/mame/drivers/flyball.c
index 75d9fb43925..fdf99db5666 100644
--- a/src/mame/drivers/flyball.c
+++ b/src/mame/drivers/flyball.c
@@ -60,6 +60,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_flyball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -99,25 +100,24 @@ void flyball_state::video_start()
}
-static SCREEN_UPDATE_IND16( flyball )
+UINT32 flyball_state::screen_update_flyball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- flyball_state *state = screen.machine().driver_data<flyball_state>();
- int pitcherx = state->m_pitcher_horz;
- int pitchery = state->m_pitcher_vert - 31;
+ int pitcherx = m_pitcher_horz;
+ int pitchery = m_pitcher_vert - 31;
- int ballx = state->m_ball_horz - 1;
- int bally = state->m_ball_vert - 17;
+ int ballx = m_ball_horz - 1;
+ int bally = m_ball_vert - 17;
int x;
int y;
- state->m_tmap->mark_all_dirty();
+ m_tmap->mark_all_dirty();
/* draw playfield */
- state->m_tmap->draw(bitmap, cliprect, 0, 0);
+ m_tmap->draw(bitmap, cliprect, 0, 0);
/* draw pitcher */
- drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1], state->m_pitcher_pic ^ 0xf, 0, 1, 0, pitcherx, pitchery, 1);
+ drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1], m_pitcher_pic ^ 0xf, 0, 1, 0, pitcherx, pitchery, 1);
/* draw ball */
@@ -423,7 +423,7 @@ static MACHINE_CONFIG_START( flyball, flyball_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(256, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(flyball)
+ MCFG_SCREEN_UPDATE_DRIVER(flyball_state, screen_update_flyball)
MCFG_GFXDECODE(flyball)
MCFG_PALETTE_LENGTH(4)
diff --git a/src/mame/drivers/foodf.c b/src/mame/drivers/foodf.c
index 4afeb21835e..eb4fbc6fa6d 100644
--- a/src/mame/drivers/foodf.c
+++ b/src/mame/drivers/foodf.c
@@ -371,7 +371,7 @@ static MACHINE_CONFIG_START( foodf, foodf_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 384, 0, 256, 259, 0, 224)
- MCFG_SCREEN_UPDATE_STATIC(foodf)
+ MCFG_SCREEN_UPDATE_DRIVER(foodf_state, screen_update_foodf)
MCFG_VIDEO_START_OVERRIDE(foodf_state,foodf)
diff --git a/src/mame/drivers/fortecar.c b/src/mame/drivers/fortecar.c
index 259a63d05bf..5c7826f69e4 100644
--- a/src/mame/drivers/fortecar.c
+++ b/src/mame/drivers/fortecar.c
@@ -343,6 +343,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_fortecar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -350,9 +351,8 @@ void fortecar_state::video_start()
{
}
-static SCREEN_UPDATE_IND16(fortecar)
+UINT32 fortecar_state::screen_update_fortecar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- fortecar_state *state = screen.machine().driver_data<fortecar_state>();
int x,y,count;
count = 0;
@@ -362,9 +362,9 @@ static SCREEN_UPDATE_IND16(fortecar)
{
int tile,color,bpp;
- tile = (state->m_vram[(count*4)+1] | (state->m_vram[(count*4)+2]<<8)) & 0xfff;
- color = state->m_vram[(count*4)+3] & 0x1f;
- bpp = (state->m_vram[(count*4)+3] & 0x20) >> 5;
+ tile = (m_vram[(count*4)+1] | (m_vram[(count*4)+2]<<8)) & 0xfff;
+ color = m_vram[(count*4)+3] & 0x1f;
+ bpp = (m_vram[(count*4)+3] & 0x20) >> 5;
if(bpp)
color&=0x3;
@@ -701,7 +701,7 @@ static MACHINE_CONFIG_START( fortecar, fortecar_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(640, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 600-1, 0, 240-1) /* driven by CRTC */
- MCFG_SCREEN_UPDATE_STATIC(fortecar)
+ MCFG_SCREEN_UPDATE_DRIVER(fortecar_state, screen_update_fortecar)
MCFG_EEPROM_ADD("eeprom", forte_eeprom_intf)
diff --git a/src/mame/drivers/freekick.c b/src/mame/drivers/freekick.c
index 592d8697410..d69780e18d9 100644
--- a/src/mame/drivers/freekick.c
+++ b/src/mame/drivers/freekick.c
@@ -642,7 +642,7 @@ static MACHINE_CONFIG_START( base, freekick_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pbillrd)
+ MCFG_SCREEN_UPDATE_DRIVER(freekick_state, screen_update_pbillrd)
MCFG_PALETTE_LENGTH(0x200)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
@@ -687,7 +687,7 @@ static MACHINE_CONFIG_DERIVED( freekickb, base )
MCFG_I8255A_ADD( "ppi8255_1", ppi8255_1_intf )
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(freekick)
+ MCFG_SCREEN_UPDATE_DRIVER(freekick_state, screen_update_freekick)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( gigas, base )
@@ -700,7 +700,7 @@ static MACHINE_CONFIG_DERIVED( gigas, base )
MCFG_MACHINE_RESET_OVERRIDE(freekick_state,freekick)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(gigas)
+ MCFG_SCREEN_UPDATE_DRIVER(freekick_state, screen_update_gigas)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( oigas, gigas )
diff --git a/src/mame/drivers/fromanc2.c b/src/mame/drivers/fromanc2.c
index 6b26d9af908..40c9b0d98ba 100644
--- a/src/mame/drivers/fromanc2.c
+++ b/src/mame/drivers/fromanc2.c
@@ -570,14 +570,14 @@ static MACHINE_CONFIG_START( fromanc2, fromanc2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 512)
MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(fromanc2_left)
+ MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_fromanc2_left)
MCFG_SCREEN_ADD("rscreen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 512)
MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(fromanc2_right)
+ MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_fromanc2_right)
MCFG_VIDEO_START_OVERRIDE(fromanc2_state,fromanc2)
@@ -620,14 +620,14 @@ static MACHINE_CONFIG_START( fromancr, fromanc2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 512)
MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(fromanc2_left)
+ MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_fromanc2_left)
MCFG_SCREEN_ADD("rscreen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 512)
MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(fromanc2_right)
+ MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_fromanc2_right)
MCFG_VIDEO_START_OVERRIDE(fromanc2_state,fromancr)
@@ -667,14 +667,14 @@ static MACHINE_CONFIG_START( fromanc4, fromanc2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(2048, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(fromanc2_left)
+ MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_fromanc2_left)
MCFG_SCREEN_ADD("rscreen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 512)
MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(fromanc2_right)
+ MCFG_SCREEN_UPDATE_DRIVER(fromanc2_state, screen_update_fromanc2_right)
MCFG_VIDEO_START_OVERRIDE(fromanc2_state,fromanc4)
diff --git a/src/mame/drivers/fromance.c b/src/mame/drivers/fromance.c
index 442bda25619..41256814adf 100644
--- a/src/mame/drivers/fromance.c
+++ b/src/mame/drivers/fromance.c
@@ -1018,7 +1018,7 @@ static MACHINE_CONFIG_START( nekkyoku, fromance_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(fromance)
+ MCFG_SCREEN_UPDATE_DRIVER(fromance_state, screen_update_fromance)
MCFG_GFXDECODE(fromance)
MCFG_PALETTE_LENGTH(1024)
@@ -1056,7 +1056,7 @@ static MACHINE_CONFIG_START( idolmj, fromance_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(fromance)
+ MCFG_SCREEN_UPDATE_DRIVER(fromance_state, screen_update_fromance)
MCFG_GFXDECODE(fromance)
MCFG_PALETTE_LENGTH(2048)
@@ -1094,7 +1094,7 @@ static MACHINE_CONFIG_START( fromance, fromance_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 352-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(fromance)
+ MCFG_SCREEN_UPDATE_DRIVER(fromance_state, screen_update_fromance)
MCFG_GFXDECODE(fromance)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/funkball.c b/src/mame/drivers/funkball.c
index 592a40f011f..0ff86a5c21c 100644
--- a/src/mame/drivers/funkball.c
+++ b/src/mame/drivers/funkball.c
@@ -164,6 +164,7 @@ public:
DECLARE_WRITE_LINE_MEMBER(funkball_pic8259_1_set_int_line);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_funkball(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
void funkball_state::video_start()
@@ -1134,7 +1135,7 @@ void funkball_state::machine_reset()
m_voodoo_pci_regs.base_addr = 0xff000000;
}
-SCREEN_UPDATE_RGB32( funkball )
+UINT32 funkball_state::screen_update_funkball(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
voodoo_update(screen.machine().device("voodoo_0"), bitmap, cliprect);
return 0;
diff --git a/src/mame/drivers/funkybee.c b/src/mame/drivers/funkybee.c
index ddc30a1fcd8..cef93cbe6a2 100644
--- a/src/mame/drivers/funkybee.c
+++ b/src/mame/drivers/funkybee.c
@@ -305,7 +305,7 @@ static MACHINE_CONFIG_START( funkybee, funkybee_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(12, 32*8-8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(funkybee)
+ MCFG_SCREEN_UPDATE_DRIVER(funkybee_state, screen_update_funkybee)
MCFG_GFXDECODE(funkybee)
MCFG_PALETTE_LENGTH(32)
diff --git a/src/mame/drivers/funkyjet.c b/src/mame/drivers/funkyjet.c
index a022ab19d53..b48686451d1 100644
--- a/src/mame/drivers/funkyjet.c
+++ b/src/mame/drivers/funkyjet.c
@@ -324,7 +324,7 @@ static MACHINE_CONFIG_START( funkyjet, funkyjet_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(funkyjet)
+ MCFG_SCREEN_UPDATE_DRIVER(funkyjet_state, screen_update_funkyjet)
MCFG_GFXDECODE(funkyjet)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/funworld.c b/src/mame/drivers/funworld.c
index 5175865d59c..3208b7740db 100644
--- a/src/mame/drivers/funworld.c
+++ b/src/mame/drivers/funworld.c
@@ -2366,7 +2366,7 @@ static MACHINE_CONFIG_START( fw1stpal, funworld_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE((124+1)*4, (30+1)*8) /* Taken from MC6845 init, registers 00 & 04. Normally programmed with (value-1) */
MCFG_SCREEN_VISIBLE_AREA(0*4, 96*4-1, 0*8, 29*8-1) /* Taken from MC6845 init, registers 01 & 06 */
- MCFG_SCREEN_UPDATE_STATIC(funworld)
+ MCFG_SCREEN_UPDATE_DRIVER(funworld_state, screen_update_funworld)
MCFG_GFXDECODE(fw1stpal)
diff --git a/src/mame/drivers/funybubl.c b/src/mame/drivers/funybubl.c
index 5823b292229..58acb3889cf 100644
--- a/src/mame/drivers/funybubl.c
+++ b/src/mame/drivers/funybubl.c
@@ -234,7 +234,7 @@ static MACHINE_CONFIG_START( funybubl, funybubl_state )
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(12*8, 512-12*8-1, 16, 256-16-1)
// MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(funybubl)
+ MCFG_SCREEN_UPDATE_DRIVER(funybubl_state, screen_update_funybubl)
MCFG_GFXDECODE(funybubl)
MCFG_PALETTE_LENGTH(0x400)
diff --git a/src/mame/drivers/fuukifg2.c b/src/mame/drivers/fuukifg2.c
index dcf7fdc7e2d..e8c1ea4dd45 100644
--- a/src/mame/drivers/fuukifg2.c
+++ b/src/mame/drivers/fuukifg2.c
@@ -478,7 +478,7 @@ static MACHINE_CONFIG_START( fuuki16, fuuki16_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(320, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(fuuki16)
+ MCFG_SCREEN_UPDATE_DRIVER(fuuki16_state, screen_update_fuuki16)
MCFG_GFXDECODE(fuuki16)
MCFG_PALETTE_LENGTH(0x800*4)
diff --git a/src/mame/drivers/fuukifg3.c b/src/mame/drivers/fuukifg3.c
index 539eabff04c..ac076081065 100644
--- a/src/mame/drivers/fuukifg3.c
+++ b/src/mame/drivers/fuukifg3.c
@@ -605,8 +605,8 @@ static MACHINE_CONFIG_START( fuuki32, fuuki32_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(fuuki32)
- MCFG_SCREEN_VBLANK_STATIC(fuuki32)
+ MCFG_SCREEN_UPDATE_DRIVER(fuuki32_state, screen_update_fuuki32)
+ MCFG_SCREEN_VBLANK_DRIVER(fuuki32_state, screen_eof_fuuki32)
MCFG_GFXDECODE(fuuki32)
MCFG_PALETTE_LENGTH(0x4000/2)
diff --git a/src/mame/drivers/gaelco.c b/src/mame/drivers/gaelco.c
index 93f4e4172a0..ea4aafeb7bf 100644
--- a/src/mame/drivers/gaelco.c
+++ b/src/mame/drivers/gaelco.c
@@ -520,7 +520,7 @@ static MACHINE_CONFIG_START( bigkarnk, gaelco_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*16, 32*16)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(bigkarnk)
+ MCFG_SCREEN_UPDATE_DRIVER(gaelco_state, screen_update_bigkarnk)
MCFG_GFXDECODE(0x100000)
MCFG_PALETTE_LENGTH(1024)
@@ -551,7 +551,7 @@ static MACHINE_CONFIG_START( maniacsq, gaelco_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*16, 32*16)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(maniacsq)
+ MCFG_SCREEN_UPDATE_DRIVER(gaelco_state, screen_update_maniacsq)
MCFG_GFXDECODE(0x100000)
MCFG_PALETTE_LENGTH(1024)
@@ -581,7 +581,7 @@ static MACHINE_CONFIG_START( squash, gaelco_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*16, 32*16)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(maniacsq)
+ MCFG_SCREEN_UPDATE_DRIVER(gaelco_state, screen_update_maniacsq)
MCFG_GFXDECODE(0x100000)
MCFG_PALETTE_LENGTH(1024)
@@ -611,7 +611,7 @@ static MACHINE_CONFIG_START( thoop, gaelco_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*16, 32*16)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(maniacsq)
+ MCFG_SCREEN_UPDATE_DRIVER(gaelco_state, screen_update_maniacsq)
MCFG_GFXDECODE(0x100000)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/gaelco2.c b/src/mame/drivers/gaelco2.c
index 80a2c7aaec0..7d2e5c4be17 100644
--- a/src/mame/drivers/gaelco2.c
+++ b/src/mame/drivers/gaelco2.c
@@ -167,7 +167,7 @@ static MACHINE_CONFIG_START( maniacsq, gaelco2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*16, 32*16)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(gaelco2)
+ MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(0x0080000)
@@ -300,7 +300,7 @@ static MACHINE_CONFIG_START( bang, gaelco2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*16, 32*16)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(gaelco2)
+ MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(0x0200000)
@@ -541,7 +541,7 @@ static MACHINE_CONFIG_START( alighunt, gaelco2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*16, 32*16)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(gaelco2)
+ MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(0x0400000)
@@ -786,14 +786,14 @@ static MACHINE_CONFIG_START( touchgo, gaelco2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*16, 32*16)
MCFG_SCREEN_VISIBLE_AREA(0, 480-1, 16, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(gaelco2_left)
+ MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2_left)
MCFG_SCREEN_ADD("rscreen", RASTER)
MCFG_SCREEN_REFRESH_RATE(59.1)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*16, 32*16)
MCFG_SCREEN_VISIBLE_AREA(0, 480-1, 16, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(gaelco2_right)
+ MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2_right)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_VIDEO_START_OVERRIDE(gaelco2_state,gaelco2_dual)
@@ -977,7 +977,7 @@ static MACHINE_CONFIG_START( snowboar, gaelco2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*16, 32*16)
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(gaelco2)
+ MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(0x0400000)
@@ -1221,14 +1221,14 @@ static MACHINE_CONFIG_START( wrally2, gaelco2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(384, 32*16)
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(gaelco2_left)
+ MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2_left)
MCFG_SCREEN_ADD("rscreen", RASTER)
MCFG_SCREEN_REFRESH_RATE(59.1)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(384, 32*16)
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(gaelco2_right)
+ MCFG_SCREEN_UPDATE_DRIVER(gaelco2_state, screen_update_gaelco2_right)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
diff --git a/src/mame/drivers/gaelco3d.c b/src/mame/drivers/gaelco3d.c
index e78d6e3c68c..c05073ff279 100644
--- a/src/mame/drivers/gaelco3d.c
+++ b/src/mame/drivers/gaelco3d.c
@@ -1019,7 +1019,7 @@ static MACHINE_CONFIG_START( gaelco3d, gaelco3d_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(576, 432)
MCFG_SCREEN_VISIBLE_AREA(0, 575, 0, 431)
- MCFG_SCREEN_UPDATE_STATIC(gaelco3d)
+ MCFG_SCREEN_UPDATE_DRIVER(gaelco3d_state, screen_update_gaelco3d)
MCFG_PALETTE_LENGTH(32768)
diff --git a/src/mame/drivers/gaiden.c b/src/mame/drivers/gaiden.c
index 051e4a55872..dc43a5d3f1d 100644
--- a/src/mame/drivers/gaiden.c
+++ b/src/mame/drivers/gaiden.c
@@ -779,7 +779,7 @@ static MACHINE_CONFIG_START( shadoww, gaiden_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(gaiden)
+ MCFG_SCREEN_UPDATE_DRIVER(gaiden_state, screen_update_gaiden)
MCFG_GFXDECODE(gaiden)
MCFG_PALETTE_LENGTH(4096)
@@ -809,7 +809,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( raiga, shadoww )
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(raiga)
+ MCFG_SCREEN_UPDATE_DRIVER(gaiden_state, screen_update_raiga)
MCFG_VIDEO_START_OVERRIDE(gaiden_state,raiga)
MCFG_GFXDECODE(raiga)
@@ -835,7 +835,7 @@ static MACHINE_CONFIG_START( drgnbowl, gaiden_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(drgnbowl)
+ MCFG_SCREEN_UPDATE_DRIVER(gaiden_state, screen_update_drgnbowl)
MCFG_GFXDECODE(drgnbowl)
MCFG_PALETTE_LENGTH(4096)
@@ -951,7 +951,7 @@ static MACHINE_CONFIG_START( mastninj, gaiden_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(gaiden)
+ MCFG_SCREEN_UPDATE_DRIVER(gaiden_state, screen_update_gaiden)
MCFG_GFXDECODE(mastninj)
MCFG_PALETTE_LENGTH(4096)
diff --git a/src/mame/drivers/gal3.c b/src/mame/drivers/gal3.c
index 06a3d947a89..550dc0c3152 100644
--- a/src/mame/drivers/gal3.c
+++ b/src/mame/drivers/gal3.c
@@ -159,6 +159,7 @@ public:
DECLARE_READ32_MEMBER(rso_r);
DECLARE_WRITE32_MEMBER(rso_w);
DECLARE_VIDEO_START(gal3);
+ UINT32 screen_update_gal3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -193,9 +194,8 @@ static void update_palette( running_machine &machine )
}
} /* update_palette */
-static SCREEN_UPDATE_RGB32(gal3)
+UINT32 gal3_state::screen_update_gal3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- gal3_state *state = screen.machine().driver_data<gal3_state>();
int i;
char mst[18], slv[18];
static int pivot = 15;
@@ -208,19 +208,19 @@ static SCREEN_UPDATE_RGB32(gal3)
for( pri=0; pri<pivot; pri++ )
{
- state->c355_obj_draw(bitmap, cliprect, pri);
+ c355_obj_draw(bitmap, cliprect, pri);
}
/* CopyVisiblePolyFrameBuffer( bitmap, cliprect,0,0x7fbf );
for( pri=pivot; pri<15; pri++ )
{
- state->c355_obj_draw(bitmap, cliprect, pri);
+ c355_obj_draw(bitmap, cliprect, pri);
}*/
// CPU Diag LEDs
mst[17]='\0', slv[17]='\0';
-/// printf("mst=0x%x\tslv=0x%x\n", state->m_led_mst, state->m_led_slv);
+/// printf("mst=0x%x\tslv=0x%x\n", m_led_mst, m_led_slv);
for(i=16;i<32;i++)
{
int t;
@@ -230,12 +230,12 @@ static SCREEN_UPDATE_RGB32(gal3)
t=i+1;
mst[8]=' '; slv[8]=' ';
- if(state->m_led_mst&(1<<i))
+ if(m_led_mst&(1<<i))
mst[t-16]='*';
else
mst[t-16]='O';
- if(state->m_led_slv&(1<<i))
+ if(m_led_slv&(1<<i))
slv[t-16]='*';
else
slv[t-16]='O';
@@ -658,14 +658,14 @@ static MACHINE_CONFIG_START( gal3, gal3_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0*8, 512-1)
- MCFG_SCREEN_UPDATE_STATIC(gal3)
+ MCFG_SCREEN_UPDATE_DRIVER(gal3_state, screen_update_gal3)
MCFG_SCREEN_ADD("rscreen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0*8, 512-1)
- MCFG_SCREEN_UPDATE_STATIC(gal3)
+ MCFG_SCREEN_UPDATE_DRIVER(gal3_state, screen_update_gal3)
MCFG_GFXDECODE(namcos21)
MCFG_PALETTE_LENGTH(NAMCOS21_NUM_COLORS)
diff --git a/src/mame/drivers/galaga.c b/src/mame/drivers/galaga.c
index fb749f8c19c..13c4d545aa3 100644
--- a/src/mame/drivers/galaga.c
+++ b/src/mame/drivers/galaga.c
@@ -1700,8 +1700,8 @@ static MACHINE_CONFIG_START( bosco, bosco_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 288, 264, 16, 224+16)
- MCFG_SCREEN_UPDATE_STATIC(bosco)
- MCFG_SCREEN_VBLANK_STATIC(bosco)
+ MCFG_SCREEN_UPDATE_DRIVER(bosco_state, screen_update_bosco)
+ MCFG_SCREEN_VBLANK_DRIVER(bosco_state, screen_eof_bosco)
MCFG_GFXDECODE(bosco)
MCFG_PALETTE_LENGTH(64*4+64*4+4+64)
@@ -1756,8 +1756,8 @@ static MACHINE_CONFIG_START( galaga, galaga_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 288, 264, 0, 224)
- MCFG_SCREEN_UPDATE_STATIC(galaga)
- MCFG_SCREEN_VBLANK_STATIC(galaga)
+ MCFG_SCREEN_UPDATE_DRIVER(bosco_state, screen_update_galaga)
+ MCFG_SCREEN_VBLANK_DRIVER(bosco_state, screen_eof_galaga)
MCFG_GFXDECODE(galaga)
MCFG_PALETTE_LENGTH(64*4+64*4+64)
@@ -1834,7 +1834,7 @@ static MACHINE_CONFIG_START( xevious, xevious_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 288, 264, 0, 224)
- MCFG_SCREEN_UPDATE_STATIC(xevious)
+ MCFG_SCREEN_UPDATE_DRIVER(xevious_state, screen_update_xevious)
MCFG_GFXDECODE(xevious)
MCFG_PALETTE_LENGTH(128*4+64*8+64*2)
@@ -1923,7 +1923,7 @@ static MACHINE_CONFIG_START( digdug, digdug_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 288, 264, 0, 224)
- MCFG_SCREEN_UPDATE_STATIC(digdug)
+ MCFG_SCREEN_UPDATE_DRIVER(digdug_state, screen_update_digdug)
MCFG_GFXDECODE(digdug)
MCFG_PALETTE_LENGTH(16*2+64*4+64*4)
diff --git a/src/mame/drivers/galastrm.c b/src/mame/drivers/galastrm.c
index c07f45a3d05..1a73a00ba52 100644
--- a/src/mame/drivers/galastrm.c
+++ b/src/mame/drivers/galastrm.c
@@ -320,7 +320,7 @@ static MACHINE_CONFIG_START( galastrm, galastrm_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 50*8)
MCFG_SCREEN_VISIBLE_AREA(0+96, 40*8-1+96, 3*8+60, 32*8-1+60)
- MCFG_SCREEN_UPDATE_STATIC(galastrm)
+ MCFG_SCREEN_UPDATE_DRIVER(galastrm_state, screen_update_galastrm)
MCFG_GFXDECODE(galastrm)
MCFG_PALETTE_LENGTH(4096)
diff --git a/src/mame/drivers/galaxi.c b/src/mame/drivers/galaxi.c
index 2bb6f855a6d..839e4fcba25 100644
--- a/src/mame/drivers/galaxi.c
+++ b/src/mame/drivers/galaxi.c
@@ -94,6 +94,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_galaxi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -181,9 +182,8 @@ void galaxi_state::video_start()
m_bg3_tmap->set_scrolldx(-8, 0);
}
-static SCREEN_UPDATE_IND16(galaxi)
+UINT32 galaxi_state::screen_update_galaxi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- galaxi_state *state = screen.machine().driver_data<galaxi_state>();
int layers_ctrl = -1;
#ifdef MAME_DEBUG
@@ -199,13 +199,13 @@ static SCREEN_UPDATE_IND16(galaxi)
}
#endif
- if (layers_ctrl & 1) state->m_bg1_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ if (layers_ctrl & 1) m_bg1_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
else bitmap.fill(get_black_pen(screen.machine()), cliprect);
- if (layers_ctrl & 2) state->m_bg2_tmap->draw(bitmap, cliprect, 0, 0);
- if (layers_ctrl & 4) state->m_bg3_tmap->draw(bitmap, cliprect, 0, 0);
- if (layers_ctrl & 8) state->m_bg4_tmap->draw(bitmap, cliprect, 0, 0);
+ if (layers_ctrl & 2) m_bg2_tmap->draw(bitmap, cliprect, 0, 0);
+ if (layers_ctrl & 4) m_bg3_tmap->draw(bitmap, cliprect, 0, 0);
+ if (layers_ctrl & 8) m_bg4_tmap->draw(bitmap, cliprect, 0, 0);
- if (layers_ctrl & 16) state->m_fg_tmap->draw(bitmap, cliprect, 0, 0);
+ if (layers_ctrl & 16) m_fg_tmap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -416,7 +416,7 @@ static MACHINE_CONFIG_START( galaxi, galaxi_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(16*5, 512-16*2-1, 16*1, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(galaxi)
+ MCFG_SCREEN_UPDATE_DRIVER(galaxi_state, screen_update_galaxi)
MCFG_GFXDECODE(galaxi)
MCFG_PALETTE_LENGTH(0x400)
diff --git a/src/mame/drivers/galaxia.c b/src/mame/drivers/galaxia.c
index bf2b446251f..c7ac0ad5d20 100644
--- a/src/mame/drivers/galaxia.c
+++ b/src/mame/drivers/galaxia.c
@@ -305,7 +305,7 @@ static MACHINE_CONFIG_START( galaxia, galaxia_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 30*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(galaxia)
+ MCFG_SCREEN_UPDATE_DRIVER(galaxia_state, screen_update_galaxia)
MCFG_GFXDECODE(galaxia)
MCFG_PALETTE_LENGTH(0x18+2)
@@ -345,7 +345,7 @@ static MACHINE_CONFIG_START( astrowar, galaxia_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(astrowar)
+ MCFG_SCREEN_UPDATE_DRIVER(galaxia_state, screen_update_astrowar)
MCFG_GFXDECODE(astrowar)
MCFG_PALETTE_LENGTH(0x18+2)
diff --git a/src/mame/drivers/galaxian.c b/src/mame/drivers/galaxian.c
index 39aa3c537f5..6ff3b7e1dea 100644
--- a/src/mame/drivers/galaxian.c
+++ b/src/mame/drivers/galaxian.c
@@ -2094,7 +2094,7 @@ static MACHINE_CONFIG_START( galaxian_base, galaxian_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(GALAXIAN_PIXEL_CLOCK, GALAXIAN_HTOTAL, GALAXIAN_HBEND, GALAXIAN_HBSTART, GALAXIAN_VTOTAL, GALAXIAN_VBEND, GALAXIAN_VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(galaxian)
+ MCFG_SCREEN_UPDATE_DRIVER(galaxian_state, screen_update_galaxian)
/* blinking frequency is determined by 555 counter with Ra=100k, Rb=10k, C=10uF */
diff --git a/src/mame/drivers/galaxold.c b/src/mame/drivers/galaxold.c
index ecb7aca6dcf..3e09b97c883 100644
--- a/src/mame/drivers/galaxold.c
+++ b/src/mame/drivers/galaxold.c
@@ -2187,7 +2187,7 @@ static MACHINE_CONFIG_START( galaxold_base, galaxold_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(galaxold)
+ MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold)
MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,galaxold)
MCFG_VIDEO_START_OVERRIDE(galaxold_state,galaxold)
@@ -2340,7 +2340,7 @@ static MACHINE_CONFIG_START( drivfrcg, galaxold_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(galaxold)
+ MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold)
MCFG_PALETTE_LENGTH(64)
MCFG_GFXDECODE(gmgalax)
@@ -2364,7 +2364,7 @@ static MACHINE_CONFIG_DERIVED( bongo, galaxold_base )
MCFG_VIDEO_START_OVERRIDE(galaxold_state,bongo)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(galaxold)
+ MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold)
MCFG_SOUND_ADD("aysnd", AY8910, PIXEL_CLOCK/4)
MCFG_SOUND_CONFIG(bongo_ay8910_interface)
@@ -2440,7 +2440,7 @@ static MACHINE_CONFIG_START( racknrol, galaxold_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(galaxold)
+ MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold)
MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,rockclim)
MCFG_VIDEO_START_OVERRIDE(galaxold_state,racknrol)
@@ -2498,7 +2498,7 @@ static MACHINE_CONFIG_START( hexpoola, galaxold_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(galaxold)
+ MCFG_SCREEN_UPDATE_DRIVER(galaxold_state, screen_update_galaxold)
MCFG_PALETTE_INIT_OVERRIDE(galaxold_state,rockclim)
MCFG_VIDEO_START_OVERRIDE(galaxold_state,racknrol)
diff --git a/src/mame/drivers/galgame.c b/src/mame/drivers/galgame.c
index 482d275a4bb..b96d28d7012 100644
--- a/src/mame/drivers/galgame.c
+++ b/src/mame/drivers/galgame.c
@@ -47,6 +47,7 @@ public:
DECLARE_DRIVER_INIT(galaxygame);
virtual void machine_reset();
virtual void palette_init();
+ UINT32 screen_update_galaxygame(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*************************************
@@ -168,13 +169,12 @@ WRITE16_MEMBER(galaxygame_state::ke_w)
*
*************************************/
-static SCREEN_UPDATE_IND16( galaxygame )
+UINT32 galaxygame_state::screen_update_galaxygame(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- galaxygame_state *state = screen.machine().driver_data<galaxygame_state>();
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- for (int i = 0; i < state->m_point_display_list_index; i++ )
+ for (int i = 0; i < m_point_display_list_index; i++ )
{
- bitmap.pix16(state->m_point_display_list[i].x >> 7, state->m_point_display_list[i].y >> 7) = 1;
+ bitmap.pix16(m_point_display_list[i].x >> 7, m_point_display_list[i].y >> 7) = 1;
}
return 0;
}
@@ -339,7 +339,7 @@ static MACHINE_CONFIG_START( galaxygame, galaxygame_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 512)
MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 511)
- MCFG_SCREEN_UPDATE_STATIC(galaxygame)
+ MCFG_SCREEN_UPDATE_DRIVER(galaxygame_state, screen_update_galaxygame)
MCFG_PALETTE_LENGTH(2)
diff --git a/src/mame/drivers/galivan.c b/src/mame/drivers/galivan.c
index aa185cfe993..67905f3d460 100644
--- a/src/mame/drivers/galivan.c
+++ b/src/mame/drivers/galivan.c
@@ -452,7 +452,7 @@ static MACHINE_CONFIG_START( galivan, galivan_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(galivan)
+ MCFG_SCREEN_UPDATE_DRIVER(galivan_state, screen_update_galivan)
MCFG_GFXDECODE(galivan)
MCFG_PALETTE_LENGTH(8*16+16*16+256*16)
@@ -494,7 +494,7 @@ static MACHINE_CONFIG_START( ninjemak, galivan_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(ninjemak)
+ MCFG_SCREEN_UPDATE_DRIVER(galivan_state, screen_update_ninjemak)
MCFG_GFXDECODE(ninjemak)
MCFG_PALETTE_LENGTH(8*16+16*16+256*16)
diff --git a/src/mame/drivers/galpani2.c b/src/mame/drivers/galpani2.c
index 57c1f99e7d5..1d182dfc28f 100644
--- a/src/mame/drivers/galpani2.c
+++ b/src/mame/drivers/galpani2.c
@@ -597,7 +597,7 @@ static MACHINE_CONFIG_START( galpani2, galpani2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-1-16)
- MCFG_SCREEN_UPDATE_STATIC(galpani2)
+ MCFG_SCREEN_UPDATE_DRIVER(galpani2_state, screen_update_galpani2)
MCFG_GFXDECODE(galpani2)
MCFG_PALETTE_LENGTH(0x4000 + 0x200 + 0x8000) // sprites, bg8, bg15
diff --git a/src/mame/drivers/galpani3.c b/src/mame/drivers/galpani3.c
index 7702ee97741..aeb2d7d4dae 100644
--- a/src/mame/drivers/galpani3.c
+++ b/src/mame/drivers/galpani3.c
@@ -112,6 +112,7 @@ public:
{
}
virtual void video_start();
+ UINT32 screen_update_galpani3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -188,9 +189,8 @@ static int gp3_is_alpha_pen(running_machine &machine, int pen)
}
-static SCREEN_UPDATE_RGB32(galpani3)
+UINT32 galpani3_state::screen_update_galpani3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- galpani3_state *state = screen.machine().driver_data<galpani3_state>();
int x,y;
UINT16* src1;
UINT32* dst;
@@ -199,7 +199,7 @@ static SCREEN_UPDATE_RGB32(galpani3)
bitmap.fill(0x0000, cliprect);
-// popmessage("%02x %02x", state->m_grap2_0->m_framebuffer_bright2, state->m_grap2_1->m_framebuffer_bright2);
+// popmessage("%02x %02x", m_grap2_0->m_framebuffer_bright2, m_grap2_1->m_framebuffer_bright2);
@@ -207,19 +207,19 @@ static SCREEN_UPDATE_RGB32(galpani3)
int drawy, drawx;
for (drawy=0;drawy<512;drawy++)
{
- UINT16* srcline1 = state->m_grap2_0->m_framebuffer + ((drawy+state->m_grap2_0->m_framebuffer_scrolly+11)&0x1ff) * 0x200;
- UINT16* srcline2 = state->m_grap2_1->m_framebuffer + ((drawy+state->m_grap2_1->m_framebuffer_scrolly+11)&0x1ff) * 0x200;
- UINT16* srcline3 = state->m_grap2_2->m_framebuffer + ((drawy+state->m_grap2_2->m_framebuffer_scrolly+11)&0x1ff) * 0x200;
+ UINT16* srcline1 = m_grap2_0->m_framebuffer + ((drawy+m_grap2_0->m_framebuffer_scrolly+11)&0x1ff) * 0x200;
+ UINT16* srcline2 = m_grap2_1->m_framebuffer + ((drawy+m_grap2_1->m_framebuffer_scrolly+11)&0x1ff) * 0x200;
+ UINT16* srcline3 = m_grap2_2->m_framebuffer + ((drawy+m_grap2_2->m_framebuffer_scrolly+11)&0x1ff) * 0x200;
- UINT16* priline = state->m_priority_buffer + ((drawy+state->m_priority_buffer_scrolly+11)&0x1ff) * 0x200;
+ UINT16* priline = m_priority_buffer + ((drawy+m_priority_buffer_scrolly+11)&0x1ff) * 0x200;
for (drawx=0;drawx<512;drawx++)
{
- int srcoffs1 = (drawx+state->m_grap2_0->m_framebuffer_scrollx+67)&0x1ff;
- int srcoffs2 = (drawx+state->m_grap2_1->m_framebuffer_scrollx+67)&0x1ff;
- int srcoffs3 = (drawx+state->m_grap2_2->m_framebuffer_scrollx+67)&0x1ff;
+ int srcoffs1 = (drawx+m_grap2_0->m_framebuffer_scrollx+67)&0x1ff;
+ int srcoffs2 = (drawx+m_grap2_1->m_framebuffer_scrollx+67)&0x1ff;
+ int srcoffs3 = (drawx+m_grap2_2->m_framebuffer_scrollx+67)&0x1ff;
- int prioffs = (drawx+state->m_priority_buffer_scrollx+66)&0x1ff;
+ int prioffs = (drawx+m_priority_buffer_scrollx+66)&0x1ff;
UINT8 dat1 = srcline1[srcoffs1];
UINT8 dat2 = srcline2[srcoffs2];
@@ -234,12 +234,12 @@ static SCREEN_UPDATE_RGB32(galpani3)
// this is all wrong
if (pridat==0x0f) // relates to the area you've drawn over
{
- if (dat1 && state->m_grap2_0->m_framebuffer_enable)
+ if (dat1 && m_grap2_0->m_framebuffer_enable)
{
dst[0] = paldata[dat1+0x4000];
}
- if (dat2 && state->m_grap2_1->m_framebuffer_enable)
+ if (dat2 && m_grap2_1->m_framebuffer_enable)
{
dst[0] = paldata[dat2+0x4100];
}
@@ -254,7 +254,7 @@ static SCREEN_UPDATE_RGB32(galpani3)
/* this isn't right, but the registers have something to do with
alpha / mixing, and bit 0x8000 of the palette is DEFINITELY alpha
enable -- see fading in intro */
- if (dat1 && state->m_grap2_0->m_framebuffer_enable)
+ if (dat1 && m_grap2_0->m_framebuffer_enable)
{
UINT16 pen = dat1+0x4000;
UINT32 pal = paldata[pen];
@@ -266,9 +266,9 @@ static SCREEN_UPDATE_RGB32(galpani3)
g = (pal & 0x0000ff00)>>8;
b = (pal & 0x000000ff)>>0;
- r = (r * state->m_grap2_0->m_framebuffer_bright2) / 0xff;
- g = (g * state->m_grap2_0->m_framebuffer_bright2) / 0xff;
- b = (b * state->m_grap2_0->m_framebuffer_bright2) / 0xff;
+ r = (r * m_grap2_0->m_framebuffer_bright2) / 0xff;
+ g = (g * m_grap2_0->m_framebuffer_bright2) / 0xff;
+ b = (b * m_grap2_0->m_framebuffer_bright2) / 0xff;
pal = (r & 0x000000ff)<<16;
pal |=(g & 0x000000ff)<<8;
@@ -282,7 +282,7 @@ static SCREEN_UPDATE_RGB32(galpani3)
}
}
- if (dat2 && state->m_grap2_1->m_framebuffer_enable)
+ if (dat2 && m_grap2_1->m_framebuffer_enable)
{
UINT16 pen = dat2+0x4100;
UINT32 pal = paldata[pen];
@@ -294,9 +294,9 @@ static SCREEN_UPDATE_RGB32(galpani3)
g = (pal & 0x0000ff00)>>8;
b = (pal & 0x000000ff)>>0;
- r = (r * state->m_grap2_1->m_framebuffer_bright2) / 0xff;
- g = (g * state->m_grap2_1->m_framebuffer_bright2) / 0xff;
- b = (b * state->m_grap2_1->m_framebuffer_bright2) / 0xff;
+ r = (r * m_grap2_1->m_framebuffer_bright2) / 0xff;
+ g = (g * m_grap2_1->m_framebuffer_bright2) / 0xff;
+ b = (b * m_grap2_1->m_framebuffer_bright2) / 0xff;
pal = (r & 0x000000ff)<<16;
pal |=(g & 0x000000ff)<<8;
@@ -310,7 +310,7 @@ static SCREEN_UPDATE_RGB32(galpani3)
}
}
- if (dat3 && state->m_grap2_2->m_framebuffer_enable)
+ if (dat3 && m_grap2_2->m_framebuffer_enable)
{
dst[0] = paldata[dat3+0x4200];
}
@@ -344,14 +344,14 @@ static SCREEN_UPDATE_RGB32(galpani3)
}
- state->m_sprite_bitmap_1.fill(0x0000, cliprect);
+ m_sprite_bitmap_1.fill(0x0000, cliprect);
- state->m_spritegen->skns_draw_sprites(screen.machine(), state->m_sprite_bitmap_1, cliprect, &state->m_spriteram32[0], 0x4000, screen.machine().root_device().memregion("gfx1")->base(), screen.machine().root_device().memregion ("gfx1")->bytes(), state->m_spc_regs );
+ m_spritegen->skns_draw_sprites(screen.machine(), m_sprite_bitmap_1, cliprect, &m_spriteram32[0], 0x4000, screen.machine().root_device().memregion("gfx1")->base(), screen.machine().root_device().memregion ("gfx1")->bytes(), m_spc_regs );
// ignoring priority bits for now..
for (y=0;y<240;y++)
{
- src1 = &state->m_sprite_bitmap_1.pix16(y);
+ src1 = &m_sprite_bitmap_1.pix16(y);
dst = &bitmap.pix32(y);
for (x=0;x<320;x++)
@@ -518,7 +518,7 @@ static MACHINE_CONFIG_START( galpani3, galpani3_state )
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
//MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 64*8-1)
- MCFG_SCREEN_UPDATE_STATIC(galpani3)
+ MCFG_SCREEN_UPDATE_DRIVER(galpani3_state, screen_update_galpani3)
MCFG_EEPROM_93C46_ADD("eeprom")
diff --git a/src/mame/drivers/galpanic.c b/src/mame/drivers/galpanic.c
index 48905e69e4f..d1770986414 100644
--- a/src/mame/drivers/galpanic.c
+++ b/src/mame/drivers/galpanic.c
@@ -124,10 +124,10 @@ The current set of Super Model is an example of type C
#include "includes/galpanic.h"
#include "includes/galpnipt.h"
-static SCREEN_VBLANK( galpanic )
+void galpanic_state::screen_eof_galpanic(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
device_t *pandora = screen.machine().device("pandora");
pandora_eof(pandora);
@@ -567,8 +567,8 @@ static MACHINE_CONFIG_START( galpanic, galpanic_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 224-1)
- MCFG_SCREEN_UPDATE_STATIC(galpanic)
- MCFG_SCREEN_VBLANK_STATIC( galpanic )
+ MCFG_SCREEN_UPDATE_DRIVER(galpanic_state, screen_update_galpanic)
+ MCFG_SCREEN_VBLANK_DRIVER(galpanic_state, screen_eof_galpanic)
MCFG_GFXDECODE(galpanic)
MCFG_PALETTE_LENGTH(1024 + 32768)
@@ -611,7 +611,7 @@ static MACHINE_CONFIG_DERIVED( comad, galpanic )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(comad)
+ MCFG_SCREEN_UPDATE_DRIVER(galpanic_state, screen_update_comad)
MCFG_SCREEN_VBLANK_NONE()
MACHINE_CONFIG_END
@@ -625,7 +625,7 @@ static MACHINE_CONFIG_DERIVED( supmodel, comad )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(comad)
+ MCFG_SCREEN_UPDATE_DRIVER(galpanic_state, screen_update_comad)
MCFG_SCREEN_VBLANK_NONE()
/* sound hardware */
@@ -643,7 +643,7 @@ static MACHINE_CONFIG_DERIVED( fantsia2, comad )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(comad)
+ MCFG_SCREEN_UPDATE_DRIVER(galpanic_state, screen_update_comad)
MCFG_SCREEN_VBLANK_NONE()
MACHINE_CONFIG_END
@@ -658,7 +658,7 @@ static MACHINE_CONFIG_DERIVED( galhustl, comad )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(comad)
+ MCFG_SCREEN_UPDATE_DRIVER(galpanic_state, screen_update_comad)
MCFG_SCREEN_VBLANK_NONE()
/* sound hardware */
@@ -677,7 +677,7 @@ static MACHINE_CONFIG_DERIVED( zipzap, comad )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(comad)
+ MCFG_SCREEN_UPDATE_DRIVER(galpanic_state, screen_update_comad)
/* sound hardware */
MCFG_OKIM6295_REPLACE("oki", 1056000, OKIM6295_PIN7_HIGH) // clock frequency & pin 7 not verified
diff --git a/src/mame/drivers/galspnbl.c b/src/mame/drivers/galspnbl.c
index 2ef75dc56ec..7289a278b23 100644
--- a/src/mame/drivers/galspnbl.c
+++ b/src/mame/drivers/galspnbl.c
@@ -242,7 +242,7 @@ static MACHINE_CONFIG_START( galspnbl, galspnbl_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(galspnbl)
+ MCFG_SCREEN_UPDATE_DRIVER(galspnbl_state, screen_update_galspnbl)
MCFG_GFXDECODE(galspnbl)
MCFG_PALETTE_LENGTH(1024 + 32768)
diff --git a/src/mame/drivers/gamecstl.c b/src/mame/drivers/gamecstl.c
index 01d1c80019d..650ab9d7e0a 100644
--- a/src/mame/drivers/gamecstl.c
+++ b/src/mame/drivers/gamecstl.c
@@ -119,6 +119,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_gamecstl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -162,12 +163,11 @@ static void draw_char(bitmap_ind16 &bitmap, const rectangle &cliprect, gfx_eleme
}
}
-static SCREEN_UPDATE_IND16(gamecstl)
+UINT32 gamecstl_state::screen_update_gamecstl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- gamecstl_state *state = screen.machine().driver_data<gamecstl_state>();
int i, j;
gfx_element *gfx = screen.machine().gfx[0];
- UINT32 *cga = state->m_cga_ram;
+ UINT32 *cga = m_cga_ram;
int index = 0;
bitmap.fill(0, cliprect);
@@ -726,7 +726,7 @@ static MACHINE_CONFIG_START( gamecstl, gamecstl_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 199)
- MCFG_SCREEN_UPDATE_STATIC(gamecstl)
+ MCFG_SCREEN_UPDATE_DRIVER(gamecstl_state, screen_update_gamecstl)
MCFG_GFXDECODE(CGA)
MCFG_PALETTE_LENGTH(16)
diff --git a/src/mame/drivers/gaplus.c b/src/mame/drivers/gaplus.c
index 452e720b5eb..ee659ca7e8a 100644
--- a/src/mame/drivers/gaplus.c
+++ b/src/mame/drivers/gaplus.c
@@ -583,8 +583,8 @@ static MACHINE_CONFIG_START( gaplus, gaplus_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(36*8, 28*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(gaplus)
- MCFG_SCREEN_VBLANK_STATIC(gaplus)
+ MCFG_SCREEN_UPDATE_DRIVER(gaplus_state, screen_update_gaplus)
+ MCFG_SCREEN_VBLANK_DRIVER(gaplus_state, screen_eof_gaplus)
MCFG_GFXDECODE(gaplus)
MCFG_PALETTE_LENGTH(64*4+64*8)
diff --git a/src/mame/drivers/gatron.c b/src/mame/drivers/gatron.c
index 9dbd59111b6..721da7c69b7 100644
--- a/src/mame/drivers/gatron.c
+++ b/src/mame/drivers/gatron.c
@@ -460,7 +460,7 @@ static MACHINE_CONFIG_START( gat, gatron_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(48*8, 16*16)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 16*16-1)
- MCFG_SCREEN_UPDATE_STATIC(gat)
+ MCFG_SCREEN_UPDATE_DRIVER(gatron_state, screen_update_gat)
MCFG_GFXDECODE(gat)
MCFG_PALETTE_LENGTH(8)
diff --git a/src/mame/drivers/gauntlet.c b/src/mame/drivers/gauntlet.c
index 6bfb7d601d8..d8eca53275a 100644
--- a/src/mame/drivers/gauntlet.c
+++ b/src/mame/drivers/gauntlet.c
@@ -532,7 +532,7 @@ static MACHINE_CONFIG_START( gauntlet, gauntlet_state )
/* note: these parameters are from published specs, not derived */
/* the board uses a SYNGEN chip to generate video signals */
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(gauntlet)
+ MCFG_SCREEN_UPDATE_DRIVER(gauntlet_state, screen_update_gauntlet)
MCFG_VIDEO_START_OVERRIDE(gauntlet_state,gauntlet)
diff --git a/src/mame/drivers/gberet.c b/src/mame/drivers/gberet.c
index f6ae1b37649..32fb2b515fd 100644
--- a/src/mame/drivers/gberet.c
+++ b/src/mame/drivers/gberet.c
@@ -434,7 +434,7 @@ static MACHINE_CONFIG_START( gberet, gberet_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(gberet)
+ MCFG_SCREEN_UPDATE_DRIVER(gberet_state, screen_update_gberet)
MCFG_GFXDECODE(gberet)
MCFG_PALETTE_LENGTH(2*16*16)
@@ -474,7 +474,7 @@ static MACHINE_CONFIG_START( gberetb, gberet_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(gberetb)
+ MCFG_SCREEN_UPDATE_DRIVER(gberet_state, screen_update_gberetb)
MCFG_GFXDECODE(gberetb)
MCFG_PALETTE_LENGTH(2*16*16)
diff --git a/src/mame/drivers/gbusters.c b/src/mame/drivers/gbusters.c
index 6a53934fbfe..2e3f039a41c 100644
--- a/src/mame/drivers/gbusters.c
+++ b/src/mame/drivers/gbusters.c
@@ -317,7 +317,7 @@ static MACHINE_CONFIG_START( gbusters, gbusters_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(gbusters)
+ MCFG_SCREEN_UPDATE_DRIVER(gbusters_state, screen_update_gbusters)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/gcpinbal.c b/src/mame/drivers/gcpinbal.c
index a2202f1ff8d..4a569b4cdf5 100644
--- a/src/mame/drivers/gcpinbal.c
+++ b/src/mame/drivers/gcpinbal.c
@@ -447,7 +447,7 @@ static MACHINE_CONFIG_START( gcpinbal, gcpinbal_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */)
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(gcpinbal)
+ MCFG_SCREEN_UPDATE_DRIVER(gcpinbal_state, screen_update_gcpinbal)
MCFG_GFXDECODE(gcpinbal)
diff --git a/src/mame/drivers/gijoe.c b/src/mame/drivers/gijoe.c
index ebf34277de9..f142369a499 100644
--- a/src/mame/drivers/gijoe.c
+++ b/src/mame/drivers/gijoe.c
@@ -312,7 +312,7 @@ static MACHINE_CONFIG_START( gijoe, gijoe_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(24, 24+288-1, 16, 16+224-1)
- MCFG_SCREEN_UPDATE_STATIC(gijoe)
+ MCFG_SCREEN_UPDATE_DRIVER(gijoe_state, screen_update_gijoe)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/ginganin.c b/src/mame/drivers/ginganin.c
index bb4aa11bae6..c83dd57e444 100644
--- a/src/mame/drivers/ginganin.c
+++ b/src/mame/drivers/ginganin.c
@@ -275,7 +275,7 @@ static MACHINE_CONFIG_START( ginganin, ginganin_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 255, 0 + 16 , 255 - 16)
- MCFG_SCREEN_UPDATE_STATIC(ginganin)
+ MCFG_SCREEN_UPDATE_DRIVER(ginganin_state, screen_update_ginganin)
MCFG_GFXDECODE(ginganin)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/gladiatr.c b/src/mame/drivers/gladiatr.c
index 079b2eb697d..abf1671bd78 100644
--- a/src/mame/drivers/gladiatr.c
+++ b/src/mame/drivers/gladiatr.c
@@ -687,7 +687,7 @@ static MACHINE_CONFIG_START( ppking, gladiatr_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(ppking)
+ MCFG_SCREEN_UPDATE_DRIVER(gladiatr_state, screen_update_ppking)
MCFG_GFXDECODE(ppking)
MCFG_PALETTE_LENGTH(1024)
@@ -735,7 +735,7 @@ static MACHINE_CONFIG_START( gladiatr, gladiatr_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(gladiatr)
+ MCFG_SCREEN_UPDATE_DRIVER(gladiatr_state, screen_update_gladiatr)
MCFG_GFXDECODE(gladiatr)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/glass.c b/src/mame/drivers/glass.c
index 6b90ff4905b..54a4168d9dd 100644
--- a/src/mame/drivers/glass.c
+++ b/src/mame/drivers/glass.c
@@ -205,7 +205,7 @@ static MACHINE_CONFIG_START( glass, glass_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*16, 32*16)
MCFG_SCREEN_VISIBLE_AREA(0, 368-1, 16, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(glass)
+ MCFG_SCREEN_UPDATE_DRIVER(glass_state, screen_update_glass)
MCFG_GFXDECODE(glass)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/gng.c b/src/mame/drivers/gng.c
index d0735bad045..4e06e40b883 100644
--- a/src/mame/drivers/gng.c
+++ b/src/mame/drivers/gng.c
@@ -358,7 +358,7 @@ static MACHINE_CONFIG_START( gng, gng_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(gng)
+ MCFG_SCREEN_UPDATE_DRIVER(gng_state, screen_update_gng)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(gng)
diff --git a/src/mame/drivers/go2000.c b/src/mame/drivers/go2000.c
index 1f0b5d90a6c..890ae0747c4 100644
--- a/src/mame/drivers/go2000.c
+++ b/src/mame/drivers/go2000.c
@@ -53,6 +53,7 @@ public:
DECLARE_WRITE8_MEMBER(go2000_pcm_1_bankswitch_w);
virtual void machine_start();
virtual void video_start();
+ UINT32 screen_update_go2000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -174,9 +175,8 @@ void go2000_state::video_start()
{
}
-static SCREEN_UPDATE_IND16(go2000)
+UINT32 go2000_state::screen_update_go2000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- go2000_state *state = screen.machine().driver_data<go2000_state>();
int x,y;
int count = 0;
@@ -185,8 +185,8 @@ static SCREEN_UPDATE_IND16(go2000)
{
for (y = 0; y < 32; y++)
{
- int tile = state->m_videoram[count];
- int attr = state->m_videoram2[count];
+ int tile = m_videoram[count];
+ int attr = m_videoram2[count];
drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], tile, attr, 0, 0, x * 8, y * 8);
count++;
}
@@ -197,8 +197,8 @@ static SCREEN_UPDATE_IND16(go2000)
{
for (y = 0; y < 32; y++)
{
- int tile = state->m_videoram[count];
- int attr = state->m_videoram2[count];
+ int tile = m_videoram[count];
+ int attr = m_videoram2[count];
drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0], tile, attr, 0, 0, x * 8, y * 8, 0xf);
count++;
}
@@ -219,9 +219,9 @@ static SCREEN_UPDATE_IND16(go2000)
int dx, dy;
int flipx, y0;
- int y = state->m_videoram[offs + 0 + 0x00000 / 2];
- int x = state->m_videoram[offs + 1 + 0x00000 / 2];
- int dim = state->m_videoram2[offs + 0 + 0x00000 / 2];
+ int y = m_videoram[offs + 0 + 0x00000 / 2];
+ int x = m_videoram[offs + 1 + 0x00000 / 2];
+ int dim = m_videoram2[offs + 0 + 0x00000 / 2];
int bank = (x >> 12) & 0xf;
@@ -270,8 +270,8 @@ static SCREEN_UPDATE_IND16(go2000)
for (dx = 0; dx < dimx * 8; dx += 8)
{
int addr = (srcpg * 0x20 * 0x20) + ((srcx + tile_x) & 0x1f) * 0x20 + ((srcy + tile_y) & 0x1f);
- int tile = state->m_videoram[addr + 0x00000 / 2];
- int attr = state->m_videoram2[addr + 0x00000 / 2];
+ int tile = m_videoram[addr + 0x00000 / 2];
+ int attr = m_videoram2[addr + 0x00000 / 2];
int sx = x + dx;
int sy = (y + dy) & 0xff;
@@ -282,7 +282,7 @@ static SCREEN_UPDATE_IND16(go2000)
if (flipx)
tile_flipx = !tile_flipx;
- if (state->flip_screen())
+ if (flip_screen())
{
sx = max_x - sx;
sy = max_y - sy;
@@ -340,7 +340,7 @@ static MACHINE_CONFIG_START( go2000, go2000_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(go2000)
+ MCFG_SCREEN_UPDATE_DRIVER(go2000_state, screen_update_go2000)
MCFG_PALETTE_LENGTH(0x800)
diff --git a/src/mame/drivers/goal92.c b/src/mame/drivers/goal92.c
index 00df6b85e32..d3b7afeaab6 100644
--- a/src/mame/drivers/goal92.c
+++ b/src/mame/drivers/goal92.c
@@ -328,8 +328,8 @@ static MACHINE_CONFIG_START( goal92, goal92_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1) // black border at bottom is a game bug...
- MCFG_SCREEN_UPDATE_STATIC(goal92)
- MCFG_SCREEN_VBLANK_STATIC(goal92)
+ MCFG_SCREEN_UPDATE_DRIVER(goal92_state, screen_update_goal92)
+ MCFG_SCREEN_VBLANK_DRIVER(goal92_state, screen_eof_goal92)
MCFG_GFXDECODE(goal92)
MCFG_PALETTE_LENGTH(128*16)
diff --git a/src/mame/drivers/goindol.c b/src/mame/drivers/goindol.c
index 1304f849920..5adb6525ff3 100644
--- a/src/mame/drivers/goindol.c
+++ b/src/mame/drivers/goindol.c
@@ -252,7 +252,7 @@ static MACHINE_CONFIG_START( goindol, goindol_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(goindol)
+ MCFG_SCREEN_UPDATE_DRIVER(goindol_state, screen_update_goindol)
MCFG_GFXDECODE(goindol)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/goldngam.c b/src/mame/drivers/goldngam.c
index 7d8c1c4c041..d8edff9974e 100644
--- a/src/mame/drivers/goldngam.c
+++ b/src/mame/drivers/goldngam.c
@@ -248,6 +248,7 @@ public:
DECLARE_READ16_MEMBER(unk_r);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_goldngam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -260,14 +261,13 @@ void goldngam_state::video_start()
}
-static SCREEN_UPDATE_IND16( goldngam )
+UINT32 goldngam_state::screen_update_goldngam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- goldngam_state *state = screen.machine().driver_data<goldngam_state>();
int x, y;
// ERROR: This cast is NOT endian-safe without the use of BYTE/WORD/DWORD_XOR_* macros!
- UINT8 *tmp = reinterpret_cast<UINT8 *>(state->m_videoram.target());
+ UINT8 *tmp = reinterpret_cast<UINT8 *>(m_videoram.target());
int index = 0;
for(y = 0; y < 512; ++y)
@@ -568,7 +568,7 @@ static MACHINE_CONFIG_START( swisspkr, goldngam_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(4*8, 43*8-1, 1*8, 37*8-1) // 312x288
- MCFG_SCREEN_UPDATE_STATIC(goldngam)
+ MCFG_SCREEN_UPDATE_DRIVER(goldngam_state, screen_update_goldngam)
MCFG_GFXDECODE(goldngam)
diff --git a/src/mame/drivers/goldnpkr.c b/src/mame/drivers/goldnpkr.c
index 660119a410c..3273f937740 100644
--- a/src/mame/drivers/goldnpkr.c
+++ b/src/mame/drivers/goldnpkr.c
@@ -1004,6 +1004,7 @@ public:
DECLARE_PALETTE_INIT(witchcrd);
DECLARE_VIDEO_START(wcrdxtnd);
DECLARE_PALETTE_INIT(wcrdxtnd);
+ UINT32 screen_update_goldnpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -1070,10 +1071,9 @@ VIDEO_START_MEMBER(goldnpkr_state,wcrdxtnd)
m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(goldnpkr_state::wcrdxtnd_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
-static SCREEN_UPDATE_IND16( goldnpkr )
+UINT32 goldnpkr_state::screen_update_goldnpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- goldnpkr_state *state = screen.machine().driver_data<goldnpkr_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -3587,7 +3587,7 @@ static MACHINE_CONFIG_START( goldnpkr_base, goldnpkr_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE((39+1)*8, (31+1)*8) /* From MC6845 init, registers 00 & 04 (programmed with value-1). */
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 29*8-1) /* From MC6845 init, registers 01 & 06. */
- MCFG_SCREEN_UPDATE_STATIC(goldnpkr)
+ MCFG_SCREEN_UPDATE_DRIVER(goldnpkr_state, screen_update_goldnpkr)
MCFG_MC6845_ADD("crtc", MC6845, CPU_CLOCK, mc6845_intf) /* 68B45 or 6845s @ CPU clock */
diff --git a/src/mame/drivers/goldstar.c b/src/mame/drivers/goldstar.c
index 89e01b4cf49..4fbdb1b23c5 100644
--- a/src/mame/drivers/goldstar.c
+++ b/src/mame/drivers/goldstar.c
@@ -5865,7 +5865,7 @@ static MACHINE_CONFIG_START( goldstar, goldstar_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(goldstar)
+ MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
MCFG_GFXDECODE(goldstar)
MCFG_PALETTE_LENGTH(256)
@@ -5899,7 +5899,7 @@ static MACHINE_CONFIG_START( goldstbl, goldstar_state )
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(goldstar)
+ MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
MCFG_GFXDECODE(bl)
MCFG_PALETTE_LENGTH(256)
@@ -5932,7 +5932,7 @@ static MACHINE_CONFIG_START( moonlght, goldstar_state )
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(goldstar)
+ MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
MCFG_GFXDECODE(ml)
MCFG_PALETTE_LENGTH(256)
@@ -6031,7 +6031,7 @@ static MACHINE_CONFIG_START( chrygld, goldstar_state )
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(goldstar)
+ MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
MCFG_GFXDECODE(chry10)
MCFG_PALETTE_LENGTH(256)
@@ -6073,7 +6073,7 @@ static MACHINE_CONFIG_START( cb3c, goldstar_state )
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(goldstar)
+ MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
MCFG_GFXDECODE(cb3c)
MCFG_PALETTE_LENGTH(256)
@@ -6114,7 +6114,7 @@ static MACHINE_CONFIG_START( ncb3, goldstar_state )
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(goldstar)
+ MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
MCFG_GFXDECODE(ncb3)
MCFG_PALETTE_LENGTH(256)
@@ -6155,7 +6155,7 @@ static MACHINE_CONFIG_START( cm, goldstar_state )
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(goldstar)
+ MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
MCFG_GFXDECODE(cmbitmap)
MCFG_PALETTE_LENGTH(256)
@@ -6195,7 +6195,7 @@ static MACHINE_CONFIG_START( cmnobmp, goldstar_state )
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(goldstar)
+ MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
MCFG_GFXDECODE(cm)
MCFG_PALETTE_LENGTH(256)
@@ -6230,7 +6230,7 @@ static MACHINE_CONFIG_START( cmast91, goldstar_state )
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(cmast91)
+ MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_cmast91)
MCFG_GFXDECODE(cmast91)
MCFG_PALETTE_LENGTH(256)
@@ -6274,7 +6274,7 @@ static MACHINE_CONFIG_START( lucky8, goldstar_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8)
- MCFG_SCREEN_UPDATE_STATIC(goldstar)
+ MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
MCFG_GFXDECODE(ncb3)
MCFG_PALETTE_LENGTH(256)
@@ -6314,7 +6314,7 @@ static MACHINE_CONFIG_START( bingowng, goldstar_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8)
- MCFG_SCREEN_UPDATE_STATIC(bingowng)
+ MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_bingowng)
MCFG_GFXDECODE(ncb3)
MCFG_PALETTE_LENGTH(256)
@@ -6354,7 +6354,7 @@ static MACHINE_CONFIG_START( bingownga, goldstar_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8)
- MCFG_SCREEN_UPDATE_STATIC(bingowng)
+ MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_bingowng)
MCFG_GFXDECODE(bingownga) /* GFX Decode is the only difference with the parent machine */
MCFG_PALETTE_LENGTH(256)
@@ -6410,7 +6410,7 @@ static MACHINE_CONFIG_START( magodds, goldstar_state )
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(magical)
+ MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_magical)
MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,magodds)
MCFG_GFXDECODE(magodds)
@@ -6452,7 +6452,7 @@ static MACHINE_CONFIG_START( kkotnoli, goldstar_state )
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(goldstar)
+ MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8)
MCFG_GFXDECODE(ncb3)
@@ -6488,7 +6488,7 @@ static MACHINE_CONFIG_START( ladylinr, goldstar_state )
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(goldstar)
+ MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8)
MCFG_GFXDECODE(ncb3)
@@ -6529,7 +6529,7 @@ static MACHINE_CONFIG_START( wcat3, goldstar_state )
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(goldstar)
+ MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
MCFG_PALETTE_INIT_OVERRIDE(goldstar_state,lucky8)
MCFG_GFXDECODE(ncb3)
@@ -6571,7 +6571,7 @@ static MACHINE_CONFIG_START( amcoe1, goldstar_state )
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(goldstar)
+ MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
MCFG_GFXDECODE(cm)
MCFG_PALETTE_LENGTH(256)
@@ -6610,7 +6610,7 @@ static MACHINE_CONFIG_START( amcoe1a, goldstar_state )
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(amcoe1a)
+ MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_amcoe1a)
MCFG_GFXDECODE(cm)
MCFG_PALETTE_LENGTH(256)
@@ -6649,7 +6649,7 @@ static MACHINE_CONFIG_START( amcoe2, goldstar_state )
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(goldstar)
+ MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
MCFG_GFXDECODE(cm)
MCFG_PALETTE_LENGTH(256)
@@ -6683,7 +6683,7 @@ static MACHINE_CONFIG_START( nfm, goldstar_state )
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(goldstar)
+ MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
MCFG_GFXDECODE(nfm)
MCFG_PALETTE_LENGTH(256)
@@ -6714,7 +6714,7 @@ static MACHINE_CONFIG_START( unkch, goldstar_state )
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(unkch)
+ MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_unkch)
MCFG_GFXDECODE(unkch)
MCFG_PALETTE_LENGTH(512)
@@ -6762,7 +6762,7 @@ static MACHINE_CONFIG_START( pkrmast, goldstar_state )
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(goldstar)
+ MCFG_SCREEN_UPDATE_DRIVER(goldstar_state, screen_update_goldstar)
MCFG_GFXDECODE(pkrmast)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/gomoku.c b/src/mame/drivers/gomoku.c
index 06dd3fe148a..3e71131b95a 100644
--- a/src/mame/drivers/gomoku.c
+++ b/src/mame/drivers/gomoku.c
@@ -129,7 +129,7 @@ static MACHINE_CONFIG_START( gomoku, gomoku_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(gomoku)
+ MCFG_SCREEN_UPDATE_DRIVER(gomoku_state, screen_update_gomoku)
MCFG_GFXDECODE(gomoku)
MCFG_PALETTE_LENGTH(64)
diff --git a/src/mame/drivers/good.c b/src/mame/drivers/good.c
index b82548d2b27..3f2280b1de2 100644
--- a/src/mame/drivers/good.c
+++ b/src/mame/drivers/good.c
@@ -57,6 +57,7 @@ public:
TILE_GET_INFO_MEMBER(get_fg_tile_info);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
+ UINT32 screen_update_good(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -95,11 +96,10 @@ void good_state::video_start()
m_fg_tilemap->set_transparent_pen(0xf);
}
-static SCREEN_UPDATE_IND16( good )
+UINT32 good_state::screen_update_good(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- good_state *state = screen.machine().driver_data<good_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -288,7 +288,7 @@ static MACHINE_CONFIG_START( good, good_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*16, 32*16)
MCFG_SCREEN_VISIBLE_AREA(1*16, 23*16-1, 0*16, 14*16-1)
- MCFG_SCREEN_UPDATE_STATIC(good)
+ MCFG_SCREEN_UPDATE_DRIVER(good_state, screen_update_good)
MCFG_PALETTE_LENGTH(0x400)
diff --git a/src/mame/drivers/gotcha.c b/src/mame/drivers/gotcha.c
index 9cf864b9987..054893a57e2 100644
--- a/src/mame/drivers/gotcha.c
+++ b/src/mame/drivers/gotcha.c
@@ -291,7 +291,7 @@ static MACHINE_CONFIG_START( gotcha, gotcha_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(gotcha)
+ MCFG_SCREEN_UPDATE_DRIVER(gotcha_state, screen_update_gotcha)
MCFG_GFXDECODE(gotcha)
MCFG_PALETTE_LENGTH(768)
diff --git a/src/mame/drivers/gottlieb.c b/src/mame/drivers/gottlieb.c
index a5c9fbae0d2..942f5d81831 100644
--- a/src/mame/drivers/gottlieb.c
+++ b/src/mame/drivers/gottlieb.c
@@ -1719,7 +1719,7 @@ static MACHINE_CONFIG_START( gottlieb_core, gottlieb_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(SYSTEM_CLOCK/4, GOTTLIEB_VIDEO_HCOUNT, 0, GOTTLIEB_VIDEO_HBLANK, GOTTLIEB_VIDEO_VCOUNT, 0, GOTTLIEB_VIDEO_VBLANK)
- MCFG_SCREEN_UPDATE_STATIC(gottlieb)
+ MCFG_SCREEN_UPDATE_DRIVER(gottlieb_state, screen_update_gottlieb)
MCFG_GFXDECODE(gfxdecode)
MCFG_PALETTE_LENGTH(16)
@@ -1748,7 +1748,7 @@ static MACHINE_CONFIG_DERIVED( g2laser, gottlieb_core )
MCFG_LASERDISC_PR8210_ADD("laserdisc")
MCFG_LASERDISC_AUDIO(laserdisc_audio_delegate(FUNC(laserdisc_audio_process), device))
- MCFG_LASERDISC_OVERLAY_STATIC(GOTTLIEB_VIDEO_HCOUNT, GOTTLIEB_VIDEO_VCOUNT, gottlieb)
+ MCFG_LASERDISC_OVERLAY_DRIVER(GOTTLIEB_VIDEO_HCOUNT, GOTTLIEB_VIDEO_VCOUNT, gottlieb_state, screen_update_gottlieb)
MCFG_LASERDISC_OVERLAY_CLIP(0, GOTTLIEB_VIDEO_HBLANK-1, 0, GOTTLIEB_VIDEO_VBLANK-8)
MCFG_SOUND_ROUTE(0, "mono", 1.0)
/* right channel is processed as data */
@@ -1829,7 +1829,7 @@ static MACHINE_CONFIG_DERIVED( cobram3, gottlieb_core )
MCFG_LASERDISC_PR8210_ADD("laserdisc")
MCFG_LASERDISC_AUDIO(laserdisc_audio_delegate(FUNC(laserdisc_audio_process), device))
- MCFG_LASERDISC_OVERLAY_STATIC(GOTTLIEB_VIDEO_HCOUNT, GOTTLIEB_VIDEO_VCOUNT, gottlieb)
+ MCFG_LASERDISC_OVERLAY_DRIVER(GOTTLIEB_VIDEO_HCOUNT, GOTTLIEB_VIDEO_VCOUNT, gottlieb_state, screen_update_gottlieb)
MCFG_LASERDISC_OVERLAY_CLIP(0, GOTTLIEB_VIDEO_HBLANK-1, 0, GOTTLIEB_VIDEO_VBLANK-8)
MCFG_SOUND_ROUTE(0, "mono", 1.0)
/* right channel is processed as data */
diff --git a/src/mame/drivers/gotya.c b/src/mame/drivers/gotya.c
index aeba686389f..fdcfaf2f869 100644
--- a/src/mame/drivers/gotya.c
+++ b/src/mame/drivers/gotya.c
@@ -204,7 +204,7 @@ static MACHINE_CONFIG_START( gotya, gotya_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(36*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 36*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(gotya)
+ MCFG_SCREEN_UPDATE_DRIVER(gotya_state, screen_update_gotya)
MCFG_GFXDECODE(gotya)
MCFG_PALETTE_LENGTH(16*4)
diff --git a/src/mame/drivers/gpworld.c b/src/mame/drivers/gpworld.c
index bff4fc68c52..1603b2eef0a 100644
--- a/src/mame/drivers/gpworld.c
+++ b/src/mame/drivers/gpworld.c
@@ -71,6 +71,7 @@ public:
DECLARE_WRITE8_MEMBER(palette_write);
DECLARE_DRIVER_INIT(gpworld);
virtual void machine_start();
+ UINT32 screen_update_gpworld(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -223,7 +224,7 @@ static void gpworld_draw_sprites(running_machine &machine, bitmap_rgb32 &bitmap,
}
-static SCREEN_UPDATE_RGB32( gpworld )
+UINT32 gpworld_state::screen_update_gpworld(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
bitmap.fill(0, cliprect);
@@ -470,7 +471,7 @@ static MACHINE_CONFIG_START( gpworld, gpworld_state )
MCFG_LASERDISC_LDV1000_ADD("laserdisc")
- MCFG_LASERDISC_OVERLAY_STATIC(512, 256, gpworld)
+ MCFG_LASERDISC_OVERLAY_DRIVER(512, 256, gpworld_state, screen_update_gpworld)
/* video hardware */
MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
diff --git a/src/mame/drivers/gradius3.c b/src/mame/drivers/gradius3.c
index 3e6180540cd..61d8e5a641d 100644
--- a/src/mame/drivers/gradius3.c
+++ b/src/mame/drivers/gradius3.c
@@ -339,7 +339,7 @@ static MACHINE_CONFIG_START( gradius3, gradius3_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(gradius3)
+ MCFG_SCREEN_UPDATE_DRIVER(gradius3_state, screen_update_gradius3)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/grchamp.c b/src/mame/drivers/grchamp.c
index f63cde578fa..f4b672db7ab 100644
--- a/src/mame/drivers/grchamp.c
+++ b/src/mame/drivers/grchamp.c
@@ -693,7 +693,7 @@ static MACHINE_CONFIG_START( grchamp, grchamp_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(grchamp)
+ MCFG_SCREEN_UPDATE_DRIVER(grchamp_state, screen_update_grchamp)
/* sound hardware */
diff --git a/src/mame/drivers/gridlee.c b/src/mame/drivers/gridlee.c
index 92ed64372b2..ac9116ed1eb 100644
--- a/src/mame/drivers/gridlee.c
+++ b/src/mame/drivers/gridlee.c
@@ -432,7 +432,7 @@ static MACHINE_CONFIG_START( gridlee, gridlee_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(GRIDLEE_PIXEL_CLOCK, GRIDLEE_HTOTAL, GRIDLEE_HBEND, GRIDLEE_HBSTART, GRIDLEE_VTOTAL, GRIDLEE_VBEND, GRIDLEE_VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(gridlee)
+ MCFG_SCREEN_UPDATE_DRIVER(gridlee_state, screen_update_gridlee)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/groundfx.c b/src/mame/drivers/groundfx.c
index 3c997649dfc..45046dd2bdf 100644
--- a/src/mame/drivers/groundfx.c
+++ b/src/mame/drivers/groundfx.c
@@ -376,7 +376,7 @@ static MACHINE_CONFIG_START( groundfx, groundfx_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 3*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(groundfx)
+ MCFG_SCREEN_UPDATE_DRIVER(groundfx_state, screen_update_groundfx)
MCFG_GFXDECODE(groundfx)
MCFG_PALETTE_LENGTH(16384)
diff --git a/src/mame/drivers/gstream.c b/src/mame/drivers/gstream.c
index 56c3fa60f2a..cb6bc28e2cb 100644
--- a/src/mame/drivers/gstream.c
+++ b/src/mame/drivers/gstream.c
@@ -183,6 +183,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_gstream(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -480,7 +481,7 @@ void gstream_state::video_start()
m_tilemap2->set_transparent_pen(0);
}
-static SCREEN_UPDATE_IND16(gstream)
+UINT32 gstream_state::screen_update_gstream(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
/* The tilemaps and sprite are interleaved together.
Even Words are tilemap tiles
@@ -496,31 +497,30 @@ static SCREEN_UPDATE_IND16(gstream)
are being set ?!
*/
- gstream_state *state = screen.machine().driver_data<gstream_state>();
int i;
- //popmessage("(1) %08x %08x (2) %08x %08x (3) %08x %08x", state->m_tmap1_scrollx, state->m_tmap1_scrolly, state->m_tmap2_scrollx, state->m_tmap2_scrolly, state->m_tmap3_scrollx, state->m_tmap3_scrolly );
+ //popmessage("(1) %08x %08x (2) %08x %08x (3) %08x %08x", m_tmap1_scrollx, m_tmap1_scrolly, m_tmap2_scrollx, m_tmap2_scrolly, m_tmap3_scrollx, m_tmap3_scrolly );
- state->m_tilemap3->set_scrollx(0, state->m_tmap3_scrollx >> 16);
- state->m_tilemap3->set_scrolly(0, state->m_tmap3_scrolly >> 16);
+ m_tilemap3->set_scrollx(0, m_tmap3_scrollx >> 16);
+ m_tilemap3->set_scrolly(0, m_tmap3_scrolly >> 16);
- state->m_tilemap1->set_scrollx(0, state->m_tmap1_scrollx >> 16);
- state->m_tilemap1->set_scrolly(0, state->m_tmap1_scrolly >> 16);
+ m_tilemap1->set_scrollx(0, m_tmap1_scrollx >> 16);
+ m_tilemap1->set_scrolly(0, m_tmap1_scrolly >> 16);
- state->m_tilemap2->set_scrollx(0, state->m_tmap2_scrollx >> 16);
- state->m_tilemap2->set_scrolly(0, state->m_tmap2_scrolly >> 16);
+ m_tilemap2->set_scrollx(0, m_tmap2_scrollx >> 16);
+ m_tilemap2->set_scrolly(0, m_tmap2_scrolly >> 16);
- state->m_tilemap3->draw(bitmap, cliprect, 0, 0);
- state->m_tilemap2->draw(bitmap, cliprect, 0, 0);
- state->m_tilemap1->draw(bitmap, cliprect, 0, 0);
+ m_tilemap3->draw(bitmap, cliprect, 0, 0);
+ m_tilemap2->draw(bitmap, cliprect, 0, 0);
+ m_tilemap1->draw(bitmap, cliprect, 0, 0);
for (i = 0x0000 / 4; i < 0x4000 / 4; i += 4)
{
/* Upper bits are used by the tilemaps */
- int code = state->m_vram[i + 0] & 0xffff;
- int x = state->m_vram[i + 1] & 0xffff;
- int y = state->m_vram[i + 2] & 0xffff;
- int col = state->m_vram[i + 3] & 0x1f;
+ int code = m_vram[i + 0] & 0xffff;
+ int x = m_vram[i + 1] & 0xffff;
+ int y = m_vram[i + 2] & 0xffff;
+ int col = m_vram[i + 3] & 0x1f;
/* co-ordinates are signed */
if (x & 0x8000) x -= 0x10000;
@@ -576,7 +576,7 @@ static MACHINE_CONFIG_START( gstream, gstream_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(gstream)
+ MCFG_SCREEN_UPDATE_DRIVER(gstream_state, screen_update_gstream)
MCFG_PALETTE_LENGTH(0x1000 + 0x400 + 0x400 + 0x400) // sprites + 3 bg layers
MCFG_GFXDECODE(gstream)
diff --git a/src/mame/drivers/gstriker.c b/src/mame/drivers/gstriker.c
index 27156a429fd..745111bd3ac 100644
--- a/src/mame/drivers/gstriker.c
+++ b/src/mame/drivers/gstriker.c
@@ -555,7 +555,7 @@ static MACHINE_CONFIG_START( gstriker, gstriker_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(5000) /* hand-tuned, it needs a bit */)
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(gstriker)
+ MCFG_SCREEN_UPDATE_DRIVER(gstriker_state, screen_update_gstriker)
MCFG_GFXDECODE(gstriker)
MCFG_PALETTE_LENGTH(0x800)
@@ -593,7 +593,7 @@ static MACHINE_CONFIG_START( vgoal, gstriker_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(5000) /* hand-tuned, it needs a bit */)
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(gstriker)
+ MCFG_SCREEN_UPDATE_DRIVER(gstriker_state, screen_update_gstriker)
MCFG_GFXDECODE(gstriker)
MCFG_PALETTE_LENGTH(0x2000)
diff --git a/src/mame/drivers/gsword.c b/src/mame/drivers/gsword.c
index 6aa47103f60..4552dcaa7bf 100644
--- a/src/mame/drivers/gsword.c
+++ b/src/mame/drivers/gsword.c
@@ -686,7 +686,7 @@ static MACHINE_CONFIG_START( gsword, gsword_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(gsword)
+ MCFG_SCREEN_UPDATE_DRIVER(gsword_state, screen_update_gsword)
MCFG_GFXDECODE(gsword)
MCFG_PALETTE_LENGTH(64*4+64*4)
@@ -729,7 +729,7 @@ static MACHINE_CONFIG_START( josvolly, gsword_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(gsword)
+ MCFG_SCREEN_UPDATE_DRIVER(gsword_state, screen_update_gsword)
MCFG_GFXDECODE(gsword)
MCFG_PALETTE_LENGTH(64*4+64*4)
diff --git a/src/mame/drivers/guab.c b/src/mame/drivers/guab.c
index 8471ab4a51c..224f6b753ed 100644
--- a/src/mame/drivers/guab.c
+++ b/src/mame/drivers/guab.c
@@ -98,6 +98,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_guab(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -258,7 +259,7 @@ void guab_state::video_start()
}
-static SCREEN_UPDATE_IND16( guab )
+UINT32 guab_state::screen_update_guab(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int x, y;
struct tms34061_display state;
@@ -824,7 +825,7 @@ static MACHINE_CONFIG_START( guab, guab_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(guab)
+ MCFG_SCREEN_UPDATE_DRIVER(guab_state, screen_update_guab)
MCFG_PALETTE_LENGTH(16)
diff --git a/src/mame/drivers/gumbo.c b/src/mame/drivers/gumbo.c
index c6fed404be9..8029f277444 100644
--- a/src/mame/drivers/gumbo.c
+++ b/src/mame/drivers/gumbo.c
@@ -240,7 +240,7 @@ static MACHINE_CONFIG_START( gumbo, gumbo_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, 48*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(gumbo)
+ MCFG_SCREEN_UPDATE_DRIVER(gumbo_state, screen_update_gumbo)
MCFG_PALETTE_LENGTH(0x200)
diff --git a/src/mame/drivers/gunbustr.c b/src/mame/drivers/gunbustr.c
index b90ebcff0d8..d87e9ee07d5 100644
--- a/src/mame/drivers/gunbustr.c
+++ b/src/mame/drivers/gunbustr.c
@@ -315,7 +315,7 @@ static MACHINE_CONFIG_START( gunbustr, gunbustr_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(gunbustr)
+ MCFG_SCREEN_UPDATE_DRIVER(gunbustr_state, screen_update_gunbustr)
MCFG_GFXDECODE(gunbustr)
MCFG_PALETTE_LENGTH(8192)
diff --git a/src/mame/drivers/gundealr.c b/src/mame/drivers/gundealr.c
index 760554e6be9..b5042efbf00 100644
--- a/src/mame/drivers/gundealr.c
+++ b/src/mame/drivers/gundealr.c
@@ -419,7 +419,7 @@ static MACHINE_CONFIG_START( gundealr, gundealr_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(gundealr)
+ MCFG_SCREEN_UPDATE_DRIVER(gundealr_state, screen_update_gundealr)
MCFG_GFXDECODE(gundealr)
MCFG_PALETTE_LENGTH(512)
diff --git a/src/mame/drivers/gunpey.c b/src/mame/drivers/gunpey.c
index 51ba42a9e88..5b75f37fdf9 100644
--- a/src/mame/drivers/gunpey.c
+++ b/src/mame/drivers/gunpey.c
@@ -94,6 +94,7 @@ public:
DECLARE_DRIVER_INIT(gunpey);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_gunpey(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -102,10 +103,9 @@ void gunpey_state::video_start()
m_blit_buffer = auto_alloc_array(machine(), UINT16, 512*512);
}
-static SCREEN_UPDATE_RGB32( gunpey )
+UINT32 gunpey_state::screen_update_gunpey(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- gunpey_state *state = screen.machine().driver_data<gunpey_state>();
- UINT16 *blit_buffer = state->m_blit_buffer;
+ UINT16 *blit_buffer = m_blit_buffer;
int x,y;
int count;
@@ -375,7 +375,7 @@ static MACHINE_CONFIG_START( gunpey, gunpey_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
MCFG_SCREEN_SIZE(512, 512)
MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0*8, 512-1)
- MCFG_SCREEN_UPDATE_STATIC(gunpey)
+ MCFG_SCREEN_UPDATE_DRIVER(gunpey_state, screen_update_gunpey)
MCFG_PALETTE_LENGTH(0x800)
diff --git a/src/mame/drivers/gunsmoke.c b/src/mame/drivers/gunsmoke.c
index 241d3ac3854..9f5ebe4b74c 100644
--- a/src/mame/drivers/gunsmoke.c
+++ b/src/mame/drivers/gunsmoke.c
@@ -314,7 +314,7 @@ static MACHINE_CONFIG_START( gunsmoke, gunsmoke_state )
MCFG_GFXDECODE(gunsmoke)
MCFG_PALETTE_LENGTH(32*4+16*16+16*16)
- MCFG_SCREEN_UPDATE_STATIC(gunsmoke)
+ MCFG_SCREEN_UPDATE_DRIVER(gunsmoke_state, screen_update_gunsmoke)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/gyruss.c b/src/mame/drivers/gyruss.c
index 89bb0d6df9f..4ba46a28843 100644
--- a/src/mame/drivers/gyruss.c
+++ b/src/mame/drivers/gyruss.c
@@ -537,7 +537,7 @@ static MACHINE_CONFIG_START( gyruss, gyruss_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(gyruss)
+ MCFG_SCREEN_UPDATE_DRIVER(gyruss_state, screen_update_gyruss)
MCFG_GFXDECODE(gyruss)
MCFG_PALETTE_LENGTH(16*4+16*16)
diff --git a/src/mame/drivers/halleys.c b/src/mame/drivers/halleys.c
index 41789bfefff..3f5ee2466c8 100644
--- a/src/mame/drivers/halleys.c
+++ b/src/mame/drivers/halleys.c
@@ -264,6 +264,8 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_halleys(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_benberob(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -1479,45 +1481,43 @@ static void filter_bitmap(running_machine &machine, bitmap_ind16 &bitmap, int ma
}
-static SCREEN_UPDATE_IND16( halleys )
+UINT32 halleys_state::screen_update_halleys(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- halleys_state *state = screen.machine().driver_data<halleys_state>();
int i, j;
- if (state->m_stars_enabled)
+ if (m_stars_enabled)
{
- copy_scroll_op(bitmap, state->m_render_layer[5], *state->m_scrollx0, *state->m_scrolly0);
- copy_scroll_xp(bitmap, state->m_render_layer[4], *state->m_scrollx1, *state->m_scrolly1);
+ copy_scroll_op(bitmap, m_render_layer[5], *m_scrollx0, *m_scrolly0);
+ copy_scroll_xp(bitmap, m_render_layer[4], *m_scrollx1, *m_scrolly1);
}
else
- bitmap.fill(state->m_bgcolor, cliprect);
+ bitmap.fill(m_bgcolor, cliprect);
#ifdef MAME_DEBUG
- if (screen.machine().root_device().ioport("DEBUG")->read()) copy_scroll_xp(bitmap, state->m_render_layer[3], *state->m_scrollx0, *state->m_scrolly0); // not used???
+ if (screen.machine().root_device().ioport("DEBUG")->read()) copy_scroll_xp(bitmap, m_render_layer[3], *m_scrollx0, *m_scrolly0); // not used???
#endif
- copy_scroll_xp(bitmap, state->m_render_layer[2], *state->m_scrollx1, *state->m_scrolly1);
- copy_fixed_2b (bitmap, state->m_render_layer[1]);
- copy_fixed_xp (bitmap, state->m_render_layer[0]);
+ copy_scroll_xp(bitmap, m_render_layer[2], *m_scrollx1, *m_scrolly1);
+ copy_fixed_2b (bitmap, m_render_layer[1]);
+ copy_fixed_xp (bitmap, m_render_layer[0]);
// HALF-HACK: apply RGB filter when the following conditions are met
- i = state->m_io_ram[0xa0];
- j = state->m_io_ram[0xa1];
- if (state->m_io_ram[0x2b] && (i>0xc6 && i<0xfe) && (j==0xc0 || j==0xed)) filter_bitmap(screen.machine(), bitmap, i);
+ i = m_io_ram[0xa0];
+ j = m_io_ram[0xa1];
+ if (m_io_ram[0x2b] && (i>0xc6 && i<0xfe) && (j==0xc0 || j==0xed)) filter_bitmap(screen.machine(), bitmap, i);
return 0;
}
-static SCREEN_UPDATE_IND16( benberob )
+UINT32 halleys_state::screen_update_benberob(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- halleys_state *state = screen.machine().driver_data<halleys_state>();
- if (state->m_io_ram[0xa0] & 0x80)
- copy_scroll_op(bitmap, state->m_render_layer[2], *state->m_scrollx1, *state->m_scrolly1);
+ if (m_io_ram[0xa0] & 0x80)
+ copy_scroll_op(bitmap, m_render_layer[2], *m_scrollx1, *m_scrolly1);
else
- bitmap.fill(state->m_bgcolor, cliprect);
+ bitmap.fill(m_bgcolor, cliprect);
- copy_fixed_xp (bitmap, state->m_render_layer[1]);
- copy_fixed_xp (bitmap, state->m_render_layer[0]);
+ copy_fixed_xp (bitmap, m_render_layer[1]);
+ copy_fixed_xp (bitmap, m_render_layer[0]);
return 0;
}
@@ -1973,7 +1973,7 @@ static MACHINE_CONFIG_START( halleys, halleys_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(SCREEN_WIDTH, SCREEN_HEIGHT)
MCFG_SCREEN_VISIBLE_AREA(VIS_MINX, VIS_MAXX, VIS_MINY, VIS_MAXY)
- MCFG_SCREEN_UPDATE_STATIC(halleys)
+ MCFG_SCREEN_UPDATE_DRIVER(halleys_state, screen_update_halleys)
MCFG_PALETTE_LENGTH(PALETTE_SIZE)
@@ -2003,7 +2003,7 @@ static MACHINE_CONFIG_DERIVED( benberob, halleys )
MCFG_TIMER_CALLBACK(benberob_scanline)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(benberob)
+ MCFG_SCREEN_UPDATE_DRIVER(halleys_state, screen_update_benberob)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/hanaawas.c b/src/mame/drivers/hanaawas.c
index 75646bab95b..3fd20b34a8a 100644
--- a/src/mame/drivers/hanaawas.c
+++ b/src/mame/drivers/hanaawas.c
@@ -209,7 +209,7 @@ static MACHINE_CONFIG_START( hanaawas, hanaawas_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(hanaawas)
+ MCFG_SCREEN_UPDATE_DRIVER(hanaawas_state, screen_update_hanaawas)
MCFG_GFXDECODE(hanaawas)
MCFG_PALETTE_LENGTH(32*8)
diff --git a/src/mame/drivers/hcastle.c b/src/mame/drivers/hcastle.c
index 6d5ae01a0ad..4bff70ca392 100644
--- a/src/mame/drivers/hcastle.c
+++ b/src/mame/drivers/hcastle.c
@@ -224,7 +224,7 @@ static MACHINE_CONFIG_START( hcastle, hcastle_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second verified by comparison with real board */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(hcastle)
+ MCFG_SCREEN_UPDATE_DRIVER(hcastle_state, screen_update_hcastle)
MCFG_GFXDECODE(hcastle)
MCFG_PALETTE_LENGTH(2*8*16*16)
diff --git a/src/mame/drivers/hexion.c b/src/mame/drivers/hexion.c
index 68a9ed92a10..0d267f614b4 100644
--- a/src/mame/drivers/hexion.c
+++ b/src/mame/drivers/hexion.c
@@ -235,7 +235,7 @@ static MACHINE_CONFIG_START( hexion, hexion_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 36*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(hexion)
+ MCFG_SCREEN_UPDATE_DRIVER(hexion_state, screen_update_hexion)
MCFG_GFXDECODE(hexion)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/higemaru.c b/src/mame/drivers/higemaru.c
index 5a6402102b0..ac45f1412eb 100644
--- a/src/mame/drivers/higemaru.c
+++ b/src/mame/drivers/higemaru.c
@@ -170,7 +170,7 @@ static MACHINE_CONFIG_START( higemaru, higemaru_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(higemaru)
+ MCFG_SCREEN_UPDATE_DRIVER(higemaru_state, screen_update_higemaru)
MCFG_GFXDECODE(higemaru)
MCFG_PALETTE_LENGTH(32*4+16*16)
diff --git a/src/mame/drivers/highvdeo.c b/src/mame/drivers/highvdeo.c
index 5cd7d0cf8e7..b18c728ea8d 100644
--- a/src/mame/drivers/highvdeo.c
+++ b/src/mame/drivers/highvdeo.c
@@ -125,6 +125,8 @@ public:
DECLARE_DRIVER_INIT(fashion);
DECLARE_DRIVER_INIT(ciclone);
DECLARE_VIDEO_START(tourvisn);
+ UINT32 screen_update_tourvisn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_brasil(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -135,9 +137,8 @@ VIDEO_START_MEMBER(highvdeo_state,tourvisn)
}
-static SCREEN_UPDATE_RGB32(tourvisn)
+UINT32 highvdeo_state::screen_update_tourvisn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- highvdeo_state *state = screen.machine().driver_data<highvdeo_state>();
int x,y,count;
count = (0/2);
@@ -148,12 +149,12 @@ static SCREEN_UPDATE_RGB32(tourvisn)
{
UINT32 color;
- color = ((state->m_blit_ram[count]) & 0x00ff)>>0;
+ color = ((m_blit_ram[count]) & 0x00ff)>>0;
if(cliprect.contains((x*2)+0, y))
bitmap.pix32(y, (x*2)+0) = screen.machine().pens[color];
- color = ((state->m_blit_ram[count]) & 0xff00)>>8;
+ color = ((m_blit_ram[count]) & 0xff00)>>8;
if(cliprect.contains((x*2)+1, y))
bitmap.pix32(y, (x*2)+1) = screen.machine().pens[color];
@@ -166,9 +167,8 @@ static SCREEN_UPDATE_RGB32(tourvisn)
}
/*Later HW, RGB565 instead of RAM-based pens (+ ramdac).*/
-static SCREEN_UPDATE_RGB32(brasil)
+UINT32 highvdeo_state::screen_update_brasil(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- highvdeo_state *state = screen.machine().driver_data<highvdeo_state>();
int x,y,count;
count = (0/2);
@@ -182,7 +182,7 @@ static SCREEN_UPDATE_RGB32(brasil)
UINT32 g;
UINT32 r;
- color = (state->m_blit_ram[count]) & 0xffff;
+ color = (m_blit_ram[count]) & 0xffff;
b = (color & 0x001f) << 3;
g = (color & 0x07e0) >> 3;
@@ -938,7 +938,7 @@ static MACHINE_CONFIG_START( tv_vcf, highvdeo_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(400, 300)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1)
- MCFG_SCREEN_UPDATE_STATIC(tourvisn)
+ MCFG_SCREEN_UPDATE_DRIVER(highvdeo_state, screen_update_tourvisn)
MCFG_PALETTE_LENGTH(0x100)
@@ -1004,7 +1004,7 @@ static MACHINE_CONFIG_START( brasil, highvdeo_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(400, 300)
MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 300-1)
- MCFG_SCREEN_UPDATE_STATIC(brasil)
+ MCFG_SCREEN_UPDATE_DRIVER(highvdeo_state, screen_update_brasil)
MCFG_PALETTE_LENGTH(0x100)
diff --git a/src/mame/drivers/hikaru.c b/src/mame/drivers/hikaru.c
index ed7121ded5d..e39240d6afd 100644
--- a/src/mame/drivers/hikaru.c
+++ b/src/mame/drivers/hikaru.c
@@ -394,6 +394,7 @@ public:
: driver_device(mconfig, type, tag)
{ }
virtual void video_start();
+ UINT32 screen_update_hikaru(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
void hikaru_state::video_start()
@@ -401,7 +402,7 @@ void hikaru_state::video_start()
}
-static SCREEN_UPDATE_RGB32(hikaru)
+UINT32 hikaru_state::screen_update_hikaru(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -500,7 +501,7 @@ static MACHINE_CONFIG_START( hikaru, hikaru_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(hikaru)
+ MCFG_SCREEN_UPDATE_DRIVER(hikaru_state, screen_update_hikaru)
MCFG_PALETTE_LENGTH(0x1000)
diff --git a/src/mame/drivers/himesiki.c b/src/mame/drivers/himesiki.c
index 1151536f79c..d162b50d451 100644
--- a/src/mame/drivers/himesiki.c
+++ b/src/mame/drivers/himesiki.c
@@ -305,7 +305,7 @@ static MACHINE_CONFIG_START( himesiki, himesiki_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 24*8-1)
- MCFG_SCREEN_UPDATE_STATIC(himesiki)
+ MCFG_SCREEN_UPDATE_DRIVER(himesiki_state, screen_update_himesiki)
MCFG_GFXDECODE(himesiki)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/hitme.c b/src/mame/drivers/hitme.c
index 05afa1f7f1b..f9873c740d5 100644
--- a/src/mame/drivers/hitme.c
+++ b/src/mame/drivers/hitme.c
@@ -65,9 +65,8 @@ VIDEO_START_MEMBER(hitme_state,barricad)
}
-static SCREEN_UPDATE_IND16( hitme )
+UINT32 hitme_state::screen_update_hitme(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- hitme_state *state = screen.machine().driver_data<hitme_state>();
/* the card width resistor comes from an input port, scaled to the range 0-25 kOhms */
double width_resist = screen.machine().root_device().ioport("WIDTH")->read() * 25000 / 100;
/* this triggers a oneshot for the following length of time */
@@ -80,7 +79,7 @@ static SCREEN_UPDATE_IND16( hitme )
offs_t offs = 0;
/* start by drawing the tilemap */
- state->m_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tilemap->draw(bitmap, cliprect, 0, 0);
/* now loop over and invert anything */
for (y = 0; y < 19; y++)
@@ -89,7 +88,7 @@ static SCREEN_UPDATE_IND16( hitme )
for (inv = x = 0; x < 40; x++, offs++)
{
/* if the high bit is set, reset the oneshot */
- if (state->m_videoram[y * 40 + x] & 0x80)
+ if (m_videoram[y * 40 + x] & 0x80)
inv = width_pixels;
/* invert pixels until we run out */
@@ -113,10 +112,9 @@ static SCREEN_UPDATE_IND16( hitme )
}
-static SCREEN_UPDATE_IND16( barricad )
+UINT32 hitme_state::screen_update_barricad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- hitme_state *state = screen.machine().driver_data<hitme_state>();
- state->m_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -326,7 +324,7 @@ static MACHINE_CONFIG_START( hitme, hitme_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 19*10)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 19*10-1)
- MCFG_SCREEN_UPDATE_STATIC(hitme)
+ MCFG_SCREEN_UPDATE_DRIVER(hitme_state, screen_update_hitme)
MCFG_GFXDECODE(hitme)
MCFG_PALETTE_LENGTH(2)
@@ -355,7 +353,7 @@ static MACHINE_CONFIG_DERIVED( barricad, hitme )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_SIZE(32*8, 24*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 24*8-1)
- MCFG_SCREEN_UPDATE_STATIC(barricad)
+ MCFG_SCREEN_UPDATE_DRIVER(hitme_state, screen_update_barricad)
MCFG_GFXDECODE(barricad)
diff --git a/src/mame/drivers/hitpoker.c b/src/mame/drivers/hitpoker.c
index 37f43670589..9aadb4c5555 100644
--- a/src/mame/drivers/hitpoker.c
+++ b/src/mame/drivers/hitpoker.c
@@ -81,6 +81,7 @@ public:
DECLARE_READ8_MEMBER(test_r);
DECLARE_DRIVER_INIT(hitpoker);
virtual void video_start();
+ UINT32 screen_update_hitpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -93,9 +94,8 @@ void hitpoker_state::video_start()
m_colorram = auto_alloc_array(machine(), UINT8, 0x2000);
}
-static SCREEN_UPDATE_IND16(hitpoker)
+UINT32 hitpoker_state::screen_update_hitpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- hitpoker_state *state = screen.machine().driver_data<hitpoker_state>();
int count = 0;
int y,x;
@@ -107,9 +107,9 @@ static SCREEN_UPDATE_IND16(hitpoker)
{
int tile,color,gfx_bpp;
- tile = (((state->m_videoram[count]<<8)|(state->m_videoram[count+1])) & 0x3fff);
- gfx_bpp = (state->m_colorram[count] & 0x80)>>7; //flag between 4 and 8 bpp
- color = gfx_bpp ? ((state->m_colorram[count] & 0x70)>>4) : (state->m_colorram[count] & 0xf);
+ tile = (((m_videoram[count]<<8)|(m_videoram[count+1])) & 0x3fff);
+ gfx_bpp = (m_colorram[count] & 0x80)>>7; //flag between 4 and 8 bpp
+ color = gfx_bpp ? ((m_colorram[count] & 0x70)>>4) : (m_colorram[count] & 0xf);
drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[gfx_bpp],tile,color,0,0,x*8,y*8);
@@ -505,7 +505,7 @@ static MACHINE_CONFIG_START( hitpoker, hitpoker_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // not accurate
MCFG_SCREEN_SIZE(648, 480) //setted by the CRTC
MCFG_SCREEN_VISIBLE_AREA(0, 648-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(hitpoker)
+ MCFG_SCREEN_UPDATE_DRIVER(hitpoker_state, screen_update_hitpoker)
MCFG_MC6845_ADD("crtc", H46505, CRTC_CLOCK/2, mc6845_intf) /* hand tuned to get ~60 fps */
diff --git a/src/mame/drivers/hnayayoi.c b/src/mame/drivers/hnayayoi.c
index b85d0a85bf0..0ec82a3e174 100644
--- a/src/mame/drivers/hnayayoi.c
+++ b/src/mame/drivers/hnayayoi.c
@@ -572,7 +572,7 @@ static MACHINE_CONFIG_START( hnayayoi, hnayayoi_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(hnayayoi)
+ MCFG_SCREEN_UPDATE_DRIVER(hnayayoi_state, screen_update_hnayayoi)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/hng64.c b/src/mame/drivers/hng64.c
index 558b3297c30..35cb805c3a4 100644
--- a/src/mame/drivers/hng64.c
+++ b/src/mame/drivers/hng64.c
@@ -1849,11 +1849,11 @@ static MACHINE_CONFIG_START( hng64, hng64_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(hng64)
+ MCFG_SCREEN_UPDATE_DRIVER(hng64_state, screen_update_hng64)
MCFG_PALETTE_LENGTH(0x1000)
- MCFG_SCREEN_VBLANK_STATIC(hng64)
+ MCFG_SCREEN_VBLANK_DRIVER(hng64_state, screen_eof_hng64)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/holeland.c b/src/mame/drivers/holeland.c
index 417c9539dd7..e78d3d98dad 100644
--- a/src/mame/drivers/holeland.c
+++ b/src/mame/drivers/holeland.c
@@ -288,7 +288,7 @@ static MACHINE_CONFIG_START( holeland, holeland_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*16, 32*16)
MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 2*16, 30*16-1)
- MCFG_SCREEN_UPDATE_STATIC(holeland)
+ MCFG_SCREEN_UPDATE_DRIVER(holeland_state, screen_update_holeland)
MCFG_GFXDECODE(holeland)
MCFG_PALETTE_LENGTH(256)
@@ -358,7 +358,7 @@ static MACHINE_CONFIG_START( crzrally, holeland_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(crzrally)
+ MCFG_SCREEN_UPDATE_DRIVER(holeland_state, screen_update_crzrally)
MCFG_GFXDECODE(crzrally)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/homedata.c b/src/mame/drivers/homedata.c
index eeb0c492420..5e937c69dd3 100644
--- a/src/mame/drivers/homedata.c
+++ b/src/mame/drivers/homedata.c
@@ -1262,8 +1262,8 @@ static MACHINE_CONFIG_START( mrokumei, homedata_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
// visible area can be changed at runtime
MCFG_SCREEN_VISIBLE_AREA(0*8, 54*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(mrokumei)
- MCFG_SCREEN_VBLANK_STATIC(homedata)
+ MCFG_SCREEN_UPDATE_DRIVER(homedata_state, screen_update_mrokumei)
+ MCFG_SCREEN_VBLANK_DRIVER(homedata_state, screen_eof_homedata)
MCFG_GFXDECODE(mrokumei)
MCFG_PALETTE_LENGTH(0x8000)
@@ -1331,8 +1331,8 @@ static MACHINE_CONFIG_START( reikaids, homedata_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 255, 16, 256-1-16)
- MCFG_SCREEN_UPDATE_STATIC(reikaids)
- MCFG_SCREEN_VBLANK_STATIC(homedata)
+ MCFG_SCREEN_UPDATE_DRIVER(homedata_state, screen_update_reikaids)
+ MCFG_SCREEN_VBLANK_DRIVER(homedata_state, screen_eof_homedata)
MCFG_GFXDECODE(reikaids)
MCFG_PALETTE_LENGTH(0x8000)
@@ -1382,8 +1382,8 @@ static MACHINE_CONFIG_START( pteacher, homedata_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
// visible area can be changed at runtime
MCFG_SCREEN_VISIBLE_AREA(0*8, 54*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pteacher)
- MCFG_SCREEN_VBLANK_STATIC(homedata)
+ MCFG_SCREEN_UPDATE_DRIVER(homedata_state, screen_update_pteacher)
+ MCFG_SCREEN_VBLANK_DRIVER(homedata_state, screen_eof_homedata)
MCFG_GFXDECODE(pteacher)
MCFG_PALETTE_LENGTH(0x8000)
@@ -1546,7 +1546,7 @@ static MACHINE_CONFIG_START( mirderby, homedata_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 54*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(mirderby)
+ MCFG_SCREEN_UPDATE_DRIVER(homedata_state, screen_update_mirderby)
MCFG_GFXDECODE(mirderby)
MCFG_PALETTE_LENGTH(0x8000)
diff --git a/src/mame/drivers/homerun.c b/src/mame/drivers/homerun.c
index 2d4b2494700..e6f079e50d6 100644
--- a/src/mame/drivers/homerun.c
+++ b/src/mame/drivers/homerun.c
@@ -397,7 +397,7 @@ static MACHINE_CONFIG_START( dynashot, homerun_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(homerun)
+ MCFG_SCREEN_UPDATE_DRIVER(homerun_state, screen_update_homerun)
MCFG_GFXDECODE(homerun)
MCFG_PALETTE_LENGTH(16*4)
diff --git a/src/mame/drivers/hornet.c b/src/mame/drivers/hornet.c
index 2cde6e9a97e..e14628617f3 100644
--- a/src/mame/drivers/hornet.c
+++ b/src/mame/drivers/hornet.c
@@ -369,6 +369,8 @@ public:
virtual void machine_start();
virtual void machine_reset();
DECLARE_MACHINE_RESET(hornet_2board);
+ UINT32 screen_update_hornet(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_hornet_2board(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -420,9 +422,8 @@ static void voodoo_vblank_1(device_t *device, int param)
{
}
-static SCREEN_UPDATE_RGB32( hornet )
+UINT32 hornet_state::screen_update_hornet(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- hornet_state *state = screen.machine().driver_data<hornet_state>();
device_t *voodoo = screen.machine().device("voodoo0");
device_t *k037122 = screen.machine().device("k037122_1");
@@ -430,14 +431,13 @@ static SCREEN_UPDATE_RGB32( hornet )
k037122_tile_draw(k037122, bitmap, cliprect);
- draw_7segment_led(bitmap, 3, 3, state->m_led_reg0);
- draw_7segment_led(bitmap, 9, 3, state->m_led_reg1);
+ draw_7segment_led(bitmap, 3, 3, m_led_reg0);
+ draw_7segment_led(bitmap, 9, 3, m_led_reg1);
return 0;
}
-static SCREEN_UPDATE_RGB32( hornet_2board )
+UINT32 hornet_state::screen_update_hornet_2board(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- hornet_state *state = screen.machine().driver_data<hornet_state>();
if (strcmp(screen.tag(), ":lscreen") == 0)
{
device_t *k037122 = screen.machine().device("k037122_1");
@@ -457,8 +457,8 @@ static SCREEN_UPDATE_RGB32( hornet_2board )
k037122_tile_draw(k037122, bitmap, cliprect);
}
- draw_7segment_led(bitmap, 3, 3, state->m_led_reg0);
- draw_7segment_led(bitmap, 9, 3, state->m_led_reg1);
+ draw_7segment_led(bitmap, 3, 3, m_led_reg0);
+ draw_7segment_led(bitmap, 9, 3, m_led_reg1);
return 0;
}
@@ -1016,7 +1016,7 @@ static MACHINE_CONFIG_START( hornet, hornet_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(64*8, 48*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 48*8-1)
- MCFG_SCREEN_UPDATE_STATIC(hornet)
+ MCFG_SCREEN_UPDATE_DRIVER(hornet_state, screen_update_hornet)
MCFG_PALETTE_LENGTH(65536)
@@ -1106,13 +1106,13 @@ static MACHINE_CONFIG_DERIVED( hornet_2board, hornet )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(512, 384)
MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383)
- MCFG_SCREEN_UPDATE_STATIC(hornet_2board)
+ MCFG_SCREEN_UPDATE_DRIVER(hornet_state, screen_update_hornet_2board)
MCFG_SCREEN_ADD("rscreen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(512, 384)
MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383)
- MCFG_SCREEN_UPDATE_STATIC(hornet_2board)
+ MCFG_SCREEN_UPDATE_DRIVER(hornet_state, screen_update_hornet_2board)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( terabrst, hornet_2board )
diff --git a/src/mame/drivers/hotblock.c b/src/mame/drivers/hotblock.c
index b3bf31f11b0..4fc858e183d 100644
--- a/src/mame/drivers/hotblock.c
+++ b/src/mame/drivers/hotblock.c
@@ -67,6 +67,7 @@ public:
DECLARE_WRITE8_MEMBER(hotblock_port0_w);
DECLARE_WRITE8_MEMBER(hotblock_video_write);
virtual void video_start();
+ UINT32 screen_update_hotblock(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -142,9 +143,8 @@ void hotblock_state::video_start()
save_item(NAME(m_pal));
}
-static SCREEN_UPDATE_IND16(hotblock)
+UINT32 hotblock_state::screen_update_hotblock(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- hotblock_state *state = screen.machine().driver_data<hotblock_state>();
int y, x, count;
int i;
static const int xxx = 320, yyy = 204;
@@ -153,7 +153,7 @@ static SCREEN_UPDATE_IND16(hotblock)
for (i = 0; i < 256; i++)
{
- int dat = (state->m_pal[i * 2 + 1] << 8) | state->m_pal[i * 2];
+ int dat = (m_pal[i * 2 + 1] << 8) | m_pal[i * 2];
palette_set_color_rgb(screen.machine(), i, pal5bit(dat >> 0), pal5bit(dat >> 5), pal5bit(dat >> 10));
}
@@ -162,8 +162,8 @@ static SCREEN_UPDATE_IND16(hotblock)
{
for(x = 0; x < xxx; x++)
{
- if (state->m_port0 & 0x40)
- bitmap.pix16(y, x) = state->m_vram[count];
+ if (m_port0 & 0x40)
+ bitmap.pix16(y, x) = m_vram[count];
count++;
}
}
@@ -225,7 +225,7 @@ static MACHINE_CONFIG_START( hotblock, hotblock_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(1024,1024)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1)
- MCFG_SCREEN_UPDATE_STATIC(hotblock)
+ MCFG_SCREEN_UPDATE_DRIVER(hotblock_state, screen_update_hotblock)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/hotstuff.c b/src/mame/drivers/hotstuff.c
index d98328384f5..6870de270d4 100644
--- a/src/mame/drivers/hotstuff.c
+++ b/src/mame/drivers/hotstuff.c
@@ -21,6 +21,7 @@ public:
DECLARE_WRITE8_MEMBER(ioboard_data_w);
DECLARE_WRITE8_MEMBER(ioboard_reg_w);
virtual void video_start();
+ UINT32 screen_update_hotstuff(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -30,9 +31,8 @@ void hotstuff_state::video_start()
/* the first 0x20 bytes in every 0x200 (each line) of video ram are the colour data, providing a palette of 16 RGB444 colours for that line */
-SCREEN_UPDATE_RGB32( hotstuff )
+UINT32 hotstuff_state::screen_update_hotstuff(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- hotstuff_state *state = screen.machine().driver_data<hotstuff_state>();
int count, y,yyy,x,xxx;
UINT16 row_palette_data[0x10];
rgb_t row_palette_data_as_rgb32_pen_data[0x10];
@@ -47,7 +47,7 @@ SCREEN_UPDATE_RGB32( hotstuff )
for (p=0;p<0x10;p++)
{
- row_palette_data[p] = state->m_bitmapram[count+p];
+ row_palette_data[p] = m_bitmapram[count+p];
row_palette_data_as_rgb32_pen_data[p] = MAKE_RGB( (row_palette_data[p] & 0x0f00)>>4, (row_palette_data[p] & 0x00f0)>>0, (row_palette_data[p] & 0x000f)<<4 );
@@ -56,13 +56,13 @@ SCREEN_UPDATE_RGB32( hotstuff )
for(x = 0; x < xxx; x++)
{
{
- bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(state->m_bitmapram[count] &0xf000)>>12];
+ bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(m_bitmapram[count] &0xf000)>>12];
x++;
- bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(state->m_bitmapram[count] &0x0f00)>>8];
+ bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(m_bitmapram[count] &0x0f00)>>8];
x++;
- bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(state->m_bitmapram[count] &0x00f0)>>4];
+ bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(m_bitmapram[count] &0x00f0)>>4];
x++;
- bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(state->m_bitmapram[count] &0x000f)>>0];
+ bitmap.pix32(y, x) = row_palette_data_as_rgb32_pen_data[(m_bitmapram[count] &0x000f)>>0];
}
count++;
@@ -133,7 +133,7 @@ static MACHINE_CONFIG_START( hotstuff, hotstuff_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(128*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA((0x10*4)+8, 101*8-1, 0*8, 33*8-1)
- MCFG_SCREEN_UPDATE_STATIC(hotstuff)
+ MCFG_SCREEN_UPDATE_DRIVER(hotstuff_state, screen_update_hotstuff)
MCFG_PALETTE_LENGTH(0x200)
diff --git a/src/mame/drivers/hvyunit.c b/src/mame/drivers/hvyunit.c
index 3fc29a92769..b81e50c4345 100644
--- a/src/mame/drivers/hvyunit.c
+++ b/src/mame/drivers/hvyunit.c
@@ -126,6 +126,8 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_hvyunit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_hvyunit(screen_device &screen, bool state);
};
@@ -177,28 +179,26 @@ void hvyunit_state::video_start()
m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(hvyunit_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
}
-static SCREEN_UPDATE_IND16( hvyunit )
+UINT32 hvyunit_state::screen_update_hvyunit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
#define SX_POS 96
#define SY_POS 0
- hvyunit_state *state = screen.machine().driver_data<hvyunit_state>();
- state->m_bg_tilemap->set_scrollx(0, ((state->m_port0_data & 0x40) << 2) + state->m_scrollx + SX_POS); // TODO
- state->m_bg_tilemap->set_scrolly(0, ((state->m_port0_data & 0x80) << 1) + state->m_scrolly + SY_POS); // TODO
+ m_bg_tilemap->set_scrollx(0, ((m_port0_data & 0x40) << 2) + m_scrollx + SX_POS); // TODO
+ m_bg_tilemap->set_scrolly(0, ((m_port0_data & 0x80) << 1) + m_scrolly + SY_POS); // TODO
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- pandora_update(state->m_pandora, bitmap, cliprect);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ pandora_update(m_pandora, bitmap, cliprect);
return 0;
}
-static SCREEN_VBLANK( hvyunit )
+void hvyunit_state::screen_eof_hvyunit(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- hvyunit_state *state = screen.machine().driver_data<hvyunit_state>();
- pandora_eof(state->m_pandora);
+ pandora_eof(m_pandora);
}
}
@@ -679,8 +679,8 @@ static MACHINE_CONFIG_START( hvyunit, hvyunit_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(hvyunit)
- MCFG_SCREEN_VBLANK_STATIC(hvyunit)
+ MCFG_SCREEN_UPDATE_DRIVER(hvyunit_state, screen_update_hvyunit)
+ MCFG_SCREEN_VBLANK_DRIVER(hvyunit_state, screen_eof_hvyunit)
MCFG_GFXDECODE(hvyunit)
MCFG_PALETTE_LENGTH(0x800)
diff --git a/src/mame/drivers/hyhoo.c b/src/mame/drivers/hyhoo.c
index 5cfb2cc3897..bc43bd8bb0b 100644
--- a/src/mame/drivers/hyhoo.c
+++ b/src/mame/drivers/hyhoo.c
@@ -255,7 +255,7 @@ static MACHINE_CONFIG_START( hyhoo, hyhoo_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(hyhoo)
+ MCFG_SCREEN_UPDATE_DRIVER(hyhoo_state, screen_update_hyhoo)
/* sound hardware */
diff --git a/src/mame/drivers/hyperspt.c b/src/mame/drivers/hyperspt.c
index 85e14208586..4f9bf15602e 100644
--- a/src/mame/drivers/hyperspt.c
+++ b/src/mame/drivers/hyperspt.c
@@ -307,7 +307,7 @@ static MACHINE_CONFIG_START( hyperspt, hyperspt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(hyperspt)
+ MCFG_SCREEN_UPDATE_DRIVER(hyperspt_state, screen_update_hyperspt)
MCFG_GFXDECODE(hyperspt)
MCFG_PALETTE_LENGTH(16*16+16*16)
diff --git a/src/mame/drivers/hyprduel.c b/src/mame/drivers/hyprduel.c
index 4647425ad8c..38a73db1980 100644
--- a/src/mame/drivers/hyprduel.c
+++ b/src/mame/drivers/hyprduel.c
@@ -687,7 +687,7 @@ static MACHINE_CONFIG_START( hyprduel, hyprduel_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 224)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, FIRST_VISIBLE_LINE, LAST_VISIBLE_LINE)
- MCFG_SCREEN_UPDATE_STATIC(hyprduel)
+ MCFG_SCREEN_UPDATE_DRIVER(hyprduel_state, screen_update_hyprduel)
MCFG_GFXDECODE(14220)
MCFG_PALETTE_LENGTH(8192)
@@ -728,7 +728,7 @@ static MACHINE_CONFIG_START( magerror, hyprduel_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 224)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, FIRST_VISIBLE_LINE, LAST_VISIBLE_LINE)
- MCFG_SCREEN_UPDATE_STATIC(hyprduel)
+ MCFG_SCREEN_UPDATE_DRIVER(hyprduel_state, screen_update_hyprduel)
MCFG_GFXDECODE(14220)
MCFG_PALETTE_LENGTH(8192)
diff --git a/src/mame/drivers/igs009.c b/src/mame/drivers/igs009.c
index 6180ad33491..5628d599733 100644
--- a/src/mame/drivers/igs009.c
+++ b/src/mame/drivers/igs009.c
@@ -89,6 +89,7 @@ public:
virtual void machine_reset();
virtual void video_start();
DECLARE_VIDEO_START(gp98);
+ UINT32 screen_update_jingbell(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -281,10 +282,9 @@ VIDEO_START_MEMBER(igs009_state,gp98)
}
-static SCREEN_UPDATE_IND16(jingbell)
+UINT32 igs009_state::screen_update_jingbell(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- igs009_state *state = screen.machine().driver_data<igs009_state>();
- int layers_ctrl = state->m_video_enable ? -1 : 0;
+ int layers_ctrl = m_video_enable ? -1 : 0;
#ifdef MAME_DEBUG
if (screen.machine().input().code_pressed(KEYCODE_Z))
@@ -306,10 +306,10 @@ static SCREEN_UPDATE_IND16(jingbell)
for (i= 0;i < 0x80;i++)
{
- state->m_gp98_reel1_tilemap->set_scrolly(i, state->m_bg_scroll[i]*2);
- state->m_gp98_reel2_tilemap->set_scrolly(i, state->m_bg_scroll[i+0x80]*2);
- state->m_gp98_reel3_tilemap->set_scrolly(i, state->m_bg_scroll[i+0x100]*2);
- state->m_gp98_reel4_tilemap->set_scrolly(i, state->m_bg_scroll[i+0x180]*2);
+ m_gp98_reel1_tilemap->set_scrolly(i, m_bg_scroll[i]*2);
+ m_gp98_reel2_tilemap->set_scrolly(i, m_bg_scroll[i+0x80]*2);
+ m_gp98_reel3_tilemap->set_scrolly(i, m_bg_scroll[i+0x100]*2);
+ m_gp98_reel4_tilemap->set_scrolly(i, m_bg_scroll[i+0x180]*2);
}
@@ -318,7 +318,7 @@ static SCREEN_UPDATE_IND16(jingbell)
for (zz=0;zz<0x80-8;zz++) // -8 because of visible area (2*8 = 16)
{
rectangle clip;
- int rowenable = state->m_bg_scroll2[zz];
+ int rowenable = m_bg_scroll2[zz];
/* draw top of screen */
clip.set(visarea.min_x, visarea.max_x, startclipmin, startclipmin+2);
@@ -327,19 +327,19 @@ static SCREEN_UPDATE_IND16(jingbell)
if (rowenable==0)
{ // 0 and 1 are the same? or is there a global switchoff?
- state->m_gp98_reel1_tilemap->draw(bitmap, clip, 0,0);
+ m_gp98_reel1_tilemap->draw(bitmap, clip, 0,0);
}
else if (rowenable==1)
{
- state->m_gp98_reel2_tilemap->draw(bitmap, clip, 0,0);
+ m_gp98_reel2_tilemap->draw(bitmap, clip, 0,0);
}
else if (rowenable==2)
{
- state->m_gp98_reel3_tilemap->draw(bitmap, clip, 0,0);
+ m_gp98_reel3_tilemap->draw(bitmap, clip, 0,0);
}
else if (rowenable==3)
{
- state->m_gp98_reel4_tilemap->draw(bitmap, clip, 0,0);
+ m_gp98_reel4_tilemap->draw(bitmap, clip, 0,0);
}
@@ -350,7 +350,7 @@ static SCREEN_UPDATE_IND16(jingbell)
else bitmap.fill(get_black_pen(screen.machine()), cliprect);
- if (layers_ctrl & 2) state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (layers_ctrl & 2) m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -756,7 +756,7 @@ static MACHINE_CONFIG_START( jingbell, igs009_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(jingbell)
+ MCFG_SCREEN_UPDATE_DRIVER(igs009_state, screen_update_jingbell)
MCFG_GFXDECODE(jingbell)
MCFG_PALETTE_LENGTH(0x400)
diff --git a/src/mame/drivers/igs011.c b/src/mame/drivers/igs011.c
index ae53cdb3aac..423e141d6a5 100644
--- a/src/mame/drivers/igs011.c
+++ b/src/mame/drivers/igs011.c
@@ -196,6 +196,8 @@ public:
DECLARE_DRIVER_INIT(vbowlj);
DECLARE_DRIVER_INIT(ryukobou);
virtual void video_start();
+ UINT32 screen_update_igs011(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_vbowl(screen_device &screen, bool state);
};
@@ -243,9 +245,8 @@ void igs011_state::video_start()
m_lhb2_pen_hi = 0;
}
-static SCREEN_UPDATE_IND16( igs011 )
+UINT32 igs011_state::screen_update_igs011(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- igs011_state *state = screen.machine().driver_data<igs011_state>();
#ifdef MAME_DEBUG
int layer_enable = -1;
#endif
@@ -269,7 +270,7 @@ static SCREEN_UPDATE_IND16( igs011 )
}
#endif
- pri_ram = &state->m_priority_ram[(state->m_priority & 7) * 512/2];
+ pri_ram = &m_priority_ram[(m_priority & 7) * 512/2];
for (y = cliprect.min_y; y <= cliprect.max_y; y++)
{
@@ -280,7 +281,7 @@ static SCREEN_UPDATE_IND16( igs011 )
for (l = 0; l < 8; l++)
{
- if ( (state->m_layer[l][scr_addr] != 0xff)
+ if ( (m_layer[l][scr_addr] != 0xff)
#ifdef MAME_DEBUG
&& (layer_enable & (1 << l))
#endif
@@ -296,7 +297,7 @@ static SCREEN_UPDATE_IND16( igs011 )
bitmap.pix16(y, x) = get_black_pen(screen.machine());
else
#endif
- bitmap.pix16(y, x) = state->m_layer[l][scr_addr] | (l << 8);
+ bitmap.pix16(y, x) = m_layer[l][scr_addr] | (l << 8);
}
}
return 0;
@@ -2488,14 +2489,13 @@ READ16_MEMBER(igs011_state::vbowl_unk_r)
return 0xffff;
}
-static SCREEN_VBLANK( vbowl )
+void igs011_state::screen_eof_vbowl(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- igs011_state *state = screen.machine().driver_data<igs011_state>();
- state->m_vbowl_trackball[0] = state->m_vbowl_trackball[1];
- state->m_vbowl_trackball[1] = (state->ioport("AN1")->read() << 8) | state->ioport("AN0")->read();
+ m_vbowl_trackball[0] = m_vbowl_trackball[1];
+ m_vbowl_trackball[1] = (ioport("AN1")->read() << 8) | ioport("AN0")->read();
}
}
@@ -3809,7 +3809,7 @@ static MACHINE_CONFIG_START( igs011_base, igs011_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC( igs011 )
+ MCFG_SCREEN_UPDATE_DRIVER(igs011_state, screen_update_igs011)
MCFG_PALETTE_LENGTH(0x800)
// MCFG_GFXDECODE(igs011)
@@ -3944,7 +3944,7 @@ static MACHINE_CONFIG_DERIVED( vbowl, igs011_base )
// irq 4 points to an apparently unneeded routine
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VBLANK_STATIC(vbowl) // trackball
+ MCFG_SCREEN_VBLANK_DRIVER(igs011_state, screen_eof_vbowl)
// MCFG_GFXDECODE(igs011_hi)
MCFG_DEVICE_REMOVE("oki")
diff --git a/src/mame/drivers/igs017.c b/src/mame/drivers/igs017.c
index 87504342119..564cb448754 100644
--- a/src/mame/drivers/igs017.c
+++ b/src/mame/drivers/igs017.c
@@ -155,6 +155,7 @@ public:
DECLARE_MACHINE_RESET(iqblocka);
DECLARE_MACHINE_RESET(mgcs);
DECLARE_MACHINE_RESET(lhzb2a);
+ UINT32 screen_update_igs017(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -409,9 +410,8 @@ static int debug_viewer(running_machine &machine, bitmap_ind16 &bitmap,const rec
return 0;
}
-static SCREEN_UPDATE_IND16( igs017 )
+UINT32 igs017_state::screen_update_igs017(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- igs017_state *state = screen.machine().driver_data<igs017_state>();
int layers_ctrl = -1;
#ifdef MAME_DEBUG
@@ -430,14 +430,14 @@ static SCREEN_UPDATE_IND16( igs017 )
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- if (state->m_video_disable)
+ if (m_video_disable)
return 0;
- if (layers_ctrl & 1) state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ if (layers_ctrl & 1) m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
if (layers_ctrl & 4) draw_sprites(screen.machine(), bitmap, cliprect);
- if (layers_ctrl & 2) state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (layers_ctrl & 2) m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -3269,7 +3269,7 @@ static MACHINE_CONFIG_START( iqblocka, igs017_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(igs017)
+ MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
MCFG_GFXDECODE(igs017)
MCFG_PALETTE_LENGTH(0x100*2)
@@ -3334,7 +3334,7 @@ static MACHINE_CONFIG_START( mgcs, igs017_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(igs017)
+ MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
MCFG_GFXDECODE(igs017_flipped)
MCFG_PALETTE_LENGTH(0x100*2)
@@ -3374,7 +3374,7 @@ static MACHINE_CONFIG_START( lhzb2, igs017_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(igs017)
+ MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
MCFG_GFXDECODE(igs017_swapped)
MCFG_PALETTE_LENGTH(0x100*2)
@@ -3411,7 +3411,7 @@ static MACHINE_CONFIG_START( lhzb2a, igs017_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(igs017)
+ MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
MCFG_GFXDECODE(igs017_swapped)
MCFG_PALETTE_LENGTH(0x100*2)
@@ -3442,7 +3442,7 @@ static MACHINE_CONFIG_START( slqz2, igs017_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(igs017)
+ MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
MCFG_GFXDECODE(igs017)
MCFG_PALETTE_LENGTH(0x100*2)
@@ -3482,7 +3482,7 @@ static MACHINE_CONFIG_START( sdmg2, igs017_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(igs017)
+ MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
MCFG_GFXDECODE(igs017)
MCFG_PALETTE_LENGTH(0x100*2)
@@ -3534,7 +3534,7 @@ static MACHINE_CONFIG_START( mgdha, igs017_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(igs017)
+ MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
MCFG_GFXDECODE(igs017_swapped)
MCFG_PALETTE_LENGTH(0x100*2)
@@ -3565,7 +3565,7 @@ static MACHINE_CONFIG_START( tjsb, igs017_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(igs017)
+ MCFG_SCREEN_UPDATE_DRIVER(igs017_state, screen_update_igs017)
MCFG_GFXDECODE(igs017)
MCFG_PALETTE_LENGTH(0x100*2)
diff --git a/src/mame/drivers/igs_m027.c b/src/mame/drivers/igs_m027.c
index eb19b0251b4..fb9e4d29a5f 100644
--- a/src/mame/drivers/igs_m027.c
+++ b/src/mame/drivers/igs_m027.c
@@ -58,6 +58,7 @@ public:
TILE_GET_INFO_MEMBER(get_tx_tilemap_tile_info);
TILE_GET_INFO_MEMBER(get_bg_tilemap_tile_info);
virtual void video_start();
+ UINT32 screen_update_igs_majhong(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -181,19 +182,18 @@ void igs_m027_state::video_start()
logerror("Video START OK!\n");
}
-static SCREEN_UPDATE_IND16(igs_majhong)
+UINT32 igs_m027_state::screen_update_igs_majhong(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- igs_m027_state *state = screen.machine().driver_data<igs_m027_state>();
//??????????
bitmap.fill(get_black_pen(screen.machine()), cliprect);
//??????
- state->m_igs_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_igs_bg_tilemap->draw(bitmap, cliprect, 0,0);
//CG??????
//??????
- state->m_igs_tx_tilemap->draw(bitmap, cliprect, 0,0);
+ m_igs_tx_tilemap->draw(bitmap, cliprect, 0,0);
//fprintf(stdout,"Video UPDATE OK!\n");
return 0;
}
@@ -379,7 +379,7 @@ static MACHINE_CONFIG_START( igs_majhong, igs_m027_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC( igs_majhong )
+ MCFG_SCREEN_UPDATE_DRIVER(igs_m027_state, screen_update_igs_majhong)
MCFG_PALETTE_LENGTH(0x200)
diff --git a/src/mame/drivers/igspoker.c b/src/mame/drivers/igspoker.c
index 6d2e6317973..73e4b056388 100644
--- a/src/mame/drivers/igspoker.c
+++ b/src/mame/drivers/igspoker.c
@@ -119,6 +119,8 @@ public:
virtual void machine_reset();
virtual void video_start();
DECLARE_VIDEO_START(cpokerpk);
+ UINT32 screen_update_igs_video(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_cpokerpk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -197,15 +199,14 @@ void igspoker_state::video_start()
m_fg_tilemap->set_transparent_pen(0);
}
-static SCREEN_UPDATE_IND16(igs_video)
+UINT32 igspoker_state::screen_update_igs_video(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- igspoker_state *state = screen.machine().driver_data<igspoker_state>();
bitmap.fill(get_black_pen(screen.machine()), cliprect);
// FIX: CSK227IT must have some way to disable background, or wrong gfx?
- if (state->m_bg_enable) state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (m_bg_enable) m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -215,10 +216,9 @@ VIDEO_START_MEMBER(igspoker_state,cpokerpk)
m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(igspoker_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
}
-static SCREEN_UPDATE_IND16(cpokerpk)
+UINT32 igspoker_state::screen_update_cpokerpk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- igspoker_state *state = screen.machine().driver_data<igspoker_state>();
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -1780,7 +1780,7 @@ static MACHINE_CONFIG_START( igspoker, igspoker_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8) // TODO: wrong screen size!
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(igs_video)
+ MCFG_SCREEN_UPDATE_DRIVER(igspoker_state, screen_update_igs_video)
MCFG_GFXDECODE(igspoker)
MCFG_PALETTE_LENGTH(2048)
@@ -1810,7 +1810,7 @@ static MACHINE_CONFIG_DERIVED( number10, igspoker )
MCFG_CPU_IO_MAP(number10_io_map)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(cpokerpk)
+ MCFG_SCREEN_UPDATE_DRIVER(igspoker_state, screen_update_cpokerpk)
MCFG_VIDEO_START_OVERRIDE(igspoker_state,cpokerpk)
MCFG_OKIM6295_ADD("oki", XTAL_12MHz / 12, OKIM6295_PIN7_HIGH)
diff --git a/src/mame/drivers/ikki.c b/src/mame/drivers/ikki.c
index 865839ddc93..f3628959fca 100644
--- a/src/mame/drivers/ikki.c
+++ b/src/mame/drivers/ikki.c
@@ -276,7 +276,7 @@ static MACHINE_CONFIG_START( ikki, ikki_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8+3*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(ikki)
+ MCFG_SCREEN_UPDATE_DRIVER(ikki_state, screen_update_ikki)
MCFG_GFXDECODE(ikki)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/imolagp.c b/src/mame/drivers/imolagp.c
index 8cd1d39eb0f..1053a3aba7b 100644
--- a/src/mame/drivers/imolagp.c
+++ b/src/mame/drivers/imolagp.c
@@ -128,6 +128,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_imolagp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -208,15 +209,14 @@ void imolagp_state::video_start()
}
-static SCREEN_UPDATE_IND16( imolagp )
+UINT32 imolagp_state::screen_update_imolagp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- imolagp_state *state = screen.machine().driver_data<imolagp_state>();
- int scroll2 = state->m_scroll ^ 0x03;
+ int scroll2 = m_scroll ^ 0x03;
int pass;
for (pass = 0; pass < 2; pass++)
{
int i;
- const UINT8 *source = state->m_videoram[pass * 2];
+ const UINT8 *source = m_videoram[pass * 2];
for (i = 0; i < 0x4000; i++)
{
@@ -574,7 +574,7 @@ static MACHINE_CONFIG_START( imolagp, imolagp_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256,256)
MCFG_SCREEN_VISIBLE_AREA(0+64-16,255,0+16,255)
- MCFG_SCREEN_UPDATE_STATIC(imolagp)
+ MCFG_SCREEN_UPDATE_DRIVER(imolagp_state, screen_update_imolagp)
MCFG_PALETTE_LENGTH(0x20)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/intrscti.c b/src/mame/drivers/intrscti.c
index 00923241d92..dfc588cd0bd 100644
--- a/src/mame/drivers/intrscti.c
+++ b/src/mame/drivers/intrscti.c
@@ -26,15 +26,15 @@ public:
// DECLARE_READ8_MEMBER(unk_r);
DECLARE_DRIVER_INIT(intrscti);
virtual void video_start();
+ UINT32 screen_update_intrscti(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
void intrscti_state::video_start()
{
}
-static SCREEN_UPDATE_IND16(intrscti)
+UINT32 intrscti_state::screen_update_intrscti(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- intrscti_state *state = screen.machine().driver_data<intrscti_state>();
int y,x;
int count;
@@ -46,7 +46,7 @@ static SCREEN_UPDATE_IND16(intrscti)
for (x=0;x<32;x++)
{
int dat;
- dat = state->m_vram[count];
+ dat = m_vram[count];
drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0],dat/*+0x100*/,0,0,0,x*8,y*8,0);
count++;
}
@@ -58,7 +58,7 @@ static SCREEN_UPDATE_IND16(intrscti)
for (x=0;x<32;x++)
{
int dat;
- dat = state->m_vram[count];
+ dat = m_vram[count];
drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0],dat+0x100,0,0,0,x*8,y*8,0);
count++;
}
@@ -171,7 +171,7 @@ static MACHINE_CONFIG_START( intrscti, intrscti_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(intrscti)
+ MCFG_SCREEN_UPDATE_DRIVER(intrscti_state, screen_update_intrscti)
MCFG_GFXDECODE(intrscti)
MCFG_PALETTE_LENGTH(0x100)
diff --git a/src/mame/drivers/inufuku.c b/src/mame/drivers/inufuku.c
index ae33679ad05..dfac3b8a3ac 100644
--- a/src/mame/drivers/inufuku.c
+++ b/src/mame/drivers/inufuku.c
@@ -364,7 +364,7 @@ static MACHINE_CONFIG_START( inufuku, inufuku_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(2048, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 319-1, 1, 224-1)
- MCFG_SCREEN_UPDATE_STATIC(inufuku)
+ MCFG_SCREEN_UPDATE_DRIVER(inufuku_state, screen_update_inufuku)
MCFG_GFXDECODE(inufuku)
MCFG_PALETTE_LENGTH(4096)
diff --git a/src/mame/drivers/iqblock.c b/src/mame/drivers/iqblock.c
index 2cfda9d809e..425ee470ea5 100644
--- a/src/mame/drivers/iqblock.c
+++ b/src/mame/drivers/iqblock.c
@@ -285,7 +285,7 @@ static MACHINE_CONFIG_START( iqblock, iqblock_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(iqblock)
+ MCFG_SCREEN_UPDATE_DRIVER(iqblock_state, screen_update_iqblock)
MCFG_GFXDECODE(iqblock)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/irobot.c b/src/mame/drivers/irobot.c
index 278ef1fd71f..b0ce5c58038 100644
--- a/src/mame/drivers/irobot.c
+++ b/src/mame/drivers/irobot.c
@@ -302,7 +302,7 @@ static MACHINE_CONFIG_START( irobot, irobot_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 29*8-1)
- MCFG_SCREEN_UPDATE_STATIC(irobot)
+ MCFG_SCREEN_UPDATE_DRIVER(irobot_state, screen_update_irobot)
MCFG_GFXDECODE(irobot)
MCFG_PALETTE_LENGTH(64 + 32) /* 64 for polygons, 32 for text */
diff --git a/src/mame/drivers/ironhors.c b/src/mame/drivers/ironhors.c
index 25378618c17..f766c85f76e 100644
--- a/src/mame/drivers/ironhors.c
+++ b/src/mame/drivers/ironhors.c
@@ -393,7 +393,7 @@ static MACHINE_CONFIG_START( ironhors, ironhors_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(ironhors)
+ MCFG_SCREEN_UPDATE_DRIVER(ironhors_state, screen_update_ironhors)
MCFG_GFXDECODE(ironhors)
MCFG_PALETTE_LENGTH(16*8*16+16*8*16)
@@ -468,7 +468,7 @@ static MACHINE_CONFIG_DERIVED( farwest, ironhors )
MCFG_GFXDECODE(farwest)
MCFG_VIDEO_START_OVERRIDE(ironhors_state,farwest)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(farwest)
+ MCFG_SCREEN_UPDATE_DRIVER(ironhors_state, screen_update_farwest)
MCFG_SOUND_MODIFY("ym2203")
MCFG_SOUND_CONFIG(farwest_ym2203_config)
diff --git a/src/mame/drivers/istellar.c b/src/mame/drivers/istellar.c
index 46e54890fdb..05f7e86ab06 100644
--- a/src/mame/drivers/istellar.c
+++ b/src/mame/drivers/istellar.c
@@ -53,6 +53,7 @@ public:
DECLARE_DRIVER_INIT(istellar);
virtual void machine_start();
virtual void palette_init();
+ UINT32 screen_update_istellar(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -61,9 +62,8 @@ public:
/* VIDEO GOODS */
-static SCREEN_UPDATE_RGB32( istellar )
+UINT32 istellar_state::screen_update_istellar(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- istellar_state *state = screen.machine().driver_data<istellar_state>();
int x, y;
/* clear */
@@ -74,8 +74,8 @@ static SCREEN_UPDATE_RGB32( istellar )
{
for (x = 0; x < 32; x++)
{
- int tile = state->m_tile_ram[x+y*32];
- int attr = state->m_tile_control_ram[x+y*32];
+ int tile = m_tile_ram[x+y*32];
+ int attr = m_tile_control_ram[x+y*32];
drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0],tile,attr & 0x0f,0, 0, x*8, y*8, 0);
}
@@ -346,7 +346,7 @@ static MACHINE_CONFIG_START( istellar, istellar_state )
MCFG_LASERDISC_LDV1000_ADD("laserdisc")
- MCFG_LASERDISC_OVERLAY_STATIC(256, 256, istellar)
+ MCFG_LASERDISC_OVERLAY_DRIVER(256, 256, istellar_state, screen_update_istellar)
/* video hardware */
MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
diff --git a/src/mame/drivers/itech32.c b/src/mame/drivers/itech32.c
index acac460ef62..ee35142bb6b 100644
--- a/src/mame/drivers/itech32.c
+++ b/src/mame/drivers/itech32.c
@@ -1686,7 +1686,7 @@ static MACHINE_CONFIG_START( timekill, itech32_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK, 508, 0, 384, 262, 0, 256)
- MCFG_SCREEN_UPDATE_STATIC(itech32)
+ MCFG_SCREEN_UPDATE_DRIVER(itech32_state, screen_update_itech32)
/* sound hardware */
diff --git a/src/mame/drivers/itech8.c b/src/mame/drivers/itech8.c
index b378b31e429..793f5578830 100644
--- a/src/mame/drivers/itech8.c
+++ b/src/mame/drivers/itech8.c
@@ -1792,7 +1792,7 @@ static MACHINE_CONFIG_DERIVED( wfortune, itech8_core_hi )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(itech8_2layer)
+ MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_2layer)
MACHINE_CONFIG_END
@@ -1804,7 +1804,7 @@ static MACHINE_CONFIG_DERIVED( grmatch, itech8_core_hi )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0, 399, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(itech8_grmatch)
+ MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_grmatch)
/* palette updater */
MCFG_TIMER_ADD_SCANLINE("palette", grmatch_palette_update, "screen", 0, 0)
@@ -1819,7 +1819,7 @@ static MACHINE_CONFIG_DERIVED( stratab_hi, itech8_core_hi )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(itech8_2layer)
+ MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_2layer)
MACHINE_CONFIG_END
@@ -1831,7 +1831,7 @@ static MACHINE_CONFIG_DERIVED( stratab_lo, itech8_core_lo )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(itech8_2layer)
+ MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_2layer)
MACHINE_CONFIG_END
@@ -1847,7 +1847,7 @@ static MACHINE_CONFIG_DERIVED( slikshot_hi, itech8_core_hi )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(slikshot)
+ MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_slikshot)
MCFG_VIDEO_START_OVERRIDE(itech8_state,slikshot)
MACHINE_CONFIG_END
@@ -1864,7 +1864,7 @@ static MACHINE_CONFIG_DERIVED( slikshot_lo, itech8_core_lo )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(slikshot)
+ MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_slikshot)
MCFG_VIDEO_START_OVERRIDE(itech8_state,slikshot)
MACHINE_CONFIG_END
@@ -1877,7 +1877,7 @@ static MACHINE_CONFIG_DERIVED( slikshot_lo_noz80, itech8_core_lo )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(itech8_2page)
+ MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_2page)
MACHINE_CONFIG_END
@@ -1897,7 +1897,7 @@ static MACHINE_CONFIG_DERIVED( hstennis_hi, itech8_core_hi )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0, 399, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(itech8_2page_large)
+ MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_2page_large)
MACHINE_CONFIG_END
@@ -1909,7 +1909,7 @@ static MACHINE_CONFIG_DERIVED( hstennis_lo, itech8_core_lo )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0, 399, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(itech8_2page_large)
+ MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_2page_large)
MACHINE_CONFIG_END
@@ -1925,7 +1925,7 @@ static MACHINE_CONFIG_DERIVED( rimrockn, itech8_core_hi )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(24, 375, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(itech8_2page_large)
+ MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_2page_large)
MACHINE_CONFIG_END
@@ -1941,7 +1941,7 @@ static MACHINE_CONFIG_DERIVED( ninclown, itech8_core_hi )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(64, 423, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(itech8_2page_large)
+ MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_2page_large)
MACHINE_CONFIG_END
@@ -1956,7 +1956,7 @@ static MACHINE_CONFIG_DERIVED( gtg2, itech8_core_lo )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(itech8_2layer)
+ MCFG_SCREEN_UPDATE_DRIVER(itech8_state, screen_update_itech8_2layer)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/itgambl2.c b/src/mame/drivers/itgambl2.c
index 543484df33b..a3a053a5242 100644
--- a/src/mame/drivers/itgambl2.c
+++ b/src/mame/drivers/itgambl2.c
@@ -69,6 +69,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_itgambl2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -84,45 +85,44 @@ void itgambl2_state::video_start()
}
/* (dirty) debug code for looking 8bpps blitter-based gfxs */
-static SCREEN_UPDATE_RGB32( itgambl2 )
+UINT32 itgambl2_state::screen_update_itgambl2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- itgambl2_state *state = screen.machine().driver_data<itgambl2_state>();
int x,y,count;
- const UINT8 *blit_ram = state->memregion("gfx1")->base();
+ const UINT8 *blit_ram = memregion("gfx1")->base();
if(screen.machine().input().code_pressed(KEYCODE_Z))
- state->m_test_x++;
+ m_test_x++;
if(screen.machine().input().code_pressed(KEYCODE_X))
- state->m_test_x--;
+ m_test_x--;
if(screen.machine().input().code_pressed(KEYCODE_A))
- state->m_test_y++;
+ m_test_y++;
if(screen.machine().input().code_pressed(KEYCODE_S))
- state->m_test_y--;
+ m_test_y--;
if(screen.machine().input().code_pressed(KEYCODE_Q))
- state->m_start_offs+=0x200;
+ m_start_offs+=0x200;
if(screen.machine().input().code_pressed(KEYCODE_W))
- state->m_start_offs-=0x200;
+ m_start_offs-=0x200;
if(screen.machine().input().code_pressed(KEYCODE_E))
- state->m_start_offs++;
+ m_start_offs++;
if(screen.machine().input().code_pressed(KEYCODE_R))
- state->m_start_offs--;
+ m_start_offs--;
- popmessage("%d %d %04x",state->m_test_x,state->m_test_y,state->m_start_offs);
+ popmessage("%d %d %04x",m_test_x,m_test_y,m_start_offs);
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- count = (state->m_start_offs);
+ count = (m_start_offs);
- for(y=0;y<state->m_test_y;y++)
+ for(y=0;y<m_test_y;y++)
{
- for(x=0;x<state->m_test_x;x++)
+ for(x=0;x<m_test_x;x++)
{
UINT32 color;
@@ -273,7 +273,7 @@ static MACHINE_CONFIG_START( itgambl2, itgambl2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC( itgambl2 )
+ MCFG_SCREEN_UPDATE_DRIVER(itgambl2_state, screen_update_itgambl2)
MCFG_GFXDECODE(itgambl2)
diff --git a/src/mame/drivers/itgambl3.c b/src/mame/drivers/itgambl3.c
index 9236a18b068..cfe00de541b 100644
--- a/src/mame/drivers/itgambl3.c
+++ b/src/mame/drivers/itgambl3.c
@@ -57,6 +57,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_itgambl3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -72,45 +73,44 @@ void itgambl3_state::video_start()
}
/* (dirty) debug code for looking 8bpps blitter-based gfxs */
-static SCREEN_UPDATE_RGB32( itgambl3 )
+UINT32 itgambl3_state::screen_update_itgambl3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- itgambl3_state *state = screen.machine().driver_data<itgambl3_state>();
int x,y,count;
- const UINT8 *blit_ram = state->memregion("gfx1")->base();
+ const UINT8 *blit_ram = memregion("gfx1")->base();
if(screen.machine().input().code_pressed(KEYCODE_Z))
- state->m_test_x++;
+ m_test_x++;
if(screen.machine().input().code_pressed(KEYCODE_X))
- state->m_test_x--;
+ m_test_x--;
if(screen.machine().input().code_pressed(KEYCODE_A))
- state->m_test_y++;
+ m_test_y++;
if(screen.machine().input().code_pressed(KEYCODE_S))
- state->m_test_y--;
+ m_test_y--;
if(screen.machine().input().code_pressed(KEYCODE_Q))
- state->m_start_offs+=0x200;
+ m_start_offs+=0x200;
if(screen.machine().input().code_pressed(KEYCODE_W))
- state->m_start_offs-=0x200;
+ m_start_offs-=0x200;
if(screen.machine().input().code_pressed(KEYCODE_E))
- state->m_start_offs++;
+ m_start_offs++;
if(screen.machine().input().code_pressed(KEYCODE_R))
- state->m_start_offs--;
+ m_start_offs--;
- popmessage("%d %d %04x",state->m_test_x,state->m_test_y,state->m_start_offs);
+ popmessage("%d %d %04x",m_test_x,m_test_y,m_start_offs);
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- count = (state->m_start_offs);
+ count = (m_start_offs);
- for(y=0;y<state->m_test_y;y++)
+ for(y=0;y<m_test_y;y++)
{
- for(x=0;x<state->m_test_x;x++)
+ for(x=0;x<m_test_x;x++)
{
UINT32 color;
@@ -262,7 +262,7 @@ static MACHINE_CONFIG_START( itgambl3, itgambl3_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC( itgambl3 )
+ MCFG_SCREEN_UPDATE_DRIVER(itgambl3_state, screen_update_itgambl3)
MCFG_GFXDECODE(itgambl3)
diff --git a/src/mame/drivers/jack.c b/src/mame/drivers/jack.c
index 21fcba48d82..457bf186d18 100644
--- a/src/mame/drivers/jack.c
+++ b/src/mame/drivers/jack.c
@@ -826,7 +826,7 @@ static MACHINE_CONFIG_START( jack, jack_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(jack)
+ MCFG_SCREEN_UPDATE_DRIVER(jack_state, screen_update_jack)
MCFG_GFXDECODE(jack)
MCFG_PALETTE_LENGTH(32)
@@ -867,7 +867,7 @@ static MACHINE_CONFIG_DERIVED( joinem, jack )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(joinem)
+ MCFG_SCREEN_UPDATE_DRIVER(jack_state, screen_update_joinem)
MCFG_PALETTE_INIT_OVERRIDE(jack_state,joinem)
MCFG_VIDEO_START_OVERRIDE(jack_state,joinem)
@@ -886,7 +886,7 @@ static MACHINE_CONFIG_DERIVED( loverboy, jack )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(joinem)
+ MCFG_SCREEN_UPDATE_DRIVER(jack_state, screen_update_joinem)
MCFG_PALETTE_INIT_OVERRIDE(jack_state,joinem)
MCFG_VIDEO_START_OVERRIDE(jack_state,joinem)
diff --git a/src/mame/drivers/jackal.c b/src/mame/drivers/jackal.c
index d176ff9891a..8c7d94b3eff 100644
--- a/src/mame/drivers/jackal.c
+++ b/src/mame/drivers/jackal.c
@@ -372,7 +372,7 @@ static MACHINE_CONFIG_START( jackal, jackal_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(jackal)
+ MCFG_SCREEN_UPDATE_DRIVER(jackal_state, screen_update_jackal)
MCFG_GFXDECODE(jackal)
MCFG_PALETTE_LENGTH(0x300)
diff --git a/src/mame/drivers/jackie.c b/src/mame/drivers/jackie.c
index 53f61b67080..b8fb36ad8c5 100644
--- a/src/mame/drivers/jackie.c
+++ b/src/mame/drivers/jackie.c
@@ -110,6 +110,7 @@ public:
TILE_GET_INFO_MEMBER(get_jackie_reel3_tile_info);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_jackie(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -197,9 +198,8 @@ void jackie_state::video_start()
}
-static SCREEN_UPDATE_IND16(jackie)
+UINT32 jackie_state::screen_update_jackie(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- jackie_state *state = screen.machine().driver_data<jackie_state>();
int i,j;
int startclipmin = 0;
const rectangle &visarea = screen.visible_area();
@@ -208,30 +208,30 @@ static SCREEN_UPDATE_IND16(jackie)
for (i=0;i < 0x40;i++)
{
- state->m_reel1_tilemap->set_scrolly(i, state->m_bg_scroll[i+0x000]);
- state->m_reel2_tilemap->set_scrolly(i, state->m_bg_scroll[i+0x040]);
- state->m_reel3_tilemap->set_scrolly(i, state->m_bg_scroll[i+0x080]);
+ m_reel1_tilemap->set_scrolly(i, m_bg_scroll[i+0x000]);
+ m_reel2_tilemap->set_scrolly(i, m_bg_scroll[i+0x040]);
+ m_reel3_tilemap->set_scrolly(i, m_bg_scroll[i+0x080]);
}
for (j=0; j < 0x100-1; j++)
{
rectangle clip;
- int rowenable = state->m_bg_scroll2[j];
+ int rowenable = m_bg_scroll2[j];
/* draw top of screen */
clip.set(visarea.min_x, visarea.max_x, startclipmin, startclipmin+1);
if (rowenable==0)
{
- state->m_reel1_tilemap->draw(bitmap, clip, 0,0);
+ m_reel1_tilemap->draw(bitmap, clip, 0,0);
}
else if (rowenable==1)
{
- state->m_reel2_tilemap->draw(bitmap, clip, 0,0);
+ m_reel2_tilemap->draw(bitmap, clip, 0,0);
}
else if (rowenable==2)
{
- state->m_reel3_tilemap->draw(bitmap, clip, 0,0);
+ m_reel3_tilemap->draw(bitmap, clip, 0,0);
}
else if (rowenable==3)
{
@@ -240,7 +240,7 @@ static SCREEN_UPDATE_IND16(jackie)
startclipmin+=1;
}
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -586,7 +586,7 @@ static MACHINE_CONFIG_START( jackie, jackie_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(jackie)
+ MCFG_SCREEN_UPDATE_DRIVER(jackie_state, screen_update_jackie)
MCFG_GFXDECODE(jackie)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/jackpool.c b/src/mame/drivers/jackpool.c
index dbc21efdedc..1ff5fde79ce 100644
--- a/src/mame/drivers/jackpool.c
+++ b/src/mame/drivers/jackpool.c
@@ -37,6 +37,7 @@ public:
DECLARE_WRITE16_MEMBER(jackpool_io_w);
DECLARE_DRIVER_INIT(jackpool);
virtual void video_start();
+ UINT32 screen_update_jackpool(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -44,39 +45,38 @@ void jackpool_state::video_start()
{
}
-static SCREEN_UPDATE_IND16(jackpool)
+UINT32 jackpool_state::screen_update_jackpool(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- jackpool_state *state = screen.machine().driver_data<jackpool_state>();
gfx_element *gfx = screen.machine().gfx[0];
int count;// = 0x00000/2;
int y,x;
{
- count = state->m_map_vreg*(0x4000/2);
+ count = m_map_vreg*(0x4000/2);
for (y=0;y<32;y++)
{
for (x=0;x<64;x++)
{
- int tile = (state->m_vram[count+(0x2000/2)] & 0x7fff);
- int attr = (state->m_vram[count+(0x2000/2)+0x800] & 0x1f00)>>8;
+ int tile = (m_vram[count+(0x2000/2)] & 0x7fff);
+ int attr = (m_vram[count+(0x2000/2)+0x800] & 0x1f00)>>8;
drawgfx_opaque(bitmap,cliprect,gfx,tile,attr,0,0,x*8,y*8);
count++;
}
}
- count = state->m_map_vreg*(0x4000/2);
+ count = m_map_vreg*(0x4000/2);
for (y=0;y<32;y++)
{
for (x=0;x<64;x++)
{
- int tile = (state->m_vram[count] & 0x7fff);
+ int tile = (m_vram[count] & 0x7fff);
if(tile != 0)
{
- int attr = (state->m_vram[count+0x800] & 0x1f00)>>8;
- int t_pen = (state->m_vram[count+0x800] & 0x1000);
+ int attr = (m_vram[count+0x800] & 0x1f00)>>8;
+ int t_pen = (m_vram[count+0x800] & 0x1000);
drawgfx_transpen(bitmap,cliprect,gfx,tile,attr,0,0,x*8,y*8,(t_pen) ? 0 : -1);
}
@@ -266,7 +266,7 @@ static MACHINE_CONFIG_START( jackpool, jackpool_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(jackpool)
+ MCFG_SCREEN_UPDATE_DRIVER(jackpool_state, screen_update_jackpool)
MCFG_EEPROM_93C46_ADD("eeprom")
diff --git a/src/mame/drivers/jailbrek.c b/src/mame/drivers/jailbrek.c
index 3f19cc32b17..d83ee8626e4 100644
--- a/src/mame/drivers/jailbrek.c
+++ b/src/mame/drivers/jailbrek.c
@@ -281,7 +281,7 @@ static MACHINE_CONFIG_START( jailbrek, jailbrek_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 396, 8, 248, 256, 16, 240)
- MCFG_SCREEN_UPDATE_STATIC(jailbrek)
+ MCFG_SCREEN_UPDATE_DRIVER(jailbrek_state, screen_update_jailbrek)
/* sound hardware */
diff --git a/src/mame/drivers/jalmah.c b/src/mame/drivers/jalmah.c
index 0eb92c796d2..254728bfd61 100644
--- a/src/mame/drivers/jalmah.c
+++ b/src/mame/drivers/jalmah.c
@@ -204,6 +204,8 @@ public:
virtual void machine_reset();
virtual void video_start();
DECLARE_VIDEO_START(urashima);
+ UINT32 screen_update_jalmah(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_urashima(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -436,80 +438,78 @@ static void draw_sc3_layer(running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-static SCREEN_UPDATE_IND16( jalmah )
+UINT32 jalmah_state::screen_update_jalmah(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- jalmah_state *state = screen.machine().driver_data<jalmah_state>();
- UINT16 *jm_scrollram = state->m_jm_scrollram;
+ UINT16 *jm_scrollram = m_jm_scrollram;
UINT8 cur_prin;
jalmah_priority_system(screen.machine());
- state->m_sc0_tilemap_0->set_scrollx(0, jm_scrollram[0] & 0xfff);
- state->m_sc0_tilemap_1->set_scrollx(0, jm_scrollram[0] & 0x7ff);
- state->m_sc0_tilemap_2->set_scrollx(0, jm_scrollram[0] & 0x3ff);
- state->m_sc0_tilemap_3->set_scrollx(0, jm_scrollram[0] & 0x1ff);
+ m_sc0_tilemap_0->set_scrollx(0, jm_scrollram[0] & 0xfff);
+ m_sc0_tilemap_1->set_scrollx(0, jm_scrollram[0] & 0x7ff);
+ m_sc0_tilemap_2->set_scrollx(0, jm_scrollram[0] & 0x3ff);
+ m_sc0_tilemap_3->set_scrollx(0, jm_scrollram[0] & 0x1ff);
- state->m_sc1_tilemap_0->set_scrollx(0, jm_scrollram[1] & 0xfff);
- state->m_sc1_tilemap_1->set_scrollx(0, jm_scrollram[1] & 0x7ff);
- state->m_sc1_tilemap_2->set_scrollx(0, jm_scrollram[1] & 0x3ff);
- state->m_sc1_tilemap_3->set_scrollx(0, jm_scrollram[1] & 0x1ff);
+ m_sc1_tilemap_0->set_scrollx(0, jm_scrollram[1] & 0xfff);
+ m_sc1_tilemap_1->set_scrollx(0, jm_scrollram[1] & 0x7ff);
+ m_sc1_tilemap_2->set_scrollx(0, jm_scrollram[1] & 0x3ff);
+ m_sc1_tilemap_3->set_scrollx(0, jm_scrollram[1] & 0x1ff);
- state->m_sc2_tilemap_0->set_scrollx(0, jm_scrollram[2] & 0xfff);
- state->m_sc2_tilemap_1->set_scrollx(0, jm_scrollram[2] & 0x7ff);
- state->m_sc2_tilemap_2->set_scrollx(0, jm_scrollram[2] & 0x3ff);
- state->m_sc2_tilemap_3->set_scrollx(0, jm_scrollram[2] & 0x1ff);
+ m_sc2_tilemap_0->set_scrollx(0, jm_scrollram[2] & 0xfff);
+ m_sc2_tilemap_1->set_scrollx(0, jm_scrollram[2] & 0x7ff);
+ m_sc2_tilemap_2->set_scrollx(0, jm_scrollram[2] & 0x3ff);
+ m_sc2_tilemap_3->set_scrollx(0, jm_scrollram[2] & 0x1ff);
- state->m_sc3_tilemap_0->set_scrollx(0, jm_scrollram[3] & 0x7ff);
+ m_sc3_tilemap_0->set_scrollx(0, jm_scrollram[3] & 0x7ff);
// empty
- state->m_sc3_tilemap_2->set_scrollx(0, jm_scrollram[3] & 0x3ff);
- state->m_sc3_tilemap_3->set_scrollx(0, jm_scrollram[3] & 0x1ff);
+ m_sc3_tilemap_2->set_scrollx(0, jm_scrollram[3] & 0x3ff);
+ m_sc3_tilemap_3->set_scrollx(0, jm_scrollram[3] & 0x1ff);
- state->m_sc0_tilemap_0->set_scrolly(0, jm_scrollram[4] & 0x1ff);
- state->m_sc0_tilemap_1->set_scrolly(0, jm_scrollram[4] & 0x3ff);
- state->m_sc0_tilemap_2->set_scrolly(0, jm_scrollram[4] & 0x7ff);
- state->m_sc0_tilemap_3->set_scrolly(0, jm_scrollram[4] & 0xfff);
+ m_sc0_tilemap_0->set_scrolly(0, jm_scrollram[4] & 0x1ff);
+ m_sc0_tilemap_1->set_scrolly(0, jm_scrollram[4] & 0x3ff);
+ m_sc0_tilemap_2->set_scrolly(0, jm_scrollram[4] & 0x7ff);
+ m_sc0_tilemap_3->set_scrolly(0, jm_scrollram[4] & 0xfff);
- state->m_sc1_tilemap_0->set_scrolly(0, jm_scrollram[5] & 0x1ff);
- state->m_sc1_tilemap_1->set_scrolly(0, jm_scrollram[5] & 0x3ff);
- state->m_sc1_tilemap_2->set_scrolly(0, jm_scrollram[5] & 0x7ff);
- state->m_sc1_tilemap_3->set_scrolly(0, jm_scrollram[5] & 0xfff);
+ m_sc1_tilemap_0->set_scrolly(0, jm_scrollram[5] & 0x1ff);
+ m_sc1_tilemap_1->set_scrolly(0, jm_scrollram[5] & 0x3ff);
+ m_sc1_tilemap_2->set_scrolly(0, jm_scrollram[5] & 0x7ff);
+ m_sc1_tilemap_3->set_scrolly(0, jm_scrollram[5] & 0xfff);
- state->m_sc2_tilemap_0->set_scrolly(0, jm_scrollram[6] & 0x1ff);
- state->m_sc2_tilemap_1->set_scrolly(0, jm_scrollram[6] & 0x3ff);
- state->m_sc2_tilemap_2->set_scrolly(0, jm_scrollram[6] & 0x7ff);
- state->m_sc2_tilemap_3->set_scrolly(0, jm_scrollram[6] & 0xfff);
+ m_sc2_tilemap_0->set_scrolly(0, jm_scrollram[6] & 0x1ff);
+ m_sc2_tilemap_1->set_scrolly(0, jm_scrollram[6] & 0x3ff);
+ m_sc2_tilemap_2->set_scrolly(0, jm_scrollram[6] & 0x7ff);
+ m_sc2_tilemap_3->set_scrolly(0, jm_scrollram[6] & 0xfff);
- state->m_sc3_tilemap_0->set_scrolly(0, jm_scrollram[7] & 0xff);
+ m_sc3_tilemap_0->set_scrolly(0, jm_scrollram[7] & 0xff);
// empty
- state->m_sc3_tilemap_2->set_scrolly(0, jm_scrollram[7] & 0x1ff);
- state->m_sc3_tilemap_3->set_scrolly(0, jm_scrollram[7] & 0x3ff);
+ m_sc3_tilemap_2->set_scrolly(0, jm_scrollram[7] & 0x1ff);
+ m_sc3_tilemap_3->set_scrolly(0, jm_scrollram[7] & 0x3ff);
bitmap.fill(screen.machine().pens[0xff], cliprect); //selectable by a ram address?
for(cur_prin=1;cur_prin<=0x8;cur_prin<<=1)
{
- if(cur_prin==state->m_sc0_prin) { draw_sc0_layer(screen.machine(),bitmap,cliprect); }
- if(cur_prin==state->m_sc1_prin) { draw_sc1_layer(screen.machine(),bitmap,cliprect); }
- if(cur_prin==state->m_sc2_prin) { draw_sc2_layer(screen.machine(),bitmap,cliprect); }
- if(cur_prin==state->m_sc3_prin) { draw_sc3_layer(screen.machine(),bitmap,cliprect); }
+ if(cur_prin==m_sc0_prin) { draw_sc0_layer(screen.machine(),bitmap,cliprect); }
+ if(cur_prin==m_sc1_prin) { draw_sc1_layer(screen.machine(),bitmap,cliprect); }
+ if(cur_prin==m_sc2_prin) { draw_sc2_layer(screen.machine(),bitmap,cliprect); }
+ if(cur_prin==m_sc3_prin) { draw_sc3_layer(screen.machine(),bitmap,cliprect); }
}
return 0;
}
-static SCREEN_UPDATE_IND16( urashima )
+UINT32 jalmah_state::screen_update_urashima(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- jalmah_state *state = screen.machine().driver_data<jalmah_state>();
- UINT16 *jm_scrollram = state->m_jm_scrollram;
+ UINT16 *jm_scrollram = m_jm_scrollram;
/*this game doesn't use the RANGE register at all.*/
- state->m_sc0_tilemap_0->set_scrollx(0, jm_scrollram[0]);
- state->m_sc3_tilemap_0->set_scrollx(0, jm_scrollram[3]);
- state->m_sc0_tilemap_0->set_scrolly(0, jm_scrollram[4]);
- state->m_sc3_tilemap_0->set_scrolly(0, jm_scrollram[7]);
+ m_sc0_tilemap_0->set_scrollx(0, jm_scrollram[0]);
+ m_sc3_tilemap_0->set_scrollx(0, jm_scrollram[3]);
+ m_sc0_tilemap_0->set_scrolly(0, jm_scrollram[4]);
+ m_sc3_tilemap_0->set_scrolly(0, jm_scrollram[7]);
bitmap.fill(screen.machine().pens[0x1ff], cliprect);//selectable by a ram address?
- if(state->m_jm_vregs[0] & 1) { state->m_sc0_tilemap_0->draw(bitmap, cliprect, 0,0); }
- if(state->m_jm_vregs[3] & 1) { state->m_sc3_tilemap_0->draw(bitmap, cliprect, 0,0); }
+ if(m_jm_vregs[0] & 1) { m_sc0_tilemap_0->draw(bitmap, cliprect, 0,0); }
+ if(m_jm_vregs[3] & 1) { m_sc3_tilemap_0->draw(bitmap, cliprect, 0,0); }
return 0;
}
@@ -1417,7 +1417,7 @@ static MACHINE_CONFIG_START( jalmah, jalmah_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(jalmah)
+ MCFG_SCREEN_UPDATE_DRIVER(jalmah_state, screen_update_jalmah)
MCFG_PALETTE_LENGTH(0x400)
@@ -1438,7 +1438,7 @@ static MACHINE_CONFIG_DERIVED( urashima, jalmah )
MCFG_VIDEO_START_OVERRIDE(jalmah_state,urashima)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(urashima)
+ MCFG_SCREEN_UPDATE_DRIVER(jalmah_state, screen_update_urashima)
MACHINE_CONFIG_END
/*
diff --git a/src/mame/drivers/jangou.c b/src/mame/drivers/jangou.c
index b43f84508ce..8fc02ceb217 100644
--- a/src/mame/drivers/jangou.c
+++ b/src/mame/drivers/jangou.c
@@ -89,6 +89,7 @@ public:
DECLARE_MACHINE_RESET(jngolady);
DECLARE_MACHINE_START(common);
DECLARE_MACHINE_RESET(common);
+ UINT32 screen_update_jangou(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -145,14 +146,13 @@ void jangou_state::video_start()
save_item(NAME(m_blit_buffer));
}
-static SCREEN_UPDATE_IND16( jangou )
+UINT32 jangou_state::screen_update_jangou(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- jangou_state *state = screen.machine().driver_data<jangou_state>();
int x, y;
for (y = cliprect.min_y; y <= cliprect.max_y; ++y)
{
- UINT8 *src = &state->m_blit_buffer[y * 512 / 2 + cliprect.min_x];
+ UINT8 *src = &m_blit_buffer[y * 512 / 2 + cliprect.min_x];
UINT16 *dst = &bitmap.pix16(y, cliprect.min_x);
for (x = cliprect.min_x; x <= cliprect.max_x; x += 2)
@@ -1005,7 +1005,7 @@ static MACHINE_CONFIG_START( jangou, jangou_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(jangou)
+ MCFG_SCREEN_UPDATE_DRIVER(jangou_state, screen_update_jangou)
MCFG_PALETTE_LENGTH(32)
diff --git a/src/mame/drivers/jantotsu.c b/src/mame/drivers/jantotsu.c
index 242831d192b..3309e783a04 100644
--- a/src/mame/drivers/jantotsu.c
+++ b/src/mame/drivers/jantotsu.c
@@ -130,6 +130,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_jantotsu(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -145,14 +146,13 @@ void jantotsu_state::video_start()
save_item(NAME(m_bitmap));
}
-static SCREEN_UPDATE_RGB32(jantotsu)
+UINT32 jantotsu_state::screen_update_jantotsu(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- jantotsu_state *state = screen.machine().driver_data<jantotsu_state>();
int x, y, i;
int count = 0;
UINT8 pen_i;
- if(!state->m_display_on)
+ if(!m_display_on)
return 0;
for (y = 0; y < 256; y++)
@@ -163,10 +163,10 @@ static SCREEN_UPDATE_RGB32(jantotsu)
for (i = 0; i < 8; i++)
{
- color = state->m_col_bank;
+ color = m_col_bank;
for(pen_i = 0;pen_i<4;pen_i++)
- color |= (((state->m_bitmap[count + pen_i*0x2000]) >> (7 - i)) & 1) << pen_i;
+ color |= (((m_bitmap[count + pen_i*0x2000]) >> (7 - i)) & 1) << pen_i;
if (cliprect.contains(x + i, y))
bitmap.pix32(y, x + i) = screen.machine().pens[color];
@@ -528,7 +528,7 @@ static MACHINE_CONFIG_START( jantotsu, jantotsu_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(jantotsu)
+ MCFG_SCREEN_UPDATE_DRIVER(jantotsu_state, screen_update_jantotsu)
MCFG_PALETTE_LENGTH(0x20)
diff --git a/src/mame/drivers/jchan.c b/src/mame/drivers/jchan.c
index 327405acd8d..2560e721ae7 100644
--- a/src/mame/drivers/jchan.c
+++ b/src/mame/drivers/jchan.c
@@ -224,6 +224,7 @@ public:
DECLARE_DRIVER_INIT(jchan);
virtual void video_start();
+ UINT32 screen_update_jchan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -295,9 +296,8 @@ void jchan_state::video_start()
-static SCREEN_UPDATE_IND16(jchan)
+UINT32 jchan_state::screen_update_jchan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- jchan_state *state = screen.machine().driver_data<jchan_state>();
int x,y;
UINT16* src1;
UINT16* src2;
@@ -309,24 +309,24 @@ static SCREEN_UPDATE_IND16(jchan)
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_view2_0->kaneko16_prepare(bitmap, cliprect);
+ m_view2_0->kaneko16_prepare(bitmap, cliprect);
for ( int i = 0; i < 8; i++ )
{
- state->m_view2_0->render_tilemap_chip(bitmap,cliprect,i);
+ m_view2_0->render_tilemap_chip(bitmap,cliprect,i);
}
- state->m_sprite_bitmap_1->fill(0x0000, cliprect);
- state->m_sprite_bitmap_2->fill(0x0000, cliprect);
+ m_sprite_bitmap_1->fill(0x0000, cliprect);
+ m_sprite_bitmap_2->fill(0x0000, cliprect);
- state->m_spritegen1->skns_draw_sprites(screen.machine(), *state->m_sprite_bitmap_1, cliprect, state->m_sprite_ram32_1, 0x4000, screen.machine().root_device().memregion("gfx1")->base(), screen.machine().root_device().memregion ("gfx1")->bytes(), state->m_sprite_regs32_1 );
- state->m_spritegen2->skns_draw_sprites(screen.machine(), *state->m_sprite_bitmap_2, cliprect, state->m_sprite_ram32_2, 0x4000, screen.machine().root_device().memregion("gfx2")->base(), state->memregion ("gfx2")->bytes(), state->m_sprite_regs32_2 );
+ m_spritegen1->skns_draw_sprites(screen.machine(), *m_sprite_bitmap_1, cliprect, m_sprite_ram32_1, 0x4000, screen.machine().root_device().memregion("gfx1")->base(), screen.machine().root_device().memregion ("gfx1")->bytes(), m_sprite_regs32_1 );
+ m_spritegen2->skns_draw_sprites(screen.machine(), *m_sprite_bitmap_2, cliprect, m_sprite_ram32_2, 0x4000, screen.machine().root_device().memregion("gfx2")->base(), memregion ("gfx2")->bytes(), m_sprite_regs32_2 );
// ignoring priority bits for now - might use alpha too, check 0x8000 of palette writes
for (y=0;y<240;y++)
{
- src1 = &state->m_sprite_bitmap_1->pix16(y);
- src2 = &state->m_sprite_bitmap_2->pix16(y);
+ src1 = &m_sprite_bitmap_1->pix16(y);
+ src2 = &m_sprite_bitmap_2->pix16(y);
dst = &bitmap.pix16(y);
for (x=0;x<320;x++)
@@ -612,7 +612,7 @@ static MACHINE_CONFIG_START( jchan, jchan_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(jchan)
+ MCFG_SCREEN_UPDATE_DRIVER(jchan_state, screen_update_jchan)
MCFG_PALETTE_LENGTH(0x10000)
diff --git a/src/mame/drivers/jclub2.c b/src/mame/drivers/jclub2.c
index 5029616c5f4..97e7134c85b 100644
--- a/src/mame/drivers/jclub2.c
+++ b/src/mame/drivers/jclub2.c
@@ -143,6 +143,9 @@ public:
DECLARE_VIDEO_START(darkhors);
DECLARE_VIDEO_START(jclub2);
DECLARE_VIDEO_START(jclub2o);
+ UINT32 screen_update_darkhors(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_jclub2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_jclub2o(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -157,7 +160,7 @@ public:
***************************************************************************/
-static SCREEN_UPDATE_IND16( darkhors );
+
TILE_GET_INFO_MEMBER(darkhors_state::get_tile_info_0)
@@ -230,9 +233,8 @@ VIDEO_START_MEMBER(darkhors_state,darkhors)
machine().gfx[0]->set_granularity(64); /* 256 colour sprites with palette selectable on 64 colour boundaries */
}
-static SCREEN_UPDATE_IND16( darkhors )
+UINT32 darkhors_state::screen_update_darkhors(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- darkhors_state *state = screen.machine().driver_data<darkhors_state>();
int layers_ctrl = -1;
#if DARKHORS_DEBUG
@@ -248,25 +250,25 @@ static SCREEN_UPDATE_IND16( darkhors )
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- state->m_tmap->set_scrollx(0, (state->m_tmapscroll[0] >> 16) - 5);
- state->m_tmap->set_scrolly(0, (state->m_tmapscroll[0] & 0xffff) - 0xff );
- if (layers_ctrl & 1) state->m_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ m_tmap->set_scrollx(0, (m_tmapscroll[0] >> 16) - 5);
+ m_tmap->set_scrolly(0, (m_tmapscroll[0] & 0xffff) - 0xff );
+ if (layers_ctrl & 1) m_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- state->m_tmap2->set_scrollx(0, (state->m_tmapscroll2[0] >> 16) - 5);
- state->m_tmap2->set_scrolly(0, (state->m_tmapscroll2[0] & 0xffff) - 0xff );
- if (layers_ctrl & 2) state->m_tmap2->draw(bitmap, cliprect, 0, 0);
+ m_tmap2->set_scrollx(0, (m_tmapscroll2[0] >> 16) - 5);
+ m_tmap2->set_scrolly(0, (m_tmapscroll2[0] & 0xffff) - 0xff );
+ if (layers_ctrl & 2) m_tmap2->draw(bitmap, cliprect, 0, 0);
if (layers_ctrl & 4) draw_sprites(screen.machine(),bitmap,cliprect);
#if DARKHORS_DEBUG
#if 0
popmessage("%04X-%04X %04X-%04X %04X-%04X %04X-%04X %04X-%04X %04X-%04X",
- state->m_tmapscroll[0] >> 16, state->m_tmapscroll[0] & 0xffff,
- state->m_tmapscroll[1] >> 16, state->m_tmapscroll[1] & 0xffff,
- state->m_tmapscroll[2] >> 16, state->m_tmapscroll[2] & 0xffff,
- state->m_tmapscroll[3] >> 16, state->m_tmapscroll[3] & 0xffff,
- state->m_tmapscroll[4] >> 16, state->m_tmapscroll[4] & 0xffff,
- state->m_tmapscroll[5] >> 16, state->m_tmapscroll[5] & 0xffff
+ m_tmapscroll[0] >> 16, m_tmapscroll[0] & 0xffff,
+ m_tmapscroll[1] >> 16, m_tmapscroll[1] & 0xffff,
+ m_tmapscroll[2] >> 16, m_tmapscroll[2] & 0xffff,
+ m_tmapscroll[3] >> 16, m_tmapscroll[3] & 0xffff,
+ m_tmapscroll[4] >> 16, m_tmapscroll[4] & 0xffff,
+ m_tmapscroll[5] >> 16, m_tmapscroll[5] & 0xffff
);
#endif
#endif
@@ -698,7 +700,7 @@ static MACHINE_CONFIG_START( darkhors, darkhors_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x190, 0x100+16)
MCFG_SCREEN_VISIBLE_AREA(0, 0x190-1, 8, 0x100-8-1)
- MCFG_SCREEN_UPDATE_STATIC(darkhors)
+ MCFG_SCREEN_UPDATE_DRIVER(darkhors_state, screen_update_darkhors)
MCFG_GFXDECODE(darkhors)
MCFG_PALETTE_LENGTH(0x10000)
@@ -719,12 +721,11 @@ VIDEO_START_MEMBER(darkhors_state,jclub2)
}
-static SCREEN_UPDATE_IND16(jclub2)
+UINT32 darkhors_state::screen_update_jclub2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- darkhors_state *state = screen.machine().driver_data<darkhors_state>();
// this isn't an st0020..
- state->m_gdfs_st0020->st0020_draw_all(screen.machine(), bitmap, cliprect);
+ m_gdfs_st0020->st0020_draw_all(screen.machine(), bitmap, cliprect);
return 0;
}
@@ -742,7 +743,7 @@ static MACHINE_CONFIG_START( jclub2, darkhors_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x190, 0x100+16)
MCFG_SCREEN_VISIBLE_AREA(0, 0x190-1, 8, 0x100-8-1)
- MCFG_SCREEN_UPDATE_STATIC(jclub2)
+ MCFG_SCREEN_UPDATE_DRIVER(darkhors_state, screen_update_jclub2)
// NOT an ST0020 but instead ST0032, ram format isn't compatible at least
MCFG_DEVICE_ADD("st0020_spr", ST0020_SPRITES, 0)
@@ -785,10 +786,9 @@ VIDEO_START_MEMBER(darkhors_state,jclub2o)
}
-static SCREEN_UPDATE_IND16(jclub2o)
+UINT32 darkhors_state::screen_update_jclub2o(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- darkhors_state *state = screen.machine().driver_data<darkhors_state>();
- state->m_gdfs_st0020->st0020_draw_all(screen.machine(), bitmap, cliprect);
+ m_gdfs_st0020->st0020_draw_all(screen.machine(), bitmap, cliprect);
return 0;
}
@@ -810,7 +810,7 @@ static MACHINE_CONFIG_START( jclub2o, darkhors_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x190, 0x100)
MCFG_SCREEN_VISIBLE_AREA(0, 0x190-1, 8, 0x100-8-1)
- MCFG_SCREEN_UPDATE_STATIC(jclub2o)
+ MCFG_SCREEN_UPDATE_DRIVER(darkhors_state, screen_update_jclub2o)
MCFG_PALETTE_LENGTH(0x10000)
MCFG_DEVICE_ADD("st0020_spr", ST0020_SPRITES, 0)
diff --git a/src/mame/drivers/jokrwild.c b/src/mame/drivers/jokrwild.c
index 20d8329c0f8..75d80b157c1 100644
--- a/src/mame/drivers/jokrwild.c
+++ b/src/mame/drivers/jokrwild.c
@@ -117,6 +117,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_jokrwild(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -160,10 +161,9 @@ void jokrwild_state::video_start()
}
-static SCREEN_UPDATE_IND16( jokrwild )
+UINT32 jokrwild_state::screen_update_jokrwild(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- jokrwild_state *state = screen.machine().driver_data<jokrwild_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -493,7 +493,7 @@ static MACHINE_CONFIG_START( jokrwild, jokrwild_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE((32+1)*8, (32+1)*8) /* From MC6845, registers 00 & 04. (value-1) */
MCFG_SCREEN_VISIBLE_AREA(0*8, 24*8-1, 0*8, 26*8-1) /* From MC6845, registers 01 & 06 */
- MCFG_SCREEN_UPDATE_STATIC(jokrwild)
+ MCFG_SCREEN_UPDATE_DRIVER(jokrwild_state, screen_update_jokrwild)
MCFG_GFXDECODE(jokrwild)
MCFG_PALETTE_LENGTH(512)
diff --git a/src/mame/drivers/jollyjgr.c b/src/mame/drivers/jollyjgr.c
index 1856db7ae6e..fdd105ed7dd 100644
--- a/src/mame/drivers/jollyjgr.c
+++ b/src/mame/drivers/jollyjgr.c
@@ -139,6 +139,8 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_jollyjgr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_fspider(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -492,26 +494,25 @@ static void draw_bitmap( running_machine &machine, bitmap_ind16 &bitmap )
}
}
-static SCREEN_UPDATE_IND16( jollyjgr )
+UINT32 jollyjgr_state::screen_update_jollyjgr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- jollyjgr_state *state = screen.machine().driver_data<jollyjgr_state>();
- UINT8 *spriteram = state->m_spriteram;
+ UINT8 *spriteram = m_spriteram;
int offs;
bitmap.fill(32, cliprect);
- if(state->m_pri) //used in Frog & Spiders level 3
+ if(m_pri) //used in Frog & Spiders level 3
{
- if(!(state->m_bitmap_disable))
+ if(!(m_bitmap_disable))
draw_bitmap(screen.machine(), bitmap);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
}
else
{
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- if(!(state->m_bitmap_disable))
+ if(!(m_bitmap_disable))
draw_bitmap(screen.machine(), bitmap);
}
@@ -525,13 +526,13 @@ static SCREEN_UPDATE_IND16( jollyjgr )
int code = spriteram[offs + 1] & 0x3f;
int color = spriteram[offs + 2] & 7;
- if (state->m_flip_x)
+ if (m_flip_x)
{
sx = 240 - sx;
flipx = !flipx;
}
- if (state->m_flip_y)
+ if (m_flip_y)
flipy = !flipy;
else
sy = 240 - sy;
@@ -548,26 +549,25 @@ static SCREEN_UPDATE_IND16( jollyjgr )
return 0;
}
-static SCREEN_UPDATE_IND16( fspider )
+UINT32 jollyjgr_state::screen_update_fspider(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- jollyjgr_state *state = screen.machine().driver_data<jollyjgr_state>();
// Draw bg and sprites
- SCREEN_UPDATE16_CALL(jollyjgr);
+ SCREEN_UPDATE16_CALL_MEMBER(jollyjgr);
/* Draw bullets
16 bytes, 2 bytes per bullet (y,x). 2 player bullets, 6 enemy bullets.
Assume bullets to look the same as on Galaxian hw,
that is, simply 4 pixels. Colours are unknown. */
for (int offs=0;offs<0x10;offs+=2) {
- UINT8 sy=~state->m_bulletram[offs];
- UINT8 sx=~state->m_bulletram[offs|1];
+ UINT8 sy=~m_bulletram[offs];
+ UINT8 sx=~m_bulletram[offs|1];
UINT16 bc=(offs<4)?
32+7: // player, white
32+3; // enemy, yellow
- if (state->m_flip_y) sy^=0xff;
- if (state->m_flip_x) sx+=8;
+ if (m_flip_y) sy^=0xff;
+ if (m_flip_x) sx+=8;
if (sy>=cliprect.min_y && sy<=cliprect.max_y)
for (int x=sx-4;x<sx;x++)
@@ -663,7 +663,7 @@ static MACHINE_CONFIG_START( jollyjgr, jollyjgr_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(jollyjgr)
+ MCFG_SCREEN_UPDATE_DRIVER(jollyjgr_state, screen_update_jollyjgr)
MCFG_GFXDECODE(jollyjgr)
MCFG_PALETTE_LENGTH(32+8) /* 32 for tilemap and sprites + 8 for the bitmap */
@@ -682,7 +682,7 @@ static MACHINE_CONFIG_DERIVED( fspider, jollyjgr )
MCFG_CPU_PROGRAM_MAP(fspider_map)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(fspider)
+ MCFG_SCREEN_UPDATE_DRIVER(jollyjgr_state, screen_update_fspider)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/jongkyo.c b/src/mame/drivers/jongkyo.c
index bc34064580d..4e4678b44ce 100644
--- a/src/mame/drivers/jongkyo.c
+++ b/src/mame/drivers/jongkyo.c
@@ -58,6 +58,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_jongkyo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -72,9 +73,8 @@ void jongkyo_state::video_start()
}
-static SCREEN_UPDATE_IND16( jongkyo )
+UINT32 jongkyo_state::screen_update_jongkyo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- jongkyo_state *state = screen.machine().driver_data<jongkyo_state>();
int y;
for (y = 0; y < 256; ++y)
@@ -88,7 +88,7 @@ static SCREEN_UPDATE_IND16( jongkyo )
UINT8 data2;
UINT8 data3;
- // data3 = state->m_videoram2[x/4 + y*64]; // wrong
+ // data3 = m_videoram2[x/4 + y*64]; // wrong
// good mahjong tiles
data3 = 0x0f; // we're missing 2 bits.. there must be another piece of video ram somewhere or we can't use all the colours (6bpp).. banked somehow?
@@ -97,8 +97,8 @@ static SCREEN_UPDATE_IND16( jongkyo )
- data1 = state->m_videoram[0x4000 + x / 4 + y * 64];
- data2 = state->m_videoram[x / 4 + y * 64];
+ data1 = m_videoram[0x4000 + x / 4 + y * 64];
+ data2 = m_videoram[x / 4 + y * 64];
for (b = 0; b < 4; ++b)
{
@@ -503,7 +503,7 @@ static MACHINE_CONFIG_START( jongkyo, jongkyo_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 8, 256-8-1)
- MCFG_SCREEN_UPDATE_STATIC(jongkyo)
+ MCFG_SCREEN_UPDATE_DRIVER(jongkyo_state, screen_update_jongkyo)
MCFG_PALETTE_LENGTH(0x100)
diff --git a/src/mame/drivers/jpmsys5.c b/src/mame/drivers/jpmsys5.c
index a1035e1f1b6..9c91bce3a11 100644
--- a/src/mame/drivers/jpmsys5.c
+++ b/src/mame/drivers/jpmsys5.c
@@ -103,6 +103,7 @@ public:
DECLARE_VIDEO_START(jpmsys5v);
DECLARE_MACHINE_START(jpmsys5);
DECLARE_MACHINE_RESET(jpmsys5);
+ UINT32 screen_update_jpmsys5v(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -223,7 +224,7 @@ VIDEO_START_MEMBER(jpmsys5_state,jpmsys5v)
tms34061_start(machine(), &tms34061intf);
}
-static SCREEN_UPDATE_RGB32( jpmsys5v )
+UINT32 jpmsys5_state::screen_update_jpmsys5v(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
int x, y;
struct tms34061_display state;
@@ -723,7 +724,7 @@ static MACHINE_CONFIG_START( jpmsys5v, jpmsys5_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL_40MHz / 4, 676, 20*4, 147*4, 256, 0, 254)
- MCFG_SCREEN_UPDATE_STATIC(jpmsys5v)
+ MCFG_SCREEN_UPDATE_DRIVER(jpmsys5_state, screen_update_jpmsys5v)
MCFG_VIDEO_START_OVERRIDE(jpmsys5_state,jpmsys5v)
diff --git a/src/mame/drivers/jrpacman.c b/src/mame/drivers/jrpacman.c
index d99673fb3b9..9392bca9f3d 100644
--- a/src/mame/drivers/jrpacman.c
+++ b/src/mame/drivers/jrpacman.c
@@ -302,7 +302,7 @@ static MACHINE_CONFIG_START( jrpacman, jrpacman_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(36*8, 28*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pacman)
+ MCFG_SCREEN_UPDATE_DRIVER(jrpacman_state, screen_update_pacman)
MCFG_GFXDECODE(jrpacman)
MCFG_PALETTE_LENGTH(128*4)
diff --git a/src/mame/drivers/jubilee.c b/src/mame/drivers/jubilee.c
index b4937a846b4..bba2fd6cc89 100644
--- a/src/mame/drivers/jubilee.c
+++ b/src/mame/drivers/jubilee.c
@@ -104,6 +104,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_jubileep(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -134,10 +135,9 @@ void jubilee_state::video_start()
}
-static SCREEN_UPDATE_IND16( jubileep )
+UINT32 jubilee_state::screen_update_jubileep(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- jubilee_state *state = screen.machine().driver_data<jubilee_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -425,7 +425,7 @@ static MACHINE_CONFIG_START( jubileep, jubilee_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(jubileep)
+ MCFG_SCREEN_UPDATE_DRIVER(jubilee_state, screen_update_jubileep)
MCFG_GFXDECODE(jubileep)
diff --git a/src/mame/drivers/junofrst.c b/src/mame/drivers/junofrst.c
index c9186294c1d..e7f5911355d 100644
--- a/src/mame/drivers/junofrst.c
+++ b/src/mame/drivers/junofrst.c
@@ -451,7 +451,7 @@ static MACHINE_CONFIG_START( junofrst, junofrst_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) /* not sure about the visible area */
- MCFG_SCREEN_UPDATE_STATIC(tutankhm)
+ MCFG_SCREEN_UPDATE_DRIVER(junofrst_state, screen_update_tutankhm)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/kaneko16.c b/src/mame/drivers/kaneko16.c
index 926942eb965..8011d2a6777 100644
--- a/src/mame/drivers/kaneko16.c
+++ b/src/mame/drivers/kaneko16.c
@@ -1654,7 +1654,7 @@ static MACHINE_CONFIG_START( berlwall, kaneko16_berlwall_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(berlwall)
+ MCFG_SCREEN_UPDATE_DRIVER(kaneko16_berlwall_state, screen_update_berlwall)
MCFG_GFXDECODE(1x4bit_1x4bit)
MCFG_PALETTE_LENGTH(2048 + 32768) /* 32768 static colors for the bg */
@@ -1708,7 +1708,7 @@ static MACHINE_CONFIG_START( bakubrkr, kaneko16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(kaneko16)
+ MCFG_SCREEN_UPDATE_DRIVER(kaneko16_berlwall_state, screen_update_kaneko16)
MCFG_GFXDECODE(1x4bit_2x4bit)
MCFG_PALETTE_LENGTH(2048)
@@ -1777,7 +1777,7 @@ static MACHINE_CONFIG_START( blazeon, kaneko16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1 -8)
- MCFG_SCREEN_UPDATE_STATIC(kaneko16)
+ MCFG_SCREEN_UPDATE_DRIVER(kaneko16_berlwall_state, screen_update_kaneko16)
MCFG_GFXDECODE(1x4bit_1x4bit)
MCFG_PALETTE_LENGTH(2048)
@@ -1837,7 +1837,7 @@ static MACHINE_CONFIG_START( gtmr, kaneko16_gtmr_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(kaneko16)
+ MCFG_SCREEN_UPDATE_DRIVER(kaneko16_berlwall_state, screen_update_kaneko16)
MCFG_GFXDECODE(1x8bit_2x4bit)
MCFG_PALETTE_LENGTH(32768)
@@ -1955,7 +1955,7 @@ static MACHINE_CONFIG_START( mgcrystl, kaneko16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(kaneko16)
+ MCFG_SCREEN_UPDATE_DRIVER(kaneko16_berlwall_state, screen_update_kaneko16)
MCFG_GFXDECODE(1x4bit_2x4bit)
MCFG_PALETTE_LENGTH(2048)
@@ -2079,7 +2079,7 @@ static MACHINE_CONFIG_START( shogwarr, kaneko16_shogwarr_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(40, 296-1, 16, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(kaneko16)
+ MCFG_SCREEN_UPDATE_DRIVER(kaneko16_berlwall_state, screen_update_kaneko16)
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_AFTER_VBLANK)
diff --git a/src/mame/drivers/kangaroo.c b/src/mame/drivers/kangaroo.c
index 6c769c715ab..3521ed42d1f 100644
--- a/src/mame/drivers/kangaroo.c
+++ b/src/mame/drivers/kangaroo.c
@@ -441,7 +441,7 @@ static MACHINE_CONFIG_START( nomcu, kangaroo_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK, 320*2, 0*2, 256*2, 260, 8, 248)
- MCFG_SCREEN_UPDATE_STATIC(kangaroo)
+ MCFG_SCREEN_UPDATE_DRIVER(kangaroo_state, screen_update_kangaroo)
/* sound hardware */
diff --git a/src/mame/drivers/karnov.c b/src/mame/drivers/karnov.c
index f8940b50377..d30a73c4476 100644
--- a/src/mame/drivers/karnov.c
+++ b/src/mame/drivers/karnov.c
@@ -820,7 +820,7 @@ static MACHINE_CONFIG_START( karnov, karnov_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(karnov)
+ MCFG_SCREEN_UPDATE_DRIVER(karnov_state, screen_update_karnov)
MCFG_GFXDECODE(karnov)
MCFG_PALETTE_LENGTH(1024)
@@ -861,7 +861,7 @@ static MACHINE_CONFIG_START( wndrplnt, karnov_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(karnov)
+ MCFG_SCREEN_UPDATE_DRIVER(karnov_state, screen_update_karnov)
MCFG_GFXDECODE(karnov)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/kchamp.c b/src/mame/drivers/kchamp.c
index 8016d090e52..61392ce8b66 100644
--- a/src/mame/drivers/kchamp.c
+++ b/src/mame/drivers/kchamp.c
@@ -430,7 +430,7 @@ static MACHINE_CONFIG_START( kchampvs, kchamp_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(kchampvs)
+ MCFG_SCREEN_UPDATE_DRIVER(kchamp_state, screen_update_kchampvs)
MCFG_GFXDECODE(kchamp)
MCFG_PALETTE_LENGTH(256)
@@ -477,7 +477,7 @@ static MACHINE_CONFIG_START( kchamp, kchamp_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(kchamp)
+ MCFG_SCREEN_UPDATE_DRIVER(kchamp_state, screen_update_kchamp)
MCFG_GFXDECODE(kchamp)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/kickgoal.c b/src/mame/drivers/kickgoal.c
index a6b47fdfdec..5fa5bd621b6 100644
--- a/src/mame/drivers/kickgoal.c
+++ b/src/mame/drivers/kickgoal.c
@@ -666,7 +666,7 @@ static MACHINE_CONFIG_START( kickgoal, kickgoal_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(9*8, 55*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(kickgoal)
+ MCFG_SCREEN_UPDATE_DRIVER(kickgoal_state, screen_update_kickgoal)
MCFG_GFXDECODE(kickgoal)
MCFG_PALETTE_LENGTH(1024)
@@ -701,7 +701,7 @@ static MACHINE_CONFIG_START( actionhw, kickgoal_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(10*8+2, 54*8-1+2, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(kickgoal)
+ MCFG_SCREEN_UPDATE_DRIVER(kickgoal_state, screen_update_kickgoal)
MCFG_GFXDECODE(actionhw)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/kingdrby.c b/src/mame/drivers/kingdrby.c
index 90b88b2b288..fea27bdddd2 100644
--- a/src/mame/drivers/kingdrby.c
+++ b/src/mame/drivers/kingdrby.c
@@ -110,6 +110,7 @@ public:
virtual void video_start();
DECLARE_PALETTE_INIT(kingdrby);
DECLARE_PALETTE_INIT(kingdrbb);
+ UINT32 screen_update_kingdrby(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -227,25 +228,24 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-static SCREEN_UPDATE_IND16(kingdrby)
+UINT32 kingdrby_state::screen_update_kingdrby(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- kingdrby_state *state = screen.machine().driver_data<kingdrby_state>();
const rectangle &visarea = screen.visible_area();
rectangle clip;
- state->m_sc0_tilemap->set_scrollx(0, state->m_vram[0x342]);
- state->m_sc0_tilemap->set_scrolly(0, state->m_vram[0x341]);
- state->m_sc1_tilemap->set_scrollx(0, state->m_vram[0x342]);
- state->m_sc1_tilemap->set_scrolly(0, state->m_vram[0x341]);
- state->m_sc0w_tilemap->set_scrolly(0, 32);
+ m_sc0_tilemap->set_scrollx(0, m_vram[0x342]);
+ m_sc0_tilemap->set_scrolly(0, m_vram[0x341]);
+ m_sc1_tilemap->set_scrollx(0, m_vram[0x342]);
+ m_sc1_tilemap->set_scrolly(0, m_vram[0x341]);
+ m_sc0w_tilemap->set_scrolly(0, 32);
/* maybe it needs two window tilemaps? (one at the top, the other at the bottom)*/
clip.set(visarea.min_x, 256, 192, visarea.max_y);
/*TILEMAP_DRAW_CATEGORY + TILEMAP_DRAW_OPAQUE doesn't suit well?*/
- state->m_sc0_tilemap->draw(bitmap, cliprect, 0,0);
+ m_sc0_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(),bitmap,cliprect);
- state->m_sc1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1),0);
- state->m_sc0w_tilemap->draw(bitmap, clip, 0,0);
+ m_sc1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1),0);
+ m_sc0w_tilemap->draw(bitmap, clip, 0,0);
return 0;
}
@@ -1044,7 +1044,7 @@ static MACHINE_CONFIG_START( kingdrby, kingdrby_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 224-1) /* controlled by CRTC */
- MCFG_SCREEN_UPDATE_STATIC(kingdrby)
+ MCFG_SCREEN_UPDATE_DRIVER(kingdrby_state, screen_update_kingdrby)
MCFG_MC6845_ADD("crtc", MC6845, CLK_1/32, mc6845_intf) /* 53.333 Hz. guess */
diff --git a/src/mame/drivers/kingobox.c b/src/mame/drivers/kingobox.c
index f9d2b8c499a..f75951f2001 100644
--- a/src/mame/drivers/kingobox.c
+++ b/src/mame/drivers/kingobox.c
@@ -497,7 +497,7 @@ static MACHINE_CONFIG_START( kingofb, kingofb_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(kingofb)
+ MCFG_SCREEN_UPDATE_DRIVER(kingofb_state, screen_update_kingofb)
MCFG_GFXDECODE(kingobox)
MCFG_PALETTE_LENGTH(256+8*2)
@@ -547,7 +547,7 @@ static MACHINE_CONFIG_START( ringking, kingofb_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(ringking)
+ MCFG_SCREEN_UPDATE_DRIVER(kingofb_state, screen_update_ringking)
MCFG_GFXDECODE(rk)
MCFG_PALETTE_LENGTH(256+8*2)
diff --git a/src/mame/drivers/kinst.c b/src/mame/drivers/kinst.c
index 363e0af6ea2..ca40e2bc767 100644
--- a/src/mame/drivers/kinst.c
+++ b/src/mame/drivers/kinst.c
@@ -162,6 +162,7 @@ public:
DECLARE_DRIVER_INIT(kinst2);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_kinst(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -242,15 +243,14 @@ void kinst_state::machine_reset()
*
*************************************/
-static SCREEN_UPDATE_IND16( kinst )
+UINT32 kinst_state::screen_update_kinst(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- kinst_state *state = screen.machine().driver_data<kinst_state>();
int y;
/* loop over rows and copy to the destination */
for (y = cliprect.min_y; y <= cliprect.max_y; y++)
{
- UINT32 *src = &state->m_video_base[640/4 * y];
+ UINT32 *src = &m_video_base[640/4 * y];
UINT16 *dest = &bitmap.pix16(y, cliprect.min_x);
int x;
@@ -688,7 +688,7 @@ static MACHINE_CONFIG_START( kinst, kinst_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(kinst)
+ MCFG_SCREEN_UPDATE_DRIVER(kinst_state, screen_update_kinst)
MCFG_PALETTE_INIT(BBBBB_GGGGG_RRRRR)
MCFG_PALETTE_LENGTH(32768)
diff --git a/src/mame/drivers/klax.c b/src/mame/drivers/klax.c
index c2761bcda8e..a4b15f8c01b 100644
--- a/src/mame/drivers/klax.c
+++ b/src/mame/drivers/klax.c
@@ -184,7 +184,7 @@ static MACHINE_CONFIG_START( klax, klax_state )
/* note: these parameters are from published specs, not derived */
/* the board uses an SOS-2 chip to generate video signals */
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(klax)
+ MCFG_SCREEN_UPDATE_DRIVER(klax_state, screen_update_klax)
MCFG_VIDEO_START_OVERRIDE(klax_state,klax)
diff --git a/src/mame/drivers/kncljoe.c b/src/mame/drivers/kncljoe.c
index d00b7297739..75d3081668d 100644
--- a/src/mame/drivers/kncljoe.c
+++ b/src/mame/drivers/kncljoe.c
@@ -305,7 +305,7 @@ static MACHINE_CONFIG_START( kncljoe, kncljoe_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1500))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(kncljoe)
+ MCFG_SCREEN_UPDATE_DRIVER(kncljoe_state, screen_update_kncljoe)
MCFG_GFXDECODE(kncljoe)
MCFG_PALETTE_LENGTH(16*8+16*8)
diff --git a/src/mame/drivers/koftball.c b/src/mame/drivers/koftball.c
index 854c753defa..def63f857c0 100644
--- a/src/mame/drivers/koftball.c
+++ b/src/mame/drivers/koftball.c
@@ -65,6 +65,7 @@ public:
TILE_GET_INFO_MEMBER(get_t1_tile_info);
TILE_GET_INFO_MEMBER(get_t2_tile_info);
virtual void video_start();
+ UINT32 screen_update_koftball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -96,11 +97,10 @@ void koftball_state::video_start()
m_tilemap_1->set_transparent_pen(0);
}
-static SCREEN_UPDATE_IND16( koftball )
+UINT32 koftball_state::screen_update_koftball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- koftball_state *state = screen.machine().driver_data<koftball_state>();
- state->m_tilemap_2->draw(bitmap, cliprect, 0, 0);
- state->m_tilemap_1->draw(bitmap, cliprect, 0, 0);
+ m_tilemap_2->draw(bitmap, cliprect, 0, 0);
+ m_tilemap_1->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -248,7 +248,7 @@ static MACHINE_CONFIG_START( koftball, koftball_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_UPDATE_STATIC(koftball)
+ MCFG_SCREEN_UPDATE_DRIVER(koftball_state, screen_update_koftball)
MCFG_GFXDECODE(koftball)
diff --git a/src/mame/drivers/koikoi.c b/src/mame/drivers/koikoi.c
index e372735ed5c..4ccb6495ae1 100644
--- a/src/mame/drivers/koikoi.c
+++ b/src/mame/drivers/koikoi.c
@@ -73,6 +73,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_koikoi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -142,10 +143,9 @@ void koikoi_state::video_start()
m_tmap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(koikoi_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
-static SCREEN_UPDATE_IND16(koikoi)
+UINT32 koikoi_state::screen_update_koikoi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- koikoi_state *state = screen.machine().driver_data<koikoi_state>();
- state->m_tmap->draw(bitmap, cliprect, 0, 0);
+ m_tmap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -374,7 +374,7 @@ static MACHINE_CONFIG_START( koikoi, koikoi_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(koikoi)
+ MCFG_SCREEN_UPDATE_DRIVER(koikoi_state, screen_update_koikoi)
MCFG_GFXDECODE(koikoi)
MCFG_PALETTE_LENGTH(8*32)
diff --git a/src/mame/drivers/konamigx.c b/src/mame/drivers/konamigx.c
index 805b337d1f0..a5a3af18506 100644
--- a/src/mame/drivers/konamigx.c
+++ b/src/mame/drivers/konamigx.c
@@ -1789,7 +1789,7 @@ static MACHINE_CONFIG_START( konamigx, konamigx_state )
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(600))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(24, 24+288-1, 16, 16+224-1)
- MCFG_SCREEN_UPDATE_STATIC(konamigx)
+ MCFG_SCREEN_UPDATE_DRIVER(konamigx_state, screen_update_konamigx)
MCFG_PALETTE_LENGTH(8192)
@@ -1869,13 +1869,13 @@ static MACHINE_CONFIG_DERIVED( gxtype3, konamigx )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_SIZE(576, 264)
MCFG_SCREEN_VISIBLE_AREA(0, 576-1, 16, 32*8-1-16)
- MCFG_SCREEN_UPDATE_STATIC(konamigx_left)
+ MCFG_SCREEN_UPDATE_DRIVER(konamigx_state, screen_update_konamigx_left)
MCFG_SCREEN_ADD("screen2", RASTER)
MCFG_SCREEN_RAW_PARAMS(6000000, 288+16+32+48, 0, 287, 224+16+8+16, 0, 223)
MCFG_SCREEN_SIZE(576, 264)
MCFG_SCREEN_VISIBLE_AREA(0, 576-1, 16, 32*8-1-16)
- MCFG_SCREEN_UPDATE_STATIC(konamigx_right)
+ MCFG_SCREEN_UPDATE_DRIVER(konamigx_state, screen_update_konamigx_right)
MCFG_GFXDECODE(type34)
MACHINE_CONFIG_END
@@ -1894,13 +1894,13 @@ static MACHINE_CONFIG_DERIVED( gxtype4, konamigx )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_SIZE(128*8, 264)
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 32*8-1-16)
- MCFG_SCREEN_UPDATE_STATIC(konamigx_left)
+ MCFG_SCREEN_UPDATE_DRIVER(konamigx_state, screen_update_konamigx_left)
MCFG_SCREEN_ADD("screen2", RASTER)
MCFG_SCREEN_RAW_PARAMS(6000000, 288+16+32+48, 0, 287, 224+16+8+16, 0, 223)
MCFG_SCREEN_SIZE(128*8, 264)
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 16, 32*8-1-16)
- MCFG_SCREEN_UPDATE_STATIC(konamigx_right)
+ MCFG_SCREEN_UPDATE_DRIVER(konamigx_state, screen_update_konamigx_right)
MCFG_PALETTE_LENGTH(8192)
MCFG_GFXDECODE(type4)
diff --git a/src/mame/drivers/konamim2.c b/src/mame/drivers/konamim2.c
index 2ac302ff76b..1ffb7b14f33 100644
--- a/src/mame/drivers/konamim2.c
+++ b/src/mame/drivers/konamim2.c
@@ -249,6 +249,7 @@ public:
DECLARE_READ64_MEMBER(cpu_r);
DECLARE_DRIVER_INIT(m2);
virtual void video_start();
+ UINT32 screen_update_m2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -256,20 +257,19 @@ void konamim2_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( m2 )
+UINT32 konamim2_state::screen_update_m2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- konamim2_state *state = screen.machine().driver_data<konamim2_state>();
int i, j;
UINT32 fb_start = 0xffffffff;
- if (state->m_vdl0_address != 0)
+ if (m_vdl0_address != 0)
{
- fb_start = *(UINT32*)&state->m_main_ram[(state->m_vdl0_address - 0x40000000) / 8] - 0x40000000;
+ fb_start = *(UINT32*)&m_main_ram[(m_vdl0_address - 0x40000000) / 8] - 0x40000000;
}
if (fb_start <= 0x800000)
{
- UINT16 *frame = (UINT16*)&state->m_main_ram[fb_start/8];
+ UINT16 *frame = (UINT16*)&m_main_ram[fb_start/8];
for (j=0; j < 384; j++)
{
UINT16 *fb = &frame[(j*512)];
@@ -1184,7 +1184,7 @@ static MACHINE_CONFIG_START( m2, konamim2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383)
- MCFG_SCREEN_UPDATE_STATIC(m2)
+ MCFG_SCREEN_UPDATE_DRIVER(konamim2_state, screen_update_m2)
MCFG_PALETTE_LENGTH(32768)
MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB)
diff --git a/src/mame/drivers/kopunch.c b/src/mame/drivers/kopunch.c
index 80236f41a7e..77d0406858d 100644
--- a/src/mame/drivers/kopunch.c
+++ b/src/mame/drivers/kopunch.c
@@ -198,7 +198,7 @@ static MACHINE_CONFIG_START( kopunch, kopunch_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(kopunch)
+ MCFG_SCREEN_UPDATE_DRIVER(kopunch_state, screen_update_kopunch)
MCFG_GFXDECODE(kopunch)
MCFG_PALETTE_LENGTH(8)
diff --git a/src/mame/drivers/ksayakyu.c b/src/mame/drivers/ksayakyu.c
index 9cbf278c570..d81dc1f4b25 100644
--- a/src/mame/drivers/ksayakyu.c
+++ b/src/mame/drivers/ksayakyu.c
@@ -286,7 +286,7 @@ static MACHINE_CONFIG_START( ksayakyu, ksayakyu_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(ksayakyu)
+ MCFG_SCREEN_UPDATE_DRIVER(ksayakyu_state, screen_update_ksayakyu)
MCFG_GFXDECODE(ksayakyu)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/kyugo.c b/src/mame/drivers/kyugo.c
index f48f01f1fb8..c8457607dac 100644
--- a/src/mame/drivers/kyugo.c
+++ b/src/mame/drivers/kyugo.c
@@ -554,7 +554,7 @@ static MACHINE_CONFIG_START( gyrodine, kyugo_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(kyugo)
+ MCFG_SCREEN_UPDATE_DRIVER(kyugo_state, screen_update_kyugo)
MCFG_GFXDECODE(kyugo)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/labyrunr.c b/src/mame/drivers/labyrunr.c
index a6d35b2b019..bc4e5c3f79b 100644
--- a/src/mame/drivers/labyrunr.c
+++ b/src/mame/drivers/labyrunr.c
@@ -207,7 +207,7 @@ static MACHINE_CONFIG_START( labyrunr, labyrunr_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(37*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 35*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(labyrunr)
+ MCFG_SCREEN_UPDATE_DRIVER(labyrunr_state, screen_update_labyrunr)
MCFG_GFXDECODE(labyrunr)
MCFG_PALETTE_LENGTH(2*8*16*16)
diff --git a/src/mame/drivers/ladybug.c b/src/mame/drivers/ladybug.c
index a74202be6ef..ee008730c58 100644
--- a/src/mame/drivers/ladybug.c
+++ b/src/mame/drivers/ladybug.c
@@ -788,7 +788,7 @@ static MACHINE_CONFIG_START( ladybug, ladybug_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(ladybug)
+ MCFG_SCREEN_UPDATE_DRIVER(ladybug_state, screen_update_ladybug)
MCFG_GFXDECODE(ladybug)
MCFG_PALETTE_LENGTH(4*8+4*16)
@@ -830,8 +830,8 @@ static MACHINE_CONFIG_START( sraider, ladybug_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(sraider)
- MCFG_SCREEN_VBLANK_STATIC(sraider)
+ MCFG_SCREEN_UPDATE_DRIVER(ladybug_state, screen_update_sraider)
+ MCFG_SCREEN_VBLANK_DRIVER(ladybug_state, screen_eof_sraider)
MCFG_GFXDECODE(sraider)
MCFG_PALETTE_LENGTH(4*8+4*16+32+2)
diff --git a/src/mame/drivers/ladyfrog.c b/src/mame/drivers/ladyfrog.c
index 6d461e670bb..ad8b1a209e8 100644
--- a/src/mame/drivers/ladyfrog.c
+++ b/src/mame/drivers/ladyfrog.c
@@ -321,7 +321,7 @@ static MACHINE_CONFIG_START( ladyfrog, ladyfrog_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 29*8-1) // black borders in ladyfrog gameplay are correct
- MCFG_SCREEN_UPDATE_STATIC(ladyfrog)
+ MCFG_SCREEN_UPDATE_DRIVER(ladyfrog_state, screen_update_ladyfrog)
MCFG_GFXDECODE(ladyfrog)
MCFG_PALETTE_LENGTH(512)
diff --git a/src/mame/drivers/laserbas.c b/src/mame/drivers/laserbas.c
index 8baf285bcb4..5b9fa6c248a 100644
--- a/src/mame/drivers/laserbas.c
+++ b/src/mame/drivers/laserbas.c
@@ -59,6 +59,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_laserbas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -69,23 +70,22 @@ void laserbas_state::video_start()
save_item(NAME(m_vram2));
}
-static SCREEN_UPDATE_IND16(laserbas)
+UINT32 laserbas_state::screen_update_laserbas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- laserbas_state *state = screen.machine().driver_data<laserbas_state>();
int x, y;
for (y = 0; y < 256; y++)
for(x = 0; x < 128; x++)
{
- if (state->m_vram2[y * 128 + x] & 0xf)
- bitmap.pix16(y, x * 2) = (state->m_vram2[y * 128 + x] & 0xf);
+ if (m_vram2[y * 128 + x] & 0xf)
+ bitmap.pix16(y, x * 2) = (m_vram2[y * 128 + x] & 0xf);
else
- bitmap.pix16(y, x * 2) = (state->m_vram1[y * 128 + x] & 0xf) + 16;
+ bitmap.pix16(y, x * 2) = (m_vram1[y * 128 + x] & 0xf) + 16;
- if (state->m_vram2[y * 128 + x] >> 4)
- bitmap.pix16(y, x * 2 + 1) = (state->m_vram2[y * 128 + x] >> 4);
+ if (m_vram2[y * 128 + x] >> 4)
+ bitmap.pix16(y, x * 2 + 1) = (m_vram2[y * 128 + x] >> 4);
else
- bitmap.pix16(y, x * 2 + 1) = (state->m_vram1[y * 128 + x] >> 4) + 16;
+ bitmap.pix16(y, x * 2 + 1) = (m_vram1[y * 128 + x] >> 4) + 16;
}
return 0;
}
@@ -319,7 +319,7 @@ static MACHINE_CONFIG_START( laserbas, laserbas_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(laserbas)
+ MCFG_SCREEN_UPDATE_DRIVER(laserbas_state, screen_update_laserbas)
MCFG_MC6845_ADD("crtc", H46505, 3000000/4, mc6845_intf) /* unknown clock, hand tuned to get ~60 fps */
diff --git a/src/mame/drivers/laserbat.c b/src/mame/drivers/laserbat.c
index 3fae707fc50..e06ef5b3b1b 100644
--- a/src/mame/drivers/laserbat.c
+++ b/src/mame/drivers/laserbat.c
@@ -494,17 +494,16 @@ void laserbat_state::video_start()
save_item(NAME(m_colorram));
}
-static SCREEN_UPDATE_IND16( laserbat )
+UINT32 laserbat_state::screen_update_laserbat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- laserbat_state *state = screen.machine().driver_data<laserbat_state>();
int y;
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
/* update the S2636 chips */
- bitmap_ind16 &s2636_1_bitmap = s2636_update(state->m_s2636_1, cliprect);
- bitmap_ind16 &s2636_2_bitmap = s2636_update(state->m_s2636_2, cliprect);
- bitmap_ind16 &s2636_3_bitmap = s2636_update(state->m_s2636_3, cliprect);
+ bitmap_ind16 &s2636_1_bitmap = s2636_update(m_s2636_1, cliprect);
+ bitmap_ind16 &s2636_2_bitmap = s2636_update(m_s2636_2, cliprect);
+ bitmap_ind16 &s2636_3_bitmap = s2636_update(m_s2636_3, cliprect);
/* copy the S2636 images into the main bitmap */
for (y = cliprect.min_y; y <= cliprect.max_y; y++)
@@ -528,12 +527,12 @@ static SCREEN_UPDATE_IND16( laserbat )
}
}
- if (state->m_sprite_enable)
+ if (m_sprite_enable)
drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[1],
- state->m_sprite_code,
- state->m_sprite_color,
+ m_sprite_code,
+ m_sprite_color,
0,0,
- state->m_sprite_x - 6,state->m_sprite_y,0);
+ m_sprite_x - 6,m_sprite_y,0);
return 0;
}
@@ -760,7 +759,7 @@ static MACHINE_CONFIG_START( laserbat, laserbat_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(1*8, 29*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(laserbat)
+ MCFG_SCREEN_UPDATE_DRIVER(laserbat_state, screen_update_laserbat)
MCFG_GFXDECODE(laserbat)
MCFG_PALETTE_LENGTH(1024)
@@ -804,7 +803,7 @@ static MACHINE_CONFIG_START( catnmous, laserbat_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(laserbat)
+ MCFG_SCREEN_UPDATE_DRIVER(laserbat_state, screen_update_laserbat)
MCFG_GFXDECODE(laserbat)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/lasso.c b/src/mame/drivers/lasso.c
index 802145af66e..34837f7ca58 100644
--- a/src/mame/drivers/lasso.c
+++ b/src/mame/drivers/lasso.c
@@ -525,7 +525,7 @@ static MACHINE_CONFIG_START( base, lasso_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(lasso)
+ MCFG_SCREEN_UPDATE_DRIVER(lasso_state, screen_update_lasso)
MCFG_GFXDECODE(lasso)
MCFG_PALETTE_LENGTH(0x40)
@@ -562,7 +562,7 @@ static MACHINE_CONFIG_DERIVED( chameleo, base )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(chameleo)
+ MCFG_SCREEN_UPDATE_DRIVER(lasso_state, screen_update_chameleo)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( wwjgtin, base )
@@ -580,7 +580,7 @@ static MACHINE_CONFIG_DERIVED( wwjgtin, base )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1) // Smaller visible area?
- MCFG_SCREEN_UPDATE_STATIC(wwjgtin)
+ MCFG_SCREEN_UPDATE_DRIVER(lasso_state, screen_update_wwjgtin)
MCFG_GFXDECODE(wwjgtin) // Has 1 additional layer
MCFG_PALETTE_LENGTH(0x40 + 16*16)
@@ -609,7 +609,7 @@ static MACHINE_CONFIG_DERIVED( pinbo, base )
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
MCFG_VIDEO_START_OVERRIDE(lasso_state,pinbo)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(chameleo)
+ MCFG_SCREEN_UPDATE_DRIVER(lasso_state, screen_update_chameleo)
/* sound hardware */
MCFG_DEVICE_REMOVE("sn76489.1")
diff --git a/src/mame/drivers/lastduel.c b/src/mame/drivers/lastduel.c
index bd5d35aa1d2..012e3a25cdf 100644
--- a/src/mame/drivers/lastduel.c
+++ b/src/mame/drivers/lastduel.c
@@ -516,7 +516,7 @@ static MACHINE_CONFIG_START( lastduel, lastduel_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(lastduel)
+ MCFG_SCREEN_UPDATE_DRIVER(lastduel_state, screen_update_lastduel)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
@@ -559,7 +559,7 @@ static MACHINE_CONFIG_START( madgear, lastduel_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(madgear)
+ MCFG_SCREEN_UPDATE_DRIVER(lastduel_state, screen_update_madgear)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_BUFFERED_SPRITERAM16_ADD("spriteram")
diff --git a/src/mame/drivers/lastfght.c b/src/mame/drivers/lastfght.c
index f8551b30612..37187ca34e2 100644
--- a/src/mame/drivers/lastfght.c
+++ b/src/mame/drivers/lastfght.c
@@ -124,6 +124,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_lastfght(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -143,9 +144,8 @@ void lastfght_state::video_start()
}
-static SCREEN_UPDATE_IND16( lastfght )
+UINT32 lastfght_state::screen_update_lastfght(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- lastfght_state *state = screen.machine().driver_data<lastfght_state>();
#ifdef MAME_DEBUG
#if 1
@@ -154,14 +154,14 @@ static SCREEN_UPDATE_IND16( lastfght )
UINT8 *gfxdata = screen.machine().root_device().memregion("gfx1")->base();
UINT8 data;
- if (screen.machine().input().code_pressed_once(KEYCODE_ENTER)) state->m_view_roms ^= 1;
- if (state->m_view_roms)
+ if (screen.machine().input().code_pressed_once(KEYCODE_ENTER)) m_view_roms ^= 1;
+ if (m_view_roms)
{
- if (screen.machine().input().code_pressed_once(KEYCODE_PGDN)) state->m_base += 512 * 256;
- if (screen.machine().input().code_pressed_once(KEYCODE_PGUP)) state->m_base -= 512 * 256;
- state->m_base %= state->memregion("gfx1")->bytes();
+ if (screen.machine().input().code_pressed_once(KEYCODE_PGDN)) m_base += 512 * 256;
+ if (screen.machine().input().code_pressed_once(KEYCODE_PGUP)) m_base -= 512 * 256;
+ m_base %= memregion("gfx1")->bytes();
- count = state->m_base;
+ count = m_base;
bitmap.fill(get_black_pen(screen.machine()), cliprect );
for (y = 0 ; y < 256; y++)
@@ -173,13 +173,13 @@ static SCREEN_UPDATE_IND16( lastfght )
count++;
}
}
- popmessage("%x", state->m_base);
+ popmessage("%x", m_base);
return 0;
}
#endif
#endif
- copybitmap(bitmap, state->m_bitmap[state->m_dest ^ 1], 0, 0, 0, 0, cliprect);
+ copybitmap(bitmap, m_bitmap[m_dest ^ 1], 0, 0, 0, 0, cliprect);
return 0;
}
@@ -594,7 +594,7 @@ static MACHINE_CONFIG_START( lastfght, lastfght_state )
MCFG_SCREEN_SIZE( 512, 256 )
MCFG_SCREEN_VISIBLE_AREA( 0, 512-1, 0, 256-16-1 )
MCFG_SCREEN_REFRESH_RATE( 60 )
- MCFG_SCREEN_UPDATE_STATIC( lastfght )
+ MCFG_SCREEN_UPDATE_DRIVER(lastfght_state, screen_update_lastfght)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/lazercmd.c b/src/mame/drivers/lazercmd.c
index 7801f863e13..edd3f7a9a8e 100644
--- a/src/mame/drivers/lazercmd.c
+++ b/src/mame/drivers/lazercmd.c
@@ -645,7 +645,7 @@ static MACHINE_CONFIG_START( lazercmd, lazercmd_state )
MCFG_SCREEN_SIZE(HORZ_RES * HORZ_CHR, VERT_RES * VERT_CHR + 16)
MCFG_SCREEN_VISIBLE_AREA(0 * HORZ_CHR, HORZ_RES * HORZ_CHR - 1,
0 * VERT_CHR, (VERT_RES - 1) * VERT_CHR - 1)
- MCFG_SCREEN_UPDATE_STATIC(lazercmd)
+ MCFG_SCREEN_UPDATE_DRIVER(lazercmd_state, screen_update_lazercmd)
MCFG_GFXDECODE(lazercmd)
MCFG_PALETTE_LENGTH(5)
@@ -679,7 +679,7 @@ static MACHINE_CONFIG_START( medlanes, lazercmd_state )
MCFG_SCREEN_SIZE(HORZ_RES * HORZ_CHR, VERT_RES * VERT_CHR)
MCFG_SCREEN_VISIBLE_AREA(0 * HORZ_CHR, HORZ_RES * HORZ_CHR - 1,
0 * VERT_CHR, VERT_RES * VERT_CHR - 1)
- MCFG_SCREEN_UPDATE_STATIC(lazercmd)
+ MCFG_SCREEN_UPDATE_DRIVER(lazercmd_state, screen_update_lazercmd)
MCFG_GFXDECODE(lazercmd)
MCFG_PALETTE_LENGTH(5)
@@ -713,7 +713,7 @@ static MACHINE_CONFIG_START( bbonk, lazercmd_state )
MCFG_SCREEN_SIZE(HORZ_RES * HORZ_CHR, VERT_RES * VERT_CHR)
MCFG_SCREEN_VISIBLE_AREA(0 * HORZ_CHR, HORZ_RES * HORZ_CHR - 1,
0 * VERT_CHR, (VERT_RES - 1) * VERT_CHR - 1)
- MCFG_SCREEN_UPDATE_STATIC(lazercmd)
+ MCFG_SCREEN_UPDATE_DRIVER(lazercmd_state, screen_update_lazercmd)
MCFG_GFXDECODE(lazercmd)
MCFG_PALETTE_LENGTH(5)
diff --git a/src/mame/drivers/legionna.c b/src/mame/drivers/legionna.c
index c8e95a71ed6..ee6ac48a841 100644
--- a/src/mame/drivers/legionna.c
+++ b/src/mame/drivers/legionna.c
@@ -1064,7 +1064,7 @@ static MACHINE_CONFIG_START( legionna, legionna_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
MCFG_SCREEN_SIZE(36*8, 36*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(legionna)
+ MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_legionna)
MCFG_GFXDECODE(legionna)
MCFG_PALETTE_LENGTH(128*16)
@@ -1094,7 +1094,7 @@ static MACHINE_CONFIG_START( heatbrl, legionna_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
MCFG_SCREEN_SIZE(36*8, 36*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(legionna)
+ MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_legionna)
MCFG_GFXDECODE(heatbrl)
MCFG_PALETTE_LENGTH(128*16)
@@ -1123,7 +1123,7 @@ static MACHINE_CONFIG_START( godzilla, legionna_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
MCFG_SCREEN_SIZE(42*8, 36*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(godzilla)
+ MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_godzilla)
MCFG_GFXDECODE(heatbrl)
MCFG_PALETTE_LENGTH(128*16)
@@ -1152,7 +1152,7 @@ static MACHINE_CONFIG_START( denjinmk, legionna_state )
MCFG_SCREEN_REFRESH_RATE(61)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(godzilla)
+ MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_godzilla)
MCFG_GFXDECODE(heatbrl)
MCFG_PALETTE_LENGTH(128*16)
@@ -1181,7 +1181,7 @@ static MACHINE_CONFIG_START( grainbow, legionna_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
MCFG_SCREEN_SIZE(64*8, 36*8)
MCFG_SCREEN_VISIBLE_AREA(2*8, 42*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(grainbow)
+ MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_grainbow)
MCFG_GFXDECODE(grainbow)
MCFG_PALETTE_LENGTH(128*16)
@@ -1211,7 +1211,7 @@ static MACHINE_CONFIG_START( cupsoc, legionna_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
MCFG_SCREEN_SIZE(42*8, 36*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(grainbow)
+ MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_grainbow)
MCFG_GFXDECODE(cupsoc)
MCFG_PALETTE_LENGTH(128*16)
@@ -1249,7 +1249,7 @@ static MACHINE_CONFIG_START( cupsocbl, legionna_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(42*8, 36*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(grainbow)
+ MCFG_SCREEN_UPDATE_DRIVER(legionna_state, screen_update_grainbow)
MCFG_GFXDECODE(heatbrl_csb)
MCFG_PALETTE_LENGTH(128*16)
diff --git a/src/mame/drivers/lemmings.c b/src/mame/drivers/lemmings.c
index 7e232c81851..726cec65fa2 100644
--- a/src/mame/drivers/lemmings.c
+++ b/src/mame/drivers/lemmings.c
@@ -278,8 +278,8 @@ static MACHINE_CONFIG_START( lemmings, lemmings_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(lemmings)
- MCFG_SCREEN_VBLANK_STATIC(lemmings)
+ MCFG_SCREEN_UPDATE_DRIVER(lemmings_state, screen_update_lemmings)
+ MCFG_SCREEN_VBLANK_DRIVER(lemmings_state, screen_eof_lemmings)
MCFG_GFXDECODE(lemmings)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/lethal.c b/src/mame/drivers/lethal.c
index 17b2dc83ee2..97ae7c16c1b 100644
--- a/src/mame/drivers/lethal.c
+++ b/src/mame/drivers/lethal.c
@@ -663,7 +663,7 @@ static MACHINE_CONFIG_START( lethalen, lethal_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(216, 504-1, 16, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(lethalen)
+ MCFG_SCREEN_UPDATE_DRIVER(lethal_state, screen_update_lethalen)
MCFG_PALETTE_LENGTH(7168+1)
diff --git a/src/mame/drivers/lgp.c b/src/mame/drivers/lgp.c
index 0038743c816..3120cc39e8d 100644
--- a/src/mame/drivers/lgp.c
+++ b/src/mame/drivers/lgp.c
@@ -86,6 +86,7 @@ public:
DECLARE_WRITE8_MEMBER(ldp_write);
DECLARE_DRIVER_INIT(lgp);
virtual void machine_start();
+ UINT32 screen_update_lgp(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -95,9 +96,8 @@ public:
/* VIDEO GOODS */
-static SCREEN_UPDATE_RGB32( lgp )
+UINT32 lgp_state::screen_update_lgp(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- lgp_state *state = screen.machine().driver_data<lgp_state>();
int charx, chary;
/* make color 0 transparent */
@@ -116,7 +116,7 @@ static SCREEN_UPDATE_RGB32( lgp )
/* Somewhere there's a flag that offsets the tilemap by 0x100*x */
/* Palette is likely set somewhere as well (tile_control_ram?) */
drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0],
- state->m_tile_ram[current_screen_character],
+ m_tile_ram[current_screen_character],
0,
0, 0, charx*8, chary*8, 0);
}
@@ -369,7 +369,7 @@ static MACHINE_CONFIG_START( lgp, lgp_state )
MCFG_LASERDISC_LDV1000_ADD("laserdisc")
- MCFG_LASERDISC_OVERLAY_STATIC(256, 256, lgp)
+ MCFG_LASERDISC_OVERLAY_DRIVER(256, 256, lgp_state, screen_update_lgp)
/* video hardware */
MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
diff --git a/src/mame/drivers/liberate.c b/src/mame/drivers/liberate.c
index a9de6e18a60..c06e73b6138 100644
--- a/src/mame/drivers/liberate.c
+++ b/src/mame/drivers/liberate.c
@@ -840,7 +840,7 @@ static MACHINE_CONFIG_START( liberate, liberate_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529) /* 529ms Vblank duration?? */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(liberate)
+ MCFG_SCREEN_UPDATE_DRIVER(liberate_state, screen_update_liberate)
MCFG_GFXDECODE(liberate)
MCFG_PALETTE_LENGTH(33)
@@ -870,7 +870,7 @@ static MACHINE_CONFIG_DERIVED( boomrang, liberate )
MCFG_VIDEO_START_OVERRIDE(liberate_state,boomrang)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(boomrang)
+ MCFG_SCREEN_UPDATE_DRIVER(liberate_state, screen_update_boomrang)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( prosoccr, liberate )
@@ -889,7 +889,7 @@ static MACHINE_CONFIG_DERIVED( prosoccr, liberate )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(prosoccr)
+ MCFG_SCREEN_UPDATE_DRIVER(liberate_state, screen_update_prosoccr)
MCFG_GFXDECODE(prosoccr)
@@ -919,7 +919,7 @@ static MACHINE_CONFIG_START( prosport, liberate_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1529) /* 529ms Vblank duration?? */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(prosport)
+ MCFG_SCREEN_UPDATE_DRIVER(liberate_state, screen_update_prosport)
MCFG_GFXDECODE(prosport)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/limenko.c b/src/mame/drivers/limenko.c
index b34c6ae5368..fe0450ed95e 100644
--- a/src/mame/drivers/limenko.c
+++ b/src/mame/drivers/limenko.c
@@ -87,6 +87,7 @@ public:
TILE_GET_INFO_MEMBER(get_md_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
virtual void video_start();
+ UINT32 screen_update_limenko(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -514,31 +515,30 @@ void limenko_state::video_start()
m_sprites_bitmap_pri.allocate(384,240);
}
-static SCREEN_UPDATE_IND16( limenko )
+UINT32 limenko_state::screen_update_limenko(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- limenko_state *state = screen.machine().driver_data<limenko_state>();
- // state->m_videoreg[4] ???? It always has this value: 0xffeffff8 (2 signed bytes? values: -17 and -8 ?)
+ // m_videoreg[4] ???? It always has this value: 0xffeffff8 (2 signed bytes? values: -17 and -8 ?)
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_bg_tilemap->enable(state->m_videoreg[0] & 4);
- state->m_md_tilemap->enable(state->m_videoreg[0] & 2);
- state->m_fg_tilemap->enable(state->m_videoreg[0] & 1);
+ m_bg_tilemap->enable(m_videoreg[0] & 4);
+ m_md_tilemap->enable(m_videoreg[0] & 2);
+ m_fg_tilemap->enable(m_videoreg[0] & 1);
- state->m_bg_tilemap->set_scrolly(0, state->m_videoreg[3] & 0xffff);
- state->m_md_tilemap->set_scrolly(0, state->m_videoreg[2] & 0xffff);
- state->m_fg_tilemap->set_scrolly(0, state->m_videoreg[1] & 0xffff);
+ m_bg_tilemap->set_scrolly(0, m_videoreg[3] & 0xffff);
+ m_md_tilemap->set_scrolly(0, m_videoreg[2] & 0xffff);
+ m_fg_tilemap->set_scrolly(0, m_videoreg[1] & 0xffff);
- state->m_bg_tilemap->set_scrollx(0, (state->m_videoreg[3] & 0xffff0000) >> 16);
- state->m_md_tilemap->set_scrollx(0, (state->m_videoreg[2] & 0xffff0000) >> 16);
- state->m_fg_tilemap->set_scrollx(0, (state->m_videoreg[1] & 0xffff0000) >> 16);
+ m_bg_tilemap->set_scrollx(0, (m_videoreg[3] & 0xffff0000) >> 16);
+ m_md_tilemap->set_scrollx(0, (m_videoreg[2] & 0xffff0000) >> 16);
+ m_fg_tilemap->set_scrollx(0, (m_videoreg[1] & 0xffff0000) >> 16);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_md_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,1);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_md_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0,1);
- if(state->m_videoreg[0] & 8)
- copy_sprites(screen.machine(), bitmap, state->m_sprites_bitmap, screen.machine().priority_bitmap, cliprect);
+ if(m_videoreg[0] & 8)
+ copy_sprites(screen.machine(), bitmap, m_sprites_bitmap, screen.machine().priority_bitmap, cliprect);
return 0;
}
@@ -762,7 +762,7 @@ static MACHINE_CONFIG_START( limenko, limenko_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(384, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 383, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(limenko)
+ MCFG_SCREEN_UPDATE_DRIVER(limenko_state, screen_update_limenko)
MCFG_GFXDECODE(limenko)
MCFG_PALETTE_LENGTH(0x1000)
@@ -793,7 +793,7 @@ static MACHINE_CONFIG_START( spotty, limenko_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(384, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 383, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(limenko)
+ MCFG_SCREEN_UPDATE_DRIVER(limenko_state, screen_update_limenko)
MCFG_GFXDECODE(limenko)
MCFG_PALETTE_LENGTH(0x1000)
diff --git a/src/mame/drivers/littlerb.c b/src/mame/drivers/littlerb.c
index e979073bed0..1affc514c4b 100644
--- a/src/mame/drivers/littlerb.c
+++ b/src/mame/drivers/littlerb.c
@@ -202,6 +202,7 @@ public:
// edfc / fffc alternating (display double buffering?)
}
virtual void video_start();
+ UINT32 screen_update_littlerb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -554,13 +555,12 @@ INPUT_PORTS_END
/* sprite format / offset could be completely wrong, this is just based on our (currently incorrect) vram access */
-static SCREEN_UPDATE_IND16(littlerb)
+UINT32 littlerb_state::screen_update_littlerb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- littlerb_state *state = screen.machine().driver_data<littlerb_state>();
bitmap.fill(0, cliprect);
- copybitmap_trans(bitmap, *state->m_temp_bitmap_sprites_back, 0, 0, 0, 0, cliprect, 0);
- copybitmap_trans(bitmap, *state->m_temp_bitmap_sprites, 0, 0, 0, 0, cliprect, 0);
+ copybitmap_trans(bitmap, *m_temp_bitmap_sprites_back, 0, 0, 0, 0, cliprect, 0);
+ copybitmap_trans(bitmap, *m_temp_bitmap_sprites, 0, 0, 0, 0, cliprect, 0);
return 0;
}
@@ -834,7 +834,7 @@ static MACHINE_CONFIG_START( littlerb, littlerb_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
MCFG_SCREEN_SIZE(512+22, 312)
MCFG_SCREEN_VISIBLE_AREA(0*8, 336-1, 0*8, 288-1)
- MCFG_SCREEN_UPDATE_STATIC(littlerb)
+ MCFG_SCREEN_UPDATE_DRIVER(littlerb_state, screen_update_littlerb)
MCFG_PALETTE_LENGTH(0x100)
diff --git a/src/mame/drivers/lkage.c b/src/mame/drivers/lkage.c
index 9881ce4e182..9a6c9a6f371 100644
--- a/src/mame/drivers/lkage.c
+++ b/src/mame/drivers/lkage.c
@@ -572,7 +572,7 @@ static MACHINE_CONFIG_START( lkage, lkage_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(2*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(lkage)
+ MCFG_SCREEN_UPDATE_DRIVER(lkage_state, screen_update_lkage)
MCFG_GFXDECODE(lkage)
MCFG_PALETTE_LENGTH(1024)
@@ -615,7 +615,7 @@ static MACHINE_CONFIG_START( lkageb, lkage_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(2*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(lkage)
+ MCFG_SCREEN_UPDATE_DRIVER(lkage_state, screen_update_lkage)
MCFG_GFXDECODE(lkage)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/lockon.c b/src/mame/drivers/lockon.c
index e077e9de258..c0c633ac51a 100644
--- a/src/mame/drivers/lockon.c
+++ b/src/mame/drivers/lockon.c
@@ -527,8 +527,8 @@ static MACHINE_CONFIG_START( lockon, lockon_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(lockon)
- MCFG_SCREEN_VBLANK_STATIC(lockon)
+ MCFG_SCREEN_UPDATE_DRIVER(lockon_state, screen_update_lockon)
+ MCFG_SCREEN_VBLANK_DRIVER(lockon_state, screen_eof_lockon)
MCFG_GFXDECODE(lockon)
MCFG_PALETTE_LENGTH(1024 + 2048)
diff --git a/src/mame/drivers/looping.c b/src/mame/drivers/looping.c
index 2b8d8a7a0bc..3b243aa4779 100644
--- a/src/mame/drivers/looping.c
+++ b/src/mame/drivers/looping.c
@@ -142,6 +142,7 @@ public:
virtual void machine_start();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_looping(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -303,10 +304,9 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
-static SCREEN_UPDATE_IND16( looping )
+UINT32 looping_state::screen_update_looping(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- looping_state *state = screen.machine().driver_data<looping_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
@@ -658,7 +658,7 @@ static MACHINE_CONFIG_START( looping, looping_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(looping)
+ MCFG_SCREEN_UPDATE_DRIVER(looping_state, screen_update_looping)
MCFG_GFXDECODE(looping)
MCFG_PALETTE_LENGTH(32)
diff --git a/src/mame/drivers/lordgun.c b/src/mame/drivers/lordgun.c
index 3f7be61a8aa..0e6a11fb197 100644
--- a/src/mame/drivers/lordgun.c
+++ b/src/mame/drivers/lordgun.c
@@ -673,7 +673,7 @@ static MACHINE_CONFIG_START( lordgun, lordgun_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x200, 0x100)
MCFG_SCREEN_VISIBLE_AREA(0,0x1c0-1, 0,0xe0-1)
- MCFG_SCREEN_UPDATE_STATIC(lordgun)
+ MCFG_SCREEN_UPDATE_DRIVER(lordgun_state, screen_update_lordgun)
MCFG_GFXDECODE(lordgun)
MCFG_PALETTE_LENGTH(0x800 * 8) // 0x800 real colors, repeated per priority level
@@ -715,7 +715,7 @@ static MACHINE_CONFIG_START( aliencha, lordgun_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x200, 0x100)
MCFG_SCREEN_VISIBLE_AREA(0,0x1c0-1, 0,0xe0-1)
- MCFG_SCREEN_UPDATE_STATIC(lordgun)
+ MCFG_SCREEN_UPDATE_DRIVER(lordgun_state, screen_update_lordgun)
MCFG_GFXDECODE(lordgun)
MCFG_PALETTE_LENGTH(0x800 * 8) // 0x800 real colors, repeated per priority level
diff --git a/src/mame/drivers/lsasquad.c b/src/mame/drivers/lsasquad.c
index 22c2fd533cf..2151bfd40a9 100644
--- a/src/mame/drivers/lsasquad.c
+++ b/src/mame/drivers/lsasquad.c
@@ -640,7 +640,7 @@ static MACHINE_CONFIG_START( lsasquad, lsasquad_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(lsasquad)
+ MCFG_SCREEN_UPDATE_DRIVER(lsasquad_state, screen_update_lsasquad)
MCFG_GFXDECODE(lsasquad)
MCFG_PALETTE_LENGTH(512)
@@ -701,7 +701,7 @@ static MACHINE_CONFIG_START( daikaiju, lsasquad_state )
MCFG_PALETTE_LENGTH(512)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
- MCFG_SCREEN_UPDATE_STATIC(daikaiju)
+ MCFG_SCREEN_UPDATE_DRIVER(lsasquad_state, screen_update_daikaiju)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/ltcasino.c b/src/mame/drivers/ltcasino.c
index 4652fdce808..3414288b273 100644
--- a/src/mame/drivers/ltcasino.c
+++ b/src/mame/drivers/ltcasino.c
@@ -34,6 +34,7 @@ public:
DECLARE_DRIVER_INIT(mv4in1);
TILE_GET_INFO_MEMBER(get_ltcasino_tile_info);
virtual void video_start();
+ UINT32 screen_update_ltcasino(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -635,10 +636,9 @@ static GFXDECODE_START( ltcasino )
GFXDECODE_END
-static SCREEN_UPDATE_IND16(ltcasino)
+UINT32 ltcasino_state::screen_update_ltcasino(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ltcasino_state *state = screen.machine().driver_data<ltcasino_state>();
- state->m_tilemap->draw(bitmap, cliprect, 0,0);
+ m_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
@@ -655,7 +655,7 @@ static MACHINE_CONFIG_START( ltcasino, ltcasino_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(6*8, 58*8-1, 0, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(ltcasino)
+ MCFG_SCREEN_UPDATE_DRIVER(ltcasino_state, screen_update_ltcasino)
MCFG_GFXDECODE(ltcasino)
MCFG_PALETTE_LENGTH(0x100)
diff --git a/src/mame/drivers/luckgrln.c b/src/mame/drivers/luckgrln.c
index b2407a07c38..3069cb477be 100644
--- a/src/mame/drivers/luckgrln.c
+++ b/src/mame/drivers/luckgrln.c
@@ -150,6 +150,7 @@ public:
TILE_GET_INFO_MEMBER(get_luckgrln_reel3_tile_info);
TILE_GET_INFO_MEMBER(get_luckgrln_reel4_tile_info);
virtual void video_start();
+ UINT32 screen_update_luckgrln(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -287,9 +288,8 @@ void luckgrln_state::video_start()
m_reel4_tilemap->set_transparent_pen(0 );
}
-static SCREEN_UPDATE_IND16(luckgrln)
+UINT32 luckgrln_state::screen_update_luckgrln(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- luckgrln_state *state = screen.machine().driver_data<luckgrln_state>();
int y,x;
int count = 0;
const rectangle &visarea = screen.visible_area();
@@ -301,10 +301,10 @@ static SCREEN_UPDATE_IND16(luckgrln)
for (i= 0;i < 64;i++)
{
- state->m_reel1_tilemap->set_scrolly(i, state->m_reel1_scroll[i]);
- state->m_reel2_tilemap->set_scrolly(i, state->m_reel2_scroll[i]);
- state->m_reel3_tilemap->set_scrolly(i, state->m_reel3_scroll[i]);
- state->m_reel4_tilemap->set_scrolly(i, state->m_reel4_scroll[i]);
+ m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i]);
+ m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i]);
+ m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i]);
+ m_reel4_tilemap->set_scrolly(i, m_reel4_scroll[i]);
}
@@ -318,9 +318,9 @@ static SCREEN_UPDATE_IND16(luckgrln)
for (x=0;x<64;x++)
{
- UINT16 tile = (state->m_luck_vram1[count] & 0xff);
- UINT16 tile_high = (state->m_luck_vram2[count]);
- UINT16 tileattr = (state->m_luck_vram3[count]);
+ UINT16 tile = (m_luck_vram1[count] & 0xff);
+ UINT16 tile_high = (m_luck_vram2[count]);
+ UINT16 tileattr = (m_luck_vram3[count]);
UINT8 col = 0;
UINT8 region = 0;
UINT8 bgenable;
@@ -332,8 +332,8 @@ static SCREEN_UPDATE_IND16(luckgrln)
if (clip.max_x>visarea.max_x) clip.max_x = visarea.max_x;
/*
- state->m_luck_vram1 tttt tttt (t = low tile bits)
- state->m_luck_vram2 tttt ppp? (t = high tile bits) (p = pal select)?
+ m_luck_vram1 tttt tttt (t = low tile bits)
+ m_luck_vram2 tttt ppp? (t = high tile bits) (p = pal select)?
*/
@@ -344,7 +344,7 @@ static SCREEN_UPDATE_IND16(luckgrln)
// ?? low bit is used too
col = tile_high&0xf;
- // --ss fbt- state->m_luck_vram3
+ // --ss fbt- m_luck_vram3
// - = unused?
// s = reel layer select for this 8x8 region
// f = fg enabled for this 8x8 region (or priority?)
@@ -356,10 +356,10 @@ static SCREEN_UPDATE_IND16(luckgrln)
#if 0 // treat bit as fg enable
if (tileattr&0x04)
{
- if (bgenable==0) state->m_reel1_tilemap->draw(bitmap, clip, 0, 0);
- if (bgenable==1) state->m_reel2_tilemap->draw(bitmap, clip, 0, 0);
- if (bgenable==2) state->m_reel3_tilemap->draw(bitmap, clip, 0, 0);
- if (bgenable==3) state->m_reel4_tilemap->draw(bitmap, clip, 0, 0);
+ if (bgenable==0) m_reel1_tilemap->draw(bitmap, clip, 0, 0);
+ if (bgenable==1) m_reel2_tilemap->draw(bitmap, clip, 0, 0);
+ if (bgenable==2) m_reel3_tilemap->draw(bitmap, clip, 0, 0);
+ if (bgenable==3) m_reel4_tilemap->draw(bitmap, clip, 0, 0);
}
if (tileattr&0x08) drawgfx_transpen(bitmap,clip,screen.machine().gfx[region],tile,col,0,0,x*8,y*8, 0);
@@ -369,10 +369,10 @@ static SCREEN_UPDATE_IND16(luckgrln)
if (tileattr&0x04)
{
- if (bgenable==0) state->m_reel1_tilemap->draw(bitmap, clip, 0, 0);
- if (bgenable==1) state->m_reel2_tilemap->draw(bitmap, clip, 0, 0);
- if (bgenable==2) state->m_reel3_tilemap->draw(bitmap, clip, 0, 0);
- if (bgenable==3) state->m_reel4_tilemap->draw(bitmap, clip, 0, 0);
+ if (bgenable==0) m_reel1_tilemap->draw(bitmap, clip, 0, 0);
+ if (bgenable==1) m_reel2_tilemap->draw(bitmap, clip, 0, 0);
+ if (bgenable==2) m_reel3_tilemap->draw(bitmap, clip, 0, 0);
+ if (bgenable==3) m_reel4_tilemap->draw(bitmap, clip, 0, 0);
}
if ((tileattr&0x08)) drawgfx_transpen(bitmap,clip,screen.machine().gfx[region],tile,col,0,0,x*8,y*8, 0);
@@ -1006,7 +1006,7 @@ static MACHINE_CONFIG_START( luckgrln, luckgrln_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(luckgrln)
+ MCFG_SCREEN_UPDATE_DRIVER(luckgrln_state, screen_update_luckgrln)
MCFG_GFXDECODE(luckgrln)
MCFG_PALETTE_LENGTH(0x8000)
diff --git a/src/mame/drivers/lucky74.c b/src/mame/drivers/lucky74.c
index c46f28e294a..f14b6332dd8 100644
--- a/src/mame/drivers/lucky74.c
+++ b/src/mame/drivers/lucky74.c
@@ -1379,7 +1379,7 @@ static MACHINE_CONFIG_START( lucky74, lucky74_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 1*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(lucky74)
+ MCFG_SCREEN_UPDATE_DRIVER(lucky74_state, screen_update_lucky74)
MCFG_GFXDECODE(lucky74)
diff --git a/src/mame/drivers/lvcards.c b/src/mame/drivers/lvcards.c
index 31ca0a4b4a3..af73815d020 100644
--- a/src/mame/drivers/lvcards.c
+++ b/src/mame/drivers/lvcards.c
@@ -474,7 +474,7 @@ static MACHINE_CONFIG_START( lvcards, lvcards_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*0, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(lvcards)
+ MCFG_SCREEN_UPDATE_DRIVER(lvcards_state, screen_update_lvcards)
MCFG_GFXDECODE(lvcards)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/lwings.c b/src/mame/drivers/lwings.c
index 5517e7d2233..183e42c20c1 100644
--- a/src/mame/drivers/lwings.c
+++ b/src/mame/drivers/lwings.c
@@ -798,7 +798,7 @@ static MACHINE_CONFIG_START( lwings, lwings_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(lwings)
+ MCFG_SCREEN_UPDATE_DRIVER(lwings_state, screen_update_lwings)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(lwings)
@@ -841,7 +841,7 @@ static MACHINE_CONFIG_DERIVED( trojan, lwings )
MCFG_VIDEO_START_OVERRIDE(lwings_state,trojan)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(trojan)
+ MCFG_SCREEN_UPDATE_DRIVER(lwings_state, screen_update_trojan)
/* sound hardware */
MCFG_SOUND_ADD("5205", MSM5205, XTAL_384kHz) /* verified on PCB */
diff --git a/src/mame/drivers/m10.c b/src/mame/drivers/m10.c
index 4370b0f4756..d37b4c7b2df 100644
--- a/src/mame/drivers/m10.c
+++ b/src/mame/drivers/m10.c
@@ -837,7 +837,7 @@ static MACHINE_CONFIG_START( m10, m10_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(IREMM10_PIXEL_CLOCK, IREMM10_HTOTAL, IREMM10_HBEND, IREMM10_HBSTART, IREMM10_VTOTAL, IREMM10_VBEND, IREMM10_VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(m10)
+ MCFG_SCREEN_UPDATE_DRIVER(m10_state, screen_update_m10)
MCFG_GFXDECODE(m10)
MCFG_PALETTE_LENGTH(2*8)
@@ -882,7 +882,7 @@ static MACHINE_CONFIG_START( m15, m10_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(IREMM15_PIXEL_CLOCK, IREMM15_HTOTAL, IREMM15_HBEND, IREMM15_HBSTART, IREMM15_VTOTAL, IREMM15_VBEND, IREMM15_VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(m15)
+ MCFG_SCREEN_UPDATE_DRIVER(m10_state, screen_update_m15)
MCFG_PALETTE_LENGTH(2*8)
diff --git a/src/mame/drivers/m107.c b/src/mame/drivers/m107.c
index 9ae63afca6c..2a3cb728487 100644
--- a/src/mame/drivers/m107.c
+++ b/src/mame/drivers/m107.c
@@ -788,7 +788,7 @@ static MACHINE_CONFIG_START( firebarr, m107_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(80, 511-112, 8, 247) /* 320 x 240 */
- MCFG_SCREEN_UPDATE_STATIC(m107)
+ MCFG_SCREEN_UPDATE_DRIVER(m107_state, screen_update_m107)
MCFG_GFXDECODE(firebarr)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/m14.c b/src/mame/drivers/m14.c
index 25e0f08984e..c61a3084e33 100644
--- a/src/mame/drivers/m14.c
+++ b/src/mame/drivers/m14.c
@@ -85,6 +85,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_m14(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -133,11 +134,10 @@ void m14_state::video_start()
m_m14_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(m14_state::m14_get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
-static SCREEN_UPDATE_IND16( m14 )
+UINT32 m14_state::screen_update_m14(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- m14_state *state = screen.machine().driver_data<m14_state>();
- state->m_m14_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_m14_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -349,7 +349,7 @@ static MACHINE_CONFIG_START( m14, m14_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) //not accurate
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(m14)
+ MCFG_SCREEN_UPDATE_DRIVER(m14_state, screen_update_m14)
MCFG_GFXDECODE(m14)
MCFG_PALETTE_LENGTH(0x20)
diff --git a/src/mame/drivers/m52.c b/src/mame/drivers/m52.c
index b253121e165..f992d4102ee 100644
--- a/src/mame/drivers/m52.c
+++ b/src/mame/drivers/m52.c
@@ -405,7 +405,7 @@ static MACHINE_CONFIG_START( m52, m52_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 136, 376, 282, 22, 274)
- MCFG_SCREEN_UPDATE_STATIC(m52)
+ MCFG_SCREEN_UPDATE_DRIVER(m52_state, screen_update_m52)
/* sound hardware */
diff --git a/src/mame/drivers/m57.c b/src/mame/drivers/m57.c
index 76beed3fa96..ce0cbabf129 100644
--- a/src/mame/drivers/m57.c
+++ b/src/mame/drivers/m57.c
@@ -238,7 +238,7 @@ static MACHINE_CONFIG_START( m57, m57_state )
/* talks about 55Hz and 1790ms vblank duration. */
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(m57)
+ MCFG_SCREEN_UPDATE_DRIVER(m57_state, screen_update_m57)
MCFG_GFXDECODE(m57)
MCFG_PALETTE_LENGTH(32*8+32*8)
diff --git a/src/mame/drivers/m58.c b/src/mame/drivers/m58.c
index b10fd50ff7f..09f2e0b3223 100644
--- a/src/mame/drivers/m58.c
+++ b/src/mame/drivers/m58.c
@@ -201,7 +201,7 @@ static MACHINE_CONFIG_START( yard, m58_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 256, 282, 42, 266)
- MCFG_SCREEN_UPDATE_STATIC(yard)
+ MCFG_SCREEN_UPDATE_DRIVER(m58_state, screen_update_yard)
/* sound hardware */
diff --git a/src/mame/drivers/m62.c b/src/mame/drivers/m62.c
index f6bb9477031..a2e3839feb2 100644
--- a/src/mame/drivers/m62.c
+++ b/src/mame/drivers/m62.c
@@ -966,7 +966,7 @@ static MACHINE_CONFIG_START( ldrun, m62_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1790) /* frames per second and vblank duration from the Lode Runner manual */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA((64*8-384)/2, 64*8-(64*8-384)/2-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(ldrun)
+ MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_ldrun)
MCFG_GFXDECODE(ldrun)
MCFG_PALETTE_LENGTH(512)
@@ -988,7 +988,7 @@ static MACHINE_CONFIG_DERIVED( kungfum, ldrun )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA((64*8-256)/2, 64*8-(64*8-256)/2-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(kungfum)
+ MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_kungfum)
MCFG_VIDEO_START_OVERRIDE(m62_state,kungfum)
MACHINE_CONFIG_END
@@ -1005,7 +1005,7 @@ static MACHINE_CONFIG_DERIVED( battroad, ldrun )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA((64*8-256)/2, 64*8-(64*8-256)/2-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(battroad)
+ MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_battroad)
MCFG_GFXDECODE(battroad)
MCFG_PALETTE_LENGTH(544)
@@ -1023,7 +1023,7 @@ static MACHINE_CONFIG_DERIVED( ldrun2, ldrun )
MCFG_VIDEO_START_OVERRIDE(m62_state,ldrun2)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(ldrun)
+ MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_ldrun)
MACHINE_CONFIG_END
@@ -1038,7 +1038,7 @@ static MACHINE_CONFIG_DERIVED( ldrun3, ldrun )
MCFG_GFXDECODE(ldrun3)
MCFG_VIDEO_START_OVERRIDE(m62_state,ldrun2)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(ldrun3)
+ MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_ldrun3)
MACHINE_CONFIG_END
@@ -1053,7 +1053,7 @@ static MACHINE_CONFIG_DERIVED( ldrun4, ldrun )
MCFG_GFXDECODE(ldrun3)
MCFG_VIDEO_START_OVERRIDE(m62_state,ldrun4)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(ldrun4)
+ MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_ldrun4)
MACHINE_CONFIG_END
@@ -1070,7 +1070,7 @@ static MACHINE_CONFIG_DERIVED( lotlot, ldrun )
MCFG_PALETTE_INIT_OVERRIDE(m62_state,lotlot)
MCFG_VIDEO_START_OVERRIDE(m62_state,lotlot)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(lotlot)
+ MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_lotlot)
MACHINE_CONFIG_END
@@ -1086,7 +1086,7 @@ static MACHINE_CONFIG_DERIVED( kidniki, ldrun )
MCFG_VIDEO_START_OVERRIDE(m62_state,kidniki)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(kidniki)
+ MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_kidniki)
MACHINE_CONFIG_END
@@ -1101,7 +1101,7 @@ static MACHINE_CONFIG_DERIVED( spelunkr, ldrun )
MCFG_VIDEO_START_OVERRIDE(m62_state,spelunkr)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(spelunkr)
+ MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_spelunkr)
MACHINE_CONFIG_END
@@ -1118,7 +1118,7 @@ static MACHINE_CONFIG_DERIVED( spelunk2, ldrun )
MCFG_PALETTE_INIT_OVERRIDE(m62_state,spelunk2)
MCFG_VIDEO_START_OVERRIDE(m62_state,spelunk2)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(spelunk2)
+ MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_spelunk2)
MACHINE_CONFIG_END
@@ -1133,7 +1133,7 @@ static MACHINE_CONFIG_DERIVED( youjyudn, ldrun )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA((64*8-256)/2, 64*8-(64*8-256)/2-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(youjyudn)
+ MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_youjyudn)
MCFG_GFXDECODE(youjyudn)
MCFG_VIDEO_START_OVERRIDE(m62_state,youjyudn)
@@ -1149,7 +1149,7 @@ static MACHINE_CONFIG_DERIVED( horizon, ldrun )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA((64*8-256)/2, 64*8-(64*8-256)/2-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(horizon)
+ MCFG_SCREEN_UPDATE_DRIVER(m62_state, screen_update_horizon)
MCFG_VIDEO_START_OVERRIDE(m62_state,horizon)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/m63.c b/src/mame/drivers/m63.c
index 35a814678ef..334daa37756 100644
--- a/src/mame/drivers/m63.c
+++ b/src/mame/drivers/m63.c
@@ -183,6 +183,7 @@ public:
DECLARE_MACHINE_RESET(m63);
DECLARE_VIDEO_START(m63);
DECLARE_PALETTE_INIT(m63);
+ UINT32 screen_update_m63(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -359,18 +360,17 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-static SCREEN_UPDATE_IND16( m63 )
+UINT32 m63_state::screen_update_m63(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- m63_state *state = screen.machine().driver_data<m63_state>();
int col;
for (col = 0; col < 32; col++)
- state->m_bg_tilemap->set_scrolly(col, state->m_scrollram[col * 8]);
+ m_bg_tilemap->set_scrolly(col, m_scrollram[col * 8]);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -784,7 +784,7 @@ static MACHINE_CONFIG_START( m63, m63_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(m63)
+ MCFG_SCREEN_UPDATE_DRIVER(m63_state, screen_update_m63)
MCFG_GFXDECODE(m63)
MCFG_PALETTE_LENGTH(256+4)
@@ -828,7 +828,7 @@ static MACHINE_CONFIG_START( fghtbskt, m63_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(m63)
+ MCFG_SCREEN_UPDATE_DRIVER(m63_state, screen_update_m63)
MCFG_GFXDECODE(fghtbskt)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/m72.c b/src/mame/drivers/m72.c
index b5883f1466f..66c50649fb1 100644
--- a/src/mame/drivers/m72.c
+++ b/src/mame/drivers/m72.c
@@ -1822,7 +1822,7 @@ static MACHINE_CONFIG_START( m72_base, m72_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
- MCFG_SCREEN_UPDATE_STATIC(m72)
+ MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72)
MCFG_VIDEO_START_OVERRIDE(m72_state,m72)
@@ -1877,7 +1877,7 @@ static MACHINE_CONFIG_START( rtype, m72_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
- MCFG_SCREEN_UPDATE_STATIC(m72)
+ MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72)
MCFG_VIDEO_START_OVERRIDE(m72_state,m72)
@@ -1914,7 +1914,7 @@ static MACHINE_CONFIG_START( xmultipl, m72_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
- MCFG_SCREEN_UPDATE_STATIC(m72)
+ MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72)
MCFG_VIDEO_START_OVERRIDE(m72_state,xmultipl)
@@ -1955,7 +1955,7 @@ static MACHINE_CONFIG_START( xmultiplm72, m72_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
- MCFG_SCREEN_UPDATE_STATIC(m72)
+ MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72)
MCFG_VIDEO_START_OVERRIDE(m72_state,m72)
@@ -1996,7 +1996,7 @@ static MACHINE_CONFIG_START( dbreed, m72_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
- MCFG_SCREEN_UPDATE_STATIC(m72)
+ MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72)
MCFG_VIDEO_START_OVERRIDE(m72_state,hharry)
@@ -2037,7 +2037,7 @@ static MACHINE_CONFIG_START( dbreedm72, m72_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
- MCFG_SCREEN_UPDATE_STATIC(m72)
+ MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72)
MCFG_VIDEO_START_OVERRIDE(m72_state,m72)
@@ -2078,7 +2078,7 @@ static MACHINE_CONFIG_START( rtype2, m72_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
- MCFG_SCREEN_UPDATE_STATIC(m72)
+ MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72)
MCFG_VIDEO_START_OVERRIDE(m72_state,rtype2)
@@ -2119,7 +2119,7 @@ static MACHINE_CONFIG_START( majtitle, m72_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
- MCFG_SCREEN_UPDATE_STATIC(majtitle)
+ MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_majtitle)
MCFG_VIDEO_START_OVERRIDE(m72_state,majtitle)
@@ -2160,7 +2160,7 @@ static MACHINE_CONFIG_START( hharry, m72_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
- MCFG_SCREEN_UPDATE_STATIC(m72)
+ MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72)
MCFG_VIDEO_START_OVERRIDE(m72_state,hharry)
@@ -2201,7 +2201,7 @@ static MACHINE_CONFIG_START( hharryu, m72_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
- MCFG_SCREEN_UPDATE_STATIC(m72)
+ MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72)
MCFG_VIDEO_START_OVERRIDE(m72_state,hharryu)
@@ -2242,7 +2242,7 @@ static MACHINE_CONFIG_START( dkgenm72, m72_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
- MCFG_SCREEN_UPDATE_STATIC(m72)
+ MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72)
MCFG_VIDEO_START_OVERRIDE(m72_state,m72)
@@ -2283,7 +2283,7 @@ static MACHINE_CONFIG_START( poundfor, m72_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
- MCFG_SCREEN_UPDATE_STATIC(m72)
+ MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72)
MCFG_VIDEO_START_OVERRIDE(m72_state,poundfor)
@@ -2324,7 +2324,7 @@ static MACHINE_CONFIG_START( cosmccop, m72_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 512, 64, 448, 284, 0, 256)
- MCFG_SCREEN_UPDATE_STATIC(m72)
+ MCFG_SCREEN_UPDATE_DRIVER(m72_state, screen_update_m72)
MCFG_VIDEO_START_OVERRIDE(m72_state,poundfor)
diff --git a/src/mame/drivers/m79amb.c b/src/mame/drivers/m79amb.c
index ff6383e1c74..af9ed73df27 100644
--- a/src/mame/drivers/m79amb.c
+++ b/src/mame/drivers/m79amb.c
@@ -78,6 +78,7 @@ public:
DECLARE_READ8_MEMBER(gray5bit_controller1_r);
DECLARE_WRITE8_MEMBER(m79amb_8002_w);
DECLARE_DRIVER_INIT(m79amb);
+ UINT32 screen_update_ramtek(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -86,16 +87,15 @@ WRITE8_MEMBER(m79amb_state::ramtek_videoram_w)
m_videoram[offset] = data & ~*m_mask;
}
-static SCREEN_UPDATE_RGB32( ramtek )
+UINT32 m79amb_state::screen_update_ramtek(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- m79amb_state *state = screen.machine().driver_data<m79amb_state>();
offs_t offs;
for (offs = 0; offs < 0x2000; offs++)
{
int i;
- UINT8 data = state->m_videoram[offs];
+ UINT8 data = m_videoram[offs];
int y = offs >> 5;
int x = (offs & 0x1f) << 3;
@@ -220,7 +220,7 @@ static MACHINE_CONFIG_START( m79amb, m79amb_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(ramtek)
+ MCFG_SCREEN_UPDATE_DRIVER(m79amb_state, screen_update_ramtek)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/m90.c b/src/mame/drivers/m90.c
index 62cb9046c70..3219f6d7dfe 100644
--- a/src/mame/drivers/m90.c
+++ b/src/mame/drivers/m90.c
@@ -732,7 +732,7 @@ static MACHINE_CONFIG_START( m90, m90_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(6*8, 54*8-1, 17*8, 47*8-1)
- MCFG_SCREEN_UPDATE_STATIC(m90)
+ MCFG_SCREEN_UPDATE_DRIVER(m90_state, screen_update_m90)
MCFG_GFXDECODE(m90)
MCFG_PALETTE_LENGTH(512)
@@ -818,7 +818,7 @@ static MACHINE_CONFIG_DERIVED( bomblord, m90 )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(10*8, 50*8-1, 17*8, 47*8-1)
- MCFG_SCREEN_UPDATE_STATIC(bomblord)
+ MCFG_SCREEN_UPDATE_DRIVER(m90_state, screen_update_bomblord)
MCFG_VIDEO_START_OVERRIDE(m90_state,bomblord)
MACHINE_CONFIG_END
@@ -837,7 +837,7 @@ static MACHINE_CONFIG_DERIVED( dynablsb, m90 )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(dynablsb)
+ MCFG_SCREEN_UPDATE_DRIVER(m90_state, screen_update_dynablsb)
MCFG_VIDEO_START_OVERRIDE(m90_state,dynablsb)
diff --git a/src/mame/drivers/m92.c b/src/mame/drivers/m92.c
index 9a1b2133c24..2a3d1c7d26a 100644
--- a/src/mame/drivers/m92.c
+++ b/src/mame/drivers/m92.c
@@ -954,7 +954,7 @@ static MACHINE_CONFIG_START( m92, m92_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(80, 511-112, 8, 247) /* 320 x 240 */
- MCFG_SCREEN_UPDATE_STATIC(m92)
+ MCFG_SCREEN_UPDATE_DRIVER(m92_state, screen_update_m92)
MCFG_GFXDECODE(m92)
MCFG_PALETTE_LENGTH(2048)
@@ -1040,7 +1040,7 @@ static MACHINE_CONFIG_START( ppan, m92_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(80, 511-112, 8, 247) /* 320 x 240 */
- MCFG_SCREEN_UPDATE_STATIC(ppan)
+ MCFG_SCREEN_UPDATE_DRIVER(m92_state, screen_update_ppan)
MCFG_GFXDECODE(m92)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/macrossp.c b/src/mame/drivers/macrossp.c
index 0d2f21762b3..a7c164cd2e0 100644
--- a/src/mame/drivers/macrossp.c
+++ b/src/mame/drivers/macrossp.c
@@ -635,8 +635,8 @@ static MACHINE_CONFIG_START( macrossp, macrossp_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*16, 16*16)
MCFG_SCREEN_VISIBLE_AREA(0*16, 24*16-1, 0*16, 15*16-1)
- MCFG_SCREEN_UPDATE_STATIC(macrossp)
- MCFG_SCREEN_VBLANK_STATIC(macrossp)
+ MCFG_SCREEN_UPDATE_DRIVER(macrossp_state, screen_update_macrossp)
+ MCFG_SCREEN_VBLANK_DRIVER(macrossp_state, screen_eof_macrossp)
MCFG_GFXDECODE(macrossp)
MCFG_PALETTE_LENGTH(0x1000)
diff --git a/src/mame/drivers/macs.c b/src/mame/drivers/macs.c
index f88c384c9a8..de89939ad60 100644
--- a/src/mame/drivers/macs.c
+++ b/src/mame/drivers/macs.c
@@ -491,7 +491,7 @@ static MACHINE_CONFIG_START( macs, macs_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(128*8, 128*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 128*8-1, 0*8, 128*8-1)
- MCFG_SCREEN_UPDATE_STATIC(st0016)
+ MCFG_SCREEN_UPDATE_DRIVER(st0016_state, screen_update_st0016)
MCFG_GFXDECODE(macs)
MCFG_PALETTE_LENGTH(16*16*4+1)
diff --git a/src/mame/drivers/madmotor.c b/src/mame/drivers/madmotor.c
index 6e19f512cd9..8dd7d945551 100644
--- a/src/mame/drivers/madmotor.c
+++ b/src/mame/drivers/madmotor.c
@@ -264,7 +264,7 @@ static MACHINE_CONFIG_START( madmotor, madmotor_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */ /* frames per second, vblank duration taken from Burger Time */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(madmotor)
+ MCFG_SCREEN_UPDATE_DRIVER(madmotor_state, screen_update_madmotor)
MCFG_GFXDECODE(madmotor)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/magic10.c b/src/mame/drivers/magic10.c
index f011df571a5..6484fde69fa 100644
--- a/src/mame/drivers/magic10.c
+++ b/src/mame/drivers/magic10.c
@@ -121,6 +121,7 @@ public:
TILE_GET_INFO_MEMBER(get_layer1_tile_info);
TILE_GET_INFO_MEMBER(get_layer2_tile_info);
virtual void video_start();
+ UINT32 screen_update_magic10(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -197,23 +198,22 @@ void magic10_state::video_start()
m_layer2_tilemap->set_transparent_pen(0);
}
-static SCREEN_UPDATE_IND16( magic10 )
+UINT32 magic10_state::screen_update_magic10(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- magic10_state *state = screen.machine().driver_data<magic10_state>();
/*TODO: understand where this comes from. */
- state->m_layer2_tilemap->set_scrollx(0, state->m_layer2_offset[0]);
- state->m_layer2_tilemap->set_scrolly(0, state->m_layer2_offset[1]);
+ m_layer2_tilemap->set_scrollx(0, m_layer2_offset[0]);
+ m_layer2_tilemap->set_scrolly(0, m_layer2_offset[1]);
/*
4 and 6 are y/x global register writes.
0 and 2 are y/x writes for the scrolling layer.
*/
- state->m_layer1_tilemap->set_scrolly(0, (state->m_vregs[0/2] - state->m_vregs[4/2])+0);
- state->m_layer1_tilemap->set_scrollx(0, (state->m_vregs[2/2] - state->m_vregs[6/2])+4);
+ m_layer1_tilemap->set_scrolly(0, (m_vregs[0/2] - m_vregs[4/2])+0);
+ m_layer1_tilemap->set_scrollx(0, (m_vregs[2/2] - m_vregs[6/2])+4);
- state->m_layer0_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_layer1_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_layer2_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_layer0_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_layer1_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_layer2_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -739,7 +739,7 @@ static MACHINE_CONFIG_START( magic10, magic10_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 44*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(magic10)
+ MCFG_SCREEN_UPDATE_DRIVER(magic10_state, screen_update_magic10)
MCFG_PALETTE_LENGTH(0x100)
MCFG_GFXDECODE(magic10)
diff --git a/src/mame/drivers/magicard.c b/src/mame/drivers/magicard.c
index 7917b853dc6..ee9156854cf 100644
--- a/src/mame/drivers/magicard.c
+++ b/src/mame/drivers/magicard.c
@@ -217,6 +217,7 @@ public:
DECLARE_DRIVER_INIT(magicard);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_magicard(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -412,7 +413,7 @@ void magicard_state::video_start()
}
-static SCREEN_UPDATE_RGB32(magicard)
+UINT32 magicard_state::screen_update_magicard(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
magicard_state *state = screen.machine().driver_data<magicard_state>();
int x,y;
@@ -433,22 +434,22 @@ static SCREEN_UPDATE_RGB32(magicard)
{
UINT32 color;
- color = ((state->m_magicram[count]) & 0x000f)>>0;
+ color = ((m_magicram[count]) & 0x000f)>>0;
if(cliprect.contains((x*4)+3, y))
bitmap.pix32(y, (x*4)+3) = screen.machine().pens[color];
- color = ((state->m_magicram[count]) & 0x00f0)>>4;
+ color = ((m_magicram[count]) & 0x00f0)>>4;
if(cliprect.contains((x*4)+2, y))
bitmap.pix32(y, (x*4)+2) = screen.machine().pens[color];
- color = ((state->m_magicram[count]) & 0x0f00)>>8;
+ color = ((m_magicram[count]) & 0x0f00)>>8;
if(cliprect.contains((x*4)+1, y))
bitmap.pix32(y, (x*4)+1) = screen.machine().pens[color];
- color = ((state->m_magicram[count]) & 0xf000)>>12;
+ color = ((m_magicram[count]) & 0xf000)>>12;
if(cliprect.contains((x*4)+0, y))
bitmap.pix32(y, (x*4)+0) = screen.machine().pens[color];
@@ -465,12 +466,12 @@ static SCREEN_UPDATE_RGB32(magicard)
{
UINT32 color;
- color = ((state->m_magicram[count]) & 0x00ff)>>0;
+ color = ((m_magicram[count]) & 0x00ff)>>0;
if(cliprect.contains((x*2)+1, y))
bitmap.pix32(y, (x*2)+1) = screen.machine().pens[color];
- color = ((state->m_magicram[count]) & 0xff00)>>8;
+ color = ((m_magicram[count]) & 0xff00)>>8;
if(cliprect.contains((x*2)+0, y))
bitmap.pix32(y, (x*2)+0) = screen.machine().pens[color];
@@ -725,7 +726,7 @@ static MACHINE_CONFIG_START( magicard, magicard_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(400, 300)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-1) //dynamic resolution,TODO
- MCFG_SCREEN_UPDATE_STATIC(magicard)
+ MCFG_SCREEN_UPDATE_DRIVER(magicard_state, screen_update_magicard)
MCFG_PALETTE_LENGTH(0x100)
diff --git a/src/mame/drivers/magicfly.c b/src/mame/drivers/magicfly.c
index e00b34d9da3..214b2e05315 100644
--- a/src/mame/drivers/magicfly.c
+++ b/src/mame/drivers/magicfly.c
@@ -438,6 +438,7 @@ public:
virtual void video_start();
virtual void palette_init();
DECLARE_VIDEO_START(7mezzo);
+ UINT32 screen_update_magicfly(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -518,10 +519,9 @@ VIDEO_START_MEMBER(magicfly_state,7mezzo)
m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(magicfly_state::get_7mezzo_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 29);
}
-static SCREEN_UPDATE_IND16( magicfly )
+UINT32 magicfly_state::screen_update_magicfly(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- magicfly_state *state = screen.machine().driver_data<magicfly_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -814,7 +814,7 @@ static MACHINE_CONFIG_START( magicfly, magicfly_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE((39+1)*8, (31+1)*8) /* Taken from MC6845 init, registers 00 & 04. Normally programmed with (value-1). */
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 29*8-1) /* Taken from MC6845 init, registers 01 & 06. */
- MCFG_SCREEN_UPDATE_STATIC(magicfly)
+ MCFG_SCREEN_UPDATE_DRIVER(magicfly_state, screen_update_magicfly)
MCFG_GFXDECODE(magicfly)
MCFG_PALETTE_LENGTH(32)
diff --git a/src/mame/drivers/magictg.c b/src/mame/drivers/magictg.c
index 1896ae146a1..2705f7cc222 100644
--- a/src/mame/drivers/magictg.c
+++ b/src/mame/drivers/magictg.c
@@ -212,6 +212,8 @@ protected:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+public:
+ UINT32 screen_update_magictg(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -259,10 +261,9 @@ void magictg_state::video_start()
}
-static SCREEN_UPDATE_RGB32( magictg )
+UINT32 magictg_state::screen_update_magictg(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- magictg_state* state = screen.machine().driver_data<magictg_state>();
- return voodoo_update(state->m_voodoo[0], bitmap, cliprect) ? 0 : UPDATE_HAS_NOT_CHANGED;
+ return voodoo_update(m_voodoo[0], bitmap, cliprect) ? 0 : UPDATE_HAS_NOT_CHANGED;
}
@@ -964,7 +965,7 @@ static MACHINE_CONFIG_START( magictg, magictg_state )
MCFG_SCREEN_SIZE(1024, 1024)
MCFG_SCREEN_VISIBLE_AREA(0, 511, 16, 447)
- MCFG_SCREEN_UPDATE_STATIC(magictg)
+ MCFG_SCREEN_UPDATE_DRIVER(magictg_state, screen_update_magictg)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/magmax.c b/src/mame/drivers/magmax.c
index 9c46677311b..09c270fc1ca 100644
--- a/src/mame/drivers/magmax.c
+++ b/src/mame/drivers/magmax.c
@@ -361,7 +361,7 @@ static MACHINE_CONFIG_START( magmax, magmax_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(magmax)
+ MCFG_SCREEN_UPDATE_DRIVER(magmax_state, screen_update_magmax)
MCFG_GFXDECODE(magmax)
MCFG_PALETTE_LENGTH(1*16 + 16*16 + 256)
diff --git a/src/mame/drivers/mainevt.c b/src/mame/drivers/mainevt.c
index 5f880cd3378..6070568321e 100644
--- a/src/mame/drivers/mainevt.c
+++ b/src/mame/drivers/mainevt.c
@@ -469,7 +469,7 @@ static MACHINE_CONFIG_START( mainevt, mainevt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(mainevt)
+ MCFG_SCREEN_UPDATE_DRIVER(mainevt_state, screen_update_mainevt)
MCFG_PALETTE_LENGTH(256)
@@ -527,7 +527,7 @@ static MACHINE_CONFIG_START( devstors, mainevt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(dv)
+ MCFG_SCREEN_UPDATE_DRIVER(mainevt_state, screen_update_dv)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/mainsnk.c b/src/mame/drivers/mainsnk.c
index cff349a7238..a1e32fe15bd 100644
--- a/src/mame/drivers/mainsnk.c
+++ b/src/mame/drivers/mainsnk.c
@@ -404,7 +404,7 @@ static MACHINE_CONFIG_START( mainsnk, mainsnk_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(36*8, 28*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(mainsnk)
+ MCFG_SCREEN_UPDATE_DRIVER(mainsnk_state, screen_update_mainsnk)
MCFG_GFXDECODE(mainsnk)
MCFG_PALETTE_LENGTH(0x400)
diff --git a/src/mame/drivers/majorpkr.c b/src/mame/drivers/majorpkr.c
index eff210fd8d0..96a52fe1929 100644
--- a/src/mame/drivers/majorpkr.c
+++ b/src/mame/drivers/majorpkr.c
@@ -493,6 +493,7 @@ public:
TILE_GET_INFO_MEMBER(bg_get_tile_info);
TILE_GET_INFO_MEMBER(fg_get_tile_info);
virtual void video_start();
+ UINT32 screen_update_majorpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -536,9 +537,8 @@ void majorpkr_state::video_start()
}
-static SCREEN_UPDATE_IND16(majorpkr)
+UINT32 majorpkr_state::screen_update_majorpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- majorpkr_state *state = screen.machine().driver_data<majorpkr_state>();
bitmap.fill(get_black_pen(screen.machine()), cliprect);
@@ -550,13 +550,13 @@ static SCREEN_UPDATE_IND16(majorpkr)
custom_clip = cliprect;
custom_clip.max_x -= 16;
- state->m_bg_tilemap->draw(bitmap, custom_clip, 0, 0);
- state->m_fg_tilemap->draw(bitmap, custom_clip, 0, 0);
+ m_bg_tilemap->draw(bitmap, custom_clip, 0, 0);
+ m_fg_tilemap->draw(bitmap, custom_clip, 0, 0);
- if (state->m_flip_state == 1)
+ if (m_flip_state == 1)
{
- state->m_bg_tilemap->set_flip(TILEMAP_FLIPX | TILEMAP_FLIPY);
- state->m_fg_tilemap->set_flip(TILEMAP_FLIPX | TILEMAP_FLIPY);
+ m_bg_tilemap->set_flip(TILEMAP_FLIPX | TILEMAP_FLIPY);
+ m_fg_tilemap->set_flip(TILEMAP_FLIPX | TILEMAP_FLIPY);
}
return 0;
@@ -1046,7 +1046,7 @@ static MACHINE_CONFIG_START( majorpkr, majorpkr_state )
MCFG_GFXDECODE(majorpkr)
MCFG_PALETTE_LENGTH(0x100 * 16)
- MCFG_SCREEN_UPDATE_STATIC(majorpkr)
+ MCFG_SCREEN_UPDATE_DRIVER(majorpkr_state, screen_update_majorpkr)
MCFG_MC6845_ADD("crtc", MC6845, CRTC_CLOCK, mc6845_intf) /* verified */
diff --git a/src/mame/drivers/malzak.c b/src/mame/drivers/malzak.c
index 9734a59c401..cc841bad053 100644
--- a/src/mame/drivers/malzak.c
+++ b/src/mame/drivers/malzak.c
@@ -366,7 +366,7 @@ static MACHINE_CONFIG_START( malzak, malzak_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
MCFG_SCREEN_SIZE(480, 512) /* vert size is a guess */
MCFG_SCREEN_VISIBLE_AREA(0, 479, 0, 479)
- MCFG_SCREEN_UPDATE_STATIC(malzak)
+ MCFG_SCREEN_UPDATE_DRIVER(malzak_state, screen_update_malzak)
MCFG_GFXDECODE(malzak)
MCFG_PALETTE_LENGTH(128)
diff --git a/src/mame/drivers/mappy.c b/src/mame/drivers/mappy.c
index b673f9957e1..bac453d357c 100644
--- a/src/mame/drivers/mappy.c
+++ b/src/mame/drivers/mappy.c
@@ -1652,7 +1652,7 @@ static MACHINE_CONFIG_START( superpac, mappy_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(superpac)
+ MCFG_SCREEN_UPDATE_DRIVER(mappy_state, screen_update_superpac)
MCFG_PALETTE_INIT_OVERRIDE(mappy_state,superpac)
MCFG_VIDEO_START_OVERRIDE(mappy_state,superpac)
@@ -1725,7 +1725,7 @@ static MACHINE_CONFIG_START( phozon, mappy_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(phozon)
+ MCFG_SCREEN_UPDATE_DRIVER(mappy_state, screen_update_phozon)
MCFG_PALETTE_INIT_OVERRIDE(mappy_state,phozon)
MCFG_VIDEO_START_OVERRIDE(mappy_state,phozon)
@@ -1765,7 +1765,7 @@ static MACHINE_CONFIG_START( mappy, mappy_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(mappy)
+ MCFG_SCREEN_UPDATE_DRIVER(mappy_state, screen_update_mappy)
MCFG_PALETTE_INIT_OVERRIDE(mappy_state,mappy)
MCFG_VIDEO_START_OVERRIDE(mappy_state,mappy)
diff --git a/src/mame/drivers/marineb.c b/src/mame/drivers/marineb.c
index c58315ce21b..4dfe9f9b850 100644
--- a/src/mame/drivers/marineb.c
+++ b/src/mame/drivers/marineb.c
@@ -555,7 +555,7 @@ static MACHINE_CONFIG_START( marineb, marineb_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(5000) /* frames per second, vblank duration */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(marineb)
+ MCFG_SCREEN_UPDATE_DRIVER(marineb_state, screen_update_marineb)
MCFG_GFXDECODE(marineb)
MCFG_PALETTE_LENGTH(256)
@@ -575,7 +575,7 @@ static MACHINE_CONFIG_DERIVED( changes, marineb )
/* video hardware */
MCFG_GFXDECODE(changes)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(changes)
+ MCFG_SCREEN_UPDATE_DRIVER(marineb_state, screen_update_changes)
MACHINE_CONFIG_END
@@ -586,7 +586,7 @@ static MACHINE_CONFIG_DERIVED( springer, marineb )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(springer)
+ MCFG_SCREEN_UPDATE_DRIVER(marineb_state, screen_update_springer)
MACHINE_CONFIG_END
@@ -597,7 +597,7 @@ static MACHINE_CONFIG_DERIVED( hoccer, marineb )
/* video hardware */
MCFG_GFXDECODE(hoccer)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(hoccer)
+ MCFG_SCREEN_UPDATE_DRIVER(marineb_state, screen_update_hoccer)
MACHINE_CONFIG_END
@@ -611,7 +611,7 @@ static MACHINE_CONFIG_DERIVED( wanted, marineb )
/* video hardware */
MCFG_GFXDECODE(wanted)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(springer)
+ MCFG_SCREEN_UPDATE_DRIVER(marineb_state, screen_update_springer)
/* sound hardware */
MCFG_SOUND_REPLACE("ay1", AY8910, 1500000)
@@ -629,7 +629,7 @@ static MACHINE_CONFIG_DERIVED( hopprobo, marineb )
/* video hardware */
MCFG_GFXDECODE(hopprobo)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(hopprobo)
+ MCFG_SCREEN_UPDATE_DRIVER(marineb_state, screen_update_hopprobo)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/marinedt.c b/src/mame/drivers/marinedt.c
index b36298e1072..a0ff829df74 100644
--- a/src/mame/drivers/marinedt.c
+++ b/src/mame/drivers/marinedt.c
@@ -152,6 +152,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_marinedt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -515,104 +516,103 @@ void marinedt_state::video_start()
#define OBJ_COLOR(a) ((a) & 0x03)
#define OBJ_X(x) (256 - 32 - (x))
#define OBJ_Y(y) (256 - 1 - (y))
-#define OBJ_FLIPX(a) ((state->m_pf & 0x02) == 0)
+#define OBJ_FLIPX(a) ((m_pf & 0x02) == 0)
#define OBJ_FLIPY(a) ((a) & 0x80)
-static SCREEN_UPDATE_IND16( marinedt )
+UINT32 marinedt_state::screen_update_marinedt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- marinedt_state *state = screen.machine().driver_data<marinedt_state>();
int sx, sy;
- state->m_tile->fill(0);
- state->m_tx_tilemap->draw(*state->m_tile, cliprect, 0, 0);
+ m_tile->fill(0);
+ m_tx_tilemap->draw(*m_tile, cliprect, 0, 0);
- state->m_obj1->fill(0);
- drawgfx_transpen(*state->m_obj1, state->m_obj1->cliprect(), screen.machine().gfx[1],
- OBJ_CODE(state->m_obj1_a),
- OBJ_COLOR(state->m_obj1_a),
- OBJ_FLIPX(state->m_obj1_a), OBJ_FLIPY(state->m_obj1_a),
+ m_obj1->fill(0);
+ drawgfx_transpen(*m_obj1, m_obj1->cliprect(), screen.machine().gfx[1],
+ OBJ_CODE(m_obj1_a),
+ OBJ_COLOR(m_obj1_a),
+ OBJ_FLIPX(m_obj1_a), OBJ_FLIPY(m_obj1_a),
0, 0, 0);
- state->m_obj2->fill(0);
- drawgfx_transpen(*state->m_obj2, state->m_obj2->cliprect(), screen.machine().gfx[2],
- OBJ_CODE(state->m_obj2_a),
- OBJ_COLOR(state->m_obj2_a),
- OBJ_FLIPX(state->m_obj2_a), OBJ_FLIPY(state->m_obj2_a),
+ m_obj2->fill(0);
+ drawgfx_transpen(*m_obj2, m_obj2->cliprect(), screen.machine().gfx[2],
+ OBJ_CODE(m_obj2_a),
+ OBJ_COLOR(m_obj2_a),
+ OBJ_FLIPX(m_obj2_a), OBJ_FLIPY(m_obj2_a),
0, 0, 0);
bitmap.fill(0);
- if (state->m_pd & 0x02)
- copybitmap_trans(bitmap, *state->m_obj2, 0, 0, OBJ_X(state->m_obj2_x), OBJ_Y(state->m_obj2_y), cliprect, 0);
+ if (m_pd & 0x02)
+ copybitmap_trans(bitmap, *m_obj2, 0, 0, OBJ_X(m_obj2_x), OBJ_Y(m_obj2_y), cliprect, 0);
- if (state->m_pd & 0x01)
- copybitmap_trans(bitmap, *state->m_obj1, 0, 0, OBJ_X(state->m_obj1_x), OBJ_Y(state->m_obj1_y), cliprect, 0);
+ if (m_pd & 0x01)
+ copybitmap_trans(bitmap, *m_obj1, 0, 0, OBJ_X(m_obj1_x), OBJ_Y(m_obj1_y), cliprect, 0);
- copybitmap_trans(bitmap, *state->m_tile, 0, 0, 0, 0, cliprect, 0);
+ copybitmap_trans(bitmap, *m_tile, 0, 0, 0, 0, cliprect, 0);
- state->m_coll = state->m_cx = state->m_cyr = state->m_cyq = 0;
- if (state->m_pd & 0x01)
+ m_coll = m_cx = m_cyr = m_cyq = 0;
+ if (m_pd & 0x01)
{
for (sx = 0; sx < 32; sx++)
for (sy = 0; sy < 32; sy++)
{
- int x = OBJ_X(state->m_obj1_x) + sx;
- int y = OBJ_Y(state->m_obj1_y) + sy;
+ int x = OBJ_X(m_obj1_x) + sx;
+ int y = OBJ_Y(m_obj1_y) + sy;
if (!cliprect.contains(x, y))
continue;
- if (state->m_obj1->pix16(sy, sx) == 0)
+ if (m_obj1->pix16(sy, sx) == 0)
continue;
- if (state->m_tile->pix16(y, x) != 0)
+ if (m_tile->pix16(y, x) != 0)
{
- state->m_coll = 0x08;
+ m_coll = 0x08;
- state->m_cx = (x % 128) / 8;
- state->m_cx &= 0x0f;
+ m_cx = (x % 128) / 8;
+ m_cx &= 0x0f;
- state->m_cyr = ((y % 64) / 8) * 2 + (x > 127 ? 1 : 0);
- state->m_cyr &= 0x0f;
+ m_cyr = ((y % 64) / 8) * 2 + (x > 127 ? 1 : 0);
+ m_cyr &= 0x0f;
- state->m_cyq = y / 64;
- state->m_cyq &= 0x0f;
+ m_cyq = y / 64;
+ m_cyq &= 0x0f;
break;
}
}
}
- state->m_collh = state->m_cxh = state->m_cyrh = state->m_cyqh = 0;
- if ((state->m_pd & 0x03) == 0x03)
+ m_collh = m_cxh = m_cyrh = m_cyqh = 0;
+ if ((m_pd & 0x03) == 0x03)
{
for (sx = 0; sx < 32; sx++)
for (sy = 0; sy < 32; sy++)
{
- int x = OBJ_X(state->m_obj1_x + sx);
- int y = OBJ_Y(state->m_obj1_y + sy);
+ int x = OBJ_X(m_obj1_x + sx);
+ int y = OBJ_Y(m_obj1_y + sy);
- int xx = OBJ_X(state->m_obj2_x) - x;
- int yy = OBJ_Y(state->m_obj2_y) - y;
+ int xx = OBJ_X(m_obj2_x) - x;
+ int yy = OBJ_Y(m_obj2_y) - y;
if (xx < 0 || xx >= 32 || yy < 0 || yy >= 32)
continue;
- if (state->m_obj1->pix16(sy, sx) == 0)
+ if (m_obj1->pix16(sy, sx) == 0)
continue;
- if (state->m_obj2->pix16(yy, xx) != 0)
+ if (m_obj2->pix16(yy, xx) != 0)
{
- state->m_collh = 0x80;
+ m_collh = 0x80;
- state->m_cxh = (x % 128) / 8;
- state->m_cxh &= 0x0f;
+ m_cxh = (x % 128) / 8;
+ m_cxh &= 0x0f;
- state->m_cyrh = ((y % 64) / 8) * 2 + (x > 127 ? 1 : 0);
- state->m_cyrh &= 0x0f;
+ m_cyrh = ((y % 64) / 8) * 2 + (x > 127 ? 1 : 0);
+ m_cyrh &= 0x0f;
- state->m_cyqh= y / 64;
- state->m_cyqh &= 0x0f;
+ m_cyqh= y / 64;
+ m_cyqh &= 0x0f;
break;
}
@@ -682,7 +682,7 @@ static MACHINE_CONFIG_START( marinedt, marinedt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(4*8+32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(marinedt)
+ MCFG_SCREEN_UPDATE_DRIVER(marinedt_state, screen_update_marinedt)
MCFG_GFXDECODE(marinedt)
MCFG_PALETTE_LENGTH(64)
diff --git a/src/mame/drivers/mario.c b/src/mame/drivers/mario.c
index 27eaf43af47..8d6adb98034 100644
--- a/src/mame/drivers/mario.c
+++ b/src/mame/drivers/mario.c
@@ -345,7 +345,7 @@ static MACHINE_CONFIG_START( mario_base, mario_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(mario)
+ MCFG_SCREEN_UPDATE_DRIVER(mario_state, screen_update_mario)
MCFG_GFXDECODE(mario)
MCFG_PALETTE_LENGTH(512)
diff --git a/src/mame/drivers/markham.c b/src/mame/drivers/markham.c
index 2882272b6a7..a8ca4d45966 100644
--- a/src/mame/drivers/markham.c
+++ b/src/mame/drivers/markham.c
@@ -208,7 +208,7 @@ static MACHINE_CONFIG_START( markham, markham_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(markham)
+ MCFG_SCREEN_UPDATE_DRIVER(markham_state, screen_update_markham)
MCFG_GFXDECODE(markham)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/mastboy.c b/src/mame/drivers/mastboy.c
index 747b4c0dcd7..e278441864b 100644
--- a/src/mame/drivers/mastboy.c
+++ b/src/mame/drivers/mastboy.c
@@ -478,6 +478,7 @@ public:
DECLARE_DRIVER_INIT(mastboy);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_mastboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -488,15 +489,14 @@ void mastboy_state::video_start()
machine().gfx[0]->set_source(m_vram);
}
-static SCREEN_UPDATE_IND16(mastboy)
+UINT32 mastboy_state::screen_update_mastboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mastboy_state *state = screen.machine().driver_data<mastboy_state>();
int y,x,i;
int count = 0x000;
for (i=0;i<0x200;i+=2)
{
- int coldat = state->m_colram[i+1] | (state->m_colram[i+0]<<8);
+ int coldat = m_colram[i+1] | (m_colram[i+0]<<8);
palette_set_color_rgb(screen.machine(),i/2,pal4bit(coldat>>8),pal4bit(coldat>>12),pal4bit(coldat>>4));
}
@@ -506,8 +506,8 @@ static SCREEN_UPDATE_IND16(mastboy)
for (x=0;x<32;x++)
{
/* bytes 0 and 3 seem to be unused for rendering , they appear to contain data the game uses internally */
- int tileno = (state->m_tileram[count+1]|(state->m_tileram[count+2]<<8))&0xfff;
- int attr = (state->m_tileram[count+2]&0xf0)>>4;
+ int tileno = (m_tileram[count+1]|(m_tileram[count+2]<<8))&0xfff;
+ int attr = (m_tileram[count+2]&0xf0)>>4;
gfx_element *gfx;
if (tileno&0x800)
@@ -899,7 +899,7 @@ static MACHINE_CONFIG_START( mastboy, mastboy_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(mastboy)
+ MCFG_SCREEN_UPDATE_DRIVER(mastboy_state, screen_update_mastboy)
MCFG_GFXDECODE(mastboy)
MCFG_PALETTE_LENGTH(0x100)
diff --git a/src/mame/drivers/matmania.c b/src/mame/drivers/matmania.c
index 179929e32ad..c3a6a5dc6c2 100644
--- a/src/mame/drivers/matmania.c
+++ b/src/mame/drivers/matmania.c
@@ -325,7 +325,7 @@ static MACHINE_CONFIG_START( matmania, matmania_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(matmania)
+ MCFG_SCREEN_UPDATE_DRIVER(matmania_state, screen_update_matmania)
MCFG_GFXDECODE(matmania)
MCFG_PALETTE_LENGTH(64+16)
@@ -414,7 +414,7 @@ static MACHINE_CONFIG_START( maniach, matmania_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(maniach)
+ MCFG_SCREEN_UPDATE_DRIVER(matmania_state, screen_update_maniach)
MCFG_GFXDECODE(maniach)
MCFG_PALETTE_LENGTH(64+16)
diff --git a/src/mame/drivers/maygayv1.c b/src/mame/drivers/maygayv1.c
index e1dbdeb2593..e7204647935 100644
--- a/src/mame/drivers/maygayv1.c
+++ b/src/mame/drivers/maygayv1.c
@@ -241,6 +241,8 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_maygayv1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_maygayv1(screen_device &screen, bool state);
};
@@ -293,10 +295,9 @@ void maygayv1_state::video_start()
}
-static SCREEN_UPDATE_IND16( maygayv1 )
+UINT32 maygayv1_state::screen_update_maygayv1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- maygayv1_state *state = screen.machine().driver_data<maygayv1_state>();
- i82716_t &i82716 = state->m_i82716;
+ i82716_t &i82716 = m_i82716;
UINT16 *atable = &i82716.dram[VREG(ATBA)];
UINT16 *otable = &i82716.dram[VREG(ODTBA) & 0xfc00]; // both must be bank 0
@@ -424,13 +425,12 @@ static SCREEN_UPDATE_IND16( maygayv1 )
return 0;
}
-static SCREEN_VBLANK( maygayv1 )
+void maygayv1_state::screen_eof_maygayv1(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- maygayv1_state *state = screen.machine().driver_data<maygayv1_state>();
- i82716_t &i82716 = state->m_i82716;
+ i82716_t &i82716 = m_i82716;
// UCF
if (VREG(VCR0) & VCR0_UCF)
{
@@ -1054,8 +1054,8 @@ static MACHINE_CONFIG_START( maygayv1, maygayv1_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
MCFG_SCREEN_SIZE(640, 300)
MCFG_SCREEN_VISIBLE_AREA(0, 640 - 1, 0, 300 - 1)
- MCFG_SCREEN_UPDATE_STATIC(maygayv1)
- MCFG_SCREEN_VBLANK_STATIC(maygayv1)
+ MCFG_SCREEN_UPDATE_DRIVER(maygayv1_state, screen_update_maygayv1)
+ MCFG_SCREEN_VBLANK_DRIVER(maygayv1_state, screen_eof_maygayv1)
MCFG_PALETTE_LENGTH(16)
diff --git a/src/mame/drivers/mayumi.c b/src/mame/drivers/mayumi.c
index ce8c936df02..62696e53196 100644
--- a/src/mame/drivers/mayumi.c
+++ b/src/mame/drivers/mayumi.c
@@ -45,6 +45,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_mayumi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -73,10 +74,9 @@ WRITE8_MEMBER(mayumi_state::mayumi_videoram_w)
m_tilemap->mark_tile_dirty(offset & 0x7ff);
}
-static SCREEN_UPDATE_IND16( mayumi )
+UINT32 mayumi_state::screen_update_mayumi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mayumi_state *state = screen.machine().driver_data<mayumi_state>();
- state->m_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -410,7 +410,7 @@ static MACHINE_CONFIG_START( mayumi, mayumi_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(2*8, 62*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(mayumi)
+ MCFG_SCREEN_UPDATE_DRIVER(mayumi_state, screen_update_mayumi)
MCFG_GFXDECODE(mayumi)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/mazerbla.c b/src/mame/drivers/mazerbla.c
index 236940e72c6..867c9ec4352 100644
--- a/src/mame/drivers/mazerbla.c
+++ b/src/mame/drivers/mazerbla.c
@@ -143,6 +143,8 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_mazerbla(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_test_vcu(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -203,40 +205,39 @@ void mazerbla_state::video_start()
#ifdef UNUSED_DEFINITION
-SCREEN_UPDATE_IND16( test_vcu )
+UINT32 mazerbla_state::screen_update_test_vcu(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mazerbla_state *state = screen.machine().driver_data<mazerbla_state>();
- int *planes_enabled = state->m_planes_enabled;
+ int *planes_enabled = m_planes_enabled;
char buf[128];
UINT32 color_base = 0;
- if (state->m_game_id == MAZERBLA)
+ if (m_game_id == MAZERBLA)
color_base = 0x80; /* 0x80 constant: matches Mazer Blazer movie */
- if (state->m_game_id == GREATGUN)
+ if (m_game_id == GREATGUN)
color_base = 0x00;
bitmap.fill(0);
// logerror("-->frame\n");
if (planes_enabled[3])
- copybitmap(bitmap, state->m_tmpbitmaps[3], 0, 0, 0, 0, cliprect);
+ copybitmap(bitmap, m_tmpbitmaps[3], 0, 0, 0, 0, cliprect);
if (planes_enabled[2])
- copybitmap_trans(bitmap, state->m_tmpbitmaps[2], 0, 0, 0, 0,cliprect, color_base);
+ copybitmap_trans(bitmap, m_tmpbitmaps[2], 0, 0, 0, 0,cliprect, color_base);
- state->m_tmpbitmaps[2].fill(color_base);
+ m_tmpbitmaps[2].fill(color_base);
if (planes_enabled[1])
- copybitmap_trans(bitmap, state->m_tmpbitmaps[1], 0, 0, 0, 0,cliprect, color_base);
+ copybitmap_trans(bitmap, m_tmpbitmaps[1], 0, 0, 0, 0,cliprect, color_base);
- state->m_tmpbitmaps[1].fill(color_base);
+ m_tmpbitmaps[1].fill(color_base);
if (planes_enabled[0])
- copybitmap_trans(bitmap, state->m_tmpbitmaps[0], 0, 0, 0, 0,cliprect, color_base);
+ copybitmap_trans(bitmap, m_tmpbitmaps[0], 0, 0, 0, 0,cliprect, color_base);
- state->m_tmpbitmaps[0].fill(color_base);
+ m_tmpbitmaps[0].fill(color_base);
if (screen.machine().input().code_pressed_once(KEYCODE_1)) /* plane 1 */
planes_enabled[0] ^= 1;
@@ -251,27 +252,27 @@ SCREEN_UPDATE_IND16( test_vcu )
planes_enabled[3] ^= 1;
if (screen.machine().input().code_pressed_once(KEYCODE_I)) /* show/hide debug info */
- state->m_dbg_info = !state->m_dbg_info;
+ m_dbg_info = !m_dbg_info;
if (screen.machine().input().code_pressed_once(KEYCODE_G)) /* enable gfx area handling */
- state->m_dbg_gfx_e = !state->m_dbg_gfx_e;
+ m_dbg_gfx_e = !m_dbg_gfx_e;
if (screen.machine().input().code_pressed_once(KEYCODE_C)) /* enable color area handling */
- state->m_dbg_clr_e = !state->m_dbg_clr_e;
+ m_dbg_clr_e = !m_dbg_clr_e;
if (screen.machine().input().code_pressed_once(KEYCODE_V)) /* draw only when vbank==dbg_vbank */
- state->m_dbg_vbank ^= 1;
+ m_dbg_vbank ^= 1;
if (screen.machine().input().code_pressed_once(KEYCODE_L)) /* showlookup ram */
- state->m_dbg_lookup = (state->m_dbg_lookup + 1) % 5; //0,1,2,3, 4-off
+ m_dbg_lookup = (m_dbg_lookup + 1) % 5; //0,1,2,3, 4-off
- if (state->m_dbg_info)
+ if (m_dbg_info)
{
sprintf(buf,"I-info, G-gfx, C-color, V-vbank, 1-4 enable planes");
ui_draw_text(buf, 10, 0 * ui_get_line_height(screen.machine()));
- sprintf(buf,"g:%1i c:%1i v:%1i vbk=%1i planes=%1i%1i%1i%1i ", state->m_dbg_gfx_e&1, state->m_dbg_clr_e&1, state->m_dbg_vbank, vbank&1,
+ sprintf(buf,"g:%1i c:%1i v:%1i vbk=%1i planes=%1i%1i%1i%1i ", m_dbg_gfx_e&1, m_dbg_clr_e&1, m_dbg_vbank, vbank&1,
planes_enabled[0],
planes_enabled[1],
planes_enabled[2],
@@ -279,9 +280,9 @@ SCREEN_UPDATE_IND16( test_vcu )
ui_draw_text(buf, 10, 1 * ui_get_line_height(screen.machine()));
- if (state->m_dbg_lookup!=4)
+ if (m_dbg_lookup!=4)
{
- int lookup_offs = (state->m_dbg_lookup)*256; //=0,1,2,3*256
+ int lookup_offs = (m_dbg_lookup)*256; //=0,1,2,3*256
int y, x;
for (y = 0; y < 16; y++)
@@ -302,23 +303,22 @@ SCREEN_UPDATE_IND16( test_vcu )
#endif
-static SCREEN_UPDATE_IND16( mazerbla )
+UINT32 mazerbla_state::screen_update_mazerbla(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mazerbla_state *state = screen.machine().driver_data<mazerbla_state>();
// UINT32 color_base = 0;
- if (state->m_game_id == MAZERBLA)
+ if (m_game_id == MAZERBLA)
// color_base = 0x80; /* 0x80 constant: matches Mazer Blazer movie */
-// if (state->m_game_id == GREATGUN)
+// if (m_game_id == GREATGUN)
// color_base = 0x00;
// bitmap.fill(0);
- copybitmap(bitmap, state->m_tmpbitmaps[3], 0, 0, 0, 0, cliprect);
- copybitmap_trans(bitmap, state->m_tmpbitmaps[2], 0, 0, 0, 0, cliprect, 0);
- copybitmap_trans(bitmap, state->m_tmpbitmaps[1], 0, 0, 0, 0, cliprect, 0);
- copybitmap_trans(bitmap, state->m_tmpbitmaps[0], 0, 0, 0, 0, cliprect, 0);
+ copybitmap(bitmap, m_tmpbitmaps[3], 0, 0, 0, 0, cliprect);
+ copybitmap_trans(bitmap, m_tmpbitmaps[2], 0, 0, 0, 0, cliprect, 0);
+ copybitmap_trans(bitmap, m_tmpbitmaps[1], 0, 0, 0, 0, cliprect, 0);
+ copybitmap_trans(bitmap, m_tmpbitmaps[0], 0, 0, 0, 0, cliprect, 0);
return 0;
}
@@ -1535,7 +1535,7 @@ static MACHINE_CONFIG_START( mazerbla, mazerbla_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(mazerbla)
+ MCFG_SCREEN_UPDATE_DRIVER(mazerbla_state, screen_update_mazerbla)
MCFG_PALETTE_LENGTH(256)
@@ -1571,7 +1571,7 @@ static MACHINE_CONFIG_START( greatgun, mazerbla_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(mazerbla)
+ MCFG_SCREEN_UPDATE_DRIVER(mazerbla_state, screen_update_mazerbla)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/mcatadv.c b/src/mame/drivers/mcatadv.c
index 379d1201947..4f8cf7cd206 100644
--- a/src/mame/drivers/mcatadv.c
+++ b/src/mame/drivers/mcatadv.c
@@ -457,8 +457,8 @@ static MACHINE_CONFIG_START( mcatadv, mcatadv_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
- MCFG_SCREEN_UPDATE_STATIC(mcatadv)
- MCFG_SCREEN_VBLANK_STATIC(mcatadv) // Buffer Spriteram
+ MCFG_SCREEN_UPDATE_DRIVER(mcatadv_state, screen_update_mcatadv)
+ MCFG_SCREEN_VBLANK_DRIVER(mcatadv_state, screen_eof_mcatadv)
MCFG_GFXDECODE(mcatadv)
MCFG_PALETTE_LENGTH(0x2000/2)
diff --git a/src/mame/drivers/mcr.c b/src/mame/drivers/mcr.c
index 0e7de1d2b21..f46e38df014 100644
--- a/src/mame/drivers/mcr.c
+++ b/src/mame/drivers/mcr.c
@@ -1844,7 +1844,7 @@ static MACHINE_CONFIG_START( mcr_90009, mcr_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*16, 30*16)
MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 0*16, 30*16-1)
- MCFG_SCREEN_UPDATE_STATIC(mcr)
+ MCFG_SCREEN_UPDATE_DRIVER(mcr_state, screen_update_mcr)
MCFG_GFXDECODE(mcr)
MCFG_PALETTE_LENGTH(32)
diff --git a/src/mame/drivers/mcr3.c b/src/mame/drivers/mcr3.c
index 8b5684d6149..7d2cb49ac3a 100644
--- a/src/mame/drivers/mcr3.c
+++ b/src/mame/drivers/mcr3.c
@@ -1101,7 +1101,7 @@ static MACHINE_CONFIG_START( mcrmono, mcr3_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*16, 30*16)
MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 0*16, 30*16-1)
- MCFG_SCREEN_UPDATE_STATIC(mcr3)
+ MCFG_SCREEN_UPDATE_DRIVER(mcr3_state, screen_update_mcr3)
MCFG_GFXDECODE(mcr3)
MCFG_PALETTE_LENGTH(64)
@@ -1152,7 +1152,7 @@ static MACHINE_CONFIG_DERIVED( mcrscroll, mcrmono )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_SIZE(30*16, 30*16)
MCFG_SCREEN_VISIBLE_AREA(0, 30*16-1, 0, 30*16-1)
- MCFG_SCREEN_UPDATE_STATIC(spyhunt)
+ MCFG_SCREEN_UPDATE_DRIVER(mcr3_state, screen_update_spyhunt)
MCFG_GFXDECODE(spyhunt)
MCFG_PALETTE_LENGTH(64+4)
diff --git a/src/mame/drivers/mcr68.c b/src/mame/drivers/mcr68.c
index ddc341864d5..9621e88665d 100644
--- a/src/mame/drivers/mcr68.c
+++ b/src/mame/drivers/mcr68.c
@@ -981,7 +981,7 @@ static MACHINE_CONFIG_START( zwackery, mcr68_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*16, 30*16)
MCFG_SCREEN_VISIBLE_AREA(0, 32*16-1, 0, 30*16-1)
- MCFG_SCREEN_UPDATE_STATIC(zwackery)
+ MCFG_SCREEN_UPDATE_DRIVER(mcr68_state, screen_update_zwackery)
MCFG_GFXDECODE(zwackery)
MCFG_PALETTE_LENGTH(4096)
@@ -1012,7 +1012,7 @@ static MACHINE_CONFIG_START( mcr68, mcr68_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*16, 30*16)
MCFG_SCREEN_VISIBLE_AREA(0, 32*16-1, 0, 30*16-1)
- MCFG_SCREEN_UPDATE_STATIC(mcr68)
+ MCFG_SCREEN_UPDATE_DRIVER(mcr68_state, screen_update_mcr68)
MCFG_GFXDECODE(mcr68)
MCFG_PALETTE_LENGTH(64)
diff --git a/src/mame/drivers/meadows.c b/src/mame/drivers/meadows.c
index 4ef92188612..3b29a3e2cf8 100644
--- a/src/mame/drivers/meadows.c
+++ b/src/mame/drivers/meadows.c
@@ -658,7 +658,7 @@ static MACHINE_CONFIG_START( meadows, meadows_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(32*8, 30*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(meadows)
+ MCFG_SCREEN_UPDATE_DRIVER(meadows_state, screen_update_meadows)
MCFG_GFXDECODE(meadows)
MCFG_PALETTE_LENGTH(2)
@@ -688,7 +688,7 @@ static MACHINE_CONFIG_START( minferno, meadows_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 24*8-1)
- MCFG_SCREEN_UPDATE_STATIC(meadows)
+ MCFG_SCREEN_UPDATE_DRIVER(meadows_state, screen_update_meadows)
MCFG_GFXDECODE(minferno)
MCFG_PALETTE_LENGTH(2)
@@ -715,7 +715,7 @@ static MACHINE_CONFIG_START( bowl3d, meadows_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(32*8, 30*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(meadows)
+ MCFG_SCREEN_UPDATE_DRIVER(meadows_state, screen_update_meadows)
MCFG_GFXDECODE(meadows)
MCFG_PALETTE_LENGTH(2)
diff --git a/src/mame/drivers/mediagx.c b/src/mame/drivers/mediagx.c
index b619428efd7..22dbca74b9b 100644
--- a/src/mame/drivers/mediagx.c
+++ b/src/mame/drivers/mediagx.c
@@ -185,6 +185,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_mediagx(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
// Display controller registers
@@ -379,14 +380,13 @@ static void draw_cga(running_machine &machine, bitmap_rgb32 &bitmap, const recta
}
}
-static SCREEN_UPDATE_RGB32(mediagx)
+UINT32 mediagx_state::screen_update_mediagx(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- mediagx_state *state = screen.machine().driver_data<mediagx_state>();
bitmap.fill(0, cliprect);
draw_framebuffer(screen.machine(), bitmap, cliprect);
- if (state->m_disp_ctrl_reg[DC_OUTPUT_CFG] & 0x1) // don't show MDA text screen on 16-bit mode. this is basically a hack
+ if (m_disp_ctrl_reg[DC_OUTPUT_CFG] & 0x1) // don't show MDA text screen on 16-bit mode. this is basically a hack
{
draw_cga(screen.machine(), bitmap, cliprect);
}
@@ -1192,7 +1192,7 @@ static MACHINE_CONFIG_START( mediagx, mediagx_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(mediagx)
+ MCFG_SCREEN_UPDATE_DRIVER(mediagx_state, screen_update_mediagx)
MCFG_GFXDECODE(CGA)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/megaplay.c b/src/mame/drivers/megaplay.c
index 5ff9610bb58..074b3b49333 100644
--- a/src/mame/drivers/megaplay.c
+++ b/src/mame/drivers/megaplay.c
@@ -617,7 +617,7 @@ VIDEO_START_MEMBER(mplay_state,megplay)
// VIDEO_START_CALL_MEMBER(megaplay_normal);
}
-static SCREEN_UPDATE_RGB32(megplay)
+UINT32 mplay_state::screen_update_megplay(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
//printf("megplay vu\n");
SCREEN_UPDATE32_CALL(megadriv);
@@ -637,8 +637,9 @@ MACHINE_RESET_MEMBER(mplay_state,megaplay)
MACHINE_RESET_CALL_LEGACY(megatech_bios);
}
-static SCREEN_VBLANK( megaplay )
+void mplay_state::screen_eof_megaplay(screen_device &screen, bool state)
{
+ bool vblank_on = state;
SCREEN_VBLANK_CALL(megadriv);
SCREEN_VBLANK_CALL(megatech_bios);
}
@@ -664,8 +665,8 @@ static MACHINE_CONFIG_START( megaplay, mplay_state )
/* New update functions to handle the extra layer */
MCFG_VIDEO_START_OVERRIDE(mplay_state,megplay)
MCFG_SCREEN_MODIFY("megadriv")
- MCFG_SCREEN_UPDATE_STATIC(megplay)
- MCFG_SCREEN_VBLANK_STATIC( megaplay )
+ MCFG_SCREEN_UPDATE_DRIVER(mplay_state, screen_update_megplay)
+ MCFG_SCREEN_VBLANK_DRIVER(mplay_state, screen_eof_megaplay)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/megasys1.c b/src/mame/drivers/megasys1.c
index 17fc6916f2a..f464c75b718 100644
--- a/src/mame/drivers/megasys1.c
+++ b/src/mame/drivers/megasys1.c
@@ -1481,8 +1481,8 @@ static MACHINE_CONFIG_START( system_A, megasys1_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(megasys1)
- MCFG_SCREEN_VBLANK_STATIC(megasys1)
+ MCFG_SCREEN_UPDATE_DRIVER(megasys1_state, screen_update_megasys1)
+ MCFG_SCREEN_VBLANK_DRIVER(megasys1_state, screen_eof_megasys1)
MCFG_GFXDECODE(ABC)
MCFG_PALETTE_LENGTH(1024)
@@ -1541,8 +1541,8 @@ static MACHINE_CONFIG_START( system_Bbl, megasys1_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(megasys1)
- MCFG_SCREEN_VBLANK_STATIC(megasys1)
+ MCFG_SCREEN_UPDATE_DRIVER(megasys1_state, screen_update_megasys1)
+ MCFG_SCREEN_VBLANK_DRIVER(megasys1_state, screen_eof_megasys1)
MCFG_GFXDECODE(ABC)
MCFG_PALETTE_LENGTH(1024)
@@ -1613,8 +1613,8 @@ static MACHINE_CONFIG_START( system_D, megasys1_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(megasys1)
- MCFG_SCREEN_VBLANK_STATIC(megasys1)
+ MCFG_SCREEN_UPDATE_DRIVER(megasys1_state, screen_update_megasys1)
+ MCFG_SCREEN_VBLANK_DRIVER(megasys1_state, screen_eof_megasys1)
MCFG_GFXDECODE(ABC)
MCFG_PALETTE_LENGTH(1024)
@@ -1676,7 +1676,7 @@ static MACHINE_CONFIG_START( system_Z, megasys1_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(megasys1)
+ MCFG_SCREEN_UPDATE_DRIVER(megasys1_state, screen_update_megasys1)
MCFG_GFXDECODE(Z)
MCFG_PALETTE_LENGTH(768)
diff --git a/src/mame/drivers/megatech.c b/src/mame/drivers/megatech.c
index 0ade696422c..f44842a954b 100644
--- a/src/mame/drivers/megatech.c
+++ b/src/mame/drivers/megatech.c
@@ -446,22 +446,21 @@ VIDEO_START_MEMBER(mtech_state,mtnew)
}
//attotime::never
-static SCREEN_UPDATE_RGB32(mtnew)
+UINT32 mtech_state::screen_update_mtnew(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- mtech_state *state = screen.machine().driver_data<mtech_state>();
/* if we're running an sms game then use the SMS update.. maybe this should be moved to the megadrive emulation core as compatibility mode is a feature of the chip */
- if (!state->m_current_game_is_sms)
+ if (!m_current_game_is_sms)
SCREEN_UPDATE32_CALL(megadriv);
else
SCREEN_UPDATE32_CALL(megatech_md_sms);
return 0;
}
-static SCREEN_VBLANK(mtnew)
+void mtech_state::screen_eof_mtnew(screen_device &screen, bool state)
{
- mtech_state *state = screen.machine().driver_data<mtech_state>();
- if (!state->m_current_game_is_sms)
+ bool vblank_on = state;
+ if (!m_current_game_is_sms)
SCREEN_VBLANK_CALL(megadriv);
else
SCREEN_VBLANK_CALL(megatech_md_sms);
@@ -476,10 +475,9 @@ MACHINE_RESET_MEMBER(mtech_state,mtnew)
megatech_select_game(machine(), 0);
}
-static SCREEN_UPDATE_RGB32( megatech_menu )
+UINT32 mtech_state::screen_update_megatech_menu(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- mtech_state *state = screen.machine().driver_data<mtech_state>();
- state->m_vdp1->screen_update(screen,bitmap,cliprect);
+ m_vdp1->screen_update(screen,bitmap,cliprect);
return 0;
}
@@ -522,7 +520,7 @@ static MACHINE_CONFIG_START( megatech, mtech_state )
MCFG_SCREEN_RAW_PARAMS(XTAL_10_738635MHz/2, \
SEGA315_5124_WIDTH , SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256, \
SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT + 224)
- MCFG_SCREEN_UPDATE_STATIC( megatech_menu ) /* Combines and copies a bitmap */
+ MCFG_SCREEN_UPDATE_DRIVER(mtech_state, screen_update_megatech_menu)
MCFG_PALETTE_LENGTH(SEGA315_5124_PALETTE_SIZE)
MCFG_PALETTE_INIT(sega315_5124)
@@ -531,8 +529,8 @@ static MACHINE_CONFIG_START( megatech, mtech_state )
MCFG_SCREEN_MODIFY("megadriv")
- MCFG_SCREEN_UPDATE_STATIC(mtnew)
- MCFG_SCREEN_VBLANK_STATIC(mtnew)
+ MCFG_SCREEN_UPDATE_DRIVER(mtech_state, screen_update_mtnew)
+ MCFG_SCREEN_VBLANK_DRIVER(mtech_state, screen_eof_mtnew)
/* sound hardware */
MCFG_SOUND_ADD("sn2", SN76496, MASTER_CLOCK/15)
diff --git a/src/mame/drivers/megazone.c b/src/mame/drivers/megazone.c
index 2496c77830b..9c8e83443d6 100644
--- a/src/mame/drivers/megazone.c
+++ b/src/mame/drivers/megazone.c
@@ -277,7 +277,7 @@ static MACHINE_CONFIG_START( megazone, megazone_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(36*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(megazone)
+ MCFG_SCREEN_UPDATE_DRIVER(megazone_state, screen_update_megazone)
MCFG_GFXDECODE(megazone)
MCFG_PALETTE_LENGTH(16*16+16*16)
diff --git a/src/mame/drivers/meijinsn.c b/src/mame/drivers/meijinsn.c
index 833b460213e..18a5dfe9f3b 100644
--- a/src/mame/drivers/meijinsn.c
+++ b/src/mame/drivers/meijinsn.c
@@ -96,6 +96,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_meijinsn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -290,9 +291,8 @@ void meijinsn_state::palette_init()
}
-static SCREEN_UPDATE_IND16(meijinsn)
+UINT32 meijinsn_state::screen_update_meijinsn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- meijinsn_state *state = screen.machine().driver_data<meijinsn_state>();
int offs;
for (offs = 0; offs < 0x4000; offs++)
@@ -302,8 +302,8 @@ static SCREEN_UPDATE_IND16(meijinsn)
sx = offs >> 8;
sy = offs & 0xff;
- data1 = state->m_videoram[offs] >> 8;
- data2 = state->m_videoram[offs] & 0xff;
+ data1 = m_videoram[offs] >> 8;
+ data2 = m_videoram[offs] & 0xff;
for (x = 0; x < 4; x++)
{
@@ -371,7 +371,7 @@ static MACHINE_CONFIG_START( meijinsn, meijinsn_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(12, 243, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(meijinsn)
+ MCFG_SCREEN_UPDATE_DRIVER(meijinsn_state, screen_update_meijinsn)
MCFG_PALETTE_LENGTH(32)
diff --git a/src/mame/drivers/meritm.c b/src/mame/drivers/meritm.c
index ab9ec09dd64..6e6107954ce 100644
--- a/src/mame/drivers/meritm.c
+++ b/src/mame/drivers/meritm.c
@@ -239,6 +239,7 @@ public:
DECLARE_MACHINE_START(meritm_crt250_crt252_crt258);
DECLARE_MACHINE_START(meritm_crt260);
DECLARE_MACHINE_START(merit_common);
+ UINT32 screen_update_meritm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -461,30 +462,29 @@ void meritm_state::video_start()
state_save_register_global(machine(), m_interrupt_vdp1_state);
}
-static SCREEN_UPDATE_IND16( meritm )
+UINT32 meritm_state::screen_update_meritm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- meritm_state *state = screen.machine().driver_data<meritm_state>();
if(screen.machine().input().code_pressed_once(KEYCODE_Q))
{
- state->m_layer0_enabled^=1;
- popmessage("Layer 0 %sabled",state->m_layer0_enabled ? "en" : "dis");
+ m_layer0_enabled^=1;
+ popmessage("Layer 0 %sabled",m_layer0_enabled ? "en" : "dis");
}
if(screen.machine().input().code_pressed_once(KEYCODE_W))
{
- state->m_layer1_enabled^=1;
- popmessage("Layer 1 %sabled",state->m_layer1_enabled ? "en" : "dis");
+ m_layer1_enabled^=1;
+ popmessage("Layer 1 %sabled",m_layer1_enabled ? "en" : "dis");
}
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- if ( state->m_layer0_enabled )
+ if ( m_layer0_enabled )
{
- copybitmap(bitmap, state->m_v9938_0->get_bitmap(), 0, 0, 0, 0, cliprect);
+ copybitmap(bitmap, m_v9938_0->get_bitmap(), 0, 0, 0, 0, cliprect);
}
- if ( state->m_layer1_enabled )
+ if ( m_layer1_enabled )
{
- copybitmap_trans(bitmap, state->m_v9938_1->get_bitmap(), 0, 0, -6, -12, cliprect, state->m_v9938_1->get_transpen());
+ copybitmap_trans(bitmap, m_v9938_1->get_bitmap(), 0, 0, -6, -12, cliprect, m_v9938_1->get_transpen());
}
return 0;
}
@@ -1198,7 +1198,7 @@ static MACHINE_CONFIG_START( meritm_crt250, meritm_state )
MCFG_SCREEN_SIZE(MSX2_TOTAL_XRES_PIXELS, 262*2)
MCFG_SCREEN_VISIBLE_AREA(MSX2_XBORDER_PIXELS - MSX2_VISIBLE_XBORDER_PIXELS, MSX2_TOTAL_XRES_PIXELS - MSX2_XBORDER_PIXELS + MSX2_VISIBLE_XBORDER_PIXELS - 1, MSX2_YBORDER_PIXELS - MSX2_VISIBLE_YBORDER_PIXELS, MSX2_TOTAL_YRES_PIXELS - MSX2_YBORDER_PIXELS + MSX2_VISIBLE_YBORDER_PIXELS - 1)
- MCFG_SCREEN_UPDATE_STATIC(meritm)
+ MCFG_SCREEN_UPDATE_DRIVER(meritm_state, screen_update_meritm)
MCFG_PALETTE_LENGTH(512)
MCFG_PALETTE_INIT( v9938 )
diff --git a/src/mame/drivers/mermaid.c b/src/mame/drivers/mermaid.c
index 298dea03759..8a51fd59b5e 100644
--- a/src/mame/drivers/mermaid.c
+++ b/src/mame/drivers/mermaid.c
@@ -461,8 +461,8 @@ static MACHINE_CONFIG_START( mermaid, mermaid_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(mermaid)
- MCFG_SCREEN_VBLANK_STATIC(mermaid)
+ MCFG_SCREEN_UPDATE_DRIVER(mermaid_state, screen_update_mermaid)
+ MCFG_SCREEN_VBLANK_DRIVER(mermaid_state, screen_eof_mermaid)
MCFG_GFXDECODE(mermaid)
MCFG_PALETTE_LENGTH(4*16+2*2)
diff --git a/src/mame/drivers/metalmx.c b/src/mame/drivers/metalmx.c
index bc924cdba4f..8244a25a169 100644
--- a/src/mame/drivers/metalmx.c
+++ b/src/mame/drivers/metalmx.c
@@ -278,13 +278,12 @@ void metalmx_state::video_start()
}
-static SCREEN_UPDATE_IND16( metalmx )
+UINT32 metalmx_state::screen_update_metalmx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
/* TODO: TMS34020 should take care of this */
- metalmx_state *state = screen.machine().driver_data<metalmx_state>();
// UINT32 *src_base = &gsp_vram[(vreg_base[0x40/4] & 0x40) ? 0x20000 : 0];
- UINT16 *src_base = state->m_gsp_vram;
+ UINT16 *src_base = m_gsp_vram;
int y;
for (y = 0; y < 384; ++y)
@@ -756,7 +755,7 @@ static MACHINE_CONFIG_START( metalmx, metalmx_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 384)
MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383)
- MCFG_SCREEN_UPDATE_STATIC(metalmx)
+ MCFG_SCREEN_UPDATE_DRIVER(metalmx_state, screen_update_metalmx)
MCFG_PALETTE_LENGTH(65536)
MCFG_PALETTE_INIT(RRRRR_GGGGGG_BBBBB)
diff --git a/src/mame/drivers/metlclsh.c b/src/mame/drivers/metlclsh.c
index e866e8e7455..31575970b17 100644
--- a/src/mame/drivers/metlclsh.c
+++ b/src/mame/drivers/metlclsh.c
@@ -297,7 +297,7 @@ static MACHINE_CONFIG_START( metlclsh, metlclsh_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // we're using PORT_VBLANK
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(metlclsh)
+ MCFG_SCREEN_UPDATE_DRIVER(metlclsh_state, screen_update_metlclsh)
MCFG_GFXDECODE(metlclsh)
MCFG_PALETTE_LENGTH(3 * 16)
diff --git a/src/mame/drivers/metro.c b/src/mame/drivers/metro.c
index 93f7e8db10a..40f39f0a542 100644
--- a/src/mame/drivers/metro.c
+++ b/src/mame/drivers/metro.c
@@ -3433,7 +3433,7 @@ static MACHINE_CONFIG_START( balcube, metro_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 224)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
- MCFG_SCREEN_UPDATE_STATIC(metro)
+ MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
MCFG_GFXDECODE(i4220)
MCFG_PALETTE_LENGTH(8192)
@@ -3467,7 +3467,7 @@ static MACHINE_CONFIG_START( daitoa, metro_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 224)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
- MCFG_SCREEN_UPDATE_STATIC(metro)
+ MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
MCFG_GFXDECODE(i4220)
MCFG_PALETTE_LENGTH(8192)
@@ -3501,7 +3501,7 @@ static MACHINE_CONFIG_START( msgogo, metro_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 224)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
- MCFG_SCREEN_UPDATE_STATIC(metro)
+ MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
MCFG_GFXDECODE(i4220)
MCFG_PALETTE_LENGTH(8192)
@@ -3535,7 +3535,7 @@ static MACHINE_CONFIG_START( bangball, metro_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 224)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
- MCFG_SCREEN_UPDATE_STATIC(metro)
+ MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
MCFG_GFXDECODE(i4220)
MCFG_PALETTE_LENGTH(8192)
@@ -3569,7 +3569,7 @@ static MACHINE_CONFIG_START( batlbubl, metro_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 224)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
- MCFG_SCREEN_UPDATE_STATIC(metro)
+ MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
MCFG_GFXDECODE(i4220)
MCFG_PALETTE_LENGTH(8192)
@@ -3607,7 +3607,7 @@ static MACHINE_CONFIG_START( daitorid, metro_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 224)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
- MCFG_SCREEN_UPDATE_STATIC(metro)
+ MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
MCFG_GFXDECODE(i4220)
MCFG_PALETTE_LENGTH(8192)
@@ -3650,7 +3650,7 @@ static MACHINE_CONFIG_START( dharma, metro_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 224)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
- MCFG_SCREEN_UPDATE_STATIC(metro)
+ MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
MCFG_GFXDECODE(i4100)
MCFG_PALETTE_LENGTH(8192)
@@ -3692,7 +3692,7 @@ static MACHINE_CONFIG_START( karatour, metro_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(metro)
+ MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
MCFG_GFXDECODE(i4100)
MCFG_PALETTE_LENGTH(8192)
@@ -3734,7 +3734,7 @@ static MACHINE_CONFIG_START( 3kokushi, metro_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(metro)
+ MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
MCFG_GFXDECODE(i4220)
MCFG_PALETTE_LENGTH(8192)
@@ -3776,7 +3776,7 @@ static MACHINE_CONFIG_START( lastfort, metro_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(360, 224)
MCFG_SCREEN_VISIBLE_AREA(0, 360-1, 0, 224-1)
- MCFG_SCREEN_UPDATE_STATIC(metro)
+ MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
MCFG_GFXDECODE(i4100)
MCFG_PALETTE_LENGTH(8192)
@@ -3817,7 +3817,7 @@ static MACHINE_CONFIG_START( lastforg, metro_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(360, 224)
MCFG_SCREEN_VISIBLE_AREA(0, 360-1, 0, 224-1)
- MCFG_SCREEN_UPDATE_STATIC(metro)
+ MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
MCFG_GFXDECODE(i4100)
MCFG_PALETTE_LENGTH(8192)
@@ -3852,7 +3852,7 @@ static MACHINE_CONFIG_START( dokyusei, metro_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 224)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
- MCFG_SCREEN_UPDATE_STATIC(metro)
+ MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
MCFG_GFXDECODE(i4300)
MCFG_PALETTE_LENGTH(8192)
@@ -3888,7 +3888,7 @@ static MACHINE_CONFIG_START( dokyusp, metro_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(384, 224)
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 224-1)
- MCFG_SCREEN_UPDATE_STATIC(metro)
+ MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
MCFG_GFXDECODE(i4300)
MCFG_PALETTE_LENGTH(8192)
@@ -3925,7 +3925,7 @@ static MACHINE_CONFIG_START( gakusai, metro_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(metro)
+ MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
MCFG_GFXDECODE(i4300)
MCFG_PALETTE_LENGTH(8192)
@@ -3962,7 +3962,7 @@ static MACHINE_CONFIG_START( gakusai2, metro_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(metro)
+ MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
MCFG_GFXDECODE(i4300)
MCFG_PALETTE_LENGTH(8192)
@@ -4004,7 +4004,7 @@ static MACHINE_CONFIG_START( pangpoms, metro_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(360, 224)
MCFG_SCREEN_VISIBLE_AREA(0, 360-1, 0, 224-1)
- MCFG_SCREEN_UPDATE_STATIC(metro)
+ MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
MCFG_GFXDECODE(i4100)
MCFG_PALETTE_LENGTH(8192)
@@ -4046,7 +4046,7 @@ static MACHINE_CONFIG_START( poitto, metro_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(360, 224)
MCFG_SCREEN_VISIBLE_AREA(0, 360-1, 0, 224-1)
- MCFG_SCREEN_UPDATE_STATIC(metro)
+ MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
MCFG_GFXDECODE(i4100)
MCFG_PALETTE_LENGTH(8192)
@@ -4088,7 +4088,7 @@ static MACHINE_CONFIG_START( pururun, metro_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 224)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
- MCFG_SCREEN_UPDATE_STATIC(metro)
+ MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
MCFG_GFXDECODE(i4100)
MCFG_PALETTE_LENGTH(8192)
@@ -4131,7 +4131,7 @@ static MACHINE_CONFIG_START( skyalert, metro_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(360, 224)
MCFG_SCREEN_VISIBLE_AREA(0, 360-1, 0, 224-1)
- MCFG_SCREEN_UPDATE_STATIC(metro)
+ MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
MCFG_GFXDECODE(i4100)
MCFG_PALETTE_LENGTH(8192)
@@ -4173,7 +4173,7 @@ static MACHINE_CONFIG_START( toride2g, metro_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 224)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
- MCFG_SCREEN_UPDATE_STATIC(metro)
+ MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
MCFG_GFXDECODE(i4100)
MCFG_PALETTE_LENGTH(8192)
@@ -4209,7 +4209,7 @@ static MACHINE_CONFIG_START( mouja, metro_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
- MCFG_SCREEN_UPDATE_STATIC(metro)
+ MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
MCFG_GFXDECODE(i4300)
MCFG_PALETTE_LENGTH(8192)
@@ -4254,7 +4254,7 @@ static MACHINE_CONFIG_START( blzntrnd, metro_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 224)
MCFG_SCREEN_VISIBLE_AREA(8, 320-8-1, 0, 224-1)
- MCFG_SCREEN_UPDATE_STATIC(metro)
+ MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
MCFG_GFXDECODE(blzntrnd)
MCFG_PALETTE_LENGTH(8192)
@@ -4302,7 +4302,7 @@ static MACHINE_CONFIG_START( gstrik2, metro_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 224)
MCFG_SCREEN_VISIBLE_AREA(8, 320-8-1, 0, 224-1)
- MCFG_SCREEN_UPDATE_STATIC(metro)
+ MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
MCFG_GFXDECODE(gstrik2)
MCFG_PALETTE_LENGTH(8192)
@@ -4340,7 +4340,7 @@ static MACHINE_CONFIG_START( puzzlet, metro_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 224)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
- MCFG_SCREEN_UPDATE_STATIC(metro)
+ MCFG_SCREEN_UPDATE_DRIVER(metro_state, screen_update_metro)
MCFG_GFXDECODE(i4300)
MCFG_PALETTE_LENGTH(8192)
diff --git a/src/mame/drivers/mexico86.c b/src/mame/drivers/mexico86.c
index 04a8cef4808..5e1b2710c62 100644
--- a/src/mame/drivers/mexico86.c
+++ b/src/mame/drivers/mexico86.c
@@ -496,7 +496,7 @@ static MACHINE_CONFIG_START( mexico86, mexico86_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(mexico86)
+ MCFG_SCREEN_UPDATE_DRIVER(mexico86_state, screen_update_mexico86)
MCFG_GFXDECODE(mexico86)
MCFG_PALETTE_LENGTH(256)
@@ -523,7 +523,7 @@ static MACHINE_CONFIG_DERIVED( knightb, mexico86 )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(kikikai)
+ MCFG_SCREEN_UPDATE_DRIVER(mexico86_state, screen_update_kikikai)
MACHINE_CONFIG_END
@@ -538,7 +538,7 @@ static MACHINE_CONFIG_DERIVED( kikikai, knightb )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(kikikai)
+ MCFG_SCREEN_UPDATE_DRIVER(mexico86_state, screen_update_kikikai)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/meyc8080.c b/src/mame/drivers/meyc8080.c
index 57fe5c76477..d4ed7f979a1 100644
--- a/src/mame/drivers/meyc8080.c
+++ b/src/mame/drivers/meyc8080.c
@@ -84,6 +84,7 @@ public:
DECLARE_WRITE8_MEMBER(meyc8080_dac_2_w);
DECLARE_WRITE8_MEMBER(meyc8080_dac_3_w);
DECLARE_WRITE8_MEMBER(meyc8080_dac_4_w);
+ UINT32 screen_update_meyc8080(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -93,21 +94,20 @@ public:
*
*************************************/
-static SCREEN_UPDATE_RGB32( meyc8080 )
+UINT32 meyc8080_state::screen_update_meyc8080(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- meyc8080_state *state = screen.machine().driver_data<meyc8080_state>();
offs_t offs;
- for (offs = 0; offs < state->m_videoram_0.bytes(); offs++)
+ for (offs = 0; offs < m_videoram_0.bytes(); offs++)
{
int i;
UINT8 y = offs >> 5;
UINT8 x = offs << 3;
- UINT8 data0 = state->m_videoram_0[offs];
- UINT8 data1 = state->m_videoram_1[offs];
- UINT8 data2 = state->m_videoram_2[offs];
+ UINT8 data0 = m_videoram_0[offs];
+ UINT8 data1 = m_videoram_1[offs];
+ UINT8 data2 = m_videoram_2[offs];
/* weird equations, but it matches every flyer screenshot -
perhaphs they used a look-up PROM? */
@@ -588,7 +588,7 @@ static MACHINE_CONFIG_START( meyc8080, meyc8080_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 32*8-1)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_UPDATE_STATIC(meyc8080)
+ MCFG_SCREEN_UPDATE_DRIVER(meyc8080_state, screen_update_meyc8080)
/* audio hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/meyc8088.c b/src/mame/drivers/meyc8088.c
index 12cf8b32cbf..f88495892ec 100644
--- a/src/mame/drivers/meyc8088.c
+++ b/src/mame/drivers/meyc8088.c
@@ -63,6 +63,8 @@ public:
DECLARE_WRITE_LINE_MEMBER(meyc8088_sound_out);
virtual void palette_init();
+ UINT32 screen_update_meyc8088(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_meyc8088(screen_device &screen, bool state);
};
@@ -122,13 +124,12 @@ void meyc8088_state::palette_init()
auto_free(machine(), rgb);
}
-static SCREEN_UPDATE_IND16( meyc8088 )
+UINT32 meyc8088_state::screen_update_meyc8088(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- meyc8088_state *state = screen.machine().driver_data<meyc8088_state>();
UINT8 v[5];
- v[4] = state->m_status << 2 & 0x10; // video5: color prom d4
+ v[4] = m_status << 2 & 0x10; // video5: color prom d4
- if (~state->m_status & 2)
+ if (~m_status & 2)
{
// screen off
bitmap.fill(v[4]);
@@ -140,10 +141,10 @@ static SCREEN_UPDATE_IND16( meyc8088 )
UINT8 y = (offs-0x800) >> 6;
UINT8 x = (offs-0x800) << 2;
- v[0] = state->m_vram[offs|0x0000]; // video1: color prom d0
- v[1] = state->m_vram[offs|0x0001]; // video2: color prom d1
- v[2] = state->m_vram[offs|0x4000]; // video3: color prom d2
- v[3] = state->m_vram[offs|0x4001]; // video4: color prom d3
+ v[0] = m_vram[offs|0x0000]; // video1: color prom d0
+ v[1] = m_vram[offs|0x0001]; // video2: color prom d1
+ v[2] = m_vram[offs|0x4000]; // video3: color prom d2
+ v[3] = m_vram[offs|0x4001]; // video4: color prom d3
for (int i = 0; i < 8; i++)
bitmap.pix16(y, x | i) = ((v[0] << i) >> 7 & 1) | ((v[1] << i) >> 6 & 2) | ((v[2] << i) >> 5 & 4) | ((v[3] << i) >> 4 & 8) | v[4];
@@ -152,12 +153,12 @@ static SCREEN_UPDATE_IND16( meyc8088 )
return 0;
}
-static SCREEN_VBLANK( meyc8088 )
+void meyc8088_state::screen_eof_meyc8088(screen_device &screen, bool state)
{
- meyc8088_state *state = screen.machine().driver_data<meyc8088_state>();
-
+ device_execute_interface *intf;
+ m_maincpu->interface(intf);
// INTR on LC255 (pulses at start and end of vblank), INTA hardwired to $20
- generic_pulse_irq_line_and_vector(state->m_maincpu, 0, 0x20, 1);
+ generic_pulse_irq_line_and_vector(*intf, 0, 0x20, 1);
}
@@ -386,8 +387,8 @@ static MACHINE_CONFIG_START( meyc8088, meyc8088_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL_15MHz/3, 320, 0, 256, 261, 0, 224)
- MCFG_SCREEN_UPDATE_STATIC(meyc8088)
- MCFG_SCREEN_VBLANK_STATIC(meyc8088)
+ MCFG_SCREEN_UPDATE_DRIVER(meyc8088_state, screen_update_meyc8088)
+ MCFG_SCREEN_VBLANK_DRIVER(meyc8088_state, screen_eof_meyc8088)
MCFG_PALETTE_LENGTH(32)
diff --git a/src/mame/drivers/mgolf.c b/src/mame/drivers/mgolf.c
index 1a9796bc45c..75296b1f751 100644
--- a/src/mame/drivers/mgolf.c
+++ b/src/mame/drivers/mgolf.c
@@ -38,6 +38,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_mgolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -62,30 +63,29 @@ void mgolf_state::video_start()
}
-static SCREEN_UPDATE_IND16( mgolf )
+UINT32 mgolf_state::screen_update_mgolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mgolf_state *state = screen.machine().driver_data<mgolf_state>();
int i;
/* draw playfield */
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
/* draw sprites */
for (i = 0; i < 2; i++)
{
drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1],
- state->m_video_ram[0x399 + 4 * i],
+ m_video_ram[0x399 + 4 * i],
i,
0, 0,
- state->m_video_ram[0x390 + 2 * i] - 7,
- state->m_video_ram[0x398 + 4 * i] - 16, 0);
+ m_video_ram[0x390 + 2 * i] - 7,
+ m_video_ram[0x398 + 4 * i] - 16, 0);
drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1],
- state->m_video_ram[0x39b + 4 * i],
+ m_video_ram[0x39b + 4 * i],
i,
0, 0,
- state->m_video_ram[0x390 + 2 * i] - 15,
- state->m_video_ram[0x39a + 4 * i] - 16, 0);
+ m_video_ram[0x390 + 2 * i] - 15,
+ m_video_ram[0x39a + 4 * i] - 16, 0);
}
return 0;
}
@@ -335,7 +335,7 @@ static MACHINE_CONFIG_START( mgolf, mgolf_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(256, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 223)
- MCFG_SCREEN_UPDATE_STATIC(mgolf)
+ MCFG_SCREEN_UPDATE_DRIVER(mgolf_state, screen_update_mgolf)
MCFG_GFXDECODE(mgolf)
MCFG_PALETTE_LENGTH(4)
diff --git a/src/mame/drivers/midas.c b/src/mame/drivers/midas.c
index f92df0c2658..e3e9475ba3c 100644
--- a/src/mame/drivers/midas.c
+++ b/src/mame/drivers/midas.c
@@ -78,11 +78,12 @@ public:
DECLARE_DRIVER_INIT(livequiz);
TILE_GET_INFO_MEMBER(get_tile_info);
virtual void video_start();
+ UINT32 screen_update_midas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
-static SCREEN_UPDATE_IND16( midas );
+
TILE_GET_INFO_MEMBER(midas_state::get_tile_info)
@@ -184,16 +185,15 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-static SCREEN_UPDATE_IND16( midas )
+UINT32 midas_state::screen_update_midas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- midas_state *state = screen.machine().driver_data<midas_state>();
int layers_ctrl = -1;
#ifdef MAME_DEBUG
if ( screen.machine().input().code_pressed(KEYCODE_Z) )
{
int msk = 0;
- if (screen.machine().input().code_pressed(KEYCODE_Q)) msk |= 1 << 0; // for state->m_tmap
+ if (screen.machine().input().code_pressed(KEYCODE_Q)) msk |= 1 << 0; // for m_tmap
if (screen.machine().input().code_pressed(KEYCODE_A)) msk |= 1 << 1; // for sprites
if (msk != 0) layers_ctrl &= msk;
}
@@ -202,7 +202,7 @@ static SCREEN_UPDATE_IND16( midas )
bitmap.fill(4095, cliprect);
if (layers_ctrl & 2) draw_sprites(screen.machine(), bitmap,cliprect);
- if (layers_ctrl & 1) state->m_tmap->draw(bitmap, cliprect, 0, 0);
+ if (layers_ctrl & 1) m_tmap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -711,7 +711,7 @@ static MACHINE_CONFIG_START( livequiz, midas_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(midas)
+ MCFG_SCREEN_UPDATE_DRIVER(midas_state, screen_update_midas)
MCFG_GFXDECODE(midas)
MCFG_PALETTE_LENGTH(0x10000)
@@ -744,7 +744,7 @@ static MACHINE_CONFIG_START( hammer, midas_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(midas)
+ MCFG_SCREEN_UPDATE_DRIVER(midas_state, screen_update_midas)
MCFG_GFXDECODE(midas)
MCFG_PALETTE_LENGTH(0x10000)
diff --git a/src/mame/drivers/midvunit.c b/src/mame/drivers/midvunit.c
index b69a7ae2e42..115e85852eb 100644
--- a/src/mame/drivers/midvunit.c
+++ b/src/mame/drivers/midvunit.c
@@ -1026,7 +1026,7 @@ static MACHINE_CONFIG_START( midvcommon, midvunit_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MIDVUNIT_VIDEO_CLOCK/2, 666, 0, 512, 432, 0, 400)
- MCFG_SCREEN_UPDATE_STATIC(midvunit)
+ MCFG_SCREEN_UPDATE_DRIVER(midvunit_state, screen_update_midvunit)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/midzeus.c b/src/mame/drivers/midzeus.c
index 488aaf3a913..b18ff612cb5 100644
--- a/src/mame/drivers/midzeus.c
+++ b/src/mame/drivers/midzeus.c
@@ -1102,7 +1102,7 @@ static MACHINE_CONFIG_START( midzeus, midzeus_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MIDZEUS_VIDEO_CLOCK/8, 529, 0, 400, 278, 0, 256)
- MCFG_SCREEN_UPDATE_STATIC(midzeus)
+ MCFG_SCREEN_UPDATE_DRIVER(midzeus_state, screen_update_midzeus)
MCFG_VIDEO_START_OVERRIDE(midzeus_state,midzeus)
@@ -1140,7 +1140,7 @@ static MACHINE_CONFIG_START( midzeus2, midzeus_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MIDZEUS_VIDEO_CLOCK/4, 666, 0, 512, 438, 0, 400)
- MCFG_SCREEN_UPDATE_STATIC(midzeus2)
+ MCFG_SCREEN_UPDATE_DRIVER(midzeus_state, screen_update_midzeus2)
MCFG_VIDEO_START_OVERRIDE(midzeus_state,midzeus2)
diff --git a/src/mame/drivers/mikie.c b/src/mame/drivers/mikie.c
index c9edb96eace..2629b97cf33 100644
--- a/src/mame/drivers/mikie.c
+++ b/src/mame/drivers/mikie.c
@@ -289,7 +289,7 @@ static MACHINE_CONFIG_START( mikie, mikie_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(mikie)
+ MCFG_SCREEN_UPDATE_DRIVER(mikie_state, screen_update_mikie)
MCFG_GFXDECODE(mikie)
MCFG_PALETTE_LENGTH(16*8*16+16*8*16)
diff --git a/src/mame/drivers/mil4000.c b/src/mame/drivers/mil4000.c
index 2375b3c663c..437b78c3ed6 100644
--- a/src/mame/drivers/mil4000.c
+++ b/src/mame/drivers/mil4000.c
@@ -122,6 +122,7 @@ public:
TILE_GET_INFO_MEMBER(get_sc2_tile_info);
TILE_GET_INFO_MEMBER(get_sc3_tile_info);
virtual void video_start();
+ UINT32 screen_update_mil4000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -189,13 +190,12 @@ void mil4000_state::video_start()
m_sc3_tilemap->set_transparent_pen(0);
}
-static SCREEN_UPDATE_IND16(mil4000)
+UINT32 mil4000_state::screen_update_mil4000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mil4000_state *state = screen.machine().driver_data<mil4000_state>();
- state->m_sc0_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_sc1_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_sc2_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_sc3_tilemap->draw(bitmap, cliprect, 0,0);
+ m_sc0_tilemap->draw(bitmap, cliprect, 0,0);
+ m_sc1_tilemap->draw(bitmap, cliprect, 0,0);
+ m_sc2_tilemap->draw(bitmap, cliprect, 0,0);
+ m_sc3_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
@@ -381,7 +381,7 @@ static MACHINE_CONFIG_START( mil4000, mil4000_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(mil4000)
+ MCFG_SCREEN_UPDATE_DRIVER(mil4000_state, screen_update_mil4000)
MCFG_PALETTE_LENGTH(0x800)
MCFG_PALETTE_INIT(all_black)
diff --git a/src/mame/drivers/miniboy7.c b/src/mame/drivers/miniboy7.c
index 69baa64b9e8..f2a40d9963d 100644
--- a/src/mame/drivers/miniboy7.c
+++ b/src/mame/drivers/miniboy7.c
@@ -168,6 +168,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_miniboy7(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -211,10 +212,9 @@ void miniboy7_state::video_start()
m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(miniboy7_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 37, 37);
}
-static SCREEN_UPDATE_IND16( miniboy7 )
+UINT32 miniboy7_state::screen_update_miniboy7(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- miniboy7_state *state = screen.machine().driver_data<miniboy7_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -462,7 +462,7 @@ static MACHINE_CONFIG_START( miniboy7, miniboy7_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE((47+1)*8, (39+1)*8) /* Taken from MC6845, registers 00 & 04. Normally programmed with (value-1) */
MCFG_SCREEN_VISIBLE_AREA(0*8, 37*8-1, 0*8, 37*8-1) /* Taken from MC6845, registers 01 & 06 */
- MCFG_SCREEN_UPDATE_STATIC(miniboy7)
+ MCFG_SCREEN_UPDATE_DRIVER(miniboy7_state, screen_update_miniboy7)
MCFG_GFXDECODE(miniboy7)
diff --git a/src/mame/drivers/minivadr.c b/src/mame/drivers/minivadr.c
index 4d4fb105b4f..b0d86356f83 100644
--- a/src/mame/drivers/minivadr.c
+++ b/src/mame/drivers/minivadr.c
@@ -23,6 +23,7 @@ public:
/* memory pointers */
required_shared_ptr<UINT8> m_videoram;
+ UINT32 screen_update_minivadr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
/*************************************
@@ -31,18 +32,17 @@ public:
*
*************************************/
-static SCREEN_UPDATE_RGB32( minivadr )
+UINT32 minivadr_state::screen_update_minivadr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- minivadr_state *state = screen.machine().driver_data<minivadr_state>();
offs_t offs;
- for (offs = 0; offs < state->m_videoram.bytes(); offs++)
+ for (offs = 0; offs < m_videoram.bytes(); offs++)
{
int i;
UINT8 x = offs << 3;
int y = offs >> 5;
- UINT8 data = state->m_videoram[offs];
+ UINT8 data = m_videoram[offs];
for (i = 0; i < 8; i++)
{
@@ -91,7 +91,7 @@ static MACHINE_CONFIG_START( minivadr, minivadr_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(minivadr)
+ MCFG_SCREEN_UPDATE_DRIVER(minivadr_state, screen_update_minivadr)
/* the board has no sound hardware */
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/mirage.c b/src/mame/drivers/mirage.c
index 8d04b8fa6b3..d363c15bde7 100644
--- a/src/mame/drivers/mirage.c
+++ b/src/mame/drivers/mirage.c
@@ -77,6 +77,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_mirage(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
void miragemi_state::video_start()
@@ -84,23 +85,22 @@ void miragemi_state::video_start()
machine().device<decospr_device>("spritegen")->alloc_sprite_bitmap();
}
-static SCREEN_UPDATE_RGB32( mirage )
+UINT32 miragemi_state::screen_update_mirage(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- miragemi_state *state = screen.machine().driver_data<miragemi_state>();
address_space &space = screen.machine().driver_data()->generic_space();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
+ UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
- state->flip_screen_set(BIT(flip, 7));
+ flip_screen_set(BIT(flip, 7));
- screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram->buffer(), 0x400);
+ screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400);
- deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
+ deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
bitmap.fill(256, cliprect); /* not verified */
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 0x200, 0x1ff);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0800, 0x200, 0x1ff);
return 0;
@@ -331,7 +331,7 @@ static MACHINE_CONFIG_START( mirage, miragemi_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(mirage)
+ MCFG_SCREEN_UPDATE_DRIVER(miragemi_state, screen_update_mirage)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
diff --git a/src/mame/drivers/mirax.c b/src/mame/drivers/mirax.c
index 6c1609cf94d..db73e306f86 100644
--- a/src/mame/drivers/mirax.c
+++ b/src/mame/drivers/mirax.c
@@ -129,6 +129,7 @@ public:
DECLARE_WRITE8_MEMBER(ay2_sel);
DECLARE_DRIVER_INIT(mirax);
virtual void palette_init();
+ UINT32 screen_update_mirax(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -219,7 +220,7 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-static SCREEN_UPDATE_IND16(mirax)
+UINT32 mirax_state::screen_update_mirax(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
draw_tilemap(screen.machine(),bitmap,cliprect,1);
draw_sprites(screen.machine(),bitmap,cliprect);
@@ -465,7 +466,7 @@ static MACHINE_CONFIG_START( mirax, mirax_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(mirax)
+ MCFG_SCREEN_UPDATE_DRIVER(mirax_state, screen_update_mirax)
MCFG_PALETTE_LENGTH(0x40)
MCFG_GFXDECODE(mirax)
diff --git a/src/mame/drivers/missb2.c b/src/mame/drivers/missb2.c
index be1fb526fc6..42da7a77c33 100644
--- a/src/mame/drivers/missb2.c
+++ b/src/mame/drivers/missb2.c
@@ -38,14 +38,14 @@ public:
DECLARE_DRIVER_INIT(missb2);
DECLARE_MACHINE_START(missb2);
DECLARE_MACHINE_RESET(missb2);
+ UINT32 screen_update_missb2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/* Video Hardware */
-static SCREEN_UPDATE_IND16( missb2 )
+UINT32 missb2_state::screen_update_missb2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- missb2_state *state = screen.machine().driver_data<missb2_state>();
int offs;
int sx, sy, xc, yc;
int gfx_num, gfx_attr, gfx_offs;
@@ -59,12 +59,12 @@ static SCREEN_UPDATE_IND16( missb2 )
bitmap.fill(255, cliprect);
- if (!state->m_video_enable)
+ if (!m_video_enable)
return 0;
/* background map register */
- //popmessage("%02x",(*state->m_bgvram) & 0x1f);
- for (bg_offs = ((*state->m_bgvram) << 4); bg_offs < (((*state->m_bgvram) << 4) | 0xf); bg_offs++)
+ //popmessage("%02x",(*m_bgvram) & 0x1f);
+ for (bg_offs = ((*m_bgvram) << 4); bg_offs < (((*m_bgvram) << 4) | 0xf); bg_offs++)
{
drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[1],
bg_offs,
@@ -77,23 +77,23 @@ static SCREEN_UPDATE_IND16( missb2 )
sx = 0;
prom = screen.machine().root_device().memregion("proms")->base();
- for (offs = 0; offs < state->m_objectram.bytes(); offs += 4)
+ for (offs = 0; offs < m_objectram.bytes(); offs += 4)
{
/* skip empty sprites */
/* this is dword aligned so the UINT32 * cast shouldn't give problems */
/* on any architecture */
- if (*(UINT32 *)(&state->m_objectram[offs]) == 0)
+ if (*(UINT32 *)(&m_objectram[offs]) == 0)
continue;
- gfx_num = state->m_objectram[offs + 1];
- gfx_attr = state->m_objectram[offs + 3];
+ gfx_num = m_objectram[offs + 1];
+ gfx_attr = m_objectram[offs + 3];
prom_line = prom + 0x80 + ((gfx_num & 0xe0) >> 1);
gfx_offs = ((gfx_num & 0x1f) * 0x80);
if ((gfx_num & 0xa0) == 0xa0)
gfx_offs |= 0x1000;
- sy = -state->m_objectram[offs + 0];
+ sy = -m_objectram[offs + 0];
for (yc = 0; yc < 32; yc++)
{
@@ -101,7 +101,7 @@ static SCREEN_UPDATE_IND16( missb2 )
if (!(prom_line[yc / 2] & 0x04)) /* next column */
{
- sx = state->m_objectram[offs + 2];
+ sx = m_objectram[offs + 2];
if (gfx_attr & 0x40) sx -= 256;
}
@@ -111,14 +111,14 @@ static SCREEN_UPDATE_IND16( missb2 )
goffs = gfx_offs + xc * 0x40 + (yc & 7) * 0x02 +
(prom_line[yc/2] & 0x03) * 0x10;
- code = state->m_videoram[goffs] + 256 * (state->m_videoram[goffs + 1] & 0x03) + 1024 * (gfx_attr & 0x0f);
- //color = (state->m_videoram[goffs + 1] & 0x3c) >> 2;
- flipx = state->m_videoram[goffs + 1] & 0x40;
- flipy = state->m_videoram[goffs + 1] & 0x80;
+ code = m_videoram[goffs] + 256 * (m_videoram[goffs + 1] & 0x03) + 1024 * (gfx_attr & 0x0f);
+ //color = (m_videoram[goffs + 1] & 0x3c) >> 2;
+ flipx = m_videoram[goffs + 1] & 0x40;
+ flipy = m_videoram[goffs + 1] & 0x80;
x = sx + xc * 8;
y = (sy + yc * 8) & 0xff;
- if (state->flip_screen())
+ if (flip_screen())
{
x = 248 - x;
y = 248 - y;
@@ -484,7 +484,7 @@ static MACHINE_CONFIG_START( missb2, missb2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(missb2)
+ MCFG_SCREEN_UPDATE_DRIVER(missb2_state, screen_update_missb2)
MCFG_GFXDECODE(missb2)
MCFG_PALETTE_LENGTH(512)
diff --git a/src/mame/drivers/missile.c b/src/mame/drivers/missile.c
index d0181210700..628d703cfd5 100644
--- a/src/mame/drivers/missile.c
+++ b/src/mame/drivers/missile.c
@@ -381,6 +381,7 @@ public:
DECLARE_DRIVER_INIT(suprmatk);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_missile(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -666,10 +667,9 @@ static UINT8 read_vram(address_space &space, offs_t address)
*
*************************************/
-static SCREEN_UPDATE_IND16( missile )
+UINT32 missile_state::screen_update_missile(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- missile_state *state = screen.machine().driver_data<missile_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
int x, y;
/* draw the bitmap to the screen, looping over Y */
@@ -677,7 +677,7 @@ static SCREEN_UPDATE_IND16( missile )
{
UINT16 *dst = &bitmap.pix16(y);
- int effy = state->m_flipscreen ? ((256+24 - y) & 0xff) : y;
+ int effy = m_flipscreen ? ((256+24 - y) & 0xff) : y;
UINT8 *src = &videoram[effy * 64];
UINT8 *src3 = NULL;
@@ -1044,7 +1044,7 @@ static MACHINE_CONFIG_START( missile, missile_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(missile)
+ MCFG_SCREEN_UPDATE_DRIVER(missile_state, screen_update_missile)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mitchell.c b/src/mame/drivers/mitchell.c
index 77578fe22c9..06686a6dc48 100644
--- a/src/mame/drivers/mitchell.c
+++ b/src/mame/drivers/mitchell.c
@@ -1128,7 +1128,7 @@ static MACHINE_CONFIG_START( mgakuen, mitchell_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 1*8, 31*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(pang)
+ MCFG_SCREEN_UPDATE_DRIVER(mitchell_state, screen_update_pang)
MCFG_GFXDECODE(mgakuen)
MCFG_PALETTE_LENGTH(1024) /* less colors than the others */
@@ -1171,7 +1171,7 @@ static MACHINE_CONFIG_START( pang, mitchell_state )
MCFG_PALETTE_LENGTH(2048)
MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang)
- MCFG_SCREEN_UPDATE_STATIC(pang)
+ MCFG_SCREEN_UPDATE_DRIVER(mitchell_state, screen_update_pang)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1271,7 +1271,7 @@ static MACHINE_CONFIG_START( mstworld, mitchell_state )
MCFG_PALETTE_LENGTH(2048)
MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang)
- MCFG_SCREEN_UPDATE_STATIC(pang)
+ MCFG_SCREEN_UPDATE_DRIVER(mitchell_state, screen_update_pang)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1303,7 +1303,7 @@ static MACHINE_CONFIG_START( marukin, mitchell_state )
MCFG_PALETTE_LENGTH(2048)
MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang)
- MCFG_SCREEN_UPDATE_STATIC(pang)
+ MCFG_SCREEN_UPDATE_DRIVER(mitchell_state, screen_update_pang)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1355,7 +1355,7 @@ static MACHINE_CONFIG_START( pkladiesbl, mitchell_state )
MCFG_PALETTE_LENGTH(2048)
MCFG_VIDEO_START_OVERRIDE(mitchell_state,pang)
- MCFG_SCREEN_UPDATE_STATIC(pang)
+ MCFG_SCREEN_UPDATE_DRIVER(mitchell_state, screen_update_pang)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/mjkjidai.c b/src/mame/drivers/mjkjidai.c
index 4a43c4a50a2..7cc699b15cd 100644
--- a/src/mame/drivers/mjkjidai.c
+++ b/src/mame/drivers/mjkjidai.c
@@ -456,7 +456,7 @@ static MACHINE_CONFIG_START( mjkjidai, mjkjidai_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(3*8, 61*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(mjkjidai)
+ MCFG_SCREEN_UPDATE_DRIVER(mjkjidai_state, screen_update_mjkjidai)
MCFG_GFXDECODE(mjkjidai)
MCFG_PALETTE_LENGTH(0x100)
diff --git a/src/mame/drivers/mjsister.c b/src/mame/drivers/mjsister.c
index d5c4a25fe11..bb5cb4c445a 100644
--- a/src/mame/drivers/mjsister.c
+++ b/src/mame/drivers/mjsister.c
@@ -60,6 +60,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_mjsister(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -127,32 +128,31 @@ WRITE8_MEMBER(mjsister_state::mjsister_videoram_w)
}
}
-static SCREEN_UPDATE_IND16( mjsister )
+UINT32 mjsister_state::screen_update_mjsister(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mjsister_state *state = screen.machine().driver_data<mjsister_state>();
- int flip = state->m_flip_screen;
+ int flip = m_flip_screen;
int i, j;
- if (state->m_screen_redraw)
+ if (m_screen_redraw)
{
int offs;
for (offs = 0; offs < 0x8000; offs++)
{
- mjsister_plot0(screen.machine(), offs, state->m_videoram0[offs]);
- mjsister_plot1(screen.machine(), offs, state->m_videoram1[offs]);
+ mjsister_plot0(screen.machine(), offs, m_videoram0[offs]);
+ mjsister_plot1(screen.machine(), offs, m_videoram1[offs]);
}
- state->m_screen_redraw = 0;
+ m_screen_redraw = 0;
}
- if (state->m_video_enable)
+ if (m_video_enable)
{
for (i = 0; i < 256; i++)
for (j = 0; j < 4; j++)
- bitmap.pix16(i, 256 + j) = state->m_colorbank * 0x20;
+ bitmap.pix16(i, 256 + j) = m_colorbank * 0x20;
- copybitmap(bitmap, *state->m_tmpbitmap0, flip, flip, 0, 0, cliprect);
- copybitmap_trans(bitmap, *state->m_tmpbitmap1, flip, flip, 2, 0, cliprect, 0);
+ copybitmap(bitmap, *m_tmpbitmap0, flip, flip, 0, 0, cliprect);
+ copybitmap_trans(bitmap, *m_tmpbitmap1, flip, flip, 2, 0, cliprect, 0);
}
else
bitmap.fill(get_black_pen(screen.machine()), cliprect);
@@ -508,7 +508,7 @@ static MACHINE_CONFIG_START( mjsister, mjsister_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256+4, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 255+4, 8, 247)
- MCFG_SCREEN_UPDATE_STATIC(mjsister)
+ MCFG_SCREEN_UPDATE_DRIVER(mjsister_state, screen_update_mjsister)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/mlanding.c b/src/mame/drivers/mlanding.c
index e03dd2b8af3..20af7c33a37 100644
--- a/src/mame/drivers/mlanding.c
+++ b/src/mame/drivers/mlanding.c
@@ -77,6 +77,7 @@ public:
DECLARE_DRIVER_INIT(mlanding);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_mlanding(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -89,22 +90,21 @@ void mlanding_state::video_start()
// 256: Cockpit
// 512: control centre screen
// 768: plane landing sequence
-static SCREEN_UPDATE_IND16(mlanding)
+UINT32 mlanding_state::screen_update_mlanding(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mlanding_state *state = screen.machine().driver_data<mlanding_state>();
int x, y;
for (y = cliprect.min_y; y <= cliprect.max_y; ++y)
{
- UINT16 *src = &state->m_g_ram[y * 512/2 + cliprect.min_x];
+ UINT16 *src = &m_g_ram[y * 512/2 + cliprect.min_x];
UINT16 *dst = &bitmap.pix16(y, cliprect.min_x);
for (x = cliprect.min_x; x <= cliprect.max_x; x += 2)
{
UINT16 srcpix = *src++;
- *dst++ = screen.machine().pens[256+(srcpix & 0xff) + (state->m_pal_fg_bank & 1 ? 0x100 : 0x000)];
- *dst++ = screen.machine().pens[256+(srcpix >> 8) + (state->m_pal_fg_bank & 1 ? 0x100 : 0x000)];
+ *dst++ = screen.machine().pens[256+(srcpix & 0xff) + (m_pal_fg_bank & 1 ? 0x100 : 0x000)];
+ *dst++ = screen.machine().pens[256+(srcpix >> 8) + (m_pal_fg_bank & 1 ? 0x100 : 0x000)];
}
}
@@ -794,7 +794,7 @@ static MACHINE_CONFIG_START( mlanding, mlanding_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 512)
MCFG_SCREEN_VISIBLE_AREA(0, 511, 14*8, 511)
- MCFG_SCREEN_UPDATE_STATIC(mlanding)
+ MCFG_SCREEN_UPDATE_DRIVER(mlanding_state, screen_update_mlanding)
MCFG_PALETTE_LENGTH(512*16)
diff --git a/src/mame/drivers/model1.c b/src/mame/drivers/model1.c
index a7421e1b2b5..3181e0ff12c 100644
--- a/src/mame/drivers/model1.c
+++ b/src/mame/drivers/model1.c
@@ -1535,8 +1535,8 @@ static MACHINE_CONFIG_START( model1, model1_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL_16MHz, 656, 0/*+69*/, 496/*+69*/, 424, 0/*+25*/, 384/*+25*/)
- MCFG_SCREEN_UPDATE_STATIC(model1)
- MCFG_SCREEN_VBLANK_STATIC(model1)
+ MCFG_SCREEN_UPDATE_DRIVER(model1_state, screen_update_model1)
+ MCFG_SCREEN_VBLANK_DRIVER(model1_state, screen_eof_model1)
MCFG_PALETTE_LENGTH(8192)
@@ -1584,8 +1584,8 @@ static MACHINE_CONFIG_START( model1_vr, model1_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL_16MHz, 656, 0/*+69*/, 496/*+69*/, 424, 0/*+25*/, 384/*+25*/)
- MCFG_SCREEN_UPDATE_STATIC(model1)
- MCFG_SCREEN_VBLANK_STATIC(model1)
+ MCFG_SCREEN_UPDATE_DRIVER(model1_state, screen_update_model1)
+ MCFG_SCREEN_VBLANK_DRIVER(model1_state, screen_eof_model1)
MCFG_PALETTE_LENGTH(8192)
diff --git a/src/mame/drivers/model2.c b/src/mame/drivers/model2.c
index 8502d9e9a0b..ae3de414bb6 100644
--- a/src/mame/drivers/model2.c
+++ b/src/mame/drivers/model2.c
@@ -2001,7 +2001,7 @@ static MACHINE_CONFIG_START( model2o, model2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(62*8, 48*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 48*8-1)
- MCFG_SCREEN_UPDATE_STATIC(model2)
+ MCFG_SCREEN_UPDATE_DRIVER(model2_state, screen_update_model2)
MCFG_PALETTE_LENGTH(8192)
@@ -2059,7 +2059,7 @@ static MACHINE_CONFIG_START( model2a, model2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(62*8, 48*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 48*8-1)
- MCFG_SCREEN_UPDATE_STATIC(model2)
+ MCFG_SCREEN_UPDATE_DRIVER(model2_state, screen_update_model2)
MCFG_PALETTE_LENGTH(8192)
@@ -2162,7 +2162,7 @@ static MACHINE_CONFIG_START( model2b, model2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(62*8, 48*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 48*8-1)
- MCFG_SCREEN_UPDATE_STATIC(model2)
+ MCFG_SCREEN_UPDATE_DRIVER(model2_state, screen_update_model2)
MCFG_PALETTE_LENGTH(8192)
@@ -2209,7 +2209,7 @@ static MACHINE_CONFIG_START( model2c, model2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(62*8, 48*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 62*8-1, 0*8, 48*8-1)
- MCFG_SCREEN_UPDATE_STATIC(model2)
+ MCFG_SCREEN_UPDATE_DRIVER(model2_state, screen_update_model2)
MCFG_PALETTE_LENGTH(8192)
diff --git a/src/mame/drivers/model3.c b/src/mame/drivers/model3.c
index f7d9f9f74f0..41cdae70b67 100644
--- a/src/mame/drivers/model3.c
+++ b/src/mame/drivers/model3.c
@@ -5309,7 +5309,7 @@ static MACHINE_CONFIG_START( model3_10, model3_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VISIBLE_AREA(0, 495, 0, 383)
MCFG_SCREEN_SIZE(512, 400)
- MCFG_SCREEN_UPDATE_STATIC(model3)
+ MCFG_SCREEN_UPDATE_DRIVER(model3_state, screen_update_model3)
MCFG_PALETTE_LENGTH(32768)
MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB)
@@ -5350,7 +5350,7 @@ static MACHINE_CONFIG_START( model3_15, model3_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VISIBLE_AREA(0, 495, 0, 383)
MCFG_SCREEN_SIZE(496, 400)
- MCFG_SCREEN_UPDATE_STATIC(model3)
+ MCFG_SCREEN_UPDATE_DRIVER(model3_state, screen_update_model3)
MCFG_PALETTE_LENGTH(32768)
MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB)
@@ -5391,7 +5391,7 @@ static MACHINE_CONFIG_START( model3_20, model3_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VISIBLE_AREA(0, 495, 0, 383)
MCFG_SCREEN_SIZE(496, 400)
- MCFG_SCREEN_UPDATE_STATIC(model3)
+ MCFG_SCREEN_UPDATE_DRIVER(model3_state, screen_update_model3)
MCFG_PALETTE_LENGTH(32768)
MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB)
@@ -5430,7 +5430,7 @@ static MACHINE_CONFIG_START( model3_21, model3_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_VISIBLE_AREA(0, 495, 0, 383)
MCFG_SCREEN_SIZE(496, 400)
- MCFG_SCREEN_UPDATE_STATIC(model3)
+ MCFG_SCREEN_UPDATE_DRIVER(model3_state, screen_update_model3)
MCFG_PALETTE_LENGTH(32768)
MCFG_PALETTE_INIT(RRRRR_GGGGG_BBBBB)
diff --git a/src/mame/drivers/mogura.c b/src/mame/drivers/mogura.c
index 2e3bb842aef..79aafc18472 100644
--- a/src/mame/drivers/mogura.c
+++ b/src/mame/drivers/mogura.c
@@ -31,6 +31,7 @@ public:
virtual void machine_start();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_mogura(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -86,21 +87,20 @@ void mogura_state::video_start()
m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(mogura_state::get_mogura_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
}
-static SCREEN_UPDATE_IND16( mogura )
+UINT32 mogura_state::screen_update_mogura(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mogura_state *state = screen.machine().driver_data<mogura_state>();
const rectangle &visarea = screen.visible_area();
/* tilemap layout is a bit strange ... */
rectangle clip = visarea;
clip.max_x = 256 - 1;
- state->m_tilemap->set_scrollx(0, 256);
- state->m_tilemap->draw(bitmap, clip, 0, 0);
+ m_tilemap->set_scrollx(0, 256);
+ m_tilemap->draw(bitmap, clip, 0, 0);
clip.min_x = 256;
clip.max_x = 512 - 1;
- state->m_tilemap->set_scrollx(0, -128);
- state->m_tilemap->draw(bitmap, clip, 0, 0);
+ m_tilemap->set_scrollx(0, -128);
+ m_tilemap->draw(bitmap, clip, 0, 0);
return 0;
}
@@ -215,7 +215,7 @@ static MACHINE_CONFIG_START( mogura, mogura_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 512)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(mogura)
+ MCFG_SCREEN_UPDATE_DRIVER(mogura_state, screen_update_mogura)
MCFG_PALETTE_LENGTH(32)
diff --git a/src/mame/drivers/mole.c b/src/mame/drivers/mole.c
index 45e3c676fea..3d96b5abe69 100644
--- a/src/mame/drivers/mole.c
+++ b/src/mame/drivers/mole.c
@@ -74,6 +74,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_mole(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -122,11 +123,10 @@ WRITE8_MEMBER(mole_state::mole_flipscreen_w)
flip_screen_set(data & 0x01);
}
-static SCREEN_UPDATE_IND16( mole )
+UINT32 mole_state::screen_update_mole(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mole_state *state = screen.machine().driver_data<mole_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -325,7 +325,7 @@ static MACHINE_CONFIG_START( mole, mole_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 25*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 25*8-1)
- MCFG_SCREEN_UPDATE_STATIC(mole)
+ MCFG_SCREEN_UPDATE_DRIVER(mole_state, screen_update_mole)
MCFG_GFXDECODE(mole)
MCFG_PALETTE_LENGTH(8)
diff --git a/src/mame/drivers/momoko.c b/src/mame/drivers/momoko.c
index 59802748c2a..c053fb7b04b 100644
--- a/src/mame/drivers/momoko.c
+++ b/src/mame/drivers/momoko.c
@@ -275,7 +275,7 @@ static MACHINE_CONFIG_START( momoko, momoko_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 29*8-1)
- MCFG_SCREEN_UPDATE_STATIC(momoko)
+ MCFG_SCREEN_UPDATE_DRIVER(momoko_state, screen_update_momoko)
MCFG_GFXDECODE(momoko)
MCFG_PALETTE_LENGTH(512)
diff --git a/src/mame/drivers/monzagp.c b/src/mame/drivers/monzagp.c
index 5c8588964e3..9d8c39b3b13 100644
--- a/src/mame/drivers/monzagp.c
+++ b/src/mame/drivers/monzagp.c
@@ -55,6 +55,7 @@ public:
DECLARE_WRITE8_MEMBER(port3_w);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_monzagp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -69,33 +70,32 @@ void monzagp_state::video_start()
m_vram = auto_alloc_array(machine(), UINT8, 0x10000);
}
-static SCREEN_UPDATE_IND16(monzagp)
+UINT32 monzagp_state::screen_update_monzagp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- monzagp_state *state = screen.machine().driver_data<monzagp_state>();
int x,y;
if(screen.machine().input().code_pressed_once(KEYCODE_Z))
- state->m_bank--;
+ m_bank--;
if(screen.machine().input().code_pressed_once(KEYCODE_X))
- state->m_bank++;
+ m_bank++;
if(screen.machine().input().code_pressed_once(KEYCODE_Q))
{
- state->m_screenw--;
- printf("%x\n",state->m_screenw);
+ m_screenw--;
+ printf("%x\n",m_screenw);
}
if(screen.machine().input().code_pressed_once(KEYCODE_W))
{
- state->m_screenw++;
- printf("%x\n",state->m_screenw);
+ m_screenw++;
+ printf("%x\n",m_screenw);
}
if(screen.machine().input().code_pressed_once(KEYCODE_A))
{
FILE * p=fopen("vram.bin","wb");
- fwrite(&state->m_vram[0],1,0x10000,p);
+ fwrite(&m_vram[0],1,0x10000,p);
fclose(p);
}
@@ -104,9 +104,9 @@ static SCREEN_UPDATE_IND16(monzagp)
{
for(x=0;x<256;x++)
{
- drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[state->m_bank&1],
- state->m_vram[y*state->m_screenw+x],
- //(state->m_vram[y*state->m_screenw+x]&0x3f)+(state->m_bank>>1)*64,
+ drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[m_bank&1],
+ m_vram[y*m_screenw+x],
+ //(m_vram[y*m_screenw+x]&0x3f)+(m_bank>>1)*64,
0,
0, 0,
x*8,y*8,
@@ -267,7 +267,7 @@ static MACHINE_CONFIG_START( monzagp, monzagp_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(monzagp)
+ MCFG_SCREEN_UPDATE_DRIVER(monzagp_state, screen_update_monzagp)
MCFG_PALETTE_LENGTH(0x200)
diff --git a/src/mame/drivers/moo.c b/src/mame/drivers/moo.c
index 8fbca97b189..4e857bf98a9 100644
--- a/src/mame/drivers/moo.c
+++ b/src/mame/drivers/moo.c
@@ -535,7 +535,7 @@ static MACHINE_CONFIG_START( moo, moo_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1200)) // should give IRQ4 sufficient time to update scroll registers
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1)
- MCFG_SCREEN_UPDATE_STATIC(moo)
+ MCFG_SCREEN_UPDATE_DRIVER(moo_state, screen_update_moo)
MCFG_PALETTE_LENGTH(2048)
@@ -578,7 +578,7 @@ static MACHINE_CONFIG_START( moobl, moo_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1200)) // should give IRQ4 sufficient time to update scroll registers
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1)
- MCFG_SCREEN_UPDATE_STATIC(moo)
+ MCFG_SCREEN_UPDATE_DRIVER(moo_state, screen_update_moo)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/mosaic.c b/src/mame/drivers/mosaic.c
index 048f42228bf..2f19198031c 100644
--- a/src/mame/drivers/mosaic.c
+++ b/src/mame/drivers/mosaic.c
@@ -276,7 +276,7 @@ static MACHINE_CONFIG_START( mosaic, mosaic_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, 48*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(mosaic)
+ MCFG_SCREEN_UPDATE_DRIVER(mosaic_state, screen_update_mosaic)
MCFG_GFXDECODE(mosaic)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/mouser.c b/src/mame/drivers/mouser.c
index 8af6bb0c178..fe4c2b6a112 100644
--- a/src/mame/drivers/mouser.c
+++ b/src/mame/drivers/mouser.c
@@ -219,7 +219,7 @@ static MACHINE_CONFIG_START( mouser, mouser_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(mouser)
+ MCFG_SCREEN_UPDATE_DRIVER(mouser_state, screen_update_mouser)
MCFG_GFXDECODE(mouser)
MCFG_PALETTE_LENGTH(64)
diff --git a/src/mame/drivers/mpoker.c b/src/mame/drivers/mpoker.c
index 08237846a5e..2da44d68377 100644
--- a/src/mame/drivers/mpoker.c
+++ b/src/mame/drivers/mpoker.c
@@ -197,6 +197,7 @@ public:
DECLARE_WRITE8_MEMBER(sound_w);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_mpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -205,9 +206,8 @@ void mpoker_state::video_start()
}
-static SCREEN_UPDATE_IND16(mpoker)
+UINT32 mpoker_state::screen_update_mpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mpoker_state *state = screen.machine().driver_data<mpoker_state>();
int y,x;
int count;
gfx_element *gfx = screen.machine().gfx[0];
@@ -217,8 +217,8 @@ static SCREEN_UPDATE_IND16(mpoker)
{
for (x=0;x<32;x++)
{
- UINT16 dat = state->m_video[count];
- UINT16 col = state->m_video[count+0x400] & 0x7f;
+ UINT16 dat = m_video[count];
+ UINT16 col = m_video[count+0x400] & 0x7f;
drawgfx_opaque(bitmap,cliprect,gfx,dat,col,0,0,x*16,y*16);
count++;
}
@@ -596,7 +596,7 @@ static MACHINE_CONFIG_START( mpoker, mpoker_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(mpoker)
+ MCFG_SCREEN_UPDATE_DRIVER(mpoker_state, screen_update_mpoker)
MCFG_GFXDECODE(mpoker)
MCFG_PALETTE_LENGTH(0x200)
diff --git a/src/mame/drivers/mpu4dealem.c b/src/mame/drivers/mpu4dealem.c
index 0f33228f2a7..21d95123826 100644
--- a/src/mame/drivers/mpu4dealem.c
+++ b/src/mame/drivers/mpu4dealem.c
@@ -30,6 +30,7 @@ public:
optional_shared_ptr<UINT8> m_dealem_videoram;
DECLARE_MACHINE_RESET(dealem_vid);
DECLARE_PALETTE_INIT(dealem);
+ UINT32 screen_update_dealem(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -112,9 +113,8 @@ PALETTE_INIT_MEMBER(mpu4dealem_state,dealem)
}
-static SCREEN_UPDATE_IND16(dealem)
+UINT32 mpu4dealem_state::screen_update_dealem(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mpu4dealem_state *state = screen.machine().driver_data<mpu4dealem_state>();
int x,y;
int count = 0;
@@ -122,7 +122,7 @@ static SCREEN_UPDATE_IND16(dealem)
{
for (x = 0; x < 40; x++)
{
- int tile = state->m_dealem_videoram[count + 0x1000] | (state->m_dealem_videoram[count] << 8);
+ int tile = m_dealem_videoram[count + 0x1000] | (m_dealem_videoram[count] << 8);
count++;
drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],tile,0,0,0,x * 8,y * 8);
}
@@ -225,7 +225,7 @@ static MACHINE_CONFIG_START( dealem, mpu4dealem_state )
MCFG_SCREEN_SIZE((54+1)*8, (32+1)*8) /* Taken from 6845 init, registers 00 & 04. Normally programmed with (value-1) */
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 31*8-1) /* Taken from 6845 init, registers 01 & 06 */
MCFG_SCREEN_REFRESH_RATE(56) /* Measured accurately from the flip-flop, but 6845 handles this */
- MCFG_SCREEN_UPDATE_STATIC(dealem)
+ MCFG_SCREEN_UPDATE_DRIVER(mpu4dealem_state, screen_update_dealem)
MCFG_GFXDECODE(dealem)
diff --git a/src/mame/drivers/mpu4plasma.c b/src/mame/drivers/mpu4plasma.c
index 25b7d482825..d908c29d5f1 100644
--- a/src/mame/drivers/mpu4plasma.c
+++ b/src/mame/drivers/mpu4plasma.c
@@ -30,6 +30,7 @@ public:
{
}
+ UINT32 screen_update_mpu4plasma(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -48,13 +49,12 @@ static ADDRESS_MAP_START( mpu4plasma_map, AS_PROGRAM, 16, mpu4plasma_state )
AM_RANGE(0xffff04, 0xffff05) AM_WRITE( mpu4plasma_unk_w )
ADDRESS_MAP_END
-SCREEN_UPDATE_IND16( mpu4plasma )
+UINT32 mpu4plasma_state::screen_update_mpu4plasma(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
// don't know if this really gets drawn straight from ram..
- mpu4plasma_state *state = screen.machine().driver_data<mpu4plasma_state>();
int base = 0x1600 / 2;
- UINT16* rambase = state->m_plasmaram;
+ UINT16* rambase = m_plasmaram;
UINT16* dst_bitmap;
int i,y,x,p;
@@ -94,7 +94,7 @@ MACHINE_CONFIG_DERIVED_CLASS( mpu4plasma , mod2, mpu4plasma_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 128-1, 0*8, 40-1)
- MCFG_SCREEN_UPDATE_STATIC(mpu4plasma)
+ MCFG_SCREEN_UPDATE_DRIVER(mpu4plasma_state, screen_update_mpu4plasma)
MCFG_PALETTE_LENGTH(0x200)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/mpu4vid.c b/src/mame/drivers/mpu4vid.c
index a9592f670e1..8f6a9563260 100644
--- a/src/mame/drivers/mpu4vid.c
+++ b/src/mame/drivers/mpu4vid.c
@@ -268,6 +268,7 @@ public:
DECLARE_MACHINE_START(mpu4_vid);
DECLARE_MACHINE_RESET(mpu4_vid);
DECLARE_VIDEO_START(mpu4_vid);
+ UINT32 screen_update_mpu4_vid(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -511,13 +512,12 @@ static const gfx_layout mpu4_vid_char_16x16_layout =
-static SCREEN_UPDATE_RGB32(mpu4_vid)
+UINT32 mpu4vid_state::screen_update_mpu4_vid(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- mpu4vid_state *state = screen.machine().driver_data<mpu4vid_state>();
bitmap.fill(0, cliprect);
- state->m_scn2674->scn2574_draw(screen.machine(), bitmap, cliprect, state->m_vid_mainram );
+ m_scn2674->scn2574_draw(screen.machine(), bitmap, cliprect, m_vid_mainram );
return 0;
}
@@ -1518,7 +1518,7 @@ static MACHINE_CONFIG_START( mpu4_vid, mpu4vid_state )
MCFG_SCREEN_VISIBLE_AREA(0, (63*8)+(0)-1, 0, (37*8)+0-1)
MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_UPDATE_STATIC(mpu4_vid)
+ MCFG_SCREEN_UPDATE_DRIVER(mpu4vid_state, screen_update_mpu4_vid)
MCFG_DEVICE_ADD("scn2674_vid", SCN2674_VIDEO, 0)
scn2674_device::set_irq_update_callback(*device, update_mpu68_interrupts);
diff --git a/src/mame/drivers/mquake.c b/src/mame/drivers/mquake.c
index 82a833557e7..d0bf3538901 100644
--- a/src/mame/drivers/mquake.c
+++ b/src/mame/drivers/mquake.c
@@ -354,7 +354,7 @@ static MACHINE_CONFIG_START( mquake, amiga_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512*2, 262)
MCFG_SCREEN_VISIBLE_AREA((129-8)*2, (449+8-1)*2, 44-8, 244+8-1)
- MCFG_SCREEN_UPDATE_STATIC(amiga)
+ MCFG_SCREEN_UPDATE_DRIVER(amiga_state, screen_update_amiga)
MCFG_PALETTE_LENGTH(4096)
MCFG_PALETTE_INIT_OVERRIDE(amiga_state,amiga)
diff --git a/src/mame/drivers/mrdo.c b/src/mame/drivers/mrdo.c
index 416ff575471..0bf17f4204d 100644
--- a/src/mame/drivers/mrdo.c
+++ b/src/mame/drivers/mrdo.c
@@ -191,7 +191,7 @@ static MACHINE_CONFIG_START( mrdo, mrdo_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK/4, 312, 8, 248, 262, 32, 224)
- MCFG_SCREEN_UPDATE_STATIC(mrdo)
+ MCFG_SCREEN_UPDATE_DRIVER(mrdo_state, screen_update_mrdo)
MCFG_GFXDECODE(mrdo)
MCFG_PALETTE_LENGTH(64*4+16*4)
diff --git a/src/mame/drivers/mrflea.c b/src/mame/drivers/mrflea.c
index 863651885f3..c5a00afa7a0 100644
--- a/src/mame/drivers/mrflea.c
+++ b/src/mame/drivers/mrflea.c
@@ -373,7 +373,7 @@ static MACHINE_CONFIG_START( mrflea, mrflea_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(mrflea)
+ MCFG_SCREEN_UPDATE_DRIVER(mrflea_state, screen_update_mrflea)
MCFG_GFXDECODE(mrflea)
MCFG_PALETTE_LENGTH(32)
diff --git a/src/mame/drivers/mrjong.c b/src/mame/drivers/mrjong.c
index 22e718ce728..c649556c755 100644
--- a/src/mame/drivers/mrjong.c
+++ b/src/mame/drivers/mrjong.c
@@ -209,7 +209,7 @@ static MACHINE_CONFIG_START( mrjong, mrjong_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 30*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(mrjong)
+ MCFG_SCREEN_UPDATE_DRIVER(mrjong_state, screen_update_mrjong)
MCFG_GFXDECODE(mrjong)
MCFG_PALETTE_LENGTH(4*32)
diff --git a/src/mame/drivers/ms32.c b/src/mame/drivers/ms32.c
index a877facba34..e9a02730acb 100644
--- a/src/mame/drivers/ms32.c
+++ b/src/mame/drivers/ms32.c
@@ -1408,7 +1408,7 @@ static MACHINE_CONFIG_START( ms32, ms32_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 28*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(ms32)
+ MCFG_SCREEN_UPDATE_DRIVER(ms32_state, screen_update_ms32)
MCFG_GFXDECODE(ms32)
MCFG_PALETTE_LENGTH(0x10000)
diff --git a/src/mame/drivers/msisaac.c b/src/mame/drivers/msisaac.c
index c68d2f96cc8..a0bd58410be 100644
--- a/src/mame/drivers/msisaac.c
+++ b/src/mame/drivers/msisaac.c
@@ -497,7 +497,7 @@ static MACHINE_CONFIG_START( msisaac, msisaac_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(msisaac)
+ MCFG_SCREEN_UPDATE_DRIVER(msisaac_state, screen_update_msisaac)
MCFG_GFXDECODE(msisaac)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/mugsmash.c b/src/mame/drivers/mugsmash.c
index d48c6265aad..cea78832e1a 100644
--- a/src/mame/drivers/mugsmash.c
+++ b/src/mame/drivers/mugsmash.c
@@ -421,7 +421,7 @@ static MACHINE_CONFIG_START( mugsmash, mugsmash_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(mugsmash)
+ MCFG_SCREEN_UPDATE_DRIVER(mugsmash_state, screen_update_mugsmash)
MCFG_GFXDECODE(mugsmash)
MCFG_PALETTE_LENGTH(0x300)
diff --git a/src/mame/drivers/multfish.c b/src/mame/drivers/multfish.c
index 4845d5a5033..49eef71823f 100644
--- a/src/mame/drivers/multfish.c
+++ b/src/mame/drivers/multfish.c
@@ -239,6 +239,7 @@ public:
virtual void machine_reset();
virtual void video_start();
DECLARE_MACHINE_RESET(island2a);
+ UINT32 screen_update_multfish(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
TILE_GET_INFO_MEMBER(multfish_state::get_multfish_tile_info)
@@ -280,28 +281,27 @@ void multfish_state::video_start()
m_reel_tilemap->set_scroll_cols(64);
}
-static SCREEN_UPDATE_IND16(multfish)
+UINT32 multfish_state::screen_update_multfish(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- multfish_state *state = screen.machine().driver_data<multfish_state>();
int i;
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- if (!state->m_disp_enable) return 0;
+ if (!m_disp_enable) return 0;
/* Draw lower part of static tilemap (low pri tiles) */
- state->m_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1),0);
+ m_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1),0);
/* Setup the column scroll and draw the reels */
for (i=0;i<64;i++)
{
- int colscroll = (state->m_vid[i*2] | state->m_vid[i*2+1] << 8);
- state->m_reel_tilemap->set_scrolly(i, colscroll );
+ int colscroll = (m_vid[i*2] | m_vid[i*2+1] << 8);
+ m_reel_tilemap->set_scrolly(i, colscroll );
}
- state->m_reel_tilemap->draw(bitmap, cliprect, 0,0);
+ m_reel_tilemap->draw(bitmap, cliprect, 0,0);
/* Draw upper part of static tilemap (high pri tiles) */
- state->m_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0),0);
+ m_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0),0);
return 0;
}
@@ -1108,7 +1108,7 @@ static MACHINE_CONFIG_START( multfish, multfish_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*16, 32*16)
MCFG_SCREEN_VISIBLE_AREA(17*16, 1024-16*7-1, 1*16, 32*16-1*16-1)
- MCFG_SCREEN_UPDATE_STATIC(multfish)
+ MCFG_SCREEN_UPDATE_DRIVER(multfish_state, screen_update_multfish)
MCFG_GFXDECODE(multfish)
MCFG_PALETTE_LENGTH(0x1000)
diff --git a/src/mame/drivers/multigam.c b/src/mame/drivers/multigam.c
index 084e2abb536..415c38508e3 100644
--- a/src/mame/drivers/multigam.c
+++ b/src/mame/drivers/multigam.c
@@ -144,6 +144,7 @@ public:
DECLARE_MACHINE_START(multigm3);
DECLARE_MACHINE_RESET(multigm3);
DECLARE_MACHINE_START(supergm3);
+ UINT32 screen_update_multigam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -1114,7 +1115,7 @@ void multigam_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( multigam )
+UINT32 multigam_state::screen_update_multigam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
/* render the ppu */
ppu2c0x_device *ppu = screen.machine().device<ppu2c0x_device>("ppu");
@@ -1203,7 +1204,7 @@ static MACHINE_CONFIG_START( multigam, multigam_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(32*8, 262)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(multigam)
+ MCFG_SCREEN_UPDATE_DRIVER(multigam_state, screen_update_multigam)
MCFG_GFXDECODE(multigam)
MCFG_PALETTE_LENGTH(8*4*16)
diff --git a/src/mame/drivers/munchmo.c b/src/mame/drivers/munchmo.c
index bc233fdb25a..4c199cdeca0 100644
--- a/src/mame/drivers/munchmo.c
+++ b/src/mame/drivers/munchmo.c
@@ -343,7 +343,7 @@ static MACHINE_CONFIG_START( mnchmobl, munchmo_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256+32+32, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 255+32+32,0, 255-16)
- MCFG_SCREEN_UPDATE_STATIC(mnchmobl)
+ MCFG_SCREEN_UPDATE_DRIVER(munchmo_state, screen_update_mnchmobl)
MCFG_GFXDECODE(mnchmobl)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/murogem.c b/src/mame/drivers/murogem.c
index 0ee9369bd98..441c57cb866 100644
--- a/src/mame/drivers/murogem.c
+++ b/src/mame/drivers/murogem.c
@@ -120,6 +120,7 @@ public:
required_shared_ptr<UINT8> m_videoram;
DECLARE_WRITE8_MEMBER(outport_w);
virtual void palette_init();
+ UINT32 screen_update_murogem(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -202,9 +203,8 @@ GFXDECODE_END
void murogem_state::palette_init()
{}
-static SCREEN_UPDATE_IND16(murogem)
+UINT32 murogem_state::screen_update_murogem(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- murogem_state *state = screen.machine().driver_data<murogem_state>();
int xx,yy,count;
count = 0x000;
@@ -214,8 +214,8 @@ static SCREEN_UPDATE_IND16(murogem)
{
for(xx=0;xx<32;xx++)
{
- int tileno = state->m_videoram[count]&0x3f;
- int attr = state->m_videoram[count+0x400]&0x0f;
+ int tileno = m_videoram[count]&0x3f;
+ int attr = m_videoram[count+0x400]&0x0f;
drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0],tileno,attr,0,0,xx*8,yy*8,0);
@@ -255,7 +255,7 @@ static MACHINE_CONFIG_START( murogem, murogem_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE((39+1)*8, (38+1)*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(murogem)
+ MCFG_SCREEN_UPDATE_DRIVER(murogem_state, screen_update_murogem)
MCFG_GFXDECODE(murogem)
MCFG_PALETTE_LENGTH(0x100)
diff --git a/src/mame/drivers/murogmbl.c b/src/mame/drivers/murogmbl.c
index 20bb09d08fb..5524bd163e5 100644
--- a/src/mame/drivers/murogmbl.c
+++ b/src/mame/drivers/murogmbl.c
@@ -48,6 +48,7 @@ public:
required_shared_ptr<UINT8> m_video;
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_murogmbl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -94,9 +95,8 @@ void murogmbl_state::video_start()
}
-static SCREEN_UPDATE_IND16(murogmbl)
+UINT32 murogmbl_state::screen_update_murogmbl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- murogmbl_state *state = screen.machine().driver_data<murogmbl_state>();
gfx_element *gfx = screen.machine().gfx[0];
int count = 0;
@@ -106,7 +106,7 @@ static SCREEN_UPDATE_IND16(murogmbl)
{
for (x = 0; x < 32; x++)
{
- int tile = state->m_video[count];
+ int tile = m_video[count];
drawgfx_opaque(bitmap, cliprect, gfx, tile, 0, 0, 0, x * 8, y * 8);
count++;
@@ -194,7 +194,7 @@ static MACHINE_CONFIG_START( murogmbl, murogmbl_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(murogmbl)
+ MCFG_SCREEN_UPDATE_DRIVER(murogmbl_state, screen_update_murogmbl)
MCFG_PALETTE_LENGTH(0x100)
diff --git a/src/mame/drivers/mustache.c b/src/mame/drivers/mustache.c
index 23807101f2a..80519a8d3e8 100644
--- a/src/mame/drivers/mustache.c
+++ b/src/mame/drivers/mustache.c
@@ -201,7 +201,7 @@ static MACHINE_CONFIG_START( mustache, mustache_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(mustache)
+ MCFG_SCREEN_UPDATE_DRIVER(mustache_state, screen_update_mustache)
MCFG_GFXDECODE(mustache)
MCFG_PALETTE_LENGTH(8*16+16*8)
diff --git a/src/mame/drivers/mw8080bw.c b/src/mame/drivers/mw8080bw.c
index c40d5ff3276..a12c6a37892 100644
--- a/src/mame/drivers/mw8080bw.c
+++ b/src/mame/drivers/mw8080bw.c
@@ -231,7 +231,7 @@ MACHINE_CONFIG_START( mw8080bw_root, mw8080bw_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MW8080BW_PIXEL_CLOCK, MW8080BW_HTOTAL, MW8080BW_HBEND, MW8080BW_HPIXCOUNT, MW8080BW_VTOTAL, MW8080BW_VBEND, MW8080BW_VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(mw8080bw)
+ MCFG_SCREEN_UPDATE_DRIVER(mw8080bw_state, screen_update_mw8080bw)
MACHINE_CONFIG_END
@@ -2269,7 +2269,7 @@ static MACHINE_CONFIG_DERIVED( spcenctr, mw8080bw_root )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(spcenctr)
+ MCFG_SCREEN_UPDATE_DRIVER(mw8080bw_state, screen_update_spcenctr)
/* audio hardware */
MCFG_FRAGMENT_ADD(spcenctr_audio)
@@ -2356,8 +2356,8 @@ static MACHINE_CONFIG_DERIVED( phantom2, mw8080bw_root )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(phantom2)
- MCFG_SCREEN_VBLANK_STATIC(phantom2)
+ MCFG_SCREEN_UPDATE_DRIVER(mw8080bw_state, screen_update_phantom2)
+ MCFG_SCREEN_VBLANK_DRIVER(mw8080bw_state, screen_eof_phantom2)
/* add shifter */
MCFG_MB14241_ADD("mb14241")
@@ -2705,7 +2705,7 @@ MACHINE_CONFIG_DERIVED( invaders, mw8080bw_root )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(invaders)
+ MCFG_SCREEN_UPDATE_DRIVER(mw8080bw_state, screen_update_invaders)
/* add shifter */
MCFG_MB14241_ADD("mb14241")
diff --git a/src/mame/drivers/mwarr.c b/src/mame/drivers/mwarr.c
index fcb04051420..b73b926b4c3 100644
--- a/src/mame/drivers/mwarr.c
+++ b/src/mame/drivers/mwarr.c
@@ -99,6 +99,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_mwarr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -480,57 +481,56 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-static SCREEN_UPDATE_IND16( mwarr )
+UINT32 mwarr_state::screen_update_mwarr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mwarr_state *state = screen.machine().driver_data<mwarr_state>();
int i;
screen.machine().priority_bitmap.fill(0, cliprect);
- if (BIT(state->m_vidattrram[6], 0))
+ if (BIT(m_vidattrram[6], 0))
{
for (i = 0; i < 256; i++)
- state->m_bg_tilemap->set_scrollx(i, state->m_bg_scrollram[i] + 20);
+ m_bg_tilemap->set_scrollx(i, m_bg_scrollram[i] + 20);
}
else
{
for (i = 0; i < 256; i++)
- state->m_bg_tilemap->set_scrollx(i, state->m_bg_scrollram[0] + 19);
+ m_bg_tilemap->set_scrollx(i, m_bg_scrollram[0] + 19);
}
- if (BIT(state->m_vidattrram[6], 2))
+ if (BIT(m_vidattrram[6], 2))
{
for (i = 0; i < 256; i++)
- state->m_mlow_tilemap->set_scrollx(i, state->m_mlow_scrollram[i] + 19);
+ m_mlow_tilemap->set_scrollx(i, m_mlow_scrollram[i] + 19);
}
else
{
for (i = 0; i < 256; i++)
- state->m_mlow_tilemap->set_scrollx(i, state->m_mlow_scrollram[0] + 19);
+ m_mlow_tilemap->set_scrollx(i, m_mlow_scrollram[0] + 19);
}
- if (BIT(state->m_vidattrram[6], 4))
+ if (BIT(m_vidattrram[6], 4))
{
for (i = 0; i < 256; i++)
- state->m_mhigh_tilemap->set_scrollx(i, state->m_mhigh_scrollram[i] + 19);
+ m_mhigh_tilemap->set_scrollx(i, m_mhigh_scrollram[i] + 19);
}
else
{
for (i = 0; i < 256; i++)
- state->m_mhigh_tilemap->set_scrollx(i, state->m_mhigh_scrollram[0] + 19);
+ m_mhigh_tilemap->set_scrollx(i, m_mhigh_scrollram[0] + 19);
}
- state->m_bg_tilemap->set_scrolly(0, state->m_vidattrram[1] + 1);
- state->m_mlow_tilemap->set_scrolly(0, state->m_vidattrram[2] + 1);
- state->m_mhigh_tilemap->set_scrolly(0, state->m_vidattrram[3] + 1);
+ m_bg_tilemap->set_scrolly(0, m_vidattrram[1] + 1);
+ m_mlow_tilemap->set_scrolly(0, m_vidattrram[2] + 1);
+ m_mhigh_tilemap->set_scrolly(0, m_vidattrram[3] + 1);
- state->m_tx_tilemap->set_scrollx(0, state->m_vidattrram[0] + 16);
- state->m_tx_tilemap->set_scrolly(0, state->m_vidattrram[4] + 1);
+ m_tx_tilemap->set_scrollx(0, m_vidattrram[0] + 16);
+ m_tx_tilemap->set_scrolly(0, m_vidattrram[4] + 1);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0x01);
- state->m_mlow_tilemap->draw(bitmap, cliprect, 0, 0x02);
- state->m_mhigh_tilemap->draw(bitmap, cliprect, 0, 0x04);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0x10);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0x01);
+ m_mlow_tilemap->draw(bitmap, cliprect, 0, 0x02);
+ m_mhigh_tilemap->draw(bitmap, cliprect, 0, 0x04);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0x10);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
@@ -567,7 +567,7 @@ static MACHINE_CONFIG_START( mwarr, mwarr_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8+1, 48*8-1-8-1, 0, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(mwarr)
+ MCFG_SCREEN_UPDATE_DRIVER(mwarr_state, screen_update_mwarr)
MCFG_GFXDECODE(mwarr)
MCFG_PALETTE_LENGTH(0x800)
diff --git a/src/mame/drivers/mystwarr.c b/src/mame/drivers/mystwarr.c
index 94405f64751..666fe8775e0 100644
--- a/src/mame/drivers/mystwarr.c
+++ b/src/mame/drivers/mystwarr.c
@@ -1009,7 +1009,7 @@ static MACHINE_CONFIG_START( mystwarr, mystwarr_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(600))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(24, 24+288-1, 16, 16+224-1)
- MCFG_SCREEN_UPDATE_STATIC(mystwarr)
+ MCFG_SCREEN_UPDATE_DRIVER(mystwarr_state, screen_update_mystwarr)
MCFG_PALETTE_LENGTH(2048)
@@ -1043,7 +1043,7 @@ static MACHINE_CONFIG_DERIVED( viostorm, mystwarr )
/* video hardware */
MCFG_VIDEO_START_OVERRIDE(mystwarr_state,viostorm)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(metamrph)
+ MCFG_SCREEN_UPDATE_DRIVER(mystwarr_state, screen_update_metamrph)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(900))
@@ -1068,7 +1068,7 @@ static MACHINE_CONFIG_DERIVED( metamrph, mystwarr )
/* video hardware */
MCFG_VIDEO_START_OVERRIDE(mystwarr_state,metamrph)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(metamrph)
+ MCFG_SCREEN_UPDATE_DRIVER(mystwarr_state, screen_update_metamrph)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(900))
@@ -1094,7 +1094,7 @@ static MACHINE_CONFIG_DERIVED( dadandrn, mystwarr )
/* video hardware */
MCFG_VIDEO_START_OVERRIDE(mystwarr_state,dadandrn)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(dadandrn)
+ MCFG_SCREEN_UPDATE_DRIVER(mystwarr_state, screen_update_dadandrn)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(600))
@@ -1123,7 +1123,7 @@ static MACHINE_CONFIG_DERIVED( gaiapols, mystwarr )
/* video hardware */
MCFG_VIDEO_START_OVERRIDE(mystwarr_state,gaiapols)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(dadandrn)
+ MCFG_SCREEN_UPDATE_DRIVER(mystwarr_state, screen_update_dadandrn)
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_RAW_PARAMS(8000000, 384+24+64+40, 0, 383, 224+16+8+16, 0, 223)
@@ -1150,7 +1150,7 @@ static MACHINE_CONFIG_DERIVED( martchmp, mystwarr )
MCFG_VIDEO_START_OVERRIDE(mystwarr_state,martchmp)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(martchmp)
+ MCFG_SCREEN_UPDATE_DRIVER(mystwarr_state, screen_update_martchmp)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(32, 32+384-1, 16, 16+224-1)
diff --git a/src/mame/drivers/n8080.c b/src/mame/drivers/n8080.c
index 912dad6c8b1..340bf43130a 100644
--- a/src/mame/drivers/n8080.c
+++ b/src/mame/drivers/n8080.c
@@ -554,7 +554,7 @@ static MACHINE_CONFIG_START( spacefev, n8080_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 255, 16, 239)
- MCFG_SCREEN_UPDATE_STATIC(spacefev)
+ MCFG_SCREEN_UPDATE_DRIVER(n8080_state, screen_update_spacefev)
MCFG_PALETTE_LENGTH(8)
MCFG_PALETTE_INIT_OVERRIDE(n8080_state,n8080)
@@ -584,7 +584,7 @@ static MACHINE_CONFIG_START( sheriff, n8080_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 255, 16, 239)
- MCFG_SCREEN_UPDATE_STATIC(sheriff)
+ MCFG_SCREEN_UPDATE_DRIVER(n8080_state, screen_update_sheriff)
MCFG_PALETTE_LENGTH(8)
MCFG_PALETTE_INIT_OVERRIDE(n8080_state,n8080)
@@ -625,8 +625,8 @@ static MACHINE_CONFIG_START( helifire, n8080_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 255, 16, 239)
- MCFG_SCREEN_UPDATE_STATIC(helifire)
- MCFG_SCREEN_VBLANK_STATIC(helifire)
+ MCFG_SCREEN_UPDATE_DRIVER(n8080_state, screen_update_helifire)
+ MCFG_SCREEN_VBLANK_DRIVER(n8080_state, screen_eof_helifire)
MCFG_PALETTE_LENGTH(8 + 0x400)
MCFG_PALETTE_INIT_OVERRIDE(n8080_state,helifire)
diff --git a/src/mame/drivers/namcofl.c b/src/mame/drivers/namcofl.c
index 1f7ac2f4501..1ee91ab2bd7 100644
--- a/src/mame/drivers/namcofl.c
+++ b/src/mame/drivers/namcofl.c
@@ -604,7 +604,7 @@ static MACHINE_CONFIG_START( namcofl, namcofl_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(NAMCOFL_HTOTAL, NAMCOFL_VTOTAL)
MCFG_SCREEN_VISIBLE_AREA(0, NAMCOFL_HBSTART-1, 0, NAMCOFL_VBSTART-1)
- MCFG_SCREEN_UPDATE_STATIC(namcofl)
+ MCFG_SCREEN_UPDATE_DRIVER(namcofl_state, screen_update_namcofl)
MCFG_PALETTE_LENGTH(8192)
diff --git a/src/mame/drivers/namcona1.c b/src/mame/drivers/namcona1.c
index 522dca08f48..979293985d3 100644
--- a/src/mame/drivers/namcona1.c
+++ b/src/mame/drivers/namcona1.c
@@ -1026,7 +1026,7 @@ static MACHINE_CONFIG_START( namcona1, namcona1_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(38*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8, 38*8-1-8, 4*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(namcona1)
+ MCFG_SCREEN_UPDATE_DRIVER(namcona1_state, screen_update_namcona1)
MCFG_PALETTE_LENGTH(0x2000)
diff --git a/src/mame/drivers/namconb1.c b/src/mame/drivers/namconb1.c
index fd5206f0b4b..0528ed66d20 100644
--- a/src/mame/drivers/namconb1.c
+++ b/src/mame/drivers/namconb1.c
@@ -1024,7 +1024,7 @@ static MACHINE_CONFIG_START( namconb1, namconb1_state )
MCFG_SCREEN_REFRESH_RATE(59.7)
MCFG_SCREEN_SIZE(NAMCONB1_HTOTAL, NAMCONB1_VTOTAL)
MCFG_SCREEN_VISIBLE_AREA(0, NAMCONB1_HBSTART-1, 0, NAMCONB1_VBSTART-1)
- MCFG_SCREEN_UPDATE_STATIC(namconb1)
+ MCFG_SCREEN_UPDATE_DRIVER(namconb1_state, screen_update_namconb1)
MCFG_GFXDECODE(namconb1)
MCFG_PALETTE_LENGTH(0x2000)
@@ -1056,7 +1056,7 @@ static MACHINE_CONFIG_START( namconb2, namconb1_state )
MCFG_SCREEN_REFRESH_RATE(59.7)
MCFG_SCREEN_SIZE(NAMCONB1_HTOTAL, NAMCONB1_VTOTAL)
MCFG_SCREEN_VISIBLE_AREA(0, NAMCONB1_HBSTART-1, 0, NAMCONB1_VBSTART-1)
- MCFG_SCREEN_UPDATE_STATIC(namconb2)
+ MCFG_SCREEN_UPDATE_DRIVER(namconb1_state, screen_update_namconb2)
MCFG_GFXDECODE(2)
MCFG_PALETTE_LENGTH(0x2000)
diff --git a/src/mame/drivers/namcos1.c b/src/mame/drivers/namcos1.c
index aee010d139c..8b266ccdcaf 100644
--- a/src/mame/drivers/namcos1.c
+++ b/src/mame/drivers/namcos1.c
@@ -1111,8 +1111,8 @@ static MACHINE_CONFIG_START( ns1, namcos1_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(9 + 8*8, 9 + 44*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(namcos1)
- MCFG_SCREEN_VBLANK_STATIC(namcos1)
+ MCFG_SCREEN_UPDATE_DRIVER(namcos1_state, screen_update_namcos1)
+ MCFG_SCREEN_VBLANK_DRIVER(namcos1_state, screen_eof_namcos1)
MCFG_GFXDECODE(namcos1)
MCFG_PALETTE_LENGTH(0x2000)
diff --git a/src/mame/drivers/namcos21.c b/src/mame/drivers/namcos21.c
index 562ec9dfecf..683d70f895b 100644
--- a/src/mame/drivers/namcos21.c
+++ b/src/mame/drivers/namcos21.c
@@ -1526,7 +1526,7 @@ static MACHINE_CONFIG_START( namcos21, namcos21_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(NAMCOS21_POLY_FRAME_WIDTH,NAMCOS21_POLY_FRAME_HEIGHT)
MCFG_SCREEN_VISIBLE_AREA(0,495,0,479)
- MCFG_SCREEN_UPDATE_STATIC(namcos21)
+ MCFG_SCREEN_UPDATE_DRIVER(namcos21_state, screen_update_namcos21)
MCFG_GFXDECODE(namcos21)
MCFG_PALETTE_LENGTH(NAMCOS21_NUM_COLORS)
@@ -1581,7 +1581,7 @@ static MACHINE_CONFIG_START( driveyes, namcos21_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(NAMCOS21_POLY_FRAME_WIDTH,NAMCOS21_POLY_FRAME_HEIGHT)
MCFG_SCREEN_VISIBLE_AREA(0,495,0,479)
- MCFG_SCREEN_UPDATE_STATIC(namcos21)
+ MCFG_SCREEN_UPDATE_DRIVER(namcos21_state, screen_update_namcos21)
MCFG_GFXDECODE(namcos21)
MCFG_PALETTE_LENGTH(NAMCOS21_NUM_COLORS)
@@ -1640,7 +1640,7 @@ static MACHINE_CONFIG_START( winrun, namcos21_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(NAMCOS21_POLY_FRAME_WIDTH,NAMCOS21_POLY_FRAME_HEIGHT)
MCFG_SCREEN_VISIBLE_AREA(0,495,0,479)
- MCFG_SCREEN_UPDATE_STATIC(namcos21)
+ MCFG_SCREEN_UPDATE_DRIVER(namcos21_state, screen_update_namcos21)
MCFG_PALETTE_LENGTH(NAMCOS21_NUM_COLORS)
diff --git a/src/mame/drivers/namcos22.c b/src/mame/drivers/namcos22.c
index dab1af6b3d5..06599622542 100644
--- a/src/mame/drivers/namcos22.c
+++ b/src/mame/drivers/namcos22.c
@@ -2971,7 +2971,7 @@ static MACHINE_CONFIG_START( namcos22s, namcos22_state )
MCFG_NVRAM_HANDLER(namcos22)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(namcos22s)
+ MCFG_SCREEN_UPDATE_DRIVER(namcos22_state, screen_update_namcos22s)
MCFG_PALETTE_LENGTH(NAMCOS22_PALETTE_SIZE)
MCFG_GFXDECODE(super)
@@ -3219,7 +3219,7 @@ static MACHINE_CONFIG_START( namcos22, namcos22_state )
MCFG_NVRAM_HANDLER(namcos22)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(namcos22)
+ MCFG_SCREEN_UPDATE_DRIVER(namcos22_state, screen_update_namcos22)
MCFG_PALETTE_LENGTH(NAMCOS22_PALETTE_SIZE)
MCFG_GFXDECODE(namcos22)
diff --git a/src/mame/drivers/namcos23.c b/src/mame/drivers/namcos23.c
index d3d4b09bb25..d9d0b24c258 100644
--- a/src/mame/drivers/namcos23.c
+++ b/src/mame/drivers/namcos23.c
@@ -1434,6 +1434,7 @@ public:
DECLARE_MACHINE_START(s23);
DECLARE_VIDEO_START(ss23);
DECLARE_MACHINE_RESET(gmen);
+ UINT32 screen_update_ss23(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -2418,9 +2419,8 @@ VIDEO_START_MEMBER(namcos23_state,ss23)
m_render.polymgr = poly_alloc(machine(), 10000, sizeof(namcos23_render_data), 0);
}
-static SCREEN_UPDATE_RGB32( ss23 )
+UINT32 namcos23_state::screen_update_ss23(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- namcos23_state *state = screen.machine().driver_data<namcos23_state>();
bitmap.fill(get_black_pen(screen.machine()), cliprect);
render_run( screen.machine(), bitmap );
@@ -2428,7 +2428,7 @@ static SCREEN_UPDATE_RGB32( ss23 )
gfx_element *gfx = screen.machine().gfx[0];
gfx->mark_all_dirty();
- state->m_bgtilemap->draw(bitmap, cliprect, 0/*flags*/, 0/*priority*/ ); /* opaque */
+ m_bgtilemap->draw(bitmap, cliprect, 0/*flags*/, 0/*priority*/ ); /* opaque */
return 0;
}
@@ -3166,7 +3166,7 @@ static MACHINE_CONFIG_START( gorgon, namcos23_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // Not in any way accurate
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
- MCFG_SCREEN_UPDATE_STATIC(ss23)
+ MCFG_SCREEN_UPDATE_DRIVER(namcos23_state, screen_update_ss23)
MCFG_PALETTE_LENGTH(0x8000)
@@ -3211,7 +3211,7 @@ static MACHINE_CONFIG_START( s23, namcos23_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // Not in any way accurate
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
- MCFG_SCREEN_UPDATE_STATIC(ss23)
+ MCFG_SCREEN_UPDATE_DRIVER(namcos23_state, screen_update_ss23)
MCFG_PALETTE_LENGTH(0x8000)
@@ -3252,7 +3252,7 @@ static MACHINE_CONFIG_START( ss23, namcos23_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // Not in any way accurate
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
- MCFG_SCREEN_UPDATE_STATIC(ss23)
+ MCFG_SCREEN_UPDATE_DRIVER(namcos23_state, screen_update_ss23)
MCFG_PALETTE_LENGTH(0x8000)
diff --git a/src/mame/drivers/namcos86.c b/src/mame/drivers/namcos86.c
index 0ade1d44ffc..04892c84b62 100644
--- a/src/mame/drivers/namcos86.c
+++ b/src/mame/drivers/namcos86.c
@@ -1012,8 +1012,8 @@ static MACHINE_CONFIG_START( hopmappy, namcos86_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(3 + 8*8, 3 + 44*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(namcos86)
- MCFG_SCREEN_VBLANK_STATIC(namcos86)
+ MCFG_SCREEN_UPDATE_DRIVER(namcos86_state, screen_update_namcos86)
+ MCFG_SCREEN_VBLANK_DRIVER(namcos86_state, screen_eof_namcos86)
MCFG_GFXDECODE(namcos86)
MCFG_PALETTE_LENGTH(4096)
diff --git a/src/mame/drivers/naomi.c b/src/mame/drivers/naomi.c
index 42d625a10c6..22be4cbddfd 100644
--- a/src/mame/drivers/naomi.c
+++ b/src/mame/drivers/naomi.c
@@ -2526,7 +2526,7 @@ static MACHINE_CONFIG_START( naomi_aw_base, dc_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(dc)
+ MCFG_SCREEN_UPDATE_DRIVER(dc_state, screen_update_dc)
MCFG_PALETTE_LENGTH(0x1000)
diff --git a/src/mame/drivers/naughtyb.c b/src/mame/drivers/naughtyb.c
index 8a856aa4f86..3832af295c6 100644
--- a/src/mame/drivers/naughtyb.c
+++ b/src/mame/drivers/naughtyb.c
@@ -431,7 +431,7 @@ static MACHINE_CONFIG_START( naughtyb, naughtyb_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(36*8, 28*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(naughtyb)
+ MCFG_SCREEN_UPDATE_DRIVER(naughtyb_state, screen_update_naughtyb)
MCFG_GFXDECODE(naughtyb)
MCFG_PALETTE_LENGTH(256)
@@ -463,7 +463,7 @@ static MACHINE_CONFIG_START( popflame, naughtyb_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(36*8, 28*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(naughtyb)
+ MCFG_SCREEN_UPDATE_DRIVER(naughtyb_state, screen_update_naughtyb)
MCFG_GFXDECODE(naughtyb)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/nbmj8688.c b/src/mame/drivers/nbmj8688.c
index c2daaaea083..5349bfd47d5 100644
--- a/src/mame/drivers/nbmj8688.c
+++ b/src/mame/drivers/nbmj8688.c
@@ -2921,7 +2921,7 @@ static MACHINE_CONFIG_START( NBMJDRV_4096, nbmj8688_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(mbmj8688)
+ MCFG_SCREEN_UPDATE_DRIVER(nbmj8688_state, screen_update_mbmj8688)
MCFG_PALETTE_LENGTH(4096)
@@ -3037,21 +3037,21 @@ static MACHINE_CONFIG_START( mbmj_p16bit_LCD, nbmj8688_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 16, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(mbmj8688)
+ MCFG_SCREEN_UPDATE_DRIVER(nbmj8688_state, screen_update_mbmj8688)
MCFG_SCREEN_ADD("lcd0", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(480, 64)
MCFG_SCREEN_VISIBLE_AREA(0, 480-1, 0, 64-1)
- MCFG_SCREEN_UPDATE_STATIC(mbmj8688_lcd0)
+ MCFG_SCREEN_UPDATE_DRIVER(nbmj8688_state, screen_update_mbmj8688_lcd0)
MCFG_SCREEN_ADD("lcd1", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(480, 64)
MCFG_SCREEN_VISIBLE_AREA(0, 480-1, 0, 64-1)
- MCFG_SCREEN_UPDATE_STATIC(mbmj8688_lcd1)
+ MCFG_SCREEN_UPDATE_DRIVER(nbmj8688_state, screen_update_mbmj8688_lcd1)
MCFG_VIDEO_START_OVERRIDE(nbmj8688_state,mbmj8688_pure_16bit_LCD)
diff --git a/src/mame/drivers/nbmj8891.c b/src/mame/drivers/nbmj8891.c
index 04321f200f0..63e54d66be7 100644
--- a/src/mame/drivers/nbmj8891.c
+++ b/src/mame/drivers/nbmj8891.c
@@ -2612,7 +2612,7 @@ static MACHINE_CONFIG_START( gionbana, nbmj8891_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 8, 248-1)
- MCFG_SCREEN_UPDATE_STATIC(nbmj8891)
+ MCFG_SCREEN_UPDATE_DRIVER(nbmj8891_state, screen_update_nbmj8891)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/nbmj8900.c b/src/mame/drivers/nbmj8900.c
index 3cae4e8be78..869e9d4ab56 100644
--- a/src/mame/drivers/nbmj8900.c
+++ b/src/mame/drivers/nbmj8900.c
@@ -318,7 +318,7 @@ static MACHINE_CONFIG_START( ohpaipee, nbmj8900_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 8, 248-1)
- MCFG_SCREEN_UPDATE_STATIC(nbmj8900)
+ MCFG_SCREEN_UPDATE_DRIVER(nbmj8900_state, screen_update_nbmj8900)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/nbmj8991.c b/src/mame/drivers/nbmj8991.c
index fcc462ceab9..574793967b6 100644
--- a/src/mame/drivers/nbmj8991.c
+++ b/src/mame/drivers/nbmj8991.c
@@ -1481,7 +1481,7 @@ static MACHINE_CONFIG_START( nbmjdrv1, nbmj8991_state ) // galkoku
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(1024, 512)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(nbmj8991_type1)
+ MCFG_SCREEN_UPDATE_DRIVER(nbmj8991_state, screen_update_nbmj8991_type1)
MCFG_PALETTE_LENGTH(256)
@@ -1514,7 +1514,7 @@ static MACHINE_CONFIG_START( nbmjdrv2, nbmj8991_state ) // pstadium
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(1024, 512)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(nbmj8991_type2)
+ MCFG_SCREEN_UPDATE_DRIVER(nbmj8991_state, screen_update_nbmj8991_type2)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/nbmj9195.c b/src/mame/drivers/nbmj9195.c
index 93c150bca6a..73e0c305fd6 100644
--- a/src/mame/drivers/nbmj9195.c
+++ b/src/mame/drivers/nbmj9195.c
@@ -3183,7 +3183,7 @@ static MACHINE_CONFIG_START( NBMJDRV1, nbmj9195_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(1024, 512) /* no way this is correct */
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(nbmj9195)
+ MCFG_SCREEN_UPDATE_DRIVER(nbmj9195_state, screen_update_nbmj9195)
MCFG_PALETTE_LENGTH(256)
@@ -3220,7 +3220,7 @@ static MACHINE_CONFIG_DERIVED( NBMJDRV3, NBMJDRV1 )
MCFG_VIDEO_START_OVERRIDE(nbmj9195_state,nbmj9195_nb22090)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(nbmj9195)
+ MCFG_SCREEN_UPDATE_DRIVER(nbmj9195_state, screen_update_nbmj9195)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/nemesis.c b/src/mame/drivers/nemesis.c
index d5143eb6309..576759e1c79 100644
--- a/src/mame/drivers/nemesis.c
+++ b/src/mame/drivers/nemesis.c
@@ -1570,7 +1570,7 @@ static MACHINE_CONFIG_START( nemesis, nemesis_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(nemesis)
+ MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
MCFG_GFXDECODE(nemesis)
MCFG_PALETTE_LENGTH(2048)
@@ -1613,7 +1613,7 @@ static MACHINE_CONFIG_START( gx400, nemesis_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(nemesis)
+ MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
MCFG_GFXDECODE(nemesis)
MCFG_PALETTE_LENGTH(2048)
@@ -1655,7 +1655,7 @@ static MACHINE_CONFIG_START( konamigt, nemesis_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(nemesis)
+ MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
MCFG_GFXDECODE(nemesis)
MCFG_PALETTE_LENGTH(2048)
@@ -1695,7 +1695,7 @@ static MACHINE_CONFIG_START( rf2_gx400, nemesis_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(nemesis)
+ MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
MCFG_GFXDECODE(nemesis)
MCFG_PALETTE_LENGTH(2048)
@@ -1739,7 +1739,7 @@ static MACHINE_CONFIG_START( salamand, nemesis_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC((264-256)*125/2))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(nemesis)
+ MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
MCFG_GFXDECODE(nemesis)
MCFG_PALETTE_LENGTH(2048)
@@ -1785,7 +1785,7 @@ static MACHINE_CONFIG_START( blkpnthr, nemesis_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(nemesis)
+ MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
MCFG_GFXDECODE(nemesis)
MCFG_PALETTE_LENGTH(2048)
@@ -1827,7 +1827,7 @@ static MACHINE_CONFIG_START( citybomb, nemesis_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(nemesis)
+ MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
MCFG_GFXDECODE(nemesis)
MCFG_PALETTE_LENGTH(2048)
@@ -1873,7 +1873,7 @@ static MACHINE_CONFIG_START( nyanpani, nemesis_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(nemesis)
+ MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
MCFG_GFXDECODE(nemesis)
MCFG_PALETTE_LENGTH(2048)
@@ -1917,7 +1917,7 @@ static MACHINE_CONFIG_START( hcrash, nemesis_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(nemesis)
+ MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
MCFG_GFXDECODE(nemesis)
MCFG_PALETTE_LENGTH(2048)
@@ -2664,7 +2664,7 @@ static MACHINE_CONFIG_START( bubsys, nemesis_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(nemesis)
+ MCFG_SCREEN_UPDATE_DRIVER(nemesis_state, screen_update_nemesis)
MCFG_GFXDECODE(nemesis)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/neogeo.c b/src/mame/drivers/neogeo.c
index 72f2395f847..c72a9963ec6 100644
--- a/src/mame/drivers/neogeo.c
+++ b/src/mame/drivers/neogeo.c
@@ -1375,7 +1375,7 @@ static MACHINE_CONFIG_START( neogeo, neogeo_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(NEOGEO_PIXEL_CLOCK, NEOGEO_HTOTAL, NEOGEO_HBEND, NEOGEO_HBSTART, NEOGEO_VTOTAL, NEOGEO_VBEND, NEOGEO_VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(neogeo)
+ MCFG_SCREEN_UPDATE_DRIVER(neogeo_state, screen_update_neogeo)
/* audio hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/neoprint.c b/src/mame/drivers/neoprint.c
index 6e0392789b7..7620a2bf101 100644
--- a/src/mame/drivers/neoprint.c
+++ b/src/mame/drivers/neoprint.c
@@ -55,6 +55,8 @@ public:
DECLARE_DRIVER_INIT(nprsp);
virtual void video_start();
DECLARE_MACHINE_RESET(nprsp);
+ UINT32 screen_update_neoprint(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_nprsp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -109,7 +111,7 @@ static void draw_layer(running_machine &machine, bitmap_ind16 &bitmap,const rect
}
}
-SCREEN_UPDATE_IND16(neoprint)
+UINT32 neoprint_state::screen_update_neoprint(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(0, cliprect);
@@ -119,7 +121,7 @@ SCREEN_UPDATE_IND16(neoprint)
return 0;
}
-SCREEN_UPDATE_IND16(nprsp)
+UINT32 neoprint_state::screen_update_nprsp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(0, cliprect);
@@ -479,7 +481,7 @@ static MACHINE_CONFIG_START( neoprint, neoprint_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(neoprint)
+ MCFG_SCREEN_UPDATE_DRIVER(neoprint_state, screen_update_neoprint)
MCFG_PALETTE_LENGTH(0x10000)
@@ -519,7 +521,7 @@ static MACHINE_CONFIG_START( nprsp, neoprint_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(nprsp)
+ MCFG_SCREEN_UPDATE_DRIVER(neoprint_state, screen_update_nprsp)
MCFG_MACHINE_RESET_OVERRIDE(neoprint_state,nprsp)
diff --git a/src/mame/drivers/news.c b/src/mame/drivers/news.c
index 45d04f348be..d3621628ab9 100644
--- a/src/mame/drivers/news.c
+++ b/src/mame/drivers/news.c
@@ -139,7 +139,7 @@ static MACHINE_CONFIG_START( news, news_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(news)
+ MCFG_SCREEN_UPDATE_DRIVER(news_state, screen_update_news)
MCFG_GFXDECODE(news)
MCFG_PALETTE_LENGTH(0x100)
diff --git a/src/mame/drivers/nexus3d.c b/src/mame/drivers/nexus3d.c
index 4c0a2bb7f02..532b5dc2d7d 100644
--- a/src/mame/drivers/nexus3d.c
+++ b/src/mame/drivers/nexus3d.c
@@ -50,6 +50,7 @@ public:
DECLARE_DRIVER_INIT(nexus3d);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_nexus3d(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -183,7 +184,7 @@ void nexus3d_state::video_start()
}
-SCREEN_UPDATE_RGB32(nexus3d)
+UINT32 nexus3d_state::screen_update_nexus3d(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -204,7 +205,7 @@ static MACHINE_CONFIG_START( nexus3d, nexus3d_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(320, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(nexus3d)
+ MCFG_SCREEN_UPDATE_DRIVER(nexus3d_state, screen_update_nexus3d)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/nightgal.c b/src/mame/drivers/nightgal.c
index 96faa64162d..1337badb70a 100644
--- a/src/mame/drivers/nightgal.c
+++ b/src/mame/drivers/nightgal.c
@@ -80,6 +80,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_nightgal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -95,14 +96,13 @@ void nightgal_state::video_start()
save_item(NAME(m_blit_buffer));
}
-static SCREEN_UPDATE_IND16( nightgal )
+UINT32 nightgal_state::screen_update_nightgal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- nightgal_state *state = screen.machine().driver_data<nightgal_state>();
int x, y;
for (y = cliprect.min_y; y <= cliprect.max_y; ++y)
{
- UINT8 *src = &state->m_blit_buffer[y * 512 / 2 + cliprect.min_x];
+ UINT8 *src = &m_blit_buffer[y * 512 / 2 + cliprect.min_x];
UINT16 *dst = &bitmap.pix16(y, cliprect.min_x);
for (x = cliprect.min_x; x <= cliprect.max_x; x += 2)
@@ -883,7 +883,7 @@ static MACHINE_CONFIG_START( royalqn, nightgal_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(nightgal)
+ MCFG_SCREEN_UPDATE_DRIVER(nightgal_state, screen_update_nightgal)
MCFG_PALETTE_LENGTH(0x10)
diff --git a/src/mame/drivers/ninjakd2.c b/src/mame/drivers/ninjakd2.c
index cfc9dbb8b74..86dcb645e81 100644
--- a/src/mame/drivers/ninjakd2.c
+++ b/src/mame/drivers/ninjakd2.c
@@ -951,8 +951,8 @@ static MACHINE_CONFIG_START( ninjakd2, ninjakd2_state )
MCFG_SCREEN_REFRESH_RATE(59.61) /* verified on pcb */
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(ninjakd2)
- MCFG_SCREEN_VBLANK_STATIC(ninjakd2)
+ MCFG_SCREEN_UPDATE_DRIVER(ninjakd2_state, screen_update_ninjakd2)
+ MCFG_SCREEN_VBLANK_DRIVER(ninjakd2_state, screen_eof_ninjakd2)
MCFG_GFXDECODE(ninjakd2)
MCFG_PALETTE_LENGTH(0x300)
@@ -1021,7 +1021,7 @@ static MACHINE_CONFIG_DERIVED( robokid, mnight )
MCFG_VIDEO_START_OVERRIDE(ninjakd2_state,robokid)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(robokid)
+ MCFG_SCREEN_UPDATE_DRIVER(ninjakd2_state, screen_update_robokid)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( omegaf, robokid )
@@ -1036,7 +1036,7 @@ static MACHINE_CONFIG_DERIVED( omegaf, robokid )
/* video hardware */
MCFG_VIDEO_START_OVERRIDE(ninjakd2_state,omegaf)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(omegaf)
+ MCFG_SCREEN_UPDATE_DRIVER(ninjakd2_state, screen_update_omegaf)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/ninjaw.c b/src/mame/drivers/ninjaw.c
index 62c138b5a0b..d3d1ce590f3 100644
--- a/src/mame/drivers/ninjaw.c
+++ b/src/mame/drivers/ninjaw.c
@@ -867,21 +867,21 @@ static MACHINE_CONFIG_START( ninjaw, ninjaw_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(36*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(ninjaw_left)
+ MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_ninjaw_left)
MCFG_SCREEN_ADD("mscreen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(36*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(ninjaw_middle)
+ MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_ninjaw_middle)
MCFG_SCREEN_ADD("rscreen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(36*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(ninjaw_right)
+ MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_ninjaw_right)
MCFG_TC0100SCN_ADD("tc0100scn_1", darius2_tc0100scn_intf_l)
@@ -947,21 +947,21 @@ static MACHINE_CONFIG_START( darius2, ninjaw_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(36*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(ninjaw_left)
+ MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_ninjaw_left)
MCFG_SCREEN_ADD("mscreen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(36*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(ninjaw_middle)
+ MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_ninjaw_middle)
MCFG_SCREEN_ADD("rscreen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(36*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 3*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(ninjaw_right)
+ MCFG_SCREEN_UPDATE_DRIVER(ninjaw_state, screen_update_ninjaw_right)
MCFG_TC0100SCN_ADD("tc0100scn_1", darius2_tc0100scn_intf_l)
diff --git a/src/mame/drivers/nitedrvr.c b/src/mame/drivers/nitedrvr.c
index ba33762c1c5..91c4655c087 100644
--- a/src/mame/drivers/nitedrvr.c
+++ b/src/mame/drivers/nitedrvr.c
@@ -151,7 +151,7 @@ static MACHINE_CONFIG_START( nitedrvr, nitedrvr_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(nitedrvr)
+ MCFG_SCREEN_UPDATE_DRIVER(nitedrvr_state, screen_update_nitedrvr)
MCFG_GFXDECODE(nitedrvr)
MCFG_PALETTE_LENGTH(2)
diff --git a/src/mame/drivers/niyanpai.c b/src/mame/drivers/niyanpai.c
index 90303d19f6e..6ce4865a20e 100644
--- a/src/mame/drivers/niyanpai.c
+++ b/src/mame/drivers/niyanpai.c
@@ -960,7 +960,7 @@ static MACHINE_CONFIG_START( niyanpai, niyanpai_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(1024, 512)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(niyanpai)
+ MCFG_SCREEN_UPDATE_DRIVER(niyanpai_state, screen_update_niyanpai)
MCFG_PALETTE_LENGTH(256*3)
diff --git a/src/mame/drivers/nmg5.c b/src/mame/drivers/nmg5.c
index 28a5b62ed1f..a03015eb671 100644
--- a/src/mame/drivers/nmg5.c
+++ b/src/mame/drivers/nmg5.c
@@ -275,6 +275,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_nmg5(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -884,46 +885,45 @@ static void draw_bitmap( running_machine &machine, bitmap_ind16 &bitmap )
}
-static SCREEN_UPDATE_IND16( nmg5 )
+UINT32 nmg5_state::screen_update_nmg5(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- nmg5_state *state = screen.machine().driver_data<nmg5_state>();
- state->m_bg_tilemap->set_scrolly(0, state->m_scroll_ram[3] + 9);
- state->m_bg_tilemap->set_scrollx(0, state->m_scroll_ram[2] + 3);
- state->m_fg_tilemap->set_scrolly(0, state->m_scroll_ram[1] + 9);
- state->m_fg_tilemap->set_scrollx(0, state->m_scroll_ram[0] - 1);
+ m_bg_tilemap->set_scrolly(0, m_scroll_ram[3] + 9);
+ m_bg_tilemap->set_scrollx(0, m_scroll_ram[2] + 3);
+ m_fg_tilemap->set_scrolly(0, m_scroll_ram[1] + 9);
+ m_fg_tilemap->set_scrollx(0, m_scroll_ram[0] - 1);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- if (state->m_priority_reg == 0)
+ if (m_priority_reg == 0)
{
- screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_bitmap(screen.machine(), bitmap);
}
- else if (state->m_priority_reg == 1)
+ else if (m_priority_reg == 1)
{
draw_bitmap(screen.machine(), bitmap);
- screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
}
- else if (state->m_priority_reg == 2)
+ else if (m_priority_reg == 2)
{
- screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400);
+ screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
draw_bitmap(screen.machine(), bitmap);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
}
- else if (state->m_priority_reg == 3)
+ else if (m_priority_reg == 3)
{
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
- screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
draw_bitmap(screen.machine(), bitmap);
}
- else if (state->m_priority_reg == 7)
+ else if (m_priority_reg == 7)
{
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_bitmap(screen.machine(), bitmap);
- screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400);
+ screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
}
return 0;
}
@@ -1023,7 +1023,7 @@ static MACHINE_CONFIG_START( nmg5, nmg5_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(nmg5)
+ MCFG_SCREEN_UPDATE_DRIVER(nmg5_state, screen_update_nmg5)
MCFG_GFXDECODE(nmg5)
MCFG_PALETTE_LENGTH(0x400)
diff --git a/src/mame/drivers/nmk16.c b/src/mame/drivers/nmk16.c
index 62dd24b6c75..9ff8e5d15ef 100644
--- a/src/mame/drivers/nmk16.c
+++ b/src/mame/drivers/nmk16.c
@@ -3564,8 +3564,8 @@ static MACHINE_CONFIG_START( tharrier, nmk16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tharrier)
- MCFG_SCREEN_VBLANK_STATIC(nmk)
+ MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_tharrier)
+ MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE(tharrier)
MCFG_PALETTE_LENGTH(512)
@@ -3607,8 +3607,8 @@ static MACHINE_CONFIG_START( manybloc, nmk16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(manybloc)
- MCFG_SCREEN_VBLANK_STATIC(nmk)
+ MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_manybloc)
+ MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE(tharrier)
MCFG_PALETTE_LENGTH(512)
@@ -3648,8 +3648,8 @@ static MACHINE_CONFIG_START( mustang, nmk16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(macross)
- MCFG_SCREEN_VBLANK_STATIC(nmk)
+ MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross)
+ MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE(macross)
MCFG_PALETTE_LENGTH(1024)
@@ -3691,8 +3691,8 @@ static MACHINE_CONFIG_START( mustangb, nmk16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(macross)
- MCFG_SCREEN_VBLANK_STATIC(nmk)
+ MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross)
+ MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE(macross)
MCFG_PALETTE_LENGTH(1024)
@@ -3723,8 +3723,8 @@ static MACHINE_CONFIG_START( bioship, nmk16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(bioship)
- MCFG_SCREEN_VBLANK_STATIC(nmk)
+ MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_bioship)
+ MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE(bioship)
MCFG_PALETTE_LENGTH(1024)
@@ -3764,8 +3764,8 @@ static MACHINE_CONFIG_START( vandyke, nmk16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(macross)
- MCFG_SCREEN_VBLANK_STATIC(nmk)
+ MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross)
+ MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE(macross)
MCFG_PALETTE_LENGTH(1024)
@@ -3808,8 +3808,8 @@ static MACHINE_CONFIG_START( vandykeb, nmk16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(macross)
- MCFG_SCREEN_VBLANK_STATIC(nmk)
+ MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross)
+ MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE(macross)
MCFG_PALETTE_LENGTH(1024)
@@ -3839,8 +3839,8 @@ static MACHINE_CONFIG_START( acrobatm, nmk16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(macross)
- MCFG_SCREEN_VBLANK_STATIC(nmk)
+ MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross)
+ MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE(macross)
MCFG_PALETTE_LENGTH(1024)
@@ -3884,8 +3884,8 @@ static MACHINE_CONFIG_START( tdragonb, nmk16_state ) /* bootleg using Raiden sou
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(macross)
- MCFG_SCREEN_VBLANK_STATIC(nmk)
+ MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross)
+ MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE(macross)
MCFG_PALETTE_LENGTH(1024)
@@ -3913,8 +3913,8 @@ static MACHINE_CONFIG_START( tdragon, nmk16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(macross)
- MCFG_SCREEN_VBLANK_STATIC(nmk)
+ MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross)
+ MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE(macross)
MCFG_PALETTE_LENGTH(1024)
@@ -3956,8 +3956,8 @@ static MACHINE_CONFIG_START( ssmissin, nmk16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(macross)
- MCFG_SCREEN_VBLANK_STATIC(nmk)
+ MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross)
+ MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE(macross)
MCFG_PALETTE_LENGTH(1024)
@@ -3988,8 +3988,8 @@ static MACHINE_CONFIG_START( strahl, nmk16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(strahl)
- MCFG_SCREEN_VBLANK_STATIC(strahl)
+ MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_strahl)
+ MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_strahl)
MCFG_GFXDECODE(strahl)
MCFG_PALETTE_LENGTH(1024)
@@ -4029,8 +4029,8 @@ static MACHINE_CONFIG_START( hachamf, nmk16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(macross)
- MCFG_SCREEN_VBLANK_STATIC(nmk)
+ MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross)
+ MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE(macross)
MCFG_PALETTE_LENGTH(1024)
@@ -4071,8 +4071,8 @@ static MACHINE_CONFIG_START( macross, nmk16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(macross)
- MCFG_SCREEN_VBLANK_STATIC(nmk)
+ MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross)
+ MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE(macross)
MCFG_PALETTE_LENGTH(1024)
@@ -4112,8 +4112,8 @@ static MACHINE_CONFIG_START( blkheart, nmk16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(macross)
- MCFG_SCREEN_VBLANK_STATIC(nmk)
+ MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross)
+ MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE(macross)
MCFG_PALETTE_LENGTH(1024)
@@ -4153,8 +4153,8 @@ static MACHINE_CONFIG_START( gunnail, nmk16_state )
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(gunnail)
- MCFG_SCREEN_VBLANK_STATIC(nmk)
+ MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_gunnail)
+ MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE(macross)
MCFG_PALETTE_LENGTH(1024)
@@ -4196,8 +4196,8 @@ static MACHINE_CONFIG_START( macross2, nmk16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(gunnail)
- MCFG_SCREEN_VBLANK_STATIC(nmk)
+ MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_gunnail)
+ MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE(macross2)
MCFG_PALETTE_LENGTH(1024)
@@ -4238,8 +4238,8 @@ static MACHINE_CONFIG_START( tdragon2, nmk16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tdragon2)
- MCFG_SCREEN_VBLANK_STATIC(nmk)
+ MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_tdragon2)
+ MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE(macross2)
MCFG_PALETTE_LENGTH(1024)
@@ -4279,8 +4279,8 @@ static MACHINE_CONFIG_START( raphero, nmk16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tdragon2)
- MCFG_SCREEN_VBLANK_STATIC(nmk)
+ MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_tdragon2)
+ MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE(macross2)
MCFG_PALETTE_LENGTH(1024)
@@ -4317,8 +4317,8 @@ static MACHINE_CONFIG_START( bjtwin, nmk16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(bjtwin)
- MCFG_SCREEN_VBLANK_STATIC(nmk)
+ MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_bjtwin)
+ MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE(bjtwin)
MCFG_PALETTE_LENGTH(1024)
@@ -4826,8 +4826,8 @@ static MACHINE_CONFIG_START( stagger1, nmk16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(afega)
- MCFG_SCREEN_VBLANK_STATIC(nmk)
+ MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_afega)
+ MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE(stagger1)
MCFG_PALETTE_LENGTH(768)
@@ -4852,7 +4852,7 @@ static MACHINE_CONFIG_DERIVED( redhawki, stagger1 )
/* basic machine hardware */
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(redhawki)
+ MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_redhawki)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( redhawkb, stagger1 )
@@ -4861,7 +4861,7 @@ static MACHINE_CONFIG_DERIVED( redhawkb, stagger1 )
/* video hardware */
MCFG_GFXDECODE(redhawkb)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(redhawkb)
+ MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_redhawkb)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( grdnstrm, stagger1 )
@@ -4872,7 +4872,7 @@ static MACHINE_CONFIG_DERIVED( grdnstrm, stagger1 )
MCFG_GFXDECODE(grdnstrm)
MCFG_VIDEO_START_OVERRIDE(nmk16_state,firehawk)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(firehawk)
+ MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_firehawk)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( grdnstrmk, stagger1 ) /* Side by side with PCB, the music seems too fast as well */
@@ -4892,7 +4892,7 @@ static MACHINE_CONFIG_DERIVED( popspops, grdnstrm )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(bubl2000)
+ MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_bubl2000)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( firehawk, nmk16_state )
@@ -4911,8 +4911,8 @@ static MACHINE_CONFIG_START( firehawk, nmk16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(firehawk)
- MCFG_SCREEN_VBLANK_STATIC(nmk)
+ MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_firehawk)
+ MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE(grdnstrm)
MCFG_PALETTE_LENGTH(768)
@@ -4946,8 +4946,8 @@ static MACHINE_CONFIG_START( twinactn, nmk16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(macross)
- MCFG_SCREEN_VBLANK_STATIC(nmk)
+ MCFG_SCREEN_UPDATE_DRIVER(nmk16_state, screen_update_macross)
+ MCFG_SCREEN_VBLANK_DRIVER(nmk16_state, screen_eof_nmk)
MCFG_GFXDECODE(macross)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/norautp.c b/src/mame/drivers/norautp.c
index 1c2de5cc52c..943b6462ff7 100644
--- a/src/mame/drivers/norautp.c
+++ b/src/mame/drivers/norautp.c
@@ -563,9 +563,8 @@ void norautp_state::video_start()
}
-static SCREEN_UPDATE_IND16( norautp )
+UINT32 norautp_state::screen_update_norautp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- norautp_state *state = screen.machine().driver_data<norautp_state>();
int x, y, count;
count = 0;
@@ -579,8 +578,8 @@ static SCREEN_UPDATE_IND16( norautp )
{
for(x = 0; x < 16; x++)
{
- int tile = state->m_np_vram[count] & 0x3f;
- int colour = (state->m_np_vram[count] & 0xc0) >> 6;
+ int tile = m_np_vram[count] & 0x3f;
+ int colour = (m_np_vram[count] & 0xc0) >> 6;
drawgfx_opaque(bitmap,cliprect, screen.machine().gfx[1], tile, colour, 0, 0, (x * 32) + 8, y * 32);
@@ -591,8 +590,8 @@ static SCREEN_UPDATE_IND16( norautp )
{
for(x = 0; x < 32; x++)
{
- int tile = state->m_np_vram[count] & 0x3f;
- int colour = (state->m_np_vram[count] & 0xc0) >> 6;
+ int tile = m_np_vram[count] & 0x3f;
+ int colour = (m_np_vram[count] & 0xc0) >> 6;
drawgfx_opaque(bitmap,cliprect, screen.machine().gfx[0], tile, colour, 0, 0, x * 16, y * 32);
@@ -1265,7 +1264,7 @@ static MACHINE_CONFIG_START( noraut_base, norautp_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*16, 32*16)
MCFG_SCREEN_VISIBLE_AREA(2*16, 31*16-1, (0*16) + 8, 16*16-1) /* the hardware clips the top 8 pixels */
- MCFG_SCREEN_UPDATE_STATIC(norautp)
+ MCFG_SCREEN_UPDATE_DRIVER(norautp_state, screen_update_norautp)
MCFG_GFXDECODE(norautp)
diff --git a/src/mame/drivers/nova2001.c b/src/mame/drivers/nova2001.c
index 8348dbaf4e4..928472bc3ab 100644
--- a/src/mame/drivers/nova2001.c
+++ b/src/mame/drivers/nova2001.c
@@ -690,7 +690,7 @@ static MACHINE_CONFIG_START( nova2001, nova2001_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(nova2001)
+ MCFG_SCREEN_UPDATE_DRIVER(nova2001_state, screen_update_nova2001)
MCFG_GFXDECODE(nova2001)
MCFG_PALETTE_LENGTH(0x200)
@@ -731,7 +731,7 @@ static MACHINE_CONFIG_START( ninjakun, nova2001_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(ninjakun)
+ MCFG_SCREEN_UPDATE_DRIVER(nova2001_state, screen_update_ninjakun)
MCFG_GFXDECODE(ninjakun)
MCFG_PALETTE_LENGTH(0x300)
@@ -763,7 +763,7 @@ static MACHINE_CONFIG_START( pkunwar, nova2001_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pkunwar)
+ MCFG_SCREEN_UPDATE_DRIVER(nova2001_state, screen_update_pkunwar)
MCFG_GFXDECODE(pkunwar)
MCFG_PALETTE_LENGTH(0x200)
@@ -802,7 +802,7 @@ static MACHINE_CONFIG_START( raiders5, nova2001_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(raiders5)
+ MCFG_SCREEN_UPDATE_DRIVER(nova2001_state, screen_update_raiders5)
MCFG_GFXDECODE(raiders5)
MCFG_PALETTE_LENGTH(0x300)
diff --git a/src/mame/drivers/nsmpoker.c b/src/mame/drivers/nsmpoker.c
index 20eb5d3cedf..33f0459c18c 100644
--- a/src/mame/drivers/nsmpoker.c
+++ b/src/mame/drivers/nsmpoker.c
@@ -82,6 +82,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_nsmpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -127,10 +128,9 @@ void nsmpoker_state::video_start()
}
-static SCREEN_UPDATE_IND16( nsmpoker )
+UINT32 nsmpoker_state::screen_update_nsmpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- nsmpoker_state *state = screen.machine().driver_data<nsmpoker_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -406,7 +406,7 @@ static MACHINE_CONFIG_START( nsmpoker, nsmpoker_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(nsmpoker)
+ MCFG_SCREEN_UPDATE_DRIVER(nsmpoker_state, screen_update_nsmpoker)
MCFG_GFXDECODE(nsmpoker)
diff --git a/src/mame/drivers/nwk-tr.c b/src/mame/drivers/nwk-tr.c
index 25eb08ad126..fadaef38263 100644
--- a/src/mame/drivers/nwk-tr.c
+++ b/src/mame/drivers/nwk-tr.c
@@ -254,6 +254,7 @@ public:
DECLARE_DRIVER_INIT(nwktr);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_nwktr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -273,9 +274,8 @@ static void voodoo_vblank_0(device_t *device, int param)
}
-static SCREEN_UPDATE_RGB32( nwktr )
+UINT32 nwktr_state::screen_update_nwktr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- nwktr_state *state = screen.machine().driver_data<nwktr_state>();
device_t *voodoo = screen.machine().device("voodoo");
device_t *k001604 = screen.machine().device("k001604");
@@ -288,8 +288,8 @@ static SCREEN_UPDATE_RGB32( nwktr )
k001604_draw_front_layer(k001604, bitmap, tilemap_rect);
- draw_7segment_led(bitmap, 3, 3, state->m_led_reg0);
- draw_7segment_led(bitmap, 9, 3, state->m_led_reg1);
+ draw_7segment_led(bitmap, 3, 3, m_led_reg0);
+ draw_7segment_led(bitmap, 9, 3, m_led_reg1);
return 0;
}
@@ -745,7 +745,7 @@ static MACHINE_CONFIG_START( nwktr, nwktr_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(512, 384)
MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383)
- MCFG_SCREEN_UPDATE_STATIC(nwktr)
+ MCFG_SCREEN_UPDATE_DRIVER(nwktr_state, screen_update_nwktr)
MCFG_PALETTE_LENGTH(65536)
diff --git a/src/mame/drivers/nycaptor.c b/src/mame/drivers/nycaptor.c
index b1b9e6ae520..124cf2528ba 100644
--- a/src/mame/drivers/nycaptor.c
+++ b/src/mame/drivers/nycaptor.c
@@ -854,7 +854,7 @@ static MACHINE_CONFIG_START( nycaptor, nycaptor_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(nycaptor)
+ MCFG_SCREEN_UPDATE_DRIVER(nycaptor_state, screen_update_nycaptor)
MCFG_GFXDECODE(nycaptor)
MCFG_PALETTE_LENGTH(512)
@@ -912,7 +912,7 @@ static MACHINE_CONFIG_START( cyclshtg, nycaptor_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(nycaptor)
+ MCFG_SCREEN_UPDATE_DRIVER(nycaptor_state, screen_update_nycaptor)
MCFG_GFXDECODE(nycaptor)
MCFG_PALETTE_LENGTH(512)
@@ -966,7 +966,7 @@ static MACHINE_CONFIG_START( bronx, nycaptor_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(nycaptor)
+ MCFG_SCREEN_UPDATE_DRIVER(nycaptor_state, screen_update_nycaptor)
MCFG_GFXDECODE(nycaptor)
MCFG_PALETTE_LENGTH(512)
diff --git a/src/mame/drivers/offtwall.c b/src/mame/drivers/offtwall.c
index ca6729ea27d..511f8c86d98 100644
--- a/src/mame/drivers/offtwall.c
+++ b/src/mame/drivers/offtwall.c
@@ -417,7 +417,7 @@ static MACHINE_CONFIG_START( offtwall, offtwall_state )
/* note: these parameters are from published specs, not derived */
/* the board uses a VAD chip to generate video signals */
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(offtwall)
+ MCFG_SCREEN_UPDATE_DRIVER(offtwall_state, screen_update_offtwall)
MCFG_VIDEO_START_OVERRIDE(offtwall_state,offtwall)
diff --git a/src/mame/drivers/ohmygod.c b/src/mame/drivers/ohmygod.c
index 06d70a44a84..9c1fcf57db6 100644
--- a/src/mame/drivers/ohmygod.c
+++ b/src/mame/drivers/ohmygod.c
@@ -330,7 +330,7 @@ static MACHINE_CONFIG_START( ohmygod, ohmygod_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 0*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(ohmygod)
+ MCFG_SCREEN_UPDATE_DRIVER(ohmygod_state, screen_update_ohmygod)
MCFG_GFXDECODE(ohmygod)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/ojankohs.c b/src/mame/drivers/ojankohs.c
index e8bca062d3c..59877c80645 100644
--- a/src/mame/drivers/ojankohs.c
+++ b/src/mame/drivers/ojankohs.c
@@ -868,7 +868,7 @@ static MACHINE_CONFIG_START( ojankohs, ojankohs_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 512)
MCFG_SCREEN_VISIBLE_AREA(0, 288-1, 0, 224-1)
- MCFG_SCREEN_UPDATE_STATIC(ojankohs)
+ MCFG_SCREEN_UPDATE_DRIVER(ojankohs_state, screen_update_ojankohs)
MCFG_GFXDECODE(ojankohs)
MCFG_PALETTE_LENGTH(1024)
@@ -904,7 +904,7 @@ static MACHINE_CONFIG_START( ojankoy, ojankohs_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 512)
MCFG_SCREEN_VISIBLE_AREA(0, 288-1, 0, 224-1)
- MCFG_SCREEN_UPDATE_STATIC(ojankohs)
+ MCFG_SCREEN_UPDATE_DRIVER(ojankohs_state, screen_update_ojankohs)
MCFG_GFXDECODE(ojankohs)
MCFG_PALETTE_LENGTH(1024)
@@ -941,7 +941,7 @@ static MACHINE_CONFIG_START( ccasino, ojankohs_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 512)
MCFG_SCREEN_VISIBLE_AREA(0, 288-1, 0, 224-1)
- MCFG_SCREEN_UPDATE_STATIC(ojankohs)
+ MCFG_SCREEN_UPDATE_DRIVER(ojankohs_state, screen_update_ojankohs)
MCFG_GFXDECODE(ojankohs)
MCFG_PALETTE_LENGTH(1024)
@@ -977,7 +977,7 @@ static MACHINE_CONFIG_START( ojankoc, ojankohs_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 8, 248-1)
- MCFG_SCREEN_UPDATE_STATIC(ojankoc)
+ MCFG_SCREEN_UPDATE_DRIVER(ojankohs_state, screen_update_ojankoc)
MCFG_PALETTE_LENGTH(16)
diff --git a/src/mame/drivers/olibochu.c b/src/mame/drivers/olibochu.c
index c3f725dbf48..9df89ebf99b 100644
--- a/src/mame/drivers/olibochu.c
+++ b/src/mame/drivers/olibochu.c
@@ -86,6 +86,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_olibochu(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -226,10 +227,9 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-static SCREEN_UPDATE_IND16( olibochu )
+UINT32 olibochu_state::screen_update_olibochu(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- olibochu_state *state = screen.machine().driver_data<olibochu_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
@@ -463,7 +463,7 @@ static MACHINE_CONFIG_START( olibochu, olibochu_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(olibochu)
+ MCFG_SCREEN_UPDATE_DRIVER(olibochu_state, screen_update_olibochu)
MCFG_GFXDECODE(olibochu)
MCFG_PALETTE_LENGTH(512)
diff --git a/src/mame/drivers/oneshot.c b/src/mame/drivers/oneshot.c
index 64ad5bfab9c..bf8ffe5cb35 100644
--- a/src/mame/drivers/oneshot.c
+++ b/src/mame/drivers/oneshot.c
@@ -384,7 +384,7 @@ static MACHINE_CONFIG_START( oneshot, oneshot_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*16, 32*16)
MCFG_SCREEN_VISIBLE_AREA(0*16, 20*16-1, 0*16, 15*16-1)
- MCFG_SCREEN_UPDATE_STATIC(oneshot)
+ MCFG_SCREEN_UPDATE_DRIVER(oneshot_state, screen_update_oneshot)
MCFG_GFXDECODE(oneshot)
MCFG_PALETTE_LENGTH(0x400)
@@ -406,7 +406,7 @@ static MACHINE_CONFIG_DERIVED( maddonna, oneshot )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(maddonna) // no crosshair
+ MCFG_SCREEN_UPDATE_DRIVER(oneshot_state, screen_update_maddonna)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/onetwo.c b/src/mame/drivers/onetwo.c
index 044788ec60f..e2f99c21ff8 100644
--- a/src/mame/drivers/onetwo.c
+++ b/src/mame/drivers/onetwo.c
@@ -75,6 +75,7 @@ public:
TILE_GET_INFO_MEMBER(get_fg_tile_info);
virtual void machine_start();
virtual void video_start();
+ UINT32 screen_update_onetwo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -100,10 +101,9 @@ void onetwo_state::video_start()
m_fg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(onetwo_state::get_fg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
}
-static SCREEN_UPDATE_IND16( onetwo )
+UINT32 onetwo_state::screen_update_onetwo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- onetwo_state *state = screen.machine().driver_data<onetwo_state>();
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -375,7 +375,7 @@ static MACHINE_CONFIG_START( onetwo, onetwo_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(16))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(onetwo)
+ MCFG_SCREEN_UPDATE_DRIVER(onetwo_state, screen_update_onetwo)
MCFG_GFXDECODE(onetwo)
MCFG_PALETTE_LENGTH(0x80)
diff --git a/src/mame/drivers/opwolf.c b/src/mame/drivers/opwolf.c
index adb77d1099d..5d521aabf18 100644
--- a/src/mame/drivers/opwolf.c
+++ b/src/mame/drivers/opwolf.c
@@ -750,7 +750,7 @@ static MACHINE_CONFIG_START( opwolf, opwolf_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(opwolf)
+ MCFG_SCREEN_UPDATE_DRIVER(opwolf_state, screen_update_opwolf)
MCFG_GFXDECODE(opwolf)
MCFG_PALETTE_LENGTH(8192)
@@ -803,7 +803,7 @@ static MACHINE_CONFIG_START( opwolfb, opwolf_state ) /* OSC clocks unknown for t
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(opwolf)
+ MCFG_SCREEN_UPDATE_DRIVER(opwolf_state, screen_update_opwolf)
MCFG_GFXDECODE(opwolfb)
MCFG_PALETTE_LENGTH(8192)
diff --git a/src/mame/drivers/orbit.c b/src/mame/drivers/orbit.c
index 0745052ffd9..207f124c068 100644
--- a/src/mame/drivers/orbit.c
+++ b/src/mame/drivers/orbit.c
@@ -307,7 +307,7 @@ static MACHINE_CONFIG_START( orbit, orbit_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK*2, 384*2, 0, 256*2, 261*2, 0, 240*2)
- MCFG_SCREEN_UPDATE_STATIC(orbit)
+ MCFG_SCREEN_UPDATE_DRIVER(orbit_state, screen_update_orbit)
MCFG_GFXDECODE(orbit)
MCFG_PALETTE_LENGTH(2)
diff --git a/src/mame/drivers/othldrby.c b/src/mame/drivers/othldrby.c
index 2636630505e..894d211396b 100644
--- a/src/mame/drivers/othldrby.c
+++ b/src/mame/drivers/othldrby.c
@@ -251,8 +251,8 @@ static MACHINE_CONFIG_START( othldrby, othldrby_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(12*8, (64-12)*8-1, 1*8, 31*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(othldrby)
- MCFG_SCREEN_VBLANK_STATIC(othldrby)
+ MCFG_SCREEN_UPDATE_DRIVER(othldrby_state, screen_update_othldrby)
+ MCFG_SCREEN_VBLANK_DRIVER(othldrby_state, screen_eof_othldrby)
MCFG_GFXDECODE(othldrby)
MCFG_PALETTE_LENGTH(0x800)
diff --git a/src/mame/drivers/othunder.c b/src/mame/drivers/othunder.c
index 4ee5bd44b36..6c924025571 100644
--- a/src/mame/drivers/othunder.c
+++ b/src/mame/drivers/othunder.c
@@ -726,7 +726,7 @@ static MACHINE_CONFIG_START( othunder, othunder_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(othunder)
+ MCFG_SCREEN_UPDATE_DRIVER(othunder_state, screen_update_othunder)
MCFG_GFXDECODE(othunder)
MCFG_PALETTE_LENGTH(4096)
diff --git a/src/mame/drivers/overdriv.c b/src/mame/drivers/overdriv.c
index 6120863c70b..3396ba13473 100644
--- a/src/mame/drivers/overdriv.c
+++ b/src/mame/drivers/overdriv.c
@@ -355,7 +355,7 @@ static MACHINE_CONFIG_START( overdriv, overdriv_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
MCFG_SCREEN_SIZE(64*8, 40*8)
MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 0*8, 32*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(overdriv)
+ MCFG_SCREEN_UPDATE_DRIVER(overdriv_state, screen_update_overdriv)
// MCFG_GFXDECODE(overdriv)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/pacland.c b/src/mame/drivers/pacland.c
index 968b5f726b6..e8ade835d96 100644
--- a/src/mame/drivers/pacland.c
+++ b/src/mame/drivers/pacland.c
@@ -432,7 +432,7 @@ static MACHINE_CONFIG_START( pacland, pacland_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(3*8, 39*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pacland)
+ MCFG_SCREEN_UPDATE_DRIVER(pacland_state, screen_update_pacland)
MCFG_GFXDECODE(pacland)
MCFG_PALETTE_LENGTH(256*4+256*4+64*16)
diff --git a/src/mame/drivers/pacman.c b/src/mame/drivers/pacman.c
index da584f40be7..713627c03fc 100644
--- a/src/mame/drivers/pacman.c
+++ b/src/mame/drivers/pacman.c
@@ -3303,7 +3303,7 @@ static MACHINE_CONFIG_START( pacman, pacman_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(pacman)
+ MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_pacman)
MCFG_PALETTE_INIT_OVERRIDE(pacman_state,pacman)
MCFG_VIDEO_START_OVERRIDE(pacman_state,pacman)
@@ -3456,7 +3456,7 @@ static MACHINE_CONFIG_DERIVED( s2650games, pacman )
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_UPDATE_STATIC(s2650games)
+ MCFG_SCREEN_UPDATE_DRIVER(pacman_state, screen_update_s2650games)
MCFG_VIDEO_START_OVERRIDE(pacman_state,s2650games)
diff --git a/src/mame/drivers/pandoras.c b/src/mame/drivers/pandoras.c
index 62836df34af..6038214b487 100644
--- a/src/mame/drivers/pandoras.c
+++ b/src/mame/drivers/pandoras.c
@@ -366,7 +366,7 @@ static MACHINE_CONFIG_START( pandoras, pandoras_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pandoras)
+ MCFG_SCREEN_UPDATE_DRIVER(pandoras_state, screen_update_pandoras)
MCFG_GFXDECODE(pandoras)
MCFG_PALETTE_LENGTH(16*16+16*16)
diff --git a/src/mame/drivers/panicr.c b/src/mame/drivers/panicr.c
index 61d36faa83f..56de7c7ffa5 100644
--- a/src/mame/drivers/panicr.c
+++ b/src/mame/drivers/panicr.c
@@ -98,6 +98,7 @@ public:
TILE_GET_INFO_MEMBER(get_txttile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_panicr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -247,15 +248,14 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re
}
}
-static SCREEN_UPDATE_IND16( panicr)
+UINT32 panicr_state::screen_update_panicr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- panicr_state *state = screen.machine().driver_data<panicr_state>();
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- state->m_txttilemap->mark_all_dirty();
- state->m_bgtilemap->set_scrollx(0, state->m_scrollx);
- state->m_bgtilemap->draw(bitmap, cliprect, 0,0);
+ m_txttilemap->mark_all_dirty();
+ m_bgtilemap->set_scrollx(0, m_scrollx);
+ m_bgtilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(),bitmap,cliprect);
- state->m_txttilemap->draw(bitmap, cliprect, 0,0);
+ m_txttilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
@@ -515,7 +515,7 @@ static MACHINE_CONFIG_START( panicr, panicr_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(panicr)
+ MCFG_SCREEN_UPDATE_DRIVER(panicr_state, screen_update_panicr)
MCFG_GFXDECODE(panicr)
MCFG_PALETTE_LENGTH(256*3)
diff --git a/src/mame/drivers/paradise.c b/src/mame/drivers/paradise.c
index 0263c394fa0..4e3ecc8e259 100644
--- a/src/mame/drivers/paradise.c
+++ b/src/mame/drivers/paradise.c
@@ -717,7 +717,7 @@ static MACHINE_CONFIG_START( paradise, paradise_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */ /* we're using PORT_VBLANK */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-1-16)
- MCFG_SCREEN_UPDATE_STATIC(paradise)
+ MCFG_SCREEN_UPDATE_DRIVER(paradise_state, screen_update_paradise)
MCFG_GFXDECODE(paradise)
MCFG_PALETTE_LENGTH(0x800 + 16)
@@ -749,7 +749,7 @@ static MACHINE_CONFIG_DERIVED( torus, paradise )
MCFG_GFXDECODE(torus)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(torus)
+ MCFG_SCREEN_UPDATE_DRIVER(paradise_state, screen_update_torus)
MCFG_DEVICE_REMOVE("oki2")
MACHINE_CONFIG_END
@@ -764,7 +764,7 @@ static MACHINE_CONFIG_DERIVED( madball, paradise )
MCFG_GFXDECODE(madball)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(madball)
+ MCFG_SCREEN_UPDATE_DRIVER(paradise_state, screen_update_madball)
MCFG_DEVICE_REMOVE("oki2")
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/parodius.c b/src/mame/drivers/parodius.c
index 93188ac187a..f410a8a5c8e 100644
--- a/src/mame/drivers/parodius.c
+++ b/src/mame/drivers/parodius.c
@@ -304,7 +304,7 @@ static MACHINE_CONFIG_START( parodius, parodius_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(parodius)
+ MCFG_SCREEN_UPDATE_DRIVER(parodius_state, screen_update_parodius)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/pasha2.c b/src/mame/drivers/pasha2.c
index 8192ac4b250..3d1be994719 100644
--- a/src/mame/drivers/pasha2.c
+++ b/src/mame/drivers/pasha2.c
@@ -109,6 +109,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_pasha2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -349,9 +350,8 @@ void pasha2_state::video_start()
save_item(NAME(m_bitmap1));
}
-static SCREEN_UPDATE_IND16( pasha2 )
+UINT32 pasha2_state::screen_update_pasha2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pasha2_state *state = screen.machine().driver_data<pasha2_state>();
int x, y, count;
int color;
@@ -364,10 +364,10 @@ static SCREEN_UPDATE_IND16( pasha2 )
{
if (x * 2 < cliprect.max_x)
{
- color = (state->m_bitmap0[count + (state->m_vbuffer ^ 1) * 0x20000 / 2] & 0xff00) >> 8;
+ color = (m_bitmap0[count + (m_vbuffer ^ 1) * 0x20000 / 2] & 0xff00) >> 8;
bitmap.pix16(y, x * 2 + 0) = color + 0x100;
- color = state->m_bitmap0[count + (state->m_vbuffer ^ 1) * 0x20000 / 2] & 0xff;
+ color = m_bitmap0[count + (m_vbuffer ^ 1) * 0x20000 / 2] & 0xff;
bitmap.pix16(y, x * 2 + 1) = color + 0x100;
}
@@ -382,11 +382,11 @@ static SCREEN_UPDATE_IND16( pasha2 )
{
if (x * 2 < cliprect.max_x)
{
- color = state->m_bitmap1[count + (state->m_vbuffer ^ 1) * 0x20000 / 2] & 0xff;
+ color = m_bitmap1[count + (m_vbuffer ^ 1) * 0x20000 / 2] & 0xff;
if (color != 0)
bitmap.pix16(y, x * 2 + 1) = color;
- color = (state->m_bitmap1[count + (state->m_vbuffer ^ 1) * 0x20000 / 2] & 0xff00) >> 8;
+ color = (m_bitmap1[count + (m_vbuffer ^ 1) * 0x20000 / 2] & 0xff00) >> 8;
if (color != 0)
bitmap.pix16(y, x * 2 + 0) = color;
}
@@ -428,7 +428,7 @@ static MACHINE_CONFIG_START( pasha2, pasha2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 512)
MCFG_SCREEN_VISIBLE_AREA(0, 383, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(pasha2)
+ MCFG_SCREEN_UPDATE_DRIVER(pasha2_state, screen_update_pasha2)
MCFG_PALETTE_LENGTH(0x200)
diff --git a/src/mame/drivers/pass.c b/src/mame/drivers/pass.c
index d7c0726bf18..646a19ed181 100644
--- a/src/mame/drivers/pass.c
+++ b/src/mame/drivers/pass.c
@@ -249,7 +249,7 @@ static MACHINE_CONFIG_START( pass, pass_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, 48*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pass)
+ MCFG_SCREEN_UPDATE_DRIVER(pass_state, screen_update_pass)
MCFG_PALETTE_LENGTH(0x200)
MCFG_GFXDECODE(pass)
diff --git a/src/mame/drivers/pastelg.c b/src/mame/drivers/pastelg.c
index 6c423a4fb4b..a16b38d15c4 100644
--- a/src/mame/drivers/pastelg.c
+++ b/src/mame/drivers/pastelg.c
@@ -421,7 +421,7 @@ static MACHINE_CONFIG_START( pastelg, pastelg_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(pastelg)
+ MCFG_SCREEN_UPDATE_DRIVER(pastelg_state, screen_update_pastelg)
MCFG_PALETTE_LENGTH(32)
@@ -477,7 +477,7 @@ static MACHINE_CONFIG_START( threeds, pastelg_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(pastelg)
+ MCFG_SCREEN_UPDATE_DRIVER(pastelg_state, screen_update_pastelg)
MCFG_PALETTE_LENGTH(32)
diff --git a/src/mame/drivers/pbaction.c b/src/mame/drivers/pbaction.c
index 63eedeec830..385c60ee525 100644
--- a/src/mame/drivers/pbaction.c
+++ b/src/mame/drivers/pbaction.c
@@ -298,7 +298,7 @@ static MACHINE_CONFIG_START( pbaction, pbaction_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pbaction)
+ MCFG_SCREEN_UPDATE_DRIVER(pbaction_state, screen_update_pbaction)
MCFG_GFXDECODE(pbaction)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/pcktgal.c b/src/mame/drivers/pcktgal.c
index 03e78f4a69e..83cb7d8d8eb 100644
--- a/src/mame/drivers/pcktgal.c
+++ b/src/mame/drivers/pcktgal.c
@@ -235,7 +235,7 @@ static MACHINE_CONFIG_START( pcktgal, pcktgal_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pcktgal)
+ MCFG_SCREEN_UPDATE_DRIVER(pcktgal_state, screen_update_pcktgal)
MCFG_GFXDECODE(pcktgal)
MCFG_PALETTE_LENGTH(512)
@@ -262,7 +262,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( bootleg, pcktgal )
MCFG_GFXDECODE(bootleg)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(pcktgalb)
+ MCFG_SCREEN_UPDATE_DRIVER(pcktgal_state, screen_update_pcktgalb)
MACHINE_CONFIG_END
/***************************************************************************/
diff --git a/src/mame/drivers/pcxt.c b/src/mame/drivers/pcxt.c
index 2ebc6d97266..9ef43239469 100644
--- a/src/mame/drivers/pcxt.c
+++ b/src/mame/drivers/pcxt.c
@@ -124,14 +124,14 @@ public:
DECLARE_DRIVER_INIT(tetriskr);
DECLARE_DRIVER_INIT(filetto);
virtual void machine_reset();
+ UINT32 screen_update_tetriskr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
-static SCREEN_UPDATE_RGB32( tetriskr )
+UINT32 pcxt_state::screen_update_tetriskr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- pcxt_state *state = screen.machine().driver_data<pcxt_state>();
int x,y;
int yi;
- const UINT8 *bg_rom = state->memregion("gfx2")->base();
+ const UINT8 *bg_rom = memregion("gfx2")->base();
//popmessage("%04x",m_start_offs);
@@ -151,7 +151,7 @@ static SCREEN_UPDATE_RGB32( tetriskr )
color = 0;
/* TODO: first byte seems bogus? */
for(pen_i = 0;pen_i<4;pen_i++)
- color |= ((bg_rom[y*320/8+x+(pen_i*0x20000)+yi*0x400+state->m_bg_bank*0x2000+1] >> (7-xi)) & 1) << pen_i;
+ color |= ((bg_rom[y*320/8+x+(pen_i*0x20000)+yi*0x400+m_bg_bank*0x2000+1] >> (7-xi)) & 1) << pen_i;
if(cliprect.contains(x*8+xi, y*8+yi))
bitmap.pix32(y*8+yi, x*8+xi) = screen.machine().pens[color];
@@ -766,7 +766,7 @@ static MACHINE_CONFIG_DERIVED( tetriskr, filetto )
MCFG_DEVICE_MODIFY("screen")
MCFG_VIDEO_START(pc_cga_superimpose)
- MCFG_SCREEN_UPDATE_STATIC(tetriskr)
+ MCFG_SCREEN_UPDATE_DRIVER(pcxt_state, screen_update_tetriskr)
MCFG_DEVICE_REMOVE("voice")
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/pengo.c b/src/mame/drivers/pengo.c
index 2588e5c61d7..9e9bc6014b6 100644
--- a/src/mame/drivers/pengo.c
+++ b/src/mame/drivers/pengo.c
@@ -391,7 +391,7 @@ static MACHINE_CONFIG_START( pengo, pengo_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(pacman)
+ MCFG_SCREEN_UPDATE_DRIVER(pengo_state, screen_update_pacman)
MCFG_PALETTE_INIT_OVERRIDE(pengo_state,pacman)
MCFG_VIDEO_START_OVERRIDE(pengo_state,pengo)
diff --git a/src/mame/drivers/peplus.c b/src/mame/drivers/peplus.c
index 47b790f06ad..e18aa67380f 100644
--- a/src/mame/drivers/peplus.c
+++ b/src/mame/drivers/peplus.c
@@ -266,6 +266,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_peplus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
static const UINT8 id_022[8] = { 0x00, 0x01, 0x04, 0x09, 0x13, 0x16, 0x18, 0x00 };
@@ -968,10 +969,9 @@ void peplus_state::video_start()
memset(m_palette_ram2, 0, 0x3000);
}
-static SCREEN_UPDATE_IND16( peplus )
+UINT32 peplus_state::screen_update_peplus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- peplus_state *state = screen.machine().driver_data<peplus_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -1352,7 +1352,7 @@ static MACHINE_CONFIG_START( peplus, peplus_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE((52+1)*8, (31+1)*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 25*8-1)
- MCFG_SCREEN_UPDATE_STATIC(peplus)
+ MCFG_SCREEN_UPDATE_DRIVER(peplus_state, screen_update_peplus)
MCFG_GFXDECODE(peplus)
MCFG_PALETTE_LENGTH(16*16*2)
diff --git a/src/mame/drivers/pgm.c b/src/mame/drivers/pgm.c
index 46ea400beca..f577fb294f0 100644
--- a/src/mame/drivers/pgm.c
+++ b/src/mame/drivers/pgm.c
@@ -539,8 +539,8 @@ MACHINE_CONFIG_FRAGMENT( pgmbase )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 56*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pgm)
- MCFG_SCREEN_VBLANK_STATIC(pgm)
+ MCFG_SCREEN_UPDATE_DRIVER(pgm_state, screen_update_pgm)
+ MCFG_SCREEN_VBLANK_DRIVER(pgm_state, screen_eof_pgm)
MCFG_GFXDECODE(pgm)
MCFG_PALETTE_LENGTH(0x1200/2)
diff --git a/src/mame/drivers/pgm2.c b/src/mame/drivers/pgm2.c
index 2f0df6eab3f..065203dffac 100644
--- a/src/mame/drivers/pgm2.c
+++ b/src/mame/drivers/pgm2.c
@@ -36,6 +36,8 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_pgm2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_pgm2(screen_device &screen, bool state);
};
static ADDRESS_MAP_START( pgm2_map, AS_PROGRAM, 32, pgm2_state )
@@ -45,12 +47,12 @@ ADDRESS_MAP_END
static INPUT_PORTS_START( pgm2 )
INPUT_PORTS_END
-static SCREEN_UPDATE_IND16(pgm2)
+UINT32 pgm2_state::screen_update_pgm2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
-static SCREEN_VBLANK(pgm2)
+void pgm2_state::screen_eof_pgm2(screen_device &screen, bool state)
{
}
@@ -139,8 +141,8 @@ static MACHINE_CONFIG_START( pgm2, pgm2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 56*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pgm2)
- MCFG_SCREEN_VBLANK_STATIC(pgm2)
+ MCFG_SCREEN_UPDATE_DRIVER(pgm2_state, screen_update_pgm2)
+ MCFG_SCREEN_VBLANK_DRIVER(pgm2_state, screen_eof_pgm2)
MCFG_PALETTE_LENGTH(0x1000)
diff --git a/src/mame/drivers/phoenix.c b/src/mame/drivers/phoenix.c
index 7af1638a3b7..e7aa6ecac60 100644
--- a/src/mame/drivers/phoenix.c
+++ b/src/mame/drivers/phoenix.c
@@ -461,7 +461,7 @@ static MACHINE_CONFIG_START( phoenix, phoenix_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(phoenix)
+ MCFG_SCREEN_UPDATE_DRIVER(phoenix_state, screen_update_phoenix)
MCFG_GFXDECODE(phoenix)
MCFG_PALETTE_LENGTH(256)
@@ -534,7 +534,7 @@ static MACHINE_CONFIG_START( survival, phoenix_state )
*/
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(phoenix)
+ MCFG_SCREEN_UPDATE_DRIVER(phoenix_state, screen_update_phoenix)
MCFG_GFXDECODE(phoenix)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/photon.c b/src/mame/drivers/photon.c
index a6267568bc2..9b1b6834c8d 100644
--- a/src/mame/drivers/photon.c
+++ b/src/mame/drivers/photon.c
@@ -36,6 +36,7 @@ public:
DECLARE_WRITE8_MEMBER(pk8000_84_portc_w);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_photon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -205,7 +206,7 @@ void photon_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( photon )
+UINT32 photon_state::screen_update_photon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return pk8000_video_update(screen, bitmap, cliprect, screen.machine().root_device().memregion("maincpu")->base());
}
@@ -225,7 +226,7 @@ static MACHINE_CONFIG_START( photon, photon_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(256+32, 192+32)
MCFG_SCREEN_VISIBLE_AREA(0, 256+32-1, 0, 192+32-1)
- MCFG_SCREEN_UPDATE_STATIC(photon)
+ MCFG_SCREEN_UPDATE_DRIVER(photon_state, screen_update_photon)
MCFG_PALETTE_LENGTH(16)
MCFG_PALETTE_INIT(pk8000)
diff --git a/src/mame/drivers/photon2.c b/src/mame/drivers/photon2.c
index d7e02bd5839..a2982954a8c 100644
--- a/src/mame/drivers/photon2.c
+++ b/src/mame/drivers/photon2.c
@@ -35,6 +35,8 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_spectrum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_spectrum(screen_device &screen, bool state);
};
@@ -106,17 +108,16 @@ INLINE unsigned char get_display_color (unsigned char color, int invert)
/* Code to change the FLASH status every 25 frames. Note this must be
independent of frame skip etc. */
-static SCREEN_VBLANK( spectrum )
+void photon2_state::screen_eof_spectrum(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- photon2_state *state = screen.machine().driver_data<photon2_state>();
- state->m_spectrum_frame_number++;
- if (state->m_spectrum_frame_number >= 25)
+ m_spectrum_frame_number++;
+ if (m_spectrum_frame_number >= 25)
{
- state->m_spectrum_frame_number = 0;
- state->m_spectrum_flash_invert = !state->m_spectrum_flash_invert;
+ m_spectrum_frame_number = 0;
+ m_spectrum_flash_invert = !m_spectrum_flash_invert;
}
}
}
@@ -126,29 +127,28 @@ INLINE void spectrum_plot_pixel(bitmap_ind16 &bitmap, int x, int y, UINT32 color
bitmap.pix16(y, x) = (UINT16)color;
}
-static SCREEN_UPDATE_IND16( spectrum )
+UINT32 photon2_state::screen_update_spectrum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- photon2_state *state = screen.machine().driver_data<photon2_state>();
/* for now do a full-refresh */
int x, y, b, scrx, scry;
unsigned short ink, pap;
unsigned char *attr, *scr;
// int full_refresh = 1;
- scr=state->m_spectrum_video_ram;
+ scr=m_spectrum_video_ram;
- bitmap.fill(state->m_spectrum_port_fe & 0x07, cliprect);
+ bitmap.fill(m_spectrum_port_fe & 0x07, cliprect);
for (y=0; y<192; y++)
{
scrx=SPEC_LEFT_BORDER;
scry=((y&7) * 8) + ((y&0x38)>>3) + (y&0xC0);
- attr=state->m_spectrum_video_ram + ((scry>>3)*32) + 0x1800;
+ attr=m_spectrum_video_ram + ((scry>>3)*32) + 0x1800;
for (x=0;x<32;x++)
{
/* Get ink and paper colour with bright */
- if (state->m_spectrum_flash_invert && (*attr & 0x80))
+ if (m_spectrum_flash_invert && (*attr & 0x80))
{
ink=((*attr)>>3) & 0x0f;
pap=((*attr) & 0x07) + (((*attr)>>3) & 0x08);
@@ -331,8 +331,8 @@ static MACHINE_CONFIG_START( photon2, photon2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(SPEC_SCREEN_WIDTH, SPEC_SCREEN_HEIGHT)
MCFG_SCREEN_VISIBLE_AREA(0, SPEC_SCREEN_WIDTH-1, 0, SPEC_SCREEN_HEIGHT-1)
- MCFG_SCREEN_UPDATE_STATIC( spectrum )
- MCFG_SCREEN_VBLANK_STATIC( spectrum )
+ MCFG_SCREEN_UPDATE_DRIVER(photon2_state, screen_update_spectrum)
+ MCFG_SCREEN_VBLANK_DRIVER(photon2_state, screen_eof_spectrum)
MCFG_PALETTE_LENGTH(16)
diff --git a/src/mame/drivers/pingpong.c b/src/mame/drivers/pingpong.c
index 6502e6d55ec..deb1170807a 100644
--- a/src/mame/drivers/pingpong.c
+++ b/src/mame/drivers/pingpong.c
@@ -472,7 +472,7 @@ static MACHINE_CONFIG_START( pingpong, pingpong_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(456, 262)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pingpong)
+ MCFG_SCREEN_UPDATE_DRIVER(pingpong_state, screen_update_pingpong)
MCFG_GFXDECODE(pingpong)
MCFG_PALETTE_LENGTH(64*4+64*4)
diff --git a/src/mame/drivers/pinkiri8.c b/src/mame/drivers/pinkiri8.c
index 00c46a37098..042a06196d2 100644
--- a/src/mame/drivers/pinkiri8.c
+++ b/src/mame/drivers/pinkiri8.c
@@ -76,6 +76,7 @@ public:
DECLARE_READ8_MEMBER(ronjan_patched_prot_r);
DECLARE_DRIVER_INIT(ronjan);
virtual void video_start();
+ UINT32 screen_update_pinkiri8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -201,16 +202,15 @@ ronjan
*/
-static SCREEN_UPDATE_IND16( pinkiri8 )
+UINT32 pinkiri8_state::screen_update_pinkiri8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pinkiri8_state *state = screen.machine().driver_data<pinkiri8_state>();
int col_bank;
gfx_element *gfx = screen.machine().gfx[0];
/* update palette */
for (int pen = 0; pen < 0x800 ; pen++)
{
- UINT16 val = (state->m_janshi_paletteram[pen]) | (state->m_janshi_paletteram2[pen]<<8);
+ UINT16 val = (m_janshi_paletteram[pen]) | (m_janshi_paletteram2[pen]<<8);
int r = (val & 0x001f) >> 0;
int g = (val & 0x03e0) >> 5;
int b = (val & 0x7c00) >> 10;
@@ -230,7 +230,7 @@ static SCREEN_UPDATE_IND16( pinkiri8 )
for (i=0x00;i<0x40;i+=2)
{
- printf("%02x, ", state->m_janshi_widthflags[i+1]);
+ printf("%02x, ", m_janshi_widthflags[i+1]);
count2++;
@@ -248,8 +248,8 @@ static SCREEN_UPDATE_IND16( pinkiri8 )
- //popmessage("%02x",state->m_janshi_crtc_regs[0x0a]);
- col_bank = (state->m_janshi_crtc_regs[0x0a] & 0x40) >> 6;
+ //popmessage("%02x",m_janshi_crtc_regs[0x0a]);
+ col_bank = (m_janshi_crtc_regs[0x0a] & 0x40) >> 6;
bitmap.fill(get_black_pen(screen.machine()), cliprect);
@@ -263,8 +263,8 @@ static SCREEN_UPDATE_IND16( pinkiri8 )
{
for(x=0;x<32;x++)
{
- tile = state->m_janshi_back_vram[count+1]<<8 | state->m_janshi_back_vram[count+0];
- attr = state->m_janshi_back_vram[count+2] ^ 0xf0;
+ tile = m_janshi_back_vram[count+1]<<8 | m_janshi_back_vram[count+0];
+ attr = m_janshi_back_vram[count+2] ^ 0xf0;
col = (attr >> 4) | 0x10;
drawgfx_transpen(bitmap,cliprect,gfx,tile,col,0,0,x*16,y*8,0);
@@ -300,15 +300,15 @@ static SCREEN_UPDATE_IND16( pinkiri8 )
*/
- spr_offs = ((state->m_janshi_vram1[(i*4)+0] & 0xff) | (state->m_janshi_vram1[(i*4)+1]<<8)) & 0xffff;
- col = (state->m_janshi_vram1[(i*4)+2] & 0xf8) >> 3;
- x = state->m_janshi_vram1[(i*4)+3];
+ spr_offs = ((m_janshi_vram1[(i*4)+0] & 0xff) | (m_janshi_vram1[(i*4)+1]<<8)) & 0xffff;
+ col = (m_janshi_vram1[(i*4)+2] & 0xf8) >> 3;
+ x = m_janshi_vram1[(i*4)+3];
x &= 0xff;
x *= 2;
-// unk2 = state->m_janshi_vram2[(i*2)+1];
- y = (state->m_janshi_vram2[(i*2)+0]);
+// unk2 = m_janshi_vram2[(i*2)+1];
+ y = (m_janshi_vram2[(i*2)+0]);
y = 0x100-y;
@@ -321,7 +321,7 @@ static SCREEN_UPDATE_IND16( pinkiri8 )
// these bits seem to somehow determine the sprite height / widths for the sprite ram region?
- int bit = state->m_janshi_widthflags[(i/0x20)*2 + 1];
+ int bit = m_janshi_widthflags[(i/0x20)*2 + 1];
if (bit)
{
@@ -1139,7 +1139,7 @@ static MACHINE_CONFIG_START( pinkiri8, pinkiri8_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 64*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pinkiri8)
+ MCFG_SCREEN_UPDATE_DRIVER(pinkiri8_state, screen_update_pinkiri8)
MCFG_GFXDECODE(pinkiri8)
MCFG_PALETTE_LENGTH(0x2000)
diff --git a/src/mame/drivers/pipedrm.c b/src/mame/drivers/pipedrm.c
index b486649b6b8..2219ee6db2f 100644
--- a/src/mame/drivers/pipedrm.c
+++ b/src/mame/drivers/pipedrm.c
@@ -653,7 +653,7 @@ static MACHINE_CONFIG_START( pipedrm, fromance_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(44*8, 30*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 44*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pipedrm)
+ MCFG_SCREEN_UPDATE_DRIVER(fromance_state, screen_update_pipedrm)
MCFG_GFXDECODE(pipedrm)
MCFG_PALETTE_LENGTH(2048)
@@ -692,7 +692,7 @@ static MACHINE_CONFIG_START( hatris, fromance_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(44*8, 30*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 44*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(fromance)
+ MCFG_SCREEN_UPDATE_DRIVER(fromance_state, screen_update_fromance)
MCFG_GFXDECODE(hatris)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/pipeline.c b/src/mame/drivers/pipeline.c
index 7b7a768b1ed..d7cea9d08bf 100644
--- a/src/mame/drivers/pipeline.c
+++ b/src/mame/drivers/pipeline.c
@@ -101,6 +101,7 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info2);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_pipeline(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -135,11 +136,10 @@ void pipeline_state::video_start()
m_tilemap2->set_transparent_pen(0);
}
-static SCREEN_UPDATE_IND16( pipeline )
+UINT32 pipeline_state::screen_update_pipeline(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pipeline_state *state = screen.machine().driver_data<pipeline_state>();
- state->m_tilemap1->draw(bitmap, cliprect, 0,0);
- state->m_tilemap2->draw(bitmap, cliprect, 0,0);
+ m_tilemap1->draw(bitmap, cliprect, 0,0);
+ m_tilemap2->draw(bitmap, cliprect, 0,0);
return 0;
}
@@ -413,7 +413,7 @@ static MACHINE_CONFIG_START( pipeline, pipeline_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 512)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 16, 239)
- MCFG_SCREEN_UPDATE_STATIC(pipeline)
+ MCFG_SCREEN_UPDATE_DRIVER(pipeline_state, screen_update_pipeline)
MCFG_GFXDECODE(pipeline)
diff --git a/src/mame/drivers/pirates.c b/src/mame/drivers/pirates.c
index 0ce63367f73..7ec34a53ef4 100644
--- a/src/mame/drivers/pirates.c
+++ b/src/mame/drivers/pirates.c
@@ -275,7 +275,7 @@ static MACHINE_CONFIG_START( pirates, pirates_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(36*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pirates)
+ MCFG_SCREEN_UPDATE_DRIVER(pirates_state, screen_update_pirates)
MCFG_PALETTE_LENGTH(0x2000)
diff --git a/src/mame/drivers/pitnrun.c b/src/mame/drivers/pitnrun.c
index 0a96137298d..7fee2a2e0c6 100644
--- a/src/mame/drivers/pitnrun.c
+++ b/src/mame/drivers/pitnrun.c
@@ -250,7 +250,7 @@ static MACHINE_CONFIG_START( pitnrun, pitnrun_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pitnrun)
+ MCFG_SCREEN_UPDATE_DRIVER(pitnrun_state, screen_update_pitnrun)
MCFG_GFXDECODE(pitnrun)
MCFG_PALETTE_LENGTH(32*3)
diff --git a/src/mame/drivers/pkscram.c b/src/mame/drivers/pkscram.c
index 5a41c18bca1..03162a8d79c 100644
--- a/src/mame/drivers/pkscram.c
+++ b/src/mame/drivers/pkscram.c
@@ -44,6 +44,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_pkscramble(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -243,12 +244,11 @@ void pkscram_state::video_start()
m_fg_tilemap->set_transparent_pen(15);
}
-static SCREEN_UPDATE_IND16( pkscramble )
+UINT32 pkscram_state::screen_update_pkscramble(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pkscram_state *state = screen.machine().driver_data<pkscram_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_md_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_md_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
@@ -316,7 +316,7 @@ static MACHINE_CONFIG_START( pkscramble, pkscram_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 24*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pkscramble)
+ MCFG_SCREEN_UPDATE_DRIVER(pkscram_state, screen_update_pkscramble)
MCFG_PALETTE_LENGTH(0x800)
MCFG_GFXDECODE(pkscram)
diff --git a/src/mame/drivers/pktgaldx.c b/src/mame/drivers/pktgaldx.c
index 56af342e663..fdc49c35268 100644
--- a/src/mame/drivers/pktgaldx.c
+++ b/src/mame/drivers/pktgaldx.c
@@ -337,7 +337,7 @@ static MACHINE_CONFIG_START( pktgaldx, pktgaldx_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pktgaldx)
+ MCFG_SCREEN_UPDATE_DRIVER(pktgaldx_state, screen_update_pktgaldx)
MCFG_PALETTE_LENGTH(4096)
MCFG_GFXDECODE(pktgaldx)
@@ -376,7 +376,7 @@ static MACHINE_CONFIG_START( pktgaldb, pktgaldx_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pktgaldb)
+ MCFG_SCREEN_UPDATE_DRIVER(pktgaldx_state, screen_update_pktgaldb)
MCFG_PALETTE_LENGTH(4096)
MCFG_GFXDECODE(bootleg)
diff --git a/src/mame/drivers/playch10.c b/src/mame/drivers/playch10.c
index daaf9583f71..58f9d6589d8 100644
--- a/src/mame/drivers/playch10.c
+++ b/src/mame/drivers/playch10.c
@@ -694,13 +694,13 @@ static MACHINE_CONFIG_START( playch10, playch10_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(32*8, 262)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(playch10_top)
+ MCFG_SCREEN_UPDATE_DRIVER(playch10_state, screen_update_playch10_top)
MCFG_SCREEN_ADD("bottom", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(32*8, 262)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(playch10_bottom)
+ MCFG_SCREEN_UPDATE_DRIVER(playch10_state, screen_update_playch10_bottom)
MCFG_PPU2C03B_ADD("ppu", playch10_ppu_interface)
diff --git a/src/mame/drivers/playmark.c b/src/mame/drivers/playmark.c
index 25c4ba53c1b..491cb159a99 100644
--- a/src/mame/drivers/playmark.c
+++ b/src/mame/drivers/playmark.c
@@ -1084,7 +1084,7 @@ static MACHINE_CONFIG_START( bigtwin, playmark_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(bigtwin)
+ MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_bigtwin)
MCFG_GFXDECODE(playmark)
MCFG_PALETTE_LENGTH(1024)
@@ -1118,7 +1118,7 @@ static MACHINE_CONFIG_START( bigtwinb, playmark_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(bigtwinb)
+ MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_bigtwinb)
MCFG_GFXDECODE(bigtwinb)
MCFG_PALETTE_LENGTH(1024)
@@ -1155,7 +1155,7 @@ static MACHINE_CONFIG_START( wbeachvl, playmark_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(wbeachvl)
+ MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_wbeachvl)
MCFG_GFXDECODE(wbeachvl)
MCFG_PALETTE_LENGTH(2048)
@@ -1189,7 +1189,7 @@ static MACHINE_CONFIG_START( excelsr, playmark_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(excelsr)
+ MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_excelsr)
MCFG_GFXDECODE(excelsr)
MCFG_PALETTE_LENGTH(1024)
@@ -1226,7 +1226,7 @@ static MACHINE_CONFIG_START( hotmind, playmark_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(hrdtimes)
+ MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_hrdtimes)
MCFG_GFXDECODE(hrdtimes)
MCFG_PALETTE_LENGTH(1024)
@@ -1260,7 +1260,7 @@ static MACHINE_CONFIG_START( hrdtimes, playmark_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(hrdtimes)
+ MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_hrdtimes)
MCFG_GFXDECODE(hrdtimes)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/plygonet.c b/src/mame/drivers/plygonet.c
index 66e3c4edfff..19f2232fb00 100644
--- a/src/mame/drivers/plygonet.c
+++ b/src/mame/drivers/plygonet.c
@@ -646,7 +646,7 @@ static MACHINE_CONFIG_START( plygonet, polygonet_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(64, 64+368-1, 0, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(polygonet)
+ MCFG_SCREEN_UPDATE_DRIVER(polygonet_state, screen_update_polygonet)
MCFG_PALETTE_LENGTH(32768)
diff --git a/src/mame/drivers/pokechmp.c b/src/mame/drivers/pokechmp.c
index 4ec5aaed561..6a3b4eddd7c 100644
--- a/src/mame/drivers/pokechmp.c
+++ b/src/mame/drivers/pokechmp.c
@@ -218,7 +218,7 @@ static MACHINE_CONFIG_START( pokechmp, pokechmp_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pokechmp)
+ MCFG_SCREEN_UPDATE_DRIVER(pokechmp_state, screen_update_pokechmp)
MCFG_GFXDECODE(pokechmp)
MCFG_PALETTE_LENGTH(0x400)
diff --git a/src/mame/drivers/poker72.c b/src/mame/drivers/poker72.c
index 2f634481f8d..7309032a7f8 100644
--- a/src/mame/drivers/poker72.c
+++ b/src/mame/drivers/poker72.c
@@ -33,6 +33,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_poker72(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -40,9 +41,8 @@ void poker72_state::video_start()
{
}
-static SCREEN_UPDATE_IND16(poker72)
+UINT32 poker72_state::screen_update_poker72(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- poker72_state *state = screen.machine().driver_data<poker72_state>();
int x,y,count;
count = 0;
@@ -51,12 +51,12 @@ static SCREEN_UPDATE_IND16(poker72)
{
for (x=0;x<64;x++)
{
- int tile = ((state->m_vram[count+1] & 0x0f) << 8 ) | (state->m_vram[count+0] & 0xff); //TODO: tile bank
- int fx = (state->m_vram[count+1] & 0x10);
- int fy = (state->m_vram[count+1] & 0x20);
- int color = (state->m_vram[count+1] & 0xc0) >> 6;
+ int tile = ((m_vram[count+1] & 0x0f) << 8 ) | (m_vram[count+0] & 0xff); //TODO: tile bank
+ int fx = (m_vram[count+1] & 0x10);
+ int fy = (m_vram[count+1] & 0x20);
+ int color = (m_vram[count+1] & 0xc0) >> 6;
- tile|= state->m_tile_bank << 12;
+ tile|= m_tile_bank << 12;
drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],tile,color,fx,fy,x*8,y*8);
@@ -363,7 +363,7 @@ static MACHINE_CONFIG_START( poker72, poker72_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(poker72)
+ MCFG_SCREEN_UPDATE_DRIVER(poker72_state, screen_update_poker72)
MCFG_GFXDECODE(poker72)
MCFG_PALETTE_LENGTH(0xe00)
diff --git a/src/mame/drivers/polepos.c b/src/mame/drivers/polepos.c
index 2f444a26791..f837a950280 100644
--- a/src/mame/drivers/polepos.c
+++ b/src/mame/drivers/polepos.c
@@ -908,7 +908,7 @@ static MACHINE_CONFIG_START( polepos, polepos_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 384, 0, 256, 264, 16, 224+16)
- MCFG_SCREEN_UPDATE_STATIC(polepos)
+ MCFG_SCREEN_UPDATE_DRIVER(polepos_state, screen_update_polepos)
MCFG_GFXDECODE(polepos)
MCFG_PALETTE_LENGTH(0x0f00)
@@ -987,7 +987,7 @@ static MACHINE_CONFIG_START( topracern, polepos_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/4, 384, 0, 256, 264, 16, 224+16)
- MCFG_SCREEN_UPDATE_STATIC(polepos)
+ MCFG_SCREEN_UPDATE_DRIVER(polepos_state, screen_update_polepos)
MCFG_GFXDECODE(polepos)
MCFG_PALETTE_LENGTH(0x0f00)
diff --git a/src/mame/drivers/policetr.c b/src/mame/drivers/policetr.c
index 51473e9bdad..ffb559a5013 100644
--- a/src/mame/drivers/policetr.c
+++ b/src/mame/drivers/policetr.c
@@ -427,7 +427,7 @@ static MACHINE_CONFIG_START( policetr, policetr_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(400, 262) /* needs to be verified */
MCFG_SCREEN_VISIBLE_AREA(0, 393, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(policetr)
+ MCFG_SCREEN_UPDATE_DRIVER(policetr_state, screen_update_policetr)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/polyplay.c b/src/mame/drivers/polyplay.c
index f9b1a304d77..627e0189881 100644
--- a/src/mame/drivers/polyplay.c
+++ b/src/mame/drivers/polyplay.c
@@ -285,7 +285,7 @@ static MACHINE_CONFIG_START( polyplay, polyplay_state )
MCFG_SCREEN_REFRESH_RATE(50)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(polyplay)
+ MCFG_SCREEN_UPDATE_DRIVER(polyplay_state, screen_update_polyplay)
MCFG_GFXDECODE(polyplay)
MCFG_PALETTE_LENGTH(10)
diff --git a/src/mame/drivers/poo.c b/src/mame/drivers/poo.c
index a6954d64225..23537a51bef 100644
--- a/src/mame/drivers/poo.c
+++ b/src/mame/drivers/poo.c
@@ -68,6 +68,7 @@ public:
DECLARE_READ8_MEMBER(timer_r);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_unclepoo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -75,9 +76,8 @@ void poo_state::video_start()
{
}
-static SCREEN_UPDATE_IND16(unclepoo)
+UINT32 poo_state::screen_update_unclepoo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- poo_state *state = screen.machine().driver_data<poo_state>();
int y,x;
int count;
gfx_element *gfx = screen.machine().gfx[0];
@@ -88,12 +88,12 @@ static SCREEN_UPDATE_IND16(unclepoo)
{
for (y=0;y<32;y++)
{
- int tile = state->m_vram[count+0x000] | ((state->m_vram[count+0x400] & 3) <<8);
- int color = (state->m_vram[count+0x400] & 0x38) >> 3;
- int scrolly = (state->m_scrolly[x*4]);
+ int tile = m_vram[count+0x000] | ((m_vram[count+0x400] & 3) <<8);
+ int color = (m_vram[count+0x400] & 0x38) >> 3;
+ int scrolly = (m_scrolly[x*4]);
- drawgfx_opaque(bitmap,cliprect,gfx,tile,color+state->m_vram_colbank,0,0,x*8,256-(y*8)+scrolly);
- drawgfx_opaque(bitmap,cliprect,gfx,tile,color+state->m_vram_colbank,0,0,x*8,0-(y*8)+scrolly);
+ drawgfx_opaque(bitmap,cliprect,gfx,tile,color+m_vram_colbank,0,0,x*8,256-(y*8)+scrolly);
+ drawgfx_opaque(bitmap,cliprect,gfx,tile,color+m_vram_colbank,0,0,x*8,0-(y*8)+scrolly);
count++;
}
@@ -104,10 +104,10 @@ static SCREEN_UPDATE_IND16(unclepoo)
for(i=0;i<0x80;i+=4)
{
- spr_offs = state->m_sprites[i+2] | (state->m_sprites[i+3] & 3) << 8;
- y = state->m_sprites[i+0]+8;
- x = state->m_sprites[i+1];
- col = (state->m_sprites[i+3] & 0xf8) >> 3;
+ spr_offs = m_sprites[i+2] | (m_sprites[i+3] & 3) << 8;
+ y = m_sprites[i+0]+8;
+ x = m_sprites[i+1];
+ col = (m_sprites[i+3] & 0xf8) >> 3;
fx = 0;
fy = 0;
@@ -353,7 +353,7 @@ static MACHINE_CONFIG_START( unclepoo, poo_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(unclepoo)
+ MCFG_SCREEN_UPDATE_DRIVER(poo_state, screen_update_unclepoo)
MCFG_GFXDECODE(unclepoo)
MCFG_PALETTE_LENGTH(0x100)
diff --git a/src/mame/drivers/poolshrk.c b/src/mame/drivers/poolshrk.c
index c5c020232b2..3121fa3e021 100644
--- a/src/mame/drivers/poolshrk.c
+++ b/src/mame/drivers/poolshrk.c
@@ -223,7 +223,7 @@ static MACHINE_CONFIG_START( poolshrk, poolshrk_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(1, 255, 24, 255)
- MCFG_SCREEN_UPDATE_STATIC(poolshrk)
+ MCFG_SCREEN_UPDATE_DRIVER(poolshrk_state, screen_update_poolshrk)
MCFG_GFXDECODE(poolshrk)
MCFG_PALETTE_LENGTH(4)
diff --git a/src/mame/drivers/pooyan.c b/src/mame/drivers/pooyan.c
index e6d32f1c928..44a1415375f 100644
--- a/src/mame/drivers/pooyan.c
+++ b/src/mame/drivers/pooyan.c
@@ -201,7 +201,7 @@ static MACHINE_CONFIG_START( pooyan, pooyan_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pooyan)
+ MCFG_SCREEN_UPDATE_DRIVER(pooyan_state, screen_update_pooyan)
MCFG_GFXDECODE(pooyan)
MCFG_PALETTE_LENGTH(16*16+16*16)
diff --git a/src/mame/drivers/popeye.c b/src/mame/drivers/popeye.c
index 99efd79e9c3..cfbdde9cbbf 100644
--- a/src/mame/drivers/popeye.c
+++ b/src/mame/drivers/popeye.c
@@ -436,7 +436,7 @@ static MACHINE_CONFIG_START( skyskipr, popeye_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*16, 32*16)
MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 2*16, 30*16-1)
- MCFG_SCREEN_UPDATE_STATIC(popeye)
+ MCFG_SCREEN_UPDATE_DRIVER(popeye_state, screen_update_popeye)
MCFG_GFXDECODE(popeye)
MCFG_PALETTE_LENGTH(16+16*2+64*4)
diff --git a/src/mame/drivers/popobear.c b/src/mame/drivers/popobear.c
index 75ae4d43cb6..076828d2883 100644
--- a/src/mame/drivers/popobear.c
+++ b/src/mame/drivers/popobear.c
@@ -95,6 +95,7 @@ public:
DECLARE_READ8_MEMBER(popo_620000_r);
DECLARE_WRITE8_MEMBER(popobear_irq_ack_w);
virtual void video_start();
+ UINT32 screen_update_popobear(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
void popobear_state::video_start()
@@ -256,13 +257,12 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re
}
}
-SCREEN_UPDATE_IND16( popobear )
+UINT32 popobear_state::screen_update_popobear(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
-// popobear_state *state = screen.machine().driver_data<popobear_state>();
bitmap.fill(0, cliprect);
- //popmessage("%04x",state->m_vregs[0/2]);
+ //popmessage("%04x",m_vregs[0/2]);
draw_layer(screen.machine(),bitmap,cliprect,3);
draw_layer(screen.machine(),bitmap,cliprect,2);
@@ -465,7 +465,7 @@ static MACHINE_CONFIG_START( popobear, popobear_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_UPDATE_STATIC(popobear)
+ MCFG_SCREEN_UPDATE_DRIVER(popobear_state, screen_update_popobear)
// MCFG_GFXDECODE(popobear)
diff --git a/src/mame/drivers/popper.c b/src/mame/drivers/popper.c
index 22431a138bf..7e268e19d60 100644
--- a/src/mame/drivers/popper.c
+++ b/src/mame/drivers/popper.c
@@ -357,7 +357,7 @@ static MACHINE_CONFIG_START( popper, popper_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(33*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 33*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(popper)
+ MCFG_SCREEN_UPDATE_DRIVER(popper_state, screen_update_popper)
MCFG_GFXDECODE(popper)
MCFG_PALETTE_LENGTH(64)
diff --git a/src/mame/drivers/portrait.c b/src/mame/drivers/portrait.c
index 81a71d0c93d..8ef875ee8b2 100644
--- a/src/mame/drivers/portrait.c
+++ b/src/mame/drivers/portrait.c
@@ -256,7 +256,7 @@ static MACHINE_CONFIG_START( portrait, portrait_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 54*8-1, 0*8, 40*8-1)
- MCFG_SCREEN_UPDATE_STATIC(portrait)
+ MCFG_SCREEN_UPDATE_DRIVER(portrait_state, screen_update_portrait)
MCFG_GFXDECODE(portrait)
MCFG_PALETTE_LENGTH(0x800)
diff --git a/src/mame/drivers/powerbal.c b/src/mame/drivers/powerbal.c
index 01c7ce0b49e..1337e46a414 100644
--- a/src/mame/drivers/powerbal.c
+++ b/src/mame/drivers/powerbal.c
@@ -426,11 +426,10 @@ VIDEO_START_MEMBER(playmark_state,powerbal)
m_bg_tilemap->set_scrolly(0, m_bg_yoffset);
}
-static SCREEN_UPDATE_IND16( powerbal )
+UINT32 playmark_state::screen_update_powerbal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- playmark_state *state = screen.machine().driver_data<playmark_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
@@ -496,7 +495,7 @@ static MACHINE_CONFIG_START( powerbal, playmark_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(128*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(powerbal)
+ MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_powerbal)
MCFG_GFXDECODE(powerbal)
MCFG_PALETTE_LENGTH(512)
@@ -529,7 +528,7 @@ static MACHINE_CONFIG_START( magicstk, playmark_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(128*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(powerbal)
+ MCFG_SCREEN_UPDATE_DRIVER(playmark_state, screen_update_powerbal)
MCFG_GFXDECODE(powerbal)
MCFG_PALETTE_LENGTH(512)
diff --git a/src/mame/drivers/powerins.c b/src/mame/drivers/powerins.c
index 978a6ecee15..0a44d73ad0c 100644
--- a/src/mame/drivers/powerins.c
+++ b/src/mame/drivers/powerins.c
@@ -356,7 +356,7 @@ static MACHINE_CONFIG_START( powerins, powerins_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0+16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(powerins)
+ MCFG_SCREEN_UPDATE_DRIVER(powerins_state, screen_update_powerins)
MCFG_GFXDECODE(powerins)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/ppmast93.c b/src/mame/drivers/ppmast93.c
index 185cbd0bebc..081bb98ef0e 100644
--- a/src/mame/drivers/ppmast93.c
+++ b/src/mame/drivers/ppmast93.c
@@ -155,6 +155,7 @@ public:
TILE_GET_INFO_MEMBER(get_ppmast93_bg_tile_info);
TILE_GET_INFO_MEMBER(get_ppmast93_fg_tile_info);
virtual void video_start();
+ UINT32 screen_update_ppmast93(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -353,11 +354,10 @@ void ppmast93_state::video_start()
m_fg_tilemap->set_transparent_pen(0);
}
-static SCREEN_UPDATE_IND16( ppmast93 )
+UINT32 ppmast93_state::screen_update_ppmast93(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ppmast93_state *state = screen.machine().driver_data<ppmast93_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
@@ -379,7 +379,7 @@ static MACHINE_CONFIG_START( ppmast93, ppmast93_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(ppmast93)
+ MCFG_SCREEN_UPDATE_DRIVER(ppmast93_state, screen_update_ppmast93)
MCFG_GFXDECODE(ppmast93)
diff --git a/src/mame/drivers/prehisle.c b/src/mame/drivers/prehisle.c
index f8ad1f5102a..20e903d8f43 100644
--- a/src/mame/drivers/prehisle.c
+++ b/src/mame/drivers/prehisle.c
@@ -222,7 +222,7 @@ static MACHINE_CONFIG_START( prehisle, prehisle_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(prehisle)
+ MCFG_SCREEN_UPDATE_DRIVER(prehisle_state, screen_update_prehisle)
MCFG_GFXDECODE(prehisle)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/progolf.c b/src/mame/drivers/progolf.c
index 98bfbcecf33..e2f65bbe484 100644
--- a/src/mame/drivers/progolf.c
+++ b/src/mame/drivers/progolf.c
@@ -86,6 +86,7 @@ public:
DECLARE_DRIVER_INIT(progolf);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_progolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -101,14 +102,13 @@ void progolf_state::video_start()
}
-static SCREEN_UPDATE_IND16( progolf )
+UINT32 progolf_state::screen_update_progolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- progolf_state *state = screen.machine().driver_data<progolf_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
int count,color,x,y,xi,yi;
{
- int scroll = (state->m_scrollx_lo | ((state->m_scrollx_hi & 0x03) << 8));
+ int scroll = (m_scrollx_lo | ((m_scrollx_hi & 0x03) << 8));
count = 0;
@@ -139,7 +139,7 @@ static SCREEN_UPDATE_IND16( progolf )
{
for (xi=0;xi<8;xi++)
{
- color = state->m_fg_fb[(xi+yi*8)+count*0x40];
+ color = m_fg_fb[(xi+yi*8)+count*0x40];
if(color != 0 && cliprect.contains(x+yi, 256-y+xi))
bitmap.pix16(x+yi, 256-y+xi) = screen.machine().pens[(color & 0x7)];
@@ -436,7 +436,7 @@ static MACHINE_CONFIG_START( progolf, progolf_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3072))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(progolf)
+ MCFG_SCREEN_UPDATE_DRIVER(progolf_state, screen_update_progolf)
MCFG_GFXDECODE(progolf)
MCFG_PALETTE_LENGTH(32*3)
diff --git a/src/mame/drivers/psattack.c b/src/mame/drivers/psattack.c
index 9f3c368ec30..bd6f0da995e 100644
--- a/src/mame/drivers/psattack.c
+++ b/src/mame/drivers/psattack.c
@@ -90,6 +90,8 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_psattack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_psattack(screen_device &screen, bool state);
};
@@ -124,12 +126,12 @@ void psattack_state::video_start()
}
-static SCREEN_UPDATE_IND16(psattack)
+UINT32 psattack_state::screen_update_psattack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
-static SCREEN_VBLANK(psattack)
+void psattack_state::screen_eof_psattack(screen_device &screen, bool state)
{
}
@@ -186,8 +188,8 @@ static MACHINE_CONFIG_START( psattack, psattack_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(psattack)
- MCFG_SCREEN_VBLANK_STATIC(psattack)
+ MCFG_SCREEN_UPDATE_DRIVER(psattack_state, screen_update_psattack)
+ MCFG_SCREEN_VBLANK_DRIVER(psattack_state, screen_eof_psattack)
MCFG_PALETTE_INIT(RRRRR_GGGGGG_BBBBB)
diff --git a/src/mame/drivers/psikyo.c b/src/mame/drivers/psikyo.c
index 7abba4bbf9d..b59c17cabdf 100644
--- a/src/mame/drivers/psikyo.c
+++ b/src/mame/drivers/psikyo.c
@@ -1062,8 +1062,8 @@ static MACHINE_CONFIG_START( sngkace, psikyo_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // we're using PORT_VBLANK
MCFG_SCREEN_SIZE(320, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-32-1)
- MCFG_SCREEN_UPDATE_STATIC(psikyo)
- MCFG_SCREEN_VBLANK_STATIC(psikyo)
+ MCFG_SCREEN_UPDATE_DRIVER(psikyo_state, screen_update_psikyo)
+ MCFG_SCREEN_VBLANK_DRIVER(psikyo_state, screen_eof_psikyo)
MCFG_GFXDECODE(psikyo)
MCFG_PALETTE_LENGTH(0x1000)
@@ -1111,8 +1111,8 @@ static MACHINE_CONFIG_START( gunbird, psikyo_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // we're using PORT_VBLANK
MCFG_SCREEN_SIZE(320, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-32-1)
- MCFG_SCREEN_UPDATE_STATIC(psikyo)
- MCFG_SCREEN_VBLANK_STATIC(psikyo)
+ MCFG_SCREEN_UPDATE_DRIVER(psikyo_state, screen_update_psikyo)
+ MCFG_SCREEN_VBLANK_DRIVER(psikyo_state, screen_eof_psikyo)
MCFG_GFXDECODE(psikyo)
MCFG_PALETTE_LENGTH(0x1000)
@@ -1144,8 +1144,8 @@ static MACHINE_CONFIG_START( s1945bl, psikyo_state ) /* Bootleg hardware based o
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // we're using PORT_VBLANK
MCFG_SCREEN_SIZE(320, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-32-1)
- MCFG_SCREEN_UPDATE_STATIC(psikyo_bootleg)
- MCFG_SCREEN_VBLANK_STATIC(psikyo)
+ MCFG_SCREEN_UPDATE_DRIVER(psikyo_state, screen_update_psikyo_bootleg)
+ MCFG_SCREEN_VBLANK_DRIVER(psikyo_state, screen_eof_psikyo)
MCFG_GFXDECODE(psikyo)
MCFG_PALETTE_LENGTH(0x1000)
@@ -1198,8 +1198,8 @@ static MACHINE_CONFIG_START( s1945, psikyo_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // we're using PORT_VBLANK
MCFG_SCREEN_SIZE(320, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-32-1)
- MCFG_SCREEN_UPDATE_STATIC(psikyo)
- MCFG_SCREEN_VBLANK_STATIC(psikyo)
+ MCFG_SCREEN_UPDATE_DRIVER(psikyo_state, screen_update_psikyo)
+ MCFG_SCREEN_VBLANK_DRIVER(psikyo_state, screen_eof_psikyo)
MCFG_GFXDECODE(psikyo)
MCFG_PALETTE_LENGTH(0x1000)
diff --git a/src/mame/drivers/psikyo4.c b/src/mame/drivers/psikyo4.c
index c2d4c3a54ed..5483aa4c304 100644
--- a/src/mame/drivers/psikyo4.c
+++ b/src/mame/drivers/psikyo4.c
@@ -697,14 +697,14 @@ static MACHINE_CONFIG_START( ps4big, psikyo4_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(psikyo4_left)
+ MCFG_SCREEN_UPDATE_DRIVER(psikyo4_state, screen_update_psikyo4_left)
MCFG_SCREEN_ADD("rscreen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(psikyo4_right)
+ MCFG_SCREEN_UPDATE_DRIVER(psikyo4_state, screen_update_psikyo4_right)
/* sound hardware */
diff --git a/src/mame/drivers/psikyosh.c b/src/mame/drivers/psikyosh.c
index bc8d51213d5..8dd2f2fd2f8 100644
--- a/src/mame/drivers/psikyosh.c
+++ b/src/mame/drivers/psikyosh.c
@@ -822,7 +822,7 @@ static MACHINE_CONFIG_START( psikyo3v1, psikyosh_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(psikyosh)
+ MCFG_SCREEN_UPDATE_DRIVER(psikyosh_state, screen_update_psikyosh)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram32_device, vblank_copy_rising)
MCFG_GFXDECODE(psikyosh)
diff --git a/src/mame/drivers/psychic5.c b/src/mame/drivers/psychic5.c
index d650e951951..ca2fbef83ab 100644
--- a/src/mame/drivers/psychic5.c
+++ b/src/mame/drivers/psychic5.c
@@ -678,7 +678,7 @@ static MACHINE_CONFIG_START( psychic5, psychic5_state )
/* frames per second hand tuned to match game and music speed */
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(psychic5)
+ MCFG_SCREEN_UPDATE_DRIVER(psychic5_state, screen_update_psychic5)
MCFG_GFXDECODE(psychic5)
MCFG_PALETTE_LENGTH(768)
@@ -722,7 +722,7 @@ static MACHINE_CONFIG_START( bombsa, psychic5_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(bombsa)
+ MCFG_SCREEN_UPDATE_DRIVER(psychic5_state, screen_update_bombsa)
MCFG_GFXDECODE(bombsa)
MCFG_PALETTE_LENGTH(768)
diff --git a/src/mame/drivers/pturn.c b/src/mame/drivers/pturn.c
index d8500ed2436..356cc88ecd0 100644
--- a/src/mame/drivers/pturn.c
+++ b/src/mame/drivers/pturn.c
@@ -117,6 +117,7 @@ public:
TILE_GET_INFO_MEMBER(get_pturn_bg_tile_info);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_pturn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -163,16 +164,15 @@ void pturn_state::video_start()
m_bgmap->set_transparent_pen(0);
}
-static SCREEN_UPDATE_IND16(pturn)
+UINT32 pturn_state::screen_update_pturn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pturn_state *state = screen.machine().driver_data<pturn_state>();
- UINT8 *spriteram = state->m_spriteram;
+ UINT8 *spriteram = m_spriteram;
int offs;
int sx, sy;
int flipx, flipy;
- bitmap.fill(state->m_bgcolor, cliprect);
- state->m_bgmap->draw(bitmap, cliprect, 0,0);
+ bitmap.fill(m_bgcolor, cliprect);
+ m_bgmap->draw(bitmap, cliprect, 0,0);
for ( offs = 0x80-4 ; offs >=0 ; offs -= 4)
{
sy=256-spriteram[offs]-16 ;
@@ -182,13 +182,13 @@ static SCREEN_UPDATE_IND16(pturn)
flipy=spriteram[offs+1]&0x80;
- if (state->flip_screen_x())
+ if (flip_screen_x())
{
sx = 224 - sx;
flipx ^= 0x40;
}
- if (state->flip_screen_y())
+ if (flip_screen_y())
{
flipy ^= 0x80;
sy = 224 - sy;
@@ -203,7 +203,7 @@ static SCREEN_UPDATE_IND16(pturn)
sx,sy,0);
}
}
- state->m_fgmap->draw(bitmap, cliprect, 0,0);
+ m_fgmap->draw(bitmap, cliprect, 0,0);
return 0;
}
@@ -498,7 +498,7 @@ static MACHINE_CONFIG_START( pturn, pturn_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pturn)
+ MCFG_SCREEN_UPDATE_DRIVER(pturn_state, screen_update_pturn)
MCFG_PALETTE_LENGTH(0x100)
MCFG_PALETTE_INIT(RRRR_GGGG_BBBB)
diff --git a/src/mame/drivers/punchout.c b/src/mame/drivers/punchout.c
index aae65e815d7..bdcb8a27d17 100644
--- a/src/mame/drivers/punchout.c
+++ b/src/mame/drivers/punchout.c
@@ -962,14 +962,14 @@ static MACHINE_CONFIG_START( punchout, punchout_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(punchout_top)
+ MCFG_SCREEN_UPDATE_DRIVER(punchout_state, screen_update_punchout_top)
MCFG_SCREEN_ADD("bottom", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(punchout_bottom)
+ MCFG_SCREEN_UPDATE_DRIVER(punchout_state, screen_update_punchout_bottom)
/* sound hardware */
@@ -996,9 +996,9 @@ static MACHINE_CONFIG_DERIVED( armwrest, punchout )
MCFG_VIDEO_START_OVERRIDE(punchout_state,armwrest)
MCFG_SCREEN_MODIFY("top")
- MCFG_SCREEN_UPDATE_STATIC(armwrest_top)
+ MCFG_SCREEN_UPDATE_DRIVER(punchout_state, screen_update_armwrest_top)
MCFG_SCREEN_MODIFY("bottom")
- MCFG_SCREEN_UPDATE_STATIC(armwrest_bottom)
+ MCFG_SCREEN_UPDATE_DRIVER(punchout_state, screen_update_armwrest_bottom)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/pushman.c b/src/mame/drivers/pushman.c
index 6768200a03a..b0edf6818a5 100644
--- a/src/mame/drivers/pushman.c
+++ b/src/mame/drivers/pushman.c
@@ -449,7 +449,7 @@ static MACHINE_CONFIG_START( pushman, pushman_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pushman)
+ MCFG_SCREEN_UPDATE_DRIVER(pushman_state, screen_update_pushman)
MCFG_GFXDECODE(pushman)
MCFG_PALETTE_LENGTH(1024)
@@ -495,7 +495,7 @@ static MACHINE_CONFIG_START( bballs, pushman_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pushman)
+ MCFG_SCREEN_UPDATE_DRIVER(pushman_state, screen_update_pushman)
MCFG_GFXDECODE(pushman)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/pzletime.c b/src/mame/drivers/pzletime.c
index dd498d7af46..63c8451b3e3 100644
--- a/src/mame/drivers/pzletime.c
+++ b/src/mame/drivers/pzletime.c
@@ -59,6 +59,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_pzletime(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -91,21 +92,20 @@ void pzletime_state::video_start()
m_txt_tilemap->set_transparent_pen(0);
}
-static SCREEN_UPDATE_IND16( pzletime )
+UINT32 pzletime_state::screen_update_pzletime(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pzletime_state *state = screen.machine().driver_data<pzletime_state>();
int count;
int y, x;
bitmap.fill(screen.machine().pens[0], cliprect); //bg pen
- state->m_txt_tilemap->set_scrolly(0, state->m_tilemap_regs[0] - 3);
- state->m_txt_tilemap->set_scrollx(0, state->m_tilemap_regs[1]);
+ m_txt_tilemap->set_scrolly(0, m_tilemap_regs[0] - 3);
+ m_txt_tilemap->set_scrollx(0, m_tilemap_regs[1]);
- state->m_mid_tilemap->set_scrolly(0, state->m_tilemap_regs[2] - 3);
- state->m_mid_tilemap->set_scrollx(0, state->m_tilemap_regs[3] - 7);
+ m_mid_tilemap->set_scrolly(0, m_tilemap_regs[2] - 3);
+ m_mid_tilemap->set_scrollx(0, m_tilemap_regs[3] - 7);
- if (state->m_video_regs[2] & 1)
+ if (m_video_regs[2] & 1)
{
count = 0;
@@ -113,18 +113,18 @@ static SCREEN_UPDATE_IND16( pzletime )
{
for (x = 0; x < 512; x++)
{
- if (state->m_bg_videoram[count] & 0x8000)
- bitmap.pix16((y - 18) & 0xff, (x - 32) & 0x1ff) = 0x300 + (state->m_bg_videoram[count] & 0x7fff);
+ if (m_bg_videoram[count] & 0x8000)
+ bitmap.pix16((y - 18) & 0xff, (x - 32) & 0x1ff) = 0x300 + (m_bg_videoram[count] & 0x7fff);
count++;
}
}
}
- state->m_mid_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_mid_tilemap->draw(bitmap, cliprect, 0, 0);
{
- UINT16 *spriteram = state->m_spriteram;
+ UINT16 *spriteram = m_spriteram;
int offs, spr_offs, colour, sx, sy;
for(offs = 0; offs < 0x2000 / 2; offs += 4)
@@ -143,9 +143,9 @@ static SCREEN_UPDATE_IND16( pzletime )
}
}
- state->m_txt_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_txt_tilemap->draw(bitmap, cliprect, 0, 0);
if ((screen.frame_number() % 16) != 0)
- state->m_txt_tilemap->draw(bitmap, cliprect, 1, 0);
+ m_txt_tilemap->draw(bitmap, cliprect, 1, 0);
return 0;
}
@@ -333,7 +333,7 @@ static MACHINE_CONFIG_START( pzletime, pzletime_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pzletime)
+ MCFG_SCREEN_UPDATE_DRIVER(pzletime_state, screen_update_pzletime)
MCFG_GFXDECODE(pzletime)
MCFG_PALETTE_LENGTH(0x300 + 32768)
MCFG_EEPROM_93C46_ADD("eeprom")
diff --git a/src/mame/drivers/qdrmfgp.c b/src/mame/drivers/qdrmfgp.c
index c1354d1de44..17c622bd487 100644
--- a/src/mame/drivers/qdrmfgp.c
+++ b/src/mame/drivers/qdrmfgp.c
@@ -690,7 +690,7 @@ static MACHINE_CONFIG_START( qdrmfgp, qdrmfgp_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1)
- MCFG_SCREEN_UPDATE_STATIC(qdrmfgp)
+ MCFG_SCREEN_UPDATE_DRIVER(qdrmfgp_state, screen_update_qdrmfgp)
MCFG_PALETTE_LENGTH(2048)
@@ -731,7 +731,7 @@ static MACHINE_CONFIG_START( qdrmfgp2, qdrmfgp_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 16, 16+224-1)
- MCFG_SCREEN_UPDATE_STATIC(qdrmfgp)
+ MCFG_SCREEN_UPDATE_DRIVER(qdrmfgp_state, screen_update_qdrmfgp)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/quakeat.c b/src/mame/drivers/quakeat.c
index 0e248a46d09..43e07c73087 100644
--- a/src/mame/drivers/quakeat.c
+++ b/src/mame/drivers/quakeat.c
@@ -76,6 +76,7 @@ public:
DECLARE_READ8_MEMBER(get_slave_ack);
virtual void machine_start();
virtual void video_start();
+ UINT32 screen_update_quake(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -83,7 +84,7 @@ void quakeat_state::video_start()
{
}
-static SCREEN_UPDATE_IND16(quake)
+UINT32 quakeat_state::screen_update_quake(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -182,7 +183,7 @@ static MACHINE_CONFIG_START( quake, quakeat_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(quake)
+ MCFG_SCREEN_UPDATE_DRIVER(quakeat_state, screen_update_quake)
MCFG_PALETTE_LENGTH(0x100)
diff --git a/src/mame/drivers/quasar.c b/src/mame/drivers/quasar.c
index f5a767dc6ce..db0a14624d4 100644
--- a/src/mame/drivers/quasar.c
+++ b/src/mame/drivers/quasar.c
@@ -345,7 +345,7 @@ static MACHINE_CONFIG_START( quasar, quasar_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(1*8+1, 29*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(quasar)
+ MCFG_SCREEN_UPDATE_DRIVER(quasar_state, screen_update_quasar)
MCFG_GFXDECODE(quasar)
MCFG_PALETTE_LENGTH((64+1)*8+(4*256))
diff --git a/src/mame/drivers/quizdna.c b/src/mame/drivers/quizdna.c
index e5db26bde80..88801eda608 100644
--- a/src/mame/drivers/quizdna.c
+++ b/src/mame/drivers/quizdna.c
@@ -455,7 +455,7 @@ static MACHINE_CONFIG_START( quizdna, quizdna_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, 56*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(quizdna)
+ MCFG_SCREEN_UPDATE_DRIVER(quizdna_state, screen_update_quizdna)
MCFG_GFXDECODE(quizdna)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/quizo.c b/src/mame/drivers/quizo.c
index ab6d5b3a12f..b0758c7ea80 100644
--- a/src/mame/drivers/quizo.c
+++ b/src/mame/drivers/quizo.c
@@ -42,6 +42,7 @@ public:
DECLARE_WRITE8_MEMBER(port60_w);
DECLARE_DRIVER_INIT(quizo);
virtual void palette_init();
+ UINT32 screen_update_quizo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -79,10 +80,9 @@ void quizo_state::palette_init()
}
}
-static SCREEN_UPDATE_IND16( quizo )
+UINT32 quizo_state::screen_update_quizo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- quizo_state *state = screen.machine().driver_data<quizo_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
int x,y;
for(y=0;y<200;y++)
{
@@ -216,7 +216,7 @@ static MACHINE_CONFIG_START( quizo, quizo_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 200)
MCFG_SCREEN_VISIBLE_AREA(0*8, 320-1, 0*8, 200-1)
- MCFG_SCREEN_UPDATE_STATIC(quizo)
+ MCFG_SCREEN_UPDATE_DRIVER(quizo_state, screen_update_quizo)
MCFG_PALETTE_LENGTH(16)
diff --git a/src/mame/drivers/quizpani.c b/src/mame/drivers/quizpani.c
index 73ca7a5de9e..f70b03f2b37 100644
--- a/src/mame/drivers/quizpani.c
+++ b/src/mame/drivers/quizpani.c
@@ -208,7 +208,7 @@ static MACHINE_CONFIG_START( quizpani, quizpani_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(quizpani)
+ MCFG_SCREEN_UPDATE_DRIVER(quizpani_state, screen_update_quizpani)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/quizpun2.c b/src/mame/drivers/quizpun2.c
index 42ef66c9fab..60d8271c31a 100644
--- a/src/mame/drivers/quizpun2.c
+++ b/src/mame/drivers/quizpun2.c
@@ -112,6 +112,7 @@ public:
TILE_GET_INFO_MEMBER(get_fg_tile_info);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_quizpun2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -155,9 +156,8 @@ void quizpun2_state::video_start()
m_fg_tmap->set_transparent_pen(0);
}
-static SCREEN_UPDATE_IND16(quizpun2)
+UINT32 quizpun2_state::screen_update_quizpun2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- quizpun2_state *state = screen.machine().driver_data<quizpun2_state>();
int layers_ctrl = -1;
#ifdef MAME_DEBUG
@@ -170,11 +170,11 @@ static SCREEN_UPDATE_IND16(quizpun2)
}
#endif
- if (layers_ctrl & 1) state->m_bg_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ if (layers_ctrl & 1) m_bg_tmap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
else bitmap.fill(get_black_pen(screen.machine()), cliprect);
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- if (layers_ctrl & 2) state->m_fg_tmap->draw(bitmap, cliprect, 0, 0);
+ if (layers_ctrl & 2) m_fg_tmap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -503,7 +503,7 @@ static MACHINE_CONFIG_START( quizpun2, quizpun2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(quizpun2)
+ MCFG_SCREEN_UPDATE_DRIVER(quizpun2_state, screen_update_quizpun2)
MCFG_GFXDECODE(quizpun2)
MCFG_PALETTE_LENGTH(0x200)
diff --git a/src/mame/drivers/quizshow.c b/src/mame/drivers/quizshow.c
index 46548f401a6..c8dba468706 100644
--- a/src/mame/drivers/quizshow.c
+++ b/src/mame/drivers/quizshow.c
@@ -63,6 +63,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_quizshow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -106,10 +107,9 @@ void quizshow_state::video_start()
m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(quizshow_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 16, 32, 16);
}
-SCREEN_UPDATE_IND16( quizshow )
+UINT32 quizshow_state::screen_update_quizshow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- quizshow_state *state = screen.machine().driver_data<quizshow_state>();
- state->m_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ m_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
return 0;
}
@@ -382,7 +382,7 @@ static MACHINE_CONFIG_START( quizshow, quizshow_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(quizshow)
+ MCFG_SCREEN_UPDATE_DRIVER(quizshow_state, screen_update_quizshow)
MCFG_GFXDECODE(quizshow)
MCFG_PALETTE_LENGTH(8*2)
diff --git a/src/mame/drivers/r2dx_v33.c b/src/mame/drivers/r2dx_v33.c
index e90a9d67178..c24c4ce1d66 100644
--- a/src/mame/drivers/r2dx_v33.c
+++ b/src/mame/drivers/r2dx_v33.c
@@ -70,6 +70,7 @@ public:
tilemap_t *m_fg_tilemap;
tilemap_t *m_tx_tilemap;
virtual void video_start();
+ UINT32 screen_update_rdx_v33(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -213,18 +214,17 @@ void r2dx_v33_state::video_start()
m_tx_tilemap->set_transparent_pen(15);
}
-static SCREEN_UPDATE_IND16( rdx_v33 )
+UINT32 r2dx_v33_state::screen_update_rdx_v33(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- r2dx_v33_state *state = screen.machine().driver_data<r2dx_v33_state>();
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_md_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_md_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(),bitmap,cliprect,0);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
/* debug DMA processing */
if(0)
@@ -258,7 +258,7 @@ static SCREEN_UPDATE_IND16( rdx_v33 )
}
popmessage("%08x 1",src_addr);
- state->m_bg_tilemap->mark_all_dirty();
+ m_bg_tilemap->mark_all_dirty();
frame = 0;
src_addr+=0x800;
}
@@ -704,7 +704,7 @@ static MACHINE_CONFIG_START( rdx_v33, r2dx_v33_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(rdx_v33)
+ MCFG_SCREEN_UPDATE_DRIVER(r2dx_v33_state, screen_update_rdx_v33)
MCFG_GFXDECODE(rdx_v33)
MCFG_PALETTE_LENGTH(2048)
@@ -737,7 +737,7 @@ static MACHINE_CONFIG_START( nzerotea, r2dx_v33_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate *//2)
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(rdx_v33)
+ MCFG_SCREEN_UPDATE_DRIVER(r2dx_v33_state, screen_update_rdx_v33)
MCFG_GFXDECODE(rdx_v33)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/rabbit.c b/src/mame/drivers/rabbit.c
index 9d580e32f25..c7aad838471 100644
--- a/src/mame/drivers/rabbit.c
+++ b/src/mame/drivers/rabbit.c
@@ -137,6 +137,7 @@ public:
TILE_GET_INFO_MEMBER(get_rabbit_tilemap2_tile_info);
TILE_GET_INFO_MEMBER(get_rabbit_tilemap3_tile_info);
virtual void video_start();
+ UINT32 screen_update_rabbit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -461,33 +462,32 @@ static void rabbit_drawtilemap( running_machine &machine, bitmap_ind16 &bitmap,
tran ? 0 : TILEMAP_DRAW_OPAQUE,0);
}
-static SCREEN_UPDATE_IND16(rabbit)
+UINT32 rabbit_state::screen_update_rabbit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- rabbit_state *state = screen.machine().driver_data<rabbit_state>();
int prilevel;
bitmap.fill(get_black_pen(screen.machine()), cliprect);
-// popmessage("%08x %08x", state->m_viewregs0[0], state->m_viewregs0[1]);
-// popmessage("%08x %08x %08x %08x %08x %08x", state->m_tilemap_regs[0][0],state->m_tilemap_regs[0][1],state->m_tilemap_regs[0][2],state->m_tilemap_regs[0][3],state->m_tilemap_regs[0][4],state->m_tilemap_regs[0][5]);
-// popmessage("%08x %08x %08x %08x %08x %08x", state->m_tilemap_regs[1][0],state->m_tilemap_regs[1][1],state->m_tilemap_regs[1][2],state->m_tilemap_regs[1][3],state->m_tilemap_regs[1][4],state->m_tilemap_regs[1][5]);
-// popmessage("%08x %08x %08x %08x %08x %08x", state->m_tilemap_regs[2][0],state->m_tilemap_regs[2][1],state->m_tilemap_regs[2][2],state->m_tilemap_regs[2][3],state->m_tilemap_regs[2][4],state->m_tilemap_regs[2][5]);
-// popmessage("%08x %08x %08x %08x %08x %08x", state->m_tilemap_regs[3][0],state->m_tilemap_regs[3][1],state->m_tilemap_regs[3][2],state->m_tilemap_regs[3][3],state->m_tilemap_regs[3][4],state->m_tilemap_regs[3][5]);
-// popmessage("%08x %08x %08x %08x %08x %08x %08x", state->m_spriteregs[0],state->m_spriteregs[1],state->m_spriteregs[2],state->m_spriteregs[3],state->m_spriteregs[4],state->m_spriteregs[5], state->m_spriteregs[6]);
-// popmessage("%08x %08x %08x %08x %08x", state->m_viewregs6[0],state->m_viewregs6[1],state->m_viewregs6[2],state->m_viewregs6[3],state->m_viewregs6[4]);
-// popmessage("%08x", state->m_viewregs7[0]);
-// popmessage("%08x %08x %08x %08x", state->m_blitterregs[0],state->m_blitterregs[1],state->m_blitterregs[2],state->m_blitterregs[3]);
-// popmessage("%08x %08x %08x %08x", state->m_viewregs9[0],state->m_viewregs9[1],state->m_viewregs9[2],state->m_viewregs9[3]);
+// popmessage("%08x %08x", m_viewregs0[0], m_viewregs0[1]);
+// popmessage("%08x %08x %08x %08x %08x %08x", m_tilemap_regs[0][0],m_tilemap_regs[0][1],m_tilemap_regs[0][2],m_tilemap_regs[0][3],m_tilemap_regs[0][4],m_tilemap_regs[0][5]);
+// popmessage("%08x %08x %08x %08x %08x %08x", m_tilemap_regs[1][0],m_tilemap_regs[1][1],m_tilemap_regs[1][2],m_tilemap_regs[1][3],m_tilemap_regs[1][4],m_tilemap_regs[1][5]);
+// popmessage("%08x %08x %08x %08x %08x %08x", m_tilemap_regs[2][0],m_tilemap_regs[2][1],m_tilemap_regs[2][2],m_tilemap_regs[2][3],m_tilemap_regs[2][4],m_tilemap_regs[2][5]);
+// popmessage("%08x %08x %08x %08x %08x %08x", m_tilemap_regs[3][0],m_tilemap_regs[3][1],m_tilemap_regs[3][2],m_tilemap_regs[3][3],m_tilemap_regs[3][4],m_tilemap_regs[3][5]);
+// popmessage("%08x %08x %08x %08x %08x %08x %08x", m_spriteregs[0],m_spriteregs[1],m_spriteregs[2],m_spriteregs[3],m_spriteregs[4],m_spriteregs[5], m_spriteregs[6]);
+// popmessage("%08x %08x %08x %08x %08x", m_viewregs6[0],m_viewregs6[1],m_viewregs6[2],m_viewregs6[3],m_viewregs6[4]);
+// popmessage("%08x", m_viewregs7[0]);
+// popmessage("%08x %08x %08x %08x", m_blitterregs[0],m_blitterregs[1],m_blitterregs[2],m_blitterregs[3]);
+// popmessage("%08x %08x %08x %08x", m_viewregs9[0],m_viewregs9[1],m_viewregs9[2],m_viewregs9[3]);
-// popmessage("%08x %08x %08x %08x %08x", state->m_viewregs10[0],state->m_viewregs10[1],state->m_viewregs10[2],state->m_viewregs10[3],state->m_viewregs10[4]);
+// popmessage("%08x %08x %08x %08x %08x", m_viewregs10[0],m_viewregs10[1],m_viewregs10[2],m_viewregs10[3],m_viewregs10[4]);
/* prio isnt certain but seems to work.. */
for (prilevel = 0xf; prilevel >0; prilevel--)
{
- if (prilevel == ((state->m_tilemap_regs[3][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen.machine(),bitmap,cliprect, 3);
- if (prilevel == ((state->m_tilemap_regs[2][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen.machine(),bitmap,cliprect, 2);
- if (prilevel == ((state->m_tilemap_regs[1][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen.machine(),bitmap,cliprect, 1);
- if (prilevel == ((state->m_tilemap_regs[0][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen.machine(),bitmap,cliprect, 0);
+ if (prilevel == ((m_tilemap_regs[3][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen.machine(),bitmap,cliprect, 3);
+ if (prilevel == ((m_tilemap_regs[2][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen.machine(),bitmap,cliprect, 2);
+ if (prilevel == ((m_tilemap_regs[1][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen.machine(),bitmap,cliprect, 1);
+ if (prilevel == ((m_tilemap_regs[0][0]&0x0f000000)>>24)) rabbit_drawtilemap(screen.machine(),bitmap,cliprect, 0);
if (prilevel == 0x09) // should it be selectable?
{
@@ -891,7 +891,7 @@ static MACHINE_CONFIG_START( rabbit, rabbit_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
// MCFG_SCREEN_VISIBLE_AREA(0*8, 64*16-1, 0*16, 64*16-1)
// MCFG_SCREEN_VISIBLE_AREA(0*8, 20*16-1, 32*16, 48*16-1)
- MCFG_SCREEN_UPDATE_STATIC(rabbit)
+ MCFG_SCREEN_UPDATE_DRIVER(rabbit_state, screen_update_rabbit)
MCFG_PALETTE_LENGTH(0x4000)
MCFG_PALETTE_INIT( all_black )
diff --git a/src/mame/drivers/raiden.c b/src/mame/drivers/raiden.c
index 5e65ad7583b..725ed7d5e02 100644
--- a/src/mame/drivers/raiden.c
+++ b/src/mame/drivers/raiden.c
@@ -267,7 +267,7 @@ static MACHINE_CONFIG_START( raiden, raiden_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(raiden)
+ MCFG_SCREEN_UPDATE_DRIVER(raiden_state, screen_update_raiden)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(raiden)
diff --git a/src/mame/drivers/raiden2.c b/src/mame/drivers/raiden2.c
index 037a9ec88ee..1ff619a0a0f 100644
--- a/src/mame/drivers/raiden2.c
+++ b/src/mame/drivers/raiden2.c
@@ -936,39 +936,38 @@ VIDEO_START_MEMBER(raiden2_state,raiden2)
/* SCREEN_UPDATE_IND16 (move to video file) */
-static SCREEN_UPDATE_IND16( raiden2 )
+UINT32 raiden2_state::screen_update_raiden2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- raiden2_state *state = screen.machine().driver_data<raiden2_state>();
bitmap.fill(get_black_pen(screen.machine()), cliprect);
//if (!screen.machine().input().code_pressed(KEYCODE_Q))
{
- if (!(state->raiden2_tilemap_enable & 1))
- state->background_layer->draw(bitmap, cliprect, 0, 0);
+ if (!(raiden2_tilemap_enable & 1))
+ background_layer->draw(bitmap, cliprect, 0, 0);
}
//if (!screen.machine().input().code_pressed(KEYCODE_W))
{
- if (!(state->raiden2_tilemap_enable & 2))
- state->midground_layer->draw(bitmap, cliprect, 0, 0);
+ if (!(raiden2_tilemap_enable & 2))
+ midground_layer->draw(bitmap, cliprect, 0, 0);
}
//if (!screen.machine().input().code_pressed(KEYCODE_E))
{
- if (!(state->raiden2_tilemap_enable & 4))
- state->foreground_layer->draw(bitmap, cliprect, 0, 0);
+ if (!(raiden2_tilemap_enable & 4))
+ foreground_layer->draw(bitmap, cliprect, 0, 0);
}
//if (!screen.machine().input().code_pressed(KEYCODE_S))
{
//if (!(raiden2_tilemap_enable & 0x10))
- state->draw_sprites(screen.machine(), bitmap, cliprect, 0);
+ draw_sprites(screen.machine(), bitmap, cliprect, 0);
}
//if (!screen.machine().input().code_pressed(KEYCODE_A))
{
- if (!(state->raiden2_tilemap_enable & 8))
- state->text_layer->draw(bitmap, cliprect, 0, 0);
+ if (!(raiden2_tilemap_enable & 8))
+ text_layer->draw(bitmap, cliprect, 0, 0);
}
return 0;
@@ -1816,7 +1815,7 @@ static MACHINE_CONFIG_START( raiden2, raiden2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate *//2)
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(raiden2)
+ MCFG_SCREEN_UPDATE_DRIVER(raiden2_state, screen_update_raiden2)
MCFG_GFXDECODE(raiden2)
MCFG_PALETTE_LENGTH(2048)
@@ -1872,7 +1871,7 @@ static MACHINE_CONFIG_START( zeroteam, raiden2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate *//2)
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(raiden2)
+ MCFG_SCREEN_UPDATE_DRIVER(raiden2_state, screen_update_raiden2)
MCFG_GFXDECODE(raiden2)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/rainbow.c b/src/mame/drivers/rainbow.c
index b3f3acd33fe..749841458e8 100644
--- a/src/mame/drivers/rainbow.c
+++ b/src/mame/drivers/rainbow.c
@@ -690,7 +690,7 @@ static MACHINE_CONFIG_START( rbisland, rbisland_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(rainbow)
+ MCFG_SCREEN_UPDATE_DRIVER(rbisland_state, screen_update_rainbow)
MCFG_GFXDECODE(rbisland)
MCFG_PALETTE_LENGTH(8192)
@@ -730,7 +730,7 @@ static MACHINE_CONFIG_START( jumping, rbisland_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(jumping)
+ MCFG_SCREEN_UPDATE_DRIVER(rbisland_state, screen_update_jumping)
MCFG_GFXDECODE(jumping)
MCFG_PALETTE_LENGTH(8192)
diff --git a/src/mame/drivers/rallyx.c b/src/mame/drivers/rallyx.c
index 0c9ea1308ce..ce740be1b14 100644
--- a/src/mame/drivers/rallyx.c
+++ b/src/mame/drivers/rallyx.c
@@ -923,7 +923,7 @@ static MACHINE_CONFIG_START( rallyx, rallyx_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(36*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(rallyx)
+ MCFG_SCREEN_UPDATE_DRIVER(rallyx_state, screen_update_rallyx)
MCFG_GFXDECODE(rallyx)
MCFG_PALETTE_LENGTH(64*4+4)
@@ -961,7 +961,7 @@ static MACHINE_CONFIG_START( jungler, rallyx_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */)
MCFG_SCREEN_SIZE(36*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(jungler)
+ MCFG_SCREEN_UPDATE_DRIVER(rallyx_state, screen_update_jungler)
MCFG_GFXDECODE(jungler)
MCFG_PALETTE_LENGTH(64*4+4+64)
@@ -981,7 +981,7 @@ static MACHINE_CONFIG_DERIVED( tactcian, jungler )
/* video hardware */
MCFG_VIDEO_START_OVERRIDE(rallyx_state,locomotn)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(locomotn)
+ MCFG_SCREEN_UPDATE_DRIVER(rallyx_state, screen_update_locomotn)
MACHINE_CONFIG_END
@@ -992,7 +992,7 @@ static MACHINE_CONFIG_DERIVED( locomotn, jungler )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(locomotn)
+ MCFG_SCREEN_UPDATE_DRIVER(rallyx_state, screen_update_locomotn)
MCFG_VIDEO_START_OVERRIDE(rallyx_state,locomotn)
MACHINE_CONFIG_END
@@ -1004,7 +1004,7 @@ static MACHINE_CONFIG_DERIVED( commsega, jungler )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(locomotn)
+ MCFG_SCREEN_UPDATE_DRIVER(rallyx_state, screen_update_locomotn)
MCFG_VIDEO_START_OVERRIDE(rallyx_state,commsega)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/rampart.c b/src/mame/drivers/rampart.c
index 0b81887cb84..aef16c1fb9e 100644
--- a/src/mame/drivers/rampart.c
+++ b/src/mame/drivers/rampart.c
@@ -362,7 +362,7 @@ static MACHINE_CONFIG_START( rampart, rampart_state )
/* note: these parameters are from published specs, not derived */
/* the board uses an SOS-2 chip to generate video signals */
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 456, 0+12, 336+12, 262, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(rampart)
+ MCFG_SCREEN_UPDATE_DRIVER(rampart_state, screen_update_rampart)
MCFG_VIDEO_START_OVERRIDE(rampart_state,rampart)
diff --git a/src/mame/drivers/rastan.c b/src/mame/drivers/rastan.c
index b044b628c16..d1ce6b13d4f 100644
--- a/src/mame/drivers/rastan.c
+++ b/src/mame/drivers/rastan.c
@@ -421,7 +421,7 @@ static MACHINE_CONFIG_START( rastan, rastan_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(rastan)
+ MCFG_SCREEN_UPDATE_DRIVER(rastan_state, screen_update_rastan)
MCFG_GFXDECODE(rastan)
MCFG_PALETTE_LENGTH(8192)
diff --git a/src/mame/drivers/rbmk.c b/src/mame/drivers/rbmk.c
index f98ae2f8117..a71618e8cbb 100644
--- a/src/mame/drivers/rbmk.c
+++ b/src/mame/drivers/rbmk.c
@@ -78,6 +78,7 @@ public:
DECLARE_WRITE8_MEMBER(mcu_io_mux_w);
DECLARE_WRITE16_MEMBER(eeprom_w);
virtual void video_start();
+ UINT32 screen_update_rbmk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -497,9 +498,8 @@ void rbmk_state::video_start()
{
}
-static SCREEN_UPDATE_IND16(rbmk)
+UINT32 rbmk_state::screen_update_rbmk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- rbmk_state *state = screen.machine().driver_data<rbmk_state>();
int x,y;
int count = 0;
@@ -507,8 +507,8 @@ static SCREEN_UPDATE_IND16(rbmk)
{
for (x=0;x<64;x++)
{
- int tile = state->m_gms_vidram2[count+0x600];
- drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],(tile&0xfff)+((state->m_tilebank&0x10)>>4)*0x1000,tile>>12,0,0,x*8,y*32);
+ int tile = m_gms_vidram2[count+0x600];
+ drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],(tile&0xfff)+((m_tilebank&0x10)>>4)*0x1000,tile>>12,0,0,x*8,y*32);
count++;
}
}
@@ -519,8 +519,8 @@ static SCREEN_UPDATE_IND16(rbmk)
{
for (x=0;x<64;x++)
{
- int tile = state->m_gms_vidram[count];
- drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[1],(tile&0xfff)+((state->m_tilebank>>1)&3)*0x1000,tile>>12,0,0,x*8,y*8,0);
+ int tile = m_gms_vidram[count];
+ drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[1],(tile&0xfff)+((m_tilebank>>1)&3)*0x1000,tile>>12,0,0,x*8,y*8,0);
count++;
}
}
@@ -550,7 +550,7 @@ static MACHINE_CONFIG_START( rbmk, rbmk_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(rbmk)
+ MCFG_SCREEN_UPDATE_DRIVER(rbmk_state, screen_update_rbmk)
MCFG_PALETTE_LENGTH(0x800)
diff --git a/src/mame/drivers/realbrk.c b/src/mame/drivers/realbrk.c
index 94c651ee180..8ee1af6fad4 100644
--- a/src/mame/drivers/realbrk.c
+++ b/src/mame/drivers/realbrk.c
@@ -768,7 +768,7 @@ static MACHINE_CONFIG_START( realbrk, realbrk_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x140, 0xe0)
MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1)
- MCFG_SCREEN_UPDATE_STATIC(realbrk)
+ MCFG_SCREEN_UPDATE_DRIVER(realbrk_state, screen_update_realbrk)
MCFG_GFXDECODE(realbrk)
MCFG_PALETTE_LENGTH(0x8000)
@@ -802,7 +802,7 @@ static MACHINE_CONFIG_DERIVED( dai2kaku, realbrk )
MCFG_GFXDECODE(dai2kaku)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(dai2kaku)
+ MCFG_SCREEN_UPDATE_DRIVER(realbrk_state, screen_update_dai2kaku)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/redclash.c b/src/mame/drivers/redclash.c
index 7574cb45799..49ddbd88151 100644
--- a/src/mame/drivers/redclash.c
+++ b/src/mame/drivers/redclash.c
@@ -365,8 +365,8 @@ static MACHINE_CONFIG_START( zerohour, ladybug_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(redclash)
- MCFG_SCREEN_VBLANK_STATIC(redclash)
+ MCFG_SCREEN_UPDATE_DRIVER(ladybug_state, screen_update_redclash)
+ MCFG_SCREEN_VBLANK_DRIVER(ladybug_state, screen_eof_redclash)
MCFG_GFXDECODE(redclash)
MCFG_PALETTE_LENGTH(4*8+4*16+32)
@@ -393,8 +393,8 @@ static MACHINE_CONFIG_START( redclash, ladybug_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(redclash)
- MCFG_SCREEN_VBLANK_STATIC(redclash)
+ MCFG_SCREEN_UPDATE_DRIVER(ladybug_state, screen_update_redclash)
+ MCFG_SCREEN_VBLANK_DRIVER(ladybug_state, screen_eof_redclash)
MCFG_GFXDECODE(redclash)
MCFG_PALETTE_LENGTH(4*8+4*16+32)
diff --git a/src/mame/drivers/relief.c b/src/mame/drivers/relief.c
index ba554a764e5..d7b828bae5a 100644
--- a/src/mame/drivers/relief.c
+++ b/src/mame/drivers/relief.c
@@ -309,7 +309,7 @@ static MACHINE_CONFIG_START( relief, relief_state )
/* note: these parameters are from published specs, not derived */
/* the board uses a VAD chip to generate video signals */
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(relief)
+ MCFG_SCREEN_UPDATE_DRIVER(relief_state, screen_update_relief)
MCFG_VIDEO_START_OVERRIDE(relief_state,relief)
diff --git a/src/mame/drivers/renegade.c b/src/mame/drivers/renegade.c
index 0b7467aa3f7..cad46273909 100644
--- a/src/mame/drivers/renegade.c
+++ b/src/mame/drivers/renegade.c
@@ -950,7 +950,7 @@ static MACHINE_CONFIG_START( renegade, renegade_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)*2) /* not accurate */
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(renegade)
+ MCFG_SCREEN_UPDATE_DRIVER(renegade_state, screen_update_renegade)
MCFG_GFXDECODE(renegade)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/retofinv.c b/src/mame/drivers/retofinv.c
index d463414c6c3..ec5cec4f981 100644
--- a/src/mame/drivers/retofinv.c
+++ b/src/mame/drivers/retofinv.c
@@ -388,7 +388,7 @@ static MACHINE_CONFIG_START( retofinv, retofinv_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(36*8, 28*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(retofinv)
+ MCFG_SCREEN_UPDATE_DRIVER(retofinv_state, screen_update_retofinv)
MCFG_GFXDECODE(retofinv)
MCFG_PALETTE_LENGTH(256*2+64*16+64*16)
diff --git a/src/mame/drivers/rgum.c b/src/mame/drivers/rgum.c
index 2e2d1b2d1ed..22388013368 100644
--- a/src/mame/drivers/rgum.c
+++ b/src/mame/drivers/rgum.c
@@ -32,6 +32,7 @@ public:
UINT8 m_hbeat;
DECLARE_CUSTOM_INPUT_MEMBER(rgum_heartbeat_r);
virtual void video_start();
+ UINT32 screen_update_royalgum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -39,9 +40,8 @@ void rgum_state::video_start()
{
}
-static SCREEN_UPDATE_IND16(royalgum)
+UINT32 rgum_state::screen_update_royalgum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- rgum_state *state = screen.machine().driver_data<rgum_state>();
int x,y,count;
gfx_element *gfx = screen.machine().gfx[0];
@@ -51,7 +51,7 @@ static SCREEN_UPDATE_IND16(royalgum)
{
for(x=0;x<66;x++)
{
- int tile = state->m_vram[count] | ((state->m_cram[count] & 0xf) <<8);
+ int tile = m_vram[count] | ((m_cram[count] & 0xf) <<8);
drawgfx_opaque(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*8);
@@ -276,7 +276,7 @@ static MACHINE_CONFIG_START( rgum, rgum_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(royalgum)
+ MCFG_SCREEN_UPDATE_DRIVER(rgum_state, screen_update_royalgum)
MCFG_MC6845_ADD("crtc", MC6845, 24000000/16, mc6845_intf) /* unknown clock & type, hand tuned to get ~50 fps (?) */
diff --git a/src/mame/drivers/rltennis.c b/src/mame/drivers/rltennis.c
index df980cfda15..27f465668de 100644
--- a/src/mame/drivers/rltennis.c
+++ b/src/mame/drivers/rltennis.c
@@ -192,7 +192,7 @@ static MACHINE_CONFIG_START( rltennis, rltennis_state )
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0,319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(rltennis)
+ MCFG_SCREEN_UPDATE_DRIVER(rltennis_state, screen_update_rltennis)
MCFG_PALETTE_LENGTH(256)
MCFG_NVRAM_ADD_0FILL("nvram")
diff --git a/src/mame/drivers/rmhaihai.c b/src/mame/drivers/rmhaihai.c
index 88f560f0304..f6350fa50ec 100644
--- a/src/mame/drivers/rmhaihai.c
+++ b/src/mame/drivers/rmhaihai.c
@@ -59,6 +59,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
DECLARE_MACHINE_RESET(themj);
+ UINT32 screen_update_rmhaihai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -90,10 +91,9 @@ void rmhaihai_state::video_start()
8, 8, 64, 32);
}
-static SCREEN_UPDATE_IND16( rmhaihai )
+UINT32 rmhaihai_state::screen_update_rmhaihai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- rmhaihai_state *state = screen.machine().driver_data<rmhaihai_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -477,7 +477,7 @@ static MACHINE_CONFIG_START( rmhaihai, rmhaihai_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(4*8, 60*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(rmhaihai)
+ MCFG_SCREEN_UPDATE_DRIVER(rmhaihai_state, screen_update_rmhaihai)
MCFG_GFXDECODE(rmhaihai)
MCFG_PALETTE_LENGTH(0x100)
diff --git a/src/mame/drivers/rockrage.c b/src/mame/drivers/rockrage.c
index 494d85c72bd..11ecdf52ffe 100644
--- a/src/mame/drivers/rockrage.c
+++ b/src/mame/drivers/rockrage.c
@@ -275,7 +275,7 @@ static MACHINE_CONFIG_START( rockrage, rockrage_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(rockrage)
+ MCFG_SCREEN_UPDATE_DRIVER(rockrage_state, screen_update_rockrage)
MCFG_K007342_ADD("k007342", rockrage_k007342_intf)
MCFG_K007420_ADD("k007420", rockrage_k007420_intf)
diff --git a/src/mame/drivers/rocnrope.c b/src/mame/drivers/rocnrope.c
index c847b810c40..5f0518770c5 100644
--- a/src/mame/drivers/rocnrope.c
+++ b/src/mame/drivers/rocnrope.c
@@ -208,7 +208,7 @@ static MACHINE_CONFIG_START( rocnrope, rocnrope_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(rocnrope)
+ MCFG_SCREEN_UPDATE_DRIVER(rocnrope_state, screen_update_rocnrope)
MCFG_GFXDECODE(rocnrope)
MCFG_PALETTE_LENGTH(16*16+16*16)
diff --git a/src/mame/drivers/rohga.c b/src/mame/drivers/rohga.c
index 4537cd717a8..e0ebffc34cd 100644
--- a/src/mame/drivers/rohga.c
+++ b/src/mame/drivers/rohga.c
@@ -813,7 +813,7 @@ static MACHINE_CONFIG_START( rohga, rohga_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(rohga)
+ MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_rohga)
MCFG_GFXDECODE(rohga)
MCFG_PALETTE_LENGTH(2048)
@@ -864,7 +864,7 @@ static MACHINE_CONFIG_START( wizdfire, rohga_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(wizdfire)
+ MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_wizdfire)
MCFG_GFXDECODE(wizdfire)
MCFG_PALETTE_LENGTH(2048)
@@ -918,7 +918,7 @@ static MACHINE_CONFIG_START( nitrobal, rohga_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(nitrobal)
+ MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_nitrobal)
MCFG_GFXDECODE(wizdfire)
MCFG_PALETTE_LENGTH(2048)
@@ -971,7 +971,7 @@ static MACHINE_CONFIG_START( schmeisr, rohga_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(rohga)
+ MCFG_SCREEN_UPDATE_DRIVER(rohga_state, screen_update_rohga)
MCFG_GFXDECODE(schmeisr)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/rollerg.c b/src/mame/drivers/rollerg.c
index 53d7828da7f..b248f1840f5 100644
--- a/src/mame/drivers/rollerg.c
+++ b/src/mame/drivers/rollerg.c
@@ -291,7 +291,7 @@ static MACHINE_CONFIG_START( rollerg, rollerg_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(rollerg)
+ MCFG_SCREEN_UPDATE_DRIVER(rollerg_state, screen_update_rollerg)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/rollrace.c b/src/mame/drivers/rollrace.c
index cad90051fb8..c1275843fbc 100644
--- a/src/mame/drivers/rollrace.c
+++ b/src/mame/drivers/rollrace.c
@@ -241,7 +241,7 @@ static MACHINE_CONFIG_START( rollrace, rollrace_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(16,255,16, 255-16)
- MCFG_SCREEN_UPDATE_STATIC(rollrace)
+ MCFG_SCREEN_UPDATE_DRIVER(rollrace_state, screen_update_rollrace)
MCFG_GFXDECODE(rollrace)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/rotaryf.c b/src/mame/drivers/rotaryf.c
index 038ff849ee3..d3484574ea6 100644
--- a/src/mame/drivers/rotaryf.c
+++ b/src/mame/drivers/rotaryf.c
@@ -26,6 +26,7 @@ public:
required_device<cpu_device> m_maincpu;
required_shared_ptr<UINT8> m_videoram;
+ UINT32 screen_update_rotaryf(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -61,18 +62,17 @@ static TIMER_DEVICE_CALLBACK( rotaryf_interrupt )
*
*************************************/
-static SCREEN_UPDATE_RGB32( rotaryf )
+UINT32 rotaryf_state::screen_update_rotaryf(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- rotaryf_state *state = screen.machine().driver_data<rotaryf_state>();
offs_t offs;
- for (offs = 0; offs < state->m_videoram.bytes(); offs++)
+ for (offs = 0; offs < m_videoram.bytes(); offs++)
{
int i;
UINT8 x = offs << 3;
int y = offs >> 5;
- UINT8 data = state->m_videoram[offs];
+ UINT8 data = m_videoram[offs];
for (i = 0; i < 8; i++)
{
@@ -178,7 +178,7 @@ static MACHINE_CONFIG_START( rotaryf, rotaryf_state )
MCFG_SCREEN_SIZE(32*8, 262) /* vert size is a guess, taken from mw8080bw */
MCFG_SCREEN_VISIBLE_AREA(1*8, 30*8-1, 0*8, 32*8-1)
MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_UPDATE_STATIC(rotaryf)
+ MCFG_SCREEN_UPDATE_DRIVER(rotaryf_state, screen_update_rotaryf)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/roul.c b/src/mame/drivers/roul.c
index ca111e422c5..0469b895395 100644
--- a/src/mame/drivers/roul.c
+++ b/src/mame/drivers/roul.c
@@ -82,6 +82,7 @@ public:
DECLARE_WRITE8_MEMBER(ball_w);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_roul(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -214,13 +215,12 @@ void roul_state::video_start()
m_videobuf = auto_alloc_array_clear(machine(), UINT8, VIDEOBUF_SIZE);
}
-static SCREEN_UPDATE_IND16(roul)
+UINT32 roul_state::screen_update_roul(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- roul_state *state = screen.machine().driver_data<roul_state>();
int i,j;
for (i = 0; i < 256; i++)
for (j = 0; j < 256; j++)
- bitmap.pix16(j, i) = state->m_videobuf[j * 256 + 255 - i];
+ bitmap.pix16(j, i) = m_videobuf[j * 256 + 255 - i];
return 0;
}
@@ -294,7 +294,7 @@ static MACHINE_CONFIG_START( roul, roul_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(roul)
+ MCFG_SCREEN_UPDATE_DRIVER(roul_state, screen_update_roul)
MCFG_PALETTE_LENGTH(0x100)
diff --git a/src/mame/drivers/route16.c b/src/mame/drivers/route16.c
index 6f82dccb27d..ab4b93508c0 100644
--- a/src/mame/drivers/route16.c
+++ b/src/mame/drivers/route16.c
@@ -612,7 +612,7 @@ static MACHINE_CONFIG_START( route16, route16_state )
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
MCFG_SCREEN_REFRESH_RATE(57)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) /* frames per second, vblank duration */
- MCFG_SCREEN_UPDATE_STATIC(route16)
+ MCFG_SCREEN_UPDATE_DRIVER(route16_state, screen_update_route16)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -640,7 +640,7 @@ static MACHINE_CONFIG_DERIVED( stratvox, route16 )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(stratvox)
+ MCFG_SCREEN_UPDATE_DRIVER(route16_state, screen_update_stratvox)
/* sound hardware */
MCFG_SOUND_MODIFY("ay8910")
@@ -678,7 +678,7 @@ static MACHINE_CONFIG_DERIVED( ttmahjng, route16 )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(ttmahjng)
+ MCFG_SCREEN_UPDATE_DRIVER(route16_state, screen_update_ttmahjng)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/royalmah.c b/src/mame/drivers/royalmah.c
index 87feb2b05ad..1ab6b4821ce 100644
--- a/src/mame/drivers/royalmah.c
+++ b/src/mame/drivers/royalmah.c
@@ -196,6 +196,7 @@ public:
DECLARE_DRIVER_INIT(ippatsu);
virtual void palette_init();
DECLARE_PALETTE_INIT(mjderngr);
+ UINT32 screen_update_royalmah(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -283,10 +284,9 @@ WRITE8_MEMBER(royalmah_state::mjderngr_palbank_w)
}
-static SCREEN_UPDATE_IND16( royalmah )
+UINT32 royalmah_state::screen_update_royalmah(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- royalmah_state *state = screen.machine().driver_data<royalmah_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
offs_t offs;
@@ -304,7 +304,7 @@ static SCREEN_UPDATE_IND16( royalmah )
{
UINT8 pen = ((data2 >> 1) & 0x08) | ((data2 << 2) & 0x04) | ((data1 >> 3) & 0x02) | ((data1 >> 0) & 0x01);
- bitmap.pix16(y, x) = (state->m_palette_base << 4) | pen;
+ bitmap.pix16(y, x) = (m_palette_base << 4) | pen;
x = x - 1;
data1 = data1 >> 1;
@@ -3181,7 +3181,7 @@ static MACHINE_CONFIG_START( royalmah, royalmah_state )
MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 247)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_UPDATE_STATIC(royalmah)
+ MCFG_SCREEN_UPDATE_DRIVER(royalmah_state, screen_update_royalmah)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/rpunch.c b/src/mame/drivers/rpunch.c
index 610af4bce61..a46516f3932 100644
--- a/src/mame/drivers/rpunch.c
+++ b/src/mame/drivers/rpunch.c
@@ -476,7 +476,7 @@ static MACHINE_CONFIG_START( rpunch, rpunch_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(304, 224)
MCFG_SCREEN_VISIBLE_AREA(8, 303-8, 0, 223-8)
- MCFG_SCREEN_UPDATE_STATIC(rpunch)
+ MCFG_SCREEN_UPDATE_DRIVER(rpunch_state, screen_update_rpunch)
MCFG_GFXDECODE(rpunch)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/runaway.c b/src/mame/drivers/runaway.c
index fc19af335d2..392a20fa8bc 100644
--- a/src/mame/drivers/runaway.c
+++ b/src/mame/drivers/runaway.c
@@ -359,7 +359,7 @@ static MACHINE_CONFIG_START( runaway, runaway_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(256, 263)
MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(runaway)
+ MCFG_SCREEN_UPDATE_DRIVER(runaway_state, screen_update_runaway)
MCFG_GFXDECODE(runaway)
MCFG_PALETTE_LENGTH(16)
@@ -387,7 +387,7 @@ static MACHINE_CONFIG_DERIVED( qwak, runaway )
MCFG_VIDEO_START_OVERRIDE(runaway_state,qwak)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(qwak)
+ MCFG_SCREEN_UPDATE_DRIVER(runaway_state, screen_update_qwak)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/rungun.c b/src/mame/drivers/rungun.c
index b57dada2cc7..25f85113444 100644
--- a/src/mame/drivers/rungun.c
+++ b/src/mame/drivers/rungun.c
@@ -420,7 +420,7 @@ static MACHINE_CONFIG_START( rng, rungun_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(88, 88+384-1, 24, 24+224-1)
- MCFG_SCREEN_UPDATE_STATIC(rng)
+ MCFG_SCREEN_UPDATE_DRIVER(rungun_state, screen_update_rng)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/safarir.c b/src/mame/drivers/safarir.c
index d1ebca0ebee..919e056c97f 100644
--- a/src/mame/drivers/safarir.c
+++ b/src/mame/drivers/safarir.c
@@ -78,6 +78,7 @@ public:
virtual void machine_start();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_safarir(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -200,14 +201,13 @@ void safarir_state::video_start()
}
-static SCREEN_UPDATE_IND16( safarir )
+UINT32 safarir_state::screen_update_safarir(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- safarir_state *state = screen.machine().driver_data<safarir_state>();
- state->m_bg_tilemap->set_scrollx(0, *state->m_bg_scroll);
+ m_bg_tilemap->set_scrollx(0, *m_bg_scroll);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -415,7 +415,7 @@ static MACHINE_CONFIG_START( safarir, safarir_state )
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 26*8-1)
MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_UPDATE_STATIC(safarir)
+ MCFG_SCREEN_UPDATE_DRIVER(safarir_state, screen_update_safarir)
/* audio hardware */
MCFG_FRAGMENT_ADD(safarir_audio)
diff --git a/src/mame/drivers/sandscrp.c b/src/mame/drivers/sandscrp.c
index 42e97c5a285..4d59798f675 100644
--- a/src/mame/drivers/sandscrp.c
+++ b/src/mame/drivers/sandscrp.c
@@ -109,13 +109,14 @@ public:
DECLARE_READ8_MEMBER(sandscrp_soundlatch_r);
DECLARE_WRITE8_MEMBER(sandscrp_soundlatch_w);
virtual void machine_reset();
+ UINT32 screen_update_sandscrp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_sandscrp(screen_device &screen, bool state);
};
-SCREEN_UPDATE_IND16( sandscrp )
+UINT32 sandscrp_state::screen_update_sandscrp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- sandscrp_state *state = screen.machine().driver_data<sandscrp_state>();
device_t *pandora = screen.machine().device("pandora");
bitmap.fill(0, cliprect);
@@ -123,11 +124,11 @@ SCREEN_UPDATE_IND16( sandscrp )
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_view2_0->kaneko16_prepare(bitmap, cliprect);
+ m_view2_0->kaneko16_prepare(bitmap, cliprect);
for ( i = 0; i < 8; i++ )
{
- state->m_view2_0->render_tilemap_chip(bitmap,cliprect,i);
+ m_view2_0->render_tilemap_chip(bitmap,cliprect,i);
}
// copy sprite bitmap to screen
@@ -167,14 +168,13 @@ static INTERRUPT_GEN( sandscrp_interrupt )
}
-static SCREEN_VBLANK( sandscrp )
+void sandscrp_state::screen_eof_sandscrp(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- sandscrp_state *state = screen.machine().driver_data<sandscrp_state>();
device_t *pandora = screen.machine().device("pandora");
- state->m_sprite_irq = 1;
+ m_sprite_irq = 1;
update_irq_state(screen.machine());
pandora_eof(pandora);
}
@@ -515,8 +515,8 @@ static MACHINE_CONFIG_START( sandscrp, sandscrp_state )
MCFG_SCREEN_VBLANK_TIME( ATTOSECONDS_IN_USEC(2500) /* not accurate */ )
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(sandscrp)
- MCFG_SCREEN_VBLANK_STATIC(sandscrp)
+ MCFG_SCREEN_UPDATE_DRIVER(sandscrp_state, screen_update_sandscrp)
+ MCFG_SCREEN_VBLANK_DRIVER(sandscrp_state, screen_eof_sandscrp)
MCFG_GFXDECODE(sandscrp)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/saturn.c b/src/mame/drivers/saturn.c
index ceba5514e6a..1b4d99328e5 100644
--- a/src/mame/drivers/saturn.c
+++ b/src/mame/drivers/saturn.c
@@ -2207,10 +2207,10 @@ static MACHINE_CONFIG_START( saturn, saturn_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_320/8, 427, 0, 320, 263, 0, 224)
#if NEW_VIDEO_CODE
- MCFG_SCREEN_UPDATE_STATIC(saturn)
+ MCFG_SCREEN_UPDATE_DRIVER(saturn_state, screen_update_saturn)
MCFG_PALETTE_LENGTH(2048+(2048*2))//standard palette + extra memory for rgb brightness. (TODO: remove AT LEAST the latter)
#else
- MCFG_SCREEN_UPDATE_STATIC(stv_vdp2)
+ MCFG_SCREEN_UPDATE_DRIVER(saturn_state, screen_update_stv_vdp2)
MCFG_PALETTE_LENGTH(2048+(2048*2))//standard palette + extra memory for rgb brightness.
#endif
@@ -2296,10 +2296,10 @@ static MACHINE_CONFIG_START( stv, saturn_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_320/8, 427, 0, 320, 263, 0, 224)
#if NEW_VIDEO_CODE
- MCFG_SCREEN_UPDATE_STATIC(saturn)
+ MCFG_SCREEN_UPDATE_DRIVER(saturn_state, screen_update_saturn)
MCFG_PALETTE_LENGTH(2048+(2048*2))//standard palette + extra memory for rgb brightness. (TODO: remove AT LEAST the latter)
#else
- MCFG_SCREEN_UPDATE_STATIC(stv_vdp2)
+ MCFG_SCREEN_UPDATE_DRIVER(saturn_state, screen_update_stv_vdp2)
MCFG_PALETTE_LENGTH(2048+(2048*2))//standard palette + extra memory for rgb brightness.
#endif
diff --git a/src/mame/drivers/sauro.c b/src/mame/drivers/sauro.c
index 258905c62a1..be07dd82109 100644
--- a/src/mame/drivers/sauro.c
+++ b/src/mame/drivers/sauro.c
@@ -407,7 +407,7 @@ static MACHINE_CONFIG_DERIVED( trckydoc, tecfri )
MCFG_VIDEO_START_OVERRIDE(sauro_state,trckydoc)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(trckydoc)
+ MCFG_SCREEN_UPDATE_DRIVER(sauro_state, screen_update_trckydoc)
MACHINE_CONFIG_END
@@ -425,7 +425,7 @@ static MACHINE_CONFIG_DERIVED( sauro, tecfri )
MCFG_VIDEO_START_OVERRIDE(sauro_state,sauro)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(sauro)
+ MCFG_SCREEN_UPDATE_DRIVER(sauro_state, screen_update_sauro)
MCFG_SOUND_ADD("speech", SP0256, 3120000)
MCFG_SOUND_CONFIG(sauro_sp256)
diff --git a/src/mame/drivers/sbasketb.c b/src/mame/drivers/sbasketb.c
index 6cba6571c3b..a354b2e61a2 100644
--- a/src/mame/drivers/sbasketb.c
+++ b/src/mame/drivers/sbasketb.c
@@ -210,7 +210,7 @@ static MACHINE_CONFIG_START( sbasketb, sbasketb_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(sbasketb)
+ MCFG_SCREEN_UPDATE_DRIVER(sbasketb_state, screen_update_sbasketb)
MCFG_GFXDECODE(sbasketb)
MCFG_PALETTE_LENGTH(16*16+16*16*16)
diff --git a/src/mame/drivers/sbowling.c b/src/mame/drivers/sbowling.c
index d96dacd92e4..7e501f49a7e 100644
--- a/src/mame/drivers/sbowling.c
+++ b/src/mame/drivers/sbowling.c
@@ -73,6 +73,7 @@ public:
TILE_GET_INFO_MEMBER(get_sb_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_sbowling(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
TILE_GET_INFO_MEMBER(sbowling_state::get_sb_tile_info)
@@ -116,13 +117,12 @@ WRITE8_MEMBER(sbowling_state::sbw_videoram_w)
}
}
-static SCREEN_UPDATE_IND16(sbowling)
+UINT32 sbowling_state::screen_update_sbowling(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- sbowling_state *state = screen.machine().driver_data<sbowling_state>();
bitmap.fill(0x18, cliprect);
- state->m_sb_tilemap->draw(bitmap, cliprect, 0, 0);
- copybitmap_trans(bitmap, *state->m_tmpbitmap, 0, 0, 0, 0, cliprect, state->m_color_prom_address);
+ m_sb_tilemap->draw(bitmap, cliprect, 0, 0);
+ copybitmap_trans(bitmap, *m_tmpbitmap, 0, 0, 0, 0, cliprect, m_color_prom_address);
return 0;
}
@@ -392,7 +392,7 @@ static MACHINE_CONFIG_START( sbowling, sbowling_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(32*8, 262) /* vert size taken from mw8080bw */
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 4*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(sbowling)
+ MCFG_SCREEN_UPDATE_DRIVER(sbowling_state, screen_update_sbowling)
MCFG_GFXDECODE(sbowling)
diff --git a/src/mame/drivers/sbrkout.c b/src/mame/drivers/sbrkout.c
index 12eec0a6b24..a6f3dace53b 100644
--- a/src/mame/drivers/sbrkout.c
+++ b/src/mame/drivers/sbrkout.c
@@ -66,6 +66,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_sbrkout(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -327,13 +328,12 @@ WRITE8_MEMBER(sbrkout_state::sbrkout_videoram_w)
*
*************************************/
-static SCREEN_UPDATE_IND16( sbrkout )
+UINT32 sbrkout_state::screen_update_sbrkout(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- sbrkout_state *state = screen.machine().driver_data<sbrkout_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
int ball;
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
for (ball = 2; ball >= 0; ball--)
{
@@ -514,7 +514,7 @@ static MACHINE_CONFIG_START( sbrkout, sbrkout_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MAIN_CLOCK/2, 384, 0, 256, 262, 0, 224)
- MCFG_SCREEN_UPDATE_STATIC(sbrkout)
+ MCFG_SCREEN_UPDATE_DRIVER(sbrkout_state, screen_update_sbrkout)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mame/drivers/sbugger.c b/src/mame/drivers/sbugger.c
index 2f3954343e4..38a765221d7 100644
--- a/src/mame/drivers/sbugger.c
+++ b/src/mame/drivers/sbugger.c
@@ -254,7 +254,7 @@ static MACHINE_CONFIG_START( sbugger, sbugger_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(sbugger)
+ MCFG_SCREEN_UPDATE_DRIVER(sbugger_state, screen_update_sbugger)
MCFG_PALETTE_LENGTH(512)
diff --git a/src/mame/drivers/scobra.c b/src/mame/drivers/scobra.c
index a4e4b60f213..a1a774e77e1 100644
--- a/src/mame/drivers/scobra.c
+++ b/src/mame/drivers/scobra.c
@@ -681,7 +681,7 @@ static MACHINE_CONFIG_START( type1, scobra_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(galaxold)
+ MCFG_SCREEN_UPDATE_DRIVER(scobra_state, screen_update_galaxold)
MCFG_GFXDECODE(scobra)
MCFG_PALETTE_LENGTH(32+64+2+1) /* 32 for characters, 64 for stars, 2 for bullets, 1 for background */
@@ -804,7 +804,7 @@ static MACHINE_CONFIG_START( hustler, scobra_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(galaxold)
+ MCFG_SCREEN_UPDATE_DRIVER(scobra_state, screen_update_galaxold)
MCFG_GFXDECODE(scobra)
MCFG_PALETTE_LENGTH(32+64+2) /* 32 for characters, 64 for stars, 2 for bullets */
diff --git a/src/mame/drivers/scotrsht.c b/src/mame/drivers/scotrsht.c
index 8139f024de6..8b77888347d 100644
--- a/src/mame/drivers/scotrsht.c
+++ b/src/mame/drivers/scotrsht.c
@@ -197,7 +197,7 @@ static MACHINE_CONFIG_START( scotrsht, scotrsht_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(scotrsht)
+ MCFG_SCREEN_UPDATE_DRIVER(scotrsht_state, screen_update_scotrsht)
MCFG_GFXDECODE(scotrsht)
MCFG_PALETTE_LENGTH(16*8*16+16*8*16)
diff --git a/src/mame/drivers/scramble.c b/src/mame/drivers/scramble.c
index efa1498f515..0c8b57a74ca 100644
--- a/src/mame/drivers/scramble.c
+++ b/src/mame/drivers/scramble.c
@@ -1344,7 +1344,7 @@ static MACHINE_CONFIG_START( scramble, scramble_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(galaxold)
+ MCFG_SCREEN_UPDATE_DRIVER(scramble_state, screen_update_galaxold)
MCFG_GFXDECODE(scramble)
MCFG_PALETTE_LENGTH(32+64+2+1) /* 32 for characters, 64 for stars, 2 for bullets, 0/1 for background */
@@ -1572,7 +1572,7 @@ static MACHINE_CONFIG_START( ad2083, scramble_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(galaxold)
+ MCFG_SCREEN_UPDATE_DRIVER(scramble_state, screen_update_galaxold)
MCFG_GFXDECODE(ad2083)
MCFG_PALETTE_LENGTH(32+64+2+8) /* 32 for characters, 64 for stars, 2 for bullets, 8 for background */
diff --git a/src/mame/drivers/scregg.c b/src/mame/drivers/scregg.c
index 76e38a277c2..384e25ac1ca 100644
--- a/src/mame/drivers/scregg.c
+++ b/src/mame/drivers/scregg.c
@@ -270,7 +270,7 @@ static MACHINE_CONFIG_START( dommy, scregg_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL_12MHz/2, 384, 8, 248, 272, 8, 248)
- MCFG_SCREEN_UPDATE_STATIC(eggs)
+ MCFG_SCREEN_UPDATE_DRIVER(scregg_state, screen_update_eggs)
MCFG_GFXDECODE(scregg)
MCFG_PALETTE_LENGTH(8)
@@ -302,7 +302,7 @@ static MACHINE_CONFIG_START( scregg, scregg_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL_12MHz/2, 384, 8, 248, 272, 8, 248)
- MCFG_SCREEN_UPDATE_STATIC(eggs)
+ MCFG_SCREEN_UPDATE_DRIVER(scregg_state, screen_update_eggs)
MCFG_GFXDECODE(scregg)
MCFG_PALETTE_LENGTH(8)
diff --git a/src/mame/drivers/sderby.c b/src/mame/drivers/sderby.c
index e88dbf820f4..6adbff69d79 100644
--- a/src/mame/drivers/sderby.c
+++ b/src/mame/drivers/sderby.c
@@ -506,7 +506,7 @@ static MACHINE_CONFIG_START( sderby, sderby_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(4*8, 44*8-1, 3*8, 33*8-1)
- MCFG_SCREEN_UPDATE_STATIC(sderby)
+ MCFG_SCREEN_UPDATE_DRIVER(sderby_state, screen_update_sderby)
MCFG_GFXDECODE(sderby)
MCFG_PALETTE_LENGTH(0x1000)
@@ -529,7 +529,7 @@ static MACHINE_CONFIG_START( luckboom, sderby_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(4*8, 44*8-1, 3*8, 33*8-1)
- MCFG_SCREEN_UPDATE_STATIC(sderby)
+ MCFG_SCREEN_UPDATE_DRIVER(sderby_state, screen_update_sderby)
MCFG_GFXDECODE(sderby)
MCFG_PALETTE_LENGTH(0x1000)
@@ -552,7 +552,7 @@ static MACHINE_CONFIG_START( spacewin, sderby_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(4*8, 44*8-1, 3*8, 33*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pmroulet)
+ MCFG_SCREEN_UPDATE_DRIVER(sderby_state, screen_update_pmroulet)
MCFG_GFXDECODE(sderby)
MCFG_PALETTE_LENGTH(0x1000)
@@ -575,7 +575,7 @@ static MACHINE_CONFIG_START( pmroulet, sderby_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(4*8, 44*8-1, 3*8, 33*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pmroulet)
+ MCFG_SCREEN_UPDATE_DRIVER(sderby_state, screen_update_pmroulet)
MCFG_GFXDECODE(sderby)
MCFG_PALETTE_LENGTH(0x1000)
diff --git a/src/mame/drivers/seattle.c b/src/mame/drivers/seattle.c
index 5a8b953bffc..4b1b78d49e9 100644
--- a/src/mame/drivers/seattle.c
+++ b/src/mame/drivers/seattle.c
@@ -493,6 +493,7 @@ public:
DECLARE_DRIVER_INIT(blitz99);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_seattle(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -519,10 +520,9 @@ static void update_widget_irq(running_machine &machine);
*
*************************************/
-static SCREEN_UPDATE_RGB32( seattle )
+UINT32 seattle_state::screen_update_seattle(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- seattle_state *state = screen.machine().driver_data<seattle_state>();
- return voodoo_update(state->m_voodoo, bitmap, cliprect) ? 0 : UPDATE_HAS_NOT_CHANGED;
+ return voodoo_update(m_voodoo, bitmap, cliprect) ? 0 : UPDATE_HAS_NOT_CHANGED;
}
@@ -2559,7 +2559,7 @@ static MACHINE_CONFIG_START( seattle_common, seattle_state )
MCFG_SCREEN_REFRESH_RATE(57)
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
- MCFG_SCREEN_UPDATE_STATIC(seattle)
+ MCFG_SCREEN_UPDATE_DRIVER(seattle_state, screen_update_seattle)
/* sound hardware */
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/segac2.c b/src/mame/drivers/segac2.c
index cefaa669259..c1223e90557 100644
--- a/src/mame/drivers/segac2.c
+++ b/src/mame/drivers/segac2.c
@@ -1273,17 +1273,16 @@ VIDEO_START_MEMBER(segac2_state,segac2_new)
// C2 doesn't use the internal VDP CRAM, instead it uses the digital output of the chip
// and applies it's own external colour circuity
-static SCREEN_UPDATE_RGB32(segac2_new)
+UINT32 segac2_state::screen_update_segac2_new(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
const pen_t *paldata = screen.machine().pens;
- segac2_state *state = screen.machine().driver_data<segac2_state>();
- if (!state->m_segac2_enable_display)
+ if (!m_segac2_enable_display)
{
bitmap.fill(get_black_pen(screen.machine()), cliprect);
return 0;
}
- sega_genesis_vdp_device *vdp = state->m_vdp;
+ sega_genesis_vdp_device *vdp = m_vdp;
/* Copy our screen buffer here */
for (int y = cliprect.min_y; y <= cliprect.max_y; y++)
@@ -1394,7 +1393,7 @@ static MACHINE_CONFIG_START( segac, segac2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) // Vblank handled manually.
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 0, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(segac2_new)
+ MCFG_SCREEN_UPDATE_DRIVER(segac2_state, screen_update_segac2_new)
MCFG_SCREEN_VBLANK_STATIC( megadriv )
MCFG_PALETTE_LENGTH(2048*3)
diff --git a/src/mame/drivers/segae.c b/src/mame/drivers/segae.c
index 96d0a0792ec..cf9988a5c10 100644
--- a/src/mame/drivers/segae.c
+++ b/src/mame/drivers/segae.c
@@ -347,6 +347,7 @@ public:
int m_last2;
int m_diff1;
int m_diff2;
+ UINT32 screen_update_systeme(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
class fantzn2_state : public systeme_state
@@ -1074,12 +1075,11 @@ static const sega315_5124_interface _315_5124_2_intf =
};
-static SCREEN_UPDATE_RGB32( systeme )
+UINT32 systeme_state::screen_update_systeme(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- systeme_state *state = screen.machine().driver_data<systeme_state>();
- bitmap_rgb32 &vdp1_bitmap = state->m_vdp1->get_bitmap();
- bitmap_rgb32 &vdp2_bitmap = state->m_vdp2->get_bitmap();
- bitmap_ind8 &vdp2_y1 = state->m_vdp2->get_y1_bitmap();
+ bitmap_rgb32 &vdp1_bitmap = m_vdp1->get_bitmap();
+ bitmap_rgb32 &vdp2_bitmap = m_vdp2->get_bitmap();
+ bitmap_ind8 &vdp2_y1 = m_vdp2->get_y1_bitmap();
for( int y = cliprect.min_y; y <= cliprect.max_y; y++ )
{
@@ -1118,7 +1118,7 @@ static MACHINE_CONFIG_START( systeme, systeme_state )
MCFG_SCREEN_RAW_PARAMS(XTAL_10_738635MHz/2, \
SEGA315_5124_WIDTH , SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256, \
SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_192_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_192_TBORDER_HEIGHT + 192)
- MCFG_SCREEN_UPDATE_STATIC( systeme ) /* Combines and copies a bitmap */
+ MCFG_SCREEN_UPDATE_DRIVER(systeme_state, screen_update_systeme)
MCFG_PALETTE_LENGTH(SEGA315_5124_PALETTE_SIZE)
MCFG_PALETTE_INIT(sega315_5124)
diff --git a/src/mame/drivers/segag80r.c b/src/mame/drivers/segag80r.c
index ac833cbabfd..0272e47ebdc 100644
--- a/src/mame/drivers/segag80r.c
+++ b/src/mame/drivers/segag80r.c
@@ -852,7 +852,7 @@ static MACHINE_CONFIG_START( g80r_base, segag80r_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(segag80r)
+ MCFG_SCREEN_UPDATE_DRIVER(segag80r_state, screen_update_segag80r)
/* sound hardware */
diff --git a/src/mame/drivers/segag80v.c b/src/mame/drivers/segag80v.c
index 9e7f5570933..503e7a3e630 100644
--- a/src/mame/drivers/segag80v.c
+++ b/src/mame/drivers/segag80v.c
@@ -906,7 +906,7 @@ static MACHINE_CONFIG_START( g80v_base, segag80v_state )
MCFG_SCREEN_REFRESH_RATE(40)
MCFG_SCREEN_SIZE(400, 300)
MCFG_SCREEN_VISIBLE_AREA(512, 1536, 640-32, 1408+32)
- MCFG_SCREEN_UPDATE_STATIC(segag80v)
+ MCFG_SCREEN_UPDATE_DRIVER(segag80v_state, screen_update_segag80v)
/* sound hardware */
diff --git a/src/mame/drivers/segald.c b/src/mame/drivers/segald.c
index fac1fb8c11e..a6552629fb7 100644
--- a/src/mame/drivers/segald.c
+++ b/src/mame/drivers/segald.c
@@ -58,6 +58,7 @@ public:
DECLARE_WRITE8_MEMBER(astron_io_bankswitch_w);
DECLARE_DRIVER_INIT(astron);
virtual void machine_start();
+ UINT32 screen_update_astron(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
/* VIDEO GOODS */
@@ -106,7 +107,7 @@ static void astron_draw_sprites(running_machine &machine, bitmap_rgb32 &bitmap,
}
-static SCREEN_UPDATE_RGB32( astron )
+UINT32 segald_state::screen_update_astron(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
bitmap.fill(0, cliprect);
@@ -376,7 +377,7 @@ static MACHINE_CONFIG_START( astron, segald_state )
MCFG_LASERDISC_LDV1000_ADD("laserdisc")
- MCFG_LASERDISC_OVERLAY_STATIC(256, 256, astron)
+ MCFG_LASERDISC_OVERLAY_DRIVER(256, 256, segald_state, screen_update_astron)
/* video hardware */
MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
diff --git a/src/mame/drivers/segas24.c b/src/mame/drivers/segas24.c
index aaaa02b4933..d46954b2c25 100644
--- a/src/mame/drivers/segas24.c
+++ b/src/mame/drivers/segas24.c
@@ -1967,7 +1967,7 @@ static MACHINE_CONFIG_START( system24, segas24_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(VIDEO_CLOCK/2, 656, 0/*+69*/, 496/*+69*/, 424, 0/*+25*/, 384/*+25*/)
- MCFG_SCREEN_UPDATE_STATIC(system24)
+ MCFG_SCREEN_UPDATE_DRIVER(segas24_state, screen_update_system24)
MCFG_PALETTE_LENGTH(8192*2)
diff --git a/src/mame/drivers/segas32.c b/src/mame/drivers/segas32.c
index f38c4e341e3..9f24c46ed67 100644
--- a/src/mame/drivers/segas32.c
+++ b/src/mame/drivers/segas32.c
@@ -2214,7 +2214,7 @@ static MACHINE_CONFIG_START( system32, segas32_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(52*8, 262)
MCFG_SCREEN_VISIBLE_AREA(0*8, 52*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(system32)
+ MCFG_SCREEN_UPDATE_DRIVER(segas32_state, screen_update_system32)
MCFG_VIDEO_START_OVERRIDE(segas32_state,system32)
@@ -2274,13 +2274,13 @@ static MACHINE_CONFIG_START( multi32, segas32_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(52*8, 262)
MCFG_SCREEN_VISIBLE_AREA(0*8, 52*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(multi32_left)
+ MCFG_SCREEN_UPDATE_DRIVER(segas32_state, screen_update_multi32_left)
MCFG_SCREEN_ADD("rscreen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(52*8, 262)
MCFG_SCREEN_VISIBLE_AREA(0*8, 52*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(multi32_right)
+ MCFG_SCREEN_UPDATE_DRIVER(segas32_state, screen_update_multi32_right)
MCFG_VIDEO_START_OVERRIDE(segas32_state,multi32)
diff --git a/src/mame/drivers/seibuspi.c b/src/mame/drivers/seibuspi.c
index 97b8d827a2f..6f62e18ab19 100644
--- a/src/mame/drivers/seibuspi.c
+++ b/src/mame/drivers/seibuspi.c
@@ -1870,7 +1870,7 @@ static MACHINE_CONFIG_START( spi, seibuspi_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(spi)
+ MCFG_SCREEN_UPDATE_DRIVER(seibuspi_state, screen_update_spi)
MCFG_GFXDECODE(spi)
MCFG_PALETTE_LENGTH(6144)
@@ -2210,7 +2210,7 @@ static MACHINE_CONFIG_START( seibu386, seibuspi_state )
MCFG_PALETTE_LENGTH(6144)
MCFG_VIDEO_START_OVERRIDE(seibuspi_state,spi)
- MCFG_SCREEN_UPDATE_STATIC(spi)
+ MCFG_SCREEN_UPDATE_DRIVER(seibuspi_state, screen_update_spi)
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -2265,7 +2265,7 @@ static MACHINE_CONFIG_START( sys386f2, seibuspi_state )
MCFG_PALETTE_LENGTH(8192)
MCFG_VIDEO_START_OVERRIDE(seibuspi_state,sys386f2)
- MCFG_SCREEN_UPDATE_STATIC(sys386f2)
+ MCFG_SCREEN_UPDATE_DRIVER(seibuspi_state, screen_update_sys386f2)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mame/drivers/seicross.c b/src/mame/drivers/seicross.c
index 34da218086b..fcd7f8942ad 100644
--- a/src/mame/drivers/seicross.c
+++ b/src/mame/drivers/seicross.c
@@ -419,7 +419,7 @@ static MACHINE_CONFIG_START( nvram, seicross_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */ /* frames per second, vblank duration */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seicross)
+ MCFG_SCREEN_UPDATE_DRIVER(seicross_state, screen_update_seicross)
MCFG_GFXDECODE(seicross)
MCFG_PALETTE_LENGTH(64)
diff --git a/src/mame/drivers/senjyo.c b/src/mame/drivers/senjyo.c
index b8094121fd7..006a7322acd 100644
--- a/src/mame/drivers/senjyo.c
+++ b/src/mame/drivers/senjyo.c
@@ -589,7 +589,7 @@ static MACHINE_CONFIG_START( senjyo, senjyo_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(senjyo)
+ MCFG_SCREEN_UPDATE_DRIVER(senjyo_state, screen_update_senjyo)
MCFG_GFXDECODE(senjyo)
MCFG_PALETTE_LENGTH(512+2) /* 512 real palette + 2 for the radar */
diff --git a/src/mame/drivers/seta.c b/src/mame/drivers/seta.c
index 2bb5985ff8e..e1ebcc5e83a 100644
--- a/src/mame/drivers/seta.c
+++ b/src/mame/drivers/seta.c
@@ -1595,12 +1595,11 @@ READ8_MEMBER(seta_state::dsw2_r)
Sprites Buffering
*/
-static SCREEN_VBLANK( seta_buffer_sprites )
+void seta_state::screen_eof_seta_buffer_sprites(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- //seta_state *state = machine.driver_data<seta_state>();
screen.machine().device<seta001_device>("spritegen")->setac_eof();
}
}
@@ -7499,7 +7498,7 @@ static MACHINE_CONFIG_START( tndrcade, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
MCFG_GFXDECODE(tndrcade)
MCFG_PALETTE_LENGTH(512) /* sprites only */
@@ -7549,7 +7548,7 @@ static MACHINE_CONFIG_START( twineagl, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta)
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE(downtown)
MCFG_PALETTE_LENGTH(512)
@@ -7591,7 +7590,7 @@ static MACHINE_CONFIG_START( downtown, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta)
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE(downtown)
MCFG_PALETTE_LENGTH(512)
@@ -7650,7 +7649,7 @@ static MACHINE_CONFIG_START( usclssic, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 33*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(usclssic)
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_usclssic)
MCFG_GFXDECODE(usclssic)
MCFG_PALETTE_LENGTH(16*32 + 64*32*2) /* sprites, layer */
@@ -7699,7 +7698,7 @@ static MACHINE_CONFIG_START( calibr50, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta)
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE(downtown)
MCFG_PALETTE_LENGTH(512)
@@ -7739,7 +7738,7 @@ static MACHINE_CONFIG_START( metafox, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta)
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE(downtown)
MCFG_PALETTE_LENGTH(512)
@@ -7775,7 +7774,7 @@ static MACHINE_CONFIG_START( atehate, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
MCFG_GFXDECODE(tndrcade)
MCFG_PALETTE_LENGTH(512) /* sprites only */
@@ -7817,8 +7816,8 @@ static MACHINE_CONFIG_START( blandia, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta)
- MCFG_SCREEN_VBLANK_STATIC(seta_buffer_sprites) /* Blandia uses sprite buffering */
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
+ MCFG_SCREEN_VBLANK_DRIVER(seta_state, screen_eof_seta_buffer_sprites)
MCFG_GFXDECODE(blandia)
MCFG_PALETTE_LENGTH((16*32+64*32*4)*2) /* sprites, layer1, layer2, palette effect */
@@ -7850,8 +7849,8 @@ static MACHINE_CONFIG_START( blandiap, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta)
- MCFG_SCREEN_VBLANK_STATIC(seta_buffer_sprites) /* Blandia uses sprite buffering */
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
+ MCFG_SCREEN_VBLANK_DRIVER(seta_state, screen_eof_seta_buffer_sprites)
MCFG_GFXDECODE(blandia)
MCFG_PALETTE_LENGTH((16*32+64*32*4)*2) /* sprites, layer1, layer2, palette effect */
@@ -7888,7 +7887,7 @@ static MACHINE_CONFIG_START( blockcar, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
MCFG_GFXDECODE(tndrcade)
MCFG_PALETTE_LENGTH(512) /* sprites only */
@@ -7924,7 +7923,7 @@ static MACHINE_CONFIG_START( daioh, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta)
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE(msgundam)
MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer1, layer2 */
@@ -7965,8 +7964,8 @@ static MACHINE_CONFIG_START( drgnunit, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta)
- MCFG_SCREEN_VBLANK_STATIC(seta_buffer_sprites) /* qzkklogy uses sprite buffering */
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
+ MCFG_SCREEN_VBLANK_DRIVER(seta_state, screen_eof_seta_buffer_sprites)
MCFG_GFXDECODE(downtown)
MCFG_PALETTE_LENGTH(512)
@@ -8000,8 +7999,8 @@ static MACHINE_CONFIG_START( qzkklgy2, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta)
- MCFG_SCREEN_VBLANK_STATIC(seta_buffer_sprites) /* qzkklogy uses sprite buffering */
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
+ MCFG_SCREEN_VBLANK_DRIVER(seta_state, screen_eof_seta_buffer_sprites)
MCFG_GFXDECODE(qzkklgy2)
MCFG_PALETTE_LENGTH(512)
@@ -8051,8 +8050,8 @@ static MACHINE_CONFIG_START( setaroul, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(setaroul)
- MCFG_SCREEN_VBLANK_STATIC(setaroul) /* qzkklogy uses sprite buffering */
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_setaroul)
+ MCFG_SCREEN_VBLANK_DRIVER(seta_state, screen_eof_setaroul)
MCFG_GFXDECODE(setaroul)
MCFG_PALETTE_LENGTH(512)
@@ -8089,7 +8088,7 @@ static MACHINE_CONFIG_START( eightfrc, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta)
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE(msgundam)
MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer1, layer2 */
@@ -8130,7 +8129,7 @@ static MACHINE_CONFIG_START( extdwnhl, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta)
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE(zingzip)
MCFG_PALETTE_LENGTH(16*32+16*32+64*32*2) /* sprites, layer2, layer1 */
@@ -8191,7 +8190,7 @@ static MACHINE_CONFIG_START( gundhara, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta)
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE(jjsquawk)
MCFG_PALETTE_LENGTH(16*32+64*32*4) /* sprites, layer2, layer1 */
@@ -8232,7 +8231,7 @@ static MACHINE_CONFIG_START( jjsquawk, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta)
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE(jjsquawk)
MCFG_PALETTE_LENGTH(16*32+64*32*4) /* sprites, layer2, layer1 */
@@ -8264,7 +8263,7 @@ static MACHINE_CONFIG_START( jjsquawb, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta)
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE(jjsquawk)
MCFG_PALETTE_LENGTH(16*32+64*32*4) /* sprites, layer2, layer1 */
@@ -8305,7 +8304,7 @@ static MACHINE_CONFIG_START( kamenrid, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta)
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE(msgundam)
MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */
@@ -8342,7 +8341,7 @@ static MACHINE_CONFIG_START( orbs, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 39*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
MCFG_GFXDECODE(orbs)
MCFG_PALETTE_LENGTH(512) /* sprites only */
@@ -8380,7 +8379,7 @@ static MACHINE_CONFIG_START( keroppi, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
MCFG_GFXDECODE(orbs)
MCFG_PALETTE_LENGTH(512) /* sprites only */
@@ -8416,7 +8415,7 @@ static MACHINE_CONFIG_START( krzybowl, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 39*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
MCFG_GFXDECODE(tndrcade)
MCFG_PALETTE_LENGTH(512) /* sprites only */
@@ -8457,7 +8456,7 @@ static MACHINE_CONFIG_START( madshark, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta)
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE(jjsquawk)
MCFG_PALETTE_LENGTH(16*32+64*32*4) /* sprites, layer2, layer1 */
@@ -8499,7 +8498,7 @@ static MACHINE_CONFIG_START( magspeed, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta)
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE(msgundam)
MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */
@@ -8545,8 +8544,8 @@ static MACHINE_CONFIG_START( msgundam, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta)
- MCFG_SCREEN_VBLANK_STATIC(seta_buffer_sprites) /* msgundam uses sprite buffering */
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
+ MCFG_SCREEN_VBLANK_DRIVER(seta_state, screen_eof_seta_buffer_sprites)
MCFG_GFXDECODE(msgundam)
MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */
@@ -8583,7 +8582,7 @@ static MACHINE_CONFIG_START( oisipuzl, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta)
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE(msgundam)
MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */
@@ -8620,7 +8619,7 @@ static MACHINE_CONFIG_START( triplfun, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta)
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE(msgundam)
MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */
@@ -8655,7 +8654,7 @@ static MACHINE_CONFIG_START( kiwame, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 56*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
MCFG_GFXDECODE(tndrcade)
MCFG_PALETTE_LENGTH(512) /* sprites only */
@@ -8694,7 +8693,7 @@ static MACHINE_CONFIG_START( rezon, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta)
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE(msgundam)
MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer1, layer2 */
@@ -8733,7 +8732,7 @@ static MACHINE_CONFIG_START( thunderl, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
MCFG_GFXDECODE(tndrcade)
MCFG_PALETTE_LENGTH(512) /* sprites only */
@@ -8804,7 +8803,7 @@ static MACHINE_CONFIG_START( wiggie, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
MCFG_GFXDECODE(wiggie)
MCFG_PALETTE_LENGTH(512) /* sprites only */
@@ -8838,7 +8837,7 @@ static MACHINE_CONFIG_START( wits, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
MCFG_GFXDECODE(tndrcade)
MCFG_PALETTE_LENGTH(512) /* sprites only */
@@ -8874,7 +8873,7 @@ static MACHINE_CONFIG_START( umanclub, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
MCFG_GFXDECODE(tndrcade)
MCFG_PALETTE_LENGTH(512)
@@ -8914,7 +8913,7 @@ static MACHINE_CONFIG_START( utoukond, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta)
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE(msgundam)
MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer2, layer1 */
@@ -8963,7 +8962,7 @@ static MACHINE_CONFIG_START( wrofaero, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta)
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE(msgundam)
MCFG_PALETTE_LENGTH(512 * 3) /* sprites, layer1, layer2 */
@@ -9006,7 +9005,7 @@ static MACHINE_CONFIG_START( zingzip, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta)
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE(zingzip)
MCFG_PALETTE_LENGTH(16*32+16*32+64*32*2) /* sprites, layer2, layer1 */
@@ -9059,7 +9058,7 @@ static MACHINE_CONFIG_START( pairlove, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta_no_layers) /* just draw the sprites */
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta_no_layers)
MCFG_GFXDECODE(tndrcade)
MCFG_PALETTE_LENGTH(2048) /* sprites only */
@@ -9107,7 +9106,7 @@ static MACHINE_CONFIG_START( crazyfgt, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta)
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_seta)
MCFG_GFXDECODE(crazyfgt)
MCFG_PALETTE_LENGTH(16*32+64*32*4) /* sprites, layer1, layer2 */
@@ -9204,7 +9203,7 @@ static MACHINE_CONFIG_START( inttoote, seta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(inttoote)
+ MCFG_SCREEN_UPDATE_DRIVER(seta_state, screen_update_inttoote)
MCFG_GFXDECODE(inttoote)
MCFG_PALETTE_LENGTH(512 * 1)
diff --git a/src/mame/drivers/seta2.c b/src/mame/drivers/seta2.c
index 13a4b397f34..af4a6b1e2ce 100644
--- a/src/mame/drivers/seta2.c
+++ b/src/mame/drivers/seta2.c
@@ -2036,8 +2036,8 @@ static MACHINE_CONFIG_START( seta2, seta2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x200, 0x200)
MCFG_SCREEN_VISIBLE_AREA(0x40, 0x1c0-1, 0x80, 0x170-1)
- MCFG_SCREEN_UPDATE_STATIC(seta2)
- MCFG_SCREEN_VBLANK_STATIC(seta2)
+ MCFG_SCREEN_UPDATE_DRIVER(seta2_state, screen_update_seta2)
+ MCFG_SCREEN_VBLANK_DRIVER(seta2_state, screen_eof_seta2)
MCFG_GFXDECODE(seta2)
MCFG_PALETTE_LENGTH(0x8000+0xf0) // extra 0xf0 because we might draw 256-color object with 16-color granularity
@@ -2231,8 +2231,8 @@ static MACHINE_CONFIG_START( funcube, seta2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) // not accurate
MCFG_SCREEN_SIZE(0x200, 0x200)
MCFG_SCREEN_VISIBLE_AREA(0x0+1, 0x140-1+1, 0x80, 0x170-1)
- MCFG_SCREEN_UPDATE_STATIC(seta2)
- MCFG_SCREEN_VBLANK_STATIC(seta2)
+ MCFG_SCREEN_UPDATE_DRIVER(seta2_state, screen_update_seta2)
+ MCFG_SCREEN_VBLANK_DRIVER(seta2_state, screen_eof_seta2)
MCFG_GFXDECODE(funcube)
MCFG_PALETTE_LENGTH(0x8000+0xf0) // extra 0xf0 because we might draw 256-color object with 16-color granularity
@@ -2282,8 +2282,8 @@ static MACHINE_CONFIG_START( namcostr, seta2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x200, 0x200)
MCFG_SCREEN_VISIBLE_AREA(0x40, 0x1c0-1, 0x80, 0x170-1)
- MCFG_SCREEN_UPDATE_STATIC(seta2)
- MCFG_SCREEN_VBLANK_STATIC(seta2)
+ MCFG_SCREEN_UPDATE_DRIVER(seta2_state, screen_update_seta2)
+ MCFG_SCREEN_VBLANK_DRIVER(seta2_state, screen_eof_seta2)
MCFG_GFXDECODE(funcube)
MCFG_PALETTE_LENGTH(0x8000+0xf0) // extra 0xf0 because we might draw 256-color object with 16-color granularity
diff --git a/src/mame/drivers/sf.c b/src/mame/drivers/sf.c
index f32f1f40fe3..f9cde4c9b01 100644
--- a/src/mame/drivers/sf.c
+++ b/src/mame/drivers/sf.c
@@ -856,7 +856,7 @@ static MACHINE_CONFIG_START( sf, sf_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(sf)
+ MCFG_SCREEN_UPDATE_DRIVER(sf_state, screen_update_sf)
MCFG_GFXDECODE(sf)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/sfbonus.c b/src/mame/drivers/sfbonus.c
index dce17be86a0..0be77ea157d 100644
--- a/src/mame/drivers/sfbonus.c
+++ b/src/mame/drivers/sfbonus.c
@@ -453,6 +453,7 @@ public:
TILE_GET_INFO_MEMBER(get_sfbonus_reel4_tile_info);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_sfbonus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -1059,13 +1060,12 @@ static void sfbonus_draw_reel_layer(screen_device &screen, bitmap_ind16 &bitmap,
}
-static SCREEN_UPDATE_IND16(sfbonus)
+UINT32 sfbonus_state::screen_update_sfbonus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- sfbonus_state *state = screen.machine().driver_data<sfbonus_state>();
- int globalyscroll = (state->m_vregs[2] | state->m_vregs[3]<<8);
- int globalxscroll = (state->m_vregs[0] | state->m_vregs[1]<<8);
- UINT8* front_rowscroll = &state->m_videoram[0x200];
+ int globalyscroll = (m_vregs[2] | m_vregs[3]<<8);
+ int globalxscroll = (m_vregs[0] | m_vregs[1]<<8);
+ UINT8* front_rowscroll = &m_videoram[0x200];
ioport_constructor ipt;
int i;
@@ -1074,10 +1074,10 @@ static SCREEN_UPDATE_IND16(sfbonus)
globalxscroll += 8;
bitmap.fill(screen.machine().pens[0], cliprect);
- state->m_temp_reel_bitmap->fill(screen.machine().pens[0], cliprect);
+ m_temp_reel_bitmap->fill(screen.machine().pens[0], cliprect);
/* render reels to bitmap */
- sfbonus_draw_reel_layer(screen,*state->m_temp_reel_bitmap,cliprect,0);
+ sfbonus_draw_reel_layer(screen,*m_temp_reel_bitmap,cliprect,0);
{
int y,x;
@@ -1086,7 +1086,7 @@ static SCREEN_UPDATE_IND16(sfbonus)
{
for (x=0;x<512;x++)
{
- UINT16* src = &state->m_temp_reel_bitmap->pix16(y, x);
+ UINT16* src = &m_temp_reel_bitmap->pix16(y, x);
UINT16* dst = &bitmap.pix16(y, x);
if ((src[0]&0x100)==0x000)
@@ -1096,14 +1096,14 @@ static SCREEN_UPDATE_IND16(sfbonus)
}
/* Normal Tilemap */
- state->m_tilemap->set_scrolly(0, globalyscroll );
+ m_tilemap->set_scrolly(0, globalyscroll );
for (i=0;i<64;i++)
{
int scroll;
scroll = front_rowscroll[(i*2)+0x000] | (front_rowscroll[(i*2)+0x001]<<8);
- state->m_tilemap->set_scrollx(i, scroll+globalxscroll );
+ m_tilemap->set_scrollx(i, scroll+globalxscroll );
}
- state->m_tilemap->draw(bitmap, cliprect, 0,0);
+ m_tilemap->draw(bitmap, cliprect, 0,0);
{
int y,x;
@@ -1112,7 +1112,7 @@ static SCREEN_UPDATE_IND16(sfbonus)
{
for (x=0;x<512;x++)
{
- UINT16* src = &state->m_temp_reel_bitmap->pix16(y, x);
+ UINT16* src = &m_temp_reel_bitmap->pix16(y, x);
UINT16* dst = &bitmap.pix16(y, x);
if ((src[0]&0x100)==0x100)
@@ -1122,52 +1122,52 @@ static SCREEN_UPDATE_IND16(sfbonus)
}
#if 0
popmessage("%02x %02x %02x %02x %02x %02x %02x %02x -- %02x -- %02x %02x -- %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x %02x",
- state->m_3800_regs[0],
- state->m_3800_regs[1],
- state->m_3800_regs[2],
- state->m_3800_regs[3],
- state->m_3800_regs[4],
- state->m_3800_regs[5],
- state->m_3800_regs[6],
- state->m_3800_regs[7],
- state->m_3000_regs[0],
- state->m_2801_regs[0],
- state->m_2c01_regs[0],
- state->m_vregs[8],
- state->m_vregs[0],
- state->m_vregs[10],
- state->m_vregs[11],
- state->m_vregs[12],
- state->m_vregs[13],
- state->m_vregs[14],
- state->m_vregs[15],
- state->m_vregs[16],
- state->m_vregs[17],
- state->m_vregs[18],
- state->m_vregs[19],
- state->m_vregs[20],
- state->m_vregs[21],
- state->m_vregs[22],
- state->m_vregs[23],
- state->m_vregs[24],
- state->m_vregs[25],
- state->m_vregs[26],
- state->m_vregs[27],
- state->m_vregs[28],
- state->m_vregs[29],
- state->m_vregs[30],
- state->m_vregs[31]
+ m_3800_regs[0],
+ m_3800_regs[1],
+ m_3800_regs[2],
+ m_3800_regs[3],
+ m_3800_regs[4],
+ m_3800_regs[5],
+ m_3800_regs[6],
+ m_3800_regs[7],
+ m_3000_regs[0],
+ m_2801_regs[0],
+ m_2c01_regs[0],
+ m_vregs[8],
+ m_vregs[0],
+ m_vregs[10],
+ m_vregs[11],
+ m_vregs[12],
+ m_vregs[13],
+ m_vregs[14],
+ m_vregs[15],
+ m_vregs[16],
+ m_vregs[17],
+ m_vregs[18],
+ m_vregs[19],
+ m_vregs[20],
+ m_vregs[21],
+ m_vregs[22],
+ m_vregs[23],
+ m_vregs[24],
+ m_vregs[25],
+ m_vregs[26],
+ m_vregs[27],
+ m_vregs[28],
+ m_vregs[29],
+ m_vregs[30],
+ m_vregs[31]
);
popmessage("-- %02x %02x %02x %02x %02x %02x %02x %02x",
- state->m_1800_regs[0],
- state->m_1800_regs[1],
- state->m_1800_regs[2],
- state->m_1800_regs[3],
- state->m_1800_regs[4],
- state->m_1800_regs[5],
- state->m_1800_regs[6],
- state->m_1800_regs[7]);
+ m_1800_regs[0],
+ m_1800_regs[1],
+ m_1800_regs[2],
+ m_1800_regs[3],
+ m_1800_regs[4],
+ m_1800_regs[5],
+ m_1800_regs[6],
+ m_1800_regs[7]);
#endif
ipt = screen.machine().system().ipt;
@@ -1175,22 +1175,22 @@ static SCREEN_UPDATE_IND16(sfbonus)
|| (ipt == INPUT_PORTS_NAME(amcoe2_poker)))
{
// based on pirpok2
- output_set_lamp_value(0, (state->m_1800_regs[6] & 0x1) >> 0);
- output_set_lamp_value(1, (state->m_1800_regs[6] & 0x4) >> 2);
- output_set_lamp_value(2, (state->m_1800_regs[5] & 0x4) >> 2);
- output_set_lamp_value(3, (state->m_1800_regs[5] & 0x1) >> 0);
- output_set_lamp_value(4, (state->m_1800_regs[4] & 0x4) >> 2);
- output_set_lamp_value(5, (state->m_1800_regs[4] & 0x1) >> 0);
+ output_set_lamp_value(0, (m_1800_regs[6] & 0x1) >> 0);
+ output_set_lamp_value(1, (m_1800_regs[6] & 0x4) >> 2);
+ output_set_lamp_value(2, (m_1800_regs[5] & 0x4) >> 2);
+ output_set_lamp_value(3, (m_1800_regs[5] & 0x1) >> 0);
+ output_set_lamp_value(4, (m_1800_regs[4] & 0x4) >> 2);
+ output_set_lamp_value(5, (m_1800_regs[4] & 0x1) >> 0);
}
else if ((ipt == INPUT_PORTS_NAME(amcoe1_reels3)) || (ipt == INPUT_PORTS_NAME(amcoe1_reels4))
|| (ipt == INPUT_PORTS_NAME(amcoe1_poker)))
{
- output_set_lamp_value(0, (state->m_1800_regs[0] & 0x2) >> 1);
- output_set_lamp_value(1, (state->m_1800_regs[4] & 0x2) >> 1);
- output_set_lamp_value(2, (state->m_1800_regs[3] & 0x2) >> 1);
- output_set_lamp_value(3, (state->m_1800_regs[6] & 0x4) >> 2);
- output_set_lamp_value(4, (state->m_1800_regs[4] & 0x4) >> 2);
- output_set_lamp_value(5, (state->m_1800_regs[3] & 0x4) >> 2);
+ output_set_lamp_value(0, (m_1800_regs[0] & 0x2) >> 1);
+ output_set_lamp_value(1, (m_1800_regs[4] & 0x2) >> 1);
+ output_set_lamp_value(2, (m_1800_regs[3] & 0x2) >> 1);
+ output_set_lamp_value(3, (m_1800_regs[6] & 0x4) >> 2);
+ output_set_lamp_value(4, (m_1800_regs[4] & 0x4) >> 2);
+ output_set_lamp_value(5, (m_1800_regs[3] & 0x4) >> 2);
}
return 0;
@@ -1372,7 +1372,7 @@ static MACHINE_CONFIG_START( sfbonus, sfbonus_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(128*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0*8, 288-1)
- MCFG_SCREEN_UPDATE_STATIC(sfbonus)
+ MCFG_SCREEN_UPDATE_DRIVER(sfbonus_state, screen_update_sfbonus)
MCFG_PALETTE_LENGTH(0x100*2) // *2 for priority workaraound / custom drawing
diff --git a/src/mame/drivers/shadfrce.c b/src/mame/drivers/shadfrce.c
index fe304919b97..8249c20ed89 100644
--- a/src/mame/drivers/shadfrce.c
+++ b/src/mame/drivers/shadfrce.c
@@ -565,8 +565,8 @@ static MACHINE_CONFIG_START( shadfrce, shadfrce_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 432, 0, 320, 272, 8, 248) /* HTOTAL and VTOTAL are guessed */
- MCFG_SCREEN_UPDATE_STATIC(shadfrce)
- MCFG_SCREEN_VBLANK_STATIC(shadfrce)
+ MCFG_SCREEN_UPDATE_DRIVER(shadfrce_state, screen_update_shadfrce)
+ MCFG_SCREEN_VBLANK_DRIVER(shadfrce_state, screen_eof_shadfrce)
MCFG_GFXDECODE(shadfrce)
MCFG_PALETTE_LENGTH(0x4000)
diff --git a/src/mame/drivers/shangha3.c b/src/mame/drivers/shangha3.c
index a28e7d0492b..fd7e63199be 100644
--- a/src/mame/drivers/shangha3.c
+++ b/src/mame/drivers/shangha3.c
@@ -481,7 +481,7 @@ static MACHINE_CONFIG_START( shangha3, shangha3_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(24*16, 16*16)
MCFG_SCREEN_VISIBLE_AREA(0*16, 24*16-1, 1*16, 15*16-1)
- MCFG_SCREEN_UPDATE_STATIC(shangha3)
+ MCFG_SCREEN_UPDATE_DRIVER(shangha3_state, screen_update_shangha3)
MCFG_GFXDECODE(shangha3)
MCFG_PALETTE_LENGTH(2048)
@@ -518,7 +518,7 @@ static MACHINE_CONFIG_START( heberpop, shangha3_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(24*16, 16*16)
MCFG_SCREEN_VISIBLE_AREA(0*16, 24*16-1, 1*16, 15*16-1)
- MCFG_SCREEN_UPDATE_STATIC(shangha3)
+ MCFG_SCREEN_UPDATE_DRIVER(shangha3_state, screen_update_shangha3)
MCFG_GFXDECODE(shangha3)
MCFG_PALETTE_LENGTH(2048)
@@ -556,7 +556,7 @@ static MACHINE_CONFIG_START( blocken, shangha3_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(24*16, 16*16)
MCFG_SCREEN_VISIBLE_AREA(0*16, 24*16-1, 1*16, 15*16-1)
- MCFG_SCREEN_UPDATE_STATIC(shangha3)
+ MCFG_SCREEN_UPDATE_DRIVER(shangha3_state, screen_update_shangha3)
MCFG_GFXDECODE(shangha3)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/shanghai.c b/src/mame/drivers/shanghai.c
index aaf1b64e7fe..5d048fc6810 100644
--- a/src/mame/drivers/shanghai.c
+++ b/src/mame/drivers/shanghai.c
@@ -38,6 +38,7 @@ public:
DECLARE_READ16_MEMBER(kothello_hd63484_status_r);
virtual void video_start();
DECLARE_PALETTE_INIT(shanghai);
+ UINT32 screen_update_shanghai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -75,7 +76,7 @@ void shanghai_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( shanghai )
+UINT32 shanghai_state::screen_update_shanghai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
device_t *hd63484 = screen.machine().device("hd63484");
int x, y, b, src;
@@ -452,7 +453,7 @@ static MACHINE_CONFIG_START( shanghai, shanghai_state )
MCFG_SCREEN_REFRESH_RATE(30)
MCFG_SCREEN_SIZE(384, 280)
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 280-1) // Base Screen is 384 pixel
- MCFG_SCREEN_UPDATE_STATIC(shanghai)
+ MCFG_SCREEN_UPDATE_DRIVER(shanghai_state, screen_update_shanghai)
MCFG_PALETTE_LENGTH(256)
@@ -485,7 +486,7 @@ static MACHINE_CONFIG_START( shangha2, shanghai_state )
MCFG_SCREEN_REFRESH_RATE(30)
MCFG_SCREEN_SIZE(384, 280)
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 280-1) // Base Screen is 384 pixel
- MCFG_SCREEN_UPDATE_STATIC(shanghai)
+ MCFG_SCREEN_UPDATE_DRIVER(shanghai_state, screen_update_shanghai)
MCFG_PALETTE_LENGTH(256)
@@ -522,7 +523,7 @@ static MACHINE_CONFIG_START( kothello, shanghai_state )
MCFG_SCREEN_REFRESH_RATE(30)
MCFG_SCREEN_SIZE(384, 280)
MCFG_SCREEN_VISIBLE_AREA(8, 384-1, 0, 250-1) // Base Screen is 376 pixel
- MCFG_SCREEN_UPDATE_STATIC(shanghai)
+ MCFG_SCREEN_UPDATE_DRIVER(shanghai_state, screen_update_shanghai)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/shangkid.c b/src/mame/drivers/shangkid.c
index e33ce38559c..7e851a421c5 100644
--- a/src/mame/drivers/shangkid.c
+++ b/src/mame/drivers/shangkid.c
@@ -384,7 +384,7 @@ static MACHINE_CONFIG_START( chinhero, shangkid_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(40*8, 28*8)
MCFG_SCREEN_VISIBLE_AREA(16, 319-16, 0, 223)
- MCFG_SCREEN_UPDATE_STATIC(shangkid)
+ MCFG_SCREEN_UPDATE_DRIVER(shangkid_state, screen_update_shangkid)
MCFG_GFXDECODE(chinhero)
MCFG_PALETTE_LENGTH(256)
@@ -463,7 +463,7 @@ static MACHINE_CONFIG_START( dynamski, shangkid_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256+32, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 255+32, 16, 255-16)
- MCFG_SCREEN_UPDATE_STATIC(dynamski)
+ MCFG_SCREEN_UPDATE_DRIVER(shangkid_state, screen_update_dynamski)
MCFG_GFXDECODE(dynamski)
MCFG_PALETTE_LENGTH(16*4+16*4)
diff --git a/src/mame/drivers/shaolins.c b/src/mame/drivers/shaolins.c
index 755213a7d33..b54fa3e3c6f 100644
--- a/src/mame/drivers/shaolins.c
+++ b/src/mame/drivers/shaolins.c
@@ -215,7 +215,7 @@ static MACHINE_CONFIG_START( shaolins, shaolins_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(shaolins)
+ MCFG_SCREEN_UPDATE_DRIVER(shaolins_state, screen_update_shaolins)
MCFG_GFXDECODE(shaolins)
MCFG_PALETTE_LENGTH(16*8*16+16*8*16)
diff --git a/src/mame/drivers/shisen.c b/src/mame/drivers/shisen.c
index 0f30e42f8d7..ccd3c7fb519 100644
--- a/src/mame/drivers/shisen.c
+++ b/src/mame/drivers/shisen.c
@@ -228,7 +228,7 @@ static MACHINE_CONFIG_START( shisen, shisen_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(sichuan2)
+ MCFG_SCREEN_UPDATE_DRIVER(shisen_state, screen_update_sichuan2)
MCFG_GFXDECODE(shisen)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/shootout.c b/src/mame/drivers/shootout.c
index cb5678f517a..9bf934243ba 100644
--- a/src/mame/drivers/shootout.c
+++ b/src/mame/drivers/shootout.c
@@ -276,7 +276,7 @@ static MACHINE_CONFIG_START( shootout, shootout_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(shootout)
+ MCFG_SCREEN_UPDATE_DRIVER(shootout_state, screen_update_shootout)
MCFG_GFXDECODE(shootout)
MCFG_PALETTE_LENGTH(256)
@@ -303,7 +303,7 @@ static MACHINE_CONFIG_START( shootouj, shootout_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(shootouj)
+ MCFG_SCREEN_UPDATE_DRIVER(shootout_state, screen_update_shootouj)
MCFG_GFXDECODE(shootout)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/shougi.c b/src/mame/drivers/shougi.c
index 8750846ecaf..b80f0b62d50 100644
--- a/src/mame/drivers/shougi.c
+++ b/src/mame/drivers/shougi.c
@@ -111,6 +111,7 @@ public:
DECLARE_WRITE8_MEMBER(nmi_enable_w);
DECLARE_READ8_MEMBER(dummy_r);
virtual void palette_init();
+ UINT32 screen_update_shougi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -174,9 +175,8 @@ void shougi_state::palette_init()
-static SCREEN_UPDATE_IND16( shougi )
+UINT32 shougi_state::screen_update_shougi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- shougi_state *state = screen.machine().driver_data<shougi_state>();
int offs;
for (offs = 0;offs <0x4000; offs++)
@@ -188,8 +188,8 @@ static SCREEN_UPDATE_IND16( shougi )
//if (flipscreen[0]) sx = 31 - sx;
//if (flipscreen[1]) sy = 31 - sy;
- data1 = state->m_videoram[offs]; /* color */
- data2 = state->m_videoram[0x4000 + offs]; /* pixel data */
+ data1 = m_videoram[offs]; /* color */
+ data2 = m_videoram[0x4000 + offs]; /* pixel data */
for (x=0; x<4; x++) /*4 pixels per byte (2 bitplanes in 2 nibbles: 1st=bits 7-4, 2nd=bits 3-0)*/
{
@@ -425,7 +425,7 @@ static MACHINE_CONFIG_START( shougi, shougi_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 255)
- MCFG_SCREEN_UPDATE_STATIC(shougi)
+ MCFG_SCREEN_UPDATE_DRIVER(shougi_state, screen_update_shougi)
MCFG_PALETTE_LENGTH(32)
diff --git a/src/mame/drivers/shtzone.c b/src/mame/drivers/shtzone.c
index 5abce8b90eb..419e4279bc1 100644
--- a/src/mame/drivers/shtzone.c
+++ b/src/mame/drivers/shtzone.c
@@ -58,6 +58,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_shtzone(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
static ADDRESS_MAP_START( shtzone_map, AS_PROGRAM, 8, shtzone_state )
@@ -86,7 +87,7 @@ void shtzone_state::video_start()
}
-SCREEN_UPDATE_IND16( shtzone )
+UINT32 shtzone_state::screen_update_shtzone(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
@@ -108,7 +109,7 @@ static MACHINE_CONFIG_START( shtzone, shtzone_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(shtzone)
+ MCFG_SCREEN_UPDATE_DRIVER(shtzone_state, screen_update_shtzone)
MCFG_PALETTE_LENGTH(0x100)
diff --git a/src/mame/drivers/shuuz.c b/src/mame/drivers/shuuz.c
index 3dc37b10902..948c1def5ca 100644
--- a/src/mame/drivers/shuuz.c
+++ b/src/mame/drivers/shuuz.c
@@ -276,7 +276,7 @@ static MACHINE_CONFIG_START( shuuz, shuuz_state )
/* note: these parameters are from published specs, not derived */
/* the board uses a VAD chip to generate video signals */
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(shuuz)
+ MCFG_SCREEN_UPDATE_DRIVER(shuuz_state, screen_update_shuuz)
MCFG_VIDEO_START_OVERRIDE(shuuz_state,shuuz)
diff --git a/src/mame/drivers/sidearms.c b/src/mame/drivers/sidearms.c
index bda44df88bb..91735a088d1 100644
--- a/src/mame/drivers/sidearms.c
+++ b/src/mame/drivers/sidearms.c
@@ -670,7 +670,7 @@ static MACHINE_CONFIG_START( sidearms, sidearms_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(sidearms)
+ MCFG_SCREEN_UPDATE_DRIVER(sidearms_state, screen_update_sidearms)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(sidearms)
@@ -714,7 +714,7 @@ static MACHINE_CONFIG_START( turtship, sidearms_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
- MCFG_SCREEN_UPDATE_STATIC(sidearms)
+ MCFG_SCREEN_UPDATE_DRIVER(sidearms_state, screen_update_sidearms)
MCFG_GFXDECODE(turtship)
MCFG_PALETTE_LENGTH(1024)
@@ -759,7 +759,7 @@ static MACHINE_CONFIG_START( whizz, sidearms_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(sidearms)
+ MCFG_SCREEN_UPDATE_DRIVER(sidearms_state, screen_update_sidearms)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(turtship)
diff --git a/src/mame/drivers/sidepckt.c b/src/mame/drivers/sidepckt.c
index 8b78ab63a11..df0214e1cdb 100644
--- a/src/mame/drivers/sidepckt.c
+++ b/src/mame/drivers/sidepckt.c
@@ -402,7 +402,7 @@ static MACHINE_CONFIG_START( sidepckt, sidepckt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */ /* VERIFY: May be 55 or 56 */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(sidepckt)
+ MCFG_SCREEN_UPDATE_DRIVER(sidepckt_state, screen_update_sidepckt)
MCFG_GFXDECODE(sidepckt)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/sigmab52.c b/src/mame/drivers/sigmab52.c
index b58f76176aa..105c977738c 100644
--- a/src/mame/drivers/sigmab52.c
+++ b/src/mame/drivers/sigmab52.c
@@ -149,6 +149,7 @@ public:
virtual void machine_start();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_jwildb52(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -165,7 +166,7 @@ void sigmab52_state::video_start()
}
-static SCREEN_UPDATE_IND16( jwildb52 )
+UINT32 sigmab52_state::screen_update_jwildb52(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
device_t *hd63484 = screen.machine().device("hd63484");
@@ -605,7 +606,7 @@ static MACHINE_CONFIG_START( jwildb52, sigmab52_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(1024, 1024)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 384-1)
- MCFG_SCREEN_UPDATE_STATIC(jwildb52)
+ MCFG_SCREEN_UPDATE_DRIVER(sigmab52_state, screen_update_jwildb52)
MCFG_HD63484_ADD("hd63484", jwildb52_hd63484_intf)
diff --git a/src/mame/drivers/sigmab98.c b/src/mame/drivers/sigmab98.c
index 45a1e0be29b..e8e5b38d048 100644
--- a/src/mame/drivers/sigmab98.c
+++ b/src/mame/drivers/sigmab98.c
@@ -175,6 +175,8 @@ public:
DECLARE_DRIVER_INIT(ucytokyu);
DECLARE_DRIVER_INIT(haekaka);
DECLARE_MACHINE_RESET(sammymdl);
+ UINT32 screen_update_sigmab98(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_sammymdl(screen_device &screen, bool state);
};
@@ -302,7 +304,7 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-static SCREEN_UPDATE_IND16(sigmab98)
+UINT32 sigmab98_state::screen_update_sigmab98(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int layers_ctrl = -1;
@@ -680,13 +682,12 @@ WRITE8_MEMBER(sigmab98_state::vblank_w)
m_vblank = (m_vblank & ~0x03) | (data & 0x03);
}
-static SCREEN_VBLANK( sammymdl )
+void sigmab98_state::screen_eof_sammymdl(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- sigmab98_state *state = screen.machine().driver_data<sigmab98_state>();
- state->m_vblank &= ~0x01;
+ m_vblank &= ~0x01;
}
}
@@ -1710,7 +1711,7 @@ static MACHINE_CONFIG_START( gegege, sigmab98_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // game reads vblank state
MCFG_SCREEN_SIZE(0x200, 0x200)
MCFG_SCREEN_VISIBLE_AREA(0,0x140-1, 0,0xf0-1)
- MCFG_SCREEN_UPDATE_STATIC(sigmab98)
+ MCFG_SCREEN_UPDATE_DRIVER(sigmab98_state, screen_update_sigmab98)
MCFG_GFXDECODE(sigmab98)
MCFG_PALETTE_LENGTH(0x100)
@@ -1764,8 +1765,8 @@ static MACHINE_CONFIG_START( sammymdl, sigmab98_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(0x140, 0x100)
MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xf0-1)
- MCFG_SCREEN_UPDATE_STATIC(sigmab98)
- MCFG_SCREEN_VBLANK_STATIC(sammymdl)
+ MCFG_SCREEN_UPDATE_DRIVER(sigmab98_state, screen_update_sigmab98)
+ MCFG_SCREEN_VBLANK_DRIVER(sigmab98_state, screen_eof_sammymdl)
MCFG_GFXDECODE(sigmab98)
MCFG_PALETTE_LENGTH(0x100)
diff --git a/src/mame/drivers/silkroad.c b/src/mame/drivers/silkroad.c
index 8cfb8322d21..e482c5a7448 100644
--- a/src/mame/drivers/silkroad.c
+++ b/src/mame/drivers/silkroad.c
@@ -291,7 +291,7 @@ static MACHINE_CONFIG_START( silkroad, silkroad_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(6*8+2, 64*8-1-(10*8)-2, 2*8, 32*8-1-(2*8))
- MCFG_SCREEN_UPDATE_STATIC(silkroad)
+ MCFG_SCREEN_UPDATE_DRIVER(silkroad_state, screen_update_silkroad)
MCFG_GFXDECODE(silkroad)
MCFG_PALETTE_LENGTH(0x2000)
diff --git a/src/mame/drivers/silvmil.c b/src/mame/drivers/silvmil.c
index f6750e63438..a852ac766d4 100644
--- a/src/mame/drivers/silvmil.c
+++ b/src/mame/drivers/silvmil.c
@@ -111,6 +111,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_silvmil(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -148,13 +149,12 @@ void silvmil_state::video_start()
m_fg_layer->set_transparent_pen(0);
}
-SCREEN_UPDATE_IND16( silvmil )
+UINT32 silvmil_state::screen_update_silvmil(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- silvmil_state *state = screen.machine().driver_data<silvmil_state>();
- state->m_bg_layer->draw(bitmap, cliprect, 0, 0);
- state->m_fg_layer->draw(bitmap, cliprect, 0, 0);
- screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400);
+ m_bg_layer->draw(bitmap, cliprect, 0, 0);
+ m_fg_layer->draw(bitmap, cliprect, 0, 0);
+ screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
return 0;
}
@@ -330,7 +330,7 @@ static MACHINE_CONFIG_START( silvmil, silvmil_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(silvmil)
+ MCFG_SCREEN_UPDATE_DRIVER(silvmil_state, screen_update_silvmil)
MCFG_PALETTE_LENGTH(0x300)
MCFG_GFXDECODE(silvmil)
diff --git a/src/mame/drivers/simpl156.c b/src/mame/drivers/simpl156.c
index 6f8d5f671d7..87c51f9a03a 100644
--- a/src/mame/drivers/simpl156.c
+++ b/src/mame/drivers/simpl156.c
@@ -435,7 +435,7 @@ static MACHINE_CONFIG_START( chainrec, simpl156_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(800))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(simpl156)
+ MCFG_SCREEN_UPDATE_DRIVER(simpl156_state, screen_update_simpl156)
MCFG_PALETTE_LENGTH(4096)
MCFG_GFXDECODE(simpl156)
diff --git a/src/mame/drivers/simpsons.c b/src/mame/drivers/simpsons.c
index 6117be53195..2e09a7bafe7 100644
--- a/src/mame/drivers/simpsons.c
+++ b/src/mame/drivers/simpsons.c
@@ -326,7 +326,7 @@ static MACHINE_CONFIG_START( simpsons, simpsons_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(simpsons)
+ MCFG_SCREEN_UPDATE_DRIVER(simpsons_state, screen_update_simpsons)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/skimaxx.c b/src/mame/drivers/skimaxx.c
index 8aa78bcf288..7469ff52019 100644
--- a/src/mame/drivers/skimaxx.c
+++ b/src/mame/drivers/skimaxx.c
@@ -73,6 +73,7 @@ public:
DECLARE_READ32_MEMBER(skimaxx_analog_r);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_skimaxx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -149,9 +150,9 @@ void skimaxx_state::video_start()
membank("bank1")->configure_entry(1, m_bg_buffer_front);
}
-static SCREEN_UPDATE_IND16( skimaxx )
+UINT32 skimaxx_state::screen_update_skimaxx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
-// popmessage("%02x %02x", state->ioport("X")->read(), state->ioport("Y")->read() );
+// popmessage("%02x %02x", ioport("X")->read(), ioport("Y")->read() );
SCREEN_UPDATE16_CALL(tms340x0_ind16);
@@ -542,7 +543,7 @@ static MACHINE_CONFIG_START( skimaxx, skimaxx_state )
MCFG_SCREEN_SIZE(0x400, 0x100)
MCFG_SCREEN_VISIBLE_AREA(0, 0x280-1, 0, 0xf0-1)
// MCFG_SCREEN_UPDATE_STATIC(tms340x0_ind16)
- MCFG_SCREEN_UPDATE_STATIC(skimaxx)
+ MCFG_SCREEN_UPDATE_DRIVER(skimaxx_state, screen_update_skimaxx)
// MCFG_GFXDECODE( skimaxx )
diff --git a/src/mame/drivers/skullxbo.c b/src/mame/drivers/skullxbo.c
index 2aaaed51ac9..5b0d710ebdd 100644
--- a/src/mame/drivers/skullxbo.c
+++ b/src/mame/drivers/skullxbo.c
@@ -272,7 +272,7 @@ static MACHINE_CONFIG_START( skullxbo, skullxbo_state )
/* note: these parameters are from published specs, not derived */
/* the board uses an SOS-2 chip to generate video signals */
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz, 456*2, 0, 336*2, 262, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(skullxbo)
+ MCFG_SCREEN_UPDATE_DRIVER(skullxbo_state, screen_update_skullxbo)
MCFG_VIDEO_START_OVERRIDE(skullxbo_state,skullxbo)
diff --git a/src/mame/drivers/skyarmy.c b/src/mame/drivers/skyarmy.c
index 39092d25f0c..77a46d943f4 100644
--- a/src/mame/drivers/skyarmy.c
+++ b/src/mame/drivers/skyarmy.c
@@ -53,6 +53,7 @@ public:
TILE_GET_INFO_MEMBER(get_skyarmy_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_skyarmy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
WRITE8_MEMBER(skyarmy_state::skyarmy_flip_screen_x_w)
@@ -124,17 +125,16 @@ void skyarmy_state::video_start()
}
-static SCREEN_UPDATE_IND16( skyarmy )
+UINT32 skyarmy_state::screen_update_skyarmy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- skyarmy_state *state = screen.machine().driver_data<skyarmy_state>();
- UINT8 *spriteram = state->m_spriteram;
+ UINT8 *spriteram = m_spriteram;
int sx, sy, flipx, flipy, offs,pal;
int i;
for(i=0;i<0x20;i++)
- state->m_tilemap->set_scrolly(i,state->m_scrollram[i]);
+ m_tilemap->set_scrolly(i,m_scrollram[i]);
- state->m_tilemap->draw(bitmap, cliprect, 0,0);
+ m_tilemap->draw(bitmap, cliprect, 0,0);
for (offs = 0 ; offs < 0x40; offs+=4)
{
@@ -293,7 +293,7 @@ static MACHINE_CONFIG_START( skyarmy, skyarmy_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8,32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8,32*8-1,1*8,31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(skyarmy)
+ MCFG_SCREEN_UPDATE_DRIVER(skyarmy_state, screen_update_skyarmy)
MCFG_GFXDECODE(skyarmy)
MCFG_PALETTE_LENGTH(32)
diff --git a/src/mame/drivers/skydiver.c b/src/mame/drivers/skydiver.c
index abb0068c184..cbe039a4e26 100644
--- a/src/mame/drivers/skydiver.c
+++ b/src/mame/drivers/skydiver.c
@@ -388,7 +388,7 @@ static MACHINE_CONFIG_START( skydiver, skydiver_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(skydiver)
+ MCFG_SCREEN_UPDATE_DRIVER(skydiver_state, screen_update_skydiver)
MCFG_GFXDECODE(skydiver)
MCFG_PALETTE_LENGTH(sizeof(colortable_source) / sizeof(colortable_source[0]))
diff --git a/src/mame/drivers/skyfox.c b/src/mame/drivers/skyfox.c
index ba651450f51..17f8d4f8778 100644
--- a/src/mame/drivers/skyfox.c
+++ b/src/mame/drivers/skyfox.c
@@ -252,7 +252,7 @@ static MACHINE_CONFIG_START( skyfox, skyfox_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // we're using PORT_VBLANK
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0+0x60, 320-1+0x60, 0+16, 256-1-16) // from $30*2 to $CC*2+8
- MCFG_SCREEN_UPDATE_STATIC(skyfox)
+ MCFG_SCREEN_UPDATE_DRIVER(skyfox_state, screen_update_skyfox)
MCFG_GFXDECODE(skyfox)
MCFG_PALETTE_LENGTH(256+256) /* 256 static colors (+256 for the background??) */
diff --git a/src/mame/drivers/skykid.c b/src/mame/drivers/skykid.c
index 4d9488ae873..ca0c47a5df8 100644
--- a/src/mame/drivers/skykid.c
+++ b/src/mame/drivers/skykid.c
@@ -461,7 +461,7 @@ static MACHINE_CONFIG_START( skykid, skykid_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(36*8, 28*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(skykid)
+ MCFG_SCREEN_UPDATE_DRIVER(skykid_state, screen_update_skykid)
MCFG_GFXDECODE(skykid)
MCFG_PALETTE_LENGTH(64*4+128*4+64*8)
diff --git a/src/mame/drivers/skylncr.c b/src/mame/drivers/skylncr.c
index 8acf1226370..8ef0a478c0c 100644
--- a/src/mame/drivers/skylncr.c
+++ b/src/mame/drivers/skylncr.c
@@ -108,6 +108,7 @@ public:
TILE_GET_INFO_MEMBER(get_reel_3_tile_info);
TILE_GET_INFO_MEMBER(get_reel_4_tile_info);
virtual void video_start();
+ UINT32 screen_update_skylncr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -182,13 +183,12 @@ void skylncr_state::video_start()
}
-static SCREEN_UPDATE_IND16( skylncr )
+UINT32 skylncr_state::screen_update_skylncr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- skylncr_state *state = screen.machine().driver_data<skylncr_state>();
int i;
bitmap.fill(0, cliprect);
- state->m_reel_1_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_reel_1_tilemap->draw(bitmap, cliprect, 0, 0);
// are these hardcoded, or registers?
const rectangle visible1(0*8, (20+48)*8-1, 4*8, (4+7)*8-1);
@@ -197,17 +197,17 @@ static SCREEN_UPDATE_IND16( skylncr )
for (i= 0;i < 64;i++)
{
- state->m_reel_2_tilemap->set_scrolly(i, state->m_reelscroll2[i]);
- state->m_reel_3_tilemap->set_scrolly(i, state->m_reelscroll3[i]);
- state->m_reel_4_tilemap->set_scrolly(i, state->m_reelscroll4[i]);
+ m_reel_2_tilemap->set_scrolly(i, m_reelscroll2[i]);
+ m_reel_3_tilemap->set_scrolly(i, m_reelscroll3[i]);
+ m_reel_4_tilemap->set_scrolly(i, m_reelscroll4[i]);
}
- state->m_reel_2_tilemap->draw(bitmap, visible1, 0, 0);
- state->m_reel_3_tilemap->draw(bitmap, visible2, 0, 0);
- state->m_reel_4_tilemap->draw(bitmap, visible3, 0, 0);
+ m_reel_2_tilemap->draw(bitmap, visible1, 0, 0);
+ m_reel_3_tilemap->draw(bitmap, visible2, 0, 0);
+ m_reel_4_tilemap->draw(bitmap, visible3, 0, 0);
- state->m_tmap->draw(bitmap, cliprect, 0, 0);
+ m_tmap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -726,7 +726,7 @@ static MACHINE_CONFIG_START( skylncr, skylncr_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(skylncr)
+ MCFG_SCREEN_UPDATE_DRIVER(skylncr_state, screen_update_skylncr)
MCFG_GFXDECODE(skylncr)
MCFG_PALETTE_LENGTH(0x200)
diff --git a/src/mame/drivers/skyraid.c b/src/mame/drivers/skyraid.c
index 8c87c23aeca..6abbd7de96a 100644
--- a/src/mame/drivers/skyraid.c
+++ b/src/mame/drivers/skyraid.c
@@ -229,7 +229,7 @@ static MACHINE_CONFIG_START( skyraid, skyraid_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(22 * 1000000 / 15750))
MCFG_SCREEN_SIZE(512, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(skyraid)
+ MCFG_SCREEN_UPDATE_DRIVER(skyraid_state, screen_update_skyraid)
MCFG_GFXDECODE(skyraid)
diff --git a/src/mame/drivers/slapfght.c b/src/mame/drivers/slapfght.c
index d1765c5cf7b..93ac56a61fa 100644
--- a/src/mame/drivers/slapfght.c
+++ b/src/mame/drivers/slapfght.c
@@ -767,7 +767,7 @@ static MACHINE_CONFIG_START( perfrman, slapfght_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 34*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(perfrman)
+ MCFG_SCREEN_UPDATE_DRIVER(slapfght_state, screen_update_perfrman)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(perfrman)
@@ -813,7 +813,7 @@ static MACHINE_CONFIG_START( tigerhb, slapfght_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 36*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(slapfight)
+ MCFG_SCREEN_UPDATE_DRIVER(slapfght_state, screen_update_slapfight)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(slapfght)
@@ -861,7 +861,7 @@ static MACHINE_CONFIG_START( tigerh, slapfght_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 36*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(slapfight)
+ MCFG_SCREEN_UPDATE_DRIVER(slapfght_state, screen_update_slapfight)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(slapfght)
@@ -910,7 +910,7 @@ static MACHINE_CONFIG_START( slapfigh, slapfght_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 36*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(slapfight)
+ MCFG_SCREEN_UPDATE_DRIVER(slapfght_state, screen_update_slapfight)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(slapfght)
diff --git a/src/mame/drivers/slapshot.c b/src/mame/drivers/slapshot.c
index 24c8931feb1..45c19ec7cf9 100644
--- a/src/mame/drivers/slapshot.c
+++ b/src/mame/drivers/slapshot.c
@@ -559,8 +559,8 @@ static MACHINE_CONFIG_START( slapshot, slapshot_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(slapshot)
- MCFG_SCREEN_VBLANK_STATIC(taito_no_buffer)
+ MCFG_SCREEN_UPDATE_DRIVER(slapshot_state, screen_update_slapshot)
+ MCFG_SCREEN_VBLANK_DRIVER(slapshot_state, screen_eof_taito_no_buffer)
MCFG_GFXDECODE(slapshot)
MCFG_PALETTE_LENGTH(8192)
@@ -605,8 +605,8 @@ static MACHINE_CONFIG_START( opwolf3, slapshot_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(slapshot)
- MCFG_SCREEN_VBLANK_STATIC(taito_no_buffer)
+ MCFG_SCREEN_UPDATE_DRIVER(slapshot_state, screen_update_slapshot)
+ MCFG_SCREEN_VBLANK_DRIVER(slapshot_state, screen_eof_taito_no_buffer)
MCFG_GFXDECODE(slapshot)
MCFG_PALETTE_LENGTH(8192)
diff --git a/src/mame/drivers/sliver.c b/src/mame/drivers/sliver.c
index 3120246abb1..8228b3597c7 100644
--- a/src/mame/drivers/sliver.c
+++ b/src/mame/drivers/sliver.c
@@ -113,6 +113,7 @@ public:
DECLARE_WRITE16_MEMBER(sound_w);
DECLARE_WRITE8_MEMBER(oki_setbank);
virtual void video_start();
+ UINT32 screen_update_sliver(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
static void plot_pixel_rgb(sliver_state *state, int x, int y, UINT32 r, UINT32 g, UINT32 b)
@@ -373,12 +374,11 @@ void sliver_state::video_start()
machine().primary_screen->register_screen_bitmap(m_bitmap_fg);
}
-static SCREEN_UPDATE_RGB32(sliver)
+UINT32 sliver_state::screen_update_sliver(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- sliver_state *state = screen.machine().driver_data<sliver_state>();
- copybitmap (bitmap, state->m_bitmap_bg, 0, 0, 0, 0, cliprect);
- copybitmap_trans(bitmap, state->m_bitmap_fg, 0, 0, 0, 0, cliprect, 0);
+ copybitmap (bitmap, m_bitmap_bg, 0, 0, 0, 0, cliprect);
+ copybitmap_trans(bitmap, m_bitmap_fg, 0, 0, 0, 0, cliprect, 0);
return 0;
}
@@ -486,7 +486,7 @@ static MACHINE_CONFIG_START( sliver, sliver_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 384-1-16, 0*8, 240-1)
- MCFG_SCREEN_UPDATE_STATIC(sliver)
+ MCFG_SCREEN_UPDATE_DRIVER(sliver_state, screen_update_sliver)
MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
diff --git a/src/mame/drivers/sms.c b/src/mame/drivers/sms.c
index 20931533315..8a5b36ab573 100644
--- a/src/mame/drivers/sms.c
+++ b/src/mame/drivers/sms.c
@@ -245,6 +245,7 @@ public:
virtual void video_start();
virtual void palette_init();
DECLARE_MACHINE_START(sureshot);
+ UINT32 screen_update_sms(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -480,10 +481,9 @@ void smsmfg_state::video_start()
state_save_register_global_bitmap(machine(), &m_bitmap);
}
-static SCREEN_UPDATE_IND16( sms )
+UINT32 smsmfg_state::screen_update_sms(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- smsmfg_state *state = screen.machine().driver_data<smsmfg_state>();
- copybitmap(bitmap, state->m_bitmap, 0, 0, 0, 0, cliprect);
+ copybitmap(bitmap, m_bitmap, 0, 0, 0, 0, cliprect);
return 0;
}
@@ -578,7 +578,7 @@ static MACHINE_CONFIG_START( sms, smsmfg_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x1b0, 0x100)
MCFG_SCREEN_VISIBLE_AREA(0, 0x1af, 0, 0xff)
- MCFG_SCREEN_UPDATE_STATIC(sms)
+ MCFG_SCREEN_UPDATE_DRIVER(smsmfg_state, screen_update_sms)
MCFG_PALETTE_LENGTH(8)
diff --git a/src/mame/drivers/snk.c b/src/mame/drivers/snk.c
index 02b9fc4f100..f33d7a5d16e 100644
--- a/src/mame/drivers/snk.c
+++ b/src/mame/drivers/snk.c
@@ -3645,7 +3645,7 @@ static MACHINE_CONFIG_START( marvins, snk_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(36*8, 28*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(marvins)
+ MCFG_SCREEN_UPDATE_DRIVER(snk_state, screen_update_marvins)
MCFG_GFXDECODE(marvins)
MCFG_PALETTE_LENGTH(0x400)
@@ -3714,7 +3714,7 @@ static MACHINE_CONFIG_START( jcross, snk_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(36*8, 28*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tnk3)
+ MCFG_SCREEN_UPDATE_DRIVER(snk_state, screen_update_tnk3)
MCFG_GFXDECODE(tnk3)
MCFG_PALETTE_LENGTH(0x400)
@@ -3792,7 +3792,7 @@ static MACHINE_CONFIG_START( tnk3, snk_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(36*8, 28*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tnk3)
+ MCFG_SCREEN_UPDATE_DRIVER(snk_state, screen_update_tnk3)
MCFG_GFXDECODE(tnk3)
MCFG_PALETTE_LENGTH(0x400)
@@ -3876,7 +3876,7 @@ static MACHINE_CONFIG_START( ikari, snk_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(36*8, 28*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 1*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(ikari)
+ MCFG_SCREEN_UPDATE_DRIVER(snk_state, screen_update_ikari)
MCFG_GFXDECODE(ikari)
MCFG_PALETTE_LENGTH(0x400)
@@ -3932,7 +3932,7 @@ static MACHINE_CONFIG_START( bermudat, snk_state )
// this visible area matches the psychos pcb
MCFG_SCREEN_SIZE(50*8, 28*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 50*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(gwar)
+ MCFG_SCREEN_UPDATE_DRIVER(snk_state, screen_update_gwar)
MCFG_GFXDECODE(gwar)
MCFG_PALETTE_LENGTH(0x400)
@@ -4036,7 +4036,7 @@ static MACHINE_CONFIG_START( tdfever, snk_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(50*8, 28*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 50*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tdfever)
+ MCFG_SCREEN_UPDATE_DRIVER(snk_state, screen_update_tdfever)
MCFG_GFXDECODE(tdfever)
MCFG_PALETTE_LENGTH(0x400)
diff --git a/src/mame/drivers/snk6502.c b/src/mame/drivers/snk6502.c
index 14a050ca783..c9c3365d939 100644
--- a/src/mame/drivers/snk6502.c
+++ b/src/mame/drivers/snk6502.c
@@ -835,7 +835,7 @@ static MACHINE_CONFIG_START( sasuke, snk6502_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(snk6502)
+ MCFG_SCREEN_UPDATE_DRIVER(snk6502_state, screen_update_snk6502)
MCFG_GFXDECODE(sasuke)
MCFG_PALETTE_LENGTH(32)
@@ -908,7 +908,7 @@ static MACHINE_CONFIG_START( vanguard, snk6502_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(snk6502)
+ MCFG_SCREEN_UPDATE_DRIVER(snk6502_state, screen_update_snk6502)
MCFG_GFXDECODE(vanguard)
MCFG_PALETTE_LENGTH(64)
diff --git a/src/mame/drivers/snk68.c b/src/mame/drivers/snk68.c
index 0187a0580f4..71b7a8fb17a 100644
--- a/src/mame/drivers/snk68.c
+++ b/src/mame/drivers/snk68.c
@@ -605,7 +605,7 @@ static MACHINE_CONFIG_START( pow, snk68_state )
// give a theoretical refresh rate of 59.1856Hz while the measured
// rate on a SAR board is 59.16Hz.
MCFG_SCREEN_RAW_PARAMS(XTAL_24MHz/4, 384, 0, 256, 264, 16, 240)
- MCFG_SCREEN_UPDATE_STATIC(pow)
+ MCFG_SCREEN_UPDATE_DRIVER(snk68_state, screen_update_pow)
MCFG_GFXDECODE(pow)
MCFG_PALETTE_LENGTH(0x800)
diff --git a/src/mame/drivers/snookr10.c b/src/mame/drivers/snookr10.c
index 762ba82a899..daf079f2038 100644
--- a/src/mame/drivers/snookr10.c
+++ b/src/mame/drivers/snookr10.c
@@ -701,7 +701,7 @@ static MACHINE_CONFIG_START( snookr10, snookr10_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(96*4, 30*8)
MCFG_SCREEN_VISIBLE_AREA(0*4, 96*4-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(snookr10)
+ MCFG_SCREEN_UPDATE_DRIVER(snookr10_state, screen_update_snookr10)
MCFG_GFXDECODE(snookr10)
diff --git a/src/mame/drivers/snowbros.c b/src/mame/drivers/snowbros.c
index c254e7a103c..6a741abb638 100644
--- a/src/mame/drivers/snowbros.c
+++ b/src/mame/drivers/snowbros.c
@@ -82,7 +82,7 @@ WRITE16_MEMBER(snowbros_state::snowbros_flipscreen_w)
}
-static SCREEN_UPDATE_IND16( snowbros )
+UINT32 snowbros_state::screen_update_snowbros(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
device_t *pandora = screen.machine().device("pandora");
@@ -93,10 +93,10 @@ static SCREEN_UPDATE_IND16( snowbros )
}
-static SCREEN_VBLANK( snowbros )
+void snowbros_state::screen_eof_snowbros(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
device_t *pandora = screen.machine().device("pandora");
pandora_eof(pandora);
@@ -1556,8 +1556,8 @@ static MACHINE_CONFIG_START( snowbros, snowbros_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 262)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(snowbros)
- MCFG_SCREEN_VBLANK_STATIC(snowbros)
+ MCFG_SCREEN_UPDATE_DRIVER(snowbros_state, screen_update_snowbros)
+ MCFG_SCREEN_VBLANK_DRIVER(snowbros_state, screen_eof_snowbros)
MCFG_GFXDECODE(snowbros)
MCFG_PALETTE_LENGTH(256)
@@ -1585,7 +1585,7 @@ static MACHINE_CONFIG_DERIVED( wintbob, snowbros )
/* video hardware */
MCFG_GFXDECODE(wb)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(wintbob)
+ MCFG_SCREEN_UPDATE_DRIVER(snowbros_state, screen_update_wintbob)
MCFG_SCREEN_VBLANK_NONE()
MACHINE_CONFIG_END
@@ -1666,7 +1666,7 @@ static MACHINE_CONFIG_START( honeydol, snowbros_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 262)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(honeydol)
+ MCFG_SCREEN_UPDATE_DRIVER(snowbros_state, screen_update_honeydol)
MCFG_GFXDECODE(honeydol)
MCFG_PALETTE_LENGTH(0x800/2)
@@ -1703,7 +1703,7 @@ static MACHINE_CONFIG_START( twinadv, snowbros_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 262)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(twinadv)
+ MCFG_SCREEN_UPDATE_DRIVER(snowbros_state, screen_update_twinadv)
MCFG_GFXDECODE(twinadv)
MCFG_PALETTE_LENGTH(0x100)
@@ -1775,7 +1775,7 @@ static MACHINE_CONFIG_START( snowbro3, snowbros_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(snowbro3)
+ MCFG_SCREEN_UPDATE_DRIVER(snowbros_state, screen_update_snowbro3)
MCFG_GFXDECODE(sb3)
MCFG_PALETTE_LENGTH(512)
diff --git a/src/mame/drivers/solomon.c b/src/mame/drivers/solomon.c
index d62e3b805b8..e8aecb72468 100644
--- a/src/mame/drivers/solomon.c
+++ b/src/mame/drivers/solomon.c
@@ -222,7 +222,7 @@ static MACHINE_CONFIG_START( solomon, solomon_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(solomon)
+ MCFG_SCREEN_UPDATE_DRIVER(solomon_state, screen_update_solomon)
MCFG_GFXDECODE(solomon)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/sonson.c b/src/mame/drivers/sonson.c
index 3dc6604d0ec..182b425bf51 100644
--- a/src/mame/drivers/sonson.c
+++ b/src/mame/drivers/sonson.c
@@ -256,7 +256,7 @@ static MACHINE_CONFIG_START( sonson, sonson_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(sonson)
+ MCFG_SCREEN_UPDATE_DRIVER(sonson_state, screen_update_sonson)
MCFG_GFXDECODE(sonson)
MCFG_PALETTE_LENGTH(64*4+32*8)
diff --git a/src/mame/drivers/spacefb.c b/src/mame/drivers/spacefb.c
index 7f06f0d2d46..399347abb98 100644
--- a/src/mame/drivers/spacefb.c
+++ b/src/mame/drivers/spacefb.c
@@ -345,7 +345,7 @@ static MACHINE_CONFIG_START( spacefb, spacefb_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(SPACEFB_PIXEL_CLOCK, SPACEFB_HTOTAL, SPACEFB_HBEND, SPACEFB_HBSTART, SPACEFB_VTOTAL, SPACEFB_VBEND, SPACEFB_VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(spacefb)
+ MCFG_SCREEN_UPDATE_DRIVER(spacefb_state, screen_update_spacefb)
/* audio hardware */
MCFG_FRAGMENT_ADD(spacefb_audio)
diff --git a/src/mame/drivers/spaceg.c b/src/mame/drivers/spaceg.c
index 2288c6931cb..5e4f2a8fb21 100644
--- a/src/mame/drivers/spaceg.c
+++ b/src/mame/drivers/spaceg.c
@@ -190,6 +190,7 @@ public:
DECLARE_WRITE8_MEMBER(zvideoram_w);
DECLARE_READ8_MEMBER(spaceg_colorram_r);
virtual void palette_init();
+ UINT32 screen_update_spaceg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*************************************
@@ -297,21 +298,20 @@ READ8_MEMBER(spaceg_state::spaceg_colorram_r)
}
-static SCREEN_UPDATE_IND16( spaceg )
+UINT32 spaceg_state::screen_update_spaceg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- spaceg_state *state = screen.machine().driver_data<spaceg_state>();
offs_t offs;
for (offs = 0; offs < 0x2000; offs++)
{
int i;
- UINT8 data = state->m_videoram[offs];
+ UINT8 data = m_videoram[offs];
int y = offs & 0xff;
int x = (offs >> 8) << 3;
for (i = 0; i < 8; i++)
{
- bitmap.pix16(y, x) = (data & 0x80) ? state->m_colorram[offs] : 0;
+ bitmap.pix16(y, x) = (data & 0x80) ? m_colorram[offs] : 0;
x++;
data <<= 1;
@@ -436,7 +436,7 @@ static MACHINE_CONFIG_START( spaceg, spaceg_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 255, 32, 255)
- MCFG_SCREEN_UPDATE_STATIC( spaceg )
+ MCFG_SCREEN_UPDATE_DRIVER(spaceg_state, screen_update_spaceg)
MCFG_PALETTE_LENGTH(16+128-16)
diff --git a/src/mame/drivers/spbactn.c b/src/mame/drivers/spbactn.c
index a26ce57ff4b..f6867d9a617 100644
--- a/src/mame/drivers/spbactn.c
+++ b/src/mame/drivers/spbactn.c
@@ -360,7 +360,7 @@ static MACHINE_CONFIG_START( spbactn, spbactn_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(spbactn)
+ MCFG_SCREEN_UPDATE_DRIVER(spbactn_state, screen_update_spbactn)
MCFG_GFXDECODE(spbactn)
MCFG_PALETTE_LENGTH(0x2800/2)
diff --git a/src/mame/drivers/spcforce.c b/src/mame/drivers/spcforce.c
index f2bec69e55b..6e0f442433f 100644
--- a/src/mame/drivers/spcforce.c
+++ b/src/mame/drivers/spcforce.c
@@ -279,7 +279,7 @@ static MACHINE_CONFIG_START( spcforce, spcforce_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(spcforce)
+ MCFG_SCREEN_UPDATE_DRIVER(spcforce_state, screen_update_spcforce)
MCFG_GFXDECODE(spcforce)
MCFG_PALETTE_LENGTH(sizeof(colortable_source) / sizeof(colortable_source[0]))
diff --git a/src/mame/drivers/spdodgeb.c b/src/mame/drivers/spdodgeb.c
index cd2150ea31a..08476c2d906 100644
--- a/src/mame/drivers/spdodgeb.c
+++ b/src/mame/drivers/spdodgeb.c
@@ -421,7 +421,7 @@ static MACHINE_CONFIG_START( spdodgeb, spdodgeb_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(12000000/2, 384, 0, 256, 272, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(spdodgeb)
+ MCFG_SCREEN_UPDATE_DRIVER(spdodgeb_state, screen_update_spdodgeb)
MCFG_GFXDECODE(spdodgeb)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/speedatk.c b/src/mame/drivers/speedatk.c
index 4a593880048..6e0e8f60fb3 100644
--- a/src/mame/drivers/speedatk.c
+++ b/src/mame/drivers/speedatk.c
@@ -335,7 +335,7 @@ static MACHINE_CONFIG_START( speedatk, speedatk_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(speedatk)
+ MCFG_SCREEN_UPDATE_DRIVER(speedatk_state, screen_update_speedatk)
MCFG_MC6845_ADD("crtc", H46505, MASTER_CLOCK/16, mc6845_intf) /* hand tuned to get ~60 fps */
diff --git a/src/mame/drivers/speedbal.c b/src/mame/drivers/speedbal.c
index af77aa567d3..18c055eae5d 100644
--- a/src/mame/drivers/speedbal.c
+++ b/src/mame/drivers/speedbal.c
@@ -238,7 +238,7 @@ static MACHINE_CONFIG_START( speedbal, speedbal_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(speedbal)
+ MCFG_SCREEN_UPDATE_DRIVER(speedbal_state, screen_update_speedbal)
MCFG_GFXDECODE(speedbal)
MCFG_PALETTE_LENGTH(768)
diff --git a/src/mame/drivers/speedspn.c b/src/mame/drivers/speedspn.c
index 293a9636e25..8c1ed3a8ec4 100644
--- a/src/mame/drivers/speedspn.c
+++ b/src/mame/drivers/speedspn.c
@@ -284,7 +284,7 @@ static MACHINE_CONFIG_START( speedspn, speedspn_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, 56*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(speedspn)
+ MCFG_SCREEN_UPDATE_DRIVER(speedspn_state, screen_update_speedspn)
MCFG_GFXDECODE(speedspn)
MCFG_PALETTE_LENGTH(0x400)
diff --git a/src/mame/drivers/speglsht.c b/src/mame/drivers/speglsht.c
index 33f64131653..3c86405eabb 100644
--- a/src/mame/drivers/speglsht.c
+++ b/src/mame/drivers/speglsht.c
@@ -133,6 +133,7 @@ public:
DECLARE_DRIVER_INIT(speglsht);
DECLARE_MACHINE_RESET(speglsht);
DECLARE_VIDEO_START(speglsht);
+ UINT32 screen_update_speglsht(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -348,30 +349,29 @@ VIDEO_START_MEMBER(speglsht_state,speglsht)
bitmap.pix32(y, x) = (b) | ((g)<<8) | ((r)<<16); \
}
-static SCREEN_UPDATE_RGB32(speglsht)
+UINT32 speglsht_state::screen_update_speglsht(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- speglsht_state *state = screen.machine().driver_data<speglsht_state>();
int x,y,dy;
- dy=(state->m_videoreg&0x20)?(256*512):0; //visible frame
+ dy=(m_videoreg&0x20)?(256*512):0; //visible frame
for(y=0;y<256;y++)
{
for(x=0;x<512;x++)
{
int tmp=dy+y*512+x;
- PLOT_PIXEL_RGB(x-67,y-5,(state->m_framebuffer[tmp]>>0)&0xff,(state->m_framebuffer[tmp]>>8)&0xff,(state->m_framebuffer[tmp]>>16)&0xff);
+ PLOT_PIXEL_RGB(x-67,y-5,(m_framebuffer[tmp]>>0)&0xff,(m_framebuffer[tmp]>>8)&0xff,(m_framebuffer[tmp]>>16)&0xff);
}
}
//draw st0016 gfx to temporary bitmap (indexed 16)
- state->m_bitmap->fill(0);
- st0016_draw_screen(screen, *state->m_bitmap, cliprect);
+ m_bitmap->fill(0);
+ st0016_draw_screen(screen, *m_bitmap, cliprect);
//copy temporary bitmap to rgb 32 bit bitmap
for(y=cliprect.min_y; y<cliprect.max_y;y++)
{
- UINT16 *srcline = &state->m_bitmap->pix16(y);
+ UINT16 *srcline = &m_bitmap->pix16(y);
for(x=cliprect.min_x; x<cliprect.max_x;x++)
{
if(srcline[x])
@@ -407,7 +407,7 @@ static MACHINE_CONFIG_START( speglsht, speglsht_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 512)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 8, 239-8)
- MCFG_SCREEN_UPDATE_STATIC(speglsht)
+ MCFG_SCREEN_UPDATE_DRIVER(speglsht_state, screen_update_speglsht)
MCFG_GFXDECODE(speglsht)
MCFG_PALETTE_LENGTH(16*16*4+1)
diff --git a/src/mame/drivers/splash.c b/src/mame/drivers/splash.c
index f0b031b9039..ea6cb645086 100644
--- a/src/mame/drivers/splash.c
+++ b/src/mame/drivers/splash.c
@@ -508,7 +508,7 @@ static MACHINE_CONFIG_START( splash, splash_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(2*8, 48*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(splash)
+ MCFG_SCREEN_UPDATE_DRIVER(splash_state, screen_update_splash)
MCFG_GFXDECODE(splash)
MCFG_PALETTE_LENGTH(2048)
@@ -565,7 +565,7 @@ static MACHINE_CONFIG_START( roldfrog, splash_state )
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(2*8, 48*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(splash)
+ MCFG_SCREEN_UPDATE_DRIVER(splash_state, screen_update_splash)
MCFG_GFXDECODE(splash)
MCFG_PALETTE_LENGTH(2048)
@@ -644,7 +644,7 @@ static MACHINE_CONFIG_START( funystrp, splash_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(funystrp)
+ MCFG_SCREEN_UPDATE_DRIVER(splash_state, screen_update_funystrp)
MCFG_GFXDECODE(splash)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/spoker.c b/src/mame/drivers/spoker.c
index 18562595628..a62c47dd2d5 100644
--- a/src/mame/drivers/spoker.c
+++ b/src/mame/drivers/spoker.c
@@ -58,6 +58,7 @@ public:
TILE_GET_INFO_MEMBER(get_fg_tile_info);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_spoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
WRITE8_MEMBER(spoker_state::bg_tile_w)
@@ -101,13 +102,12 @@ void spoker_state::video_start()
m_fg_tilemap->set_transparent_pen(0);
}
-static SCREEN_UPDATE_IND16(spoker)
+UINT32 spoker_state::screen_update_spoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- spoker_state *state = screen.machine().driver_data<spoker_state>();
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -543,7 +543,7 @@ static MACHINE_CONFIG_START( spoker, spoker_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(spoker)
+ MCFG_SCREEN_UPDATE_DRIVER(spoker_state, screen_update_spoker)
MCFG_GFXDECODE(spoker)
MCFG_PALETTE_LENGTH(0x400)
diff --git a/src/mame/drivers/spool99.c b/src/mame/drivers/spool99.c
index ea130b61147..2483e48fc74 100644
--- a/src/mame/drivers/spool99.c
+++ b/src/mame/drivers/spool99.c
@@ -117,6 +117,7 @@ public:
DECLARE_DRIVER_INIT(spool99);
TILE_GET_INFO_MEMBER(get_spool99_tile_info);
virtual void video_start();
+ UINT32 screen_update_spool99(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
TILE_GET_INFO_MEMBER(spool99_state::get_spool99_tile_info)
@@ -137,11 +138,10 @@ void spool99_state::video_start()
m_sc0_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(spool99_state::get_spool99_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 64, 32);
}
-static SCREEN_UPDATE_IND16(spool99)
+UINT32 spool99_state::screen_update_spool99(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- spool99_state *state = screen.machine().driver_data<spool99_state>();
- state->m_sc0_tilemap->draw(bitmap, cliprect, 0,0);
+ m_sc0_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
@@ -361,7 +361,7 @@ static MACHINE_CONFIG_START( spool99, spool99_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(7*8, 55*8-1, 1*8, 31*8-1) //384x240,raw guess
- MCFG_SCREEN_UPDATE_STATIC(spool99)
+ MCFG_SCREEN_UPDATE_DRIVER(spool99_state, screen_update_spool99)
MCFG_PALETTE_LENGTH(0x200)
diff --git a/src/mame/drivers/sprcros2.c b/src/mame/drivers/sprcros2.c
index ab0e6cccd63..e7eb7007fa3 100644
--- a/src/mame/drivers/sprcros2.c
+++ b/src/mame/drivers/sprcros2.c
@@ -297,7 +297,7 @@ static MACHINE_CONFIG_START( sprcros2, sprcros2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(sprcros2)
+ MCFG_SCREEN_UPDATE_DRIVER(sprcros2_state, screen_update_sprcros2)
MCFG_GFXDECODE(sprcros2)
MCFG_PALETTE_LENGTH(768)
diff --git a/src/mame/drivers/sprint2.c b/src/mame/drivers/sprint2.c
index 1ab98d5cd22..b4bf7e9c06d 100644
--- a/src/mame/drivers/sprint2.c
+++ b/src/mame/drivers/sprint2.c
@@ -507,8 +507,8 @@ static MACHINE_CONFIG_START( sprint2, sprint2_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(512, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 223)
- MCFG_SCREEN_UPDATE_STATIC(sprint2)
- MCFG_SCREEN_VBLANK_STATIC(sprint2)
+ MCFG_SCREEN_UPDATE_DRIVER(sprint2_state, screen_update_sprint2)
+ MCFG_SCREEN_VBLANK_DRIVER(sprint2_state, screen_eof_sprint2)
MCFG_GFXDECODE(sprint2)
MCFG_PALETTE_LENGTH(12)
diff --git a/src/mame/drivers/sprint4.c b/src/mame/drivers/sprint4.c
index 7f906f3529a..0c28a4940be 100644
--- a/src/mame/drivers/sprint4.c
+++ b/src/mame/drivers/sprint4.c
@@ -404,8 +404,8 @@ static MACHINE_CONFIG_START( sprint4, sprint4_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, 0, 256, VTOTAL, 0, 224)
- MCFG_SCREEN_UPDATE_STATIC(sprint4)
- MCFG_SCREEN_VBLANK_STATIC(sprint4)
+ MCFG_SCREEN_UPDATE_DRIVER(sprint4_state, screen_update_sprint4)
+ MCFG_SCREEN_VBLANK_DRIVER(sprint4_state, screen_eof_sprint4)
MCFG_GFXDECODE(sprint4)
MCFG_PALETTE_LENGTH(10)
diff --git a/src/mame/drivers/sprint8.c b/src/mame/drivers/sprint8.c
index 81ad80c662b..d26b8c84429 100644
--- a/src/mame/drivers/sprint8.c
+++ b/src/mame/drivers/sprint8.c
@@ -463,8 +463,8 @@ static MACHINE_CONFIG_START( sprint8, sprint8_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(512, 261)
MCFG_SCREEN_VISIBLE_AREA(0, 495, 0, 231)
- MCFG_SCREEN_UPDATE_STATIC(sprint8)
- MCFG_SCREEN_VBLANK_STATIC(sprint8)
+ MCFG_SCREEN_UPDATE_DRIVER(sprint8_state, screen_update_sprint8)
+ MCFG_SCREEN_VBLANK_DRIVER(sprint8_state, screen_eof_sprint8)
MCFG_GFXDECODE(sprint8)
MCFG_PALETTE_LENGTH(36)
diff --git a/src/mame/drivers/spy.c b/src/mame/drivers/spy.c
index fb4090239da..919893995d0 100644
--- a/src/mame/drivers/spy.c
+++ b/src/mame/drivers/spy.c
@@ -547,7 +547,7 @@ static MACHINE_CONFIG_START( spy, spy_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(spy)
+ MCFG_SCREEN_UPDATE_DRIVER(spy_state, screen_update_spy)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/srmp2.c b/src/mame/drivers/srmp2.c
index 5d9dd7b5786..f629badac10 100644
--- a/src/mame/drivers/srmp2.c
+++ b/src/mame/drivers/srmp2.c
@@ -1179,7 +1179,7 @@ static MACHINE_CONFIG_START( srmp2, srmp2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(464, 256-16)
MCFG_SCREEN_VISIBLE_AREA(16, 464-1, 8, 256-1-24)
- MCFG_SCREEN_UPDATE_STATIC(srmp2) /* just draw the sprites */
+ MCFG_SCREEN_UPDATE_DRIVER(srmp2_state, screen_update_srmp2)
MCFG_GFXDECODE(srmp2)
MCFG_PALETTE_LENGTH(1024) /* sprites only */
@@ -1220,7 +1220,7 @@ static MACHINE_CONFIG_START( srmp3, srmp2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(400, 256-16)
MCFG_SCREEN_VISIBLE_AREA(16, 400-1, 8, 256-1-24)
- MCFG_SCREEN_UPDATE_STATIC(srmp3) /* just draw the sprites */
+ MCFG_SCREEN_UPDATE_DRIVER(srmp2_state, screen_update_srmp3)
MCFG_GFXDECODE(srmp3)
MCFG_PALETTE_LENGTH(512) /* sprites only */
@@ -1270,7 +1270,7 @@ static MACHINE_CONFIG_START( mjyuugi, srmp2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(400, 256-16)
MCFG_SCREEN_VISIBLE_AREA(16, 400-1, 0, 256-1-16)
- MCFG_SCREEN_UPDATE_STATIC(mjyuugi) /* just draw the sprites */
+ MCFG_SCREEN_UPDATE_DRIVER(srmp2_state, screen_update_mjyuugi)
MCFG_GFXDECODE(srmp3)
MCFG_PALETTE_LENGTH(512) /* sprites only */
diff --git a/src/mame/drivers/srmp5.c b/src/mame/drivers/srmp5.c
index 86e53487180..ec2abe85204 100644
--- a/src/mame/drivers/srmp5.c
+++ b/src/mame/drivers/srmp5.c
@@ -102,22 +102,22 @@ public:
DECLARE_READ8_MEMBER(cmd2_r);
DECLARE_READ8_MEMBER(cmd_stat8_r);
DECLARE_DRIVER_INIT(srmp5);
+ UINT32 screen_update_srmp5(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
-static SCREEN_UPDATE_RGB32( srmp5 )
+UINT32 srmp5_state::screen_update_srmp5(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- srmp5_state *state = screen.machine().driver_data<srmp5_state>();
int x,y,address,xs,xs2,ys,ys2,height,width,xw,yw,xb,yb,sizex,sizey;
- UINT16 *sprite_list=state->m_sprram;
- UINT16 *sprite_list_end=&state->m_sprram[0x4000]; //guess
- UINT8 *pixels=(UINT8 *)state->m_tileram;
+ UINT16 *sprite_list=m_sprram;
+ UINT16 *sprite_list_end=&m_sprram[0x4000]; //guess
+ UINT8 *pixels=(UINT8 *)m_tileram;
//Table surface seems to be tiles, but display corrupts when switching the scene if always ON.
//Currently the tiles are OFF.
#ifdef BG_ENABLE
- UINT8 tile_width = (state->m_vidregs[2] >> 0) & 0xFF;
- UINT8 tile_height = (state->m_vidregs[2] >> 8) & 0xFF;
+ UINT8 tile_width = (m_vidregs[2] >> 0) & 0xFF;
+ UINT8 tile_height = (m_vidregs[2] >> 8) & 0xFF;
if(tile_width && tile_height)
{
// 16x16 tile
@@ -137,7 +137,7 @@ static SCREEN_UPDATE_RGB32( srmp5 )
UINT8 pen = pixels[address];
if(pen)
{
- UINT16 pixdata=state->m_palram[pen];
+ UINT16 pixdata=m_palram[pen];
bitmap.pix32(yw * 16 + y, xw * 16 + x) = ((pixdata&0x7c00)>>7) | ((pixdata&0x3e0)<<6) | ((pixdata&0x1f)<<19);
}
address++;
@@ -152,7 +152,7 @@ static SCREEN_UPDATE_RGB32( srmp5 )
while((sprite_list[SUBLIST_OFFSET]&SPRITE_LIST_END_MARKER)==0 && sprite_list<sprite_list_end)
{
- UINT16 *sprite_sublist=&state->m_sprram[sprite_list[SUBLIST_OFFSET]<<SUBLIST_OFFSET_SHIFT];
+ UINT16 *sprite_sublist=&m_sprram[sprite_list[SUBLIST_OFFSET]<<SUBLIST_OFFSET_SHIFT];
UINT16 sublist_length=sprite_list[SUBLIST_LENGTH];
INT16 global_x,global_y;
@@ -189,7 +189,7 @@ static SCREEN_UPDATE_RGB32( srmp5 )
{
if(cliprect.contains(xb+xs2, yb+ys2))
{
- UINT16 pixdata=state->m_palram[pen+((sprite_sublist[SPRITE_PALETTE]&0xff)<<8)];
+ UINT16 pixdata=m_palram[pen+((sprite_sublist[SPRITE_PALETTE]&0xff)<<8)];
bitmap.pix32(yb+ys2, xb+xs2) = ((pixdata&0x7c00)>>7) | ((pixdata&0x3e0)<<6) | ((pixdata&0x1f)<<19);
}
}
@@ -210,10 +210,10 @@ static SCREEN_UPDATE_RGB32( srmp5 )
int i;
for(i = 0; i < 0x2000; i++)
{
- if (state->m_tileduty[i] == 1)
+ if (m_tileduty[i] == 1)
{
screen.machine().gfx[0]->decode(i);
- state->m_tileduty[i] = 0;
+ m_tileduty[i] = 0;
}
}
}
@@ -573,7 +573,7 @@ static MACHINE_CONFIG_START( srmp5, srmp5_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(96*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 42*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(srmp5)
+ MCFG_SCREEN_UPDATE_DRIVER(srmp5_state, screen_update_srmp5)
MCFG_PALETTE_LENGTH(0x1800)
#ifdef DEBUG_CHAR
diff --git a/src/mame/drivers/srmp6.c b/src/mame/drivers/srmp6.c
index 4de22ae59f4..f4248f16f04 100644
--- a/src/mame/drivers/srmp6.c
+++ b/src/mame/drivers/srmp6.c
@@ -105,6 +105,7 @@ public:
DECLARE_READ16_MEMBER(srmp6_irq_ack_r);
DECLARE_DRIVER_INIT(INIT);
virtual void video_start();
+ UINT32 screen_update_srmp6(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
#define VERBOSE 0
@@ -172,12 +173,11 @@ void srmp6_state::video_start()
static int xixi=0;
#endif
-static SCREEN_UPDATE_RGB32(srmp6)
+UINT32 srmp6_state::screen_update_srmp6(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- srmp6_state *state = screen.machine().driver_data<srmp6_state>();
int alpha;
int x,y,tileno,height,width,xw,yw,sprite,xb,yb;
- UINT16 *sprite_list = state->m_sprram_old;
+ UINT16 *sprite_list = m_sprram_old;
UINT16 mainlist_offset = 0;
union
@@ -207,7 +207,7 @@ static SCREEN_UPDATE_RGB32(srmp6)
while (mainlist_offset<0x2000/2)
{
- UINT16 *sprite_sublist = &state->m_sprram_old[sprite_list[mainlist_offset+1]<<3];
+ UINT16 *sprite_sublist = &m_sprram_old[sprite_list[mainlist_offset+1]<<3];
UINT16 sublist_length=sprite_list[mainlist_offset+0]&0x7fff; //+1 ?
INT16 global_x,global_y, flip_x, flip_y;
UINT16 global_pal;
@@ -285,12 +285,12 @@ static SCREEN_UPDATE_RGB32(srmp6)
mainlist_offset+=8;
}
- memcpy(state->m_sprram_old, state->m_sprram, 0x80000);
+ memcpy(m_sprram_old, m_sprram, 0x80000);
if(screen.machine().input().code_pressed_once(KEYCODE_Q))
{
FILE *p=fopen("tileram.bin","wb");
- fwrite(state->m_tileram, 1, 0x100000*16, p);
+ fwrite(m_tileram, 1, 0x100000*16, p);
fclose(p);
}
@@ -681,7 +681,7 @@ static MACHINE_CONFIG_START( srmp6, srmp6_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 42*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(srmp6)
+ MCFG_SCREEN_UPDATE_DRIVER(srmp6_state, screen_update_srmp6)
MCFG_PALETTE_LENGTH(0x800)
diff --git a/src/mame/drivers/srumbler.c b/src/mame/drivers/srumbler.c
index 2330139b6bd..ed993146de5 100644
--- a/src/mame/drivers/srumbler.c
+++ b/src/mame/drivers/srumbler.c
@@ -254,7 +254,7 @@ static MACHINE_CONFIG_START( srumbler, srumbler_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(10*8, (64-10)*8-1, 1*8, 31*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(srumbler)
+ MCFG_SCREEN_UPDATE_DRIVER(srumbler_state, screen_update_srumbler)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(srumbler)
diff --git a/src/mame/drivers/ssfindo.c b/src/mame/drivers/ssfindo.c
index 324d1d2219f..7626ed74e9e 100644
--- a/src/mame/drivers/ssfindo.c
+++ b/src/mame/drivers/ssfindo.c
@@ -246,6 +246,7 @@ public:
DECLARE_DRIVER_INIT(ppcar);
DECLARE_DRIVER_INIT(tetfight);
virtual void machine_reset();
+ UINT32 screen_update_ssfindo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -253,24 +254,23 @@ static void PS7500_startTimer0(running_machine &machine);
static void PS7500_startTimer1(running_machine &machine);
-static SCREEN_UPDATE_IND16(ssfindo)
+UINT32 ssfindo_state::screen_update_ssfindo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ssfindo_state *state = screen.machine().driver_data<ssfindo_state>();
int s,x,y;
- if( state->m_PS7500_IO[VIDCR]&0x20) //video DMA enabled
+ if( m_PS7500_IO[VIDCR]&0x20) //video DMA enabled
{
- s=( (state->m_PS7500_IO[VIDINITA]&0x1fffffff)-0x10000000)/4;
+ s=( (m_PS7500_IO[VIDINITA]&0x1fffffff)-0x10000000)/4;
if(s>=0 && s<(0x10000000/4))
{
for(y=0;y<256;y++)
for(x=0;x<320;x+=4)
{
- bitmap.pix16(y, x+0) = state->m_vram[s]&0xff;
- bitmap.pix16(y, x+1) = (state->m_vram[s]>>8)&0xff;
- bitmap.pix16(y, x+2) = (state->m_vram[s]>>16)&0xff;
- bitmap.pix16(y, x+3) = (state->m_vram[s]>>24)&0xff;
+ bitmap.pix16(y, x+0) = m_vram[s]&0xff;
+ bitmap.pix16(y, x+1) = (m_vram[s]>>8)&0xff;
+ bitmap.pix16(y, x+2) = (m_vram[s]>>16)&0xff;
+ bitmap.pix16(y, x+3) = (m_vram[s]>>24)&0xff;
s++;
}
}
@@ -765,7 +765,7 @@ static MACHINE_CONFIG_START( ssfindo, ssfindo_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(320, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(ssfindo)
+ MCFG_SCREEN_UPDATE_DRIVER(ssfindo_state, screen_update_ssfindo)
MCFG_PALETTE_LENGTH(256)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/sshangha.c b/src/mame/drivers/sshangha.c
index 3091e19dcd0..5201d733b36 100644
--- a/src/mame/drivers/sshangha.c
+++ b/src/mame/drivers/sshangha.c
@@ -408,7 +408,7 @@ static MACHINE_CONFIG_START( sshangha, sshangha_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(sshangha)
+ MCFG_SCREEN_UPDATE_DRIVER(sshangha_state, screen_update_sshangha)
MCFG_GFXDECODE(sshangha)
MCFG_PALETTE_LENGTH(0x4000)
diff --git a/src/mame/drivers/sshot.c b/src/mame/drivers/sshot.c
index fe78f4720e6..eeff6398fb9 100644
--- a/src/mame/drivers/sshot.c
+++ b/src/mame/drivers/sshot.c
@@ -174,6 +174,7 @@ public:
TILE_GET_INFO_MEMBER(get_supershot_text_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_supershot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*************************************
@@ -194,10 +195,9 @@ void supershot_state::video_start()
m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(supershot_state::get_supershot_text_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
-static SCREEN_UPDATE_IND16( supershot )
+UINT32 supershot_state::screen_update_supershot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- supershot_state *state = screen.machine().driver_data<supershot_state>();
- state->m_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -340,7 +340,7 @@ static MACHINE_CONFIG_START( supershot, supershot_state )
MCFG_SCREEN_SIZE((32)*8, (32)*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(supershot)
+ MCFG_SCREEN_UPDATE_DRIVER(supershot_state, screen_update_supershot)
MCFG_GFXDECODE(supershot)
MCFG_PALETTE_LENGTH(2)
diff --git a/src/mame/drivers/sslam.c b/src/mame/drivers/sslam.c
index 4028a9ab7aa..1c5771d51b8 100644
--- a/src/mame/drivers/sslam.c
+++ b/src/mame/drivers/sslam.c
@@ -718,7 +718,7 @@ static MACHINE_CONFIG_START( sslam, sslam_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 39*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(sslam)
+ MCFG_SCREEN_UPDATE_DRIVER(sslam_state, screen_update_sslam)
MCFG_GFXDECODE(sslam)
MCFG_PALETTE_LENGTH(0x800)
@@ -748,7 +748,7 @@ static MACHINE_CONFIG_START( powerbls, sslam_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(powerbls)
+ MCFG_SCREEN_UPDATE_DRIVER(sslam_state, screen_update_powerbls)
MCFG_GFXDECODE(powerbls)
MCFG_PALETTE_LENGTH(0x200)
diff --git a/src/mame/drivers/ssozumo.c b/src/mame/drivers/ssozumo.c
index 32ef4ff0931..ae425aeea87 100644
--- a/src/mame/drivers/ssozumo.c
+++ b/src/mame/drivers/ssozumo.c
@@ -205,7 +205,7 @@ static MACHINE_CONFIG_START( ssozumo, ssozumo_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8 - 1, 1*8, 31*8 - 1)
- MCFG_SCREEN_UPDATE_STATIC(ssozumo)
+ MCFG_SCREEN_UPDATE_DRIVER(ssozumo_state, screen_update_ssozumo)
MCFG_GFXDECODE(ssozumo)
MCFG_PALETTE_LENGTH(64 + 16)
diff --git a/src/mame/drivers/sspeedr.c b/src/mame/drivers/sspeedr.c
index ad634b25afc..c042cef3361 100644
--- a/src/mame/drivers/sspeedr.c
+++ b/src/mame/drivers/sspeedr.c
@@ -198,8 +198,8 @@ static MACHINE_CONFIG_START( sspeedr, sspeedr_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(16 * 1000000 / 15680))
MCFG_SCREEN_SIZE(376, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 375, 0, 247)
- MCFG_SCREEN_UPDATE_STATIC(sspeedr)
- MCFG_SCREEN_VBLANK_STATIC(sspeedr)
+ MCFG_SCREEN_UPDATE_DRIVER(sspeedr_state, screen_update_sspeedr)
+ MCFG_SCREEN_VBLANK_DRIVER(sspeedr_state, screen_eof_sspeedr)
MCFG_GFXDECODE(sspeedr)
MCFG_PALETTE_LENGTH(16)
diff --git a/src/mame/drivers/ssrj.c b/src/mame/drivers/ssrj.c
index b1a9b9de83d..42942673c22 100644
--- a/src/mame/drivers/ssrj.c
+++ b/src/mame/drivers/ssrj.c
@@ -152,8 +152,8 @@ static MACHINE_CONFIG_START( ssrj, ssrj_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 34*8-1, 1*8, 31*8-1) // unknown res
- MCFG_SCREEN_UPDATE_STATIC(ssrj)
- MCFG_SCREEN_VBLANK_STATIC(ssrj)
+ MCFG_SCREEN_UPDATE_DRIVER(ssrj_state, screen_update_ssrj)
+ MCFG_SCREEN_VBLANK_DRIVER(ssrj_state, screen_eof_ssrj)
MCFG_GFXDECODE(ssrj)
MCFG_PALETTE_LENGTH(128)
diff --git a/src/mame/drivers/sstrangr.c b/src/mame/drivers/sstrangr.c
index b096b85a443..67d6823847d 100644
--- a/src/mame/drivers/sstrangr.c
+++ b/src/mame/drivers/sstrangr.c
@@ -24,6 +24,8 @@ public:
UINT8 m_flip_screen;
UINT8 *m_proms;
DECLARE_WRITE8_MEMBER(port_w);
+ UINT32 screen_update_sstrangr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_sstrngr2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -34,9 +36,8 @@ public:
*
*************************************/
-static SCREEN_UPDATE_RGB32( sstrangr )
+UINT32 sstrangr_state::screen_update_sstrangr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- sstrangr_state *state = screen.machine().driver_data<sstrangr_state>();
offs_t offs;
for (offs = 0; offs < 0x2000; offs++)
@@ -45,13 +46,13 @@ static SCREEN_UPDATE_RGB32( sstrangr )
UINT8 x = offs << 3;
int y = offs >> 5;
- UINT8 data = state->m_ram[offs];
+ UINT8 data = m_ram[offs];
for (i = 0; i < 8; i++)
{
pen_t pen;
- if (state->m_flip_screen)
+ if (m_flip_screen)
{
pen = (data & 0x80) ? RGB_WHITE : RGB_BLACK;
data = data << 1;
@@ -83,16 +84,15 @@ static void get_pens(pen_t *pens)
}
-static SCREEN_UPDATE_RGB32( sstrngr2 )
+UINT32 sstrangr_state::screen_update_sstrngr2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- sstrangr_state *state = screen.machine().driver_data<sstrangr_state>();
pen_t pens[NUM_PENS];
offs_t offs;
UINT8 *color_map_base;
get_pens(pens);
- color_map_base = &state->memregion("proms")->base()[state->m_flip_screen ? 0x0000 : 0x0200];
+ color_map_base = &memregion("proms")->base()[m_flip_screen ? 0x0000 : 0x0200];
for (offs = 0; offs < 0x2000; offs++)
{
@@ -103,14 +103,14 @@ static SCREEN_UPDATE_RGB32( sstrngr2 )
offs_t color_address = (offs >> 9 << 5) | (offs & 0x1f);
- UINT8 data = state->m_ram[offs];
+ UINT8 data = m_ram[offs];
UINT8 fore_color = color_map_base[color_address] & 0x07;
for (i = 0; i < 8; i++)
{
UINT8 color;
- if (state->m_flip_screen)
+ if (m_flip_screen)
{
color = (data & 0x80) ? fore_color : 0;
data = data << 1;
@@ -204,7 +204,7 @@ static MACHINE_CONFIG_START( sstrangr, sstrangr_state )
MCFG_SCREEN_SIZE(32*8, 262) /* vert size is a guess, taken from mw8080bw */
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 4*8, 32*8-1)
MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_UPDATE_STATIC(sstrangr)
+ MCFG_SCREEN_UPDATE_DRIVER(sstrangr_state, screen_update_sstrangr)
/* sound hardware */
@@ -267,7 +267,7 @@ static MACHINE_CONFIG_DERIVED( sstrngr2, sstrangr )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(sstrngr2)
+ MCFG_SCREEN_UPDATE_DRIVER(sstrangr_state, screen_update_sstrngr2)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/ssv.c b/src/mame/drivers/ssv.c
index 00dc16110d5..210fbb4c4de 100644
--- a/src/mame/drivers/ssv.c
+++ b/src/mame/drivers/ssv.c
@@ -2610,7 +2610,7 @@ static MACHINE_CONFIG_START( ssv, ssv_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(0x1c6, 0x106)
MCFG_SCREEN_VISIBLE_AREA(0, 0x150-1, 0, 0xf0-1)
- MCFG_SCREEN_UPDATE_STATIC(ssv)
+ MCFG_SCREEN_UPDATE_DRIVER(ssv_state, screen_update_ssv)
MCFG_GFXDECODE(ssv)
MCFG_PALETTE_LENGTH(0x8000)
@@ -2658,7 +2658,7 @@ static MACHINE_CONFIG_DERIVED( gdfs, ssv )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0, (0xd5-0x2c)*2-1, 0, (0x102-0x12)-1)
- MCFG_SCREEN_UPDATE_STATIC(gdfs)
+ MCFG_SCREEN_UPDATE_DRIVER(ssv_state, screen_update_gdfs)
MCFG_DEVICE_ADD("st0020_spr", ST0020_SPRITES, 0)
@@ -2838,7 +2838,7 @@ static MACHINE_CONFIG_DERIVED( eaglshot, ssv )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_VISIBLE_AREA(0, (0xca - 0x2a)*2-1, 0, (0xf6 - 0x16)-1)
- MCFG_SCREEN_UPDATE_STATIC(eaglshot)
+ MCFG_SCREEN_UPDATE_DRIVER(ssv_state, screen_update_eaglshot)
MCFG_GFXDECODE(eaglshot)
MCFG_VIDEO_START_OVERRIDE(ssv_state,eaglshot)
diff --git a/src/mame/drivers/st0016.c b/src/mame/drivers/st0016.c
index b174b7bcac1..74a86886b2d 100644
--- a/src/mame/drivers/st0016.c
+++ b/src/mame/drivers/st0016.c
@@ -454,7 +454,7 @@ static MACHINE_CONFIG_START( st0016, st0016_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(48*8, 48*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 0*8, 48*8-1)
- MCFG_SCREEN_UPDATE_STATIC(st0016)
+ MCFG_SCREEN_UPDATE_DRIVER(st0016_state, screen_update_st0016)
MCFG_GFXDECODE(st0016)
MCFG_PALETTE_LENGTH(16*16*4+1)
diff --git a/src/mame/drivers/stadhero.c b/src/mame/drivers/stadhero.c
index f24e0e3921e..3baa5082868 100644
--- a/src/mame/drivers/stadhero.c
+++ b/src/mame/drivers/stadhero.c
@@ -240,7 +240,7 @@ static MACHINE_CONFIG_START( stadhero, stadhero_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(stadhero)
+ MCFG_SCREEN_UPDATE_DRIVER(stadhero_state, screen_update_stadhero)
MCFG_GFXDECODE(stadhero)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/starcrus.c b/src/mame/drivers/starcrus.c
index d4dd189127c..7488ac11971 100644
--- a/src/mame/drivers/starcrus.c
+++ b/src/mame/drivers/starcrus.c
@@ -148,7 +148,7 @@ static MACHINE_CONFIG_START( starcrus, starcrus_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(starcrus)
+ MCFG_SCREEN_UPDATE_DRIVER(starcrus_state, screen_update_starcrus)
MCFG_GFXDECODE(starcrus)
MCFG_PALETTE_LENGTH(2)
diff --git a/src/mame/drivers/starfire.c b/src/mame/drivers/starfire.c
index f0499e632be..924756e3015 100644
--- a/src/mame/drivers/starfire.c
+++ b/src/mame/drivers/starfire.c
@@ -268,7 +268,7 @@ static MACHINE_CONFIG_START( starfire, starfire_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(STARFIRE_PIXEL_CLOCK, STARFIRE_HTOTAL, STARFIRE_HBEND, STARFIRE_HBSTART, STARFIRE_VTOTAL, STARFIRE_VBEND, STARFIRE_VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(starfire)
+ MCFG_SCREEN_UPDATE_DRIVER(starfire_state, screen_update_starfire)
/* audio hardware */
diff --git a/src/mame/drivers/starshp1.c b/src/mame/drivers/starshp1.c
index c5c6c1e4283..279c5502828 100644
--- a/src/mame/drivers/starshp1.c
+++ b/src/mame/drivers/starshp1.c
@@ -306,8 +306,8 @@ static MACHINE_CONFIG_START( starshp1, starshp1_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(STARSHP1_PIXEL_CLOCK, STARSHP1_HTOTAL, STARSHP1_HBEND, STARSHP1_HBSTART, STARSHP1_VTOTAL, STARSHP1_VBEND, STARSHP1_VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(starshp1)
- MCFG_SCREEN_VBLANK_STATIC(starshp1)
+ MCFG_SCREEN_UPDATE_DRIVER(starshp1_state, screen_update_starshp1)
+ MCFG_SCREEN_VBLANK_DRIVER(starshp1_state, screen_eof_starshp1)
MCFG_GFXDECODE(starshp1)
MCFG_PALETTE_LENGTH(19)
diff --git a/src/mame/drivers/statriv2.c b/src/mame/drivers/statriv2.c
index d73b8b482ed..659152cf539 100644
--- a/src/mame/drivers/statriv2.c
+++ b/src/mame/drivers/statriv2.c
@@ -109,6 +109,7 @@ public:
virtual void video_start();
virtual void palette_init();
DECLARE_VIDEO_START(vertical);
+ UINT32 screen_update_statriv2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -191,13 +192,12 @@ WRITE8_MEMBER(statriv2_state::statriv2_videoram_w)
*
*************************************/
-static SCREEN_UPDATE_IND16( statriv2 )
+UINT32 statriv2_state::screen_update_statriv2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- statriv2_state *state = screen.machine().driver_data<statriv2_state>();
if (tms9927_screen_reset(screen.machine().device("tms")))
bitmap.fill(get_black_pen(screen.machine()), cliprect);
else
- state->m_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -612,7 +612,7 @@ static MACHINE_CONFIG_START( statriv2, statriv2_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 384, 0, 320, 270, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(statriv2)
+ MCFG_SCREEN_UPDATE_DRIVER(statriv2_state, screen_update_statriv2)
MCFG_TMS9927_ADD("tms", MASTER_CLOCK/2, tms9927_intf)
diff --git a/src/mame/drivers/stfight.c b/src/mame/drivers/stfight.c
index 841ea911e86..65104628944 100644
--- a/src/mame/drivers/stfight.c
+++ b/src/mame/drivers/stfight.c
@@ -451,7 +451,7 @@ static MACHINE_CONFIG_START( stfight, stfight_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(stfight)
+ MCFG_SCREEN_UPDATE_DRIVER(stfight_state, screen_update_stfight)
MCFG_GFXDECODE(stfight)
MCFG_PALETTE_LENGTH(16*4+16*16+16*16+16*16)
diff --git a/src/mame/drivers/stlforce.c b/src/mame/drivers/stlforce.c
index 40e0c00a2ec..8b88b4131a3 100644
--- a/src/mame/drivers/stlforce.c
+++ b/src/mame/drivers/stlforce.c
@@ -201,7 +201,7 @@ static MACHINE_CONFIG_START( stlforce, stlforce_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 47*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(stlforce)
+ MCFG_SCREEN_UPDATE_DRIVER(stlforce_state, screen_update_stlforce)
MCFG_GFXDECODE(stlforce)
MCFG_PALETTE_LENGTH(0x800)
diff --git a/src/mame/drivers/strnskil.c b/src/mame/drivers/strnskil.c
index e4b5ee0c14f..420363be2d8 100644
--- a/src/mame/drivers/strnskil.c
+++ b/src/mame/drivers/strnskil.c
@@ -367,7 +367,7 @@ static MACHINE_CONFIG_START( strnskil, strnskil_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8+3*8, 32*8+3*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(strnskil)
+ MCFG_SCREEN_UPDATE_DRIVER(strnskil_state, screen_update_strnskil)
MCFG_GFXDECODE(strnskil)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/sub.c b/src/mame/drivers/sub.c
index be67bc11cc4..4eedb6ed0ba 100644
--- a/src/mame/drivers/sub.c
+++ b/src/mame/drivers/sub.c
@@ -133,15 +133,15 @@ public:
DECLARE_WRITE8_MEMBER(nmi_mask_w);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_sub(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
void sub_state::video_start()
{
}
-static SCREEN_UPDATE_IND16(sub)
+UINT32 sub_state::screen_update_sub(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- sub_state *state = screen.machine().driver_data<sub_state>();
gfx_element *gfx = screen.machine().gfx[0];
gfx_element *gfx_1 = screen.machine().gfx[1];
int y,x;
@@ -151,12 +151,12 @@ static SCREEN_UPDATE_IND16(sub)
{
for (x=0;x<32;x++)
{
- UINT16 tile = state->m_vid[count];
+ UINT16 tile = m_vid[count];
UINT8 col;
- UINT8 y_offs = state->m_scrolly[x];
+ UINT8 y_offs = m_scrolly[x];
- tile += (state->m_attr[count]&0xe0)<<3;
- col = (state->m_attr[count]&0x1f);
+ tile += (m_attr[count]&0xe0)<<3;
+ col = (m_attr[count]&0x1f);
drawgfx_opaque(bitmap,cliprect,gfx,tile,col+0x40,0,0,x*8,(y*8)-y_offs);
drawgfx_opaque(bitmap,cliprect,gfx,tile,col+0x40,0,0,x*8,(y*8)-y_offs+256);
@@ -177,8 +177,8 @@ static SCREEN_UPDATE_IND16(sub)
1 --cc cccc color
*/
{
- UINT8 *spriteram = state->m_spriteram;
- UINT8 *spriteram_2 = state->m_spriteram2;
+ UINT8 *spriteram = m_spriteram;
+ UINT8 *spriteram_2 = m_spriteram2;
UINT8 x,y,spr_offs,i,col,fx,fy;
for(i=0;i<0x40;i+=2)
@@ -202,12 +202,12 @@ static SCREEN_UPDATE_IND16(sub)
{
for (x=0;x<32;x++)
{
- UINT16 tile = state->m_vid[count];
+ UINT16 tile = m_vid[count];
UINT8 col;
- UINT8 y_offs = state->m_scrolly[x];
+ UINT8 y_offs = m_scrolly[x];
- tile += (state->m_attr[count]&0xe0)<<3;
- col = (state->m_attr[count]&0x1f);
+ tile += (m_attr[count]&0xe0)<<3;
+ col = (m_attr[count]&0x1f);
if(x >= 28)
{
@@ -446,7 +446,7 @@ static MACHINE_CONFIG_START( sub, sub_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(sub)
+ MCFG_SCREEN_UPDATE_DRIVER(sub_state, screen_update_sub)
MCFG_GFXDECODE(sub)
MCFG_PALETTE_LENGTH(0x400)
diff --git a/src/mame/drivers/subs.c b/src/mame/drivers/subs.c
index 2fb06c05a46..d963d855d4e 100644
--- a/src/mame/drivers/subs.c
+++ b/src/mame/drivers/subs.c
@@ -192,14 +192,14 @@ static MACHINE_CONFIG_START( subs, subs_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(subs_left)
+ MCFG_SCREEN_UPDATE_DRIVER(subs_state, screen_update_subs_left)
MCFG_SCREEN_ADD("rscreen", RASTER)
MCFG_SCREEN_REFRESH_RATE(57)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(subs_right)
+ MCFG_SCREEN_UPDATE_DRIVER(subs_state, screen_update_subs_right)
/* sound hardware */
diff --git a/src/mame/drivers/subsino.c b/src/mame/drivers/subsino.c
index 8f0c8a3b693..a60743fd8b5 100644
--- a/src/mame/drivers/subsino.c
+++ b/src/mame/drivers/subsino.c
@@ -306,6 +306,9 @@ public:
DECLARE_PALETTE_INIT(subsino_3proms);
DECLARE_VIDEO_START(subsino_reels);
DECLARE_VIDEO_START(stisub);
+ UINT32 screen_update_subsino(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_subsino_reels(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_stisub_reels(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -483,77 +486,74 @@ VIDEO_START_MEMBER(subsino_state,stisub)
}
-static SCREEN_UPDATE_IND16( subsino )
+UINT32 subsino_state::screen_update_subsino(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- subsino_state *state = screen.machine().driver_data<subsino_state>();
bitmap.fill(0, cliprect);
- state->m_tmap->draw(bitmap, cliprect, 0, 0);
+ m_tmap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-static SCREEN_UPDATE_IND16( subsino_reels )
+UINT32 subsino_state::screen_update_subsino_reels(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- subsino_state *state = screen.machine().driver_data<subsino_state>();
int i;
bitmap.fill(0, cliprect);
for (i= 0;i < 64;i++)
{
- state->m_reel1_tilemap->set_scrolly(i, state->m_reel1_scroll[i]);
- state->m_reel2_tilemap->set_scrolly(i, state->m_reel2_scroll[i]);
- state->m_reel3_tilemap->set_scrolly(i, state->m_reel3_scroll[i]);
+ m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i]);
+ m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i]);
+ m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i]);
}
- if (state->m_out_c&0x08)
+ if (m_out_c&0x08)
{
// are these hardcoded, or registers?
const rectangle visible1(0*8, (14+48)*8-1, 4*8, (4+7)*8-1);
const rectangle visible2(0*8, (14+48)*8-1, 10*8, (10+7)*8-1);
const rectangle visible3(0*8, (14+48)*8-1, 18*8, (18+7)*8-1);
- state->m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
- state->m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
- state->m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
+ m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
+ m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
+ m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
}
- state->m_tmap->draw(bitmap, cliprect, 0, 0);
+ m_tmap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-static SCREEN_UPDATE_IND16( stisub_reels )
+UINT32 subsino_state::screen_update_stisub_reels(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- subsino_state *state = screen.machine().driver_data<subsino_state>();
int i;
bitmap.fill(0, cliprect);
- if (state->m_reel1_attr)
+ if (m_reel1_attr)
{
- state->m_reel1_tilemap->mark_all_dirty();
- state->m_reel2_tilemap->mark_all_dirty();
- state->m_reel3_tilemap->mark_all_dirty();
+ m_reel1_tilemap->mark_all_dirty();
+ m_reel2_tilemap->mark_all_dirty();
+ m_reel3_tilemap->mark_all_dirty();
}
for (i= 0;i < 64;i++)
{
- state->m_reel1_tilemap->set_scrolly(i, state->m_reel1_scroll[i]);
- state->m_reel2_tilemap->set_scrolly(i, state->m_reel2_scroll[i]);
- state->m_reel3_tilemap->set_scrolly(i, state->m_reel3_scroll[i]);
+ m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i]);
+ m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i]);
+ m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i]);
}
- if (state->m_out_c&0x08)
+ if (m_out_c&0x08)
{
// areas based on d-up game in attract mode
const rectangle visible1(0, 511, 0, 87);
const rectangle visible2(0, 511, 88, 143);
const rectangle visible3(0, 511, 144, 223);
- state->m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
- state->m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
- state->m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
+ m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
+ m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
+ m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
}
- state->m_tmap->draw(bitmap, cliprect, 0, 0);
+ m_tmap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -2657,7 +2657,7 @@ static MACHINE_CONFIG_START( victor21, subsino_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(subsino)
+ MCFG_SCREEN_UPDATE_DRIVER(subsino_state, screen_update_subsino)
MCFG_GFXDECODE(subsino_depth3)
@@ -2697,7 +2697,7 @@ static MACHINE_CONFIG_START( crsbingo, subsino_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(subsino)
+ MCFG_SCREEN_UPDATE_DRIVER(subsino_state, screen_update_subsino)
MCFG_GFXDECODE(subsino_depth4)
@@ -2726,7 +2726,7 @@ static MACHINE_CONFIG_START( srider, subsino_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(subsino)
+ MCFG_SCREEN_UPDATE_DRIVER(subsino_state, screen_update_subsino)
MCFG_GFXDECODE(subsino_depth4)
@@ -2765,7 +2765,7 @@ static MACHINE_CONFIG_START( tisub, subsino_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(subsino_reels)
+ MCFG_SCREEN_UPDATE_DRIVER(subsino_state, screen_update_subsino_reels)
MCFG_GFXDECODE(subsino_depth4_reels)
@@ -2793,7 +2793,7 @@ static MACHINE_CONFIG_START( stisub, subsino_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0+16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(stisub_reels)
+ MCFG_SCREEN_UPDATE_DRIVER(subsino_state, screen_update_stisub_reels)
MCFG_GFXDECODE(subsino_stisub)
diff --git a/src/mame/drivers/subsino2.c b/src/mame/drivers/subsino2.c
index 358521fde37..98e93fe730f 100644
--- a/src/mame/drivers/subsino2.c
+++ b/src/mame/drivers/subsino2.c
@@ -165,6 +165,7 @@ public:
DECLARE_VIDEO_START(mtrain);
DECLARE_MACHINE_RESET(am188em);
DECLARE_VIDEO_START(xtrain);
+ UINT32 screen_update_subsino2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -631,10 +632,9 @@ VIDEO_START_MEMBER(subsino2_state,xtrain)
m_ss9601_reelrects[2].set(0, 0, 0x18*8, 256-16-1);
}
-static SCREEN_UPDATE_IND16( subsino2 )
+UINT32 subsino2_state::screen_update_subsino2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- subsino2_state *state = screen.machine().driver_data<subsino2_state>();
- int layers_ctrl = ~state->m_ss9601_disable;
+ int layers_ctrl = ~m_ss9601_disable;
int y;
#ifdef MAME_DEBUG
@@ -650,7 +650,7 @@ static SCREEN_UPDATE_IND16( subsino2 )
// Line Scroll / Reel Control
int mask_y[2] = {0, 0};
bool l0_reel = false;
- switch ( state->m_ss9601_scrollctrl )
+ switch ( m_ss9601_scrollctrl )
{
case 0xbf:
mask_y[0] = ~(32-1);
@@ -669,7 +669,7 @@ static SCREEN_UPDATE_IND16( subsino2 )
// Scroll
for (int i = 0; i < 2; i++)
{
- layer_t *l = &state->m_layers[i];
+ layer_t *l = &m_layers[i];
l->tmap->set_scroll_cols(1);
l->tmap->set_scroll_rows(0x200);
@@ -691,7 +691,7 @@ static SCREEN_UPDATE_IND16( subsino2 )
if (layers_ctrl & 1)
{
- layer_t *l = &state->m_layers[0];
+ layer_t *l = &m_layers[0];
if (l0_reel)
{
@@ -700,7 +700,7 @@ static SCREEN_UPDATE_IND16( subsino2 )
for (int r = 0; r < 3; r++)
{
- rectangle visible = state->m_ss9601_reelrects[r];
+ rectangle visible = m_ss9601_reelrects[r];
for (int x = 0; x < 0x40; x++)
{
@@ -708,7 +708,7 @@ static SCREEN_UPDATE_IND16( subsino2 )
visible.max_x = 8 * (x+1) - 1;
int reeladdr = (visible.min_y / 0x10) * 0x80 + x;
- UINT16 reelscroll = (state->m_ss9601_reelrams[VRAM_HI][reeladdr] << 8) + state->m_ss9601_reelrams[VRAM_LO][reeladdr];
+ UINT16 reelscroll = (m_ss9601_reelrams[VRAM_HI][reeladdr] << 8) + m_ss9601_reelrams[VRAM_LO][reeladdr];
l->tmap->set_scrollx(0, (reelscroll >> 9) * 8 + l->scroll_x - visible.min_x);
@@ -746,9 +746,9 @@ static SCREEN_UPDATE_IND16( subsino2 )
}
}
- if (layers_ctrl & 2) state->m_layers[1].tmap->draw(bitmap, cliprect, 0, 0);
+ if (layers_ctrl & 2) m_layers[1].tmap->draw(bitmap, cliprect, 0, 0);
-// popmessage("scrl: %03x,%03x - %03x,%03x dis: %02x siz: %02x ctrl: %02x", state->m_layers[0].scroll_x,state->m_layers[0].scroll_y, state->m_layers[1].scroll_x,state->m_layers[1].scroll_y, state->m_ss9601_disable, state->m_ss9601_tilesize, state->m_ss9601_scrollctrl);
+// popmessage("scrl: %03x,%03x - %03x,%03x dis: %02x siz: %02x ctrl: %02x", m_layers[0].scroll_x,m_layers[0].scroll_y, m_layers[1].scroll_x,m_layers[1].scroll_y, m_ss9601_disable, m_ss9601_tilesize, m_ss9601_scrollctrl);
return 0;
}
@@ -2188,7 +2188,7 @@ static MACHINE_CONFIG_START( bishjan, subsino2_state )
MCFG_SCREEN_SIZE( 512, 256 )
MCFG_SCREEN_VISIBLE_AREA( 0, 512-1, 0, 256-16-1 )
MCFG_SCREEN_REFRESH_RATE( 60 )
- MCFG_SCREEN_UPDATE_STATIC( subsino2 )
+ MCFG_SCREEN_UPDATE_DRIVER(subsino2_state, screen_update_subsino2)
MCFG_GFXDECODE( ss9601 )
MCFG_PALETTE_LENGTH( 256 )
@@ -2216,7 +2216,7 @@ static MACHINE_CONFIG_START( mtrain, subsino2_state )
MCFG_SCREEN_VISIBLE_AREA( 0, 512-1, 0, 256-32-1 )
MCFG_SCREEN_REFRESH_RATE( 58.7270 )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // game reads vblank state
- MCFG_SCREEN_UPDATE_STATIC( subsino2 )
+ MCFG_SCREEN_UPDATE_DRIVER(subsino2_state, screen_update_subsino2)
MCFG_GFXDECODE( ss9601 )
MCFG_PALETTE_LENGTH( 256 )
@@ -2249,7 +2249,7 @@ static MACHINE_CONFIG_START( saklove, subsino2_state )
MCFG_SCREEN_VISIBLE_AREA( 0, 512-1, 0, 256-16-1 )
MCFG_SCREEN_REFRESH_RATE( 58.7270 )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // game reads vblank state
- MCFG_SCREEN_UPDATE_STATIC( subsino2 )
+ MCFG_SCREEN_UPDATE_DRIVER(subsino2_state, screen_update_subsino2)
MCFG_GFXDECODE( ss9601 )
MCFG_PALETTE_LENGTH( 256 )
@@ -2286,7 +2286,7 @@ static MACHINE_CONFIG_START( xplan, subsino2_state )
MCFG_SCREEN_VISIBLE_AREA( 0, 512-1, 0, 256-16-1 )
MCFG_SCREEN_REFRESH_RATE( 58.7270 )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // game reads vblank state
- MCFG_SCREEN_UPDATE_STATIC( subsino2 )
+ MCFG_SCREEN_UPDATE_DRIVER(subsino2_state, screen_update_subsino2)
MCFG_GFXDECODE( ss9601 )
MCFG_PALETTE_LENGTH( 256 )
diff --git a/src/mame/drivers/summit.c b/src/mame/drivers/summit.c
index dbdd5626013..513e45ba2ec 100644
--- a/src/mame/drivers/summit.c
+++ b/src/mame/drivers/summit.c
@@ -32,6 +32,7 @@ public:
DECLARE_WRITE8_MEMBER(out_w);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_summit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -39,9 +40,8 @@ void summit_state::video_start()
{
}
-static SCREEN_UPDATE_IND16(summit)
+UINT32 summit_state::screen_update_summit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- summit_state *state = screen.machine().driver_data<summit_state>();
gfx_element *gfx = screen.machine().gfx[0];
int count = 0x0000;
@@ -52,7 +52,7 @@ static SCREEN_UPDATE_IND16(summit)
{
for (x=0;x<32;x++)
{
- int tile = (state->m_vram[count] | ((state->m_attr[count]&1)<<8) );
+ int tile = (m_vram[count] | ((m_attr[count]&1)<<8) );
drawgfx_opaque(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*8);
count++;
@@ -308,7 +308,7 @@ static MACHINE_CONFIG_START( summit, summit_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(summit)
+ MCFG_SCREEN_UPDATE_DRIVER(summit_state, screen_update_summit)
MCFG_GFXDECODE(summit)
diff --git a/src/mame/drivers/suna16.c b/src/mame/drivers/suna16.c
index becf170a4c8..a2aa2ccf72c 100644
--- a/src/mame/drivers/suna16.c
+++ b/src/mame/drivers/suna16.c
@@ -791,7 +791,7 @@ static MACHINE_CONFIG_START( bssoccer, suna16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(suna16)
+ MCFG_SCREEN_UPDATE_DRIVER(suna16_state, screen_update_suna16)
MCFG_GFXDECODE(suna16)
MCFG_PALETTE_LENGTH(512)
@@ -849,7 +849,7 @@ static MACHINE_CONFIG_START( uballoon, suna16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(suna16)
+ MCFG_SCREEN_UPDATE_DRIVER(suna16_state, screen_update_suna16)
MCFG_GFXDECODE(suna16)
MCFG_PALETTE_LENGTH(512)
@@ -897,7 +897,7 @@ static MACHINE_CONFIG_START( sunaq, suna16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(suna16)
+ MCFG_SCREEN_UPDATE_DRIVER(suna16_state, screen_update_suna16)
MCFG_GFXDECODE(suna16)
MCFG_PALETTE_LENGTH(512)
@@ -963,7 +963,7 @@ static MACHINE_CONFIG_START( bestbest, suna16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(bestbest)
+ MCFG_SCREEN_UPDATE_DRIVER(suna16_state, screen_update_bestbest)
MCFG_GFXDECODE(bestbest)
MCFG_PALETTE_LENGTH(256*8)
diff --git a/src/mame/drivers/suna8.c b/src/mame/drivers/suna8.c
index 9143442f2ee..2e0e2f0f904 100644
--- a/src/mame/drivers/suna8.c
+++ b/src/mame/drivers/suna8.c
@@ -1637,7 +1637,7 @@ static MACHINE_CONFIG_START( hardhead, suna8_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(suna8)
+ MCFG_SCREEN_UPDATE_DRIVER(suna8_state, screen_update_suna8)
MCFG_GFXDECODE(suna8)
MCFG_PALETTE_LENGTH(256)
@@ -1701,7 +1701,7 @@ static MACHINE_CONFIG_START( rranger, suna8_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(suna8)
+ MCFG_SCREEN_UPDATE_DRIVER(suna8_state, screen_update_suna8)
MCFG_GFXDECODE(suna8)
MCFG_PALETTE_LENGTH(256)
@@ -1780,7 +1780,7 @@ static MACHINE_CONFIG_START( brickzn, suna8_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) // we're using PORT_VBLANK
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(suna8)
+ MCFG_SCREEN_UPDATE_DRIVER(suna8_state, screen_update_suna8)
MCFG_GFXDECODE(suna8)
MCFG_PALETTE_LENGTH(256 * 2) // 2 x Palette RAM
@@ -1881,7 +1881,7 @@ static MACHINE_CONFIG_START( starfigh, suna8_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(suna8)
+ MCFG_SCREEN_UPDATE_DRIVER(suna8_state, screen_update_suna8)
MCFG_GFXDECODE(suna8)
MCFG_PALETTE_LENGTH(256)
@@ -1928,7 +1928,7 @@ static MACHINE_CONFIG_START( sparkman, suna8_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0+16, 256-16-1)
- MCFG_SCREEN_UPDATE_STATIC(suna8)
+ MCFG_SCREEN_UPDATE_DRIVER(suna8_state, screen_update_suna8)
MCFG_GFXDECODE(suna8)
MCFG_PALETTE_LENGTH(512)
diff --git a/src/mame/drivers/supbtime.c b/src/mame/drivers/supbtime.c
index 51fe59e5af3..54f6f8e3926 100644
--- a/src/mame/drivers/supbtime.c
+++ b/src/mame/drivers/supbtime.c
@@ -357,7 +357,7 @@ static MACHINE_CONFIG_START( supbtime, supbtime_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(supbtime)
+ MCFG_SCREEN_UPDATE_DRIVER(supbtime_state, screen_update_supbtime)
MCFG_GFXDECODE(supbtime)
MCFG_PALETTE_LENGTH(1024)
@@ -398,7 +398,7 @@ static MACHINE_CONFIG_START( chinatwn, supbtime_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(supbtime)
+ MCFG_SCREEN_UPDATE_DRIVER(supbtime_state, screen_update_supbtime)
MCFG_GFXDECODE(supbtime)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/supdrapo.c b/src/mame/drivers/supdrapo.c
index 0a330f69f3b..7520f7267c8 100644
--- a/src/mame/drivers/supdrapo.c
+++ b/src/mame/drivers/supdrapo.c
@@ -90,6 +90,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_supdrapo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -102,9 +103,8 @@ void supdrapo_state::video_start()
}
-static SCREEN_UPDATE_IND16( supdrapo )
+UINT32 supdrapo_state::screen_update_supdrapo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- supdrapo_state *state = screen.machine().driver_data<supdrapo_state>();
int x, y;
int count;
int color;
@@ -115,9 +115,9 @@ static SCREEN_UPDATE_IND16( supdrapo )
{
for(x = 0; x < 32; x++)
{
- int tile = state->m_videoram[count] + state->m_char_bank[count] * 0x100;
+ int tile = m_videoram[count] + m_char_bank[count] * 0x100;
/* Global Column Coloring, GUESS! */
- color = state->m_col_line[(x*2) + 1] ? (state->m_col_line[(x*2) + 1] - 1) & 7 : 0;
+ color = m_col_line[(x*2) + 1] ? (m_col_line[(x*2) + 1] - 1) & 7 : 0;
drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], tile,color, 0, 0, x*8, y*8);
@@ -456,7 +456,7 @@ static MACHINE_CONFIG_START( supdrapo, supdrapo_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(supdrapo)
+ MCFG_SCREEN_UPDATE_DRIVER(supdrapo_state, screen_update_supdrapo)
MCFG_GFXDECODE(supdrapo)
MCFG_PALETTE_LENGTH(0x100)
diff --git a/src/mame/drivers/superchs.c b/src/mame/drivers/superchs.c
index cf9dbfc43a9..79b4e19baba 100644
--- a/src/mame/drivers/superchs.c
+++ b/src/mame/drivers/superchs.c
@@ -344,7 +344,7 @@ static MACHINE_CONFIG_START( superchs, superchs_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(superchs)
+ MCFG_SCREEN_UPDATE_DRIVER(superchs_state, screen_update_superchs)
MCFG_GFXDECODE(superchs)
MCFG_PALETTE_LENGTH(8192)
diff --git a/src/mame/drivers/superdq.c b/src/mame/drivers/superdq.c
index ce3f39fccb1..80dc0183d13 100644
--- a/src/mame/drivers/superdq.c
+++ b/src/mame/drivers/superdq.c
@@ -51,6 +51,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_superdq(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
TILE_GET_INFO_MEMBER(superdq_state::get_tile_info)
@@ -66,11 +67,10 @@ void superdq_state::video_start()
m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(superdq_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
-static SCREEN_UPDATE_RGB32( superdq )
+UINT32 superdq_state::screen_update_superdq(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- superdq_state *state = screen.machine().driver_data<superdq_state>();
- state->m_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -349,7 +349,7 @@ static MACHINE_CONFIG_START( superdq, superdq_state )
MCFG_LASERDISC_LDV1000_ADD("laserdisc")
- MCFG_LASERDISC_OVERLAY_STATIC(256, 256, superdq)
+ MCFG_LASERDISC_OVERLAY_DRIVER(256, 256, superdq_state, screen_update_superdq)
/* video hardware */
MCFG_LASERDISC_SCREEN_ADD_NTSC("screen", "laserdisc")
diff --git a/src/mame/drivers/superqix.c b/src/mame/drivers/superqix.c
index 44938140d19..d38bb74198e 100644
--- a/src/mame/drivers/superqix.c
+++ b/src/mame/drivers/superqix.c
@@ -1014,7 +1014,7 @@ static MACHINE_CONFIG_START( pbillian, superqix_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pbillian)
+ MCFG_SCREEN_UPDATE_DRIVER(superqix_state, screen_update_pbillian)
MCFG_GFXDECODE(pbillian)
MCFG_PALETTE_LENGTH(512)
@@ -1048,7 +1048,7 @@ static MACHINE_CONFIG_START( hotsmash, superqix_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pbillian)
+ MCFG_SCREEN_UPDATE_DRIVER(superqix_state, screen_update_pbillian)
MCFG_GFXDECODE(pbillian)
MCFG_PALETTE_LENGTH(512)
@@ -1086,7 +1086,7 @@ static MACHINE_CONFIG_START( sqix, superqix_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(superqix)
+ MCFG_SCREEN_UPDATE_DRIVER(superqix_state, screen_update_superqix)
MCFG_GFXDECODE(sqix)
MCFG_PALETTE_LENGTH(256)
@@ -1129,7 +1129,7 @@ static MACHINE_CONFIG_START( sqixbl, superqix_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(superqix)
+ MCFG_SCREEN_UPDATE_DRIVER(superqix_state, screen_update_superqix)
MCFG_GFXDECODE(sqix)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/supertnk.c b/src/mame/drivers/supertnk.c
index c199cb03093..2ef653f7e4d 100644
--- a/src/mame/drivers/supertnk.c
+++ b/src/mame/drivers/supertnk.c
@@ -125,6 +125,7 @@ public:
DECLARE_DRIVER_INIT(supertnk);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_supertnk(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -245,9 +246,8 @@ WRITE8_MEMBER(supertnk_state::supertnk_bitplane_select_1_w)
}
-static SCREEN_UPDATE_RGB32( supertnk )
+UINT32 supertnk_state::screen_update_supertnk(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- supertnk_state *state = screen.machine().driver_data<supertnk_state>();
offs_t offs;
for (offs = 0; offs < 0x2000; offs++)
@@ -257,14 +257,14 @@ static SCREEN_UPDATE_RGB32( supertnk )
UINT8 y = offs >> 5;
UINT8 x = offs << 3;
- UINT8 data0 = state->m_videoram[0][offs];
- UINT8 data1 = state->m_videoram[1][offs];
- UINT8 data2 = state->m_videoram[2][offs];
+ UINT8 data0 = m_videoram[0][offs];
+ UINT8 data1 = m_videoram[1][offs];
+ UINT8 data2 = m_videoram[2][offs];
for (i = 0; i < 8; i++)
{
UINT8 color = ((data0 & 0x80) >> 5) | ((data1 & 0x80) >> 6) | ((data2 & 0x80) >> 7);
- bitmap.pix32(y, x) = state->m_pens[color];
+ bitmap.pix32(y, x) = m_pens[color];
data0 = data0 << 1;
data1 = data1 << 1;
@@ -439,7 +439,7 @@ static MACHINE_CONFIG_START( supertnk, supertnk_state )
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_UPDATE_STATIC(supertnk)
+ MCFG_SCREEN_UPDATE_DRIVER(supertnk_state, screen_update_supertnk)
/* audio hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/superwng.c b/src/mame/drivers/superwng.c
index e54e73b2ae3..de54f01846c 100644
--- a/src/mame/drivers/superwng.c
+++ b/src/mame/drivers/superwng.c
@@ -73,6 +73,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_superwng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
TILE_GET_INFO_MEMBER(superwng_state::get_bg_tile_info)
@@ -112,22 +113,21 @@ void superwng_state::video_start()
m_bg_tilemap->set_scrollx(0, 64);
}
-static SCREEN_UPDATE_IND16( superwng )
+UINT32 superwng_state::screen_update_superwng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- superwng_state *state = screen.machine().driver_data<superwng_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
rectangle tmp = cliprect;
- if (state->flip_screen())
+ if (flip_screen())
{
tmp.min_x += 32;
- state->m_fg_tilemap->draw(bitmap, tmp, 0, 0);
+ m_fg_tilemap->draw(bitmap, tmp, 0, 0);
}
else
{
tmp.max_x -= 32;
- state->m_fg_tilemap->draw(bitmap, tmp, 0, 0);
+ m_fg_tilemap->draw(bitmap, tmp, 0, 0);
}
//sprites
@@ -143,14 +143,14 @@ static SCREEN_UPDATE_IND16( superwng )
x ?
xxxx color
*/
- if (~state->m_videoram_bg[i] & 1)
+ if (~m_videoram_bg[i] & 1)
continue;
- int code = (state->m_videoram_bg[i] >> 2) | 0x40;
- int flip = ~state->m_videoram_bg[i] >> 1 & 1;
- int sx = 240 - state->m_videoram_bg[i + 1];
- int sy = state->m_colorram_bg[i];
- int color = state->m_colorram_bg[i + 1] & 0xf;
+ int code = (m_videoram_bg[i] >> 2) | 0x40;
+ int flip = ~m_videoram_bg[i] >> 1 & 1;
+ int sx = 240 - m_videoram_bg[i + 1];
+ int sy = m_colorram_bg[i];
+ int color = m_colorram_bg[i + 1] & 0xf;
drawgfx_transpen(bitmap, cliprect,screen.machine().gfx[1],
code,
@@ -483,7 +483,7 @@ static MACHINE_CONFIG_START( superwng, superwng_state )
MCFG_GFXDECODE(superwng)
MCFG_PALETTE_LENGTH(0x40)
- MCFG_SCREEN_UPDATE_STATIC(superwng)
+ MCFG_SCREEN_UPDATE_DRIVER(superwng_state, screen_update_superwng)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/suprgolf.c b/src/mame/drivers/suprgolf.c
index 9a84c6d586e..24509cfce8a 100644
--- a/src/mame/drivers/suprgolf.c
+++ b/src/mame/drivers/suprgolf.c
@@ -68,6 +68,7 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_suprgolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
TILE_GET_INFO_MEMBER(suprgolf_state::get_tile_info)
@@ -94,9 +95,8 @@ void suprgolf_state::video_start()
m_tilemap->set_transparent_pen(15);
}
-static SCREEN_UPDATE_IND16( suprgolf )
+UINT32 suprgolf_state::screen_update_suprgolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- suprgolf_state *state = screen.machine().driver_data<suprgolf_state>();
int x,y,count,color;
bitmap.fill(get_black_pen(screen.machine()), cliprect);
@@ -107,7 +107,7 @@ static SCREEN_UPDATE_IND16( suprgolf )
{
for(x=0;x<512;x++)
{
- color = state->m_bg_fb[count];
+ color = m_bg_fb[count];
if(x <= cliprect.max_x && y <= cliprect.max_y)
bitmap.pix16(y, x) = screen.machine().pens[(color & 0x7ff)];
@@ -124,9 +124,9 @@ static SCREEN_UPDATE_IND16( suprgolf )
{
for(x=0;x<512;x++)
{
- color = state->m_fg_fb[count];
+ color = m_fg_fb[count];
- if(((state->m_fg_fb[count] & 0x0f) != 0x0f) && (x <= cliprect.max_x && y <= cliprect.max_y))
+ if(((m_fg_fb[count] & 0x0f) != 0x0f) && (x <= cliprect.max_x && y <= cliprect.max_y))
bitmap.pix16(y, x) = screen.machine().pens[(color & 0x7ff)];
count++;
@@ -134,7 +134,7 @@ static SCREEN_UPDATE_IND16( suprgolf )
}
}
- state->m_tilemap->draw(bitmap, cliprect, 0,0);
+ m_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
@@ -528,7 +528,7 @@ static MACHINE_CONFIG_START( suprgolf, suprgolf_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 191)
- MCFG_SCREEN_UPDATE_STATIC(suprgolf)
+ MCFG_SCREEN_UPDATE_DRIVER(suprgolf_state, screen_update_suprgolf)
MCFG_GFXDECODE(suprgolf)
MCFG_PALETTE_LENGTH(0x800)
diff --git a/src/mame/drivers/suprloco.c b/src/mame/drivers/suprloco.c
index a40632767d7..2ac9fb7e1bf 100644
--- a/src/mame/drivers/suprloco.c
+++ b/src/mame/drivers/suprloco.c
@@ -183,7 +183,7 @@ static MACHINE_CONFIG_START( suprloco, suprloco_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(5000))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(suprloco)
+ MCFG_SCREEN_UPDATE_DRIVER(suprloco_state, screen_update_suprloco)
MCFG_GFXDECODE(suprloco)
MCFG_PALETTE_LENGTH(512+256)
diff --git a/src/mame/drivers/suprnova.c b/src/mame/drivers/suprnova.c
index 8895d3aa05b..e21abd12a59 100644
--- a/src/mame/drivers/suprnova.c
+++ b/src/mame/drivers/suprnova.c
@@ -777,8 +777,8 @@ static MACHINE_CONFIG_START( skns, skns_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(340,262)
MCFG_SCREEN_VISIBLE_AREA(0,319,0,239)
- MCFG_SCREEN_UPDATE_STATIC(skns)
- MCFG_SCREEN_VBLANK_STATIC(skns)
+ MCFG_SCREEN_UPDATE_DRIVER(skns_state, screen_update_skns)
+ MCFG_SCREEN_VBLANK_DRIVER(skns_state, screen_eof_skns)
MCFG_PALETTE_LENGTH(32768)
MCFG_GFXDECODE(skns_bg)
diff --git a/src/mame/drivers/suprridr.c b/src/mame/drivers/suprridr.c
index 6f05f011564..9d9c1811d6e 100644
--- a/src/mame/drivers/suprridr.c
+++ b/src/mame/drivers/suprridr.c
@@ -372,7 +372,7 @@ static MACHINE_CONFIG_START( suprridr, suprridr_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(suprridr)
+ MCFG_SCREEN_UPDATE_DRIVER(suprridr_state, screen_update_suprridr)
MCFG_GFXDECODE(suprridr)
MCFG_PALETTE_LENGTH(96)
diff --git a/src/mame/drivers/suprslam.c b/src/mame/drivers/suprslam.c
index f548dd1e7e2..fb939269312 100644
--- a/src/mame/drivers/suprslam.c
+++ b/src/mame/drivers/suprslam.c
@@ -332,7 +332,7 @@ static MACHINE_CONFIG_START( suprslam, suprslam_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2300) /* hand-tuned */)
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(suprslam)
+ MCFG_SCREEN_UPDATE_DRIVER(suprslam_state, screen_update_suprslam)
MCFG_PALETTE_LENGTH(0x800)
diff --git a/src/mame/drivers/surpratk.c b/src/mame/drivers/surpratk.c
index 2a31a76d128..fff5ee3b484 100644
--- a/src/mame/drivers/surpratk.c
+++ b/src/mame/drivers/surpratk.c
@@ -241,7 +241,7 @@ static MACHINE_CONFIG_START( surpratk, surpratk_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(surpratk)
+ MCFG_SCREEN_UPDATE_DRIVER(surpratk_state, screen_update_surpratk)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/system1.c b/src/mame/drivers/system1.c
index f24a73e730f..d104083d158 100644
--- a/src/mame/drivers/system1.c
+++ b/src/mame/drivers/system1.c
@@ -2163,7 +2163,7 @@ static MACHINE_CONFIG_START( sys1ppi, system1_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 640, 0, 512, 260, 0, 224)
- MCFG_SCREEN_UPDATE_STATIC(system1)
+ MCFG_SCREEN_UPDATE_DRIVER(system1_state, screen_update_system1)
MCFG_GFXDECODE(system1)
MCFG_PALETTE_LENGTH(2048)
@@ -2252,7 +2252,7 @@ static MACHINE_CONFIG_DERIVED( sys2, sys1ppi )
/* video hardware */
MCFG_VIDEO_START_OVERRIDE(system1_state,system2)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(system2)
+ MCFG_SCREEN_UPDATE_DRIVER(system1_state, screen_update_system2)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( sys2m, sys2 )
@@ -2264,7 +2264,7 @@ static MACHINE_CONFIG_DERIVED( sys2row, sys2 )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(system2_rowscroll)
+ MCFG_SCREEN_UPDATE_DRIVER(system1_state, screen_update_system2_rowscroll)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( sys2rowm, sys2row )
diff --git a/src/mame/drivers/system16.c b/src/mame/drivers/system16.c
index 5892d8570a2..c1316297634 100644
--- a/src/mame/drivers/system16.c
+++ b/src/mame/drivers/system16.c
@@ -2027,7 +2027,7 @@ static MACHINE_CONFIG_START( system16, segas1x_bootleg_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 28*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(system16)
+ MCFG_SCREEN_UPDATE_DRIVER(segas1x_bootleg_state, screen_update_system16)
MCFG_GFXDECODE(sys16)
MCFG_PALETTE_LENGTH(2048*SHADOW_COLORS_MULTIPLIER)
@@ -2108,7 +2108,7 @@ static MACHINE_CONFIG_DERIVED( shinobib, system16 )
MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state, s16a_bootleg_shinobi )
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC( s16a_bootleg )
+ MCFG_SCREEN_UPDATE_DRIVER(segas1x_bootleg_state, screen_update_s16a_bootleg)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( passshtb, system16_7759 )
@@ -2123,7 +2123,7 @@ static MACHINE_CONFIG_DERIVED( passshtb, system16_7759 )
MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state, s16a_bootleg_passsht )
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC( s16a_bootleg )
+ MCFG_SCREEN_UPDATE_DRIVER(segas1x_bootleg_state, screen_update_s16a_bootleg)
MACHINE_CONFIG_END
@@ -2140,7 +2140,7 @@ static MACHINE_CONFIG_DERIVED( passsht4b, system16_7759 )
MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state, s16a_bootleg_passsht )
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC( s16a_bootleg_passht4b )
+ MCFG_SCREEN_UPDATE_DRIVER(segas1x_bootleg_state, screen_update_s16a_bootleg_passht4b)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( wb3bb, system16 )
@@ -2156,7 +2156,7 @@ static MACHINE_CONFIG_DERIVED( wb3bb, system16 )
MCFG_VIDEO_START_OVERRIDE(segas1x_bootleg_state, s16a_bootleg_wb3bl )
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC( s16a_bootleg )
+ MCFG_SCREEN_UPDATE_DRIVER(segas1x_bootleg_state, screen_update_s16a_bootleg)
MACHINE_CONFIG_END
@@ -2174,7 +2174,7 @@ static MACHINE_CONFIG_START( goldnaxeb1, segas1x_bootleg_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 28*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(system16)
+ MCFG_SCREEN_UPDATE_DRIVER(segas1x_bootleg_state, screen_update_system16)
MCFG_GFXDECODE(sys16)
MCFG_PALETTE_LENGTH(2048*SHADOW_COLORS_MULTIPLIER)
@@ -2307,7 +2307,7 @@ static MACHINE_CONFIG_START( system18, segas1x_bootleg_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 28*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(system18old)
+ MCFG_SCREEN_UPDATE_DRIVER(segas1x_bootleg_state, screen_update_system18old)
MCFG_GFXDECODE(sys16)
MCFG_PALETTE_LENGTH((2048+2048)*SHADOW_COLORS_MULTIPLIER) // 64 extra colours for vdp (but we use 2048 so shadow mask works)
diff --git a/src/mame/drivers/tagteam.c b/src/mame/drivers/tagteam.c
index d62fc9b3c11..2a8465d707d 100644
--- a/src/mame/drivers/tagteam.c
+++ b/src/mame/drivers/tagteam.c
@@ -221,7 +221,7 @@ static MACHINE_CONFIG_START( tagteam, tagteam_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3072))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tagteam)
+ MCFG_SCREEN_UPDATE_DRIVER(tagteam_state, screen_update_tagteam)
MCFG_GFXDECODE(tagteam)
MCFG_PALETTE_LENGTH(32)
diff --git a/src/mame/drivers/tail2nos.c b/src/mame/drivers/tail2nos.c
index 42398978087..5e042b2fc6a 100644
--- a/src/mame/drivers/tail2nos.c
+++ b/src/mame/drivers/tail2nos.c
@@ -251,7 +251,7 @@ static MACHINE_CONFIG_START( tail2nos, tail2nos_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tail2nos)
+ MCFG_SCREEN_UPDATE_DRIVER(tail2nos_state, screen_update_tail2nos)
MCFG_GFXDECODE(tail2nos)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/taito_b.c b/src/mame/drivers/taito_b.c
index eae7bfb4f24..2b8201885e4 100644
--- a/src/mame/drivers/taito_b.c
+++ b/src/mame/drivers/taito_b.c
@@ -2056,8 +2056,8 @@ static MACHINE_CONFIG_START( rastsag2, taitob_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(taitob)
- MCFG_SCREEN_VBLANK_STATIC(taitob)
+ MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
+ MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
@@ -2100,8 +2100,8 @@ static MACHINE_CONFIG_START( ashura, taitob_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(taitob)
- MCFG_SCREEN_VBLANK_STATIC(taitob)
+ MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
+ MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
@@ -2144,8 +2144,8 @@ static MACHINE_CONFIG_START( crimec, taitob_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(taitob)
- MCFG_SCREEN_VBLANK_STATIC(taitob)
+ MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
+ MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
@@ -2188,8 +2188,8 @@ static MACHINE_CONFIG_START( tetrist, taitob_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(taitob)
- MCFG_SCREEN_VBLANK_STATIC(taitob)
+ MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
+ MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
@@ -2231,8 +2231,8 @@ static MACHINE_CONFIG_START( tetrista, taitob_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(taitob)
- MCFG_SCREEN_VBLANK_STATIC(taitob)
+ MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
+ MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
@@ -2275,8 +2275,8 @@ static MACHINE_CONFIG_START( hitice, taitob_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(taitob)
- MCFG_SCREEN_VBLANK_STATIC(taitob)
+ MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
+ MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
@@ -2324,8 +2324,8 @@ static MACHINE_CONFIG_START( rambo3p, taitob_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(taitob)
- MCFG_SCREEN_VBLANK_STATIC(taitob)
+ MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
+ MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE(rambo3)
MCFG_PALETTE_LENGTH(4096)
@@ -2368,8 +2368,8 @@ static MACHINE_CONFIG_START( rambo3, taitob_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(taitob)
- MCFG_SCREEN_VBLANK_STATIC(taitob)
+ MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
+ MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
@@ -2415,8 +2415,8 @@ static MACHINE_CONFIG_START( pbobble, taitob_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(taitob)
- MCFG_SCREEN_VBLANK_STATIC(taitob)
+ MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
+ MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
@@ -2463,8 +2463,8 @@ static MACHINE_CONFIG_START( spacedx, taitob_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(taitob)
- MCFG_SCREEN_VBLANK_STATIC(taitob)
+ MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
+ MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
@@ -2507,8 +2507,8 @@ static MACHINE_CONFIG_START( spacedxo, taitob_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(taitob)
- MCFG_SCREEN_VBLANK_STATIC(taitob)
+ MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
+ MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
@@ -2555,8 +2555,8 @@ static MACHINE_CONFIG_START( qzshowby, taitob_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(taitob)
- MCFG_SCREEN_VBLANK_STATIC(taitob)
+ MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
+ MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
@@ -2599,8 +2599,8 @@ static MACHINE_CONFIG_START( viofight, taitob_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(taitob)
- MCFG_SCREEN_VBLANK_STATIC(taitob)
+ MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
+ MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
@@ -2646,8 +2646,8 @@ static MACHINE_CONFIG_START( masterw, taitob_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(taitob)
- MCFG_SCREEN_VBLANK_STATIC(taitob)
+ MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
+ MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
@@ -2691,8 +2691,8 @@ static MACHINE_CONFIG_START( silentd, taitob_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(taitob)
- MCFG_SCREEN_VBLANK_STATIC(taitob)
+ MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
+ MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
@@ -2735,8 +2735,8 @@ static MACHINE_CONFIG_START( selfeena, taitob_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(taitob)
- MCFG_SCREEN_VBLANK_STATIC(taitob)
+ MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
+ MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
@@ -2788,8 +2788,8 @@ static MACHINE_CONFIG_START( ryujin, taitob_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(taitob)
- MCFG_SCREEN_VBLANK_STATIC(taitob)
+ MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
+ MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
@@ -2839,8 +2839,8 @@ static MACHINE_CONFIG_START( sbm, taitob_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(taitob)
- MCFG_SCREEN_VBLANK_STATIC(taitob)
+ MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
+ MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
@@ -2888,14 +2888,14 @@ static MACHINE_CONFIG_START( realpunc, taitob_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(taitob)
- MCFG_SCREEN_VBLANK_STATIC(taitob)
+ MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_taitob)
+ MCFG_SCREEN_VBLANK_DRIVER(taitob_state, screen_eof_taitob)
MCFG_GFXDECODE(taito_b)
MCFG_PALETTE_LENGTH(4096)
MCFG_VIDEO_START_OVERRIDE(taitob_state,realpunc)
- MCFG_SCREEN_UPDATE_STATIC(realpunc)
+ MCFG_SCREEN_UPDATE_DRIVER(taitob_state, screen_update_realpunc)
MCFG_HD63484_ADD("hd63484", realpunc_hd63484_intf)
diff --git a/src/mame/drivers/taito_f2.c b/src/mame/drivers/taito_f2.c
index a3bf1192b49..34d855a9624 100644
--- a/src/mame/drivers/taito_f2.c
+++ b/src/mame/drivers/taito_f2.c
@@ -3053,8 +3053,8 @@ static MACHINE_CONFIG_START( taito_f2, taitof2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */)
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(taitof2)
- MCFG_SCREEN_VBLANK_STATIC(taitof2_no_buffer)
+ MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2)
+ MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_no_buffer)
MCFG_GFXDECODE(taitof2)
MCFG_PALETTE_LENGTH(4096)
@@ -3099,7 +3099,7 @@ static MACHINE_CONFIG_DERIVED( finalb, taito_f2_tc0220ioc )
MCFG_GFXDECODE(finalb)
MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_finalb)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed)
+ MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_partial_buffer_delayed)
MCFG_TC0100SCN_ADD("tc0100scn", finalb_tc0100scn_intf)
MCFG_TC0110PCR_ADD("tc0110pcr", taitof2_tc0110pcr_intf)
@@ -3116,8 +3116,8 @@ static MACHINE_CONFIG_DERIVED( dondokod, taito_f2_tc0220ioc )
MCFG_GFXDECODE(pivot)
MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_dondokod)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed)
- MCFG_SCREEN_UPDATE_STATIC(taitof2_pri_roz)
+ MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_partial_buffer_delayed)
+ MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri_roz)
MCFG_TC0100SCN_ADD("tc0100scn", dondokod_tc0100scn_intf)
MCFG_TC0430GRW_ADD("tc0280grd", taitof2_tc0280grd_intf)
@@ -3134,7 +3134,7 @@ static MACHINE_CONFIG_DERIVED( megab, taito_f2_tc0220ioc )
/* video hardware */
MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_megab)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
+ MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri)
MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf)
MCFG_TC0360PRI_ADD("tc0360pri")
@@ -3151,8 +3151,8 @@ static MACHINE_CONFIG_DERIVED( thundfox, taito_f2_tc0220ioc )
MCFG_GFXDECODE(thundfox)
MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_thundfox)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(taitof2_thundfox)
- MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed_thundfox)
+ MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_thundfox)
+ MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_partial_buffer_delayed_thundfox)
MCFG_TC0100SCN_ADD("tc0100scn_1", thundfox_tc0100scn_intf_1)
MCFG_TC0100SCN_ADD("tc0100scn_2", thundfox_tc0100scn_intf_2)
@@ -3170,7 +3170,7 @@ static MACHINE_CONFIG_DERIVED( cameltry, taito_f2_tc0220ioc )
MCFG_GFXDECODE(pivot)
MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_dondokod)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(taitof2_pri_roz)
+ MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri_roz)
MCFG_TC0100SCN_ADD("tc0100scn", dondokod_tc0100scn_intf)
MCFG_TC0430GRW_ADD("tc0280grd", taitof2_tc0280grd_intf)
@@ -3187,7 +3187,7 @@ static MACHINE_CONFIG_DERIVED( qtorimon, taito_f2_tc0220ioc )
/* video hardware */
MCFG_GFXDECODE(yuyugogo)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed)
+ MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_partial_buffer_delayed)
MCFG_TC0100SCN_ADD("tc0100scn", taitof2_tc0100scn_intf)
MCFG_TC0110PCR_ADD("tc0110pcr", taitof2_tc0110pcr_intf)
@@ -3203,8 +3203,8 @@ static MACHINE_CONFIG_DERIVED( liquidk, taito_f2_tc0220ioc )
/* video hardware */
MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_megab)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
- MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed)
+ MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri)
+ MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_partial_buffer_delayed)
MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf)
MCFG_TC0360PRI_ADD("tc0360pri")
@@ -3220,7 +3220,7 @@ static MACHINE_CONFIG_DERIVED( quizhq, taito_f2 )
/* video hardware */
MCFG_GFXDECODE(yuyugogo)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed)
+ MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_partial_buffer_delayed)
MCFG_TC0100SCN_ADD("tc0100scn", taitof2_tc0100scn_intf)
MCFG_TC0110PCR_ADD("tc0110pcr", taitof2_tc0110pcr_intf)
@@ -3236,8 +3236,8 @@ static MACHINE_CONFIG_DERIVED( ssi, taito_f2_tc0510nio )
/* video hardware */
MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_ssi)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(taitof2_ssi)
- MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed_thundfox) // buffer_delayed_thundfox instead of buffer_delayed fixes the butterfly powerup
+ MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_ssi)
+ MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_partial_buffer_delayed_thundfox)
MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf)
MACHINE_CONFIG_END
@@ -3252,8 +3252,8 @@ static MACHINE_CONFIG_DERIVED( gunfront, taito_f2_tc0510nio )
/* video hardware */
MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_gunfront)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
- MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed)
+ MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri)
+ MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_partial_buffer_delayed)
MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf)
MCFG_TC0360PRI_ADD("tc0360pri")
@@ -3269,7 +3269,7 @@ static MACHINE_CONFIG_DERIVED( growl, taito_f2 )
/* video hardware */
MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_growl)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
+ MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri)
MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf)
MCFG_TC0360PRI_ADD("tc0360pri")
@@ -3300,8 +3300,8 @@ static MACHINE_CONFIG_DERIVED( footchmp, taito_f2 )
MCFG_GFXDECODE(deadconx)
MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_footchmp)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(taitof2_deadconx)
- MCFG_SCREEN_VBLANK_STATIC(taitof2_full_buffer_delayed)
+ MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_deadconx)
+ MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_full_buffer_delayed)
MCFG_TC0480SCP_ADD("tc0480scp", footchmp_tc0480scp_intf)
MCFG_TC0360PRI_ADD("tc0360pri")
@@ -3324,8 +3324,8 @@ static MACHINE_CONFIG_DERIVED( hthero, taito_f2 )
MCFG_GFXDECODE(deadconx)
MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_hthero)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(taitof2_deadconx)
- MCFG_SCREEN_VBLANK_STATIC(taitof2_full_buffer_delayed)
+ MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_deadconx)
+ MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_full_buffer_delayed)
MCFG_TC0360PRI_ADD("tc0360pri")
MCFG_TC0480SCP_ADD("tc0480scp", hthero_tc0480scp_intf)
@@ -3341,7 +3341,7 @@ static MACHINE_CONFIG_DERIVED( koshien, taito_f2_tc0510nio )
/* video hardware */
MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_koshien)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
+ MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri)
MCFG_TC0100SCN_ADD("tc0100scn", koshien_tc0100scn_intf)
MCFG_TC0360PRI_ADD("tc0360pri")
@@ -3358,7 +3358,7 @@ static MACHINE_CONFIG_DERIVED( yuyugogo, taito_f2_tc0510nio )
MCFG_GFXDECODE(yuyugogo)
MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_yuyugogo)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(taitof2_yesnoj)
+ MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_yesnoj)
MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf)
MACHINE_CONFIG_END
@@ -3373,7 +3373,7 @@ static MACHINE_CONFIG_DERIVED( ninjak, taito_f2 )
/* video hardware */
MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_ninjak)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
+ MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri)
MCFG_TC0100SCN_ADD("tc0100scn", finalb_tc0100scn_intf)
MCFG_TC0360PRI_ADD("tc0360pri")
@@ -3389,7 +3389,7 @@ static MACHINE_CONFIG_DERIVED( solfigtr, taito_f2 )
/* video hardware */
MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_solfigtr)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
+ MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri)
MCFG_TC0100SCN_ADD("tc0100scn", solfigtr_tc0100scn_intf)
MCFG_TC0360PRI_ADD("tc0360pri")
@@ -3404,7 +3404,7 @@ static MACHINE_CONFIG_DERIVED( qzquest, taito_f2_tc0510nio )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed)
+ MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_partial_buffer_delayed)
MCFG_TC0100SCN_ADD("tc0100scn", taitof2_tc0100scn_intf)
MACHINE_CONFIG_END
@@ -3420,7 +3420,7 @@ static MACHINE_CONFIG_DERIVED( pulirula, taito_f2_tc0510nio )
MCFG_GFXDECODE(pivot)
MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_pulirula)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(taitof2_pri_roz)
+ MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri_roz)
MCFG_TC0100SCN_ADD("tc0100scn", dondokod_tc0100scn_intf)
MCFG_TC0430GRW_ADD("tc0430grw", taitof2_tc0430grw_intf)
@@ -3439,7 +3439,7 @@ static MACHINE_CONFIG_DERIVED( metalb, taito_f2_tc0510nio )
MCFG_PALETTE_LENGTH(8192)
MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_metalb)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(taitof2_metalb)
+ MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_metalb)
MCFG_TC0480SCP_ADD("tc0480scp", metalb_tc0480scp_intf)
MCFG_TC0360PRI_ADD("tc0360pri")
@@ -3455,7 +3455,7 @@ static MACHINE_CONFIG_DERIVED( qzchikyu, taito_f2_tc0510nio )
/* video hardware */
MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_qzchikyu)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_VBLANK_STATIC(taitof2_partial_buffer_delayed_qzchikyu)
+ MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_partial_buffer_delayed_qzchikyu)
MCFG_TC0100SCN_ADD("tc0100scn", qzchikyu_tc0100scn_intf)
MACHINE_CONFIG_END
@@ -3471,7 +3471,7 @@ static MACHINE_CONFIG_DERIVED( yesnoj, taito_f2 )
MCFG_GFXDECODE(yuyugogo)
MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_yesnoj)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(taitof2_yesnoj)
+ MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_yesnoj)
MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf)
MACHINE_CONFIG_END
@@ -3487,7 +3487,7 @@ static MACHINE_CONFIG_DERIVED( deadconx, taito_f2 )
MCFG_GFXDECODE(deadconx)
MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_deadconx)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(taitof2_deadconx)
+ MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_deadconx)
MCFG_TC0480SCP_ADD("tc0480scp", deadconx_tc0480scp_intf)
MCFG_TC0360PRI_ADD("tc0360pri")
@@ -3504,7 +3504,7 @@ static MACHINE_CONFIG_DERIVED( deadconxj, taito_f2 )
MCFG_GFXDECODE(deadconx)
MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_deadconxj)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(taitof2_deadconx)
+ MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_deadconx)
MCFG_TC0480SCP_ADD("tc0480scp", deadconxj_tc0480scp_intf)
MCFG_TC0360PRI_ADD("tc0360pri")
@@ -3520,7 +3520,7 @@ static MACHINE_CONFIG_DERIVED( dinorex, taito_f2_tc0510nio )
/* video hardware */
MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_dinorex)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
+ MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri)
MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf)
MCFG_TC0360PRI_ADD("tc0360pri")
@@ -3536,7 +3536,7 @@ static MACHINE_CONFIG_DERIVED( qjinsei, taito_f2_tc0510nio )
/* video hardware */
MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_quiz)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
+ MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri)
MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf)
MCFG_TC0360PRI_ADD("tc0360pri")
@@ -3552,7 +3552,7 @@ static MACHINE_CONFIG_DERIVED( qcrayon, taito_f2_tc0510nio )
/* video hardware */
MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_quiz)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
+ MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri)
MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf)
MCFG_TC0360PRI_ADD("tc0360pri")
@@ -3568,7 +3568,7 @@ static MACHINE_CONFIG_DERIVED( qcrayon2, taito_f2_tc0510nio )
/* video hardware */
MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_quiz)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(taitof2_pri)
+ MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri)
MCFG_TC0100SCN_ADD("tc0100scn", liquidk_tc0100scn_intf)
MCFG_TC0360PRI_ADD("tc0360pri")
@@ -3585,7 +3585,7 @@ static MACHINE_CONFIG_DERIVED( driftout, taito_f2_tc0510nio )
MCFG_GFXDECODE(pivot)
MCFG_VIDEO_START_OVERRIDE(taitof2_state,taitof2_driftout)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(taitof2_pri_roz)
+ MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri_roz)
MCFG_TC0100SCN_ADD("tc0100scn", dondokod_tc0100scn_intf)
MCFG_TC0430GRW_ADD("tc0430grw", taitof2_tc0430grw_intf)
@@ -3613,8 +3613,8 @@ static MACHINE_CONFIG_START( cameltrya, taitof2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(taitof2_pri_roz)
- MCFG_SCREEN_VBLANK_STATIC(taitof2_no_buffer)
+ MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri_roz)
+ MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_no_buffer)
MCFG_GFXDECODE(pivot)
MCFG_PALETTE_LENGTH(4096)
@@ -3662,8 +3662,8 @@ static MACHINE_CONFIG_START( driveout, taitof2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(taitof2_pri_roz)
- MCFG_SCREEN_VBLANK_STATIC(taitof2_no_buffer)
+ MCFG_SCREEN_UPDATE_DRIVER(taitof2_state, screen_update_taitof2_pri_roz)
+ MCFG_SCREEN_VBLANK_DRIVER(taitof2_state, screen_eof_taitof2_no_buffer)
MCFG_GFXDECODE(pivot)
MCFG_PALETTE_LENGTH(4096)
diff --git a/src/mame/drivers/taito_f3.c b/src/mame/drivers/taito_f3.c
index fb6f96517dd..4253a9d1596 100644
--- a/src/mame/drivers/taito_f3.c
+++ b/src/mame/drivers/taito_f3.c
@@ -441,8 +441,8 @@ static MACHINE_CONFIG_START( f3, taito_f3_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(624) /* 58.97 Hz, 624us vblank time */)
MCFG_SCREEN_SIZE(40*8+48*2, 32*8)
MCFG_SCREEN_VISIBLE_AREA(46, 40*8-1 + 46, 24, 24+232-1)
- MCFG_SCREEN_UPDATE_STATIC(f3)
- MCFG_SCREEN_VBLANK_STATIC(f3)
+ MCFG_SCREEN_UPDATE_DRIVER(taito_f3_state, screen_update_f3)
+ MCFG_SCREEN_VBLANK_DRIVER(taito_f3_state, screen_eof_f3)
MCFG_GFXDECODE(taito_f3)
MCFG_PALETTE_LENGTH(0x2000)
@@ -535,8 +535,8 @@ static MACHINE_CONFIG_START( bubsympb, taito_f3_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(624) /* 58.97 Hz, 624us vblank time */)
MCFG_SCREEN_SIZE(40*8+48*2, 32*8)
MCFG_SCREEN_VISIBLE_AREA(46, 40*8-1 + 46, 31, 31+224-1)
- MCFG_SCREEN_UPDATE_STATIC(f3)
- MCFG_SCREEN_VBLANK_STATIC(f3)
+ MCFG_SCREEN_UPDATE_DRIVER(taito_f3_state, screen_update_f3)
+ MCFG_SCREEN_VBLANK_DRIVER(taito_f3_state, screen_eof_f3)
MCFG_GFXDECODE(bubsympb)
MCFG_PALETTE_LENGTH(8192)
diff --git a/src/mame/drivers/taito_h.c b/src/mame/drivers/taito_h.c
index 5da35666620..4436c254419 100644
--- a/src/mame/drivers/taito_h.c
+++ b/src/mame/drivers/taito_h.c
@@ -582,7 +582,7 @@ static MACHINE_CONFIG_START( syvalion, taitoh_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*16, 64*16)
MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 3*16, 28*16-1)
- MCFG_SCREEN_UPDATE_STATIC(syvalion)
+ MCFG_SCREEN_UPDATE_DRIVER(taitoh_state, screen_update_syvalion)
MCFG_GFXDECODE(syvalion)
MCFG_PALETTE_LENGTH(33*16)
@@ -623,7 +623,7 @@ static MACHINE_CONFIG_START( recordbr, taitoh_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*16, 64*16)
MCFG_SCREEN_VISIBLE_AREA(1*16, 21*16-1, 2*16, 17*16-1)
- MCFG_SCREEN_UPDATE_STATIC(recordbr)
+ MCFG_SCREEN_UPDATE_DRIVER(taitoh_state, screen_update_recordbr)
MCFG_GFXDECODE(recordbr)
MCFG_PALETTE_LENGTH(32*16)
@@ -664,7 +664,7 @@ static MACHINE_CONFIG_START( dleague, taitoh_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*16, 64*16)
MCFG_SCREEN_VISIBLE_AREA(1*16, 21*16-1, 2*16, 17*16-1)
- MCFG_SCREEN_UPDATE_STATIC(dleague)
+ MCFG_SCREEN_UPDATE_DRIVER(taitoh_state, screen_update_dleague)
MCFG_GFXDECODE(dleague)
MCFG_PALETTE_LENGTH(33*16)
diff --git a/src/mame/drivers/taito_l.c b/src/mame/drivers/taito_l.c
index d5319b3b974..77fc0f495a8 100644
--- a/src/mame/drivers/taito_l.c
+++ b/src/mame/drivers/taito_l.c
@@ -1864,8 +1864,8 @@ static MACHINE_CONFIG_START( fhawk, taitol_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(taitol)
- MCFG_SCREEN_VBLANK_STATIC(taitol)
+ MCFG_SCREEN_UPDATE_DRIVER(taitol_state, screen_update_taitol)
+ MCFG_SCREEN_VBLANK_DRIVER(taitol_state, screen_eof_taitol)
MCFG_GFXDECODE(2)
MCFG_PALETTE_LENGTH(256)
@@ -1956,8 +1956,8 @@ static MACHINE_CONFIG_START( kurikint, taitol_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(taitol)
- MCFG_SCREEN_VBLANK_STATIC(taitol)
+ MCFG_SCREEN_UPDATE_DRIVER(taitol_state, screen_update_taitol)
+ MCFG_SCREEN_VBLANK_DRIVER(taitol_state, screen_eof_taitol)
MCFG_GFXDECODE(2)
MCFG_PALETTE_LENGTH(256)
@@ -2002,8 +2002,8 @@ static MACHINE_CONFIG_START( plotting, taitol_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(taitol)
- MCFG_SCREEN_VBLANK_STATIC(taitol)
+ MCFG_SCREEN_UPDATE_DRIVER(taitol_state, screen_update_taitol)
+ MCFG_SCREEN_VBLANK_DRIVER(taitol_state, screen_eof_taitol)
MCFG_GFXDECODE(1)
MCFG_PALETTE_LENGTH(256)
@@ -2095,8 +2095,8 @@ static MACHINE_CONFIG_START( evilston, taitol_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(taitol)
- MCFG_SCREEN_VBLANK_STATIC(taitol)
+ MCFG_SCREEN_UPDATE_DRIVER(taitol_state, screen_update_taitol)
+ MCFG_SCREEN_VBLANK_DRIVER(taitol_state, screen_eof_taitol)
MCFG_GFXDECODE(2)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/taito_o.c b/src/mame/drivers/taito_o.c
index 94fd3227dba..7f875f9421c 100644
--- a/src/mame/drivers/taito_o.c
+++ b/src/mame/drivers/taito_o.c
@@ -261,7 +261,7 @@ static MACHINE_CONFIG_START( parentj, taitoo_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*16, 64*16)
MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 3*16, 31*16-1)
- MCFG_SCREEN_UPDATE_STATIC(parentj)
+ MCFG_SCREEN_UPDATE_DRIVER(taitoo_state, screen_update_parentj)
MCFG_GFXDECODE(parentj)
MCFG_PALETTE_LENGTH(33*16)
diff --git a/src/mame/drivers/taito_x.c b/src/mame/drivers/taito_x.c
index 44c25e3a592..c3fabe84d78 100644
--- a/src/mame/drivers/taito_x.c
+++ b/src/mame/drivers/taito_x.c
@@ -847,7 +847,7 @@ static MACHINE_CONFIG_START( superman, taitox_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(52*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta_no_layers)
+ MCFG_SCREEN_UPDATE_DRIVER(taitox_state, screen_update_seta_no_layers)
MCFG_GFXDECODE(superman)
MCFG_PALETTE_LENGTH(2048)
@@ -889,7 +889,7 @@ static MACHINE_CONFIG_START( daisenpu, taitox_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(52*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta_no_layers)
+ MCFG_SCREEN_UPDATE_DRIVER(taitox_state, screen_update_seta_no_layers)
MCFG_GFXDECODE(superman)
MCFG_PALETTE_LENGTH(2048)
@@ -929,7 +929,7 @@ static MACHINE_CONFIG_START( gigandes, taitox_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(52*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta_no_layers)
+ MCFG_SCREEN_UPDATE_DRIVER(taitox_state, screen_update_seta_no_layers)
MCFG_GFXDECODE(superman)
MCFG_PALETTE_LENGTH(2048)
@@ -971,7 +971,7 @@ static MACHINE_CONFIG_START( ballbros, taitox_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(52*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(seta_no_layers)
+ MCFG_SCREEN_UPDATE_DRIVER(taitox_state, screen_update_seta_no_layers)
MCFG_GFXDECODE(ballbros)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/taito_z.c b/src/mame/drivers/taito_z.c
index 11ce7b4fb99..3692e1e2094 100644
--- a/src/mame/drivers/taito_z.c
+++ b/src/mame/drivers/taito_z.c
@@ -3096,7 +3096,7 @@ static MACHINE_CONFIG_START( contcirc, taitoz_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 3*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(contcirc)
+ MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_contcirc)
MCFG_GFXDECODE(taitoz)
MCFG_PALETTE_LENGTH(4096)
@@ -3158,7 +3158,7 @@ static MACHINE_CONFIG_START( chasehq, taitoz_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(chasehq)
+ MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_chasehq)
MCFG_GFXDECODE(chasehq)
MCFG_PALETTE_LENGTH(4096)
@@ -3222,7 +3222,7 @@ static MACHINE_CONFIG_START( enforce, taitoz_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(contcirc)
+ MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_contcirc)
MCFG_GFXDECODE(taitoz)
MCFG_PALETTE_LENGTH(4096)
@@ -3282,7 +3282,7 @@ static MACHINE_CONFIG_START( bshark, taitoz_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(bshark)
+ MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_bshark)
MCFG_GFXDECODE(taitoz)
MCFG_PALETTE_LENGTH(4096)
@@ -3353,7 +3353,7 @@ static MACHINE_CONFIG_START( sci, taitoz_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(sci)
+ MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_sci)
MCFG_GFXDECODE(taitoz)
MCFG_PALETTE_LENGTH(4096)
@@ -3415,7 +3415,7 @@ static MACHINE_CONFIG_START( nightstr, taitoz_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(chasehq)
+ MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_chasehq)
MCFG_GFXDECODE(chasehq)
MCFG_PALETTE_LENGTH(4096)
@@ -3479,7 +3479,7 @@ static MACHINE_CONFIG_START( aquajack, taitoz_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(aquajack)
+ MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_aquajack)
MCFG_GFXDECODE(taitoz)
MCFG_PALETTE_LENGTH(4096)
@@ -3540,7 +3540,7 @@ static MACHINE_CONFIG_START( spacegun, taitoz_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(spacegun)
+ MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_spacegun)
MCFG_GFXDECODE(taitoz)
MCFG_PALETTE_LENGTH(4096)
@@ -3601,7 +3601,7 @@ static MACHINE_CONFIG_START( dblaxle, taitoz_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(dblaxle)
+ MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_dblaxle)
MCFG_GFXDECODE(dblaxle)
MCFG_PALETTE_LENGTH(4096)
@@ -3663,7 +3663,7 @@ static MACHINE_CONFIG_START( racingb, taitoz_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(racingb)
+ MCFG_SCREEN_UPDATE_DRIVER(taitoz_state, screen_update_racingb)
MCFG_GFXDECODE(dblaxle)
MCFG_PALETTE_LENGTH(4096)
diff --git a/src/mame/drivers/taitoair.c b/src/mame/drivers/taitoair.c
index 9f3a252f02b..a043b9dbd3d 100644
--- a/src/mame/drivers/taitoair.c
+++ b/src/mame/drivers/taitoair.c
@@ -730,7 +730,7 @@ static MACHINE_CONFIG_START( airsys, taitoair_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*16, 64*16)
MCFG_SCREEN_VISIBLE_AREA(0*16, 32*16-1, 3*16, 28*16-1)
- MCFG_SCREEN_UPDATE_STATIC(taitoair)
+ MCFG_SCREEN_UPDATE_DRIVER(taitoair_state, screen_update_taitoair)
MCFG_GFXDECODE(airsys)
MCFG_PALETTE_LENGTH(512*16+512*16)
diff --git a/src/mame/drivers/taitojc.c b/src/mame/drivers/taitojc.c
index 1f74c22e415..41bf00b5a3d 100644
--- a/src/mame/drivers/taitojc.c
+++ b/src/mame/drivers/taitojc.c
@@ -1263,7 +1263,7 @@ static MACHINE_CONFIG_START( taitojc, taitojc_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(512, 400)
MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 399)
- MCFG_SCREEN_UPDATE_STATIC(taitojc)
+ MCFG_SCREEN_UPDATE_DRIVER(taitojc_state, screen_update_taitojc)
MCFG_PALETTE_LENGTH(32768)
@@ -1279,7 +1279,7 @@ static MACHINE_CONFIG_DERIVED( dendego, taitojc )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(dendego)
+ MCFG_SCREEN_UPDATE_DRIVER(taitojc_state, screen_update_dendego)
/* sound hardware */
MCFG_SPEAKER_ADD("subwoofer", 0.0, 0.0, 1.0)
diff --git a/src/mame/drivers/taitopjc.c b/src/mame/drivers/taitopjc.c
index f90cd3c7916..d3a0aca30a9 100644
--- a/src/mame/drivers/taitopjc.c
+++ b/src/mame/drivers/taitopjc.c
@@ -83,6 +83,7 @@ public:
DECLARE_WRITE8_MEMBER(taitopjc_tlcs900_to1);
DECLARE_WRITE8_MEMBER(taitopjc_tlcs900_to3);
virtual void video_start();
+ UINT32 screen_update_taitopjc(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
void taitopjc_state::video_start()
@@ -90,7 +91,7 @@ void taitopjc_state::video_start()
}
-static SCREEN_UPDATE_RGB32( taitopjc )
+UINT32 taitopjc_state::screen_update_taitopjc(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
{
UINT8 *s = (UINT8*)jc_char_ram;
@@ -432,7 +433,7 @@ static MACHINE_CONFIG_START( taitopjc, taitopjc_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(640, 768)
MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 767)
- MCFG_SCREEN_UPDATE_STATIC(taitopjc)
+ MCFG_SCREEN_UPDATE_DRIVER(taitopjc_state, screen_update_taitopjc)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/taitosj.c b/src/mame/drivers/taitosj.c
index d5e982fa9fc..52d5ed727bd 100644
--- a/src/mame/drivers/taitosj.c
+++ b/src/mame/drivers/taitosj.c
@@ -1808,7 +1808,7 @@ static MACHINE_CONFIG_START( nomcu, taitosj_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(taitosj)
+ MCFG_SCREEN_UPDATE_DRIVER(taitosj_state, screen_update_taitosj)
MCFG_GFXDECODE(taitosj)
MCFG_PALETTE_LENGTH(64)
@@ -1859,7 +1859,7 @@ static MACHINE_CONFIG_DERIVED( kikstart, mcu )
MCFG_CPU_PROGRAM_MAP(kikstart_main_map)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(kikstart)
+ MCFG_SCREEN_UPDATE_DRIVER(taitosj_state, screen_update_kikstart)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/taitotz.c b/src/mame/drivers/taitotz.c
index 784764b70cf..e2468d4bef1 100644
--- a/src/mame/drivers/taitotz.c
+++ b/src/mame/drivers/taitotz.c
@@ -524,6 +524,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_taitotz(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -1279,16 +1280,15 @@ void taitotz_renderer::render_displaylist(running_machine &machine, const rectan
wait("render_polygons");
}
-static SCREEN_UPDATE_RGB32( taitotz )
+UINT32 taitotz_state::screen_update_taitotz(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- taitotz_state *state = screen.machine().driver_data<taitotz_state>();
bitmap.fill(0x000000, cliprect);
- state->m_renderer->set_fb(&bitmap);
- state->m_renderer->render_displaylist(screen.machine(), cliprect);
+ m_renderer->set_fb(&bitmap);
+ m_renderer->render_displaylist(screen.machine(), cliprect);
- UINT16 *screen_src = (UINT16*)&state->m_screen_ram[state->m_scr_base];
+ UINT16 *screen_src = (UINT16*)&m_screen_ram[m_scr_base];
for (int j=0; j < 384; j++)
{
@@ -2502,7 +2502,7 @@ static MACHINE_CONFIG_START( taitotz, taitotz_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 384)
MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 383)
- MCFG_SCREEN_UPDATE_STATIC(taitotz)
+ MCFG_SCREEN_UPDATE_DRIVER(taitotz_state, screen_update_taitotz)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/taitowlf.c b/src/mame/drivers/taitowlf.c
index 1c1f7e246f8..590d7b447c9 100644
--- a/src/mame/drivers/taitowlf.c
+++ b/src/mame/drivers/taitowlf.c
@@ -82,10 +82,11 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void palette_init();
+ UINT32 screen_update_taitowlf(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
#if !ENABLE_VGA
-static SCREEN_UPDATE_RGB32( taitowlf )
+UINT32 taitowlf_state::screen_update_taitowlf(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
int x,y,count;
const UINT8 *blit_ram = screen.machine().root_device().memregion("user5")->base();
@@ -656,7 +657,7 @@ static MACHINE_CONFIG_START( taitowlf, taitowlf_state )
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
MCFG_PALETTE_LENGTH(256)
- MCFG_SCREEN_UPDATE_STATIC(taitowlf)
+ MCFG_SCREEN_UPDATE_DRIVER(taitowlf_state, screen_update_taitowlf)
#endif
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/tank8.c b/src/mame/drivers/tank8.c
index 76fe1dc8433..d5ea74f7388 100644
--- a/src/mame/drivers/tank8.c
+++ b/src/mame/drivers/tank8.c
@@ -345,8 +345,8 @@ static MACHINE_CONFIG_START( tank8, tank8_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(30 * 1000000 / 15681))
MCFG_SCREEN_SIZE(512, 524)
MCFG_SCREEN_VISIBLE_AREA(16, 495, 0, 463)
- MCFG_SCREEN_UPDATE_STATIC(tank8)
- MCFG_SCREEN_VBLANK_STATIC(tank8)
+ MCFG_SCREEN_UPDATE_DRIVER(tank8_state, screen_update_tank8)
+ MCFG_SCREEN_VBLANK_DRIVER(tank8_state, screen_eof_tank8)
MCFG_GFXDECODE(tank8)
MCFG_PALETTE_LENGTH(20)
diff --git a/src/mame/drivers/tankbatt.c b/src/mame/drivers/tankbatt.c
index c314b1d0525..318fe2b9daf 100644
--- a/src/mame/drivers/tankbatt.c
+++ b/src/mame/drivers/tankbatt.c
@@ -295,7 +295,7 @@ static MACHINE_CONFIG_START( tankbatt, tankbatt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tankbatt)
+ MCFG_SCREEN_UPDATE_DRIVER(tankbatt_state, screen_update_tankbatt)
MCFG_GFXDECODE(tankbatt)
MCFG_PALETTE_LENGTH(256*2)
diff --git a/src/mame/drivers/tankbust.c b/src/mame/drivers/tankbust.c
index 101faf7f6dc..e3d6bce417c 100644
--- a/src/mame/drivers/tankbust.c
+++ b/src/mame/drivers/tankbust.c
@@ -347,7 +347,7 @@ static MACHINE_CONFIG_START( tankbust, tankbust_state )
MCFG_SCREEN_SIZE ( 64*8, 32*8 )
MCFG_SCREEN_VISIBLE_AREA ( 16*8, 56*8-1, 1*8, 31*8-1 )
// MCFG_SCREEN_VISIBLE_AREA ( 0*8, 64*8-1, 1*8, 31*8-1 )
- MCFG_SCREEN_UPDATE_STATIC ( tankbust )
+ MCFG_SCREEN_UPDATE_DRIVER(tankbust_state, screen_update_tankbust)
MCFG_GFXDECODE( tankbust )
diff --git a/src/mame/drivers/taotaido.c b/src/mame/drivers/taotaido.c
index e7922d9d389..55e01e43aff 100644
--- a/src/mame/drivers/taotaido.c
+++ b/src/mame/drivers/taotaido.c
@@ -346,8 +346,8 @@ static MACHINE_CONFIG_START( taotaido, taotaido_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(taotaido)
- MCFG_SCREEN_VBLANK_STATIC( taotaido )
+ MCFG_SCREEN_UPDATE_DRIVER(taotaido_state, screen_update_taotaido)
+ MCFG_SCREEN_VBLANK_DRIVER(taotaido_state, screen_eof_taotaido)
MCFG_PALETTE_LENGTH(0x800)
diff --git a/src/mame/drivers/targeth.c b/src/mame/drivers/targeth.c
index ff4cb679b41..621e3c44443 100644
--- a/src/mame/drivers/targeth.c
+++ b/src/mame/drivers/targeth.c
@@ -184,7 +184,7 @@ static MACHINE_CONFIG_START( targeth, targeth_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*16, 32*16) /* 1024x512 */
MCFG_SCREEN_VISIBLE_AREA(0, 24*16-1, 16, 16*16-1) /* 400x240 */
- MCFG_SCREEN_UPDATE_STATIC(targeth)
+ MCFG_SCREEN_UPDATE_DRIVER(targeth_state, screen_update_targeth)
MCFG_GFXDECODE(0x080000)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/tasman.c b/src/mame/drivers/tasman.c
index 00a5e3c5c68..0720280187b 100644
--- a/src/mame/drivers/tasman.c
+++ b/src/mame/drivers/tasman.c
@@ -36,6 +36,7 @@ public:
DECLARE_WRITE8_MEMBER(kongambl_ff_w);
DECLARE_DRIVER_INIT(kingtut);
DECLARE_VIDEO_START(kongambl);
+ UINT32 screen_update_kongambl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -54,10 +55,9 @@ VIDEO_START_MEMBER(kongambl_state,kongambl)
#endif
}
-static SCREEN_UPDATE_IND16(kongambl)
+UINT32 kongambl_state::screen_update_kongambl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
#if CUSTOM_DRAW
- kongambl_state *state = screen.machine().driver_data<kongambl_state>();
gfx_element *gfx = screen.machine().gfx[0];
UINT32 count;
@@ -67,7 +67,7 @@ static SCREEN_UPDATE_IND16(kongambl)
{
for (int x=0;x<128;x++)
{
- UINT32 tile = state->m_vram[count] & 0xffff;
+ UINT32 tile = m_vram[count] & 0xffff;
if(screen.machine().primary_screen->visible_area().contains(x*8, y*8))
drawgfx_opaque(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*8);
@@ -82,7 +82,7 @@ static SCREEN_UPDATE_IND16(kongambl)
{
for (int x=0;x<128;x++)
{
- UINT32 tile = state->m_vram[count] & 0xffff;
+ UINT32 tile = m_vram[count] & 0xffff;
if(screen.machine().primary_screen->visible_area().contains(x*8, y*8))
drawgfx_transpen(bitmap,cliprect,gfx,tile,0,0,0,x*8,y*8,0);
@@ -607,7 +607,7 @@ static MACHINE_CONFIG_START( kongambl, kongambl_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500))
MCFG_SCREEN_SIZE(96*8, 64*8+16)
MCFG_SCREEN_VISIBLE_AREA(0*8, 80*8-1, 0*8, 64*8-1)
- MCFG_SCREEN_UPDATE_STATIC(kongambl)
+ MCFG_SCREEN_UPDATE_DRIVER(kongambl_state, screen_update_kongambl)
MCFG_PALETTE_LENGTH(0x8000)
diff --git a/src/mame/drivers/tatsumi.c b/src/mame/drivers/tatsumi.c
index 18dd5213dce..1172c37823f 100644
--- a/src/mame/drivers/tatsumi.c
+++ b/src/mame/drivers/tatsumi.c
@@ -893,7 +893,7 @@ static MACHINE_CONFIG_START( apache3, tatsumi_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(CLOCK_2 / 8, 400, 0, 320, 280, 0, 240) // TODO: Hook up CRTC
- MCFG_SCREEN_UPDATE_STATIC(apache3)
+ MCFG_SCREEN_UPDATE_DRIVER(tatsumi_state, screen_update_apache3)
MCFG_GFXDECODE(apache3)
MCFG_PALETTE_LENGTH(1024 + 4096) /* 1024 real colours, and 4096 arranged as series of cluts */
@@ -934,7 +934,7 @@ static MACHINE_CONFIG_START( roundup5, tatsumi_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(roundup5)
+ MCFG_SCREEN_UPDATE_DRIVER(tatsumi_state, screen_update_roundup5)
MCFG_GFXDECODE(roundup5)
MCFG_PALETTE_LENGTH(1024 + 4096) /* 1024 real colours, and 4096 arranged as series of cluts */
@@ -976,7 +976,7 @@ static MACHINE_CONFIG_START( cyclwarr, tatsumi_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(cyclwarr)
+ MCFG_SCREEN_UPDATE_DRIVER(tatsumi_state, screen_update_cyclwarr)
MCFG_GFXDECODE(cyclwarr)
MCFG_PALETTE_LENGTH(8192 + 8192)
@@ -1018,7 +1018,7 @@ static MACHINE_CONFIG_START( bigfight, tatsumi_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(bigfight)
+ MCFG_SCREEN_UPDATE_DRIVER(tatsumi_state, screen_update_bigfight)
MCFG_GFXDECODE(cyclwarr)
MCFG_PALETTE_LENGTH(8192 + 8192)
diff --git a/src/mame/drivers/tattack.c b/src/mame/drivers/tattack.c
index 6ae2424485b..5b96ad4995a 100644
--- a/src/mame/drivers/tattack.c
+++ b/src/mame/drivers/tattack.c
@@ -37,6 +37,7 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_tattack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -58,11 +59,10 @@ TILE_GET_INFO_MEMBER(tattack_state::get_tile_info)
0);
}
-static SCREEN_UPDATE_IND16( tattack )
+UINT32 tattack_state::screen_update_tattack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tattack_state *state = screen.machine().driver_data<tattack_state>();
- state->m_tmap->mark_all_dirty();
- state->m_tmap->draw(bitmap, cliprect, 0,0);
+ m_tmap->mark_all_dirty();
+ m_tmap->draw(bitmap, cliprect, 0,0);
return 0;
}
@@ -209,7 +209,7 @@ static MACHINE_CONFIG_START( tattack, tattack_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tattack)
+ MCFG_SCREEN_UPDATE_DRIVER(tattack_state, screen_update_tattack)
MCFG_GFXDECODE(tattack)
MCFG_PALETTE_LENGTH(16)
diff --git a/src/mame/drivers/taxidriv.c b/src/mame/drivers/taxidriv.c
index 04893bada5a..17d022284ee 100644
--- a/src/mame/drivers/taxidriv.c
+++ b/src/mame/drivers/taxidriv.c
@@ -395,7 +395,7 @@ static MACHINE_CONFIG_START( taxidriv, taxidriv_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 27*8-1)
- MCFG_SCREEN_UPDATE_STATIC(taxidriv)
+ MCFG_SCREEN_UPDATE_DRIVER(taxidriv_state, screen_update_taxidriv)
MCFG_GFXDECODE(taxidriv)
MCFG_PALETTE_LENGTH(16)
diff --git a/src/mame/drivers/tbowl.c b/src/mame/drivers/tbowl.c
index 4d40cf8bab9..473cbfe4149 100644
--- a/src/mame/drivers/tbowl.c
+++ b/src/mame/drivers/tbowl.c
@@ -482,14 +482,14 @@ static MACHINE_CONFIG_START( tbowl, tbowl_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tbowl_left)
+ MCFG_SCREEN_UPDATE_DRIVER(tbowl_state, screen_update_tbowl_left)
MCFG_SCREEN_ADD("rscreen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tbowl_right)
+ MCFG_SCREEN_UPDATE_DRIVER(tbowl_state, screen_update_tbowl_right)
diff --git a/src/mame/drivers/tceptor.c b/src/mame/drivers/tceptor.c
index b9adde8e153..81b0ce89e40 100644
--- a/src/mame/drivers/tceptor.c
+++ b/src/mame/drivers/tceptor.c
@@ -398,22 +398,22 @@ static MACHINE_CONFIG_START( tceptor, tceptor_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(38*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(2*8, 34*8-1 + 2*8, 0*8, 28*8-1 + 0)
- MCFG_SCREEN_UPDATE_STATIC(tceptor_2d)
+ MCFG_SCREEN_UPDATE_DRIVER(tceptor_state, screen_update_tceptor_2d)
MCFG_SCREEN_ADD("3dleft", RASTER)
MCFG_SCREEN_REFRESH_RATE(60.606060)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(38*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(2*8, 34*8-1 + 2*8, 0*8, 28*8-1 + 0)
- MCFG_SCREEN_UPDATE_STATIC(tceptor_3d_left)
+ MCFG_SCREEN_UPDATE_DRIVER(tceptor_state, screen_update_tceptor_3d_left)
MCFG_SCREEN_ADD("3dright", RASTER)
MCFG_SCREEN_REFRESH_RATE(60.606060)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(38*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(2*8, 34*8-1 + 2*8, 0*8, 28*8-1 + 0)
- MCFG_SCREEN_UPDATE_STATIC(tceptor_3d_right)
- MCFG_SCREEN_VBLANK_STATIC(tceptor)
+ MCFG_SCREEN_UPDATE_DRIVER(tceptor_state, screen_update_tceptor_3d_right)
+ MCFG_SCREEN_VBLANK_DRIVER(tceptor_state, screen_eof_tceptor)
diff --git a/src/mame/drivers/tcl.c b/src/mame/drivers/tcl.c
index b7482bf984e..97a565a16e1 100644
--- a/src/mame/drivers/tcl.c
+++ b/src/mame/drivers/tcl.c
@@ -54,13 +54,14 @@ public:
DECLARE_DRIVER_INIT(tcl);
virtual void video_start();
+ UINT32 screen_update_tcl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
void tcl_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( tcl )
+UINT32 tcl_state::screen_update_tcl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -135,7 +136,7 @@ static MACHINE_CONFIG_START( tcl, tcl_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tcl)
+ MCFG_SCREEN_UPDATE_DRIVER(tcl_state, screen_update_tcl)
MCFG_GFXDECODE(tcl)
MCFG_PALETTE_LENGTH(16*16)
diff --git a/src/mame/drivers/tecmo.c b/src/mame/drivers/tecmo.c
index 3961b8fb4f1..9010def04b9 100644
--- a/src/mame/drivers/tecmo.c
+++ b/src/mame/drivers/tecmo.c
@@ -644,7 +644,7 @@ static MACHINE_CONFIG_START( rygar, tecmo_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tecmo)
+ MCFG_SCREEN_UPDATE_DRIVER(tecmo_state, screen_update_tecmo)
MCFG_GFXDECODE(tecmo)
MCFG_PALETTE_LENGTH(1024)
@@ -703,7 +703,7 @@ static MACHINE_CONFIG_START( backfirt, tecmo_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0) /* frames per second, vblank duration */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tecmo)
+ MCFG_SCREEN_UPDATE_DRIVER(tecmo_state, screen_update_tecmo)
MCFG_GFXDECODE(tecmo)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/tecmo16.c b/src/mame/drivers/tecmo16.c
index f5ae1357cbe..fa025813321 100644
--- a/src/mame/drivers/tecmo16.c
+++ b/src/mame/drivers/tecmo16.c
@@ -391,7 +391,7 @@ static MACHINE_CONFIG_START( fstarfrc, tecmo16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tecmo16)
+ MCFG_SCREEN_UPDATE_DRIVER(tecmo16_state, screen_update_tecmo16)
MCFG_GFXDECODE(tecmo16)
MCFG_PALETTE_LENGTH(4096)
diff --git a/src/mame/drivers/tecmosys.c b/src/mame/drivers/tecmosys.c
index 79f9bd09a6d..171c5fa73c6 100644
--- a/src/mame/drivers/tecmosys.c
+++ b/src/mame/drivers/tecmosys.c
@@ -474,7 +474,7 @@ static MACHINE_CONFIG_START( deroon, tecmosys_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(3000))
MCFG_SCREEN_SIZE(64*8, 64*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tecmosys)
+ MCFG_SCREEN_UPDATE_DRIVER(tecmosys_state, screen_update_tecmosys)
MCFG_PALETTE_LENGTH(0x4000+0x800)
diff --git a/src/mame/drivers/tehkanwc.c b/src/mame/drivers/tehkanwc.c
index 53dc391b3b4..548f99436b9 100644
--- a/src/mame/drivers/tehkanwc.c
+++ b/src/mame/drivers/tehkanwc.c
@@ -661,7 +661,7 @@ static MACHINE_CONFIG_START( tehkanwc, tehkanwc_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tehkanwc)
+ MCFG_SCREEN_UPDATE_DRIVER(tehkanwc_state, screen_update_tehkanwc)
MCFG_GFXDECODE(tehkanwc)
MCFG_PALETTE_LENGTH(768)
diff --git a/src/mame/drivers/terracre.c b/src/mame/drivers/terracre.c
index 6ca648baebd..4017d40c5fa 100644
--- a/src/mame/drivers/terracre.c
+++ b/src/mame/drivers/terracre.c
@@ -542,7 +542,7 @@ static MACHINE_CONFIG_START( amazon, terracre_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(amazon)
+ MCFG_SCREEN_UPDATE_DRIVER(terracre_state, screen_update_amazon)
MCFG_GFXDECODE(terracre)
MCFG_PALETTE_LENGTH(1*16+16*16+16*256)
@@ -575,7 +575,7 @@ static MACHINE_CONFIG_START( ym3526, terracre_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(amazon)
+ MCFG_SCREEN_UPDATE_DRIVER(terracre_state, screen_update_amazon)
MCFG_GFXDECODE(terracre)
MCFG_PALETTE_LENGTH(1*16+16*16+16*256)
@@ -608,7 +608,7 @@ static MACHINE_CONFIG_START( ym2203, terracre_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(amazon)
+ MCFG_SCREEN_UPDATE_DRIVER(terracre_state, screen_update_amazon)
MCFG_GFXDECODE(terracre)
MCFG_PALETTE_LENGTH(1*16+16*16+16*256)
diff --git a/src/mame/drivers/tetrisp2.c b/src/mame/drivers/tetrisp2.c
index 7b9adf774ad..0ab6d1c40cd 100644
--- a/src/mame/drivers/tetrisp2.c
+++ b/src/mame/drivers/tetrisp2.c
@@ -1340,7 +1340,7 @@ static MACHINE_CONFIG_START( tetrisp2, tetrisp2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x140, 0xe0)
MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1)
- MCFG_SCREEN_UPDATE_STATIC(tetrisp2)
+ MCFG_SCREEN_UPDATE_DRIVER(tetrisp2_state, screen_update_tetrisp2)
MCFG_GFXDECODE(tetrisp2)
MCFG_PALETTE_LENGTH(0x8000)
@@ -1371,7 +1371,7 @@ static MACHINE_CONFIG_START( nndmseal, tetrisp2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x180, 0xf0)
MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1, 0, 0xf0-1)
- MCFG_SCREEN_UPDATE_STATIC(tetrisp2)
+ MCFG_SCREEN_UPDATE_DRIVER(tetrisp2_state, screen_update_tetrisp2)
MCFG_GFXDECODE(tetrisp2)
MCFG_PALETTE_LENGTH(0x8000)
@@ -1401,7 +1401,7 @@ static MACHINE_CONFIG_START( rockn, tetrisp2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x140, 0xe0)
MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1)
- MCFG_SCREEN_UPDATE_STATIC(rockntread)
+ MCFG_SCREEN_UPDATE_DRIVER(tetrisp2_state, screen_update_rockntread)
MCFG_GFXDECODE(tetrisp2)
MCFG_PALETTE_LENGTH(0x8000)
@@ -1432,7 +1432,7 @@ static MACHINE_CONFIG_START( rockn2, tetrisp2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x140, 0xe0)
MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1)
- MCFG_SCREEN_UPDATE_STATIC(rockntread)
+ MCFG_SCREEN_UPDATE_DRIVER(tetrisp2_state, screen_update_rockntread)
MCFG_GFXDECODE(tetrisp2)
MCFG_PALETTE_LENGTH(0x8000)
@@ -1472,14 +1472,14 @@ static MACHINE_CONFIG_START( rocknms, tetrisp2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x140, 0xe0)
MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1)
- MCFG_SCREEN_UPDATE_STATIC(rocknms_left)
+ MCFG_SCREEN_UPDATE_DRIVER(tetrisp2_state, screen_update_rocknms_left)
MCFG_SCREEN_ADD("rscreen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x140, 0xe0)
MCFG_SCREEN_VISIBLE_AREA(0, 0x140-1, 0, 0xe0-1)
- MCFG_SCREEN_UPDATE_STATIC(rocknms_right)
+ MCFG_SCREEN_UPDATE_DRIVER(tetrisp2_state, screen_update_rocknms_right)
MCFG_VIDEO_START_OVERRIDE(tetrisp2_state,rocknms)
@@ -1509,21 +1509,21 @@ static MACHINE_CONFIG_START( stepstag, stepstag_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x160, 0x100)
MCFG_SCREEN_VISIBLE_AREA(0, 0x160-1, 0, 0xf0-1)
- MCFG_SCREEN_UPDATE_STATIC(stepstag_left)
+ MCFG_SCREEN_UPDATE_DRIVER(stepstag_state, screen_update_stepstag_left)
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x160, 0x100)
MCFG_SCREEN_VISIBLE_AREA(0, 0x160-1, 0, 0xf0-1)
- MCFG_SCREEN_UPDATE_STATIC(stepstag_mid)
+ MCFG_SCREEN_UPDATE_DRIVER(stepstag_state, screen_update_stepstag_mid)
MCFG_SCREEN_ADD("rscreen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x160, 0x100)
MCFG_SCREEN_VISIBLE_AREA(0, 0x160-1, 0, 0xf0-1)
- MCFG_SCREEN_UPDATE_STATIC(stepstag_right)
+ MCFG_SCREEN_UPDATE_DRIVER(stepstag_state, screen_update_stepstag_right)
MCFG_PALETTE_LENGTH(0x8000) // 0x8000 * 3 needed I guess, but it hits an assert
diff --git a/src/mame/drivers/tgtpanic.c b/src/mame/drivers/tgtpanic.c
index be5182416ea..cfc29194bd5 100644
--- a/src/mame/drivers/tgtpanic.c
+++ b/src/mame/drivers/tgtpanic.c
@@ -23,6 +23,7 @@ public:
required_shared_ptr<UINT8> m_ram;
UINT8 m_color;
DECLARE_WRITE8_MEMBER(color_w);
+ UINT32 screen_update_tgtpanic(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -32,21 +33,20 @@ public:
*
*************************************/
-static SCREEN_UPDATE_RGB32( tgtpanic )
+UINT32 tgtpanic_state::screen_update_tgtpanic(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- tgtpanic_state *state = screen.machine().driver_data<tgtpanic_state>();
UINT32 colors[4];
UINT32 offs;
UINT32 x, y;
colors[0] = 0;
colors[1] = 0xffffffff;
- colors[2] = MAKE_RGB(pal1bit(state->m_color >> 2), pal1bit(state->m_color >> 1), pal1bit(state->m_color >> 0));
- colors[3] = MAKE_RGB(pal1bit(state->m_color >> 6), pal1bit(state->m_color >> 5), pal1bit(state->m_color >> 4));
+ colors[2] = MAKE_RGB(pal1bit(m_color >> 2), pal1bit(m_color >> 1), pal1bit(m_color >> 0));
+ colors[3] = MAKE_RGB(pal1bit(m_color >> 6), pal1bit(m_color >> 5), pal1bit(m_color >> 4));
for (offs = 0; offs < 0x2000; ++offs)
{
- UINT8 val = state->m_ram[offs];
+ UINT8 val = m_ram[offs];
y = (offs & 0x7f) << 1;
x = (offs >> 7) << 2;
@@ -142,7 +142,7 @@ static MACHINE_CONFIG_START( tgtpanic, tgtpanic_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* Unverified */
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 192 - 1, 0, 192 - 1)
- MCFG_SCREEN_UPDATE_STATIC(tgtpanic)
+ MCFG_SCREEN_UPDATE_DRIVER(tgtpanic_state, screen_update_tgtpanic)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/thedeep.c b/src/mame/drivers/thedeep.c
index 3a921e0f9e1..4fb033be25c 100644
--- a/src/mame/drivers/thedeep.c
+++ b/src/mame/drivers/thedeep.c
@@ -468,7 +468,7 @@ static MACHINE_CONFIG_START( thedeep, thedeep_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x100, 0xf8)
MCFG_SCREEN_VISIBLE_AREA(0, 0x100-1, 0, 0xf8-1)
- MCFG_SCREEN_UPDATE_STATIC(thedeep)
+ MCFG_SCREEN_UPDATE_DRIVER(thedeep_state, screen_update_thedeep)
MCFG_GFXDECODE(thedeep)
MCFG_PALETTE_LENGTH(512)
diff --git a/src/mame/drivers/thepit.c b/src/mame/drivers/thepit.c
index ccc38c8e062..ba9265eb31c 100644
--- a/src/mame/drivers/thepit.c
+++ b/src/mame/drivers/thepit.c
@@ -661,7 +661,7 @@ static MACHINE_CONFIG_START( thepit, thepit_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(thepit)
+ MCFG_SCREEN_UPDATE_DRIVER(thepit_state, screen_update_thepit)
/* sound hardware */
diff --git a/src/mame/drivers/thief.c b/src/mame/drivers/thief.c
index c197f17f49d..f8d5f30e11d 100644
--- a/src/mame/drivers/thief.c
+++ b/src/mame/drivers/thief.c
@@ -447,7 +447,7 @@ static MACHINE_CONFIG_START( sharkatt, thief_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 24*8-1)
- MCFG_SCREEN_UPDATE_STATIC(thief)
+ MCFG_SCREEN_UPDATE_DRIVER(thief_state, screen_update_thief)
MCFG_TMS9927_ADD("tms", MASTER_CLOCK/4, tms9927_intf)
@@ -482,7 +482,7 @@ static MACHINE_CONFIG_START( thief, thief_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(thief)
+ MCFG_SCREEN_UPDATE_DRIVER(thief_state, screen_update_thief)
MCFG_TMS9927_ADD("tms", MASTER_CLOCK/4, tms9927_intf)
@@ -517,7 +517,7 @@ static MACHINE_CONFIG_START( natodef, thief_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(thief)
+ MCFG_SCREEN_UPDATE_DRIVER(thief_state, screen_update_thief)
MCFG_TMS9927_ADD("tms", MASTER_CLOCK/4, tms9927_intf)
diff --git a/src/mame/drivers/thoop2.c b/src/mame/drivers/thoop2.c
index 61492c96cbb..ee4f35e27f8 100644
--- a/src/mame/drivers/thoop2.c
+++ b/src/mame/drivers/thoop2.c
@@ -199,7 +199,7 @@ static MACHINE_CONFIG_START( thoop2, thoop2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*16, 32*16)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 16, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(thoop2)
+ MCFG_SCREEN_UPDATE_DRIVER(thoop2_state, screen_update_thoop2)
MCFG_GFXDECODE(thoop2)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/thunderj.c b/src/mame/drivers/thunderj.c
index d4c5b32ecbc..fbe87f0dbe5 100644
--- a/src/mame/drivers/thunderj.c
+++ b/src/mame/drivers/thunderj.c
@@ -305,7 +305,7 @@ static MACHINE_CONFIG_START( thunderj, thunderj_state )
/* note: these parameters are from published specs, not derived */
/* the board uses a VAD chip to generate video signals */
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(thunderj)
+ MCFG_SCREEN_UPDATE_DRIVER(thunderj_state, screen_update_thunderj)
MCFG_VIDEO_START_OVERRIDE(thunderj_state,thunderj)
diff --git a/src/mame/drivers/thunderx.c b/src/mame/drivers/thunderx.c
index 6615295592e..7ca009fd0a1 100644
--- a/src/mame/drivers/thunderx.c
+++ b/src/mame/drivers/thunderx.c
@@ -674,7 +674,7 @@ static MACHINE_CONFIG_START( scontra, thunderx_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(scontra)
+ MCFG_SCREEN_UPDATE_DRIVER(thunderx_state, screen_update_scontra)
MCFG_PALETTE_LENGTH(1024)
@@ -717,7 +717,7 @@ static MACHINE_CONFIG_START( thunderx, thunderx_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(scontra)
+ MCFG_SCREEN_UPDATE_DRIVER(thunderx_state, screen_update_scontra)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/tiamc1.c b/src/mame/drivers/tiamc1.c
index bb63512628c..1b8e56b35b0 100644
--- a/src/mame/drivers/tiamc1.c
+++ b/src/mame/drivers/tiamc1.c
@@ -233,7 +233,7 @@ static MACHINE_CONFIG_START( tiamc1, tiamc1_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1600))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(tiamc1)
+ MCFG_SCREEN_UPDATE_DRIVER(tiamc1_state, screen_update_tiamc1)
MCFG_GFXDECODE(tiamc1)
MCFG_PALETTE_LENGTH(16)
diff --git a/src/mame/drivers/tigeroad.c b/src/mame/drivers/tigeroad.c
index 25a7012ac17..af81d962a94 100644
--- a/src/mame/drivers/tigeroad.c
+++ b/src/mame/drivers/tigeroad.c
@@ -536,7 +536,7 @@ static MACHINE_CONFIG_START( tigeroad, tigeroad_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tigeroad)
+ MCFG_SCREEN_UPDATE_DRIVER(tigeroad_state, screen_update_tigeroad)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(tigeroad)
diff --git a/src/mame/drivers/timelimt.c b/src/mame/drivers/timelimt.c
index d28826cd056..a55630dff9f 100644
--- a/src/mame/drivers/timelimt.c
+++ b/src/mame/drivers/timelimt.c
@@ -245,7 +245,7 @@ static MACHINE_CONFIG_START( timelimt, timelimt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(timelimt)
+ MCFG_SCREEN_UPDATE_DRIVER(timelimt_state, screen_update_timelimt)
MCFG_GFXDECODE(timelimt)
MCFG_PALETTE_LENGTH(64+32)
diff --git a/src/mame/drivers/timeplt.c b/src/mame/drivers/timeplt.c
index 4b89fbe269b..e19acad6a45 100644
--- a/src/mame/drivers/timeplt.c
+++ b/src/mame/drivers/timeplt.c
@@ -480,7 +480,7 @@ static MACHINE_CONFIG_START( timeplt, timeplt_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(timeplt)
+ MCFG_SCREEN_UPDATE_DRIVER(timeplt_state, screen_update_timeplt)
MCFG_GFXDECODE(timeplt)
MCFG_PALETTE_LENGTH(32*4+64*4)
diff --git a/src/mame/drivers/timetrv.c b/src/mame/drivers/timetrv.c
index 4c54e7b8888..64c381353ce 100644
--- a/src/mame/drivers/timetrv.c
+++ b/src/mame/drivers/timetrv.c
@@ -42,6 +42,7 @@ public:
DECLARE_READ8_MEMBER(in_r);
DECLARE_READ8_MEMBER(ld_r);
virtual void video_start();
+ UINT32 screen_update_timetrv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -51,10 +52,9 @@ void timetrv_state::video_start()
}
-static SCREEN_UPDATE_RGB32( timetrv )
+UINT32 timetrv_state::screen_update_timetrv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- timetrv_state *state = screen.machine().driver_data<timetrv_state>();
- popmessage("%s%s",reinterpret_cast<char *>(state->m_led_vram_lo.target()),reinterpret_cast<char *>(state->m_led_vram_hi.target()));
+ popmessage("%s%s",reinterpret_cast<char *>(m_led_vram_lo.target()),reinterpret_cast<char *>(m_led_vram_hi.target()));
return 0;
}
@@ -159,7 +159,7 @@ static MACHINE_CONFIG_START( timetrv, timetrv_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 512)
MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0*8, 512-1)
- MCFG_SCREEN_UPDATE_STATIC(timetrv)
+ MCFG_SCREEN_UPDATE_DRIVER(timetrv_state, screen_update_timetrv)
MCFG_PALETTE_LENGTH(512)
diff --git a/src/mame/drivers/tmaster.c b/src/mame/drivers/tmaster.c
index e931fa46354..9ac49733637 100644
--- a/src/mame/drivers/tmaster.c
+++ b/src/mame/drivers/tmaster.c
@@ -183,6 +183,7 @@ public:
DECLARE_VIDEO_START(tmaster);
DECLARE_MACHINE_RESET(galgames);
DECLARE_VIDEO_START(galgames);
+ UINT32 screen_update_tmaster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -357,9 +358,8 @@ VIDEO_START_MEMBER(tmaster_state,galgames)
m_compute_addr = galgames_compute_addr;
}
-static SCREEN_UPDATE_IND16( tmaster )
+UINT32 tmaster_state::screen_update_tmaster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tmaster_state *state = screen.machine().driver_data<tmaster_state>();
int layers_ctrl = -1;
#ifdef MAME_DEBUG
@@ -375,8 +375,8 @@ static SCREEN_UPDATE_IND16( tmaster )
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- if (layers_ctrl & 1) copybitmap_trans(bitmap, state->m_bitmap[0][(state->m_regs[0x02/2]>>8)&1], 0,0,0,0, cliprect, 0xff);
- if (layers_ctrl & 2) copybitmap_trans(bitmap, state->m_bitmap[1][(state->m_regs[0x02/2]>>9)&1], 0,0,0,0, cliprect, 0xff);
+ if (layers_ctrl & 1) copybitmap_trans(bitmap, m_bitmap[0][(m_regs[0x02/2]>>8)&1], 0,0,0,0, cliprect, 0xff);
+ if (layers_ctrl & 2) copybitmap_trans(bitmap, m_bitmap[1][(m_regs[0x02/2]>>9)&1], 0,0,0,0, cliprect, 0xff);
return 0;
}
@@ -941,7 +941,7 @@ static MACHINE_CONFIG_START( tm3k, tmaster_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(400, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(tmaster)
+ MCFG_SCREEN_UPDATE_DRIVER(tmaster_state, screen_update_tmaster)
MCFG_PALETTE_LENGTH(0x1000)
@@ -998,7 +998,7 @@ static MACHINE_CONFIG_START( galgames, tmaster_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(400, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 400-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(tmaster)
+ MCFG_SCREEN_UPDATE_DRIVER(tmaster_state, screen_update_tmaster)
MCFG_PALETTE_LENGTH(0x1000) // only 0x100 used
diff --git a/src/mame/drivers/tmmjprd.c b/src/mame/drivers/tmmjprd.c
index 51eb5bd627e..648c28e25f4 100644
--- a/src/mame/drivers/tmmjprd.c
+++ b/src/mame/drivers/tmmjprd.c
@@ -67,6 +67,8 @@ public:
DECLARE_WRITE32_MEMBER(tmmjprd_brt_2_w);
DECLARE_WRITE32_MEMBER(tmmjprd_eeprom_write);
virtual void video_start();
+ UINT32 screen_update_tmmjprd_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_tmmjprd_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -289,51 +291,49 @@ static void ttmjprd_draw_tilemap(running_machine &machine, bitmap_ind16 &bitmap,
}
-static SCREEN_UPDATE_IND16( tmmjprd_left )
+UINT32 tmmjprd_state::screen_update_tmmjprd_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tmmjprd_state *state = screen.machine().driver_data<tmmjprd_state>();
- UINT8* gfxroms = state->memregion("gfx2")->base();
+ UINT8* gfxroms = memregion("gfx2")->base();
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, state->m_tilemap_ram[3], state->m_tilemap_regs[3], gfxroms );
+ ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, m_tilemap_ram[3], m_tilemap_regs[3], gfxroms );
draw_sprites(screen.machine(),bitmap,cliprect, 1);
- ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, state->m_tilemap_ram[2], state->m_tilemap_regs[2], gfxroms );
+ ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, m_tilemap_ram[2], m_tilemap_regs[2], gfxroms );
/*
popmessage("%08x %08x %08x %08x %08x %08x",
- state->m_tilemap_regs[2][0],
- state->m_tilemap_regs[2][1],
- state->m_tilemap_regs[2][2],
- state->m_tilemap_regs[2][3],
- state->m_tilemap_regs[2][4],
- state->m_tilemap_regs[2][5]);
+ m_tilemap_regs[2][0],
+ m_tilemap_regs[2][1],
+ m_tilemap_regs[2][2],
+ m_tilemap_regs[2][3],
+ m_tilemap_regs[2][4],
+ m_tilemap_regs[2][5]);
*/
/*
popmessage("%08x %08x %08x %08x %08x %08x %08x",
- state->m_spriteregs[0],
- state->m_spriteregs[1],
- state->m_spriteregs[2],
- state->m_spriteregs[3],
- state->m_spriteregs[4],
- state->m_spriteregs[5],
- state->m_spriteregs[6]);
+ m_spriteregs[0],
+ m_spriteregs[1],
+ m_spriteregs[2],
+ m_spriteregs[3],
+ m_spriteregs[4],
+ m_spriteregs[5],
+ m_spriteregs[6]);
*/
return 0;
}
-static SCREEN_UPDATE_IND16( tmmjprd_right )
+UINT32 tmmjprd_state::screen_update_tmmjprd_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tmmjprd_state *state = screen.machine().driver_data<tmmjprd_state>();
- UINT8* gfxroms = state->memregion("gfx2")->base();
+ UINT8* gfxroms = memregion("gfx2")->base();
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, state->m_tilemap_ram[1], state->m_tilemap_regs[1], gfxroms );
+ ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, m_tilemap_ram[1], m_tilemap_regs[1], gfxroms );
draw_sprites(screen.machine(),bitmap,cliprect, 0);
- ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, state->m_tilemap_ram[0], state->m_tilemap_regs[0], gfxroms );
+ ttmjprd_draw_tilemap( screen.machine(), bitmap, cliprect, m_tilemap_ram[0], m_tilemap_regs[0], gfxroms );
return 0;
}
@@ -770,7 +770,7 @@ static MACHINE_CONFIG_START( tmmjprd, tmmjprd_state )
MCFG_SCREEN_SIZE(64*16, 64*16)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
//MCFG_SCREEN_VISIBLE_AREA(0*8, 64*16-1, 0*8, 64*16-1)
- MCFG_SCREEN_UPDATE_STATIC(tmmjprd_left)
+ MCFG_SCREEN_UPDATE_DRIVER(tmmjprd_state, screen_update_tmmjprd_left)
MCFG_SCREEN_ADD("rscreen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
@@ -778,7 +778,7 @@ static MACHINE_CONFIG_START( tmmjprd, tmmjprd_state )
MCFG_SCREEN_SIZE(64*16, 64*16)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 28*8-1)
//MCFG_SCREEN_VISIBLE_AREA(0*8, 64*16-1, 0*8, 64*16-1)
- MCFG_SCREEN_UPDATE_STATIC(tmmjprd_right)
+ MCFG_SCREEN_UPDATE_DRIVER(tmmjprd_state, screen_update_tmmjprd_right)
/* sound hardware */
diff --git a/src/mame/drivers/tmnt.c b/src/mame/drivers/tmnt.c
index 3d6e984c815..3d9e01dd412 100644
--- a/src/mame/drivers/tmnt.c
+++ b/src/mame/drivers/tmnt.c
@@ -2269,7 +2269,7 @@ static MACHINE_CONFIG_START( cuebrick, tmnt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(mia)
+ MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_mia)
MCFG_PALETTE_LENGTH(1024)
MCFG_NVRAM_ADD_0FILL("nvram")
@@ -2310,7 +2310,7 @@ static MACHINE_CONFIG_START( mia, tmnt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(mia)
+ MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_mia)
MCFG_PALETTE_LENGTH(1024)
@@ -2363,7 +2363,7 @@ static MACHINE_CONFIG_START( tmnt, tmnt_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
//MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 )
MCFG_SCREEN_VISIBLE_AREA(13*8-8, (64-13)*8-1+8, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(tmnt)
+ MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_tmnt)
// We see something strange in the left 8 pixels and the right 8 pixels, but it is same as real PCB.
MCFG_PALETTE_LENGTH(1024)
@@ -2415,7 +2415,7 @@ static MACHINE_CONFIG_START( punkshot, tmnt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(punkshot)
+ MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_punkshot)
MCFG_PALETTE_LENGTH(2048)
@@ -2456,7 +2456,7 @@ static MACHINE_CONFIG_START( lgtnfght, tmnt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(lgtnfght)
+ MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_lgtnfght)
MCFG_PALETTE_LENGTH(2048)
@@ -2503,8 +2503,8 @@ static MACHINE_CONFIG_START( blswhstl, tmnt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-15)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(lgtnfght)
- MCFG_SCREEN_VBLANK_STATIC( blswhstl )
+ MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_lgtnfght)
+ MCFG_SCREEN_VBLANK_DRIVER(tmnt_state, screen_eof_blswhstl)
MCFG_PALETTE_LENGTH(2048)
@@ -2567,7 +2567,7 @@ static MACHINE_CONFIG_START( glfgreat, tmnt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(glfgreat)
+ MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_glfgreat)
MCFG_GFXDECODE(glfgreat)
MCFG_PALETTE_LENGTH(2048)
@@ -2632,7 +2632,7 @@ static MACHINE_CONFIG_START( prmrsocr, tmnt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(glfgreat)
+ MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_glfgreat)
MCFG_GFXDECODE(glfgreat)
MCFG_PALETTE_LENGTH(2048)
@@ -2681,7 +2681,7 @@ static MACHINE_CONFIG_START( tmnt2, tmnt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(tmnt2)
+ MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_tmnt2)
MCFG_PALETTE_LENGTH(2048)
@@ -2728,7 +2728,7 @@ static MACHINE_CONFIG_START( ssriders, tmnt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(tmnt2)
+ MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_tmnt2)
MCFG_PALETTE_LENGTH(2048)
@@ -2771,7 +2771,7 @@ static MACHINE_CONFIG_START( sunsetbl, tmnt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(tmnt2)
+ MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_tmnt2)
MCFG_PALETTE_LENGTH(2048)
@@ -2811,7 +2811,7 @@ static MACHINE_CONFIG_START( thndrx2, tmnt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(thndrx2)
+ MCFG_SCREEN_UPDATE_DRIVER(tmnt_state, screen_update_thndrx2)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/tmspoker.c b/src/mame/drivers/tmspoker.c
index 1c69ee2a22d..92604f68fac 100644
--- a/src/mame/drivers/tmspoker.c
+++ b/src/mame/drivers/tmspoker.c
@@ -232,6 +232,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_tmspoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -264,10 +265,9 @@ void tmspoker_state::video_start()
m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(tmspoker_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
-static SCREEN_UPDATE_IND16( tmspoker )
+UINT32 tmspoker_state::screen_update_tmspoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tmspoker_state *state = screen.machine().driver_data<tmspoker_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -583,7 +583,7 @@ static MACHINE_CONFIG_START( tmspoker, tmspoker_state )
MCFG_PALETTE_LENGTH(256)
- MCFG_SCREEN_UPDATE_STATIC(tmspoker)
+ MCFG_SCREEN_UPDATE_DRIVER(tmspoker_state, screen_update_tmspoker)
MCFG_MC6845_ADD("crtc", MC6845, MASTER_CLOCK/4, mc6845_intf) /* guess */
diff --git a/src/mame/drivers/tnzs.c b/src/mame/drivers/tnzs.c
index cbcfeab1006..06a88b6f265 100644
--- a/src/mame/drivers/tnzs.c
+++ b/src/mame/drivers/tnzs.c
@@ -1639,8 +1639,8 @@ static MACHINE_CONFIG_START( arknoid2, tnzs_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tnzs)
- MCFG_SCREEN_VBLANK_STATIC(tnzs)
+ MCFG_SCREEN_UPDATE_DRIVER(tnzs_state, screen_update_tnzs)
+ MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs)
MCFG_GFXDECODE(tnzs)
MCFG_PALETTE_LENGTH(512)
@@ -1680,8 +1680,8 @@ static MACHINE_CONFIG_START( drtoppel, tnzs_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tnzs)
- MCFG_SCREEN_VBLANK_STATIC(tnzs)
+ MCFG_SCREEN_UPDATE_DRIVER(tnzs_state, screen_update_tnzs)
+ MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs)
MCFG_GFXDECODE(tnzs)
MCFG_PALETTE_LENGTH(512)
@@ -1724,8 +1724,8 @@ static MACHINE_CONFIG_START( tnzs, tnzs_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tnzs)
- MCFG_SCREEN_VBLANK_STATIC(tnzs)
+ MCFG_SCREEN_UPDATE_DRIVER(tnzs_state, screen_update_tnzs)
+ MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs)
MCFG_GFXDECODE(tnzs)
MCFG_PALETTE_LENGTH(512)
@@ -1764,8 +1764,8 @@ static MACHINE_CONFIG_START( insectx, tnzs_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tnzs)
- MCFG_SCREEN_VBLANK_STATIC(tnzs)
+ MCFG_SCREEN_UPDATE_DRIVER(tnzs_state, screen_update_tnzs)
+ MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs)
MCFG_GFXDECODE(insectx)
MCFG_PALETTE_LENGTH(512)
@@ -1803,8 +1803,8 @@ static MACHINE_CONFIG_START( kageki, tnzs_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tnzs)
- MCFG_SCREEN_VBLANK_STATIC(tnzs)
+ MCFG_SCREEN_UPDATE_DRIVER(tnzs_state, screen_update_tnzs)
+ MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs)
MCFG_GFXDECODE(tnzs)
MCFG_PALETTE_LENGTH(512)
@@ -1852,8 +1852,8 @@ static MACHINE_CONFIG_START( tnzsb, tnzs_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tnzs)
- MCFG_SCREEN_VBLANK_STATIC(tnzs)
+ MCFG_SCREEN_UPDATE_DRIVER(tnzs_state, screen_update_tnzs)
+ MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs)
MCFG_GFXDECODE(tnzs)
MCFG_PALETTE_LENGTH(512)
@@ -1911,8 +1911,8 @@ static MACHINE_CONFIG_START( jpopnics, tnzs_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tnzs)
- MCFG_SCREEN_VBLANK_STATIC(tnzs)
+ MCFG_SCREEN_UPDATE_DRIVER(tnzs_state, screen_update_tnzs)
+ MCFG_SCREEN_VBLANK_DRIVER(tnzs_state, screen_eof_tnzs)
MCFG_GFXDECODE(tnzs)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/toaplan1.c b/src/mame/drivers/toaplan1.c
index 24b7946dc98..eb6e5f3f8b7 100644
--- a/src/mame/drivers/toaplan1.c
+++ b/src/mame/drivers/toaplan1.c
@@ -1547,8 +1547,8 @@ static MACHINE_CONFIG_START( rallybik, toaplan1_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(rallybik)
- MCFG_SCREEN_VBLANK_STATIC(rallybik)
+ MCFG_SCREEN_UPDATE_DRIVER(toaplan1_state, screen_update_rallybik)
+ MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_rallybik)
MCFG_GFXDECODE(rallybik)
MCFG_PALETTE_LENGTH((64*16)+(64*16))
@@ -1584,8 +1584,8 @@ static MACHINE_CONFIG_START( truxton, toaplan1_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(toaplan1)
- MCFG_SCREEN_VBLANK_STATIC(toaplan1)
+ MCFG_SCREEN_UPDATE_DRIVER(toaplan1_state, screen_update_toaplan1)
+ MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_toaplan1)
MCFG_GFXDECODE(toaplan1)
MCFG_PALETTE_LENGTH((64*16)+(64*16))
@@ -1621,8 +1621,8 @@ static MACHINE_CONFIG_START( hellfire, toaplan1_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND+16, VBSTART+16)
- MCFG_SCREEN_UPDATE_STATIC(toaplan1)
- MCFG_SCREEN_VBLANK_STATIC(toaplan1)
+ MCFG_SCREEN_UPDATE_DRIVER(toaplan1_state, screen_update_toaplan1)
+ MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_toaplan1)
MCFG_GFXDECODE(toaplan1)
MCFG_PALETTE_LENGTH((64*16)+(64*16))
@@ -1658,8 +1658,8 @@ static MACHINE_CONFIG_START( zerowing, toaplan1_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND+16, VBSTART+16)
- MCFG_SCREEN_UPDATE_STATIC(toaplan1)
- MCFG_SCREEN_VBLANK_STATIC(toaplan1)
+ MCFG_SCREEN_UPDATE_DRIVER(toaplan1_state, screen_update_toaplan1)
+ MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_toaplan1)
MCFG_GFXDECODE(toaplan1)
MCFG_PALETTE_LENGTH((64*16)+(64*16))
@@ -1699,8 +1699,8 @@ static MACHINE_CONFIG_START( demonwld, toaplan1_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND+16, VBSTART+16)
- MCFG_SCREEN_UPDATE_STATIC(toaplan1)
- MCFG_SCREEN_VBLANK_STATIC(toaplan1)
+ MCFG_SCREEN_UPDATE_DRIVER(toaplan1_state, screen_update_toaplan1)
+ MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_toaplan1)
MCFG_GFXDECODE(toaplan1)
MCFG_PALETTE_LENGTH((64*16)+(64*16))
@@ -1734,8 +1734,8 @@ static MACHINE_CONFIG_START( samesame, toaplan1_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(toaplan1)
- MCFG_SCREEN_VBLANK_STATIC(samesame)
+ MCFG_SCREEN_UPDATE_DRIVER(toaplan1_state, screen_update_toaplan1)
+ MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_samesame)
MCFG_GFXDECODE(toaplan1)
MCFG_PALETTE_LENGTH((64*16)+(64*16))
@@ -1771,8 +1771,8 @@ static MACHINE_CONFIG_START( outzone, toaplan1_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(toaplan1)
- MCFG_SCREEN_VBLANK_STATIC(toaplan1)
+ MCFG_SCREEN_UPDATE_DRIVER(toaplan1_state, screen_update_toaplan1)
+ MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_toaplan1)
MCFG_GFXDECODE(outzone)
MCFG_PALETTE_LENGTH((64*16)+(64*16))
@@ -1806,8 +1806,8 @@ static MACHINE_CONFIG_START( vimana, toaplan1_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(toaplan1)
- MCFG_SCREEN_VBLANK_STATIC(toaplan1)
+ MCFG_SCREEN_UPDATE_DRIVER(toaplan1_state, screen_update_toaplan1)
+ MCFG_SCREEN_VBLANK_DRIVER(toaplan1_state, screen_eof_toaplan1)
MCFG_GFXDECODE(vm)
MCFG_PALETTE_LENGTH((64*16)+(64*16))
diff --git a/src/mame/drivers/toaplan2.c b/src/mame/drivers/toaplan2.c
index bb222689dc0..b16634f73fb 100644
--- a/src/mame/drivers/toaplan2.c
+++ b/src/mame/drivers/toaplan2.c
@@ -3045,8 +3045,8 @@ static MACHINE_CONFIG_START( tekipaki, toaplan2_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(432, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(toaplan2)
- MCFG_SCREEN_VBLANK_STATIC(toaplan2)
+ MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_toaplan2)
+ MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE(toaplan2)
MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
@@ -3086,8 +3086,8 @@ static MACHINE_CONFIG_START( ghox, toaplan2_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(432, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(toaplan2)
- MCFG_SCREEN_VBLANK_STATIC(toaplan2)
+ MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_toaplan2)
+ MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE(toaplan2)
MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
@@ -3176,8 +3176,8 @@ static MACHINE_CONFIG_START( dogyuun, toaplan2_state )
MCFG_SCREEN_REFRESH_RATE( (double)(XTAL_27MHz / 4) / (432 * 263) ) /* 27MHz Oscillator */
MCFG_SCREEN_SIZE(432, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(dogyuun)
- MCFG_SCREEN_VBLANK_STATIC(toaplan2)
+ MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_dogyuun)
+ MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE(t2dualvdp)
MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
@@ -3220,8 +3220,8 @@ static MACHINE_CONFIG_START( kbash, toaplan2_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(432, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(toaplan2)
- MCFG_SCREEN_VBLANK_STATIC(toaplan2)
+ MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_toaplan2)
+ MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE(toaplan2)
MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
@@ -3257,8 +3257,8 @@ static MACHINE_CONFIG_START( kbash2, toaplan2_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(432, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(toaplan2)
- MCFG_SCREEN_VBLANK_STATIC(toaplan2)
+ MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_toaplan2)
+ MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE(toaplan2)
MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
@@ -3294,8 +3294,8 @@ static MACHINE_CONFIG_START( truxton2, toaplan2_state )
MCFG_SCREEN_REFRESH_RATE( (double)(XTAL_27MHz / 4) / (432 * 263) ) /* 27MHz Oscillator */
MCFG_SCREEN_SIZE(432, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(truxton2)
- MCFG_SCREEN_VBLANK_STATIC(toaplan2)
+ MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_truxton2)
+ MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE(truxton2)
MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
@@ -3349,8 +3349,8 @@ static MACHINE_CONFIG_START( pipibibs, toaplan2_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(432, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(toaplan2)
- MCFG_SCREEN_VBLANK_STATIC(toaplan2)
+ MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_toaplan2)
+ MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE(toaplan2)
MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
@@ -3390,8 +3390,8 @@ static MACHINE_CONFIG_START( pipibibsbl, toaplan2_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(432, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(toaplan2)
- MCFG_SCREEN_VBLANK_STATIC(toaplan2)
+ MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_toaplan2)
+ MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE(toaplan2)
MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
@@ -3471,8 +3471,8 @@ static MACHINE_CONFIG_START( fixeight, toaplan2_state )
MCFG_SCREEN_REFRESH_RATE( (double)(XTAL_27MHz / 4) / (432 * 263) ) /* 27MHz Oscillator */
MCFG_SCREEN_SIZE(432, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(truxton2)
- MCFG_SCREEN_VBLANK_STATIC(toaplan2)
+ MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_truxton2)
+ MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE(truxton2)
MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
@@ -3508,8 +3508,8 @@ static MACHINE_CONFIG_START( fixeightbl, toaplan2_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(432, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(truxton2)
- MCFG_SCREEN_VBLANK_STATIC(toaplan2)
+ MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_truxton2)
+ MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE(fixeightbl)
MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
@@ -3548,8 +3548,8 @@ static MACHINE_CONFIG_START( vfive, toaplan2_state )
MCFG_SCREEN_REFRESH_RATE( (double)(XTAL_27MHz / 4) / (432 * 263) ) /* verified on pcb */
MCFG_SCREEN_SIZE(432, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(toaplan2)
- MCFG_SCREEN_VBLANK_STATIC(toaplan2)
+ MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_toaplan2)
+ MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE(toaplan2)
MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
@@ -3586,8 +3586,8 @@ static MACHINE_CONFIG_START( batsugun, toaplan2_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(432, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(batsugun)
- MCFG_SCREEN_VBLANK_STATIC(toaplan2)
+ MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_batsugun)
+ MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE(t2dualvdp)
MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
@@ -3624,8 +3624,8 @@ static MACHINE_CONFIG_START( snowbro2, toaplan2_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(432, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(toaplan2)
- MCFG_SCREEN_VBLANK_STATIC(toaplan2)
+ MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_toaplan2)
+ MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE(toaplan2)
MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
@@ -3667,8 +3667,8 @@ static MACHINE_CONFIG_START( mahoudai, toaplan2_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(432, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(truxton2)
- MCFG_SCREEN_VBLANK_STATIC(toaplan2)
+ MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_truxton2)
+ MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE(raizing)
MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
@@ -3710,8 +3710,8 @@ static MACHINE_CONFIG_START( shippumd, toaplan2_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(432, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(truxton2)
- MCFG_SCREEN_VBLANK_STATIC(toaplan2)
+ MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_truxton2)
+ MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE(raizing)
MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
@@ -3764,8 +3764,8 @@ static MACHINE_CONFIG_START( bgaregga, toaplan2_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(432, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(truxton2)
- MCFG_SCREEN_VBLANK_STATIC(toaplan2)
+ MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_truxton2)
+ MCFG_SCREEN_VBLANK_DRIVER(toaplan2_state, screen_eof_toaplan2)
MCFG_GFXDECODE(raizing)
MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
@@ -3814,7 +3814,7 @@ static MACHINE_CONFIG_START( batrider, toaplan2_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(432, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(batrider)
+ MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_batrider)
MCFG_GFXDECODE(batrider)
MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
@@ -3865,7 +3865,7 @@ static MACHINE_CONFIG_START( bbakraid, toaplan2_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(432, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(batrider)
+ MCFG_SCREEN_UPDATE_DRIVER(toaplan2_state, screen_update_batrider)
MCFG_GFXDECODE(batrider)
MCFG_PALETTE_LENGTH(T2PALETTE_LENGTH)
diff --git a/src/mame/drivers/toki.c b/src/mame/drivers/toki.c
index a8efe3789ef..5bd29ccc6d9 100644
--- a/src/mame/drivers/toki.c
+++ b/src/mame/drivers/toki.c
@@ -431,7 +431,7 @@ static MACHINE_CONFIG_START( toki, toki_state ) /* KOYO 20.000MHz near the cpu *
MCFG_SCREEN_REFRESH_RATE(59.61) /* verified on pcb */
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) /* verified */
- MCFG_SCREEN_UPDATE_STATIC(toki)
+ MCFG_SCREEN_UPDATE_DRIVER(toki_state, screen_update_toki)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(toki)
@@ -460,7 +460,7 @@ static MACHINE_CONFIG_START( tokib, toki_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) /* verified */
- MCFG_SCREEN_UPDATE_STATIC(tokib)
+ MCFG_SCREEN_UPDATE_DRIVER(toki_state, screen_update_tokib)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(tokib)
diff --git a/src/mame/drivers/toobin.c b/src/mame/drivers/toobin.c
index 099576096ed..a8dab47e9f7 100644
--- a/src/mame/drivers/toobin.c
+++ b/src/mame/drivers/toobin.c
@@ -237,7 +237,7 @@ static MACHINE_CONFIG_START( toobin, toobin_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/2, 640, 0, 512, 416, 0, 384)
- MCFG_SCREEN_UPDATE_STATIC(toobin)
+ MCFG_SCREEN_UPDATE_DRIVER(toobin_state, screen_update_toobin)
MCFG_GFXDECODE(toobin)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/topspeed.c b/src/mame/drivers/topspeed.c
index 4d021fcdb6f..ca726e20ae3 100644
--- a/src/mame/drivers/topspeed.c
+++ b/src/mame/drivers/topspeed.c
@@ -769,7 +769,7 @@ static MACHINE_CONFIG_START( topspeed, topspeed_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(topspeed)
+ MCFG_SCREEN_UPDATE_DRIVER(topspeed_state, screen_update_topspeed)
MCFG_GFXDECODE(topspeed)
MCFG_PALETTE_LENGTH(8192)
diff --git a/src/mame/drivers/toratora.c b/src/mame/drivers/toratora.c
index 613d1d99de4..4e9f95dc180 100644
--- a/src/mame/drivers/toratora.c
+++ b/src/mame/drivers/toratora.c
@@ -57,6 +57,7 @@ public:
DECLARE_WRITE_LINE_MEMBER(sn2_ca2_u2_u3_w);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_toratora(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -79,18 +80,17 @@ WRITE_LINE_MEMBER(toratora_state::cb2_u3_w)
*
*************************************/
-static SCREEN_UPDATE_RGB32( toratora )
+UINT32 toratora_state::screen_update_toratora(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- toratora_state *state = screen.machine().driver_data<toratora_state>();
offs_t offs;
- for (offs = 0; offs < state->m_videoram.bytes(); offs++)
+ for (offs = 0; offs < m_videoram.bytes(); offs++)
{
int i;
UINT8 y = offs >> 5;
UINT8 x = offs << 3;
- UINT8 data = state->m_videoram[offs];
+ UINT8 data = m_videoram[offs];
for (i = 0; i < 8; i++)
{
@@ -102,11 +102,11 @@ static SCREEN_UPDATE_RGB32( toratora )
}
/* the video system clears as it writes out the pixels */
- if (state->m_clear_tv)
- state->m_videoram[offs] = 0;
+ if (m_clear_tv)
+ m_videoram[offs] = 0;
}
- state->m_clear_tv = 0;
+ m_clear_tv = 0;
return 0;
}
@@ -462,7 +462,7 @@ static MACHINE_CONFIG_START( toratora, toratora_state )
MCFG_SCREEN_VISIBLE_AREA(0,256-1,8,248-1)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
- MCFG_SCREEN_UPDATE_STATIC(toratora)
+ MCFG_SCREEN_UPDATE_DRIVER(toratora_state, screen_update_toratora)
/* audio hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/toypop.c b/src/mame/drivers/toypop.c
index 8181fd60618..9510cade6ba 100644
--- a/src/mame/drivers/toypop.c
+++ b/src/mame/drivers/toypop.c
@@ -572,7 +572,7 @@ static MACHINE_CONFIG_START( liblrabl, toypop_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(36*8, 28*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(toypop)
+ MCFG_SCREEN_UPDATE_DRIVER(toypop_state, screen_update_toypop)
MCFG_GFXDECODE(toypop)
MCFG_PALETTE_LENGTH(128*4+64*4+16*2)
diff --git a/src/mame/drivers/tp84.c b/src/mame/drivers/tp84.c
index 6c7cb710f16..4b0fbec9f92 100644
--- a/src/mame/drivers/tp84.c
+++ b/src/mame/drivers/tp84.c
@@ -328,7 +328,7 @@ static MACHINE_CONFIG_START( tp84, tp84_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tp84)
+ MCFG_SCREEN_UPDATE_DRIVER(tp84_state, screen_update_tp84)
MCFG_GFXDECODE(tp84)
MCFG_PALETTE_LENGTH(4096)
diff --git a/src/mame/drivers/trackfld.c b/src/mame/drivers/trackfld.c
index c8519b735ec..12cef41fa1a 100644
--- a/src/mame/drivers/trackfld.c
+++ b/src/mame/drivers/trackfld.c
@@ -928,7 +928,7 @@ static MACHINE_CONFIG_START( trackfld, trackfld_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(trackfld)
+ MCFG_SCREEN_UPDATE_DRIVER(trackfld_state, screen_update_trackfld)
MCFG_GFXDECODE(trackfld)
MCFG_PALETTE_LENGTH(16*16+16*16)
@@ -983,7 +983,7 @@ static MACHINE_CONFIG_START( yieartf, trackfld_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(trackfld)
+ MCFG_SCREEN_UPDATE_DRIVER(trackfld_state, screen_update_trackfld)
MCFG_GFXDECODE(trackfld)
MCFG_PALETTE_LENGTH(16*16+16*16)
diff --git a/src/mame/drivers/travrusa.c b/src/mame/drivers/travrusa.c
index 3673da60531..bd015c1d9bd 100644
--- a/src/mame/drivers/travrusa.c
+++ b/src/mame/drivers/travrusa.c
@@ -312,7 +312,7 @@ static MACHINE_CONFIG_START( travrusa, travrusa_state )
/* talks about 55Hz and 1790ms vblank duration. */
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8, 31*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(travrusa)
+ MCFG_SCREEN_UPDATE_DRIVER(travrusa_state, screen_update_travrusa)
MCFG_GFXDECODE(travrusa)
diff --git a/src/mame/drivers/triforce.c b/src/mame/drivers/triforce.c
index df904ade008..9d95f8b601b 100644
--- a/src/mame/drivers/triforce.c
+++ b/src/mame/drivers/triforce.c
@@ -421,6 +421,7 @@ public:
DECLARE_WRITE64_MEMBER(gc_exi_w);
virtual void machine_start();
virtual void video_start();
+ UINT32 screen_update_triforce(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
READ64_MEMBER(triforce_state::gc_pi_r)
@@ -456,7 +457,7 @@ void triforce_state::video_start()
}
-static SCREEN_UPDATE_RGB32(triforce)
+UINT32 triforce_state::screen_update_triforce(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -541,7 +542,7 @@ static MACHINE_CONFIG_START( triforce_base, triforce_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
- MCFG_SCREEN_UPDATE_STATIC(triforce)
+ MCFG_SCREEN_UPDATE_DRIVER(triforce_state, screen_update_triforce)
MCFG_PALETTE_LENGTH(65536)
diff --git a/src/mame/drivers/triplhnt.c b/src/mame/drivers/triplhnt.c
index 28f1c78a333..ac4531147cc 100644
--- a/src/mame/drivers/triplhnt.c
+++ b/src/mame/drivers/triplhnt.c
@@ -320,7 +320,7 @@ static MACHINE_CONFIG_START( triplhnt, triplhnt_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(256, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(triplhnt)
+ MCFG_SCREEN_UPDATE_DRIVER(triplhnt_state, screen_update_triplhnt)
MCFG_GFXDECODE(triplhnt)
MCFG_PALETTE_LENGTH(8)
diff --git a/src/mame/drivers/truco.c b/src/mame/drivers/truco.c
index f66d32d3e97..b5f391ca4b1 100644
--- a/src/mame/drivers/truco.c
+++ b/src/mame/drivers/truco.c
@@ -469,7 +469,7 @@ static MACHINE_CONFIG_START( truco, truco_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 192)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 192-1)
- MCFG_SCREEN_UPDATE_STATIC(truco)
+ MCFG_SCREEN_UPDATE_DRIVER(truco_state, screen_update_truco)
MCFG_PALETTE_LENGTH(16)
diff --git a/src/mame/drivers/trucocl.c b/src/mame/drivers/trucocl.c
index 4d0be1cd6d2..24ee5c4643d 100644
--- a/src/mame/drivers/trucocl.c
+++ b/src/mame/drivers/trucocl.c
@@ -143,7 +143,7 @@ static MACHINE_CONFIG_START( trucocl, trucocl_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(trucocl)
+ MCFG_SCREEN_UPDATE_DRIVER(trucocl_state, screen_update_trucocl)
MCFG_GFXDECODE(trucocl)
MCFG_PALETTE_LENGTH(32)
diff --git a/src/mame/drivers/trvmadns.c b/src/mame/drivers/trvmadns.c
index df3e04279ab..0b5294ab413 100644
--- a/src/mame/drivers/trvmadns.c
+++ b/src/mame/drivers/trvmadns.c
@@ -86,6 +86,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_trvmadns(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -291,9 +292,8 @@ void trvmadns_state::video_start()
machine().gfx[0]->set_source(m_gfxram);
}
-static SCREEN_UPDATE_IND16( trvmadns )
+UINT32 trvmadns_state::screen_update_trvmadns(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- trvmadns_state *state = screen.machine().driver_data<trvmadns_state>();
int x,y,count;
gfx_element *gfx = screen.machine().gfx[0];
@@ -305,8 +305,8 @@ static SCREEN_UPDATE_IND16( trvmadns )
{
for (x=0;x<32;x++)
{
- int attr = state->m_tileram[count*2+0];
- int tile = state->m_tileram[count*2+1] | ((attr & 0x01) << 8);
+ int attr = m_tileram[count*2+0];
+ int tile = m_tileram[count*2+1] | ((attr & 0x01) << 8);
int color = (attr & 0x18) >> 3;
int flipx = attr & 4;
int flipy = attr & 2;
@@ -323,8 +323,8 @@ static SCREEN_UPDATE_IND16( trvmadns )
{
for (x=0;x<32;x++)
{
- int attr = state->m_tileram[count*2+0];
- int tile = state->m_tileram[count*2+1] | ((attr & 0x01) << 8);
+ int attr = m_tileram[count*2+0];
+ int tile = m_tileram[count*2+1] | ((attr & 0x01) << 8);
int color = (attr & 0x18) >> 3;
int flipx = attr & 4;
int flipy = attr & 2;
@@ -356,7 +356,7 @@ static MACHINE_CONFIG_START( trvmadns, trvmadns_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 31*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(trvmadns)
+ MCFG_SCREEN_UPDATE_DRIVER(trvmadns_state, screen_update_trvmadns)
MCFG_GFXDECODE(trvmadns)
MCFG_PALETTE_LENGTH(16)
diff --git a/src/mame/drivers/tryout.c b/src/mame/drivers/tryout.c
index dbeb1546b11..496d247bc5b 100644
--- a/src/mame/drivers/tryout.c
+++ b/src/mame/drivers/tryout.c
@@ -200,7 +200,7 @@ static MACHINE_CONFIG_START( tryout, tryout_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tryout)
+ MCFG_SCREEN_UPDATE_DRIVER(tryout_state, screen_update_tryout)
MCFG_GFXDECODE(tryout)
MCFG_PALETTE_LENGTH(0x20)
diff --git a/src/mame/drivers/tsamurai.c b/src/mame/drivers/tsamurai.c
index 9d6d45e82e4..4dfffd946a2 100644
--- a/src/mame/drivers/tsamurai.c
+++ b/src/mame/drivers/tsamurai.c
@@ -696,7 +696,7 @@ static MACHINE_CONFIG_START( tsamurai, tsamurai_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8)
- MCFG_SCREEN_UPDATE_STATIC(tsamurai)
+ MCFG_SCREEN_UPDATE_DRIVER(tsamurai_state, screen_update_tsamurai)
MCFG_GFXDECODE(tsamurai)
MCFG_PALETTE_LENGTH(256)
@@ -736,7 +736,7 @@ static MACHINE_CONFIG_START( vsgongf, tsamurai_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8)
- MCFG_SCREEN_UPDATE_STATIC(vsgongf)
+ MCFG_SCREEN_UPDATE_DRIVER(tsamurai_state, screen_update_vsgongf)
MCFG_GFXDECODE(tsamurai)
MCFG_PALETTE_LENGTH(256)
@@ -780,7 +780,7 @@ static MACHINE_CONFIG_START( m660, tsamurai_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 255-8)
- MCFG_SCREEN_UPDATE_STATIC(tsamurai)
+ MCFG_SCREEN_UPDATE_DRIVER(tsamurai_state, screen_update_tsamurai)
MCFG_GFXDECODE(tsamurai)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/ttchamp.c b/src/mame/drivers/ttchamp.c
index b419a787ba0..fc54c625f86 100644
--- a/src/mame/drivers/ttchamp.c
+++ b/src/mame/drivers/ttchamp.c
@@ -84,6 +84,7 @@ public:
virtual void video_start();
+ UINT32 screen_update_ttchamp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -97,9 +98,8 @@ void ttchamp_state::video_start()
}
-static SCREEN_UPDATE_IND16(ttchamp)
+UINT32 ttchamp_state::screen_update_ttchamp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ttchamp_state *state = screen.machine().driver_data<ttchamp_state>();
int y,x,count;
// int i;
static const int xxx=320,yyy=204;
@@ -114,11 +114,11 @@ static SCREEN_UPDATE_IND16(ttchamp)
// b = (dat>>10)&0x1f;
// g = (dat>>5)&0x1f;
// r = (dat>>0)&0x1f;
-// palette_set_color_rgb(machine,i,pal5bit(r),pal5bit(g),pal5bit(b));
+// palette_set_color_rgb(machine(),i,pal5bit(r),pal5bit(g),pal5bit(b));
// }
count=0;
- UINT8 *videoram = (UINT8*)state->m_peno_vram;
+ UINT8 *videoram = (UINT8*)m_peno_vram;
for (y=0;y<yyy;y++)
{
for(x=0;x<xxx;x++)
@@ -287,7 +287,7 @@ static MACHINE_CONFIG_START( ttchamp, ttchamp_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(1024,1024)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1)
- MCFG_SCREEN_UPDATE_STATIC(ttchamp)
+ MCFG_SCREEN_UPDATE_DRIVER(ttchamp_state, screen_update_ttchamp)
MCFG_PALETTE_LENGTH(0x8000)
diff --git a/src/mame/drivers/tubep.c b/src/mame/drivers/tubep.c
index 781bffac627..d0fa497f3ff 100644
--- a/src/mame/drivers/tubep.c
+++ b/src/mame/drivers/tubep.c
@@ -913,7 +913,7 @@ static MACHINE_CONFIG_START( tubep, tubep_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(256, 264)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tubep)
+ MCFG_SCREEN_UPDATE_DRIVER(tubep_state, screen_update_tubep)
MCFG_PALETTE_LENGTH(32 + 256*64)
@@ -973,7 +973,7 @@ static MACHINE_CONFIG_START( rjammer, tubep_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(256, 264)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(rjammer)
+ MCFG_SCREEN_UPDATE_DRIVER(tubep_state, screen_update_rjammer)
MCFG_PALETTE_LENGTH(64)
diff --git a/src/mame/drivers/tugboat.c b/src/mame/drivers/tugboat.c
index 2a9db2f2e47..fbecd3f16dc 100644
--- a/src/mame/drivers/tugboat.c
+++ b/src/mame/drivers/tugboat.c
@@ -49,6 +49,7 @@ public:
DECLARE_WRITE8_MEMBER(tugboat_ctrl_w);
virtual void machine_reset();
virtual void palette_init();
+ UINT32 screen_update_tugboat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -132,11 +133,10 @@ static void draw_tilemap(running_machine &machine, bitmap_ind16 &bitmap,const re
}
}
-static SCREEN_UPDATE_IND16( tugboat )
+UINT32 tugboat_state::screen_update_tugboat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tugboat_state *state = screen.machine().driver_data<tugboat_state>();
- int startaddr0 = state->m_hd46505_0_reg[0x0c]*256 + state->m_hd46505_0_reg[0x0d];
- int startaddr1 = state->m_hd46505_1_reg[0x0c]*256 + state->m_hd46505_1_reg[0x0d];
+ int startaddr0 = m_hd46505_0_reg[0x0c]*256 + m_hd46505_0_reg[0x0d];
+ int startaddr1 = m_hd46505_1_reg[0x0c]*256 + m_hd46505_1_reg[0x0d];
draw_tilemap(screen.machine(), bitmap,cliprect,startaddr0,0,1,FALSE);
@@ -343,7 +343,7 @@ static MACHINE_CONFIG_START( tugboat, tugboat_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(32*8,32*8)
MCFG_SCREEN_VISIBLE_AREA(1*8,31*8-1,2*8,30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tugboat)
+ MCFG_SCREEN_UPDATE_DRIVER(tugboat_state, screen_update_tugboat)
MCFG_GFXDECODE(tugboat)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/tumbleb.c b/src/mame/drivers/tumbleb.c
index abb8cb4260a..c6d76c0372d 100644
--- a/src/mame/drivers/tumbleb.c
+++ b/src/mame/drivers/tumbleb.c
@@ -1988,7 +1988,7 @@ static MACHINE_CONFIG_START( tumblepb, tumbleb_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tumblepb)
+ MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_tumblepb)
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 3);
@@ -2023,7 +2023,7 @@ static MACHINE_CONFIG_START( tumbleb2, tumbleb_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(tumblepb)
+ MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_tumblepb)
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 3);
@@ -2061,7 +2061,7 @@ static MACHINE_CONFIG_START( jumpkids, tumbleb_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(jumpkids)
+ MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_jumpkids)
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 3);
@@ -2095,7 +2095,7 @@ static MACHINE_CONFIG_START( fncywld, tumbleb_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(fncywld)
+ MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_fncywld)
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 3);
@@ -2165,7 +2165,7 @@ static MACHINE_CONFIG_START( htchctch, tumbleb_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2400)) // ?? cookbib needs it above ~2400 or the Joystick on the How to Play screen is the wrong colour?!
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(semicom)
+ MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_semicom)
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 3);
@@ -2191,7 +2191,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( cookbib, htchctch )
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC( semicom_altoffsets )
+ MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_semicom_altoffsets)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( cookbib_mcu, htchctch )
@@ -2203,12 +2203,12 @@ static MACHINE_CONFIG_DERIVED( cookbib_mcu, htchctch )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC( semicom_altoffsets )
+ MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_semicom_altoffsets)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( bcstory, htchctch )
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(bcstory)
+ MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_bcstory)
MCFG_SOUND_REPLACE("ymsnd", YM2151, 3427190)
MCFG_SOUND_CONFIG(semicom_ym2151_interface)
@@ -2218,13 +2218,13 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( semibase, bcstory )
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(semibase )
+ MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_semibase)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( sdfight, bcstory )
MCFG_VIDEO_START_OVERRIDE(tumbleb_state,sdfight)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(sdfight)
+ MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_sdfight)
MACHINE_CONFIG_END
@@ -2258,7 +2258,7 @@ static MACHINE_CONFIG_START( suprtrio, tumbleb_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8-1, 31*8-2)
- MCFG_SCREEN_UPDATE_STATIC(suprtrio)
+ MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_suprtrio)
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 3);
@@ -2293,7 +2293,7 @@ static MACHINE_CONFIG_START( pangpang, tumbleb_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1529))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(pangpang)
+ MCFG_SCREEN_UPDATE_DRIVER(tumbleb_state, screen_update_pangpang)
MCFG_DEVICE_ADD("spritegen", DECO_SPRITE, 0)
decospr_device::set_gfx_region(*device, 3);
diff --git a/src/mame/drivers/tumblep.c b/src/mame/drivers/tumblep.c
index 6eaa6639d60..b2fea7b8a82 100644
--- a/src/mame/drivers/tumblep.c
+++ b/src/mame/drivers/tumblep.c
@@ -319,7 +319,7 @@ static MACHINE_CONFIG_START( tumblep, tumblep_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-2, 1*8, 31*8-1) // hmm
- MCFG_SCREEN_UPDATE_STATIC(tumblep)
+ MCFG_SCREEN_UPDATE_DRIVER(tumblep_state, screen_update_tumblep)
MCFG_GFXDECODE(tumblep)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/tunhunt.c b/src/mame/drivers/tunhunt.c
index 34a54d94a05..04b1e49d617 100644
--- a/src/mame/drivers/tunhunt.c
+++ b/src/mame/drivers/tunhunt.c
@@ -305,7 +305,7 @@ static MACHINE_CONFIG_START( tunhunt, tunhunt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(256, 256-16)
MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 255-16)
- MCFG_SCREEN_UPDATE_STATIC(tunhunt)
+ MCFG_SCREEN_UPDATE_DRIVER(tunhunt_state, screen_update_tunhunt)
MCFG_GFXDECODE(tunhunt)
MCFG_PALETTE_LENGTH(0x1a)
diff --git a/src/mame/drivers/turbo.c b/src/mame/drivers/turbo.c
index 6198ed9ba49..d1c6d9f182e 100644
--- a/src/mame/drivers/turbo.c
+++ b/src/mame/drivers/turbo.c
@@ -946,7 +946,7 @@ static MACHINE_CONFIG_START( turbo, turbo_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(turbo)
+ MCFG_SCREEN_UPDATE_DRIVER(turbo_state, screen_update_turbo)
MCFG_PALETTE_INIT_OVERRIDE(turbo_state,turbo)
MCFG_VIDEO_START_OVERRIDE(turbo_state,turbo)
@@ -975,7 +975,7 @@ static MACHINE_CONFIG_START( subroc3d, turbo_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(subroc3d)
+ MCFG_SCREEN_UPDATE_DRIVER(turbo_state, screen_update_subroc3d)
MCFG_PALETTE_INIT_OVERRIDE(turbo_state,subroc3d)
MCFG_VIDEO_START_OVERRIDE(turbo_state,turbo)
@@ -1011,7 +1011,7 @@ static MACHINE_CONFIG_START( buckrog, turbo_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(buckrog)
+ MCFG_SCREEN_UPDATE_DRIVER(turbo_state, screen_update_buckrog)
MCFG_PALETTE_INIT_OVERRIDE(turbo_state,buckrog)
MCFG_VIDEO_START_OVERRIDE(turbo_state,buckrog)
diff --git a/src/mame/drivers/tutankhm.c b/src/mame/drivers/tutankhm.c
index c5f25bb5388..98752cc6870 100644
--- a/src/mame/drivers/tutankhm.c
+++ b/src/mame/drivers/tutankhm.c
@@ -232,7 +232,7 @@ static MACHINE_CONFIG_START( tutankhm, tutankhm_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1) /* not sure about the visible area */
- MCFG_SCREEN_UPDATE_STATIC(tutankhm)
+ MCFG_SCREEN_UPDATE_DRIVER(tutankhm_state, screen_update_tutankhm)
/* sound hardware */
MCFG_FRAGMENT_ADD(timeplt_sound)
diff --git a/src/mame/drivers/twin16.c b/src/mame/drivers/twin16.c
index d243bfab69d..97d1d8b7248 100644
--- a/src/mame/drivers/twin16.c
+++ b/src/mame/drivers/twin16.c
@@ -745,8 +745,8 @@ static MACHINE_CONFIG_START( twin16, twin16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2062)) // 32 lines
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(twin16)
- MCFG_SCREEN_VBLANK_STATIC(twin16)
+ MCFG_SCREEN_UPDATE_DRIVER(twin16_state, screen_update_twin16)
+ MCFG_SCREEN_VBLANK_DRIVER(twin16_state, screen_eof_twin16)
MCFG_GFXDECODE(twin16)
MCFG_PALETTE_LENGTH(0x400)
@@ -799,8 +799,8 @@ static MACHINE_CONFIG_START( fround, twin16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(twin16)
- MCFG_SCREEN_VBLANK_STATIC(twin16)
+ MCFG_SCREEN_UPDATE_DRIVER(twin16_state, screen_update_twin16)
+ MCFG_SCREEN_VBLANK_DRIVER(twin16_state, screen_eof_twin16)
MCFG_GFXDECODE(twin16)
MCFG_PALETTE_LENGTH(0x400)
diff --git a/src/mame/drivers/twincobr.c b/src/mame/drivers/twincobr.c
index 81e706d87e7..4beb33507d9 100644
--- a/src/mame/drivers/twincobr.c
+++ b/src/mame/drivers/twincobr.c
@@ -587,7 +587,7 @@ static MACHINE_CONFIG_START( twincobr, twincobr_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL_28MHz/4, 446, 0, 320, 286, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(toaplan0)
+ MCFG_SCREEN_UPDATE_DRIVER(twincobr_state, screen_update_toaplan0)
MCFG_SCREEN_VBLANK_DEVICE("spriteram16", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(twincobr)
diff --git a/src/mame/drivers/twins.c b/src/mame/drivers/twins.c
index ce79d1fd7b5..7509c169097 100644
--- a/src/mame/drivers/twins.c
+++ b/src/mame/drivers/twins.c
@@ -71,6 +71,8 @@ public:
DECLARE_READ16_MEMBER(twinsa_unk_r);
DECLARE_VIDEO_START(twins);
DECLARE_VIDEO_START(twinsa);
+ UINT32 screen_update_twins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_twinsa(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -116,9 +118,8 @@ VIDEO_START_MEMBER(twins_state,twins)
m_pal = auto_alloc_array(machine(), UINT16, 0x100);
}
-static SCREEN_UPDATE_IND16(twins)
+UINT32 twins_state::screen_update_twins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- twins_state *state = screen.machine().driver_data<twins_state>();
int y,x,count;
int i;
static const int xxx=320,yyy=204;
@@ -128,7 +129,7 @@ static SCREEN_UPDATE_IND16(twins)
for (i=0;i<0x100;i++)
{
int dat,r,g,b;
- dat = state->m_pal[i];
+ dat = m_pal[i];
r = dat & 0x1f;
r = BITSWAP8(r,7,6,5,0,1,2,3,4);
@@ -143,7 +144,7 @@ static SCREEN_UPDATE_IND16(twins)
}
count=0;
- UINT8 *videoram = reinterpret_cast<UINT8 *>(state->m_videoram.target());
+ UINT8 *videoram = reinterpret_cast<UINT8 *>(m_videoram.target());
for (y=0;y<yyy;y++)
{
for(x=0;x<xxx;x++)
@@ -200,7 +201,7 @@ static MACHINE_CONFIG_START( twins, twins_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320,256)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1)
- MCFG_SCREEN_UPDATE_STATIC(twins)
+ MCFG_SCREEN_UPDATE_DRIVER(twins_state, screen_update_twins)
MCFG_PALETTE_LENGTH(0x100)
@@ -222,9 +223,8 @@ VIDEO_START_MEMBER(twins_state,twinsa)
m_pal = auto_alloc_array(machine(), UINT16, 0x1000);
}
-static SCREEN_UPDATE_IND16(twinsa)
+UINT32 twins_state::screen_update_twinsa(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- twins_state *state = screen.machine().driver_data<twins_state>();
int y,x,count;
int i;
static const int xxx=320,yyy=204;
@@ -234,15 +234,15 @@ static SCREEN_UPDATE_IND16(twinsa)
for (i=0;i<0x1000-3;i+=3)
{
int r,g,b;
- r = state->m_pal[i];
- g = state->m_pal[i+1];
- b = state->m_pal[i+2];
+ r = m_pal[i];
+ g = m_pal[i+1];
+ b = m_pal[i+2];
palette_set_color_rgb(screen.machine(),i/3, pal6bit(r), pal6bit(g), pal6bit(b));
}
count=0;
- UINT8 *videoram = reinterpret_cast<UINT8 *>(state->m_videoram.target());
+ UINT8 *videoram = reinterpret_cast<UINT8 *>(m_videoram.target());
for (y=0;y<yyy;y++)
{
for(x=0;x<xxx;x++)
@@ -289,7 +289,7 @@ static MACHINE_CONFIG_START( twinsa, twins_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320,256)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1)
- MCFG_SCREEN_UPDATE_STATIC(twinsa)
+ MCFG_SCREEN_UPDATE_DRIVER(twins_state, screen_update_twinsa)
MCFG_PALETTE_LENGTH(0x1000)
diff --git a/src/mame/drivers/tx1.c b/src/mame/drivers/tx1.c
index 51d716e762e..29127218b86 100644
--- a/src/mame/drivers/tx1.c
+++ b/src/mame/drivers/tx1.c
@@ -715,16 +715,16 @@ static MACHINE_CONFIG_START( tx1, tx1_state )
MCFG_SCREEN_ADD("lscreen", RASTER)
MCFG_SCREEN_RAW_PARAMS(TX1_PIXEL_CLOCK, TX1_HTOTAL, TX1_HBEND, TX1_HBSTART, TX1_VTOTAL, TX1_VBEND, TX1_VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(tx1_left)
+ MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_tx1_left)
MCFG_SCREEN_ADD("cscreen", RASTER)
MCFG_SCREEN_RAW_PARAMS(TX1_PIXEL_CLOCK, TX1_HTOTAL, TX1_HBEND, TX1_HBSTART, TX1_VTOTAL, TX1_VBEND, TX1_VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(tx1_middle)
+ MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_tx1_middle)
MCFG_SCREEN_ADD("rscreen", RASTER)
MCFG_SCREEN_RAW_PARAMS(TX1_PIXEL_CLOCK, TX1_HTOTAL, TX1_HBEND, TX1_HBSTART, TX1_VTOTAL, TX1_VBEND, TX1_VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(tx1_right)
- MCFG_SCREEN_VBLANK_STATIC(tx1)
+ MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_tx1_right)
+ MCFG_SCREEN_VBLANK_DRIVER(tx1_state, screen_eof_tx1)
MCFG_VIDEO_START_OVERRIDE(tx1_state,tx1)
@@ -765,16 +765,16 @@ static MACHINE_CONFIG_START( buggyboy, tx1_state )
MCFG_SCREEN_ADD("lscreen", RASTER)
MCFG_SCREEN_RAW_PARAMS(BB_PIXEL_CLOCK, BB_HTOTAL, BB_HBEND, BB_HBSTART, BB_VTOTAL, BB_VBEND, BB_VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(buggyboy_left)
+ MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_buggyboy_left)
MCFG_SCREEN_ADD("cscreen", RASTER)
MCFG_SCREEN_RAW_PARAMS(BB_PIXEL_CLOCK, BB_HTOTAL, BB_HBEND, BB_HBSTART, BB_VTOTAL, BB_VBEND, BB_VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(buggyboy_middle)
+ MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_buggyboy_middle)
MCFG_SCREEN_ADD("rscreen", RASTER)
MCFG_SCREEN_RAW_PARAMS(BB_PIXEL_CLOCK, BB_HTOTAL, BB_HBEND, BB_HBSTART, BB_VTOTAL, BB_VBEND, BB_VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(buggyboy_right)
- MCFG_SCREEN_VBLANK_STATIC(buggyboy)
+ MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_buggyboy_right)
+ MCFG_SCREEN_VBLANK_DRIVER(tx1_state, screen_eof_buggyboy)
MCFG_PALETTE_LENGTH(256)
MCFG_PALETTE_INIT_OVERRIDE(tx1_state,buggyboy)
@@ -815,8 +815,8 @@ static MACHINE_CONFIG_START( buggybjr, tx1_state )
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_STATIC(buggybjr)
- MCFG_SCREEN_VBLANK_STATIC(buggyboy)
+ MCFG_SCREEN_UPDATE_DRIVER(tx1_state, screen_update_buggybjr)
+ MCFG_SCREEN_VBLANK_DRIVER(tx1_state, screen_eof_buggyboy)
MCFG_PALETTE_LENGTH(256)
MCFG_PALETTE_INIT_OVERRIDE(tx1_state,buggyboy)
diff --git a/src/mame/drivers/ultraman.c b/src/mame/drivers/ultraman.c
index 4c2ff67faa6..248b0030b18 100644
--- a/src/mame/drivers/ultraman.c
+++ b/src/mame/drivers/ultraman.c
@@ -235,7 +235,7 @@ static MACHINE_CONFIG_START( ultraman, ultraman_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(14*8, (64-14)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(ultraman)
+ MCFG_SCREEN_UPDATE_DRIVER(ultraman_state, screen_update_ultraman)
MCFG_PALETTE_LENGTH(8192)
diff --git a/src/mame/drivers/ultratnk.c b/src/mame/drivers/ultratnk.c
index 72ea3e7b86f..4bd78da771b 100644
--- a/src/mame/drivers/ultratnk.c
+++ b/src/mame/drivers/ultratnk.c
@@ -301,8 +301,8 @@ static MACHINE_CONFIG_START( ultratnk, ultratnk_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, 0, 256, VTOTAL, 0, 224)
- MCFG_SCREEN_UPDATE_STATIC(ultratnk)
- MCFG_SCREEN_VBLANK_STATIC(ultratnk)
+ MCFG_SCREEN_UPDATE_DRIVER(ultratnk_state, screen_update_ultratnk)
+ MCFG_SCREEN_VBLANK_DRIVER(ultratnk_state, screen_eof_ultratnk)
MCFG_GFXDECODE(ultratnk)
MCFG_PALETTE_LENGTH(10)
diff --git a/src/mame/drivers/ultrsprt.c b/src/mame/drivers/ultrsprt.c
index c17e7ff5e15..422f1851d92 100644
--- a/src/mame/drivers/ultrsprt.c
+++ b/src/mame/drivers/ultrsprt.c
@@ -35,17 +35,17 @@ public:
DECLARE_WRITE16_MEMBER(K056800_68k_w);
DECLARE_CUSTOM_INPUT_MEMBER(analog_ctrl_r);
virtual void machine_start();
+ UINT32 screen_update_ultrsprt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
-static SCREEN_UPDATE_IND16( ultrsprt )
+UINT32 ultrsprt_state::screen_update_ultrsprt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ultrsprt_state *state = screen.machine().driver_data<ultrsprt_state>();
int i, j;
- UINT8 *ram = reinterpret_cast<UINT8 *>(state->m_vram.target());
+ UINT8 *ram = reinterpret_cast<UINT8 *>(m_vram.target());
for (j=0; j < 400; j++)
{
@@ -243,7 +243,7 @@ static MACHINE_CONFIG_START( ultrsprt, ultrsprt_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 400)
MCFG_SCREEN_VISIBLE_AREA(0, 511, 0, 399)
- MCFG_SCREEN_UPDATE_STATIC(ultrsprt)
+ MCFG_SCREEN_UPDATE_DRIVER(ultrsprt_state, screen_update_ultrsprt)
MCFG_PALETTE_LENGTH(8192)
diff --git a/src/mame/drivers/umipoker.c b/src/mame/drivers/umipoker.c
index e930307823f..8edfa66e14e 100644
--- a/src/mame/drivers/umipoker.c
+++ b/src/mame/drivers/umipoker.c
@@ -67,6 +67,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_umipoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
TILE_GET_INFO_MEMBER(umipoker_state::get_tile_info_0)
@@ -132,21 +133,20 @@ void umipoker_state::video_start()
}
-static SCREEN_UPDATE_IND16( umipoker )
+UINT32 umipoker_state::screen_update_umipoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- umipoker_state *state = screen.machine().driver_data<umipoker_state>();
- state->m_tilemap_0->set_scrolly(0, state->m_umipoker_scrolly[0]);
- state->m_tilemap_1->set_scrolly(0, state->m_umipoker_scrolly[1]);
- state->m_tilemap_2->set_scrolly(0, state->m_umipoker_scrolly[2]);
- state->m_tilemap_3->set_scrolly(0, state->m_umipoker_scrolly[3]);
+ m_tilemap_0->set_scrolly(0, m_umipoker_scrolly[0]);
+ m_tilemap_1->set_scrolly(0, m_umipoker_scrolly[1]);
+ m_tilemap_2->set_scrolly(0, m_umipoker_scrolly[2]);
+ m_tilemap_3->set_scrolly(0, m_umipoker_scrolly[3]);
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- state->m_tilemap_0->draw(bitmap, cliprect, 0,0);
- state->m_tilemap_1->draw(bitmap, cliprect, 0,0);
- state->m_tilemap_2->draw(bitmap, cliprect, 0,0);
- state->m_tilemap_3->draw(bitmap, cliprect, 0,0);
+ m_tilemap_0->draw(bitmap, cliprect, 0,0);
+ m_tilemap_1->draw(bitmap, cliprect, 0,0);
+ m_tilemap_2->draw(bitmap, cliprect, 0,0);
+ m_tilemap_3->draw(bitmap, cliprect, 0,0);
return 0;
}
@@ -678,7 +678,7 @@ static MACHINE_CONFIG_START( umipoker, umipoker_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, 48*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(umipoker)
+ MCFG_SCREEN_UPDATE_DRIVER(umipoker_state, screen_update_umipoker)
MCFG_GFXDECODE(umipoker)
diff --git a/src/mame/drivers/undrfire.c b/src/mame/drivers/undrfire.c
index a72200d2d20..28bbd182751 100644
--- a/src/mame/drivers/undrfire.c
+++ b/src/mame/drivers/undrfire.c
@@ -739,7 +739,7 @@ static MACHINE_CONFIG_START( undrfire, undrfire_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 3*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(undrfire)
+ MCFG_SCREEN_UPDATE_DRIVER(undrfire_state, screen_update_undrfire)
MCFG_GFXDECODE(undrfire)
MCFG_PALETTE_LENGTH(16384)
@@ -774,7 +774,7 @@ static MACHINE_CONFIG_START( cbombers, undrfire_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 3*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(cbombers)
+ MCFG_SCREEN_UPDATE_DRIVER(undrfire_state, screen_update_cbombers)
MCFG_GFXDECODE(cbombers)
MCFG_PALETTE_LENGTH(16384)
diff --git a/src/mame/drivers/unico.c b/src/mame/drivers/unico.c
index 96f65fe0939..524a95ab11d 100644
--- a/src/mame/drivers/unico.c
+++ b/src/mame/drivers/unico.c
@@ -603,7 +603,7 @@ static MACHINE_CONFIG_START( burglarx, unico_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x180, 0xe0)
MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1, 0, 0xe0-1)
- MCFG_SCREEN_UPDATE_STATIC(unico)
+ MCFG_SCREEN_UPDATE_DRIVER(unico_state, screen_update_unico)
MCFG_GFXDECODE(unico)
MCFG_PALETTE_LENGTH(8192)
@@ -648,7 +648,7 @@ static MACHINE_CONFIG_START( zeropnt, unico_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x180, 0xe0)
MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1, 0, 0xe0-1)
- MCFG_SCREEN_UPDATE_STATIC(unico)
+ MCFG_SCREEN_UPDATE_DRIVER(unico_state, screen_update_unico)
MCFG_GFXDECODE(unico)
MCFG_PALETTE_LENGTH(8192)
@@ -690,7 +690,7 @@ static MACHINE_CONFIG_START( zeropnt2, unico_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x180, 0xe0)
MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1, 0, 0xe0-1)
- MCFG_SCREEN_UPDATE_STATIC(zeropnt2)
+ MCFG_SCREEN_UPDATE_DRIVER(unico_state, screen_update_zeropnt2)
MCFG_GFXDECODE(unico)
MCFG_PALETTE_LENGTH(8192)
diff --git a/src/mame/drivers/unkhorse.c b/src/mame/drivers/unkhorse.c
index 30369e322c9..54dfd8da620 100644
--- a/src/mame/drivers/unkhorse.c
+++ b/src/mame/drivers/unkhorse.c
@@ -39,6 +39,7 @@ public:
DECLARE_WRITE8_MEMBER(horse_output_w);
DECLARE_WRITE_LINE_MEMBER(horse_timer_out);
virtual void palette_init();
+ UINT32 screen_update_horse(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -55,16 +56,15 @@ void horse_state::palette_init()
palette_set_color_rgb(machine(), i, pal1bit(i >> 2), pal1bit(i >> 1), pal1bit(i >> 0));
}
-static SCREEN_UPDATE_IND16( horse )
+UINT32 horse_state::screen_update_horse(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- horse_state *state = screen.machine().driver_data<horse_state>();
for (int y = cliprect.min_y; y <= cliprect.max_y; y++)
{
for (int x = 0; x < 32; x++)
{
- UINT8 data = state->m_video_ram[y << 5 | x];
- UINT8 color = state->m_color_ram[(y << 3 & 0x780) | x] >> 4;
+ UINT8 data = m_video_ram[y << 5 | x];
+ UINT8 color = m_color_ram[(y << 3 & 0x780) | x] >> 4;
for (int i = 0; i < 8; i++)
bitmap.pix16(y, x << 3 | i) = (data >> i & 1) ? color : 0;
@@ -213,7 +213,7 @@ static MACHINE_CONFIG_START( horse, horse_state )
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(horse)
+ MCFG_SCREEN_UPDATE_DRIVER(horse_state, screen_update_horse)
MCFG_PALETTE_LENGTH(8)
diff --git a/src/mame/drivers/upscope.c b/src/mame/drivers/upscope.c
index dc4f97c04ca..259888dbc62 100644
--- a/src/mame/drivers/upscope.c
+++ b/src/mame/drivers/upscope.c
@@ -324,7 +324,7 @@ static MACHINE_CONFIG_START( upscope, upscope_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512*2, 262)
MCFG_SCREEN_VISIBLE_AREA((129-8)*2, (449+8-1)*2, 44-8, 244+8-1)
- MCFG_SCREEN_UPDATE_STATIC(amiga)
+ MCFG_SCREEN_UPDATE_DRIVER(amiga_state, screen_update_amiga)
MCFG_PALETTE_LENGTH(4096)
MCFG_PALETTE_INIT_OVERRIDE(upscope_state,amiga)
diff --git a/src/mame/drivers/usgames.c b/src/mame/drivers/usgames.c
index ee29336a8b3..030cd638681 100644
--- a/src/mame/drivers/usgames.c
+++ b/src/mame/drivers/usgames.c
@@ -244,7 +244,7 @@ static MACHINE_CONFIG_START( usg32, usgames_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(7*8, 57*8-1, 0*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(usgames)
+ MCFG_SCREEN_UPDATE_DRIVER(usgames_state, screen_update_usgames)
MCFG_GFXDECODE(usgames)
MCFG_PALETTE_LENGTH(2*256)
diff --git a/src/mame/drivers/vamphalf.c b/src/mame/drivers/vamphalf.c
index 113c8130248..97f96c1bcdc 100644
--- a/src/mame/drivers/vamphalf.c
+++ b/src/mame/drivers/vamphalf.c
@@ -164,6 +164,8 @@ public:
DECLARE_DRIVER_INIT(vamphalf);
DECLARE_DRIVER_INIT(wyvernwg);
DECLARE_DRIVER_INIT(luplup);
+ UINT32 screen_update_common(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_aoh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
READ16_MEMBER(vamphalf_state::eeprom_r)
@@ -752,7 +754,7 @@ void vamphalf_handle_flipped_visible_area( screen_device &screen )
}
-static SCREEN_UPDATE_IND16( common )
+UINT32 vamphalf_state::screen_update_common(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
vamphalf_handle_flipped_visible_area(screen);
bitmap.fill(0, cliprect);
@@ -760,7 +762,7 @@ static SCREEN_UPDATE_IND16( common )
return 0;
}
-static SCREEN_UPDATE_IND16( aoh )
+UINT32 vamphalf_state::screen_update_aoh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
// vamphalf_handle_flipped_visible_area(screen); // not on this?
bitmap.fill(0, cliprect);
@@ -993,7 +995,7 @@ static MACHINE_CONFIG_START( common, vamphalf_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(31, 350, 16, 251)
- MCFG_SCREEN_UPDATE_STATIC(common)
+ MCFG_SCREEN_UPDATE_DRIVER(vamphalf_state, screen_update_common)
MCFG_PALETTE_LENGTH(0x8000)
MCFG_GFXDECODE(vamphalf)
@@ -1124,7 +1126,7 @@ static MACHINE_CONFIG_START( aoh, vamphalf_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 512)
MCFG_SCREEN_VISIBLE_AREA(64, 511-64, 16, 255-16)
- MCFG_SCREEN_UPDATE_STATIC(aoh)
+ MCFG_SCREEN_UPDATE_DRIVER(vamphalf_state, screen_update_aoh)
MCFG_PALETTE_LENGTH(0x8000)
MCFG_GFXDECODE(vamphalf)
diff --git a/src/mame/drivers/vaportra.c b/src/mame/drivers/vaportra.c
index f0088ad350c..2fc18a31de6 100644
--- a/src/mame/drivers/vaportra.c
+++ b/src/mame/drivers/vaportra.c
@@ -278,7 +278,7 @@ static MACHINE_CONFIG_START( vaportra, vaportra_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(529))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(vaportra)
+ MCFG_SCREEN_UPDATE_DRIVER(vaportra_state, screen_update_vaportra)
MCFG_GFXDECODE(vaportra)
MCFG_PALETTE_LENGTH(1280)
diff --git a/src/mame/drivers/vastar.c b/src/mame/drivers/vastar.c
index 83502ae2261..429901a02d3 100644
--- a/src/mame/drivers/vastar.c
+++ b/src/mame/drivers/vastar.c
@@ -319,7 +319,7 @@ static MACHINE_CONFIG_START( vastar, vastar_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(vastar)
+ MCFG_SCREEN_UPDATE_DRIVER(vastar_state, screen_update_vastar)
MCFG_GFXDECODE(vastar)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/vball.c b/src/mame/drivers/vball.c
index e5ed264faf7..5bd206c8d13 100644
--- a/src/mame/drivers/vball.c
+++ b/src/mame/drivers/vball.c
@@ -419,7 +419,7 @@ static MACHINE_CONFIG_START( vball, vball_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 8, 248) /* based on ddragon driver */
- MCFG_SCREEN_UPDATE_STATIC(vb)
+ MCFG_SCREEN_UPDATE_DRIVER(vball_state, screen_update_vb)
MCFG_GFXDECODE(vb)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/vcombat.c b/src/mame/drivers/vcombat.c
index 42f74d818bf..51d137df846 100644
--- a/src/mame/drivers/vcombat.c
+++ b/src/mame/drivers/vcombat.c
@@ -124,6 +124,8 @@ public:
DECLARE_DRIVER_INIT(vcombat);
DECLARE_MACHINE_RESET(vcombat);
DECLARE_MACHINE_RESET(shadfgtr);
+ UINT32 screen_update_vcombat_main(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_vcombat_aux(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
static UINT32 update_screen(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect, int index)
@@ -175,8 +177,8 @@ static UINT32 update_screen(screen_device &screen, bitmap_rgb32 &bitmap, const r
return 0;
}
-static SCREEN_UPDATE_RGB32( vcombat_main ) { return update_screen(screen, bitmap, cliprect, 0); }
-static SCREEN_UPDATE_RGB32( vcombat_aux ) { return update_screen(screen, bitmap, cliprect, 1); }
+UINT32 vcombat_state::screen_update_vcombat_main(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 0); }
+UINT32 vcombat_state::screen_update_vcombat_aux(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 1); }
WRITE16_MEMBER(vcombat_state::main_video_write)
@@ -612,11 +614,11 @@ static MACHINE_CONFIG_START( vcombat, vcombat_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL_12MHz / 2, 400, 0, 256, 291, 0, 208)
- MCFG_SCREEN_UPDATE_STATIC(vcombat_main)
+ MCFG_SCREEN_UPDATE_DRIVER(vcombat_state, screen_update_vcombat_main)
MCFG_SCREEN_ADD("aux", RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL_12MHz / 2, 400, 0, 256, 291, 0, 208)
- MCFG_SCREEN_UPDATE_STATIC(vcombat_aux)
+ MCFG_SCREEN_UPDATE_DRIVER(vcombat_state, screen_update_vcombat_aux)
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -647,7 +649,7 @@ static MACHINE_CONFIG_START( shadfgtr, vcombat_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL_20MHz / 4, 320, 0, 256, 277, 0, 224)
- MCFG_SCREEN_UPDATE_STATIC(vcombat_main)
+ MCFG_SCREEN_UPDATE_DRIVER(vcombat_state, screen_update_vcombat_main)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/vectrex.c b/src/mame/drivers/vectrex.c
index 977e1f6b7c4..b50e3201651 100644
--- a/src/mame/drivers/vectrex.c
+++ b/src/mame/drivers/vectrex.c
@@ -106,7 +106,7 @@ static MACHINE_CONFIG_START( vectrex, vectrex_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(400, 300)
MCFG_SCREEN_VISIBLE_AREA(0, 399, 0, 299)
- MCFG_SCREEN_UPDATE_STATIC(vectrex)
+ MCFG_SCREEN_UPDATE_DRIVER(vectrex_state, screen_update_vectrex)
/* sound hardware */
diff --git a/src/mame/drivers/vega.c b/src/mame/drivers/vega.c
index 9f6b41831f8..e95fa934521 100644
--- a/src/mame/drivers/vega.c
+++ b/src/mame/drivers/vega.c
@@ -148,6 +148,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void palette_init();
+ UINT32 screen_update_vega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
WRITE8_MEMBER(vega_state::extern_w)
@@ -547,26 +548,25 @@ static void draw_tilemap(vega_state *state, screen_device& screen, bitmap_ind16&
}
-static SCREEN_UPDATE_IND16( vega )
+UINT32 vega_state::screen_update_vega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- vega_state *state = screen.machine().driver_data<vega_state>();
- ++state->m_frame_counter;
+ ++m_frame_counter;
bitmap.fill(0, cliprect);
- draw_tilemap(state, screen, bitmap, cliprect);
+ draw_tilemap(this, screen, bitmap, cliprect);
{
int x,y;
int idx=0;
- UINT8 *color_lookup = state->memregion("proms")->base() + 0x200;
+ UINT8 *color_lookup = memregion("proms")->base() + 0x200;
for(y=0;y<25;++y)
for(x=0;x<40;++x)
{
- int character=state->m_txt_ram[idx];
+ int character=m_txt_ram[idx];
//int color=BITSWAP8(color_lookup[character],7,6,5,4,0,1,2,3)>>1;
int color=color_lookup[character]&0xf;
/*
@@ -593,10 +593,10 @@ static SCREEN_UPDATE_IND16( vega )
for(int i=OBJ_0;i<OBJ_PLAYER;++i)
{
- int x0=255-state->m_obj[i].m_x;
- int y0=255-state->m_obj[i].m_y;
- int num=state->m_obj[i].m_type&7;
- int flip=state->m_obj[i].m_type&8;
+ int x0=255-m_obj[i].m_x;
+ int y0=255-m_obj[i].m_y;
+ int num=m_obj[i].m_type&7;
+ int flip=m_obj[i].m_type&8;
num*=4*8;
for(int x=0;x<8;++x)
@@ -623,20 +623,20 @@ static SCREEN_UPDATE_IND16( vega )
{
- if(BIT(state->m_obj[OBJ_PLAYER].m_type,5))
+ if(BIT(m_obj[OBJ_PLAYER].m_type,5))
{
- int x0=state->m_obj[OBJ_PLAYER].m_x;
- int y0=255-state->m_obj[OBJ_PLAYER].m_y-32;
+ int x0=m_obj[OBJ_PLAYER].m_x;
+ int y0=255-m_obj[OBJ_PLAYER].m_y-32;
- UINT8 *sprite_lookup = state->memregion("proms")->base();
+ UINT8 *sprite_lookup = memregion("proms")->base();
for(int x=0;x<16;++x)
{
- int prom_data=sprite_lookup[ ((state->m_obj[OBJ_PLAYER].m_type&0xf)<<2)|((x>>2)&3)|(((state->m_frame_counter>>1)&3)<<6) ];
+ int prom_data=sprite_lookup[ ((m_obj[OBJ_PLAYER].m_type&0xf)<<2)|((x>>2)&3)|(((m_frame_counter>>1)&3)<<6) ];
int xor_line=( ! (( ! ((BIT(prom_data,1))&(BIT(prom_data,2))&(BIT(prom_data,3))&(BIT(x,2)) ) ) &
- ( (BIT(prom_data,2)) | (BIT(prom_data,3)) | ( BIT(state->m_obj[OBJ_PLAYER].m_type,4)) ) ));
+ ( (BIT(prom_data,2)) | (BIT(prom_data,3)) | ( BIT(m_obj[OBJ_PLAYER].m_type,4)) ) ));
int strip_num=((prom_data)&0x7)|( ((x&3)^(xor_line?0x3:0)) <<3)|((BIT(prom_data,3))<<5);
@@ -860,7 +860,7 @@ static MACHINE_CONFIG_START( vega, vega_state )
MCFG_GFXDECODE(test_decode)
- MCFG_SCREEN_UPDATE_STATIC(vega)
+ MCFG_SCREEN_UPDATE_DRIVER(vega_state, screen_update_vega)
/* sound hardware */
diff --git a/src/mame/drivers/vegaeo.c b/src/mame/drivers/vegaeo.c
index 509ff998828..bcd5f569f6c 100644
--- a/src/mame/drivers/vegaeo.c
+++ b/src/mame/drivers/vegaeo.c
@@ -41,6 +41,7 @@ public:
DECLARE_WRITE8_MEMBER(qs1000_p3_w);
DECLARE_DRIVER_INIT(vegaeo);
DECLARE_VIDEO_START(vega);
+ UINT32 screen_update_vega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
READ8_MEMBER( vegaeo_state::qs1000_p1_r )
@@ -194,9 +195,8 @@ VIDEO_START_MEMBER(vegaeo_state,vega)
m_vega_vram = auto_alloc_array(machine(), UINT32, 0x14000*2/4);
}
-static SCREEN_UPDATE_IND16( vega )
+UINT32 vegaeo_state::screen_update_vega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- vegaeo_state *state = screen.machine().driver_data<vegaeo_state>();
int x,y,count;
int color;
@@ -205,16 +205,16 @@ static SCREEN_UPDATE_IND16( vega )
{
for (x=0;x < 320/4;x++)
{
- color = state->m_vega_vram[count + (0x14000/4) * (state->m_vega_vbuffer ^ 1)] & 0xff;
+ color = m_vega_vram[count + (0x14000/4) * (m_vega_vbuffer ^ 1)] & 0xff;
bitmap.pix16(y, x*4 + 3) = color;
- color = (state->m_vega_vram[count + (0x14000/4) * (state->m_vega_vbuffer ^ 1)] & 0xff00) >> 8;
+ color = (m_vega_vram[count + (0x14000/4) * (m_vega_vbuffer ^ 1)] & 0xff00) >> 8;
bitmap.pix16(y, x*4 + 2) = color;
- color = (state->m_vega_vram[count + (0x14000/4) * (state->m_vega_vbuffer ^ 1)] & 0xff0000) >> 16;
+ color = (m_vega_vram[count + (0x14000/4) * (m_vega_vbuffer ^ 1)] & 0xff0000) >> 16;
bitmap.pix16(y, x*4 + 1) = color;
- color = (state->m_vega_vram[count + (0x14000/4) * (state->m_vega_vbuffer ^ 1)] & 0xff000000) >> 24;
+ color = (m_vega_vram[count + (0x14000/4) * (m_vega_vbuffer ^ 1)] & 0xff000000) >> 24;
bitmap.pix16(y, x*4 + 0) = color;
count++;
@@ -261,7 +261,7 @@ static MACHINE_CONFIG_START( vega, vegaeo_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(vega)
+ MCFG_SCREEN_UPDATE_DRIVER(vegaeo_state, screen_update_vega)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/vegas.c b/src/mame/drivers/vegas.c
index 50c3b7b5585..456b590581a 100644
--- a/src/mame/drivers/vegas.c
+++ b/src/mame/drivers/vegas.c
@@ -501,6 +501,7 @@ public:
DECLARE_DRIVER_INIT(sf2049se);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_vegas(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -523,10 +524,9 @@ static void remap_dynamic_addresses(running_machine &machine);
*
*************************************/
-static SCREEN_UPDATE_RGB32( vegas )
+UINT32 vegas_state::screen_update_vegas(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- vegas_state *state = screen.machine().driver_data<vegas_state>();
- return voodoo_update(state->m_voodoo, bitmap, cliprect) ? 0 : UPDATE_HAS_NOT_CHANGED;
+ return voodoo_update(m_voodoo, bitmap, cliprect) ? 0 : UPDATE_HAS_NOT_CHANGED;
}
@@ -2264,7 +2264,7 @@ static MACHINE_CONFIG_START( vegascore, vegas_state )
MCFG_SCREEN_REFRESH_RATE(57)
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 479)
- MCFG_SCREEN_UPDATE_STATIC(vegas)
+ MCFG_SCREEN_UPDATE_DRIVER(vegas_state, screen_update_vegas)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/vendetta.c b/src/mame/drivers/vendetta.c
index dc24040f873..2bf27c405da 100644
--- a/src/mame/drivers/vendetta.c
+++ b/src/mame/drivers/vendetta.c
@@ -521,7 +521,7 @@ static MACHINE_CONFIG_START( vendetta, vendetta_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(vendetta)
+ MCFG_SCREEN_UPDATE_DRIVER(vendetta_state, screen_update_vendetta)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/vicdual.c b/src/mame/drivers/vicdual.c
index 36a7d0209bb..de8b9e9511f 100644
--- a/src/mame/drivers/vicdual.c
+++ b/src/mame/drivers/vicdual.c
@@ -295,7 +295,7 @@ static MACHINE_CONFIG_DERIVED( depthch, vicdual_root )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(vicdual_bw)
+ MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_bw)
/* audio hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -383,7 +383,7 @@ static MACHINE_CONFIG_DERIVED( safari, vicdual_root )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(vicdual_bw)
+ MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_bw)
MACHINE_CONFIG_END
@@ -486,7 +486,7 @@ static MACHINE_CONFIG_DERIVED( frogs, vicdual_root )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(vicdual_bw)
+ MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_bw)
/* audio hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -674,7 +674,7 @@ static MACHINE_CONFIG_DERIVED( headon, vicdual_root )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(vicdual_bw_or_color)
+ MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_bw_or_color)
/* audio hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -686,7 +686,7 @@ static MACHINE_CONFIG_DERIVED( headons, headon )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(vicdual_bw) // no colour prom on PCB, must be bw?
+ MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_bw)
MACHINE_CONFIG_END
@@ -700,7 +700,7 @@ static MACHINE_CONFIG_DERIVED( sspaceat, vicdual_root )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(vicdual_bw_or_color)
+ MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_bw_or_color)
MACHINE_CONFIG_END
@@ -894,7 +894,7 @@ static MACHINE_CONFIG_DERIVED( headon2, vicdual_root )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(vicdual_color)
+ MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_color)
/* audio hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -907,7 +907,7 @@ static MACHINE_CONFIG_DERIVED( headon2bw, headon2 )
/* basic machine hardware */
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(vicdual_bw)
+ MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_bw)
MACHINE_CONFIG_END
@@ -920,7 +920,7 @@ static MACHINE_CONFIG_DERIVED( digger, vicdual_root )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(vicdual_color)
+ MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_color)
MACHINE_CONFIG_END
@@ -1904,7 +1904,7 @@ static MACHINE_CONFIG_DERIVED( vicdual_dualgame_root, vicdual_root )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(vicdual_color)
+ MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_color)
MACHINE_CONFIG_END
@@ -2151,7 +2151,7 @@ static MACHINE_CONFIG_DERIVED( samurai, vicdual_root )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(vicdual_color)
+ MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_color)
MACHINE_CONFIG_END
@@ -2246,7 +2246,7 @@ static MACHINE_CONFIG_DERIVED( nsub, vicdual_root )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(vicdual_color)
+ MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_color)
MACHINE_CONFIG_END
@@ -2345,7 +2345,7 @@ static MACHINE_CONFIG_DERIVED( invinco, vicdual_root )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(vicdual_color)
+ MCFG_SCREEN_UPDATE_DRIVER(vicdual_state, screen_update_vicdual_color)
/* audio hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/victory.c b/src/mame/drivers/victory.c
index 5748e8d15e7..d0956445f5f 100644
--- a/src/mame/drivers/victory.c
+++ b/src/mame/drivers/victory.c
@@ -224,7 +224,7 @@ static MACHINE_CONFIG_START( victory, victory_state )
MCFG_SCREEN_ADD("screen", RASTER)
/* using the standard Exidy video parameters for now, needs to be confirmed */
MCFG_SCREEN_RAW_PARAMS(VICTORY_PIXEL_CLOCK, VICTORY_HTOTAL, VICTORY_HBEND, VICTORY_HBSTART, VICTORY_VTOTAL, VICTORY_VBEND, VICTORY_VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(victory)
+ MCFG_SCREEN_UPDATE_DRIVER(victory_state, screen_update_victory)
MCFG_PALETTE_LENGTH(64)
diff --git a/src/mame/drivers/videopin.c b/src/mame/drivers/videopin.c
index a738fef45d7..2813fac4a33 100644
--- a/src/mame/drivers/videopin.c
+++ b/src/mame/drivers/videopin.c
@@ -333,7 +333,7 @@ static MACHINE_CONFIG_START( videopin, videopin_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(304, 263)
MCFG_SCREEN_VISIBLE_AREA(0, 303, 0, 255)
- MCFG_SCREEN_UPDATE_STATIC(videopin)
+ MCFG_SCREEN_UPDATE_DRIVER(videopin_state, screen_update_videopin)
MCFG_GFXDECODE(videopin)
MCFG_PALETTE_LENGTH(2)
diff --git a/src/mame/drivers/videopkr.c b/src/mame/drivers/videopkr.c
index b1befb82467..58615e4ba68 100644
--- a/src/mame/drivers/videopkr.c
+++ b/src/mame/drivers/videopkr.c
@@ -363,6 +363,7 @@ public:
DECLARE_VIDEO_START(vidadcba);
DECLARE_PALETTE_INIT(babypkr);
DECLARE_PALETTE_INIT(fortune1);
+ UINT32 screen_update_videopkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -520,11 +521,10 @@ VIDEO_START_MEMBER(videopkr_state,vidadcba)
}
-static SCREEN_UPDATE_IND16( videopkr )
+UINT32 videopkr_state::screen_update_videopkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- videopkr_state *state = screen.machine().driver_data<videopkr_state>();
- state->m_bg_tilemap->mark_all_dirty();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->mark_all_dirty();
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -1254,7 +1254,7 @@ static MACHINE_CONFIG_START( videopkr, videopkr_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(2080)
- MCFG_SCREEN_UPDATE_STATIC(videopkr)
+ MCFG_SCREEN_UPDATE_DRIVER(videopkr_state, screen_update_videopkr)
MCFG_GFXDECODE(videopkr)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/vigilant.c b/src/mame/drivers/vigilant.c
index 8bee571540e..69873e4831e 100644
--- a/src/mame/drivers/vigilant.c
+++ b/src/mame/drivers/vigilant.c
@@ -496,7 +496,7 @@ static MACHINE_CONFIG_START( vigilant, vigilant_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(16*8, (64-16)*8-1, 0*8, 32*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(vigilant)
+ MCFG_SCREEN_UPDATE_DRIVER(vigilant_state, screen_update_vigilant)
MCFG_GFXDECODE(vigilant)
MCFG_PALETTE_LENGTH(512+32) /* 512 real palette, 32 virtual palette */
@@ -536,7 +536,7 @@ static MACHINE_CONFIG_START( buccanrs, vigilant_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(16*8, (64-16)*8-1, 0*8, 32*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(vigilant)
+ MCFG_SCREEN_UPDATE_DRIVER(vigilant_state, screen_update_vigilant)
MCFG_GFXDECODE(buccanrs)
MCFG_PALETTE_LENGTH(512+32) /* 512 real palette, 32 virtual palette */
@@ -592,7 +592,7 @@ static MACHINE_CONFIG_START( kikcubic, vigilant_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(8*8, (64-8)*8-1, 0*8, 32*8-1 )
- MCFG_SCREEN_UPDATE_STATIC(kikcubic)
+ MCFG_SCREEN_UPDATE_DRIVER(vigilant_state, screen_update_kikcubic)
MCFG_GFXDECODE(kikcubic)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/vindictr.c b/src/mame/drivers/vindictr.c
index a68d3ebbba6..4afbbdea3bd 100644
--- a/src/mame/drivers/vindictr.c
+++ b/src/mame/drivers/vindictr.c
@@ -211,7 +211,7 @@ static MACHINE_CONFIG_START( vindictr, vindictr_state )
/* note: these parameters are from published specs, not derived */
/* the board uses a SYNGEN chip to generate video signals */
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(vindictr)
+ MCFG_SCREEN_UPDATE_DRIVER(vindictr_state, screen_update_vindictr)
MCFG_VIDEO_START_OVERRIDE(vindictr_state,vindictr)
diff --git a/src/mame/drivers/viper.c b/src/mame/drivers/viper.c
index 0d2c5e3aa93..c26ff9ef220 100644
--- a/src/mame/drivers/viper.c
+++ b/src/mame/drivers/viper.c
@@ -303,12 +303,6 @@ static emu_timer *ds2430_timer;
static timer_device *ds2430_bit_timer;
-static SCREEN_UPDATE_RGB32(viper)
-{
- device_t *device = screen.machine().device("voodoo");
- return voodoo_update(device, bitmap, cliprect) ? 0 : UPDATE_HAS_NOT_CHANGED;
-}
-
class viper_state : public driver_device
{
public:
@@ -352,8 +346,15 @@ public:
DECLARE_DRIVER_INIT(vipercf);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_viper(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
+UINT32 viper_state::screen_update_viper(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
+{
+ device_t *device = screen.machine().device("voodoo");
+ return voodoo_update(device, bitmap, cliprect) ? 0 : UPDATE_HAS_NOT_CHANGED;
+}
+
UINT32 m_mpc8240_regs[256/4];
/*****************************************************************************/
@@ -2010,7 +2011,7 @@ static MACHINE_CONFIG_START( viper, viper_state )
MCFG_PALETTE_LENGTH(65536)
- MCFG_SCREEN_UPDATE_STATIC(viper)
+ MCFG_SCREEN_UPDATE_DRIVER(viper_state, screen_update_viper)
MCFG_TIMER_ADD("ds2430_timer2", NULL)
diff --git a/src/mame/drivers/vmetal.c b/src/mame/drivers/vmetal.c
index 6693884e486..97f17e020e6 100644
--- a/src/mame/drivers/vmetal.c
+++ b/src/mame/drivers/vmetal.c
@@ -120,6 +120,7 @@ public:
TILE_GET_INFO_MEMBER(get_vmetal_mid1tilemap_tile_info);
TILE_GET_INFO_MEMBER(get_vmetal_mid2tilemap_tile_info);
DECLARE_VIDEO_START(varia);
+ UINT32 screen_update_varia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -456,25 +457,24 @@ VIDEO_START_MEMBER(vmetal_state,varia)
expand_gfx1(machine());
}
-static SCREEN_UPDATE_IND16(varia)
+UINT32 vmetal_state::screen_update_varia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- vmetal_state *state = screen.machine().driver_data<vmetal_state>();
bitmap.fill(get_black_pen(screen.machine()), cliprect);
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_mid2tilemap->set_scrollx(0, state->m_vmetal_videoregs[0x06a/2]-64 /*+ state->m_vmetal_videoregs[0x066/2]*/);
- state->m_mid1tilemap->set_scrollx(0, state->m_vmetal_videoregs[0x07a/2]-64 /*+ state->m_vmetal_videoregs[0x076/2]*/);
- state->m_texttilemap->set_scrollx(0, -64 /*+ state->m_vmetal_videoregs[0x076/2]*/);
+ m_mid2tilemap->set_scrollx(0, m_vmetal_videoregs[0x06a/2]-64 /*+ m_vmetal_videoregs[0x066/2]*/);
+ m_mid1tilemap->set_scrollx(0, m_vmetal_videoregs[0x07a/2]-64 /*+ m_vmetal_videoregs[0x076/2]*/);
+ m_texttilemap->set_scrollx(0, -64 /*+ m_vmetal_videoregs[0x076/2]*/);
- state->m_mid2tilemap->set_scrolly(0, -64);
- state->m_mid1tilemap->set_scrolly(0, -64);
- state->m_texttilemap->set_scrolly(0, -64);
+ m_mid2tilemap->set_scrolly(0, -64);
+ m_mid1tilemap->set_scrolly(0, -64);
+ m_texttilemap->set_scrolly(0, -64);
- state->m_mid1tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_mid2tilemap->draw(bitmap, cliprect, 0, 0);
+ m_mid1tilemap->draw(bitmap, cliprect, 0, 0);
+ m_mid2tilemap->draw(bitmap, cliprect, 0, 0);
metro_draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_texttilemap->draw(bitmap, cliprect, 0, 0);
+ m_texttilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -492,7 +492,7 @@ static MACHINE_CONFIG_START( varia, vmetal_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(2048, 2048)
MCFG_SCREEN_VISIBLE_AREA(0+64, 319+64, 0+64, 223+64)
- MCFG_SCREEN_UPDATE_STATIC(varia)
+ MCFG_SCREEN_UPDATE_DRIVER(vmetal_state, screen_update_varia)
MCFG_GFXDECODE(vmetal)
MCFG_PALETTE_LENGTH(0x4000)
diff --git a/src/mame/drivers/volfied.c b/src/mame/drivers/volfied.c
index 57062e2bfe8..ecefaa91114 100644
--- a/src/mame/drivers/volfied.c
+++ b/src/mame/drivers/volfied.c
@@ -275,7 +275,7 @@ static MACHINE_CONFIG_START( volfied, volfied_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 8, 247)
- MCFG_SCREEN_UPDATE_STATIC(volfied)
+ MCFG_SCREEN_UPDATE_DRIVER(volfied_state, screen_update_volfied)
MCFG_GFXDECODE(volfied)
MCFG_PALETTE_LENGTH(8192)
diff --git a/src/mame/drivers/vpoker.c b/src/mame/drivers/vpoker.c
index a09bcdefc76..3428407b4b4 100644
--- a/src/mame/drivers/vpoker.c
+++ b/src/mame/drivers/vpoker.c
@@ -125,6 +125,7 @@ public:
DECLARE_WRITE_LINE_MEMBER(ptm_irq);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_vpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -133,10 +134,9 @@ void vpoker_state::video_start()
m_videoram = auto_alloc_array(machine(), UINT8, 0x200);
}
-static SCREEN_UPDATE_IND16( vpoker )
+UINT32 vpoker_state::screen_update_vpoker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- vpoker_state *state = screen.machine().driver_data<vpoker_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
gfx_element *gfx = screen.machine().gfx[0];
int count = 0x0000;
@@ -665,7 +665,7 @@ static MACHINE_CONFIG_START( vpoker, vpoker_state )
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0*8, 480-1, 0*8, 240-1)
// MCFG_SCREEN_VISIBLE_AREA(0*8, 512-1, 0*8, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(vpoker)
+ MCFG_SCREEN_UPDATE_DRIVER(vpoker_state, screen_update_vpoker)
MCFG_GFXDECODE(vpoker)
MCFG_PALETTE_LENGTH(8)
diff --git a/src/mame/drivers/vroulet.c b/src/mame/drivers/vroulet.c
index 3ebd43aac38..23139e58828 100644
--- a/src/mame/drivers/vroulet.c
+++ b/src/mame/drivers/vroulet.c
@@ -62,6 +62,7 @@ public:
DECLARE_WRITE8_MEMBER(ppi8255_c_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
+ UINT32 screen_update_vroulet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -115,12 +116,11 @@ void vroulet_state::video_start()
8, 8, 32, 32);
}
-static SCREEN_UPDATE_IND16(vroulet)
+UINT32 vroulet_state::screen_update_vroulet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- vroulet_state *state = screen.machine().driver_data<vroulet_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0], 0x320, 1, 0, 0,
- state->m_ball[1], state->m_ball[0] - 12, 0);
+ m_ball[1], m_ball[0] - 12, 0);
return 0;
}
@@ -302,7 +302,7 @@ static MACHINE_CONFIG_START( vroulet, vroulet_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(vroulet)
+ MCFG_SCREEN_UPDATE_DRIVER(vroulet_state, screen_update_vroulet)
MCFG_GFXDECODE(vroulet)
MCFG_PALETTE_LENGTH(128*4)
diff --git a/src/mame/drivers/vulgus.c b/src/mame/drivers/vulgus.c
index c666d7fd8d4..802c2bfe1c1 100644
--- a/src/mame/drivers/vulgus.c
+++ b/src/mame/drivers/vulgus.c
@@ -225,7 +225,7 @@ static MACHINE_CONFIG_START( vulgus, vulgus_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(vulgus)
+ MCFG_SCREEN_UPDATE_DRIVER(vulgus_state, screen_update_vulgus)
MCFG_GFXDECODE(vulgus)
MCFG_PALETTE_LENGTH(64*4+16*16+4*32*8)
diff --git a/src/mame/drivers/wallc.c b/src/mame/drivers/wallc.c
index 14a788b6042..20a1346a6bb 100644
--- a/src/mame/drivers/wallc.c
+++ b/src/mame/drivers/wallc.c
@@ -69,6 +69,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_wallc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -153,10 +154,9 @@ void wallc_state::video_start()
m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(wallc_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS_FLIP_Y, 8, 8, 32, 32);
}
-static SCREEN_UPDATE_IND16( wallc )
+UINT32 wallc_state::screen_update_wallc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- wallc_state *state = screen.machine().driver_data<wallc_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -310,7 +310,7 @@ static MACHINE_CONFIG_START( wallc, wallc_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(wallc)
+ MCFG_SCREEN_UPDATE_DRIVER(wallc_state, screen_update_wallc)
MCFG_GFXDECODE(wallc)
MCFG_PALETTE_LENGTH(32)
diff --git a/src/mame/drivers/wardner.c b/src/mame/drivers/wardner.c
index 948bc07d8e7..81ce2fca050 100644
--- a/src/mame/drivers/wardner.c
+++ b/src/mame/drivers/wardner.c
@@ -414,7 +414,7 @@ static MACHINE_CONFIG_START( wardner, wardner_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL_14MHz/2, 446, 0, 320, 286, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(toaplan0)
+ MCFG_SCREEN_UPDATE_DRIVER(wardner_state, screen_update_toaplan0)
MCFG_SCREEN_VBLANK_DEVICE("spriteram8", buffered_spriteram8_device, vblank_copy_rising)
MCFG_GFXDECODE(wardner)
diff --git a/src/mame/drivers/warpsped.c b/src/mame/drivers/warpsped.c
index ea718631fca..dc744364d22 100644
--- a/src/mame/drivers/warpsped.c
+++ b/src/mame/drivers/warpsped.c
@@ -106,6 +106,7 @@ public:
TILE_GET_INFO_MEMBER(get_warpspeed_starfield_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_warpspeed(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
WRITE8_MEMBER(warpspeed_state::warpspeed_hardware_w)
@@ -208,13 +209,12 @@ static void warpspeed_draw_circles(bitmap_ind16 &bitmap, warpspeed_state *state)
}
}
-static SCREEN_UPDATE_IND16( warpspeed )
+UINT32 warpspeed_state::screen_update_warpspeed(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- warpspeed_state *state = screen.machine().driver_data<warpspeed_state>();
- state->m_starfield_tilemap->draw(bitmap, cliprect, 0, 0);
- warpspeed_draw_circles(bitmap, state);
- state->m_text_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_starfield_tilemap->draw(bitmap, cliprect, 0, 0);
+ warpspeed_draw_circles(bitmap, this);
+ m_text_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -318,7 +318,7 @@ static MACHINE_CONFIG_START( warpspeed, warpspeed_state )
MCFG_SCREEN_SIZE((32)*8, (32)*8)
MCFG_SCREEN_VISIBLE_AREA(4*8, 32*8-1, 8*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(warpspeed)
+ MCFG_SCREEN_UPDATE_DRIVER(warpspeed_state, screen_update_warpspeed)
MCFG_GFXDECODE(warpspeed)
MCFG_PALETTE_LENGTH(2+8)
diff --git a/src/mame/drivers/warpwarp.c b/src/mame/drivers/warpwarp.c
index 9e4a79b6cae..aada67ce4b9 100644
--- a/src/mame/drivers/warpwarp.c
+++ b/src/mame/drivers/warpwarp.c
@@ -737,7 +737,7 @@ static MACHINE_CONFIG_START( geebee, warpwarp_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 272, 264, 0, 224)
- MCFG_SCREEN_UPDATE_STATIC(geebee)
+ MCFG_SCREEN_UPDATE_DRIVER(warpwarp_state, screen_update_geebee)
MCFG_GFXDECODE(1k)
MCFG_PALETTE_LENGTH(4*2)
@@ -772,7 +772,7 @@ static MACHINE_CONFIG_START( bombbee, warpwarp_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK/3, 384, 0, 272, 264, 0, 224)
- MCFG_SCREEN_UPDATE_STATIC(geebee)
+ MCFG_SCREEN_UPDATE_DRIVER(warpwarp_state, screen_update_geebee)
MCFG_GFXDECODE(color)
MCFG_PALETTE_LENGTH(2*256+1)
diff --git a/src/mame/drivers/warriorb.c b/src/mame/drivers/warriorb.c
index 0d68349335a..83c9f62e0a0 100644
--- a/src/mame/drivers/warriorb.c
+++ b/src/mame/drivers/warriorb.c
@@ -564,14 +564,14 @@ static MACHINE_CONFIG_START( darius2d, warriorb_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 3*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(warriorb_left)
+ MCFG_SCREEN_UPDATE_DRIVER(warriorb_state, screen_update_warriorb_left)
MCFG_SCREEN_ADD("rscreen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 3*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(warriorb_right)
+ MCFG_SCREEN_UPDATE_DRIVER(warriorb_state, screen_update_warriorb_right)
MCFG_TC0100SCN_ADD("tc0100scn_1", darius2d_tc0100scn_intf_l)
@@ -627,14 +627,14 @@ static MACHINE_CONFIG_START( warriorb, warriorb_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(warriorb_left)
+ MCFG_SCREEN_UPDATE_DRIVER(warriorb_state, screen_update_warriorb_left)
MCFG_SCREEN_ADD("rscreen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(warriorb_right)
+ MCFG_SCREEN_UPDATE_DRIVER(warriorb_state, screen_update_warriorb_right)
MCFG_TC0100SCN_ADD("tc0100scn_1", warriorb_tc0100scn_intf_l)
diff --git a/src/mame/drivers/wc90.c b/src/mame/drivers/wc90.c
index 2183ba674b3..9956609b5c4 100644
--- a/src/mame/drivers/wc90.c
+++ b/src/mame/drivers/wc90.c
@@ -326,7 +326,7 @@ static MACHINE_CONFIG_START( wc90, wc90_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(wc90)
+ MCFG_SCREEN_UPDATE_DRIVER(wc90_state, screen_update_wc90)
MCFG_GFXDECODE(wc90)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/wc90b.c b/src/mame/drivers/wc90b.c
index 398767e3b07..71f9c76bc99 100644
--- a/src/mame/drivers/wc90b.c
+++ b/src/mame/drivers/wc90b.c
@@ -381,7 +381,7 @@ static MACHINE_CONFIG_START( wc90b, wc90b_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(wc90b)
+ MCFG_SCREEN_UPDATE_DRIVER(wc90b_state, screen_update_wc90b)
MCFG_GFXDECODE(wc90b)
MCFG_PALETTE_LENGTH(1024)
diff --git a/src/mame/drivers/wecleman.c b/src/mame/drivers/wecleman.c
index 76d4999ff20..b6bb5f690a8 100644
--- a/src/mame/drivers/wecleman.c
+++ b/src/mame/drivers/wecleman.c
@@ -1074,7 +1074,7 @@ static MACHINE_CONFIG_START( wecleman, wecleman_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320 +16, 256)
MCFG_SCREEN_VISIBLE_AREA(0 +8, 320-1 +8, 0 +8, 224-1 +8)
- MCFG_SCREEN_UPDATE_STATIC(wecleman)
+ MCFG_SCREEN_UPDATE_DRIVER(wecleman_state, screen_update_wecleman)
MCFG_GFXDECODE(wecleman)
@@ -1158,7 +1158,7 @@ static MACHINE_CONFIG_START( hotchase, wecleman_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(320 +16, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 224-1)
- MCFG_SCREEN_UPDATE_STATIC(hotchase)
+ MCFG_SCREEN_UPDATE_DRIVER(wecleman_state, screen_update_hotchase)
MCFG_GFXDECODE(hotchase)
MCFG_PALETTE_LENGTH(2048*2)
diff --git a/src/mame/drivers/welltris.c b/src/mame/drivers/welltris.c
index 58121e48a00..9466ffb9bd1 100644
--- a/src/mame/drivers/welltris.c
+++ b/src/mame/drivers/welltris.c
@@ -719,7 +719,7 @@ static MACHINE_CONFIG_START( welltris, welltris_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(15, 367-1, 8, 248-1)
- MCFG_SCREEN_UPDATE_STATIC(welltris)
+ MCFG_SCREEN_UPDATE_DRIVER(welltris_state, screen_update_welltris)
MCFG_GFXDECODE(welltris)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/wgp.c b/src/mame/drivers/wgp.c
index a444fc5a56b..a2f1cc7c40b 100644
--- a/src/mame/drivers/wgp.c
+++ b/src/mame/drivers/wgp.c
@@ -1014,7 +1014,7 @@ static MACHINE_CONFIG_START( wgp, wgp_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 2*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(wgp)
+ MCFG_SCREEN_UPDATE_DRIVER(wgp_state, screen_update_wgp)
MCFG_GFXDECODE(wgp)
MCFG_PALETTE_LENGTH(4096)
diff --git a/src/mame/drivers/wheelfir.c b/src/mame/drivers/wheelfir.c
index 2124ffe08cf..1768fbd8ea9 100644
--- a/src/mame/drivers/wheelfir.c
+++ b/src/mame/drivers/wheelfir.c
@@ -284,6 +284,8 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_wheelfir(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_wheelfir(screen_device &screen, bool state);
};
@@ -574,30 +576,29 @@ void wheelfir_state::video_start()
m_tmp_bitmap[1] = auto_bitmap_ind16_alloc(machine(), 512, 512);
}
-static SCREEN_UPDATE_IND16(wheelfir)
+UINT32 wheelfir_state::screen_update_wheelfir(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- wheelfir_state *state = screen.machine().driver_data<wheelfir_state>();
bitmap.fill(0, cliprect);
for(int y=0;y<NUM_SCANLINES;++y)
{
- UINT16 *source = &state->m_tmp_bitmap[LAYER_BG]->pix16(( (state->m_scanlines[y].y)&511));
+ UINT16 *source = &m_tmp_bitmap[LAYER_BG]->pix16(( (m_scanlines[y].y)&511));
UINT16 *dest = &bitmap.pix16(y);
for (int x=0;x<336;x++)
{
- dest[x] = source[ (x+(state->m_scanlines[y].x)) &511];
+ dest[x] = source[ (x+(m_scanlines[y].x)) &511];
}
}
- copybitmap_trans(bitmap, *state->m_tmp_bitmap[LAYER_FG], 0, 0, 0, 0, cliprect, 0);
+ copybitmap_trans(bitmap, *m_tmp_bitmap[LAYER_FG], 0, 0, 0, 0, cliprect, 0);
/*
{
- state->m_tmp_bitmap[LAYER_BG]->fill(0, screen.visible_area());
+ m_tmp_bitmap[LAYER_BG]->fill(0, screen.visible_area());
}
*/
@@ -605,13 +606,12 @@ static SCREEN_UPDATE_IND16(wheelfir)
return 0;
}
-static SCREEN_VBLANK( wheelfir )
+void wheelfir_state::screen_eof_wheelfir(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- wheelfir_state *state = screen.machine().driver_data<wheelfir_state>();
- state->m_tmp_bitmap[LAYER_FG]->fill(0, screen.visible_area());
+ m_tmp_bitmap[LAYER_FG]->fill(0, screen.visible_area());
}
}
@@ -828,8 +828,8 @@ static MACHINE_CONFIG_START( wheelfir, wheelfir_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(336, NUM_SCANLINES+NUM_VBLANK_LINES)
MCFG_SCREEN_VISIBLE_AREA(0,335, 0, NUM_SCANLINES-1)
- MCFG_SCREEN_UPDATE_STATIC(wheelfir)
- MCFG_SCREEN_VBLANK_STATIC(wheelfir)
+ MCFG_SCREEN_UPDATE_DRIVER(wheelfir_state, screen_update_wheelfir)
+ MCFG_SCREEN_VBLANK_DRIVER(wheelfir_state, screen_eof_wheelfir)
MCFG_PALETTE_LENGTH(NUM_COLORS)
diff --git a/src/mame/drivers/wildpkr.c b/src/mame/drivers/wildpkr.c
index 568ead9720e..9bd98a83b72 100644
--- a/src/mame/drivers/wildpkr.c
+++ b/src/mame/drivers/wildpkr.c
@@ -176,6 +176,7 @@ public:
virtual void machine_start();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_wildpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -187,9 +188,8 @@ void wildpkr_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( wildpkr )
+UINT32 wildpkr_state::screen_update_wildpkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
-// wildpkr_state *state = screen.machine().driver_data<wildpkr_state>();
return 0;
}
@@ -284,7 +284,7 @@ static MACHINE_CONFIG_START( wildpkr, wildpkr_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 512)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 512-1)
- MCFG_SCREEN_UPDATE_STATIC(wildpkr)
+ MCFG_SCREEN_UPDATE_DRIVER(wildpkr_state, screen_update_wildpkr)
// MCFG_HD63484_ADD("hd63484", wildpkr_hd63484_intf)
MCFG_RAMDAC_ADD("ramdac", ramdac_intf, ramdac_map)
diff --git a/src/mame/drivers/williams.c b/src/mame/drivers/williams.c
index 84a45416b8c..59b1ac1a0ed 100644
--- a/src/mame/drivers/williams.c
+++ b/src/mame/drivers/williams.c
@@ -1451,7 +1451,7 @@ static MACHINE_CONFIG_START( defender, williams_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK*2/3, 512, 10, 304, 260, 7, 245)
- MCFG_SCREEN_UPDATE_STATIC(williams)
+ MCFG_SCREEN_UPDATE_DRIVER(williams_state, screen_update_williams)
MCFG_VIDEO_START_OVERRIDE(williams_state,williams)
@@ -1590,7 +1590,7 @@ static MACHINE_CONFIG_DERIVED( blastkit, williams )
/* video hardware */
MCFG_VIDEO_START_OVERRIDE(williams_state,blaster)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(blaster)
+ MCFG_SCREEN_UPDATE_DRIVER(williams_state, screen_update_blaster)
/* pia */
MCFG_PIA6821_MODIFY("pia_0", williams_49way_muxed_pia_0_intf)
@@ -1643,7 +1643,7 @@ static MACHINE_CONFIG_START( williams2, williams_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK*2/3, 512, 8, 284, 260, 8, 248)
- MCFG_SCREEN_UPDATE_STATIC(williams2)
+ MCFG_SCREEN_UPDATE_DRIVER(williams_state, screen_update_williams2)
MCFG_VIDEO_START_OVERRIDE(williams_state,williams2)
diff --git a/src/mame/drivers/wink.c b/src/mame/drivers/wink.c
index 9126bf1978b..fd8c659cb40 100644
--- a/src/mame/drivers/wink.c
+++ b/src/mame/drivers/wink.c
@@ -42,6 +42,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_wink(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -65,10 +66,9 @@ void wink_state::video_start()
m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(wink_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
-static SCREEN_UPDATE_IND16( wink )
+UINT32 wink_state::screen_update_wink(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- wink_state *state = screen.machine().driver_data<wink_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -360,7 +360,7 @@ static MACHINE_CONFIG_START( wink, wink_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(wink)
+ MCFG_SCREEN_UPDATE_DRIVER(wink_state, screen_update_wink)
MCFG_GFXDECODE(wink)
MCFG_PALETTE_LENGTH(16)
diff --git a/src/mame/drivers/wiping.c b/src/mame/drivers/wiping.c
index 22ec05471b2..81bb0c14fc1 100644
--- a/src/mame/drivers/wiping.c
+++ b/src/mame/drivers/wiping.c
@@ -297,7 +297,7 @@ static MACHINE_CONFIG_START( wiping, wiping_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(36*8, 28*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 36*8-1, 0*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(wiping)
+ MCFG_SCREEN_UPDATE_DRIVER(wiping_state, screen_update_wiping)
MCFG_GFXDECODE(wiping)
MCFG_PALETTE_LENGTH(64*4+64*4)
diff --git a/src/mame/drivers/witch.c b/src/mame/drivers/witch.c
index 00ba320310f..ca88359f4a8 100644
--- a/src/mame/drivers/witch.c
+++ b/src/mame/drivers/witch.c
@@ -238,6 +238,7 @@ public:
TILE_GET_INFO_MEMBER(get_gfx0a_tile_info);
TILE_GET_INFO_MEMBER(get_gfx1_tile_info);
virtual void video_start();
+ UINT32 screen_update_witch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -764,18 +765,17 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
-static SCREEN_UPDATE_IND16(witch)
+UINT32 witch_state::screen_update_witch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- witch_state *state = screen.machine().driver_data<witch_state>();
- state->m_gfx1_tilemap->set_scrollx(0, state->m_scrollx-7 ); //offset to have it aligned with the sprites
- state->m_gfx1_tilemap->set_scrolly(0, state->m_scrolly+8 );
+ m_gfx1_tilemap->set_scrollx(0, m_scrollx-7 ); //offset to have it aligned with the sprites
+ m_gfx1_tilemap->set_scrolly(0, m_scrolly+8 );
- state->m_gfx1_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_gfx0a_tilemap->draw(bitmap, cliprect, 0,0);
+ m_gfx1_tilemap->draw(bitmap, cliprect, 0,0);
+ m_gfx0a_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_gfx0b_tilemap->draw(bitmap, cliprect, 0,0);
+ m_gfx0b_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
@@ -808,7 +808,7 @@ static MACHINE_CONFIG_START( witch, witch_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(8, 256-1-8, 8*4, 256-8*4-1)
- MCFG_SCREEN_UPDATE_STATIC(witch)
+ MCFG_SCREEN_UPDATE_DRIVER(witch_state, screen_update_witch)
MCFG_GFXDECODE(witch)
MCFG_PALETTE_LENGTH(0x800)
diff --git a/src/mame/drivers/wiz.c b/src/mame/drivers/wiz.c
index 074f9f55b54..0fa46a2a721 100644
--- a/src/mame/drivers/wiz.c
+++ b/src/mame/drivers/wiz.c
@@ -735,7 +735,7 @@ static MACHINE_CONFIG_START( wiz, wiz_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */ /* frames per second, vblank duration */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(wiz)
+ MCFG_SCREEN_UPDATE_DRIVER(wiz_state, screen_update_wiz)
MCFG_GFXDECODE(wiz)
MCFG_PALETTE_LENGTH(256)
@@ -765,7 +765,7 @@ static MACHINE_CONFIG_DERIVED( stinger, wiz )
/* video hardware */
MCFG_GFXDECODE(stinger)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(stinger)
+ MCFG_SCREEN_UPDATE_DRIVER(wiz_state, screen_update_stinger)
/* sound hardware */
MCFG_DEVICE_REMOVE("8910.3")
@@ -794,7 +794,7 @@ static MACHINE_CONFIG_DERIVED( kungfut, wiz )
/* video hardware */
MCFG_GFXDECODE(stinger)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(kungfut)
+ MCFG_SCREEN_UPDATE_DRIVER(wiz_state, screen_update_kungfut)
MACHINE_CONFIG_END
diff --git a/src/mame/drivers/wolfpack.c b/src/mame/drivers/wolfpack.c
index 3d48fa46565..85266a71638 100644
--- a/src/mame/drivers/wolfpack.c
+++ b/src/mame/drivers/wolfpack.c
@@ -300,8 +300,8 @@ static MACHINE_CONFIG_START( wolfpack, wolfpack_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(512, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 511, 16, 239)
- MCFG_SCREEN_UPDATE_STATIC(wolfpack)
- MCFG_SCREEN_VBLANK_STATIC(wolfpack)
+ MCFG_SCREEN_UPDATE_DRIVER(wolfpack_state, screen_update_wolfpack)
+ MCFG_SCREEN_VBLANK_DRIVER(wolfpack_state, screen_eof_wolfpack)
MCFG_GFXDECODE(wolfpack)
MCFG_PALETTE_LENGTH(12)
diff --git a/src/mame/drivers/wrally.c b/src/mame/drivers/wrally.c
index 9e10f44cf3d..499ab78f4c6 100644
--- a/src/mame/drivers/wrally.c
+++ b/src/mame/drivers/wrally.c
@@ -263,7 +263,7 @@ static MACHINE_CONFIG_START( wrally, wrally_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(64*16, 32*16)
MCFG_SCREEN_VISIBLE_AREA(8, 24*16-8-1, 16, 16*16-8-1)
- MCFG_SCREEN_UPDATE_STATIC(wrally)
+ MCFG_SCREEN_UPDATE_DRIVER(wrally_state, screen_update_wrally)
MCFG_GFXDECODE(wrally)
MCFG_PALETTE_LENGTH(1024*8)
diff --git a/src/mame/drivers/wwfsstar.c b/src/mame/drivers/wwfsstar.c
index ecc96580ef7..0f7c46f068c 100644
--- a/src/mame/drivers/wwfsstar.c
+++ b/src/mame/drivers/wwfsstar.c
@@ -434,7 +434,7 @@ static MACHINE_CONFIG_START( wwfsstar, wwfsstar_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 320, 0, 256, 272, 8, 248) /* HTOTAL and VTOTAL are guessed */
- MCFG_SCREEN_UPDATE_STATIC(wwfsstar)
+ MCFG_SCREEN_UPDATE_DRIVER(wwfsstar_state, screen_update_wwfsstar)
MCFG_GFXDECODE(wwfsstar)
MCFG_PALETTE_LENGTH(384)
diff --git a/src/mame/drivers/wwfwfest.c b/src/mame/drivers/wwfwfest.c
index a2cac42ce58..52028d0315d 100644
--- a/src/mame/drivers/wwfwfest.c
+++ b/src/mame/drivers/wwfwfest.c
@@ -397,7 +397,7 @@ static MACHINE_CONFIG_START( wwfwfest, wwfwfest_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 320, 272, 8, 248) /* HTOTAL and VTOTAL are guessed */
- MCFG_SCREEN_UPDATE_STATIC(wwfwfest)
+ MCFG_SCREEN_UPDATE_DRIVER(wwfwfest_state, screen_update_wwfwfest)
MCFG_SCREEN_VBLANK_DEVICE("spriteram", buffered_spriteram16_device, vblank_copy_rising)
MCFG_GFXDECODE(wwfwfest)
diff --git a/src/mame/drivers/xain.c b/src/mame/drivers/xain.c
index b4df3d2aa60..c271e2f20d5 100644
--- a/src/mame/drivers/xain.c
+++ b/src/mame/drivers/xain.c
@@ -596,7 +596,7 @@ static MACHINE_CONFIG_START( xsleena, xain_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 384, 0, 256, 272, 8, 248) /* based on ddragon driver */
- MCFG_SCREEN_UPDATE_STATIC(xain)
+ MCFG_SCREEN_UPDATE_DRIVER(xain_state, screen_update_xain)
MCFG_GFXDECODE(xain)
MCFG_PALETTE_LENGTH(512)
diff --git a/src/mame/drivers/xexex.c b/src/mame/drivers/xexex.c
index b6ecf1babe7..c61dd05c782 100644
--- a/src/mame/drivers/xexex.c
+++ b/src/mame/drivers/xexex.c
@@ -535,7 +535,7 @@ static MACHINE_CONFIG_START( xexex, xexex_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(40, 40+384-1, 0, 0+256-1)
- MCFG_SCREEN_UPDATE_STATIC(xexex)
+ MCFG_SCREEN_UPDATE_DRIVER(xexex_state, screen_update_xexex)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/xmen.c b/src/mame/drivers/xmen.c
index 6d16f5c572b..4d0b0501252 100644
--- a/src/mame/drivers/xmen.c
+++ b/src/mame/drivers/xmen.c
@@ -385,7 +385,7 @@ static MACHINE_CONFIG_START( xmen, xmen_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(13*8, (64-13)*8-1, 2*8, 30*8-1 ) /* correct, same issue of TMNT2 */
- MCFG_SCREEN_UPDATE_STATIC(xmen)
+ MCFG_SCREEN_UPDATE_DRIVER(xmen_state, screen_update_xmen)
MCFG_PALETTE_LENGTH(2048)
MCFG_K052109_ADD("k052109", xmen_k052109_intf)
@@ -437,15 +437,15 @@ static MACHINE_CONFIG_START( xmen6p, xmen_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(12*8, 48*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(xmen6p_left)
+ MCFG_SCREEN_UPDATE_DRIVER(xmen_state, screen_update_xmen6p_left)
MCFG_SCREEN_ADD("rscreen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(16*8, 52*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(xmen6p_right)
- MCFG_SCREEN_VBLANK_STATIC(xmen6p)
+ MCFG_SCREEN_UPDATE_DRIVER(xmen_state, screen_update_xmen6p_right)
+ MCFG_SCREEN_VBLANK_DRIVER(xmen_state, screen_eof_xmen6p)
MCFG_VIDEO_START_OVERRIDE(xmen_state,xmen6p)
diff --git a/src/mame/drivers/xorworld.c b/src/mame/drivers/xorworld.c
index 34c95b30a69..b298290d980 100644
--- a/src/mame/drivers/xorworld.c
+++ b/src/mame/drivers/xorworld.c
@@ -188,7 +188,7 @@ static MACHINE_CONFIG_START( xorworld, xorworld_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(xorworld)
+ MCFG_SCREEN_UPDATE_DRIVER(xorworld_state, screen_update_xorworld)
MCFG_GFXDECODE(xorworld)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/xxmissio.c b/src/mame/drivers/xxmissio.c
index 35179eab5b2..e0f5a32a4ee 100644
--- a/src/mame/drivers/xxmissio.c
+++ b/src/mame/drivers/xxmissio.c
@@ -301,7 +301,7 @@ static MACHINE_CONFIG_START( xxmissio, xxmissio_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 4*8, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(xxmissio)
+ MCFG_SCREEN_UPDATE_DRIVER(xxmissio_state, screen_update_xxmissio)
MCFG_GFXDECODE(xxmissio)
MCFG_PALETTE_LENGTH(768)
diff --git a/src/mame/drivers/xybots.c b/src/mame/drivers/xybots.c
index 9dfd64833c0..7169f2fef75 100644
--- a/src/mame/drivers/xybots.c
+++ b/src/mame/drivers/xybots.c
@@ -210,7 +210,7 @@ static MACHINE_CONFIG_START( xybots, xybots_state )
/* note: these parameters are from published specs, not derived */
/* the board uses a SYNGEN chip to generate video signals */
MCFG_SCREEN_RAW_PARAMS(ATARI_CLOCK_14MHz/2, 456, 0, 336, 262, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(xybots)
+ MCFG_SCREEN_UPDATE_DRIVER(xybots_state, screen_update_xybots)
MCFG_VIDEO_START_OVERRIDE(xybots_state,xybots)
diff --git a/src/mame/drivers/xyonix.c b/src/mame/drivers/xyonix.c
index 80d6e1b2822..8183b58303d 100644
--- a/src/mame/drivers/xyonix.c
+++ b/src/mame/drivers/xyonix.c
@@ -244,7 +244,7 @@ static MACHINE_CONFIG_START( xyonix, xyonix_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(80*4, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 80*4-1, 0, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC(xyonix)
+ MCFG_SCREEN_UPDATE_DRIVER(xyonix_state, screen_update_xyonix)
MCFG_GFXDECODE(xyonix)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mame/drivers/yiear.c b/src/mame/drivers/yiear.c
index 1a489f0a0c7..966d6bd8d0e 100644
--- a/src/mame/drivers/yiear.c
+++ b/src/mame/drivers/yiear.c
@@ -299,7 +299,7 @@ static MACHINE_CONFIG_START( yiear, yiear_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(yiear)
+ MCFG_SCREEN_UPDATE_DRIVER(yiear_state, screen_update_yiear)
MCFG_GFXDECODE(yiear)
MCFG_PALETTE_LENGTH(32)
diff --git a/src/mame/drivers/yunsun16.c b/src/mame/drivers/yunsun16.c
index cb2d5e74e9c..3024333d2cf 100644
--- a/src/mame/drivers/yunsun16.c
+++ b/src/mame/drivers/yunsun16.c
@@ -603,7 +603,7 @@ static MACHINE_CONFIG_START( magicbub, yunsun16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x180, 0xe0)
MCFG_SCREEN_VISIBLE_AREA(0+0x20, 0x180-1-0x20, 0, 0xe0-1)
- MCFG_SCREEN_UPDATE_STATIC(yunsun16)
+ MCFG_SCREEN_UPDATE_DRIVER(yunsun16_state, screen_update_yunsun16)
MCFG_GFXDECODE(yunsun16)
MCFG_PALETTE_LENGTH(8192)
@@ -641,7 +641,7 @@ static MACHINE_CONFIG_START( shocking, yunsun16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(0x180, 0xe0)
MCFG_SCREEN_VISIBLE_AREA(0, 0x180-1-4, 0, 0xe0-1)
- MCFG_SCREEN_UPDATE_STATIC(yunsun16)
+ MCFG_SCREEN_UPDATE_DRIVER(yunsun16_state, screen_update_yunsun16)
MCFG_GFXDECODE(yunsun16)
MCFG_PALETTE_LENGTH(8192)
diff --git a/src/mame/drivers/yunsung8.c b/src/mame/drivers/yunsung8.c
index c0ba0f4f71c..58ba1b8c9f9 100644
--- a/src/mame/drivers/yunsung8.c
+++ b/src/mame/drivers/yunsung8.c
@@ -515,7 +515,7 @@ static MACHINE_CONFIG_START( yunsung8, yunsung8_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0+64, 512-64-1, 0+8, 256-8-1)
- MCFG_SCREEN_UPDATE_STATIC(yunsung8)
+ MCFG_SCREEN_UPDATE_DRIVER(yunsung8_state, screen_update_yunsung8)
MCFG_GFXDECODE(yunsung8)
MCFG_PALETTE_LENGTH(2048)
diff --git a/src/mame/drivers/zac2650.c b/src/mame/drivers/zac2650.c
index 4bdb485a15b..f0c80850c6c 100644
--- a/src/mame/drivers/zac2650.c
+++ b/src/mame/drivers/zac2650.c
@@ -244,7 +244,7 @@ static MACHINE_CONFIG_START( tinvader, zac2650_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1041))
MCFG_SCREEN_SIZE(30*24, 32*24)
MCFG_SCREEN_VISIBLE_AREA(0, 719, 0, 767)
- MCFG_SCREEN_UPDATE_STATIC(tinvader)
+ MCFG_SCREEN_UPDATE_DRIVER(zac2650_state, screen_update_tinvader)
MCFG_GFXDECODE(tinvader)
MCFG_PALETTE_LENGTH(4)
diff --git a/src/mame/drivers/zaccaria.c b/src/mame/drivers/zaccaria.c
index e0efe3fde48..3bcd01d7036 100644
--- a/src/mame/drivers/zaccaria.c
+++ b/src/mame/drivers/zaccaria.c
@@ -606,7 +606,7 @@ static MACHINE_CONFIG_START( zaccaria, zaccaria_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(zaccaria)
+ MCFG_SCREEN_UPDATE_DRIVER(zaccaria_state, screen_update_zaccaria)
MCFG_GFXDECODE(zaccaria)
MCFG_PALETTE_LENGTH(32*8+32*8)
diff --git a/src/mame/drivers/zaxxon.c b/src/mame/drivers/zaxxon.c
index 8acdece266b..a7f92f77724 100644
--- a/src/mame/drivers/zaxxon.c
+++ b/src/mame/drivers/zaxxon.c
@@ -973,7 +973,7 @@ static MACHINE_CONFIG_START( root, zaxxon_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(zaxxon)
+ MCFG_SCREEN_UPDATE_DRIVER(zaxxon_state, screen_update_zaxxon)
MACHINE_CONFIG_END
@@ -990,7 +990,7 @@ static MACHINE_CONFIG_DERIVED( futspy, root )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(futspy)
+ MCFG_SCREEN_UPDATE_DRIVER(zaxxon_state, screen_update_futspy)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1008,7 +1008,7 @@ static MACHINE_CONFIG_DERIVED( razmataz, root )
/* video hardware */
MCFG_VIDEO_START_OVERRIDE(zaxxon_state,razmataz)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(razmataz)
+ MCFG_SCREEN_UPDATE_DRIVER(zaxxon_state, screen_update_razmataz)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
@@ -1032,7 +1032,7 @@ static MACHINE_CONFIG_DERIVED( congo, root )
MCFG_PALETTE_LENGTH(512)
MCFG_VIDEO_START_OVERRIDE(zaxxon_state,congo)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(congo)
+ MCFG_SCREEN_UPDATE_DRIVER(zaxxon_state, screen_update_congo)
/* sound hardware */
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mame/drivers/zr107.c b/src/mame/drivers/zr107.c
index c20d05ac044..f72019f532e 100644
--- a/src/mame/drivers/zr107.c
+++ b/src/mame/drivers/zr107.c
@@ -205,6 +205,8 @@ public:
virtual void machine_reset();
DECLARE_VIDEO_START(zr107);
DECLARE_VIDEO_START(jetwave);
+ UINT32 screen_update_zr107(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_jetwave(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -218,9 +220,8 @@ VIDEO_START_MEMBER(zr107_state,jetwave)
}
-static SCREEN_UPDATE_RGB32( jetwave )
+UINT32 zr107_state::screen_update_jetwave(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- zr107_state *state = screen.machine().driver_data<zr107_state>();
device_t *k001604 = screen.machine().device("k001604");
bitmap.fill(screen.machine().pens[0], cliprect);
@@ -229,8 +230,8 @@ static SCREEN_UPDATE_RGB32( jetwave )
k001604_draw_front_layer(k001604, bitmap, cliprect);
- draw_7segment_led(bitmap, 3, 3, state->m_led_reg0);
- draw_7segment_led(bitmap, 9, 3, state->m_led_reg1);
+ draw_7segment_led(bitmap, 3, 3, m_led_reg0);
+ draw_7segment_led(bitmap, 9, 3, m_led_reg1);
sharc_set_flag_input(screen.machine().device("dsp"), 1, ASSERT_LINE);
return 0;
@@ -271,9 +272,8 @@ VIDEO_START_MEMBER(zr107_state,zr107)
K001005_init(machine());
}
-static SCREEN_UPDATE_RGB32( zr107 )
+UINT32 zr107_state::screen_update_zr107(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- zr107_state *state = screen.machine().driver_data<zr107_state>();
device_t *k056832 = screen.machine().device("k056832");
bitmap.fill(screen.machine().pens[0], cliprect);
@@ -281,8 +281,8 @@ static SCREEN_UPDATE_RGB32( zr107 )
K001005_draw(bitmap, cliprect);
k056832_tilemap_draw(k056832, bitmap, cliprect, 0, 0, 0);
- draw_7segment_led(bitmap, 3, 3, state->m_led_reg0);
- draw_7segment_led(bitmap, 9, 3, state->m_led_reg1);
+ draw_7segment_led(bitmap, 3, 3, m_led_reg0);
+ draw_7segment_led(bitmap, 9, 3, m_led_reg1);
sharc_set_flag_input(screen.machine().device("dsp"), 1, ASSERT_LINE);
return 0;
@@ -751,7 +751,7 @@ static MACHINE_CONFIG_START( zr107, zr107_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(64*8, 48*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 48*8-1)
- MCFG_SCREEN_UPDATE_STATIC(zr107)
+ MCFG_SCREEN_UPDATE_DRIVER(zr107_state, screen_update_zr107)
MCFG_PALETTE_LENGTH(65536)
@@ -807,7 +807,7 @@ static MACHINE_CONFIG_START( jetwave, zr107_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(64*8, 48*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0*8, 48*8-1)
- MCFG_SCREEN_UPDATE_STATIC(jetwave)
+ MCFG_SCREEN_UPDATE_DRIVER(zr107_state, screen_update_jetwave)
MCFG_PALETTE_LENGTH(65536)
diff --git a/src/mame/includes/1942.h b/src/mame/includes/1942.h
index 4e7735743e1..11f1504594d 100644
--- a/src/mame/includes/1942.h
+++ b/src/mame/includes/1942.h
@@ -39,6 +39,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_1942(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/includes/1943.h b/src/mame/includes/1943.h
index 86e16c5e803..3485cfb1f0c 100644
--- a/src/mame/includes/1943.h
+++ b/src/mame/includes/1943.h
@@ -46,6 +46,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_1943(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/includes/20pacgal.h b/src/mame/includes/20pacgal.h
index 6c8439af996..69a7e3c6607 100644
--- a/src/mame/includes/20pacgal.h
+++ b/src/mame/includes/20pacgal.h
@@ -54,6 +54,7 @@ public:
DECLARE_DRIVER_INIT(20pacgal);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_20pacgal(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/includes/3do.h b/src/mame/includes/3do.h
index 2de54ca28e0..779e9afdefd 100644
--- a/src/mame/includes/3do.h
+++ b/src/mame/includes/3do.h
@@ -187,6 +187,7 @@ public:
DECLARE_WRITE32_MEMBER(_3do_clio_w);
virtual void machine_reset();
DECLARE_VIDEO_START(_3do);
+ UINT32 screen_update__3do(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
/*----------- defined in machine/3do.c -----------*/
@@ -201,6 +202,6 @@ void _3do_clio_init( running_machine &machine, screen_device *screen );
-SCREEN_UPDATE_RGB32( _3do );
+
#endif /* _3DO_H_ */
diff --git a/src/mame/includes/40love.h b/src/mame/includes/40love.h
index 9d455cdec4d..80a1f8e2a7f 100644
--- a/src/mame/includes/40love.h
+++ b/src/mame/includes/40love.h
@@ -95,6 +95,7 @@ public:
DECLARE_MACHINE_RESET(undoukai);
DECLARE_MACHINE_RESET(common);
DECLARE_MACHINE_RESET(ta7630);
+ UINT32 screen_update_fortyl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -102,5 +103,5 @@ public:
-SCREEN_UPDATE_IND16( fortyl );
+
diff --git a/src/mame/includes/4enraya.h b/src/mame/includes/4enraya.h
index d4303f2c4ff..022e9d996f2 100644
--- a/src/mame/includes/4enraya.h
+++ b/src/mame/includes/4enraya.h
@@ -34,6 +34,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_4enraya(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -41,4 +42,4 @@ public:
-SCREEN_UPDATE_IND16( 4enraya );
+
diff --git a/src/mame/includes/8080bw.h b/src/mame/includes/8080bw.h
index 86b53b6f48d..a44479d4db1 100644
--- a/src/mame/includes/8080bw.h
+++ b/src/mame/includes/8080bw.h
@@ -74,6 +74,17 @@ public:
DECLARE_MACHINE_START(extra_8080bw_vh);
DECLARE_MACHINE_START(schaser_sh);
DECLARE_MACHINE_RESET(schaser_sh);
+ UINT32 screen_update_invadpt2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_cosmo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_rollingc(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_schaser(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_schasercv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_sflush(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_indianbt(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_lupin3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_polaris(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_ballbomb(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_shuttlei(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -101,15 +112,15 @@ DISCRETE_SOUND_EXTERN( schaser );
-SCREEN_UPDATE_RGB32( invadpt2 );
-SCREEN_UPDATE_RGB32( ballbomb );
-SCREEN_UPDATE_RGB32( schaser );
-SCREEN_UPDATE_RGB32( schasercv );
-SCREEN_UPDATE_RGB32( rollingc );
-SCREEN_UPDATE_RGB32( polaris );
-SCREEN_UPDATE_RGB32( lupin3 );
-SCREEN_UPDATE_RGB32( cosmo );
-SCREEN_UPDATE_RGB32( indianbt );
-SCREEN_UPDATE_RGB32( shuttlei );
-SCREEN_UPDATE_RGB32( sflush );
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/mame/includes/88games.h b/src/mame/includes/88games.h
index 2e21faee9cf..a51a91fa767 100644
--- a/src/mame/includes/88games.h
+++ b/src/mame/includes/88games.h
@@ -46,6 +46,7 @@ public:
DECLARE_WRITE8_MEMBER(k052109_051960_w);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_88games(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -55,4 +56,4 @@ void _88games_sprite_callback(running_machine &machine, int *code, int *color, i
void _88games_tile_callback(running_machine &machine, int layer, int bank, int *code, int *color, int *flags, int *priority);
void _88games_zoom_callback(running_machine &machine, int *code, int *color, int *flags);
-SCREEN_UPDATE_IND16( 88games );
+
diff --git a/src/mame/includes/actfancr.h b/src/mame/includes/actfancr.h
index 6d361082eea..ad090581aba 100644
--- a/src/mame/includes/actfancr.h
+++ b/src/mame/includes/actfancr.h
@@ -33,6 +33,7 @@ public:
DECLARE_MACHINE_RESET(actfancr);
DECLARE_MACHINE_START(triothep);
DECLARE_MACHINE_RESET(triothep);
+ UINT32 screen_update_actfancr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -46,5 +47,5 @@ DECLARE_READ8_HANDLER( actfancr_pf2_data_r );
DECLARE_WRITE8_HANDLER( actfancr_pf2_control_w );
-SCREEN_UPDATE_IND16( actfancr );
+
diff --git a/src/mame/includes/aeroboto.h b/src/mame/includes/aeroboto.h
index 389e3da57e6..d6bc2171937 100644
--- a/src/mame/includes/aeroboto.h
+++ b/src/mame/includes/aeroboto.h
@@ -58,11 +58,12 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_aeroboto(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/aeroboto.c -----------*/
-SCREEN_UPDATE_IND16( aeroboto );
+
diff --git a/src/mame/includes/aerofgt.h b/src/mame/includes/aerofgt.h
index 8f7278dd5ae..f715c396f09 100644
--- a/src/mame/includes/aerofgt.h
+++ b/src/mame/includes/aerofgt.h
@@ -83,6 +83,16 @@ public:
DECLARE_VIDEO_START(spinlbrk);
DECLARE_VIDEO_START(turbofrc);
DECLARE_VIDEO_START(wbbc97);
+ UINT32 screen_update_pspikes(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_spikes91(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_pspikesb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_karatblz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_spinlbrk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_turbofrc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_aerofgt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_aerfboot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_aerfboo2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_wbbc97(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -95,13 +105,13 @@ public:
-SCREEN_UPDATE_IND16( pspikes );
-SCREEN_UPDATE_IND16( pspikesb );
-SCREEN_UPDATE_IND16( spikes91 );
-SCREEN_UPDATE_IND16( karatblz );
-SCREEN_UPDATE_IND16( spinlbrk );
-SCREEN_UPDATE_IND16( turbofrc );
-SCREEN_UPDATE_IND16( aerofgt );
-SCREEN_UPDATE_IND16( aerfboot );
-SCREEN_UPDATE_IND16( aerfboo2 );
-SCREEN_UPDATE_RGB32( wbbc97 );
+
+
+
+
+
+
+
+
+
+
diff --git a/src/mame/includes/airbustr.h b/src/mame/includes/airbustr.h
index bd5776ab0d5..942a2e7502e 100644
--- a/src/mame/includes/airbustr.h
+++ b/src/mame/includes/airbustr.h
@@ -66,6 +66,8 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_airbustr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_airbustr(screen_device &screen, bool state);
};
@@ -73,5 +75,5 @@ public:
-SCREEN_UPDATE_IND16( airbustr );
-SCREEN_VBLANK( airbustr );
+
+
diff --git a/src/mame/includes/ajax.h b/src/mame/includes/ajax.h
index 32022c6d9b9..1222ec3c0af 100644
--- a/src/mame/includes/ajax.h
+++ b/src/mame/includes/ajax.h
@@ -36,6 +36,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_ajax(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -48,7 +49,7 @@ INTERRUPT_GEN( ajax_interrupt );
/*----------- defined in video/ajax.c -----------*/
-SCREEN_UPDATE_IND16( ajax );
+
extern void ajax_tile_callback(running_machine &machine, int layer,int bank,int *code,int *color,int *flags,int *priority);
extern void ajax_sprite_callback(running_machine &machine, int *code,int *color,int *priority,int *shadow);
diff --git a/src/mame/includes/aliens.h b/src/mame/includes/aliens.h
index f15d7badd33..28b958a6737 100644
--- a/src/mame/includes/aliens.h
+++ b/src/mame/includes/aliens.h
@@ -38,6 +38,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_aliens(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/aliens.c -----------*/
@@ -46,4 +47,4 @@ extern void aliens_tile_callback(running_machine &machine, int layer,int bank,in
extern void aliens_sprite_callback(running_machine &machine, int *code,int *color,int *priority_mask,int *shadow);
-SCREEN_UPDATE_IND16( aliens );
+
diff --git a/src/mame/includes/alpha68k.h b/src/mame/includes/alpha68k.h
index 179913aa331..3fbd9d63507 100644
--- a/src/mame/includes/alpha68k.h
+++ b/src/mame/includes/alpha68k.h
@@ -98,6 +98,12 @@ public:
DECLARE_VIDEO_START(alpha68k);
DECLARE_MACHINE_START(alpha68k_V);
DECLARE_MACHINE_RESET(alpha68k_V);
+ UINT32 screen_update_sstingry(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_kyros(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_alpha68k_I(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_alpha68k_II(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_alpha68k_V(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_alpha68k_V_sb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/* game_id - used to deal with a few game specific situations */
@@ -116,12 +122,12 @@ enum
-SCREEN_UPDATE_IND16( kyros );
-SCREEN_UPDATE_IND16( sstingry );
-SCREEN_UPDATE_IND16( alpha68k_I );
-SCREEN_UPDATE_IND16( alpha68k_II );
-SCREEN_UPDATE_IND16( alpha68k_V );
-SCREEN_UPDATE_IND16( alpha68k_V_sb );
+
+
+
+
+
+
void alpha68k_V_video_bank_w(running_machine &machine, int bank);
void alpha68k_flipscreen_w(running_machine &machine, int flip);
diff --git a/src/mame/includes/ambush.h b/src/mame/includes/ambush.h
index b61ebc8ab57..31b340f3964 100644
--- a/src/mame/includes/ambush.h
+++ b/src/mame/includes/ambush.h
@@ -25,10 +25,11 @@ public:
DECLARE_WRITE8_MEMBER(ambush_coin_counter_w);
DECLARE_WRITE8_MEMBER(flip_screen_w);
virtual void palette_init();
+ UINT32 screen_update_ambush(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/ambush.c -----------*/
-SCREEN_UPDATE_IND16( ambush );
+
diff --git a/src/mame/includes/amiga.h b/src/mame/includes/amiga.h
index 9e2c0f2cefc..b2805185a69 100644
--- a/src/mame/includes/amiga.h
+++ b/src/mame/includes/amiga.h
@@ -434,6 +434,8 @@ public:
DECLARE_VIDEO_START(amiga);
DECLARE_PALETTE_INIT(amiga);
DECLARE_VIDEO_START(amiga_aga);
+ UINT32 screen_update_amiga(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_amiga_aga(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -502,7 +504,7 @@ extern const UINT16 amiga_expand_byte[256];
-SCREEN_UPDATE_IND16( amiga );
+
void amiga_copper_setpc(running_machine &machine, UINT32 pc);
int amiga_copper_execute_next(running_machine &machine, int xpos);
@@ -516,7 +518,7 @@ void amiga_sprite_enable_comparitor(running_machine &machine, int which, int ena
/*----------- defined in video/amigaaga.c -----------*/
-SCREEN_UPDATE_RGB32( amiga_aga );
+
void amiga_aga_render_scanline(running_machine &machine, bitmap_rgb32 &bitmap, int scanline);
void amiga_aga_palette_write(running_machine &machine, int color_reg, UINT16 data);
diff --git a/src/mame/includes/ampoker2.h b/src/mame/includes/ampoker2.h
index f5a80a8cf00..f2443728b39 100644
--- a/src/mame/includes/ampoker2.h
+++ b/src/mame/includes/ampoker2.h
@@ -23,6 +23,7 @@ public:
virtual void video_start();
virtual void palette_init();
DECLARE_VIDEO_START(sigma2k);
+ UINT32 screen_update_ampoker2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -31,4 +32,4 @@ public:
-SCREEN_UPDATE_IND16( ampoker2 );
+
diff --git a/src/mame/includes/amspdwy.h b/src/mame/includes/amspdwy.h
index a65890127da..f18a5e070b3 100644
--- a/src/mame/includes/amspdwy.h
+++ b/src/mame/includes/amspdwy.h
@@ -43,6 +43,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_amspdwy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -50,4 +51,4 @@ public:
-SCREEN_UPDATE_IND16( amspdwy );
+
diff --git a/src/mame/includes/angelkds.h b/src/mame/includes/angelkds.h
index c60aff1f91d..12cd9ea40d2 100644
--- a/src/mame/includes/angelkds.h
+++ b/src/mame/includes/angelkds.h
@@ -59,6 +59,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_angelkds(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -68,4 +69,4 @@ public:
-SCREEN_UPDATE_IND16( angelkds );
+
diff --git a/src/mame/includes/appoooh.h b/src/mame/includes/appoooh.h
index 7b040ec841a..1133040f8f7 100644
--- a/src/mame/includes/appoooh.h
+++ b/src/mame/includes/appoooh.h
@@ -50,6 +50,8 @@ public:
DECLARE_VIDEO_START(appoooh);
DECLARE_PALETTE_INIT(appoooh);
DECLARE_PALETTE_INIT(robowres);
+ UINT32 screen_update_appoooh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_robowres(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
#define CHR1_OFST 0x00 /* palette page of char set #1 */
@@ -61,5 +63,5 @@ public:
-SCREEN_UPDATE_IND16( appoooh );
-SCREEN_UPDATE_IND16( robowres );
+
+
diff --git a/src/mame/includes/aquarium.h b/src/mame/includes/aquarium.h
index 9594e37f92c..5a063423a92 100644
--- a/src/mame/includes/aquarium.h
+++ b/src/mame/includes/aquarium.h
@@ -46,6 +46,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_aquarium(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -53,4 +54,4 @@ public:
-SCREEN_UPDATE_IND16(aquarium);
+
diff --git a/src/mame/includes/arabian.h b/src/mame/includes/arabian.h
index 39427f2b9f5..9348737aa77 100644
--- a/src/mame/includes/arabian.h
+++ b/src/mame/includes/arabian.h
@@ -42,6 +42,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_arabian(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -50,4 +51,4 @@ public:
-SCREEN_UPDATE_IND16( arabian );
+
diff --git a/src/mame/includes/arcadecl.h b/src/mame/includes/arcadecl.h
index a2f3cd9044e..e6e37ad8ed5 100644
--- a/src/mame/includes/arcadecl.h
+++ b/src/mame/includes/arcadecl.h
@@ -21,9 +21,10 @@ public:
DECLARE_MACHINE_START(arcadecl);
DECLARE_MACHINE_RESET(arcadecl);
DECLARE_VIDEO_START(arcadecl);
+ UINT32 screen_update_arcadecl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/arcadecl.c -----------*/
-SCREEN_UPDATE_IND16( arcadecl );
+
diff --git a/src/mame/includes/argus.h b/src/mame/includes/argus.h
index 778c60fd280..f8b981042ce 100644
--- a/src/mame/includes/argus.h
+++ b/src/mame/includes/argus.h
@@ -80,6 +80,9 @@ public:
DECLARE_VIDEO_RESET(valtric);
DECLARE_VIDEO_START(butasan);
DECLARE_VIDEO_RESET(butasan);
+ UINT32 screen_update_argus(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_valtric(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_butasan(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -91,9 +94,9 @@ public:
-SCREEN_UPDATE_RGB32( argus );
-SCREEN_UPDATE_RGB32( valtric );
-SCREEN_UPDATE_RGB32( butasan );
+
+
+
diff --git a/src/mame/includes/arkanoid.h b/src/mame/includes/arkanoid.h
index d6823e81342..3945422ecba 100644
--- a/src/mame/includes/arkanoid.h
+++ b/src/mame/includes/arkanoid.h
@@ -77,6 +77,8 @@ public:
DECLARE_MACHINE_START(arkanoid);
DECLARE_MACHINE_RESET(arkanoid);
DECLARE_VIDEO_START(arkanoid);
+ UINT32 screen_update_arkanoid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_hexa(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/includes/armedf.h b/src/mame/includes/armedf.h
index 4edf87ae762..41e6e5de703 100644
--- a/src/mame/includes/armedf.h
+++ b/src/mame/includes/armedf.h
@@ -79,6 +79,7 @@ public:
DECLARE_MACHINE_RESET(armedf);
DECLARE_VIDEO_START(terraf);
DECLARE_VIDEO_START(armedf);
+ UINT32 screen_update_armedf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
class bigfghtr_state : public armedf_state
@@ -105,7 +106,7 @@ public:
/*----------- defined in video/armedf.c -----------*/
-SCREEN_UPDATE_IND16( armedf );
+
diff --git a/src/mame/includes/ashnojoe.h b/src/mame/includes/ashnojoe.h
index 32f0b02ea77..1831acc5f62 100644
--- a/src/mame/includes/ashnojoe.h
+++ b/src/mame/includes/ashnojoe.h
@@ -73,6 +73,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_ashnojoe(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -80,4 +81,4 @@ public:
-SCREEN_UPDATE_IND16( ashnojoe );
+
diff --git a/src/mame/includes/asterix.h b/src/mame/includes/asterix.h
index 995fefb9af2..36941921f71 100644
--- a/src/mame/includes/asterix.h
+++ b/src/mame/includes/asterix.h
@@ -42,13 +42,14 @@ public:
DECLARE_DRIVER_INIT(asterix);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_asterix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/asterix.c -----------*/
-SCREEN_UPDATE_IND16( asterix );
+
extern void asterix_tile_callback(running_machine &machine, int layer, int *code, int *color, int *flags);
extern void asterix_sprite_callback(running_machine &machine, int *code, int *color, int *priority_mask);
diff --git a/src/mame/includes/astrocde.h b/src/mame/includes/astrocde.h
index df8269a84ee..aca21100990 100644
--- a/src/mame/includes/astrocde.h
+++ b/src/mame/includes/astrocde.h
@@ -120,6 +120,8 @@ public:
virtual void palette_init();
DECLARE_VIDEO_START(profpac);
DECLARE_PALETTE_INIT(profpac);
+ UINT32 screen_update_astrocde(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_profpac(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -131,8 +133,8 @@ public:
-SCREEN_UPDATE_IND16( astrocde );
-SCREEN_UPDATE_IND16( profpac );
+
+
diff --git a/src/mame/includes/astrof.h b/src/mame/includes/astrof.h
index e2c6134eb26..dfd441d5e74 100644
--- a/src/mame/includes/astrof.h
+++ b/src/mame/includes/astrof.h
@@ -68,6 +68,8 @@ public:
DECLARE_MACHINE_RESET(abattle);
DECLARE_MACHINE_START(spfghmk2);
DECLARE_MACHINE_START(tomahawk);
+ UINT32 screen_update_astrof(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_tomahawk(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
/*----------- defined in audio/astrof.c -----------*/
diff --git a/src/mame/includes/asuka.h b/src/mame/includes/asuka.h
index 1fc5c834290..c2441e4f3b0 100644
--- a/src/mame/includes/asuka.h
+++ b/src/mame/includes/asuka.h
@@ -47,6 +47,9 @@ public:
DECLARE_WRITE8_MEMBER(asuka_msm5205_stop_w);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_bonzeadv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_asuka(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_asuka(screen_device &screen, bool state);
};
@@ -63,5 +66,5 @@ DECLARE_WRITE16_HANDLER( bonzeadv_cchip_ram_w );
/*----------- defined in video/asuka.c -----------*/
-SCREEN_UPDATE_IND16( asuka );
-SCREEN_UPDATE_IND16( bonzeadv );
+
+
diff --git a/src/mame/includes/atarifb.h b/src/mame/includes/atarifb.h
index dbcd15e78d1..77a76272037 100644
--- a/src/mame/includes/atarifb.h
+++ b/src/mame/includes/atarifb.h
@@ -79,6 +79,9 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_atarifb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_abaseb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_soccer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -98,7 +101,7 @@ DISCRETE_SOUND_EXTERN( abaseb );
/*----------- defined in video/atarifb.c -----------*/
-SCREEN_UPDATE_IND16( atarifb );
-SCREEN_UPDATE_IND16( abaseb );
-SCREEN_UPDATE_IND16( soccer );
+
+
+
diff --git a/src/mame/includes/atarig1.h b/src/mame/includes/atarig1.h
index 46f161d813d..42fdd37572f 100644
--- a/src/mame/includes/atarig1.h
+++ b/src/mame/includes/atarig1.h
@@ -49,6 +49,8 @@ public:
DECLARE_MACHINE_START(atarig1);
DECLARE_MACHINE_RESET(atarig1);
DECLARE_VIDEO_START(atarig1);
+ UINT32 screen_update_atarig1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_atarig1(screen_device &screen, bool state);
};
@@ -56,7 +58,7 @@ public:
-SCREEN_VBLANK( atarig1 );
-SCREEN_UPDATE_IND16( atarig1 );
+
+
void atarig1_scanline_update(screen_device &screen, int scanline);
diff --git a/src/mame/includes/atarig42.h b/src/mame/includes/atarig42.h
index 86064464201..42efda023d8 100644
--- a/src/mame/includes/atarig42.h
+++ b/src/mame/includes/atarig42.h
@@ -52,14 +52,16 @@ public:
DECLARE_MACHINE_START(atarig42);
DECLARE_MACHINE_RESET(atarig42);
DECLARE_VIDEO_START(atarig42);
+ UINT32 screen_update_atarig42(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_atarig42(screen_device &screen, bool state);
};
/*----------- defined in video/atarig42.c -----------*/
-SCREEN_VBLANK( atarig42 );
-SCREEN_UPDATE_IND16( atarig42 );
+
+
DECLARE_WRITE16_HANDLER( atarig42_mo_control_w );
diff --git a/src/mame/includes/atarigt.h b/src/mame/includes/atarigt.h
index 36bf17c7cde..25a28a97dae 100644
--- a/src/mame/includes/atarigt.h
+++ b/src/mame/includes/atarigt.h
@@ -71,6 +71,8 @@ public:
DECLARE_MACHINE_START(atarigt);
DECLARE_MACHINE_RESET(atarigt);
DECLARE_VIDEO_START(atarigt);
+ UINT32 screen_update_atarigt(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void screen_eof_atarigt(screen_device &screen, bool state);
};
@@ -79,7 +81,7 @@ public:
-SCREEN_VBLANK( atarigt );
-SCREEN_UPDATE_RGB32( atarigt );
+
+
void atarigt_scanline_update(screen_device &screen, int scanline);
diff --git a/src/mame/includes/atarigx2.h b/src/mame/includes/atarigx2.h
index f473fbb7d1f..72932fb56d2 100644
--- a/src/mame/includes/atarigx2.h
+++ b/src/mame/includes/atarigx2.h
@@ -46,14 +46,16 @@ public:
DECLARE_MACHINE_START(atarigx2);
DECLARE_MACHINE_RESET(atarigx2);
DECLARE_VIDEO_START(atarigx2);
+ UINT32 screen_update_atarigx2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_atarigx2(screen_device &screen, bool state);
};
/*----------- defined in video/atarigx2.c -----------*/
-SCREEN_VBLANK( atarigx2 );
-SCREEN_UPDATE_IND16( atarigx2 );
+
+
DECLARE_WRITE16_HANDLER( atarigx2_mo_control_w );
diff --git a/src/mame/includes/atarisy1.h b/src/mame/includes/atarisy1.h
index fa644ce7711..a422a825622 100644
--- a/src/mame/includes/atarisy1.h
+++ b/src/mame/includes/atarisy1.h
@@ -64,6 +64,7 @@ public:
DECLARE_MACHINE_START(atarisy1);
DECLARE_MACHINE_RESET(atarisy1);
DECLARE_VIDEO_START(atarisy1);
+ UINT32 screen_update_atarisy1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -82,4 +83,4 @@ DECLARE_WRITE16_HANDLER( atarisy1_yscroll_w );
DECLARE_WRITE16_HANDLER( atarisy1_priority_w );
-SCREEN_UPDATE_IND16( atarisy1 );
+
diff --git a/src/mame/includes/atarisy2.h b/src/mame/includes/atarisy2.h
index 10777b7c715..e8ddb4e7edc 100644
--- a/src/mame/includes/atarisy2.h
+++ b/src/mame/includes/atarisy2.h
@@ -78,6 +78,7 @@ public:
DECLARE_MACHINE_START(atarisy2);
DECLARE_MACHINE_RESET(atarisy2);
DECLARE_VIDEO_START(atarisy2);
+ UINT32 screen_update_atarisy2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -93,4 +94,4 @@ DECLARE_WRITE16_HANDLER( atarisy2_videoram_w );
DECLARE_WRITE16_HANDLER( atarisy2_paletteram_w );
-SCREEN_UPDATE_IND16( atarisy2 );
+
diff --git a/src/mame/includes/atetris.h b/src/mame/includes/atetris.h
index 1b7eb93ff7a..1a910c27386 100644
--- a/src/mame/includes/atetris.h
+++ b/src/mame/includes/atetris.h
@@ -31,10 +31,11 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_atetris(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/atetris.c -----------*/
-SCREEN_UPDATE_IND16( atetris );
+
diff --git a/src/mame/includes/avalnche.h b/src/mame/includes/avalnche.h
index 74aaa2c3feb..88a8d79b377 100644
--- a/src/mame/includes/avalnche.h
+++ b/src/mame/includes/avalnche.h
@@ -25,6 +25,7 @@ public:
DECLARE_WRITE8_MEMBER(avalance_start_lamp_w);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_avalnche(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
/*----------- defined in audio/avalnche.c -----------*/
diff --git a/src/mame/includes/badlands.h b/src/mame/includes/badlands.h
index 956baa663f8..d390772c0fe 100644
--- a/src/mame/includes/badlands.h
+++ b/src/mame/includes/badlands.h
@@ -30,6 +30,7 @@ public:
DECLARE_MACHINE_RESET(badlands);
DECLARE_VIDEO_START(badlands);
DECLARE_MACHINE_RESET(badlandsb);
+ UINT32 screen_update_badlands(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -38,4 +39,4 @@ public:
DECLARE_WRITE16_HANDLER( badlands_pf_bank_w );
-SCREEN_UPDATE_IND16( badlands );
+
diff --git a/src/mame/includes/bagman.h b/src/mame/includes/bagman.h
index c0727672f9b..e3467434071 100644
--- a/src/mame/includes/bagman.h
+++ b/src/mame/includes/bagman.h
@@ -47,6 +47,7 @@ public:
DECLARE_MACHINE_RESET(bagman);
DECLARE_VIDEO_START(bagman);
DECLARE_PALETTE_INIT(bagman);
+ UINT32 screen_update_bagman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -80,4 +81,4 @@ public:
-SCREEN_UPDATE_IND16( bagman );
+
diff --git a/src/mame/includes/balsente.h b/src/mame/includes/balsente.h
index f93c866dd62..0af442604de 100644
--- a/src/mame/includes/balsente.h
+++ b/src/mame/includes/balsente.h
@@ -192,6 +192,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_balsente(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -224,5 +225,5 @@ TIMER_DEVICE_CALLBACK( balsente_clock_counter_0_ff );
/*----------- defined in video/balsente.c -----------*/
-SCREEN_UPDATE_IND16( balsente );
+
diff --git a/src/mame/includes/bankp.h b/src/mame/includes/bankp.h
index 89508da3797..728917636ea 100644
--- a/src/mame/includes/bankp.h
+++ b/src/mame/includes/bankp.h
@@ -38,6 +38,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_bankp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -46,6 +47,6 @@ public:
-SCREEN_UPDATE_IND16( bankp );
+
diff --git a/src/mame/includes/baraduke.h b/src/mame/includes/baraduke.h
index a43c30335ef..bdeed1af1e2 100644
--- a/src/mame/includes/baraduke.h
+++ b/src/mame/includes/baraduke.h
@@ -38,12 +38,14 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info1);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_baraduke(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_baraduke(screen_device &screen, bool state);
};
/*----------- defined in video/baraduke.c -----------*/
-SCREEN_UPDATE_IND16( baraduke );
-SCREEN_VBLANK( baraduke );
+
+
diff --git a/src/mame/includes/batman.h b/src/mame/includes/batman.h
index aa8cfe9e423..d0e6f8f90fe 100644
--- a/src/mame/includes/batman.h
+++ b/src/mame/includes/batman.h
@@ -26,12 +26,13 @@ public:
DECLARE_MACHINE_START(batman);
DECLARE_MACHINE_RESET(batman);
DECLARE_VIDEO_START(batman);
+ UINT32 screen_update_batman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/batman.c -----------*/
-SCREEN_UPDATE_IND16( batman );
+
void batman_scanline_update(screen_device &screen, int scanline);
diff --git a/src/mame/includes/battlane.h b/src/mame/includes/battlane.h
index 5510fa98e01..c656ba661cb 100644
--- a/src/mame/includes/battlane.h
+++ b/src/mame/includes/battlane.h
@@ -38,6 +38,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_battlane(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -45,4 +46,4 @@ public:
-SCREEN_UPDATE_IND16( battlane );
+
diff --git a/src/mame/includes/battlera.h b/src/mame/includes/battlera.h
index 4421c3e290d..0401e3e28ef 100644
--- a/src/mame/includes/battlera.h
+++ b/src/mame/includes/battlera.h
@@ -40,12 +40,13 @@ public:
DECLARE_WRITE8_MEMBER(HuC6270_data_w);
DECLARE_WRITE8_MEMBER(battlera_adpcm_reset_w);
virtual void video_start();
+ UINT32 screen_update_battlera(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/battlera.c -----------*/
-SCREEN_UPDATE_IND16( battlera );
+
TIMER_DEVICE_CALLBACK( battlera_irq );
diff --git a/src/mame/includes/battlex.h b/src/mame/includes/battlex.h
index d6c7479cd6c..e80705bb734 100644
--- a/src/mame/includes/battlex.h
+++ b/src/mame/includes/battlex.h
@@ -35,6 +35,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_battlex(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/includes/battlnts.h b/src/mame/includes/battlnts.h
index ebb30af1d28..c11e5c339c0 100644
--- a/src/mame/includes/battlnts.h
+++ b/src/mame/includes/battlnts.h
@@ -28,12 +28,13 @@ public:
DECLARE_DRIVER_INIT(rackemup);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_battlnts(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/battlnts.c -----------*/
-SCREEN_UPDATE_IND16( battlnts );
+
void battlnts_tile_callback(running_machine &machine, int layer, int bank, int *code, int *color, int *flags);
void battlnts_sprite_callback(running_machine &machine, int *code, int *color);
diff --git a/src/mame/includes/bbusters.h b/src/mame/includes/bbusters.h
index 98a452842ff..cd9aab0b0af 100644
--- a/src/mame/includes/bbusters.h
+++ b/src/mame/includes/bbusters.h
@@ -54,6 +54,9 @@ public:
TILE_GET_INFO_MEMBER(get_pf2_tile_info);
DECLARE_VIDEO_START(bbuster);
DECLARE_VIDEO_START(mechatt);
+ UINT32 screen_update_bbuster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_mechatt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_bbuster(screen_device &screen, bool state);
};
@@ -61,6 +64,6 @@ public:
-SCREEN_UPDATE_IND16( bbuster );
-SCREEN_UPDATE_IND16( mechatt );
+
+
diff --git a/src/mame/includes/beezer.h b/src/mame/includes/beezer.h
index 04a0b9aa735..336fdbb139f 100644
--- a/src/mame/includes/beezer.h
+++ b/src/mame/includes/beezer.h
@@ -17,6 +17,7 @@ public:
DECLARE_READ8_MEMBER(beezer_line_r);
DECLARE_DRIVER_INIT(beezer);
virtual void machine_start();
+ UINT32 screen_update_beezer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -62,4 +63,4 @@ DECLARE_READ8_DEVICE_HANDLER( beezer_noise_r );
/*----------- defined in video/beezer.c -----------*/
TIMER_DEVICE_CALLBACK( beezer_interrupt );
-SCREEN_UPDATE_IND16( beezer );
+
diff --git a/src/mame/includes/bigevglf.h b/src/mame/includes/bigevglf.h
index a951cb9d68d..2d7d7fa954b 100644
--- a/src/mame/includes/bigevglf.h
+++ b/src/mame/includes/bigevglf.h
@@ -89,6 +89,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_bigevglf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -100,6 +101,6 @@ public:
/*----------- defined in video/bigevglf.c -----------*/
-SCREEN_UPDATE_IND16( bigevglf );
+
diff --git a/src/mame/includes/bigstrkb.h b/src/mame/includes/bigstrkb.h
index eb7e2d94d23..61a991cbeac 100644
--- a/src/mame/includes/bigstrkb.h
+++ b/src/mame/includes/bigstrkb.h
@@ -30,10 +30,11 @@ public:
TILE_GET_INFO_MEMBER(get_bsb_tile2_info);
TILE_GET_INFO_MEMBER(get_bsb_tile3_info);
virtual void video_start();
+ UINT32 screen_update_bigstrkb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/bigstrkb.c -----------*/
-SCREEN_UPDATE_IND16(bigstrkb);
+
diff --git a/src/mame/includes/bionicc.h b/src/mame/includes/bionicc.h
index c5ebcd326d0..b656034dbe9 100644
--- a/src/mame/includes/bionicc.h
+++ b/src/mame/includes/bionicc.h
@@ -50,6 +50,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_bionicc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -57,4 +58,4 @@ public:
-SCREEN_UPDATE_IND16( bionicc );
+
diff --git a/src/mame/includes/bishi.h b/src/mame/includes/bishi.h
index 1b7537eba24..512e50c9a85 100644
--- a/src/mame/includes/bishi.h
+++ b/src/mame/includes/bishi.h
@@ -39,6 +39,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_bishi(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/bishi.c -----------*/
@@ -46,4 +47,4 @@ public:
extern void bishi_tile_callback(running_machine &machine, int layer, int *code, int *color, int *flags);
-SCREEN_UPDATE_RGB32(bishi);
+
diff --git a/src/mame/includes/bking.h b/src/mame/includes/bking.h
index 336f8342e19..54771e0be79 100644
--- a/src/mame/includes/bking.h
+++ b/src/mame/includes/bking.h
@@ -87,6 +87,8 @@ public:
DECLARE_MACHINE_START(bking3);
DECLARE_MACHINE_RESET(bking3);
DECLARE_MACHINE_RESET(common);
+ UINT32 screen_update_bking(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_bking(screen_device &screen, bool state);
};
@@ -96,5 +98,5 @@ public:
-SCREEN_UPDATE_IND16( bking );
-SCREEN_VBLANK( bking );
+
+
diff --git a/src/mame/includes/bladestl.h b/src/mame/includes/bladestl.h
index 36bb51d3af0..3cd90defa23 100644
--- a/src/mame/includes/bladestl.h
+++ b/src/mame/includes/bladestl.h
@@ -34,6 +34,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void palette_init();
+ UINT32 screen_update_bladestl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -42,7 +43,7 @@ public:
-SCREEN_UPDATE_IND16( bladestl );
+
void bladestl_tile_callback(running_machine &machine, int layer, int bank, int *code, int *color, int *flags);
void bladestl_sprite_callback(running_machine &machine, int *code, int *color);
diff --git a/src/mame/includes/blktiger.h b/src/mame/includes/blktiger.h
index 5e55faccdba..e88a1753f73 100644
--- a/src/mame/includes/blktiger.h
+++ b/src/mame/includes/blktiger.h
@@ -62,6 +62,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_blktiger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -70,4 +71,4 @@ public:
-SCREEN_UPDATE_IND16( blktiger );
+
diff --git a/src/mame/includes/blmbycar.h b/src/mame/includes/blmbycar.h
index 774d180f23e..9eb6aaea7c7 100644
--- a/src/mame/includes/blmbycar.h
+++ b/src/mame/includes/blmbycar.h
@@ -49,6 +49,7 @@ public:
DECLARE_MACHINE_RESET(blmbycar);
DECLARE_MACHINE_START(watrball);
DECLARE_MACHINE_RESET(watrball);
+ UINT32 screen_update_blmbycar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -57,4 +58,4 @@ public:
-SCREEN_UPDATE_IND16( blmbycar );
+
diff --git a/src/mame/includes/blockade.h b/src/mame/includes/blockade.h
index 8c3fe307c67..efc575d522c 100644
--- a/src/mame/includes/blockade.h
+++ b/src/mame/includes/blockade.h
@@ -26,6 +26,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_blockade(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -33,7 +34,7 @@ public:
-SCREEN_UPDATE_IND16( blockade );
+
/*----------- defined in audio/blockade.c -----------*/
diff --git a/src/mame/includes/blockhl.h b/src/mame/includes/blockhl.h
index 6505aacef91..3268cf412f9 100644
--- a/src/mame/includes/blockhl.h
+++ b/src/mame/includes/blockhl.h
@@ -36,6 +36,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_blockhl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/blockhl.c -----------*/
@@ -44,4 +45,4 @@ extern void blockhl_tile_callback(running_machine &machine, int layer,int bank,i
extern void blockhl_sprite_callback(running_machine &machine, int *code,int *color,int *priority,int *shadow);
-SCREEN_UPDATE_IND16( blockhl );
+
diff --git a/src/mame/includes/blockout.h b/src/mame/includes/blockout.h
index d80d3938d0e..8ff4d9671d3 100644
--- a/src/mame/includes/blockout.h
+++ b/src/mame/includes/blockout.h
@@ -34,6 +34,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_blockout(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -41,4 +42,4 @@ public:
-SCREEN_UPDATE_IND16( blockout );
+
diff --git a/src/mame/includes/bloodbro.h b/src/mame/includes/bloodbro.h
index 3eba36e490b..a00300ed02a 100644
--- a/src/mame/includes/bloodbro.h
+++ b/src/mame/includes/bloodbro.h
@@ -26,13 +26,16 @@ public:
TILE_GET_INFO_MEMBER(get_fg_tile_info);
TILE_GET_INFO_MEMBER(get_tx_tile_info);
virtual void video_start();
+ UINT32 screen_update_bloodbro(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_weststry(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_skysmash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/bloodbro.c -----------*/
-SCREEN_UPDATE_IND16( bloodbro );
-SCREEN_UPDATE_IND16( weststry );
-SCREEN_UPDATE_IND16( skysmash );
+
+
+
diff --git a/src/mame/includes/blstroid.h b/src/mame/includes/blstroid.h
index 5ce9edf5a4a..635436b1e4c 100644
--- a/src/mame/includes/blstroid.h
+++ b/src/mame/includes/blstroid.h
@@ -21,12 +21,13 @@ public:
DECLARE_MACHINE_START(blstroid);
DECLARE_MACHINE_RESET(blstroid);
DECLARE_VIDEO_START(blstroid);
+ UINT32 screen_update_blstroid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/blstroid.c -----------*/
-SCREEN_UPDATE_IND16( blstroid );
+
void blstroid_scanline_update(screen_device &screen, int scanline);
diff --git a/src/mame/includes/blueprnt.h b/src/mame/includes/blueprnt.h
index b570f2c3c0b..b48e1a3e1df 100644
--- a/src/mame/includes/blueprnt.h
+++ b/src/mame/includes/blueprnt.h
@@ -41,6 +41,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_blueprnt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -49,4 +50,4 @@ public:
-SCREEN_UPDATE_IND16( blueprnt );
+
diff --git a/src/mame/includes/bogeyman.h b/src/mame/includes/bogeyman.h
index 11a500f5a7b..509ed183a0e 100644
--- a/src/mame/includes/bogeyman.h
+++ b/src/mame/includes/bogeyman.h
@@ -45,6 +45,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_bogeyman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -53,4 +54,4 @@ public:
-SCREEN_UPDATE_IND16( bogeyman );
+
diff --git a/src/mame/includes/bombjack.h b/src/mame/includes/bombjack.h
index 23fd5609f14..102be60e7d8 100644
--- a/src/mame/includes/bombjack.h
+++ b/src/mame/includes/bombjack.h
@@ -39,6 +39,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_bombjack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -46,4 +47,4 @@ public:
-SCREEN_UPDATE_IND16( bombjack );
+
diff --git a/src/mame/includes/boogwing.h b/src/mame/includes/boogwing.h
index 808b5cc97eb..1bf7de590a9 100644
--- a/src/mame/includes/boogwing.h
+++ b/src/mame/includes/boogwing.h
@@ -47,11 +47,12 @@ public:
DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
DECLARE_DRIVER_INIT(boogwing);
virtual void video_start();
+ UINT32 screen_update_boogwing(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/boogwing.c -----------*/
-SCREEN_UPDATE_RGB32( boogwing );
+
diff --git a/src/mame/includes/bottom9.h b/src/mame/includes/bottom9.h
index a195e71c5c5..647646ea8e0 100644
--- a/src/mame/includes/bottom9.h
+++ b/src/mame/includes/bottom9.h
@@ -46,6 +46,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_bottom9(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/bottom9.c -----------*/
@@ -55,4 +56,4 @@ extern void bottom9_sprite_callback(running_machine &machine, int *code,int *col
extern void bottom9_zoom_callback(running_machine &machine, int *code,int *color,int *flags);
-SCREEN_UPDATE_IND16( bottom9 );
+
diff --git a/src/mame/includes/brkthru.h b/src/mame/includes/brkthru.h
index 78eb8da0ba8..a7a5d9ab33d 100644
--- a/src/mame/includes/brkthru.h
+++ b/src/mame/includes/brkthru.h
@@ -45,6 +45,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_brkthru(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -52,4 +53,4 @@ public:
-SCREEN_UPDATE_IND16( brkthru );
+
diff --git a/src/mame/includes/bsktball.h b/src/mame/includes/bsktball.h
index 760d0428c4b..0f8685e5d84 100644
--- a/src/mame/includes/bsktball.h
+++ b/src/mame/includes/bsktball.h
@@ -55,6 +55,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_bsktball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -75,5 +76,5 @@ DISCRETE_SOUND_EXTERN( bsktball );
/*----------- defined in video/bsktball.c -----------*/
-SCREEN_UPDATE_IND16( bsktball );
+
diff --git a/src/mame/includes/btime.h b/src/mame/includes/btime.h
index 0386803d107..006b86a605c 100644
--- a/src/mame/includes/btime.h
+++ b/src/mame/includes/btime.h
@@ -107,6 +107,13 @@ public:
DECLARE_MACHINE_START(mmonkey);
DECLARE_MACHINE_RESET(mmonkey);
DECLARE_VIDEO_START(bnj);
+ UINT32 screen_update_btime(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_cookrace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_lnc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_eggs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_bnj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_zoar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_disco(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -122,11 +129,11 @@ public:
-SCREEN_UPDATE_IND16( btime );
-SCREEN_UPDATE_IND16( cookrace );
-SCREEN_UPDATE_IND16( bnj );
-SCREEN_UPDATE_IND16( lnc );
-SCREEN_UPDATE_IND16( zoar );
-SCREEN_UPDATE_IND16( disco );
-SCREEN_UPDATE_IND16( eggs );
+
+
+
+
+
+
+
diff --git a/src/mame/includes/bublbobl.h b/src/mame/includes/bublbobl.h
index e208458e9b9..03f080f48bf 100644
--- a/src/mame/includes/bublbobl.h
+++ b/src/mame/includes/bublbobl.h
@@ -108,6 +108,7 @@ public:
DECLARE_MACHINE_RESET(bub68705);
DECLARE_MACHINE_START(common);
DECLARE_MACHINE_RESET(common);
+ UINT32 screen_update_bublbobl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -122,4 +123,4 @@ INTERRUPT_GEN( bublbobl_m68705_interrupt );
/*----------- defined in video/bublbobl.c -----------*/
-SCREEN_UPDATE_IND16( bublbobl );
+
diff --git a/src/mame/includes/buggychl.h b/src/mame/includes/buggychl.h
index be90dc901ea..8c04799a797 100644
--- a/src/mame/includes/buggychl.h
+++ b/src/mame/includes/buggychl.h
@@ -55,6 +55,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_buggychl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -63,4 +64,4 @@ public:
-SCREEN_UPDATE_IND16( buggychl );
+
diff --git a/src/mame/includes/bwing.h b/src/mame/includes/bwing.h
index 97c0f797d67..05025b69d3e 100644
--- a/src/mame/includes/bwing.h
+++ b/src/mame/includes/bwing.h
@@ -74,6 +74,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_bwing(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -83,4 +84,4 @@ extern const gfx_layout bwing_tilelayout;
-SCREEN_UPDATE_IND16( bwing );
+
diff --git a/src/mame/includes/cabal.h b/src/mame/includes/cabal.h
index f3ca802b640..273167e9c50 100644
--- a/src/mame/includes/cabal.h
+++ b/src/mame/includes/cabal.h
@@ -34,6 +34,7 @@ public:
TILE_GET_INFO_MEMBER(get_text_tile_info);
virtual void video_start();
DECLARE_MACHINE_RESET(cabalbl);
+ UINT32 screen_update_cabal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/includes/calomega.h b/src/mame/includes/calomega.h
index be0f556aebd..992fbae16e9 100644
--- a/src/mame/includes/calomega.h
+++ b/src/mame/includes/calomega.h
@@ -43,6 +43,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_calomega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -50,4 +51,4 @@ public:
-SCREEN_UPDATE_IND16( calomega );
+
diff --git a/src/mame/includes/canyon.h b/src/mame/includes/canyon.h
index 11621d98b45..3fc3cde855a 100644
--- a/src/mame/includes/canyon.h
+++ b/src/mame/includes/canyon.h
@@ -36,6 +36,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_canyon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -52,5 +53,5 @@ DISCRETE_SOUND_EXTERN( canyon );
/*----------- defined in video/canyon.c -----------*/
-SCREEN_UPDATE_IND16( canyon );
+
diff --git a/src/mame/includes/capbowl.h b/src/mame/includes/capbowl.h
index ab1620364b7..2934598a7d0 100644
--- a/src/mame/includes/capbowl.h
+++ b/src/mame/includes/capbowl.h
@@ -40,11 +40,12 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_capbowl(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/capbowl.c -----------*/
-SCREEN_UPDATE_RGB32( capbowl );
+
diff --git a/src/mame/includes/carjmbre.h b/src/mame/includes/carjmbre.h
index 4b621fc49ff..75c586ec732 100644
--- a/src/mame/includes/carjmbre.h
+++ b/src/mame/includes/carjmbre.h
@@ -31,6 +31,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_carjmbre(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -40,6 +41,6 @@ public:
-SCREEN_UPDATE_IND16( carjmbre );
+
diff --git a/src/mame/includes/carpolo.h b/src/mame/includes/carpolo.h
index 1d928bca4f1..8080bbd2268 100644
--- a/src/mame/includes/carpolo.h
+++ b/src/mame/includes/carpolo.h
@@ -66,6 +66,8 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_carpolo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_carpolo(screen_device &screen, bool state);
};
@@ -100,5 +102,5 @@ void carpolo_generate_car_border_interrupt(running_machine &machine, int car, in
-SCREEN_UPDATE_IND16( carpolo );
-SCREEN_VBLANK( carpolo );
+
+
diff --git a/src/mame/includes/cave.h b/src/mame/includes/cave.h
index 902aa8613d7..4a3a7344c34 100644
--- a/src/mame/includes/cave.h
+++ b/src/mame/includes/cave.h
@@ -200,6 +200,7 @@ public:
DECLARE_PALETTE_INIT(pwrinst2);
DECLARE_VIDEO_START(sailormn_3_layers);
DECLARE_PALETTE_INIT(sailormn);
+ UINT32 screen_update_cave(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/cave.c -----------*/
@@ -221,7 +222,7 @@ public:
-SCREEN_UPDATE_IND16( cave );
+
void cave_get_sprite_info(running_machine &machine);
void sailormn_tilebank_w(running_machine &machine, int bank);
diff --git a/src/mame/includes/cbasebal.h b/src/mame/includes/cbasebal.h
index 2a18d197cd7..a0e15f2a000 100644
--- a/src/mame/includes/cbasebal.h
+++ b/src/mame/includes/cbasebal.h
@@ -48,10 +48,11 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_cbasebal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/cbasebal.c -----------*/
-SCREEN_UPDATE_IND16( cbasebal );
+
diff --git a/src/mame/includes/cbuster.h b/src/mame/includes/cbuster.h
index ee839201453..649f2720bc1 100644
--- a/src/mame/includes/cbuster.h
+++ b/src/mame/includes/cbuster.h
@@ -42,6 +42,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_twocrude(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -50,4 +51,4 @@ public:
-SCREEN_UPDATE_RGB32( twocrude );
+
diff --git a/src/mame/includes/ccastles.h b/src/mame/includes/ccastles.h
index 1f36204c9ca..326ff689cf6 100644
--- a/src/mame/includes/ccastles.h
+++ b/src/mame/includes/ccastles.h
@@ -67,6 +67,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_ccastles(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -74,7 +75,7 @@ public:
-SCREEN_UPDATE_IND16( ccastles );
+
diff --git a/src/mame/includes/cclimber.h b/src/mame/includes/cclimber.h
index 8c5bd208b0e..b6d9e2487c7 100644
--- a/src/mame/includes/cclimber.h
+++ b/src/mame/includes/cclimber.h
@@ -66,6 +66,10 @@ public:
DECLARE_PALETTE_INIT(yamato);
DECLARE_VIDEO_START(toprollr);
DECLARE_PALETTE_INIT(toprollr);
+ UINT32 screen_update_cclimber(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_swimmer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_yamato(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_toprollr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -77,15 +81,15 @@ public:
-SCREEN_UPDATE_IND16( cclimber );
-SCREEN_UPDATE_IND16( swimmer );
-SCREEN_UPDATE_IND16( yamato );
-SCREEN_UPDATE_IND16( toprollr );
+
+
+
+
diff --git a/src/mame/includes/cdi.h b/src/mame/includes/cdi.h
index a1541ee692d..56a221287c8 100644
--- a/src/mame/includes/cdi.h
+++ b/src/mame/includes/cdi.h
@@ -45,6 +45,8 @@ public:
DECLARE_MACHINE_RESET(quizrr40);
DECLARE_MACHINE_RESET(quizrr41);
DECLARE_MACHINE_RESET(quizrr42);
+ UINT32 screen_update_cdimono1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_cdimono1_lcd(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
/*----------- debug defines -----------*/
diff --git a/src/mame/includes/centiped.h b/src/mame/includes/centiped.h
index 6847e228805..ddc0a00591a 100644
--- a/src/mame/includes/centiped.h
+++ b/src/mame/includes/centiped.h
@@ -75,6 +75,10 @@ public:
DECLARE_VIDEO_START(milliped);
DECLARE_VIDEO_START(warlords);
DECLARE_PALETTE_INIT(warlords);
+ UINT32 screen_update_centiped(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_bullsdrt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_milliped(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_warlords(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -87,8 +91,8 @@ public:
-SCREEN_UPDATE_IND16( centiped );
-SCREEN_UPDATE_IND16( milliped );
-SCREEN_UPDATE_IND16( warlords );
-SCREEN_UPDATE_IND16( bullsdrt );
+
+
+
+
diff --git a/src/mame/includes/chaknpop.h b/src/mame/includes/chaknpop.h
index e518a772969..26f71d676bb 100644
--- a/src/mame/includes/chaknpop.h
+++ b/src/mame/includes/chaknpop.h
@@ -52,6 +52,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_chaknpop(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -64,5 +65,5 @@ public:
-SCREEN_UPDATE_IND16( chaknpop );
+
diff --git a/src/mame/includes/champbas.h b/src/mame/includes/champbas.h
index cac5bdf9bd8..1e99e617526 100644
--- a/src/mame/includes/champbas.h
+++ b/src/mame/includes/champbas.h
@@ -60,6 +60,9 @@ public:
DECLARE_MACHINE_START(exctsccr);
DECLARE_VIDEO_START(exctsccr);
DECLARE_PALETTE_INIT(exctsccr);
+ UINT32 screen_update_champbas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_exctsccr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_champbas(screen_device &screen, bool state);
};
@@ -70,7 +73,7 @@ public:
-SCREEN_UPDATE_IND16( champbas );
-SCREEN_UPDATE_IND16( exctsccr );
+
+
diff --git a/src/mame/includes/changela.h b/src/mame/includes/changela.h
index d336e1ed15c..27df6594ee0 100644
--- a/src/mame/includes/changela.h
+++ b/src/mame/includes/changela.h
@@ -88,10 +88,11 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_changela(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/changela.c -----------*/
-SCREEN_UPDATE_IND16( changela );
+
diff --git a/src/mame/includes/cheekyms.h b/src/mame/includes/cheekyms.h
index fbc74469be5..2edc9b827ea 100644
--- a/src/mame/includes/cheekyms.h
+++ b/src/mame/includes/cheekyms.h
@@ -35,6 +35,7 @@ public:
virtual void machine_start();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_cheekyms(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -42,4 +43,4 @@ public:
-SCREEN_UPDATE_IND16( cheekyms );
+
diff --git a/src/mame/includes/chqflag.h b/src/mame/includes/chqflag.h
index 834a432b303..38bc301b00b 100644
--- a/src/mame/includes/chqflag.h
+++ b/src/mame/includes/chqflag.h
@@ -43,6 +43,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_chqflag(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/chqflag.c -----------*/
@@ -52,4 +53,4 @@ extern void chqflag_zoom_callback_0(running_machine &machine, int *code,int *col
extern void chqflag_zoom_callback_1(running_machine &machine, int *code,int *color,int *flags);
-SCREEN_UPDATE_IND16( chqflag );
+
diff --git a/src/mame/includes/cinemat.h b/src/mame/includes/cinemat.h
index 81cbbbbd4da..5c9940d5e51 100644
--- a/src/mame/includes/cinemat.h
+++ b/src/mame/includes/cinemat.h
@@ -64,6 +64,8 @@ public:
DECLARE_VIDEO_START(cinemat_64level);
DECLARE_VIDEO_START(cinemat_color);
DECLARE_VIDEO_START(cinemat_qb3color);
+ UINT32 screen_update_cinemat(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_spacewar(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -97,6 +99,6 @@ void cinemat_vector_callback(device_t *device, INT16 sx, INT16 sy, INT16 ex, INT
-SCREEN_UPDATE_RGB32( cinemat );
-SCREEN_UPDATE_RGB32( spacewar );
+
+
diff --git a/src/mame/includes/circus.h b/src/mame/includes/circus.h
index d6a337c2996..381c3221361 100644
--- a/src/mame/includes/circus.h
+++ b/src/mame/includes/circus.h
@@ -36,6 +36,10 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_circus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_robotbwl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_crash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_ripcord(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/includes/circusc.h b/src/mame/includes/circusc.h
index 5dfc0c7d9df..8c6dd6e53b2 100644
--- a/src/mame/includes/circusc.h
+++ b/src/mame/includes/circusc.h
@@ -57,6 +57,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_circusc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -65,4 +66,4 @@ public:
-SCREEN_UPDATE_IND16( circusc );
+
diff --git a/src/mame/includes/cischeat.h b/src/mame/includes/cischeat.h
index 8a7234c8b87..274eaed050c 100644
--- a/src/mame/includes/cischeat.h
+++ b/src/mame/includes/cischeat.h
@@ -80,6 +80,10 @@ public:
DECLARE_VIDEO_START(bigrun);
DECLARE_VIDEO_START(f1gpstar);
DECLARE_VIDEO_START(cischeat);
+ UINT32 screen_update_bigrun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_scudhamm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_cischeat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_f1gpstar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -92,7 +96,7 @@ public:
-SCREEN_UPDATE_IND16( bigrun );
-SCREEN_UPDATE_IND16( cischeat );
-SCREEN_UPDATE_IND16( f1gpstar );
-SCREEN_UPDATE_IND16( scudhamm );
+
+
+
+
diff --git a/src/mame/includes/citycon.h b/src/mame/includes/citycon.h
index eee487c1d13..46f376669dc 100644
--- a/src/mame/includes/citycon.h
+++ b/src/mame/includes/citycon.h
@@ -40,11 +40,12 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_citycon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/citycon.c -----------*/
-SCREEN_UPDATE_IND16( citycon );
+
diff --git a/src/mame/includes/cloak.h b/src/mame/includes/cloak.h
index 0dce9078f26..e75599092a2 100644
--- a/src/mame/includes/cloak.h
+++ b/src/mame/includes/cloak.h
@@ -40,6 +40,7 @@ public:
void adjust_xy(int offset);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
+ UINT32 screen_update_cloak(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -48,4 +49,4 @@ public:
-SCREEN_UPDATE_IND16( cloak );
+
diff --git a/src/mame/includes/cloud9.h b/src/mame/includes/cloud9.h
index 5ffc8ab3d6d..002001f7e98 100644
--- a/src/mame/includes/cloud9.h
+++ b/src/mame/includes/cloud9.h
@@ -58,13 +58,14 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_cloud9(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/cloud9.c -----------*/
-SCREEN_UPDATE_IND16( cloud9 );
+
diff --git a/src/mame/includes/clshroad.h b/src/mame/includes/clshroad.h
index 7f56d5fbaeb..fcfd61197bd 100644
--- a/src/mame/includes/clshroad.h
+++ b/src/mame/includes/clshroad.h
@@ -30,6 +30,7 @@ public:
DECLARE_PALETTE_INIT(firebatl);
DECLARE_VIDEO_START(clshroad);
DECLARE_PALETTE_INIT(clshroad);
+ UINT32 screen_update_clshroad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -40,4 +41,4 @@ public:
-SCREEN_UPDATE_IND16( clshroad );
+
diff --git a/src/mame/includes/cninja.h b/src/mame/includes/cninja.h
index f1eb3e28bb3..b427480cdc9 100644
--- a/src/mame/includes/cninja.h
+++ b/src/mame/includes/cninja.h
@@ -65,6 +65,11 @@ public:
virtual void machine_reset();
DECLARE_VIDEO_START(stoneage);
DECLARE_VIDEO_START(mutantf);
+ UINT32 screen_update_cninja(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_cninjabl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_edrandy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_robocop2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_mutantf(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/cninja.c -----------*/
@@ -72,8 +77,8 @@ public:
-SCREEN_UPDATE_IND16( cninja );
-SCREEN_UPDATE_IND16( cninjabl );
-SCREEN_UPDATE_IND16( edrandy );
-SCREEN_UPDATE_IND16( robocop2 );
-SCREEN_UPDATE_RGB32( mutantf );
+
+
+
+
+
diff --git a/src/mame/includes/combatsc.h b/src/mame/includes/combatsc.h
index 37827657264..9f2688aa730 100644
--- a/src/mame/includes/combatsc.h
+++ b/src/mame/includes/combatsc.h
@@ -79,6 +79,8 @@ public:
DECLARE_MACHINE_START(combatscb);
DECLARE_VIDEO_START(combatscb);
DECLARE_PALETTE_INIT(combatscb);
+ UINT32 screen_update_combatsc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_combatscb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -90,5 +92,5 @@ public:
-SCREEN_UPDATE_IND16( combatscb );
-SCREEN_UPDATE_IND16( combatsc );
+
+
diff --git a/src/mame/includes/commando.h b/src/mame/includes/commando.h
index 95c1e13707c..daa9a757fc9 100644
--- a/src/mame/includes/commando.h
+++ b/src/mame/includes/commando.h
@@ -46,6 +46,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_commando(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -54,4 +55,4 @@ public:
-SCREEN_UPDATE_IND16( commando );
+
diff --git a/src/mame/includes/compgolf.h b/src/mame/includes/compgolf.h
index 3a6dc92a16d..aa8d96f9ce3 100644
--- a/src/mame/includes/compgolf.h
+++ b/src/mame/includes/compgolf.h
@@ -41,6 +41,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_compgolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -48,4 +49,4 @@ public:
-SCREEN_UPDATE_IND16( compgolf );
+
diff --git a/src/mame/includes/contra.h b/src/mame/includes/contra.h
index 5aa20715699..6bec2dae25e 100644
--- a/src/mame/includes/contra.h
+++ b/src/mame/includes/contra.h
@@ -60,6 +60,7 @@ public:
virtual void machine_start();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_contra(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -69,5 +70,5 @@ public:
-SCREEN_UPDATE_IND16( contra );
+
diff --git a/src/mame/includes/cop01.h b/src/mame/includes/cop01.h
index d2e499cf974..603bc6a2364 100644
--- a/src/mame/includes/cop01.h
+++ b/src/mame/includes/cop01.h
@@ -46,6 +46,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_cop01(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -55,5 +56,5 @@ public:
-SCREEN_UPDATE_IND16( cop01 );
+
diff --git a/src/mame/includes/copsnrob.h b/src/mame/includes/copsnrob.h
index 69b4d526d50..1e549f2d713 100644
--- a/src/mame/includes/copsnrob.h
+++ b/src/mame/includes/copsnrob.h
@@ -36,6 +36,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void palette_init();
+ UINT32 screen_update_copsnrob(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -46,7 +47,7 @@ DECLARE_READ8_HANDLER( copsnrob_gun_position_r );
/*----------- defined in video/copsnrob.c -----------*/
-SCREEN_UPDATE_IND16( copsnrob );
+
/*----------- defined in audio/copsnrob.c -----------*/
diff --git a/src/mame/includes/cosmic.h b/src/mame/includes/cosmic.h
index e35cf989230..51bb0c0941d 100644
--- a/src/mame/includes/cosmic.h
+++ b/src/mame/includes/cosmic.h
@@ -69,6 +69,12 @@ public:
DECLARE_PALETTE_INIT(cosmica);
DECLARE_PALETTE_INIT(magspot);
DECLARE_PALETTE_INIT(nomnlnd);
+ UINT32 screen_update_cosmicg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_panic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_cosmica(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_magspot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_devzone(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_nomnlnd(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -81,9 +87,9 @@ public:
-SCREEN_UPDATE_IND16( panic );
-SCREEN_UPDATE_IND16( magspot );
-SCREEN_UPDATE_IND16( devzone );
-SCREEN_UPDATE_IND16( cosmica );
-SCREEN_UPDATE_IND16( cosmicg );
-SCREEN_UPDATE_IND16( nomnlnd );
+
+
+
+
+
+
diff --git a/src/mame/includes/cps1.h b/src/mame/includes/cps1.h
index 83b48d84ac0..0c2af5d3c59 100644
--- a/src/mame/includes/cps1.h
+++ b/src/mame/includes/cps1.h
@@ -209,6 +209,10 @@ public:
DECLARE_MACHINE_START(qsound);
DECLARE_MACHINE_RESET(cps);
DECLARE_VIDEO_START(cps);
+ UINT32 screen_update_cps1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_fcrash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_kodb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_cps1(screen_device &screen, bool state);
};
/*----------- defined in drivers/cps1.c -----------*/
@@ -227,8 +231,8 @@ GFXDECODE_EXTERN( cps1 );
-SCREEN_UPDATE_IND16( cps1 );
-SCREEN_VBLANK( cps1 );
+
+
void cps1_get_video_base(running_machine &machine);
void cps2_set_sprite_priorities(running_machine &machine);
diff --git a/src/mame/includes/cps3.h b/src/mame/includes/cps3.h
index bf5baaa559a..0b2e529daf7 100644
--- a/src/mame/includes/cps3.h
+++ b/src/mame/includes/cps3.h
@@ -105,6 +105,7 @@ public:
DECLARE_DRIVER_INIT(sfiii2);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_cps3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/includes/crbaloon.h b/src/mame/includes/crbaloon.h
index 7ce16da31cb..e1f658fb704 100644
--- a/src/mame/includes/crbaloon.h
+++ b/src/mame/includes/crbaloon.h
@@ -36,6 +36,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_crbaloon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -55,7 +56,7 @@ MACHINE_CONFIG_EXTERN( crbaloon_audio );
-SCREEN_UPDATE_IND16( crbaloon );
+
UINT16 crbaloon_get_collision_address(running_machine &machine);
diff --git a/src/mame/includes/crgolf.h b/src/mame/includes/crgolf.h
index 1c1252d04f6..8faa5f19971 100644
--- a/src/mame/includes/crgolf.h
+++ b/src/mame/includes/crgolf.h
@@ -53,6 +53,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
DECLARE_VIDEO_START(crgolf);
+ UINT32 screen_update_crgolf(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/crgolf.c -----------*/
diff --git a/src/mame/includes/crimfght.h b/src/mame/includes/crimfght.h
index b4a3f722c3f..6a14b7ab369 100644
--- a/src/mame/includes/crimfght.h
+++ b/src/mame/includes/crimfght.h
@@ -31,6 +31,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_crimfght(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/crimfght.c -----------*/
@@ -39,4 +40,4 @@ extern void crimfght_tile_callback(running_machine &machine, int layer,int bank,
extern void crimfght_sprite_callback(running_machine &machine, int *code,int *color,int *priority,int *shadow);
-SCREEN_UPDATE_IND16( crimfght );
+
diff --git a/src/mame/includes/crospang.h b/src/mame/includes/crospang.h
index c882f581dd9..30301674c7c 100644
--- a/src/mame/includes/crospang.h
+++ b/src/mame/includes/crospang.h
@@ -44,13 +44,14 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_crospang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/crospang.c -----------*/
-SCREEN_UPDATE_IND16( crospang );
+
diff --git a/src/mame/includes/crshrace.h b/src/mame/includes/crshrace.h
index 4cb86af129e..c9d652d7afb 100644
--- a/src/mame/includes/crshrace.h
+++ b/src/mame/includes/crshrace.h
@@ -50,11 +50,13 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_crshrace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_crshrace(screen_device &screen, bool state);
};
/*----------- defined in video/crshrace.c -----------*/
-SCREEN_VBLANK( crshrace );
-SCREEN_UPDATE_IND16( crshrace );
+
+
diff --git a/src/mame/includes/cvs.h b/src/mame/includes/cvs.h
index 6872a3e5fc4..c674db27347 100644
--- a/src/mame/includes/cvs.h
+++ b/src/mame/includes/cvs.h
@@ -104,6 +104,7 @@ public:
DECLARE_MACHINE_RESET(cvs);
DECLARE_VIDEO_START(cvs);
DECLARE_PALETTE_INIT(cvs);
+ UINT32 screen_update_cvs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -121,5 +122,5 @@ void cvs_scroll_stars( running_machine &machine );
void cvs_update_stars(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect, const pen_t star_pen, bool update_always);
-SCREEN_UPDATE_IND16( cvs );
+
diff --git a/src/mame/includes/cyberbal.h b/src/mame/includes/cyberbal.h
index ec453b16029..7a07fad95b2 100644
--- a/src/mame/includes/cyberbal.h
+++ b/src/mame/includes/cyberbal.h
@@ -53,6 +53,9 @@ public:
DECLARE_VIDEO_START(cyberbal);
DECLARE_MACHINE_RESET(cyberbal2p);
DECLARE_VIDEO_START(cyberbal2p);
+ UINT32 screen_update_cyberbal_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_cyberbal_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_cyberbal2p(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -75,8 +78,8 @@ DECLARE_WRITE16_HANDLER( cyberbal_paletteram_1_w );
-SCREEN_UPDATE_IND16( cyberbal_left );
-SCREEN_UPDATE_IND16( cyberbal_right );
-SCREEN_UPDATE_IND16( cyberbal2p );
+
+
+
void cyberbal_scanline_update(screen_device &screen, int scanline);
diff --git a/src/mame/includes/darius.h b/src/mame/includes/darius.h
index 8d2e99d0355..e83663ec888 100644
--- a/src/mame/includes/darius.h
+++ b/src/mame/includes/darius.h
@@ -90,6 +90,9 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_darius_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_darius_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_darius_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -97,6 +100,6 @@ public:
-SCREEN_UPDATE_IND16( darius_left );
-SCREEN_UPDATE_IND16( darius_middle );
-SCREEN_UPDATE_IND16( darius_right );
+
+
+
diff --git a/src/mame/includes/darkmist.h b/src/mame/includes/darkmist.h
index 72451679dd0..4fe6841e92a 100644
--- a/src/mame/includes/darkmist.h
+++ b/src/mame/includes/darkmist.h
@@ -27,12 +27,13 @@ public:
TILE_GET_INFO_MEMBER(get_txttile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_darkmist(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/darkmist.c -----------*/
-SCREEN_UPDATE_IND16( darkmist );
+
diff --git a/src/mame/includes/darkseal.h b/src/mame/includes/darkseal.h
index 4ab5ae04a89..04eb03ef824 100644
--- a/src/mame/includes/darkseal.h
+++ b/src/mame/includes/darkseal.h
@@ -30,11 +30,12 @@ public:
DECLARE_WRITE16_MEMBER(darkseal_palette_24bit_b_w);
DECLARE_DRIVER_INIT(darkseal);
virtual void video_start();
+ UINT32 screen_update_darkseal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/darkseal.c -----------*/
-SCREEN_UPDATE_IND16( darkseal );
+
diff --git a/src/mame/includes/dassault.h b/src/mame/includes/dassault.h
index 3e452903a11..1d9cd7f1fc3 100644
--- a/src/mame/includes/dassault.h
+++ b/src/mame/includes/dassault.h
@@ -59,6 +59,7 @@ public:
DECLARE_DRIVER_INIT(thndzone);
DECLARE_DRIVER_INIT(dassault);
virtual void video_start();
+ UINT32 screen_update_dassault(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -66,4 +67,4 @@ public:
/*----------- defined in video/dassault.c -----------*/
-SCREEN_UPDATE_RGB32( dassault );
+
diff --git a/src/mame/includes/dbz.h b/src/mame/includes/dbz.h
index 3c413499fe7..0291fff5ee7 100644
--- a/src/mame/includes/dbz.h
+++ b/src/mame/includes/dbz.h
@@ -50,6 +50,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_dbz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -60,4 +61,4 @@ extern void dbz_tile_callback(running_machine &machine, int layer, int *code, in
-SCREEN_UPDATE_IND16(dbz);
+
diff --git a/src/mame/includes/dc.h b/src/mame/includes/dc.h
index 52a5f3b633c..a8cec47c057 100644
--- a/src/mame/includes/dc.h
+++ b/src/mame/includes/dc.h
@@ -96,6 +96,7 @@ class dc_state : public driver_device
virtual void machine_reset();
virtual void video_start();
DECLARE_MACHINE_RESET(naomi);
+ UINT32 screen_update_dc(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
/*----------- defined in machine/dc.c -----------*/
@@ -307,7 +308,7 @@ DECLARE_WRITE32_HANDLER( elan_regs_w );
DECLARE_WRITE64_HANDLER( ta_fifo_poly_w );
DECLARE_WRITE64_HANDLER( ta_fifo_yuv_w );
-SCREEN_UPDATE_RGB32(dc);
+
/*--------------- CORE registers --------------*/
#define PVRID ((0x005f8000-0x005f8000)/4)
diff --git a/src/mame/includes/dcheese.h b/src/mame/includes/dcheese.h
index 19cc406fce5..ade008f2aef 100644
--- a/src/mame/includes/dcheese.h
+++ b/src/mame/includes/dcheese.h
@@ -46,6 +46,7 @@ public:
virtual void machine_start();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_dcheese(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -58,6 +59,6 @@ void dcheese_signal_irq(running_machine &machine, int which);
-SCREEN_UPDATE_IND16( dcheese );
+
diff --git a/src/mame/includes/dcon.h b/src/mame/includes/dcon.h
index 9a603ced17b..063f749d5a7 100644
--- a/src/mame/includes/dcon.h
+++ b/src/mame/includes/dcon.h
@@ -37,6 +37,8 @@ public:
TILE_GET_INFO_MEMBER(get_mid_tile_info);
TILE_GET_INFO_MEMBER(get_text_tile_info);
virtual void video_start();
+ UINT32 screen_update_dcon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_sdgndmps(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -44,5 +46,5 @@ public:
-SCREEN_UPDATE_IND16( dcon );
-SCREEN_UPDATE_IND16( sdgndmps );
+
+
diff --git a/src/mame/includes/dday.h b/src/mame/includes/dday.h
index 02e4c3ffc04..036ed9dee21 100644
--- a/src/mame/includes/dday.h
+++ b/src/mame/includes/dday.h
@@ -50,6 +50,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_dday(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -57,5 +58,5 @@ public:
-SCREEN_UPDATE_IND16( dday );
+
diff --git a/src/mame/includes/ddragon.h b/src/mame/includes/ddragon.h
index 06ea3f2146d..6d95148ae11 100644
--- a/src/mame/includes/ddragon.h
+++ b/src/mame/includes/ddragon.h
@@ -99,6 +99,7 @@ public:
DECLARE_MACHINE_START(ddragon);
DECLARE_MACHINE_RESET(ddragon);
DECLARE_VIDEO_START(ddragon);
+ UINT32 screen_update_ddragon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -107,5 +108,5 @@ public:
-SCREEN_UPDATE_IND16( ddragon );
+
diff --git a/src/mame/includes/ddragon3.h b/src/mame/includes/ddragon3.h
index 77a34430107..f77c075a7ac 100644
--- a/src/mame/includes/ddragon3.h
+++ b/src/mame/includes/ddragon3.h
@@ -47,6 +47,8 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_ddragon3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_ctribe(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/includes/ddribble.h b/src/mame/includes/ddribble.h
index e67be5d2e32..5e2ae40c157 100644
--- a/src/mame/includes/ddribble.h
+++ b/src/mame/includes/ddribble.h
@@ -59,6 +59,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_ddribble(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/ddribble.c -----------*/
@@ -66,4 +67,4 @@ public:
-SCREEN_UPDATE_IND16( ddribble );
+
diff --git a/src/mame/includes/deadang.h b/src/mame/includes/deadang.h
index 4f905012aad..59843cc7c4a 100644
--- a/src/mame/includes/deadang.h
+++ b/src/mame/includes/deadang.h
@@ -32,6 +32,7 @@ public:
TILE_GET_INFO_MEMBER(get_pf1_tile_info);
TILE_GET_INFO_MEMBER(get_text_tile_info);
virtual void video_start();
+ UINT32 screen_update_deadang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -39,4 +40,4 @@ public:
-SCREEN_UPDATE_IND16( deadang );
+
diff --git a/src/mame/includes/dec0.h b/src/mame/includes/dec0.h
index ec3c2b9d58d..f3bd0e3b164 100644
--- a/src/mame/includes/dec0.h
+++ b/src/mame/includes/dec0.h
@@ -72,6 +72,13 @@ public:
DECLARE_VIDEO_START(dec0);
DECLARE_MACHINE_RESET(slyspy);
DECLARE_VIDEO_START(dec0_nodma);
+ UINT32 screen_update_hbarrel(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_baddudes(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_birdtry(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_robocop(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_hippodrm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_slyspy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_midres(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -96,6 +103,8 @@ public:
UINT16 m_automat_scroll_regs[4];
DECLARE_VIDEO_START(automat);
+ UINT32 screen_update_automat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_secretab(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -105,17 +114,17 @@ public:
-SCREEN_UPDATE_IND16( hbarrel );
-SCREEN_UPDATE_IND16( baddudes );
-SCREEN_UPDATE_IND16( birdtry );
-SCREEN_UPDATE_IND16( robocop );
-SCREEN_UPDATE_IND16( hippodrm );
-SCREEN_UPDATE_IND16( slyspy );
-SCREEN_UPDATE_IND16( midres );
+
+
+
+
+
+
+
// bootlegs
-SCREEN_UPDATE_IND16( automat );
-SCREEN_UPDATE_IND16( secretab );
+
+
/*----------- defined in machine/dec0.c -----------*/
diff --git a/src/mame/includes/dec8.h b/src/mame/includes/dec8.h
index 1dd5a475b87..8a0bce70538 100644
--- a/src/mame/includes/dec8.h
+++ b/src/mame/includes/dec8.h
@@ -121,20 +121,29 @@ public:
DECLARE_VIDEO_START(oscar);
DECLARE_VIDEO_START(srdarwin);
DECLARE_VIDEO_START(cobracom);
+ UINT32 screen_update_lastmisn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_shackled(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_gondo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_garyoret(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_ghostb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_oscar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_srdarwin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_cobracom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_dec8(screen_device &screen, bool state);
};
/*----------- defined in video/dec8.c -----------*/
-SCREEN_UPDATE_IND16( cobracom );
-SCREEN_UPDATE_IND16( ghostb );
-SCREEN_UPDATE_IND16( srdarwin );
-SCREEN_UPDATE_IND16( gondo );
-SCREEN_UPDATE_IND16( garyoret );
-SCREEN_UPDATE_IND16( lastmisn );
-SCREEN_UPDATE_IND16( shackled );
-SCREEN_UPDATE_IND16( oscar );
+
+
+
+
+
+
+
+
diff --git a/src/mame/includes/deco32.h b/src/mame/includes/deco32.h
index 230a4f1a3c7..17965eefcfb 100644
--- a/src/mame/includes/deco32.h
+++ b/src/mame/includes/deco32.h
@@ -105,6 +105,10 @@ public:
DECLARE_VIDEO_START(captaven);
DECLARE_VIDEO_START(fghthist);
DECLARE_VIDEO_START(nslasher);
+ UINT32 screen_update_captaven(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_fghthist(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_nslasher(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void screen_eof_captaven(screen_device &screen, bool state);
};
class dragngun_state : public deco32_state
@@ -131,6 +135,8 @@ public:
DECLARE_DRIVER_INIT(lockload);
DECLARE_VIDEO_START(dragngun);
DECLARE_VIDEO_START(lockload);
+ UINT32 screen_update_dragngun(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void screen_eof_dragngun(screen_device &screen, bool state);
};
@@ -143,13 +149,13 @@ public:
-SCREEN_VBLANK( captaven );
-SCREEN_VBLANK( dragngun );
-SCREEN_UPDATE_IND16( captaven );
-SCREEN_UPDATE_RGB32( fghthist );
-SCREEN_UPDATE_RGB32( dragngun );
-SCREEN_UPDATE_RGB32( nslasher );
+
+
+
+
+
+
DECLARE_WRITE32_HANDLER( deco32_pf1_data_w );
diff --git a/src/mame/includes/deco_mlc.h b/src/mame/includes/deco_mlc.h
index a924bd0dc9a..79a036d6233 100644
--- a/src/mame/includes/deco_mlc.h
+++ b/src/mame/includes/deco_mlc.h
@@ -36,11 +36,13 @@ public:
DECLARE_DRIVER_INIT(avengrgs);
DECLARE_MACHINE_RESET(mlc);
DECLARE_VIDEO_START(mlc);
+ UINT32 screen_update_mlc(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void screen_eof_mlc(screen_device &screen, bool state);
};
/*----------- defined in video/deco_mlc.c -----------*/
-SCREEN_UPDATE_RGB32( mlc );
-SCREEN_VBLANK( mlc );
+
+
diff --git a/src/mame/includes/deniam.h b/src/mame/includes/deniam.h
index 6d99fc156d7..ae8d618a674 100644
--- a/src/mame/includes/deniam.h
+++ b/src/mame/includes/deniam.h
@@ -60,6 +60,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_deniam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -67,5 +68,5 @@ public:
-SCREEN_UPDATE_IND16( deniam );
+
diff --git a/src/mame/includes/dietgo.h b/src/mame/includes/dietgo.h
index 3af8bc7ec6c..1b0e80db9a5 100644
--- a/src/mame/includes/dietgo.h
+++ b/src/mame/includes/dietgo.h
@@ -25,10 +25,11 @@ public:
device_t *m_deco_tilegen1;
DECLARE_DRIVER_INIT(dietgo);
virtual void machine_start();
+ UINT32 screen_update_dietgo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/dietgo.c -----------*/
-SCREEN_UPDATE_IND16( dietgo );
+
diff --git a/src/mame/includes/djboy.h b/src/mame/includes/djboy.h
index 34dd56a410b..e85c49ad26c 100644
--- a/src/mame/includes/djboy.h
+++ b/src/mame/includes/djboy.h
@@ -71,6 +71,8 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_djboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_djboy(screen_device &screen, bool state);
};
@@ -78,5 +80,5 @@ public:
-SCREEN_UPDATE_IND16( djboy );
-SCREEN_VBLANK( djboy );
+
+
diff --git a/src/mame/includes/djmain.h b/src/mame/includes/djmain.h
index 7c54b1e42b7..686165a065d 100644
--- a/src/mame/includes/djmain.h
+++ b/src/mame/includes/djmain.h
@@ -53,12 +53,13 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_djmain(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/djmain.c -----------*/
-SCREEN_UPDATE_RGB32( djmain );
+
void djmain_tile_callback(running_machine& machine, int layer, int *code, int *color, int *flags);
diff --git a/src/mame/includes/dkong.h b/src/mame/includes/dkong.h
index 6f583e79cb0..70836e2be68 100644
--- a/src/mame/includes/dkong.h
+++ b/src/mame/includes/dkong.h
@@ -253,6 +253,9 @@ public:
DECLARE_MACHINE_START(s2650);
DECLARE_MACHINE_RESET(strtheat);
DECLARE_MACHINE_RESET(drakton);
+ UINT32 screen_update_dkong(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_pestplce(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_spclforc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/dkong.c -----------*/
@@ -265,9 +268,9 @@ public:
-SCREEN_UPDATE_IND16( dkong );
-SCREEN_UPDATE_IND16( pestplce );
-SCREEN_UPDATE_IND16( spclforc );
+
+
+
/*----------- defined in audio/dkong.c -----------*/
diff --git a/src/mame/includes/docastle.h b/src/mame/includes/docastle.h
index 1074a677c53..846b61094b8 100644
--- a/src/mame/includes/docastle.h
+++ b/src/mame/includes/docastle.h
@@ -47,6 +47,7 @@ public:
virtual void video_start();
virtual void palette_init();
DECLARE_VIDEO_START(dorunrun);
+ UINT32 screen_update_docastle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -59,5 +60,5 @@ public:
-SCREEN_UPDATE_IND16( docastle );
+
diff --git a/src/mame/includes/dogfgt.h b/src/mame/includes/dogfgt.h
index 1658e487da4..d1f33a014bc 100644
--- a/src/mame/includes/dogfgt.h
+++ b/src/mame/includes/dogfgt.h
@@ -52,6 +52,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_dogfgt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -60,4 +61,4 @@ public:
-SCREEN_UPDATE_IND16( dogfgt );
+
diff --git a/src/mame/includes/dooyong.h b/src/mame/includes/dooyong.h
index 4395642c4cf..bf3e97eb0dd 100644
--- a/src/mame/includes/dooyong.h
+++ b/src/mame/includes/dooyong.h
@@ -79,6 +79,14 @@ public:
DECLARE_VIDEO_START(primella);
DECLARE_VIDEO_START(rshark);
DECLARE_VIDEO_START(popbingo);
+ UINT32 screen_update_lastday(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_gulfstrm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_pollux(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_bluehawk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_flytiger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_primella(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_rshark(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_popbingo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -88,14 +96,14 @@ public:
-SCREEN_UPDATE_IND16( lastday );
-SCREEN_UPDATE_IND16( gulfstrm );
-SCREEN_UPDATE_IND16( pollux );
-SCREEN_UPDATE_IND16( bluehawk );
-SCREEN_UPDATE_IND16( flytiger );
-SCREEN_UPDATE_IND16( primella );
-SCREEN_UPDATE_IND16( rshark );
-SCREEN_UPDATE_IND16( popbingo );
+
+
+
+
+
+
+
+
diff --git a/src/mame/includes/dragrace.h b/src/mame/includes/dragrace.h
index 9457c178580..580eb9db322 100644
--- a/src/mame/includes/dragrace.h
+++ b/src/mame/includes/dragrace.h
@@ -53,6 +53,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_dragrace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -63,4 +64,4 @@ DISCRETE_SOUND_EXTERN( dragrace );
/*----------- defined in video/dragrace.c -----------*/
-SCREEN_UPDATE_IND16( dragrace );
+
diff --git a/src/mame/includes/drgnmst.h b/src/mame/includes/drgnmst.h
index 9be41569a96..1ea8eb8f971 100644
--- a/src/mame/includes/drgnmst.h
+++ b/src/mame/includes/drgnmst.h
@@ -66,6 +66,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_drgnmst(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -73,4 +74,4 @@ public:
-SCREEN_UPDATE_IND16(drgnmst);
+
diff --git a/src/mame/includes/dribling.h b/src/mame/includes/dribling.h
index 9000ef094d9..a5ca16fe3f3 100644
--- a/src/mame/includes/dribling.h
+++ b/src/mame/includes/dribling.h
@@ -46,10 +46,11 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void palette_init();
+ UINT32 screen_update_dribling(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/dribling.c -----------*/
-SCREEN_UPDATE_IND16( dribling );
+
diff --git a/src/mame/includes/drmicro.h b/src/mame/includes/drmicro.h
index 84f09f27484..71d6d891eed 100644
--- a/src/mame/includes/drmicro.h
+++ b/src/mame/includes/drmicro.h
@@ -34,6 +34,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_drmicro(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -41,5 +42,5 @@ public:
-SCREEN_UPDATE_IND16( drmicro );
+
diff --git a/src/mame/includes/dynax.h b/src/mame/includes/dynax.h
index 740ba66c4ff..bc22b33ea78 100644
--- a/src/mame/includes/dynax.h
+++ b/src/mame/includes/dynax.h
@@ -463,6 +463,14 @@ public:
DECLARE_VIDEO_START(neruton);
DECLARE_MACHINE_START(dynax);
DECLARE_MACHINE_RESET(adpcm);
+ UINT32 screen_update_ddenlovr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_hanamai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_hnoridur(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_sprtmtch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_mjdialq2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_jantouki_top(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_jantouki_bottom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_htengoku(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
//----------- defined in drivers/dynax.c -----------
@@ -483,13 +491,13 @@ void neruton_update_irq(running_machine &machine);
-SCREEN_UPDATE_IND16( hanamai );
-SCREEN_UPDATE_IND16( hnoridur );
-SCREEN_UPDATE_IND16( sprtmtch );
-SCREEN_UPDATE_IND16( mjdialq2 );
-SCREEN_UPDATE_IND16( jantouki_top );
-SCREEN_UPDATE_IND16( jantouki_bottom );
-SCREEN_UPDATE_IND16( htengoku );
+
+
+
+
+
+
+
@@ -497,4 +505,4 @@ SCREEN_UPDATE_IND16( htengoku );
//----------- defined in drivers/ddenlovr.c -----------
-SCREEN_UPDATE_IND16(ddenlovr);
+
diff --git a/src/mame/includes/dynduke.h b/src/mame/includes/dynduke.h
index 7836ff3238c..7eb41612dba 100644
--- a/src/mame/includes/dynduke.h
+++ b/src/mame/includes/dynduke.h
@@ -40,10 +40,11 @@ public:
TILE_GET_INFO_MEMBER(get_fg_tile_info);
TILE_GET_INFO_MEMBER(get_tx_tile_info);
virtual void video_start();
+ UINT32 screen_update_dynduke(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/dynduke.c -----------*/
-SCREEN_UPDATE_IND16( dynduke );
+
diff --git a/src/mame/includes/eolith.h b/src/mame/includes/eolith.h
index 37e8b19a607..24ff8fa3eee 100644
--- a/src/mame/includes/eolith.h
+++ b/src/mame/includes/eolith.h
@@ -39,10 +39,11 @@ public:
DECLARE_DRIVER_INIT(landbrka);
DECLARE_MACHINE_RESET(eolith);
DECLARE_VIDEO_START(eolith);
+ UINT32 screen_update_eolith(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/eolith.c -----------*/
-SCREEN_UPDATE_IND16( eolith );
+
diff --git a/src/mame/includes/epos.h b/src/mame/includes/epos.h
index 7f89328ca2b..d489dc98c82 100644
--- a/src/mame/includes/epos.h
+++ b/src/mame/includes/epos.h
@@ -26,9 +26,10 @@ public:
virtual void machine_reset();
DECLARE_MACHINE_START(epos);
DECLARE_MACHINE_START(dealer);
+ UINT32 screen_update_epos(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/epos.c -----------*/
-SCREEN_UPDATE_RGB32( epos );
+
diff --git a/src/mame/includes/eprom.h b/src/mame/includes/eprom.h
index 500bde3bd83..ea6b4622796 100644
--- a/src/mame/includes/eprom.h
+++ b/src/mame/includes/eprom.h
@@ -31,15 +31,17 @@ public:
DECLARE_MACHINE_RESET(eprom);
DECLARE_VIDEO_START(eprom);
DECLARE_VIDEO_START(guts);
+ UINT32 screen_update_eprom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_guts(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/eprom.c -----------*/
-SCREEN_UPDATE_IND16( eprom );
-SCREEN_UPDATE_IND16( guts );
+
+
void eprom_scanline_update(screen_device &screen, int scanline);
diff --git a/src/mame/includes/equites.h b/src/mame/includes/equites.h
index b2a5cf18c6a..06585af25ce 100644
--- a/src/mame/includes/equites.h
+++ b/src/mame/includes/equites.h
@@ -104,6 +104,8 @@ public:
DECLARE_PALETTE_INIT(equites);
DECLARE_VIDEO_START(splndrbt);
DECLARE_PALETTE_INIT(splndrbt);
+ UINT32 screen_update_equites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_splndrbt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/includes/esd16.h b/src/mame/includes/esd16.h
index 58a0090a4e5..f6d5ee36483 100644
--- a/src/mame/includes/esd16.h
+++ b/src/mame/includes/esd16.h
@@ -63,6 +63,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_hedpanic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -70,4 +71,4 @@ public:
-SCREEN_UPDATE_IND16( hedpanic );
+
diff --git a/src/mame/includes/espial.h b/src/mame/includes/espial.h
index a4852fe86e0..40bdc03a954 100644
--- a/src/mame/includes/espial.h
+++ b/src/mame/includes/espial.h
@@ -51,6 +51,7 @@ public:
virtual void video_start();
virtual void palette_init();
DECLARE_VIDEO_START(netwars);
+ UINT32 screen_update_espial(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/espial.c -----------*/
@@ -58,4 +59,4 @@ public:
-SCREEN_UPDATE_IND16( espial );
+
diff --git a/src/mame/includes/esripsys.h b/src/mame/includes/esripsys.h
index 3cf65ccb32d..17de16c2ec9 100644
--- a/src/mame/includes/esripsys.h
+++ b/src/mame/includes/esripsys.h
@@ -92,13 +92,14 @@ public:
DECLARE_WRITE8_MEMBER(esripsys_dac_w);
DECLARE_DRIVER_INIT(esripsys);
virtual void video_start();
+ UINT32 screen_update_esripsys(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/esripsys.c -----------*/
-SCREEN_UPDATE_RGB32( esripsys );
+
INTERRUPT_GEN( esripsys_vblank_irq );
diff --git a/src/mame/includes/exedexes.h b/src/mame/includes/exedexes.h
index f0a1f90e2c6..90faf2c9bc5 100644
--- a/src/mame/includes/exedexes.h
+++ b/src/mame/includes/exedexes.h
@@ -48,6 +48,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_exedexes(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/includes/exerion.h b/src/mame/includes/exerion.h
index c109b417cdc..b13383daf70 100644
--- a/src/mame/includes/exerion.h
+++ b/src/mame/includes/exerion.h
@@ -61,6 +61,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_exerion(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -69,5 +70,5 @@ public:
-SCREEN_UPDATE_IND16( exerion );
+
diff --git a/src/mame/includes/exidy.h b/src/mame/includes/exidy.h
index 7130bdb38dd..1db5e4ca4d5 100644
--- a/src/mame/includes/exidy.h
+++ b/src/mame/includes/exidy.h
@@ -67,6 +67,7 @@ public:
DECLARE_DRIVER_INIT(phantoma);
virtual void video_start();
DECLARE_MACHINE_START(teetert);
+ UINT32 screen_update_exidy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -74,7 +75,7 @@ public:
void exidy_video_config(running_machine &machine, UINT8 _collision_mask, UINT8 _collision_invert, int _is_2bpp);
-SCREEN_UPDATE_IND16( exidy );
+
INTERRUPT_GEN( exidy_vblank_interrupt );
diff --git a/src/mame/includes/exidy440.h b/src/mame/includes/exidy440.h
index e708c691720..d2f58655a75 100644
--- a/src/mame/includes/exidy440.h
+++ b/src/mame/includes/exidy440.h
@@ -67,6 +67,8 @@ public:
virtual void machine_reset();
DECLARE_VIDEO_START(exidy440);
DECLARE_VIDEO_START(topsecex);
+ UINT32 screen_update_exidy440(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_topsecex(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/includes/exprraid.h b/src/mame/includes/exprraid.h
index 4368b628a81..1e65d2cabf0 100644
--- a/src/mame/includes/exprraid.h
+++ b/src/mame/includes/exprraid.h
@@ -53,6 +53,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_exprraid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/includes/exzisus.h b/src/mame/includes/exzisus.h
index 68540c6cdad..c8e0a8ccf4a 100644
--- a/src/mame/includes/exzisus.h
+++ b/src/mame/includes/exzisus.h
@@ -36,12 +36,13 @@ public:
DECLARE_WRITE8_MEMBER(exzisus_videoram_1_w);
DECLARE_WRITE8_MEMBER(exzisus_objectram_0_w);
DECLARE_WRITE8_MEMBER(exzisus_objectram_1_w);
+ UINT32 screen_update_exzisus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/exzisus.c -----------*/
-SCREEN_UPDATE_IND16( exzisus );
+
diff --git a/src/mame/includes/f1gp.h b/src/mame/includes/f1gp.h
index 5b7dbecf845..1cb3ab86edb 100644
--- a/src/mame/includes/f1gp.h
+++ b/src/mame/includes/f1gp.h
@@ -73,6 +73,9 @@ public:
DECLARE_MACHINE_START(f1gpb);
DECLARE_VIDEO_START(f1gpb);
DECLARE_VIDEO_START(f1gp2);
+ UINT32 screen_update_f1gp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_f1gpb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_f1gp2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/f1gp.c -----------*/
@@ -81,6 +84,6 @@ public:
-SCREEN_UPDATE_IND16( f1gp );
-SCREEN_UPDATE_IND16( f1gpb );
-SCREEN_UPDATE_IND16( f1gp2 );
+
+
+
diff --git a/src/mame/includes/fantland.h b/src/mame/includes/fantland.h
index cd7a4ff570c..47e3741e2a7 100644
--- a/src/mame/includes/fantland.h
+++ b/src/mame/includes/fantland.h
@@ -47,9 +47,10 @@ public:
DECLARE_MACHINE_RESET(fantland);
DECLARE_MACHINE_START(borntofi);
DECLARE_MACHINE_RESET(borntofi);
+ UINT32 screen_update_fantland(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/fantland.c -----------*/
-SCREEN_UPDATE_IND16( fantland );
+
diff --git a/src/mame/includes/fastfred.h b/src/mame/includes/fastfred.h
index 3a2cb0e0a89..3f69b31f151 100644
--- a/src/mame/includes/fastfred.h
+++ b/src/mame/includes/fastfred.h
@@ -61,6 +61,8 @@ public:
DECLARE_PALETTE_INIT(fastfred);
DECLARE_MACHINE_START(imago);
DECLARE_VIDEO_START(imago);
+ UINT32 screen_update_fastfred(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_imago(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -76,9 +78,9 @@ DECLARE_WRITE8_HANDLER( fastfred_colorbank1_w );
DECLARE_WRITE8_HANDLER( fastfred_colorbank2_w );
DECLARE_WRITE8_HANDLER( fastfred_flip_screen_x_w );
DECLARE_WRITE8_HANDLER( fastfred_flip_screen_y_w );
-SCREEN_UPDATE_IND16( fastfred );
-SCREEN_UPDATE_IND16( imago );
+
+
DECLARE_WRITE8_HANDLER( imago_fg_videoram_w );
DECLARE_WRITE8_HANDLER( imago_charbank_w );
diff --git a/src/mame/includes/fastlane.h b/src/mame/includes/fastlane.h
index fba26616aac..7c11bc40f38 100644
--- a/src/mame/includes/fastlane.h
+++ b/src/mame/includes/fastlane.h
@@ -48,6 +48,7 @@ public:
virtual void machine_start();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_fastlane(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -58,4 +59,4 @@ public:
-SCREEN_UPDATE_IND16( fastlane );
+
diff --git a/src/mame/includes/fcombat.h b/src/mame/includes/fcombat.h
index f8e9c261169..bf73aa31a8e 100644
--- a/src/mame/includes/fcombat.h
+++ b/src/mame/includes/fcombat.h
@@ -66,6 +66,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_fcombat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -74,5 +75,5 @@ public:
-SCREEN_UPDATE_IND16( fcombat );
+
diff --git a/src/mame/includes/fgoal.h b/src/mame/includes/fgoal.h
index a4a239c4549..b4a4461aac5 100644
--- a/src/mame/includes/fgoal.h
+++ b/src/mame/includes/fgoal.h
@@ -46,12 +46,13 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_fgoal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/fgoal.c -----------*/
-SCREEN_UPDATE_IND16( fgoal );
+
diff --git a/src/mame/includes/finalizr.h b/src/mame/includes/finalizr.h
index 1ea3aee2a33..a6fb5283c8e 100644
--- a/src/mame/includes/finalizr.h
+++ b/src/mame/includes/finalizr.h
@@ -53,6 +53,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_finalizr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -61,4 +62,4 @@ public:
-SCREEN_UPDATE_IND16( finalizr );
+
diff --git a/src/mame/includes/firetrap.h b/src/mame/includes/firetrap.h
index 87f62f5f14f..11e679b12d7 100644
--- a/src/mame/includes/firetrap.h
+++ b/src/mame/includes/firetrap.h
@@ -70,6 +70,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_firetrap(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -78,4 +79,4 @@ public:
-SCREEN_UPDATE_IND16( firetrap );
+
diff --git a/src/mame/includes/firetrk.h b/src/mame/includes/firetrk.h
index 51c903f1a6e..caa52b4253e 100644
--- a/src/mame/includes/firetrk.h
+++ b/src/mame/includes/firetrk.h
@@ -101,6 +101,9 @@ public:
DECLARE_VIDEO_START(superbug);
DECLARE_VIDEO_START(montecar);
DECLARE_PALETTE_INIT(montecar);
+ UINT32 screen_update_firetrk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_superbug(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_montecar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -126,8 +129,8 @@ DISCRETE_SOUND_EXTERN( montecar );
-SCREEN_UPDATE_IND16( firetrk );
-SCREEN_UPDATE_IND16( superbug );
-SCREEN_UPDATE_IND16( montecar );
+
+
+
diff --git a/src/mame/includes/fitfight.h b/src/mame/includes/fitfight.h
index 8b77faa2d47..ffc1892c961 100644
--- a/src/mame/includes/fitfight.h
+++ b/src/mame/includes/fitfight.h
@@ -61,6 +61,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_fitfight(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -68,4 +69,4 @@ public:
-SCREEN_UPDATE_IND16(fitfight);
+
diff --git a/src/mame/includes/flkatck.h b/src/mame/includes/flkatck.h
index 73077ee489a..ab251c1648f 100644
--- a/src/mame/includes/flkatck.h
+++ b/src/mame/includes/flkatck.h
@@ -38,6 +38,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_flkatck(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -48,4 +49,4 @@ public:
-SCREEN_UPDATE_IND16( flkatck );
+
diff --git a/src/mame/includes/flower.h b/src/mame/includes/flower.h
index b8e94b62426..74c25c3e90d 100644
--- a/src/mame/includes/flower.h
+++ b/src/mame/includes/flower.h
@@ -40,6 +40,7 @@ public:
TILE_GET_INFO_MEMBER(get_text_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_flower(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -77,6 +78,6 @@ extern const device_type FLOWER;
/*----------- defined in video/flower.c -----------*/
-SCREEN_UPDATE_IND16( flower );
+
diff --git a/src/mame/includes/flstory.h b/src/mame/includes/flstory.h
index 7736a4963a5..f0c94bd769b 100644
--- a/src/mame/includes/flstory.h
+++ b/src/mame/includes/flstory.h
@@ -114,6 +114,9 @@ public:
DECLARE_MACHINE_RESET(rumba);
DECLARE_VIDEO_START(rumba);
DECLARE_MACHINE_RESET(ta7630);
+ UINT32 screen_update_flstory(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_victnine(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_rumba(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -124,9 +127,9 @@ public:
/*----------- defined in video/flstory.c -----------*/
-SCREEN_UPDATE_IND16( flstory );
-SCREEN_UPDATE_IND16( victnine );
-SCREEN_UPDATE_IND16( rumba );
+
+
+
diff --git a/src/mame/includes/foodf.h b/src/mame/includes/foodf.h
index 5e18a461772..315e6a55362 100644
--- a/src/mame/includes/foodf.h
+++ b/src/mame/includes/foodf.h
@@ -35,10 +35,11 @@ public:
DECLARE_MACHINE_START(foodf);
DECLARE_MACHINE_RESET(foodf);
DECLARE_VIDEO_START(foodf);
+ UINT32 screen_update_foodf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/foodf.c -----------*/
-SCREEN_UPDATE_IND16( foodf );
+
diff --git a/src/mame/includes/freekick.h b/src/mame/includes/freekick.h
index bf316121ea2..1e173cc5ed8 100644
--- a/src/mame/includes/freekick.h
+++ b/src/mame/includes/freekick.h
@@ -48,12 +48,15 @@ public:
DECLARE_MACHINE_START(freekick);
DECLARE_MACHINE_START(oigas);
DECLARE_MACHINE_RESET(oigas);
+ UINT32 screen_update_pbillrd(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_freekick(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_gigas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/freekick.c -----------*/
-SCREEN_UPDATE_IND16(gigas);
-SCREEN_UPDATE_IND16(pbillrd);
-SCREEN_UPDATE_IND16(freekick);
+
+
+
diff --git a/src/mame/includes/fromanc2.h b/src/mame/includes/fromanc2.h
index 011f12e54b1..c06499855dd 100644
--- a/src/mame/includes/fromanc2.h
+++ b/src/mame/includes/fromanc2.h
@@ -103,6 +103,8 @@ public:
DECLARE_VIDEO_START(fromancr);
DECLARE_MACHINE_START(fromanc4);
DECLARE_VIDEO_START(fromanc4);
+ UINT32 screen_update_fromanc2_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_fromanc2_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -110,8 +112,8 @@ public:
/*----------- defined in video/fromanc2.c -----------*/
-SCREEN_UPDATE_IND16( fromanc2_left );
-SCREEN_UPDATE_IND16( fromanc2_right );
+
+
diff --git a/src/mame/includes/fromance.h b/src/mame/includes/fromance.h
index c04f17ab586..aafc12784dc 100644
--- a/src/mame/includes/fromance.h
+++ b/src/mame/includes/fromance.h
@@ -84,6 +84,8 @@ public:
DECLARE_MACHINE_RESET(pipedrm);
DECLARE_VIDEO_START(pipedrm);
DECLARE_VIDEO_START(hatris);
+ UINT32 screen_update_fromance(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_pipedrm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -93,8 +95,8 @@ public:
-SCREEN_UPDATE_IND16( fromance );
-SCREEN_UPDATE_IND16( pipedrm );
+
+
diff --git a/src/mame/includes/funkybee.h b/src/mame/includes/funkybee.h
index 01982f7c969..d4108c8f760 100644
--- a/src/mame/includes/funkybee.h
+++ b/src/mame/includes/funkybee.h
@@ -28,6 +28,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_funkybee(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -36,4 +37,4 @@ public:
-SCREEN_UPDATE_IND16( funkybee );
+
diff --git a/src/mame/includes/funkyjet.h b/src/mame/includes/funkyjet.h
index 0fba2b1b57d..61f2031ad60 100644
--- a/src/mame/includes/funkyjet.h
+++ b/src/mame/includes/funkyjet.h
@@ -25,10 +25,11 @@ public:
device_t *m_deco_tilegen1;
DECLARE_DRIVER_INIT(funkyjet);
virtual void machine_start();
+ UINT32 screen_update_funkyjet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/funkyjet.c -----------*/
-SCREEN_UPDATE_IND16( funkyjet );
+
diff --git a/src/mame/includes/funworld.h b/src/mame/includes/funworld.h
index eae6578398e..646bfc93d7d 100644
--- a/src/mame/includes/funworld.h
+++ b/src/mame/includes/funworld.h
@@ -29,6 +29,7 @@ public:
DECLARE_VIDEO_START(funworld);
DECLARE_PALETTE_INIT(funworld);
DECLARE_VIDEO_START(magicrd2);
+ UINT32 screen_update_funworld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -37,4 +38,4 @@ public:
-SCREEN_UPDATE_IND16( funworld );
+
diff --git a/src/mame/includes/funybubl.h b/src/mame/includes/funybubl.h
index 1385c90d680..b88b0b4d449 100644
--- a/src/mame/includes/funybubl.h
+++ b/src/mame/includes/funybubl.h
@@ -22,6 +22,7 @@ public:
DECLARE_WRITE8_MEMBER(funybubl_oki_bank_sw);
virtual void machine_start();
virtual void video_start();
+ UINT32 screen_update_funybubl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -30,4 +31,4 @@ public:
-SCREEN_UPDATE_IND16(funybubl);
+
diff --git a/src/mame/includes/fuukifg2.h b/src/mame/includes/fuukifg2.h
index af7d9b01023..f47bd99406e 100644
--- a/src/mame/includes/fuukifg2.h
+++ b/src/mame/includes/fuukifg2.h
@@ -43,6 +43,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_fuuki16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -50,4 +51,4 @@ public:
-SCREEN_UPDATE_IND16( fuuki16 );
+
diff --git a/src/mame/includes/fuukifg3.h b/src/mame/includes/fuukifg3.h
index ff7e607eb49..e55a110b7e6 100644
--- a/src/mame/includes/fuukifg3.h
+++ b/src/mame/includes/fuukifg3.h
@@ -61,6 +61,8 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_fuuki32(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_fuuki32(screen_device &screen, bool state);
};
@@ -68,5 +70,5 @@ public:
-SCREEN_UPDATE_IND16( fuuki32 );
-SCREEN_VBLANK( fuuki32 );
+
+
diff --git a/src/mame/includes/gaelco.h b/src/mame/includes/gaelco.h
index e43d8fca7cd..62806b5745f 100644
--- a/src/mame/includes/gaelco.h
+++ b/src/mame/includes/gaelco.h
@@ -39,6 +39,8 @@ public:
virtual void machine_start();
DECLARE_VIDEO_START(bigkarnk);
DECLARE_VIDEO_START(maniacsq);
+ UINT32 screen_update_bigkarnk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_maniacsq(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -49,5 +51,5 @@ public:
-SCREEN_UPDATE_IND16( bigkarnk );
-SCREEN_UPDATE_IND16( maniacsq );
+
+
diff --git a/src/mame/includes/gaelco2.h b/src/mame/includes/gaelco2.h
index 358ed77695d..0c05279d684 100644
--- a/src/mame/includes/gaelco2.h
+++ b/src/mame/includes/gaelco2.h
@@ -49,6 +49,9 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info_gaelco2_screen1_dual);
DECLARE_VIDEO_START(gaelco2);
DECLARE_VIDEO_START(gaelco2_dual);
+ UINT32 screen_update_gaelco2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_gaelco2_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_gaelco2_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -61,8 +64,8 @@ DECLARE_WRITE16_DEVICE_HANDLER( gaelco2_eeprom_data_w );
/*----------- defined in video/gaelco2.c -----------*/
-SCREEN_UPDATE_IND16( gaelco2 );
-SCREEN_UPDATE_IND16( gaelco2_left );
-SCREEN_UPDATE_IND16( gaelco2_right );
+
+
+
diff --git a/src/mame/includes/gaelco3d.h b/src/mame/includes/gaelco3d.h
index 2efeb54723f..da556145f7e 100644
--- a/src/mame/includes/gaelco3d.h
+++ b/src/mame/includes/gaelco3d.h
@@ -115,6 +115,7 @@ public:
virtual void video_start();
DECLARE_MACHINE_RESET(gaelco3d2);
DECLARE_MACHINE_RESET(common);
+ UINT32 screen_update_gaelco3d(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -124,4 +125,4 @@ void gaelco3d_render(screen_device &screen);
-SCREEN_UPDATE_IND16( gaelco3d );
+
diff --git a/src/mame/includes/gaiden.h b/src/mame/includes/gaiden.h
index 08e7363ca20..aa6c8e16ce0 100644
--- a/src/mame/includes/gaiden.h
+++ b/src/mame/includes/gaiden.h
@@ -83,6 +83,9 @@ public:
DECLARE_VIDEO_START(drgnbowl);
DECLARE_VIDEO_START(mastninj);
DECLARE_VIDEO_START(raiga);
+ UINT32 screen_update_gaiden(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_drgnbowl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_raiga(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -93,8 +96,8 @@ public:
-SCREEN_UPDATE_RGB32( gaiden );
-SCREEN_UPDATE_RGB32( raiga );
-SCREEN_UPDATE_IND16( drgnbowl );
+
+
+
diff --git a/src/mame/includes/galaga.h b/src/mame/includes/galaga.h
index 4bd5bf72610..b3d9e90e30a 100644
--- a/src/mame/includes/galaga.h
+++ b/src/mame/includes/galaga.h
@@ -56,6 +56,8 @@ public:
DECLARE_MACHINE_RESET(galaga);
DECLARE_VIDEO_START(galaga);
DECLARE_PALETTE_INIT(galaga);
+ UINT32 screen_update_galaga(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_galaga(screen_device &screen, bool state);
};
class xevious_state : public galaga_state
@@ -90,6 +92,7 @@ public:
DECLARE_MACHINE_RESET(xevios);
DECLARE_PALETTE_INIT(battles);
DECLARE_MACHINE_RESET(battles);
+ UINT32 screen_update_xevious(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -119,6 +122,8 @@ public:
TILE_GET_INFO_MEMBER(fg_get_tile_info);
DECLARE_VIDEO_START(bosco);
DECLARE_PALETTE_INIT(bosco);
+ UINT32 screen_update_bosco(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_bosco(screen_device &screen, bool state);
};
class digdug_state : public galaga_state
@@ -144,6 +149,7 @@ public:
TILE_GET_INFO_MEMBER(tx_get_tile_info);
DECLARE_VIDEO_START(digdug);
DECLARE_PALETTE_INIT(digdug);
+ UINT32 screen_update_digdug(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -155,10 +161,6 @@ DECLARE_WRITE8_HANDLER( bosco_scrollx_w );
DECLARE_WRITE8_HANDLER( bosco_scrolly_w );
DECLARE_WRITE8_HANDLER( bosco_starclr_w );
-SCREEN_UPDATE_IND16( bosco );
-
-SCREEN_VBLANK( bosco ); /* update starfield */
-
/*----------- defined in audio/galaga.c -----------*/
DISCRETE_SOUND_EXTERN( bosco );
@@ -175,11 +177,6 @@ struct star
extern const struct star star_seed_tab[];
-
-
-SCREEN_UPDATE_IND16( galaga );
-SCREEN_VBLANK( galaga ); /* update starfield */
-
/*----------- defined in video/xevious.c -----------*/
DECLARE_WRITE8_HANDLER( xevious_fg_videoram_w );
@@ -191,7 +188,7 @@ DECLARE_WRITE8_HANDLER( xevious_bs_w );
DECLARE_READ8_HANDLER( xevious_bb_r );
-SCREEN_UPDATE_IND16( xevious );
+
@@ -220,5 +217,5 @@ INTERRUPT_GEN( battles_interrupt_4 );
DECLARE_WRITE8_HANDLER( digdug_videoram_w );
DECLARE_WRITE8_HANDLER( digdug_PORT_w );
-SCREEN_UPDATE_IND16( digdug );
+
diff --git a/src/mame/includes/galastrm.h b/src/mame/includes/galastrm.h
index a6ef24ac06e..fdfdfe2c818 100644
--- a/src/mame/includes/galastrm.h
+++ b/src/mame/includes/galastrm.h
@@ -47,10 +47,11 @@ public:
DECLARE_CUSTOM_INPUT_MEMBER(frame_counter_r);
DECLARE_CUSTOM_INPUT_MEMBER(coin_word_r);
virtual void video_start();
+ UINT32 screen_update_galastrm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/galastrm.c -----------*/
-SCREEN_UPDATE_IND16( galastrm );
+
diff --git a/src/mame/includes/galaxia.h b/src/mame/includes/galaxia.h
index e613ac17bdf..f3cf4c73dd1 100644
--- a/src/mame/includes/galaxia.h
+++ b/src/mame/includes/galaxia.h
@@ -26,6 +26,8 @@ public:
DECLARE_PALETTE_INIT(galaxia);
DECLARE_VIDEO_START(astrowar);
DECLARE_PALETTE_INIT(astrowar);
+ UINT32 screen_update_galaxia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_astrowar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -36,5 +38,5 @@ public:
-SCREEN_UPDATE_IND16( galaxia );
-SCREEN_UPDATE_IND16( astrowar );
+
+
diff --git a/src/mame/includes/galaxian.h b/src/mame/includes/galaxian.h
index 2b131fbfdcc..9bfa73d5e82 100644
--- a/src/mame/includes/galaxian.h
+++ b/src/mame/includes/galaxian.h
@@ -223,6 +223,7 @@ public:
virtual void palette_init();
DECLARE_PALETTE_INIT(moonwar);
void tenspot_set_game_bank(running_machine& machine, int bank, int from_game);
+ UINT32 screen_update_galaxian(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -232,7 +233,7 @@ public:
-SCREEN_UPDATE_RGB32( galaxian );
+
diff --git a/src/mame/includes/galaxold.h b/src/mame/includes/galaxold.h
index 83123ff1ba9..7284c6504b1 100644
--- a/src/mame/includes/galaxold.h
+++ b/src/mame/includes/galaxold.h
@@ -176,6 +176,8 @@ public:
DECLARE_VIDEO_START(scorpion);
DECLARE_VIDEO_START(ad2083);
DECLARE_VIDEO_START(dambustr);
+ UINT32 screen_update_galaxold(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_dambustr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -222,8 +224,8 @@ public:
void galaxold_init_stars(running_machine &machine, int colors_offset);
void galaxold_draw_stars(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect);
-SCREEN_UPDATE_IND16( galaxold );
-SCREEN_UPDATE_IND16( dambustr );
+
+
diff --git a/src/mame/includes/galivan.h b/src/mame/includes/galivan.h
index 7c9bb038bd5..680ccb1fb09 100644
--- a/src/mame/includes/galivan.h
+++ b/src/mame/includes/galivan.h
@@ -56,6 +56,8 @@ public:
DECLARE_MACHINE_START(ninjemak);
DECLARE_MACHINE_RESET(ninjemak);
DECLARE_VIDEO_START(ninjemak);
+ UINT32 screen_update_galivan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_ninjemak(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -69,5 +71,5 @@ DECLARE_WRITE8_HANDLER( ninjemak_scrolly_w );
-SCREEN_UPDATE_IND16( galivan );
-SCREEN_UPDATE_IND16( ninjemak );
+
+
diff --git a/src/mame/includes/galpani2.h b/src/mame/includes/galpani2.h
index b23c49079a7..26a57955445 100644
--- a/src/mame/includes/galpani2.h
+++ b/src/mame/includes/galpani2.h
@@ -50,6 +50,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_galpani2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -57,7 +58,7 @@ public:
-SCREEN_UPDATE_IND16( galpani2 );
+
DECLARE_WRITE16_HANDLER( galpani2_palette_0_w );
DECLARE_WRITE16_HANDLER( galpani2_palette_1_w );
diff --git a/src/mame/includes/galpanic.h b/src/mame/includes/galpanic.h
index 1ba86bee9a9..1854f17a005 100644
--- a/src/mame/includes/galpanic.h
+++ b/src/mame/includes/galpanic.h
@@ -24,6 +24,9 @@ public:
DECLARE_READ8_MEMBER(comad_okim6295_r);
DECLARE_VIDEO_START(galpanic);
DECLARE_PALETTE_INIT(galpanic);
+ UINT32 screen_update_galpanic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_comad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_galpanic(screen_device &screen, bool state);
};
@@ -33,7 +36,7 @@ public:
DECLARE_WRITE16_HANDLER( galpanic_bgvideoram_w );
DECLARE_WRITE16_HANDLER( galpanic_paletteram_w );
-SCREEN_UPDATE_IND16( galpanic );
-SCREEN_UPDATE_IND16( comad );
+
+
diff --git a/src/mame/includes/galspnbl.h b/src/mame/includes/galspnbl.h
index 4474fe42b39..a28209a7140 100644
--- a/src/mame/includes/galspnbl.h
+++ b/src/mame/includes/galspnbl.h
@@ -29,6 +29,7 @@ public:
DECLARE_WRITE16_MEMBER(soundcommand_w);
virtual void machine_start();
virtual void palette_init();
+ UINT32 screen_update_galspnbl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -36,4 +37,4 @@ public:
-SCREEN_UPDATE_IND16( galspnbl );
+
diff --git a/src/mame/includes/gameplan.h b/src/mame/includes/gameplan.h
index c44d13a4826..0506fe6e044 100644
--- a/src/mame/includes/gameplan.h
+++ b/src/mame/includes/gameplan.h
@@ -68,6 +68,8 @@ public:
DECLARE_VIDEO_START(leprechn);
DECLARE_VIDEO_START(trvquest);
DECLARE_VIDEO_START(common);
+ UINT32 screen_update_gameplan(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_leprechn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/includes/gaplus.h b/src/mame/includes/gaplus.h
index 654fe521df1..4f8e6b92715 100644
--- a/src/mame/includes/gaplus.h
+++ b/src/mame/includes/gaplus.h
@@ -45,16 +45,6 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_gaplus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_gaplus(screen_device &screen, bool state);
};
-
-
-/*----------- defined in machine/gaplus.c -----------*/
-
-
-
-/*----------- defined in video/gaplus.c -----------*/
-
-
-
-SCREEN_UPDATE_IND16( gaplus );
-SCREEN_VBLANK( gaplus ); /* update starfields */
diff --git a/src/mame/includes/gatron.h b/src/mame/includes/gatron.h
index cb9112ad92d..83e05d07857 100644
--- a/src/mame/includes/gatron.h
+++ b/src/mame/includes/gatron.h
@@ -13,6 +13,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_gat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -20,5 +21,5 @@ public:
-SCREEN_UPDATE_IND16( gat );
+
diff --git a/src/mame/includes/gauntlet.h b/src/mame/includes/gauntlet.h
index ce70eb66876..8bf9988e628 100644
--- a/src/mame/includes/gauntlet.h
+++ b/src/mame/includes/gauntlet.h
@@ -30,6 +30,7 @@ public:
DECLARE_MACHINE_START(gauntlet);
DECLARE_MACHINE_RESET(gauntlet);
DECLARE_VIDEO_START(gauntlet);
+ UINT32 screen_update_gauntlet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -39,4 +40,4 @@ DECLARE_WRITE16_HANDLER( gauntlet_xscroll_w );
DECLARE_WRITE16_HANDLER( gauntlet_yscroll_w );
-SCREEN_UPDATE_IND16( gauntlet );
+
diff --git a/src/mame/includes/gberet.h b/src/mame/includes/gberet.h
index 6734ee77b53..887a7ad66d5 100644
--- a/src/mame/includes/gberet.h
+++ b/src/mame/includes/gberet.h
@@ -55,6 +55,8 @@ public:
DECLARE_MACHINE_RESET(gberet);
DECLARE_VIDEO_START(gberet);
DECLARE_PALETTE_INIT(gberet);
+ UINT32 screen_update_gberet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_gberetb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -63,5 +65,5 @@ public:
-SCREEN_UPDATE_IND16( gberet );
-SCREEN_UPDATE_IND16( gberetb );
+
+
diff --git a/src/mame/includes/gbusters.h b/src/mame/includes/gbusters.h
index a213322029e..c979bf11797 100644
--- a/src/mame/includes/gbusters.h
+++ b/src/mame/includes/gbusters.h
@@ -40,6 +40,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_gbusters(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/gbusters.c -----------*/
@@ -48,4 +49,4 @@ extern void gbusters_tile_callback(running_machine &machine, int layer,int bank,
extern void gbusters_sprite_callback(running_machine &machine, int *code,int *color,int *priority,int *shadow);
-SCREEN_UPDATE_IND16( gbusters );
+
diff --git a/src/mame/includes/gcpinbal.h b/src/mame/includes/gcpinbal.h
index 1acbad10df1..539746cebc5 100644
--- a/src/mame/includes/gcpinbal.h
+++ b/src/mame/includes/gcpinbal.h
@@ -58,11 +58,12 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_gcpinbal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/gcpinbal.c -----------*/
-SCREEN_UPDATE_IND16( gcpinbal );
+
diff --git a/src/mame/includes/gijoe.h b/src/mame/includes/gijoe.h
index 12e9803360b..5359da0becc 100644
--- a/src/mame/includes/gijoe.h
+++ b/src/mame/includes/gijoe.h
@@ -44,6 +44,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_gijoe(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/gijoe.c -----------*/
@@ -52,4 +53,4 @@ extern void gijoe_sprite_callback(running_machine &machine, int *code, int *colo
extern void gijoe_tile_callback(running_machine &machine, int layer, int *code, int *color, int *flags);
-SCREEN_UPDATE_IND16( gijoe );
+
diff --git a/src/mame/includes/ginganin.h b/src/mame/includes/ginganin.h
index ebf9d09962e..85a9ea9f618 100644
--- a/src/mame/includes/ginganin.h
+++ b/src/mame/includes/ginganin.h
@@ -45,6 +45,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_ginganin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -53,4 +54,4 @@ public:
-SCREEN_UPDATE_IND16( ginganin );
+
diff --git a/src/mame/includes/gladiatr.h b/src/mame/includes/gladiatr.h
index 75faf3e3291..be575bef0b2 100644
--- a/src/mame/includes/gladiatr.h
+++ b/src/mame/includes/gladiatr.h
@@ -64,11 +64,13 @@ public:
DECLARE_VIDEO_START(ppking);
DECLARE_MACHINE_RESET(gladiator);
DECLARE_VIDEO_START(gladiatr);
+ UINT32 screen_update_ppking(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_gladiatr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/gladiatr.c -----------*/
-SCREEN_UPDATE_IND16( ppking );
-SCREEN_UPDATE_IND16( gladiatr );
+
+
diff --git a/src/mame/includes/glass.h b/src/mame/includes/glass.h
index 276d6abb848..5534276819c 100644
--- a/src/mame/includes/glass.h
+++ b/src/mame/includes/glass.h
@@ -46,6 +46,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_glass(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -53,4 +54,4 @@ public:
-SCREEN_UPDATE_IND16( glass );
+
diff --git a/src/mame/includes/gng.h b/src/mame/includes/gng.h
index 46462a65cac..0b6da744586 100644
--- a/src/mame/includes/gng.h
+++ b/src/mame/includes/gng.h
@@ -42,6 +42,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_gng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -49,4 +50,4 @@ public:
-SCREEN_UPDATE_IND16( gng );
+
diff --git a/src/mame/includes/goal92.h b/src/mame/includes/goal92.h
index 26e70ae57bb..8e71a631bdf 100644
--- a/src/mame/includes/goal92.h
+++ b/src/mame/includes/goal92.h
@@ -51,6 +51,8 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_goal92(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_goal92(screen_device &screen, bool state);
};
@@ -61,5 +63,5 @@ public:
-SCREEN_UPDATE_IND16( goal92 );
-SCREEN_VBLANK( goal92 );
+
+
diff --git a/src/mame/includes/goindol.h b/src/mame/includes/goindol.h
index 846adef7b11..fdd3a18c448 100644
--- a/src/mame/includes/goindol.h
+++ b/src/mame/includes/goindol.h
@@ -47,6 +47,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_goindol(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -55,4 +56,4 @@ public:
-SCREEN_UPDATE_IND16( goindol );
+
diff --git a/src/mame/includes/goldstar.h b/src/mame/includes/goldstar.h
index 3e376fa3995..57228682840 100644
--- a/src/mame/includes/goldstar.h
+++ b/src/mame/includes/goldstar.h
@@ -141,6 +141,12 @@ public:
DECLARE_VIDEO_START(magical);
DECLARE_PALETTE_INIT(magodds);
DECLARE_VIDEO_START(unkch);
+ UINT32 screen_update_goldstar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_cmast91(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_bingowng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_magical(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_amcoe1a(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_unkch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -154,9 +160,9 @@ public:
-SCREEN_UPDATE_IND16( goldstar );
-SCREEN_UPDATE_IND16( bingowng );
-SCREEN_UPDATE_IND16( cmast91 );
-SCREEN_UPDATE_IND16( amcoe1a );
-SCREEN_UPDATE_IND16( unkch );
-SCREEN_UPDATE_IND16( magical );
+
+
+
+
+
+
diff --git a/src/mame/includes/gomoku.h b/src/mame/includes/gomoku.h
index 2653eac0bc8..1e58bcacc46 100644
--- a/src/mame/includes/gomoku.h
+++ b/src/mame/includes/gomoku.h
@@ -25,6 +25,7 @@ public:
TILE_GET_INFO_MEMBER(get_fg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_gomoku(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -62,5 +63,5 @@ extern const device_type GOMOKU;
-SCREEN_UPDATE_IND16( gomoku );
+
diff --git a/src/mame/includes/gotcha.h b/src/mame/includes/gotcha.h
index 700adde88db..e77260fd47a 100644
--- a/src/mame/includes/gotcha.h
+++ b/src/mame/includes/gotcha.h
@@ -41,6 +41,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_gotcha(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -48,5 +49,5 @@ public:
-SCREEN_UPDATE_IND16( gotcha );
+
diff --git a/src/mame/includes/gottlieb.h b/src/mame/includes/gottlieb.h
index e851eb9c80c..de68c7124bc 100644
--- a/src/mame/includes/gottlieb.h
+++ b/src/mame/includes/gottlieb.h
@@ -301,6 +301,7 @@ public:
virtual void machine_reset();
virtual void video_start();
DECLARE_VIDEO_START(screwloo);
+ UINT32 screen_update_gottlieb(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -309,7 +310,7 @@ public:
-SCREEN_UPDATE_RGB32( gottlieb );
+
#if USE_FAKE_VOTRAX
MACHINE_CONFIG_EXTERN( reactor_samples );
diff --git a/src/mame/includes/gotya.h b/src/mame/includes/gotya.h
index fc92059c0d5..d77f58e5a35 100644
--- a/src/mame/includes/gotya.h
+++ b/src/mame/includes/gotya.h
@@ -37,6 +37,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_gotya(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -49,4 +50,4 @@ public:
-SCREEN_UPDATE_IND16( gotya );
+
diff --git a/src/mame/includes/gradius3.h b/src/mame/includes/gradius3.h
index 7e75c797905..c4703844313 100644
--- a/src/mame/includes/gradius3.h
+++ b/src/mame/includes/gradius3.h
@@ -48,6 +48,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_gradius3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/gradius3.c -----------*/
@@ -57,4 +58,4 @@ extern void gradius3_tile_callback(running_machine &machine, int layer,int bank,
-SCREEN_UPDATE_IND16( gradius3 );
+
diff --git a/src/mame/includes/grchamp.h b/src/mame/includes/grchamp.h
index 4aef969b861..9bac935bdc8 100644
--- a/src/mame/includes/grchamp.h
+++ b/src/mame/includes/grchamp.h
@@ -71,6 +71,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_grchamp(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
/* Discrete Sound Input Nodes */
@@ -92,4 +93,4 @@ DISCRETE_SOUND_EXTERN( grchamp );
-SCREEN_UPDATE_RGB32( grchamp );
+
diff --git a/src/mame/includes/gridlee.h b/src/mame/includes/gridlee.h
index 5e9e83e48ae..fb1a9e19edd 100644
--- a/src/mame/includes/gridlee.h
+++ b/src/mame/includes/gridlee.h
@@ -55,6 +55,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_gridlee(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -93,5 +94,5 @@ extern const device_type GRIDLEE;
-SCREEN_UPDATE_IND16( gridlee );
+
diff --git a/src/mame/includes/groundfx.h b/src/mame/includes/groundfx.h
index 0edd1b04747..fee422925a6 100644
--- a/src/mame/includes/groundfx.h
+++ b/src/mame/includes/groundfx.h
@@ -37,10 +37,11 @@ public:
DECLARE_CUSTOM_INPUT_MEMBER(coin_word_r);
DECLARE_DRIVER_INIT(groundfx);
virtual void video_start();
+ UINT32 screen_update_groundfx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/groundfx.c -----------*/
-SCREEN_UPDATE_IND16( groundfx );
+
diff --git a/src/mame/includes/gstriker.h b/src/mame/includes/gstriker.h
index 01f3c225519..092c37da17a 100644
--- a/src/mame/includes/gstriker.h
+++ b/src/mame/includes/gstriker.h
@@ -104,13 +104,14 @@ public:
DECLARE_VIDEO_START(gstriker);
DECLARE_VIDEO_START(vgoalsoc);
DECLARE_VIDEO_START(twrldc94);
+ UINT32 screen_update_gstriker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/gstriker.c -----------*/
-SCREEN_UPDATE_IND16( gstriker );
+
diff --git a/src/mame/includes/gsword.h b/src/mame/includes/gsword.h
index 8ad28f5dddf..ce297799232 100644
--- a/src/mame/includes/gsword.h
+++ b/src/mame/includes/gsword.h
@@ -45,6 +45,7 @@ public:
DECLARE_PALETTE_INIT(gsword);
DECLARE_MACHINE_RESET(josvolly);
DECLARE_PALETTE_INIT(josvolly);
+ UINT32 screen_update_gsword(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -54,4 +55,4 @@ public:
-SCREEN_UPDATE_IND16( gsword );
+
diff --git a/src/mame/includes/gumbo.h b/src/mame/includes/gumbo.h
index a8cc7f7f251..ec78e345f7e 100644
--- a/src/mame/includes/gumbo.h
+++ b/src/mame/includes/gumbo.h
@@ -25,6 +25,7 @@ public:
TILE_GET_INFO_MEMBER(get_gumbo_bg_tile_info);
TILE_GET_INFO_MEMBER(get_gumbo_fg_tile_info);
virtual void video_start();
+ UINT32 screen_update_gumbo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -32,4 +33,4 @@ public:
-SCREEN_UPDATE_IND16( gumbo );
+
diff --git a/src/mame/includes/gunbustr.h b/src/mame/includes/gunbustr.h
index 00adcc7731f..de582ca68a2 100644
--- a/src/mame/includes/gunbustr.h
+++ b/src/mame/includes/gunbustr.h
@@ -39,10 +39,11 @@ public:
DECLARE_DRIVER_INIT(gunbustrj);
DECLARE_DRIVER_INIT(gunbustr);
virtual void video_start();
+ UINT32 screen_update_gunbustr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/gunbustr.c -----------*/
-SCREEN_UPDATE_IND16( gunbustr );
+
diff --git a/src/mame/includes/gundealr.h b/src/mame/includes/gundealr.h
index 64863066691..86a1f44bb04 100644
--- a/src/mame/includes/gundealr.h
+++ b/src/mame/includes/gundealr.h
@@ -41,6 +41,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_gundealr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -48,5 +49,5 @@ public:
/*----------- defined in video/gundealr.c -----------*/
-SCREEN_UPDATE_IND16( gundealr );
+
diff --git a/src/mame/includes/gunsmoke.h b/src/mame/includes/gunsmoke.h
index 6f34b101179..5b59db0f49f 100644
--- a/src/mame/includes/gunsmoke.h
+++ b/src/mame/includes/gunsmoke.h
@@ -40,6 +40,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_gunsmoke(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -48,5 +49,5 @@ public:
-SCREEN_UPDATE_IND16( gunsmoke );
+
diff --git a/src/mame/includes/gyruss.h b/src/mame/includes/gyruss.h
index b22c9b29620..5953178066f 100644
--- a/src/mame/includes/gyruss.h
+++ b/src/mame/includes/gyruss.h
@@ -53,6 +53,7 @@ public:
virtual void machine_start();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_gyruss(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -60,4 +61,4 @@ public:
-SCREEN_UPDATE_IND16( gyruss );
+
diff --git a/src/mame/includes/hanaawas.h b/src/mame/includes/hanaawas.h
index e09ce719459..fa612049113 100644
--- a/src/mame/includes/hanaawas.h
+++ b/src/mame/includes/hanaawas.h
@@ -30,6 +30,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_hanaawas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -39,4 +40,4 @@ DECLARE_WRITE8_DEVICE_HANDLER( hanaawas_portB_w );
-SCREEN_UPDATE_IND16( hanaawas );
+
diff --git a/src/mame/includes/hcastle.h b/src/mame/includes/hcastle.h
index 0b6e93182b1..d2b73cf8f48 100644
--- a/src/mame/includes/hcastle.h
+++ b/src/mame/includes/hcastle.h
@@ -55,6 +55,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_hcastle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -62,5 +63,5 @@ public:
-SCREEN_UPDATE_IND16( hcastle );
+
diff --git a/src/mame/includes/hexion.h b/src/mame/includes/hexion.h
index 03e57f27b51..940a7a436c8 100644
--- a/src/mame/includes/hexion.h
+++ b/src/mame/includes/hexion.h
@@ -22,11 +22,12 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info0);
TILE_GET_INFO_MEMBER(get_tile_info1);
virtual void video_start();
+ UINT32 screen_update_hexion(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/hexion.c -----------*/
-SCREEN_UPDATE_IND16( hexion );
+
diff --git a/src/mame/includes/higemaru.h b/src/mame/includes/higemaru.h
index 9ec141751fb..8c51b0a102c 100644
--- a/src/mame/includes/higemaru.h
+++ b/src/mame/includes/higemaru.h
@@ -26,6 +26,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_higemaru(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -34,4 +35,4 @@ public:
-SCREEN_UPDATE_IND16( higemaru );
+
diff --git a/src/mame/includes/himesiki.h b/src/mame/includes/himesiki.h
index 19aa31a9735..439558697f0 100644
--- a/src/mame/includes/himesiki.h
+++ b/src/mame/includes/himesiki.h
@@ -33,11 +33,12 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_himesiki(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/himesiki.c -----------*/
-SCREEN_UPDATE_IND16( himesiki );
+
diff --git a/src/mame/includes/hitme.h b/src/mame/includes/hitme.h
index e648bd2ac3c..ab8c461b60b 100644
--- a/src/mame/includes/hitme.h
+++ b/src/mame/includes/hitme.h
@@ -39,6 +39,8 @@ public:
virtual void machine_reset();
virtual void video_start();
DECLARE_VIDEO_START(barricad);
+ UINT32 screen_update_hitme(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_barricad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/includes/hnayayoi.h b/src/mame/includes/hnayayoi.h
index 7f1df9d738b..2bf521d14e2 100644
--- a/src/mame/includes/hnayayoi.h
+++ b/src/mame/includes/hnayayoi.h
@@ -36,6 +36,7 @@ public:
virtual void machine_reset();
virtual void video_start();
DECLARE_VIDEO_START(untoucha);
+ UINT32 screen_update_hnayayoi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -43,5 +44,5 @@ public:
-SCREEN_UPDATE_IND16( hnayayoi );
+
diff --git a/src/mame/includes/hng64.h b/src/mame/includes/hng64.h
index 485df979fe7..e240a477be5 100644
--- a/src/mame/includes/hng64.h
+++ b/src/mame/includes/hng64.h
@@ -186,6 +186,8 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_hng64(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void screen_eof_hng64(screen_device &screen, bool state);
};
@@ -194,5 +196,5 @@ public:
void hng64_command3d(running_machine& machine, const UINT16* packet);
-SCREEN_UPDATE_RGB32( hng64 );
-SCREEN_VBLANK( hng64 );
+
+
diff --git a/src/mame/includes/holeland.h b/src/mame/includes/holeland.h
index 5eca165bba8..1582fc34a54 100644
--- a/src/mame/includes/holeland.h
+++ b/src/mame/includes/holeland.h
@@ -31,6 +31,8 @@ public:
TILE_GET_INFO_MEMBER(crzrally_get_tile_info);
DECLARE_VIDEO_START(holeland);
DECLARE_VIDEO_START(crzrally);
+ UINT32 screen_update_holeland(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_crzrally(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -38,6 +40,6 @@ public:
-SCREEN_UPDATE_IND16( holeland );
-SCREEN_UPDATE_IND16( crzrally );
+
+
diff --git a/src/mame/includes/homedata.h b/src/mame/includes/homedata.h
index 38c50b1c169..cb219e74b9a 100644
--- a/src/mame/includes/homedata.h
+++ b/src/mame/includes/homedata.h
@@ -120,6 +120,11 @@ public:
DECLARE_VIDEO_START(mirderby);
DECLARE_PALETTE_INIT(mirderby);
DECLARE_VIDEO_START(lemnangl);
+ UINT32 screen_update_mrokumei(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_reikaids(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_pteacher(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_mirderby(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_homedata(screen_device &screen, bool state);
};
@@ -137,8 +142,8 @@ public:
-SCREEN_UPDATE_IND16( mrokumei );
-SCREEN_UPDATE_IND16( reikaids );
-SCREEN_UPDATE_IND16( pteacher );
-SCREEN_UPDATE_IND16( mirderby );
-SCREEN_VBLANK( homedata );
+
+
+
+
+
diff --git a/src/mame/includes/homerun.h b/src/mame/includes/homerun.h
index 2d5a71cbf54..0fb7596f006 100644
--- a/src/mame/includes/homerun.h
+++ b/src/mame/includes/homerun.h
@@ -52,6 +52,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_homerun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -60,4 +61,4 @@ public:
DECLARE_WRITE8_DEVICE_HANDLER( homerun_banking_w );
-SCREEN_UPDATE_IND16(homerun);
+
diff --git a/src/mame/includes/hyhoo.h b/src/mame/includes/hyhoo.h
index 0c143720801..8d10b49a110 100644
--- a/src/mame/includes/hyhoo.h
+++ b/src/mame/includes/hyhoo.h
@@ -23,11 +23,12 @@ public:
DECLARE_DRIVER_INIT(hyhoo2);
DECLARE_DRIVER_INIT(hyhoo);
virtual void video_start();
+ UINT32 screen_update_hyhoo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/hyhoo.c -----------*/
-SCREEN_UPDATE_RGB32( hyhoo );
+
diff --git a/src/mame/includes/hyperspt.h b/src/mame/includes/hyperspt.h
index f9260d05736..926b0ea1dfd 100644
--- a/src/mame/includes/hyperspt.h
+++ b/src/mame/includes/hyperspt.h
@@ -42,6 +42,7 @@ public:
virtual void video_start();
virtual void palette_init();
DECLARE_VIDEO_START(roadf);
+ UINT32 screen_update_hyperspt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/hyperspt.c -----------*/
@@ -49,6 +50,6 @@ public:
-SCREEN_UPDATE_IND16( hyperspt );
+
diff --git a/src/mame/includes/hyprduel.h b/src/mame/includes/hyprduel.h
index fc19a9650cf..ef43d56f1ef 100644
--- a/src/mame/includes/hyprduel.h
+++ b/src/mame/includes/hyprduel.h
@@ -89,6 +89,7 @@ public:
DECLARE_MACHINE_START(magerror);
DECLARE_VIDEO_START(magerror_14220);
DECLARE_VIDEO_START(common_14220);
+ UINT32 screen_update_hyprduel(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -99,4 +100,4 @@ public:
-SCREEN_UPDATE_IND16( hyprduel );
+
diff --git a/src/mame/includes/ikki.h b/src/mame/includes/ikki.h
index fb1eee520e7..0fb368e0385 100644
--- a/src/mame/includes/ikki.h
+++ b/src/mame/includes/ikki.h
@@ -35,6 +35,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_ikki(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -43,4 +44,4 @@ public:
-SCREEN_UPDATE_IND16( ikki );
+
diff --git a/src/mame/includes/inufuku.h b/src/mame/includes/inufuku.h
index 76e104a51d5..e672051ed55 100644
--- a/src/mame/includes/inufuku.h
+++ b/src/mame/includes/inufuku.h
@@ -49,11 +49,12 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_inufuku(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/inufuku.c -----------*/
-SCREEN_UPDATE_IND16( inufuku );
+
diff --git a/src/mame/includes/iqblock.h b/src/mame/includes/iqblock.h
index 081042cec65..66e65ed486f 100644
--- a/src/mame/includes/iqblock.h
+++ b/src/mame/includes/iqblock.h
@@ -29,6 +29,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
virtual void video_start();
+ UINT32 screen_update_iqblock(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -36,4 +37,4 @@ public:
-SCREEN_UPDATE_IND16( iqblock );
+
diff --git a/src/mame/includes/irobot.h b/src/mame/includes/irobot.h
index 9cd46e6260f..7a349cfe9d9 100644
--- a/src/mame/includes/irobot.h
+++ b/src/mame/includes/irobot.h
@@ -77,6 +77,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_irobot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in machine/irobot.c -----------*/
@@ -92,7 +93,7 @@ TIMER_DEVICE_CALLBACK( irobot_irmb_done_callback );
-SCREEN_UPDATE_IND16( irobot );
+
void irobot_poly_clear(running_machine &machine);
diff --git a/src/mame/includes/ironhors.h b/src/mame/includes/ironhors.h
index 75f9bd652b3..5046f85d325 100644
--- a/src/mame/includes/ironhors.h
+++ b/src/mame/includes/ironhors.h
@@ -48,6 +48,8 @@ public:
virtual void video_start();
virtual void palette_init();
DECLARE_VIDEO_START(farwest);
+ UINT32 screen_update_ironhors(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_farwest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -56,6 +58,6 @@ public:
-SCREEN_UPDATE_IND16( ironhors );
-SCREEN_UPDATE_IND16( farwest );
+
+
diff --git a/src/mame/includes/itech32.h b/src/mame/includes/itech32.h
index 921aa219df6..f0f84ee595d 100644
--- a/src/mame/includes/itech32.h
+++ b/src/mame/includes/itech32.h
@@ -157,6 +157,7 @@ public:
virtual void machine_reset();
virtual void video_start();
DECLARE_MACHINE_RESET(drivedge);
+ UINT32 screen_update_itech32(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -176,4 +177,4 @@ void itech32_update_interrupts(running_machine &machine, int vint, int xint, int
-SCREEN_UPDATE_IND16( itech32 );
+
diff --git a/src/mame/includes/itech8.h b/src/mame/includes/itech8.h
index 02916d6b48e..bb0bb7dcdc0 100644
--- a/src/mame/includes/itech8.h
+++ b/src/mame/includes/itech8.h
@@ -89,6 +89,11 @@ public:
virtual void video_start();
DECLARE_VIDEO_START(slikshot);
DECLARE_MACHINE_START(sstrike);
+ UINT32 screen_update_itech8_2layer(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_itech8_grmatch(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_slikshot(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_itech8_2page(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_itech8_2page_large(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -107,7 +112,7 @@ DECLARE_READ8_HANDLER( slikshot_z80_control_r );
DECLARE_WRITE8_HANDLER( slikshot_z80_control_w );
-SCREEN_UPDATE_RGB32( slikshot );
+
/*----------- defined in video/itech8.c -----------*/
@@ -120,7 +125,7 @@ SCREEN_UPDATE_RGB32( slikshot );
TIMER_DEVICE_CALLBACK( grmatch_palette_update );
-SCREEN_UPDATE_RGB32( itech8_2layer );
-SCREEN_UPDATE_RGB32( itech8_grmatch );
-SCREEN_UPDATE_RGB32( itech8_2page );
-SCREEN_UPDATE_RGB32( itech8_2page_large );
+
+
+
+
diff --git a/src/mame/includes/jack.h b/src/mame/includes/jack.h
index cf8b956c04b..76c5a35c546 100644
--- a/src/mame/includes/jack.h
+++ b/src/mame/includes/jack.h
@@ -55,6 +55,8 @@ public:
virtual void video_start();
DECLARE_VIDEO_START(joinem);
DECLARE_PALETTE_INIT(joinem);
+ UINT32 screen_update_jack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_joinem(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -62,8 +64,8 @@ public:
-SCREEN_UPDATE_IND16( jack );
-SCREEN_UPDATE_IND16( joinem );
+
+
diff --git a/src/mame/includes/jackal.h b/src/mame/includes/jackal.h
index 6ed63b00196..decdd1b5d7d 100644
--- a/src/mame/includes/jackal.h
+++ b/src/mame/includes/jackal.h
@@ -42,6 +42,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_jackal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -51,4 +52,4 @@ void jackal_mark_tile_dirty(running_machine &machine, int offset);
-SCREEN_UPDATE_IND16( jackal );
+
diff --git a/src/mame/includes/jailbrek.h b/src/mame/includes/jailbrek.h
index 0c13bfa3ca1..6f617fa2752 100644
--- a/src/mame/includes/jailbrek.h
+++ b/src/mame/includes/jailbrek.h
@@ -42,6 +42,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_jailbrek(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -50,4 +51,4 @@ public:
-SCREEN_UPDATE_IND16( jailbrek );
+
diff --git a/src/mame/includes/jedi.h b/src/mame/includes/jedi.h
index b5d4fc7ca49..7edca52130c 100644
--- a/src/mame/includes/jedi.h
+++ b/src/mame/includes/jedi.h
@@ -76,6 +76,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
DECLARE_VIDEO_START(jedi);
+ UINT32 screen_update_jedi(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/includes/kaneko16.h b/src/mame/includes/kaneko16.h
index e4a2a694f3b..f1672c6995b 100644
--- a/src/mame/includes/kaneko16.h
+++ b/src/mame/includes/kaneko16.h
@@ -63,6 +63,8 @@ public:
DECLARE_MACHINE_RESET(gtmr);
DECLARE_VIDEO_START(kaneko16);
DECLARE_MACHINE_RESET(mgcrystl);
+ UINT32 screen_update_kaneko16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_common(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
class kaneko16_gtmr_state : public kaneko16_state
@@ -112,6 +114,7 @@ public:
DECLARE_DRIVER_INIT(berlwall);
DECLARE_PALETTE_INIT(berlwall);
DECLARE_VIDEO_START(berlwall);
+ UINT32 screen_update_berlwall(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
class kaneko16_shogwarr_state : public kaneko16_state
@@ -143,8 +146,8 @@ public:
-SCREEN_UPDATE_IND16( kaneko16 );
-SCREEN_UPDATE_IND16( berlwall );
+
+
#endif
diff --git a/src/mame/includes/kangaroo.h b/src/mame/includes/kangaroo.h
index 2c1316eed4f..e96d5a4e2df 100644
--- a/src/mame/includes/kangaroo.h
+++ b/src/mame/includes/kangaroo.h
@@ -30,6 +30,7 @@ public:
virtual void machine_reset();
virtual void video_start();
DECLARE_MACHINE_START(kangaroo_mcu);
+ UINT32 screen_update_kangaroo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -38,5 +39,5 @@ public:
/*----------- defined in video/kangaroo.c -----------*/
-SCREEN_UPDATE_RGB32( kangaroo );
+
diff --git a/src/mame/includes/karnov.h b/src/mame/includes/karnov.h
index 7508c24f824..86b7caa5728 100644
--- a/src/mame/includes/karnov.h
+++ b/src/mame/includes/karnov.h
@@ -57,6 +57,7 @@ public:
virtual void palette_init();
DECLARE_VIDEO_START(karnov);
DECLARE_VIDEO_START(wndrplnt);
+ UINT32 screen_update_karnov(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
enum {
@@ -77,4 +78,4 @@ void karnov_flipscreen_w(running_machine &machine, int data);
-SCREEN_UPDATE_IND16( karnov );
+
diff --git a/src/mame/includes/kchamp.h b/src/mame/includes/kchamp.h
index d74e95a085a..a20187d102a 100644
--- a/src/mame/includes/kchamp.h
+++ b/src/mame/includes/kchamp.h
@@ -48,6 +48,8 @@ public:
virtual void palette_init();
DECLARE_MACHINE_START(kchampvs);
DECLARE_MACHINE_START(kchamp);
+ UINT32 screen_update_kchampvs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_kchamp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -56,5 +58,5 @@ public:
-SCREEN_UPDATE_IND16( kchamp );
-SCREEN_UPDATE_IND16( kchampvs );
+
+
diff --git a/src/mame/includes/kickgoal.h b/src/mame/includes/kickgoal.h
index 2fa7101d350..d122ba691ec 100644
--- a/src/mame/includes/kickgoal.h
+++ b/src/mame/includes/kickgoal.h
@@ -74,6 +74,7 @@ public:
virtual void machine_reset();
DECLARE_VIDEO_START(kickgoal);
DECLARE_VIDEO_START(actionhw);
+ UINT32 screen_update_kickgoal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -81,5 +82,5 @@ public:
-SCREEN_UPDATE_IND16( kickgoal );
+
diff --git a/src/mame/includes/kingobox.h b/src/mame/includes/kingobox.h
index 22497c4a47e..3e817feb4d8 100644
--- a/src/mame/includes/kingobox.h
+++ b/src/mame/includes/kingobox.h
@@ -56,6 +56,8 @@ public:
DECLARE_PALETTE_INIT(kingofb);
DECLARE_VIDEO_START(ringking);
DECLARE_PALETTE_INIT(ringking);
+ UINT32 screen_update_kingofb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_ringking(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -64,8 +66,8 @@ public:
-SCREEN_UPDATE_IND16( kingofb );
-SCREEN_UPDATE_IND16( ringking );
+
+
diff --git a/src/mame/includes/klax.h b/src/mame/includes/klax.h
index f10215138ce..3ee88b0a321 100644
--- a/src/mame/includes/klax.h
+++ b/src/mame/includes/klax.h
@@ -16,6 +16,7 @@ public:
DECLARE_MACHINE_START(klax);
DECLARE_MACHINE_RESET(klax);
DECLARE_VIDEO_START(klax);
+ UINT32 screen_update_klax(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -24,4 +25,4 @@ public:
DECLARE_WRITE16_HANDLER( klax_latch_w );
-SCREEN_UPDATE_IND16( klax );
+
diff --git a/src/mame/includes/kncljoe.h b/src/mame/includes/kncljoe.h
index d477826ef72..fa4205a8b2d 100644
--- a/src/mame/includes/kncljoe.h
+++ b/src/mame/includes/kncljoe.h
@@ -45,6 +45,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_kncljoe(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -54,4 +55,4 @@ public:
-SCREEN_UPDATE_IND16( kncljoe );
+
diff --git a/src/mame/includes/konamigx.h b/src/mame/includes/konamigx.h
index f8f70462fad..aeeb2a5fcc3 100644
--- a/src/mame/includes/konamigx.h
+++ b/src/mame/includes/konamigx.h
@@ -75,6 +75,9 @@ public:
DECLARE_VIDEO_START(konamigx_type4_vsn);
DECLARE_VIDEO_START(konamigx_type4_sd2);
DECLARE_VIDEO_START(winspike);
+ UINT32 screen_update_konamigx(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_konamigx_left(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_konamigx_right(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -160,9 +163,9 @@ extern UINT16 *K053247_ram;
-SCREEN_UPDATE_RGB32(konamigx);
-SCREEN_UPDATE_RGB32(konamigx_left);
-SCREEN_UPDATE_RGB32(konamigx_right);
+
+
+
extern int konamigx_current_frame;
diff --git a/src/mame/includes/kopunch.h b/src/mame/includes/kopunch.h
index eea6782bcac..9995a2dd7ac 100644
--- a/src/mame/includes/kopunch.h
+++ b/src/mame/includes/kopunch.h
@@ -42,6 +42,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_kopunch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/kopunch.c -----------*/
@@ -49,4 +50,4 @@ public:
-SCREEN_UPDATE_IND16( kopunch );
+
diff --git a/src/mame/includes/ksayakyu.h b/src/mame/includes/ksayakyu.h
index 45b48c4c671..7f8ce399e2d 100644
--- a/src/mame/includes/ksayakyu.h
+++ b/src/mame/includes/ksayakyu.h
@@ -39,6 +39,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_ksayakyu(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -46,4 +47,4 @@ public:
-SCREEN_UPDATE_IND16( ksayakyu );
+
diff --git a/src/mame/includes/kyugo.h b/src/mame/includes/kyugo.h
index 53be22eeae5..eeb459ef334 100644
--- a/src/mame/includes/kyugo.h
+++ b/src/mame/includes/kyugo.h
@@ -58,6 +58,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_kyugo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -66,4 +67,4 @@ public:
-SCREEN_UPDATE_IND16( kyugo );
+
diff --git a/src/mame/includes/labyrunr.h b/src/mame/includes/labyrunr.h
index a83a6084ef2..d124a387f17 100644
--- a/src/mame/includes/labyrunr.h
+++ b/src/mame/includes/labyrunr.h
@@ -41,6 +41,7 @@ public:
virtual void machine_start();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_labyrunr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -50,4 +51,4 @@ public:
-SCREEN_UPDATE_IND16( labyrunr );
+
diff --git a/src/mame/includes/ladybug.h b/src/mame/includes/ladybug.h
index d85157f00f4..0d1027d7e4a 100644
--- a/src/mame/includes/ladybug.h
+++ b/src/mame/includes/ladybug.h
@@ -76,6 +76,11 @@ public:
DECLARE_MACHINE_RESET(redclash);
DECLARE_VIDEO_START(redclash);
DECLARE_PALETTE_INIT(redclash);
+ UINT32 screen_update_ladybug(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_sraider(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_redclash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_sraider(screen_device &screen, bool state);
+ void screen_eof_redclash(screen_device &screen, bool state);
};
@@ -84,12 +89,12 @@ public:
-SCREEN_UPDATE_IND16( ladybug );
-SCREEN_UPDATE_IND16( sraider );
-SCREEN_VBLANK( sraider );
+
+
+
/*----------- defined in video/redclash.c -----------*/
@@ -104,8 +109,8 @@ DECLARE_WRITE8_HANDLER( redclash_star_reset_w );
-SCREEN_UPDATE_IND16( redclash );
-SCREEN_VBLANK( redclash );
+
+
/* sraider uses the zerohour star generator board */
void redclash_set_stars_enable(running_machine &machine, UINT8 on);
diff --git a/src/mame/includes/ladyfrog.h b/src/mame/includes/ladyfrog.h
index e1bfdc30c70..ffe6ed9dc29 100644
--- a/src/mame/includes/ladyfrog.h
+++ b/src/mame/includes/ladyfrog.h
@@ -58,6 +58,7 @@ public:
virtual void video_start();
DECLARE_VIDEO_START(toucheme);
DECLARE_VIDEO_START(ladyfrog_common);
+ UINT32 screen_update_ladyfrog(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -67,4 +68,4 @@ public:
-SCREEN_UPDATE_IND16( ladyfrog );
+
diff --git a/src/mame/includes/laserbat.h b/src/mame/includes/laserbat.h
index ef186bdce48..7a9cd7602a6 100644
--- a/src/mame/includes/laserbat.h
+++ b/src/mame/includes/laserbat.h
@@ -81,6 +81,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_laserbat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/includes/lasso.h b/src/mame/includes/lasso.h
index ba82d3cab88..188351b0510 100644
--- a/src/mame/includes/lasso.h
+++ b/src/mame/includes/lasso.h
@@ -66,6 +66,9 @@ public:
DECLARE_VIDEO_START(wwjgtin);
DECLARE_PALETTE_INIT(wwjgtin);
DECLARE_VIDEO_START(pinbo);
+ UINT32 screen_update_lasso(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_chameleo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_wwjgtin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -79,6 +82,6 @@ public:
-SCREEN_UPDATE_IND16( lasso );
-SCREEN_UPDATE_IND16( chameleo );
-SCREEN_UPDATE_IND16( wwjgtin );
+
+
+
diff --git a/src/mame/includes/lastduel.h b/src/mame/includes/lastduel.h
index fbab77a587e..2e898bccaff 100644
--- a/src/mame/includes/lastduel.h
+++ b/src/mame/includes/lastduel.h
@@ -58,6 +58,8 @@ public:
DECLARE_VIDEO_START(lastduel);
DECLARE_MACHINE_START(madgear);
DECLARE_VIDEO_START(madgear);
+ UINT32 screen_update_lastduel(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_madgear(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/lastduel.c -----------*/
@@ -65,5 +67,5 @@ public:
-SCREEN_UPDATE_IND16( lastduel );
-SCREEN_UPDATE_IND16( madgear );
+
+
diff --git a/src/mame/includes/lazercmd.h b/src/mame/includes/lazercmd.h
index e46cf6d923e..f741a370a63 100644
--- a/src/mame/includes/lazercmd.h
+++ b/src/mame/includes/lazercmd.h
@@ -56,9 +56,10 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void palette_init();
+ UINT32 screen_update_lazercmd(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/lazercmd.c -----------*/
-SCREEN_UPDATE_IND16( lazercmd );
+
diff --git a/src/mame/includes/legionna.h b/src/mame/includes/legionna.h
index 61e3cbb4ac9..1a8d2220875 100644
--- a/src/mame/includes/legionna.h
+++ b/src/mame/includes/legionna.h
@@ -49,6 +49,9 @@ public:
DECLARE_VIDEO_START(denjinmk);
DECLARE_VIDEO_START(grainbow);
DECLARE_VIDEO_START(cupsoc);
+ UINT32 screen_update_legionna(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_godzilla(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_grainbow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -57,6 +60,6 @@ public:
void heatbrl_setgfxbank(running_machine &machine, UINT16 data);
void denjinmk_setgfxbank(running_machine &machine, UINT16 data);
-SCREEN_UPDATE_IND16( legionna );
-SCREEN_UPDATE_IND16( godzilla );
-SCREEN_UPDATE_IND16( grainbow );
+
+
+
diff --git a/src/mame/includes/leland.h b/src/mame/includes/leland.h
index e1b0af22a29..ddd222128c8 100644
--- a/src/mame/includes/leland.h
+++ b/src/mame/includes/leland.h
@@ -140,6 +140,8 @@ public:
DECLARE_MACHINE_RESET(leland);
DECLARE_VIDEO_START(leland);
DECLARE_VIDEO_START(ataxx);
+ UINT32 screen_update_leland(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_ataxx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/includes/lemmings.h b/src/mame/includes/lemmings.h
index ed0c779437d..c69f4f00fa2 100644
--- a/src/mame/includes/lemmings.h
+++ b/src/mame/includes/lemmings.h
@@ -43,6 +43,8 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info);
virtual void machine_start();
virtual void video_start();
+ UINT32 screen_update_lemmings(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void screen_eof_lemmings(screen_device &screen, bool state);
};
@@ -50,6 +52,6 @@ public:
-SCREEN_VBLANK( lemmings );
-SCREEN_UPDATE_RGB32( lemmings );
+
+
diff --git a/src/mame/includes/lethal.h b/src/mame/includes/lethal.h
index cb45a1b31cc..5f9e9fd2bed 100644
--- a/src/mame/includes/lethal.h
+++ b/src/mame/includes/lethal.h
@@ -39,6 +39,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_lethalen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/lethal.c -----------*/
@@ -48,4 +49,4 @@ extern void lethalen_tile_callback(running_machine &machine, int layer, int *cod
-SCREEN_UPDATE_IND16(lethalen);
+
diff --git a/src/mame/includes/liberate.h b/src/mame/includes/liberate.h
index f626820cb33..9a41037b8d3 100644
--- a/src/mame/includes/liberate.h
+++ b/src/mame/includes/liberate.h
@@ -63,16 +63,20 @@ public:
DECLARE_VIDEO_START(prosport);
DECLARE_VIDEO_START(boomrang);
DECLARE_VIDEO_START(prosoccr);
+ UINT32 screen_update_liberate(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_prosport(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_boomrang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_prosoccr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/liberate.c -----------*/
-SCREEN_UPDATE_IND16( prosoccr );
-SCREEN_UPDATE_IND16( prosport );
-SCREEN_UPDATE_IND16( liberate );
-SCREEN_UPDATE_IND16( boomrang );
+
+
+
+
diff --git a/src/mame/includes/lkage.h b/src/mame/includes/lkage.h
index 755521ee5f1..ce70de59002 100644
--- a/src/mame/includes/lkage.h
+++ b/src/mame/includes/lkage.h
@@ -82,6 +82,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_lkage(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in machine/lkage.c -----------*/
@@ -91,5 +92,5 @@ public:
/*----------- defined in video/lkage.c -----------*/
-SCREEN_UPDATE_IND16( lkage );
+
diff --git a/src/mame/includes/lockon.h b/src/mame/includes/lockon.h
index b353e4cb969..410d44ca639 100644
--- a/src/mame/includes/lockon.h
+++ b/src/mame/includes/lockon.h
@@ -103,6 +103,8 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_lockon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_lockon(screen_device &screen, bool state);
};
@@ -110,6 +112,6 @@ public:
-SCREEN_UPDATE_IND16( lockon );
-SCREEN_VBLANK( lockon );
+
+
diff --git a/src/mame/includes/lordgun.h b/src/mame/includes/lordgun.h
index 4e0e913f911..ba50abdb4af 100644
--- a/src/mame/includes/lordgun.h
+++ b/src/mame/includes/lordgun.h
@@ -63,6 +63,7 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info_2);
TILE_GET_INFO_MEMBER(get_tile_info_3);
virtual void video_start();
+ UINT32 screen_update_lordgun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -73,4 +74,4 @@ float lordgun_crosshair_mapper(const ioport_field *field, float linear_value);
void lordgun_update_gun(running_machine &machine, int i);
-SCREEN_UPDATE_IND16( lordgun );
+
diff --git a/src/mame/includes/lsasquad.h b/src/mame/includes/lsasquad.h
index 711418c0c58..67a2ecca3a7 100644
--- a/src/mame/includes/lsasquad.h
+++ b/src/mame/includes/lsasquad.h
@@ -59,6 +59,8 @@ public:
DECLARE_WRITE8_MEMBER(unk);
DECLARE_MACHINE_START(lsasquad);
DECLARE_MACHINE_RESET(lsasquad);
+ UINT32 screen_update_lsasquad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_daikaiju(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in machine/lsasquad.c -----------*/
@@ -69,5 +71,5 @@ public:
/*----------- defined in video/lsasquad.c -----------*/
-SCREEN_UPDATE_IND16( lsasquad );
-SCREEN_UPDATE_IND16( daikaiju );
+
+
diff --git a/src/mame/includes/lucky74.h b/src/mame/includes/lucky74.h
index 25ff273b753..aaaa35643aa 100644
--- a/src/mame/includes/lucky74.h
+++ b/src/mame/includes/lucky74.h
@@ -39,6 +39,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_lucky74(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -46,4 +47,4 @@ public:
-SCREEN_UPDATE_IND16( lucky74 );
+
diff --git a/src/mame/includes/lvcards.h b/src/mame/includes/lvcards.h
index 7476ef8d5af..a10109fa578 100644
--- a/src/mame/includes/lvcards.h
+++ b/src/mame/includes/lvcards.h
@@ -23,6 +23,7 @@ public:
DECLARE_MACHINE_START(lvpoker);
DECLARE_MACHINE_RESET(lvpoker);
DECLARE_PALETTE_INIT(ponttehk);
+ UINT32 screen_update_lvcards(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -32,4 +33,4 @@ public:
-SCREEN_UPDATE_IND16( lvcards );
+
diff --git a/src/mame/includes/lwings.h b/src/mame/includes/lwings.h
index 9862966ec8c..331e2def7cb 100644
--- a/src/mame/includes/lwings.h
+++ b/src/mame/includes/lwings.h
@@ -58,6 +58,8 @@ public:
virtual void video_start();
DECLARE_VIDEO_START(trojan);
DECLARE_VIDEO_START(avengers);
+ UINT32 screen_update_lwings(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_trojan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -67,5 +69,5 @@ public:
-SCREEN_UPDATE_IND16( lwings );
-SCREEN_UPDATE_IND16( trojan );
+
+
diff --git a/src/mame/includes/m10.h b/src/mame/includes/m10.h
index 1b0ba989117..46c720a8dcb 100644
--- a/src/mame/includes/m10.h
+++ b/src/mame/includes/m10.h
@@ -86,6 +86,8 @@ public:
DECLARE_VIDEO_START(m10);
DECLARE_PALETTE_INIT(m10);
DECLARE_VIDEO_START(m15);
+ UINT32 screen_update_m10(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_m15(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -93,8 +95,8 @@ public:
-SCREEN_UPDATE_IND16( m10 );
-SCREEN_UPDATE_IND16( m15 );
+
+
diff --git a/src/mame/includes/m107.h b/src/mame/includes/m107.h
index 45cc7046940..86c9287989f 100644
--- a/src/mame/includes/m107.h
+++ b/src/mame/includes/m107.h
@@ -49,10 +49,11 @@ public:
TILE_GET_INFO_MEMBER(get_pf_tile_info);
virtual void machine_start();
virtual void video_start();
+ UINT32 screen_update_m107(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/m107.c -----------*/
-SCREEN_UPDATE_IND16( m107 );
+
diff --git a/src/mame/includes/m52.h b/src/mame/includes/m52.h
index c39aff93fcc..bf5994eaab2 100644
--- a/src/mame/includes/m52.h
+++ b/src/mame/includes/m52.h
@@ -34,6 +34,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_m52(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/m52.c -----------*/
@@ -41,4 +42,4 @@ public:
-SCREEN_UPDATE_IND16( m52 );
+
diff --git a/src/mame/includes/m57.h b/src/mame/includes/m57.h
index 2471f0ec430..8daf40f6d20 100644
--- a/src/mame/includes/m57.h
+++ b/src/mame/includes/m57.h
@@ -20,6 +20,7 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_m57(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/m57.c -----------*/
@@ -27,4 +28,4 @@ public:
-SCREEN_UPDATE_IND16( m57 );
+
diff --git a/src/mame/includes/m58.h b/src/mame/includes/m58.h
index 11f0041f3fa..66cdf09d822 100644
--- a/src/mame/includes/m58.h
+++ b/src/mame/includes/m58.h
@@ -30,6 +30,7 @@ public:
TILEMAP_MAPPER_MEMBER(yard_tilemap_scan_rows);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_yard(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/m58.c -----------*/
@@ -37,4 +38,4 @@ public:
-SCREEN_UPDATE_IND16( yard );
+
diff --git a/src/mame/includes/m62.h b/src/mame/includes/m62.h
index fb7f1a57006..5b7fc92b283 100644
--- a/src/mame/includes/m62.h
+++ b/src/mame/includes/m62.h
@@ -95,6 +95,17 @@ public:
DECLARE_PALETTE_INIT(spelunk2);
DECLARE_VIDEO_START(youjyudn);
DECLARE_VIDEO_START(horizon);
+ UINT32 screen_update_ldrun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_kungfum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_battroad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_ldrun3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_ldrun4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_lotlot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_kidniki(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_spelunkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_spelunk2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_youjyudn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_horizon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -119,14 +130,14 @@ public:
-SCREEN_UPDATE_IND16( battroad );
-SCREEN_UPDATE_IND16( horizon );
-SCREEN_UPDATE_IND16( kidniki );
-SCREEN_UPDATE_IND16( kungfum );
-SCREEN_UPDATE_IND16( ldrun );
-SCREEN_UPDATE_IND16( ldrun3 );
-SCREEN_UPDATE_IND16( ldrun4 );
-SCREEN_UPDATE_IND16( lotlot );
-SCREEN_UPDATE_IND16( spelunkr );
-SCREEN_UPDATE_IND16( spelunk2 );
-SCREEN_UPDATE_IND16( youjyudn );
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/mame/includes/m72.h b/src/mame/includes/m72.h
index 81c618b63b2..e7b56b294e6 100644
--- a/src/mame/includes/m72.h
+++ b/src/mame/includes/m72.h
@@ -115,6 +115,8 @@ public:
DECLARE_VIDEO_START(poundfor);
DECLARE_MACHINE_START(kengo);
DECLARE_MACHINE_RESET(kengo);
+ UINT32 screen_update_m72(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_majtitle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -129,5 +131,5 @@ public:
-SCREEN_UPDATE_IND16( m72 );
-SCREEN_UPDATE_IND16( majtitle );
+
+
diff --git a/src/mame/includes/m90.h b/src/mame/includes/m90.h
index 36e178f6e6f..fd6861a4526 100644
--- a/src/mame/includes/m90.h
+++ b/src/mame/includes/m90.h
@@ -40,6 +40,9 @@ public:
virtual void video_start();
DECLARE_VIDEO_START(bomblord);
DECLARE_VIDEO_START(dynablsb);
+ UINT32 screen_update_m90(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_bomblord(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_dynablsb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -48,6 +51,6 @@ public:
-SCREEN_UPDATE_IND16( m90 );
-SCREEN_UPDATE_IND16( dynablsb );
-SCREEN_UPDATE_IND16( bomblord );
+
+
+
diff --git a/src/mame/includes/m92.h b/src/mame/includes/m92.h
index f8a58ee4ca2..dc171e30a66 100644
--- a/src/mame/includes/m92.h
+++ b/src/mame/includes/m92.h
@@ -75,6 +75,8 @@ public:
DECLARE_MACHINE_RESET(m92);
DECLARE_VIDEO_START(m92);
DECLARE_VIDEO_START(ppan);
+ UINT32 screen_update_m92(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_ppan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -87,6 +89,6 @@ extern void m92_sprite_interrupt(running_machine &machine);
-SCREEN_UPDATE_IND16( m92 );
-SCREEN_UPDATE_IND16( ppan );
+
+
diff --git a/src/mame/includes/macrossp.h b/src/mame/includes/macrossp.h
index 6cabf8ef32f..ebbb1a94ae9 100644
--- a/src/mame/includes/macrossp.h
+++ b/src/mame/includes/macrossp.h
@@ -71,11 +71,13 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_macrossp(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void screen_eof_macrossp(screen_device &screen, bool state);
};
/*----------- defined in video/macrossp.c -----------*/
-SCREEN_UPDATE_RGB32(macrossp);
-SCREEN_VBLANK(macrossp);
+
+
diff --git a/src/mame/includes/madalien.h b/src/mame/includes/madalien.h
index b9642cdd760..fe2cad0b2ea 100644
--- a/src/mame/includes/madalien.h
+++ b/src/mame/includes/madalien.h
@@ -62,6 +62,7 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info_FG);
DECLARE_VIDEO_START(madalien);
DECLARE_PALETTE_INIT(madalien);
+ UINT32 screen_update_madalien(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/includes/madmotor.h b/src/mame/includes/madmotor.h
index e24e8f5e51b..b3aa963b02f 100644
--- a/src/mame/includes/madmotor.h
+++ b/src/mame/includes/madmotor.h
@@ -26,10 +26,11 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_madmotor(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/madmotor.c -----------*/
-SCREEN_UPDATE_IND16( madmotor );
+
diff --git a/src/mame/includes/magmax.h b/src/mame/includes/magmax.h
index 95e9a1623ee..89123db6569 100644
--- a/src/mame/includes/magmax.h
+++ b/src/mame/includes/magmax.h
@@ -33,11 +33,12 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_magmax(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/magmax.c -----------*/
-SCREEN_UPDATE_IND16( magmax );
+
diff --git a/src/mame/includes/mainevt.h b/src/mame/includes/mainevt.h
index 784fca40f10..34a9600344b 100644
--- a/src/mame/includes/mainevt.h
+++ b/src/mame/includes/mainevt.h
@@ -43,6 +43,8 @@ public:
virtual void machine_reset();
DECLARE_VIDEO_START(mainevt);
DECLARE_VIDEO_START(dv);
+ UINT32 screen_update_mainevt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_dv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/mainevt.c -----------*/
@@ -55,5 +57,5 @@ extern void dv_sprite_callback(running_machine &machine, int *code,int *color,in
-SCREEN_UPDATE_IND16( mainevt );
-SCREEN_UPDATE_IND16( dv );
+
+
diff --git a/src/mame/includes/mainsnk.h b/src/mame/includes/mainsnk.h
index 5bda13459e2..b2ae4b147a4 100644
--- a/src/mame/includes/mainsnk.h
+++ b/src/mame/includes/mainsnk.h
@@ -27,6 +27,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_mainsnk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -34,4 +35,4 @@ public:
-SCREEN_UPDATE_IND16(mainsnk);
+
diff --git a/src/mame/includes/malzak.h b/src/mame/includes/malzak.h
index 685323c756c..d16e4166763 100644
--- a/src/mame/includes/malzak.h
+++ b/src/mame/includes/malzak.h
@@ -42,10 +42,11 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void palette_init();
+ UINT32 screen_update_malzak(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/malzak.c -----------*/
-SCREEN_UPDATE_RGB32( malzak );
+
diff --git a/src/mame/includes/mappy.h b/src/mame/includes/mappy.h
index 18a8c6d8eb5..653aaa2eca7 100644
--- a/src/mame/includes/mappy.h
+++ b/src/mame/includes/mappy.h
@@ -49,6 +49,9 @@ public:
DECLARE_MACHINE_RESET(mappy);
DECLARE_VIDEO_START(mappy);
DECLARE_PALETTE_INIT(mappy);
+ UINT32 screen_update_superpac(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_phozon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_mappy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -56,11 +59,11 @@ public:
-SCREEN_UPDATE_IND16( phozon );
-SCREEN_UPDATE_IND16( superpac );
-SCREEN_UPDATE_IND16( mappy );
+
+
+
diff --git a/src/mame/includes/marineb.h b/src/mame/includes/marineb.h
index 82f49c003ec..a4900448380 100644
--- a/src/mame/includes/marineb.h
+++ b/src/mame/includes/marineb.h
@@ -39,6 +39,11 @@ public:
virtual void video_start();
virtual void palette_init();
DECLARE_MACHINE_RESET(springer);
+ UINT32 screen_update_marineb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_changes(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_springer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_hoccer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_hopprobo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -47,8 +52,8 @@ public:
-SCREEN_UPDATE_IND16( marineb );
-SCREEN_UPDATE_IND16( changes );
-SCREEN_UPDATE_IND16( springer );
-SCREEN_UPDATE_IND16( hoccer );
-SCREEN_UPDATE_IND16( hopprobo );
+
+
+
+
+
diff --git a/src/mame/includes/mario.h b/src/mame/includes/mario.h
index a4715f8bf81..424eeb7c5cf 100644
--- a/src/mame/includes/mario.h
+++ b/src/mame/includes/mario.h
@@ -81,6 +81,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_mario(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/mario.c -----------*/
@@ -88,7 +89,7 @@ public:
-SCREEN_UPDATE_IND16( mario );
+
/*----------- defined in audio/mario.c -----------*/
diff --git a/src/mame/includes/markham.h b/src/mame/includes/markham.h
index 06121c50f20..5147d12e72c 100644
--- a/src/mame/includes/markham.h
+++ b/src/mame/includes/markham.h
@@ -26,6 +26,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_markham(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -34,4 +35,4 @@ public:
-SCREEN_UPDATE_IND16( markham );
+
diff --git a/src/mame/includes/matmania.h b/src/mame/includes/matmania.h
index d5ed9e48255..f8912d258c4 100644
--- a/src/mame/includes/matmania.h
+++ b/src/mame/includes/matmania.h
@@ -59,6 +59,8 @@ public:
DECLARE_MACHINE_START(matmania);
DECLARE_MACHINE_START(maniach);
DECLARE_MACHINE_RESET(maniach);
+ UINT32 screen_update_matmania(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_maniach(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in machine/maniach.c -----------*/
@@ -80,6 +82,6 @@ DECLARE_READ8_HANDLER( maniach_mcu_status_r );
/*----------- defined in video/matmania.c -----------*/
-SCREEN_UPDATE_IND16( maniach );
-SCREEN_UPDATE_IND16( matmania );
+
+
diff --git a/src/mame/includes/mcatadv.h b/src/mame/includes/mcatadv.h
index 0aee1ae9e8e..7c6bc50d7aa 100644
--- a/src/mame/includes/mcatadv.h
+++ b/src/mame/includes/mcatadv.h
@@ -41,11 +41,13 @@ public:
TILE_GET_INFO_MEMBER(get_mcatadv_tile_info2);
virtual void machine_start();
virtual void video_start();
+ UINT32 screen_update_mcatadv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_mcatadv(screen_device &screen, bool state);
};
/*----------- defined in video/mcatadv.c -----------*/
-SCREEN_UPDATE_IND16( mcatadv );
-SCREEN_VBLANK( mcatadv );
+
+
diff --git a/src/mame/includes/mcr.h b/src/mame/includes/mcr.h
index 008c19926b6..e1bdc041a9b 100644
--- a/src/mame/includes/mcr.h
+++ b/src/mame/includes/mcr.h
@@ -100,6 +100,7 @@ public:
DECLARE_MACHINE_RESET(mcr);
DECLARE_VIDEO_START(mcr);
DECLARE_MACHINE_START(nflfoot);
+ UINT32 screen_update_mcr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -143,4 +144,4 @@ extern INT8 mcr12_sprite_xoffs_flip;
-SCREEN_UPDATE_IND16( mcr );
+
diff --git a/src/mame/includes/mcr3.h b/src/mame/includes/mcr3.h
index 4cf71a137c8..03bf8569136 100644
--- a/src/mame/includes/mcr3.h
+++ b/src/mame/includes/mcr3.h
@@ -63,6 +63,8 @@ public:
DECLARE_VIDEO_START(mcrmono);
DECLARE_VIDEO_START(spyhunt);
DECLARE_PALETTE_INIT(spyhunt);
+ UINT32 screen_update_mcr3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_spyhunt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -74,5 +76,5 @@ public:
-SCREEN_UPDATE_IND16( mcr3 );
-SCREEN_UPDATE_IND16( spyhunt );
+
+
diff --git a/src/mame/includes/mcr68.h b/src/mame/includes/mcr68.h
index f785b4e1c02..4d3de36a942 100644
--- a/src/mame/includes/mcr68.h
+++ b/src/mame/includes/mcr68.h
@@ -96,6 +96,8 @@ public:
DECLARE_MACHINE_START(mcr68);
DECLARE_MACHINE_RESET(mcr68);
DECLARE_VIDEO_START(mcr68);
+ UINT32 screen_update_zwackery(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_mcr68(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in machine/mcr68.c -----------*/
@@ -118,8 +120,8 @@ INTERRUPT_GEN( mcr68_interrupt );
-SCREEN_UPDATE_IND16( mcr68 );
-SCREEN_UPDATE_IND16( zwackery );
+
+
diff --git a/src/mame/includes/meadows.h b/src/mame/includes/meadows.h
index 4c5227f6ec3..39b7aebd4f3 100644
--- a/src/mame/includes/meadows.h
+++ b/src/mame/includes/meadows.h
@@ -45,6 +45,7 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_meadows(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -58,5 +59,5 @@ void meadows_sh_update(running_machine &machine);
/*----------- defined in video/meadows.c -----------*/
-SCREEN_UPDATE_IND16( meadows );
+
diff --git a/src/mame/includes/megadriv.h b/src/mame/includes/megadriv.h
index c7f1d51f658..a1339a5d7d7 100644
--- a/src/mame/includes/megadriv.h
+++ b/src/mame/includes/megadriv.h
@@ -274,7 +274,8 @@ public:
DECLARE_VIDEO_START(segac2_new);
DECLARE_MACHINE_START(segac2);
DECLARE_MACHINE_RESET(segac2);
-
+
+ UINT32 screen_update_segac2_new(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
class mplay_state : public md_base_state
@@ -313,6 +314,9 @@ public:
DECLARE_DRIVER_INIT(megaplay);
DECLARE_VIDEO_START(megplay);
DECLARE_MACHINE_RESET(megaplay);
+
+ UINT32 screen_update_megplay(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void screen_eof_megaplay(screen_device &screen, bool state);
};
class mtech_state : public md_base_state
@@ -348,6 +352,9 @@ public:
DECLARE_DRIVER_INIT(mt_slot);
DECLARE_VIDEO_START(mtnew);
DECLARE_MACHINE_RESET(mtnew);
+ UINT32 screen_update_mtnew(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void screen_eof_mtnew(screen_device &screen, bool state);
+ UINT32 screen_update_megatech_menu(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
struct megadriv_cart
diff --git a/src/mame/includes/megasys1.h b/src/mame/includes/megasys1.h
index d8106359d3c..dd3d115ab66 100644
--- a/src/mame/includes/megasys1.h
+++ b/src/mame/includes/megasys1.h
@@ -110,14 +110,16 @@ public:
DECLARE_VIDEO_START(megasys1);
DECLARE_PALETTE_INIT(megasys1);
DECLARE_MACHINE_RESET(megasys1_hachoo);
+ UINT32 screen_update_megasys1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_megasys1(screen_device &screen, bool state);
};
/*----------- defined in video/megasys1.c -----------*/
-SCREEN_UPDATE_IND16( megasys1 );
-SCREEN_VBLANK( megasys1 );
+
+
diff --git a/src/mame/includes/megazone.h b/src/mame/includes/megazone.h
index 78fb6dfdaf4..cf741772005 100644
--- a/src/mame/includes/megazone.h
+++ b/src/mame/includes/megazone.h
@@ -51,6 +51,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_megazone(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -60,4 +61,4 @@ public:
-SCREEN_UPDATE_IND16( megazone );
+
diff --git a/src/mame/includes/mermaid.h b/src/mame/includes/mermaid.h
index 2b2a0729639..ae137e6640a 100644
--- a/src/mame/includes/mermaid.h
+++ b/src/mame/includes/mermaid.h
@@ -77,6 +77,8 @@ public:
virtual void video_start();
virtual void palette_init();
DECLARE_PALETTE_INIT(rougien);
+ UINT32 screen_update_mermaid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_mermaid(screen_device &screen, bool state);
};
@@ -87,5 +89,5 @@ public:
-SCREEN_UPDATE_IND16( mermaid );
-SCREEN_VBLANK( mermaid );
+
+
diff --git a/src/mame/includes/metalmx.h b/src/mame/includes/metalmx.h
index 382c20ead1f..78e8bb60193 100644
--- a/src/mame/includes/metalmx.h
+++ b/src/mame/includes/metalmx.h
@@ -48,4 +48,5 @@ public:
DECLARE_DRIVER_INIT(metalmx);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_metalmx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/includes/metlclsh.h b/src/mame/includes/metlclsh.h
index 9494549d9ae..eefdc214e8e 100644
--- a/src/mame/includes/metlclsh.h
+++ b/src/mame/includes/metlclsh.h
@@ -49,6 +49,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_metlclsh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -56,4 +57,4 @@ public:
-SCREEN_UPDATE_IND16( metlclsh );
+
diff --git a/src/mame/includes/metro.h b/src/mame/includes/metro.h
index efb09d3ceb3..4e304340f56 100644
--- a/src/mame/includes/metro.h
+++ b/src/mame/includes/metro.h
@@ -161,6 +161,7 @@ public:
DECLARE_VIDEO_START(metro_i4300);
DECLARE_VIDEO_START(blzntrnd);
DECLARE_VIDEO_START(gstrik2);
+ UINT32 screen_update_metro(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -173,6 +174,6 @@ public:
-SCREEN_UPDATE_IND16( metro );
+
void metro_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const rectangle &cliprect);
diff --git a/src/mame/includes/mexico86.h b/src/mame/includes/mexico86.h
index ec3cafac569..87c0dcd1357 100644
--- a/src/mame/includes/mexico86.h
+++ b/src/mame/includes/mexico86.h
@@ -53,6 +53,8 @@ public:
DECLARE_READ8_MEMBER(kiki_ym2203_r);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_mexico86(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_kikikai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -65,5 +67,5 @@ INTERRUPT_GEN( mexico86_m68705_interrupt );
/*----------- defined in video/mexico86.c -----------*/
-SCREEN_UPDATE_IND16( mexico86 );
-SCREEN_UPDATE_IND16( kikikai );
+
+
diff --git a/src/mame/includes/midvunit.h b/src/mame/includes/midvunit.h
index 458c39e6105..f465f5a2d4b 100644
--- a/src/mame/includes/midvunit.h
+++ b/src/mame/includes/midvunit.h
@@ -119,6 +119,7 @@ public:
virtual void machine_reset();
virtual void video_start();
DECLARE_MACHINE_RESET(midvplus);
+ UINT32 screen_update_midvunit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -132,4 +133,4 @@ public:
-SCREEN_UPDATE_IND16( midvunit );
+
diff --git a/src/mame/includes/midzeus.h b/src/mame/includes/midzeus.h
index ae80c733f0a..d39b94deacc 100644
--- a/src/mame/includes/midzeus.h
+++ b/src/mame/includes/midzeus.h
@@ -56,19 +56,21 @@ public:
DECLARE_MACHINE_RESET(midzeus);
DECLARE_VIDEO_START(midzeus);
DECLARE_VIDEO_START(midzeus2);
+ UINT32 screen_update_midzeus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_midzeus2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/midzeus.c -----------*/
-SCREEN_UPDATE_IND16( midzeus );
+
/*----------- defined in video/midzeus2.c -----------*/
-SCREEN_UPDATE_RGB32( midzeus2 );
+
DECLARE_READ32_HANDLER( zeus2_r );
DECLARE_WRITE32_HANDLER( zeus2_w );
diff --git a/src/mame/includes/mikie.h b/src/mame/includes/mikie.h
index e43e2aebbaf..d0824ebddd0 100644
--- a/src/mame/includes/mikie.h
+++ b/src/mame/includes/mikie.h
@@ -43,6 +43,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_mikie(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -51,4 +52,4 @@ public:
-SCREEN_UPDATE_IND16( mikie );
+
diff --git a/src/mame/includes/mitchell.h b/src/mame/includes/mitchell.h
index ef776411831..e08fd4aa641 100644
--- a/src/mame/includes/mitchell.h
+++ b/src/mame/includes/mitchell.h
@@ -100,6 +100,7 @@ public:
DECLARE_MACHINE_START(mitchell);
DECLARE_MACHINE_RESET(mitchell);
DECLARE_VIDEO_START(pang);
+ UINT32 screen_update_pang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -109,4 +110,4 @@ public:
-SCREEN_UPDATE_IND16( pang );
+
diff --git a/src/mame/includes/mjkjidai.h b/src/mame/includes/mjkjidai.h
index 208fea9fb77..f6c88ef7a18 100644
--- a/src/mame/includes/mjkjidai.h
+++ b/src/mame/includes/mjkjidai.h
@@ -28,12 +28,13 @@ public:
DECLARE_WRITE8_MEMBER(adpcm_w);
TILE_GET_INFO_MEMBER(get_tile_info);
virtual void video_start();
+ UINT32 screen_update_mjkjidai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/mjkjidai.c -----------*/
-SCREEN_UPDATE_IND16( mjkjidai );
+
diff --git a/src/mame/includes/model1.h b/src/mame/includes/model1.h
index 7a109e0ffc8..6ad24802ce0 100644
--- a/src/mame/includes/model1.h
+++ b/src/mame/includes/model1.h
@@ -134,6 +134,8 @@ public:
DECLARE_MACHINE_RESET(model1);
DECLARE_VIDEO_START(model1);
DECLARE_MACHINE_RESET(model1_vr);
+ UINT32 screen_update_model1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void screen_eof_model1(screen_device &screen, bool state);
};
@@ -154,6 +156,6 @@ void model1_tgp_reset(running_machine &machine, int swa);
/*----------- defined in video/model1.c -----------*/
-SCREEN_UPDATE_RGB32(model1);
-SCREEN_VBLANK(model1);
+
+
diff --git a/src/mame/includes/model2.h b/src/mame/includes/model2.h
index d6dc3d45c57..a79d8e10890 100644
--- a/src/mame/includes/model2.h
+++ b/src/mame/includes/model2.h
@@ -162,12 +162,13 @@ public:
DECLARE_MACHINE_RESET(model2c);
DECLARE_MACHINE_RESET(model2_common);
DECLARE_MACHINE_RESET(model2_scsp);
+ UINT32 screen_update_model2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/model2.c -----------*/
-SCREEN_UPDATE_RGB32(model2);
+
void model2_3d_set_zclip( running_machine &machine, UINT8 clip );
diff --git a/src/mame/includes/model3.h b/src/mame/includes/model3.h
index 93511c44449..0a868f884bc 100644
--- a/src/mame/includes/model3.h
+++ b/src/mame/includes/model3.h
@@ -197,6 +197,7 @@ public:
DECLARE_MACHINE_RESET(model3_20);
DECLARE_MACHINE_START(model3_21);
DECLARE_MACHINE_RESET(model3_21);
+ UINT32 screen_update_model3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -217,7 +218,7 @@ void model3_tap_reset(running_machine &machine);
-SCREEN_UPDATE_IND16(model3);
+
void real3d_display_list_end(running_machine &machine);
void real3d_display_list1_dma(address_space &space, UINT32 src, UINT32 dst, int length, int byteswap);
diff --git a/src/mame/includes/momoko.h b/src/mame/includes/momoko.h
index 36a52861f40..bca3c728b46 100644
--- a/src/mame/includes/momoko.h
+++ b/src/mame/includes/momoko.h
@@ -45,10 +45,11 @@ public:
DECLARE_WRITE8_MEMBER(momoko_flipscreen_w);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_momoko(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/momoko.c -----------*/
-SCREEN_UPDATE_IND16( momoko );
+
diff --git a/src/mame/includes/moo.h b/src/mame/includes/moo.h
index 87b6e7e5d73..8478cee815b 100644
--- a/src/mame/includes/moo.h
+++ b/src/mame/includes/moo.h
@@ -53,6 +53,7 @@ public:
DECLARE_MACHINE_START(moo);
DECLARE_MACHINE_RESET(moo);
DECLARE_VIDEO_START(moo);
+ UINT32 screen_update_moo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -63,4 +64,4 @@ extern void moo_tile_callback(running_machine &machine, int layer, int *code, in
extern void moo_sprite_callback(running_machine &machine, int *code, int *color, int *priority_mask);
-SCREEN_UPDATE_RGB32(moo);
+
diff --git a/src/mame/includes/mosaic.h b/src/mame/includes/mosaic.h
index b7127c64855..0544a6d49f9 100644
--- a/src/mame/includes/mosaic.h
+++ b/src/mame/includes/mosaic.h
@@ -34,6 +34,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_mosaic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -41,4 +42,4 @@ public:
-SCREEN_UPDATE_IND16( mosaic );
+
diff --git a/src/mame/includes/mouser.h b/src/mame/includes/mouser.h
index 865941784a7..03876733b2e 100644
--- a/src/mame/includes/mouser.h
+++ b/src/mame/includes/mouser.h
@@ -35,10 +35,11 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void palette_init();
+ UINT32 screen_update_mouser(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/mouser.c -----------*/
-SCREEN_UPDATE_IND16( mouser );
+
diff --git a/src/mame/includes/mrdo.h b/src/mame/includes/mrdo.h
index e8a804f47c3..521cb213237 100644
--- a/src/mame/includes/mrdo.h
+++ b/src/mame/includes/mrdo.h
@@ -32,6 +32,7 @@ public:
TILE_GET_INFO_MEMBER(get_fg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_mrdo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -40,4 +41,4 @@ public:
-SCREEN_UPDATE_IND16( mrdo );
+
diff --git a/src/mame/includes/mrflea.h b/src/mame/includes/mrflea.h
index 12b934f448f..a7aa0c9274e 100644
--- a/src/mame/includes/mrflea.h
+++ b/src/mame/includes/mrflea.h
@@ -44,10 +44,11 @@ public:
DECLARE_WRITE8_MEMBER(mrflea_spriteram_w);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_mrflea(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/mrflea.c -----------*/
-SCREEN_UPDATE_IND16( mrflea );
+
diff --git a/src/mame/includes/mrjong.h b/src/mame/includes/mrjong.h
index 0f690203776..20d5ff2d8c1 100644
--- a/src/mame/includes/mrjong.h
+++ b/src/mame/includes/mrjong.h
@@ -25,6 +25,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_mrjong(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -33,4 +34,4 @@ public:
-SCREEN_UPDATE_IND16( mrjong );
+
diff --git a/src/mame/includes/ms32.h b/src/mame/includes/ms32.h
index 9a5e11510a3..f024bf895e5 100644
--- a/src/mame/includes/ms32.h
+++ b/src/mame/includes/ms32.h
@@ -87,6 +87,7 @@ public:
virtual void machine_reset();
virtual void video_start();
DECLARE_VIDEO_START(f1superb);
+ UINT32 screen_update_ms32(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -98,4 +99,4 @@ public:
-SCREEN_UPDATE_RGB32( ms32 );
+
diff --git a/src/mame/includes/msisaac.h b/src/mame/includes/msisaac.h
index 7777bc45e40..083c1445309 100644
--- a/src/mame/includes/msisaac.h
+++ b/src/mame/includes/msisaac.h
@@ -72,6 +72,7 @@ public:
virtual void machine_reset();
virtual void video_start();
DECLARE_MACHINE_RESET(ta7630);
+ UINT32 screen_update_msisaac(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -79,5 +80,5 @@ public:
-SCREEN_UPDATE_IND16( msisaac );
+
diff --git a/src/mame/includes/mugsmash.h b/src/mame/includes/mugsmash.h
index 66365f244d7..162f04397d5 100644
--- a/src/mame/includes/mugsmash.h
+++ b/src/mame/includes/mugsmash.h
@@ -30,11 +30,12 @@ public:
TILE_GET_INFO_MEMBER(get_mugsmash_tile_info2);
virtual void machine_start();
virtual void video_start();
+ UINT32 screen_update_mugsmash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/mugsmash.c -----------*/
-SCREEN_UPDATE_IND16( mugsmash );
+
diff --git a/src/mame/includes/munchmo.h b/src/mame/includes/munchmo.h
index 1a80270efe1..a89d68e9aef 100644
--- a/src/mame/includes/munchmo.h
+++ b/src/mame/includes/munchmo.h
@@ -46,6 +46,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_mnchmobl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -54,4 +55,4 @@ public:
-SCREEN_UPDATE_IND16( mnchmobl );
+
diff --git a/src/mame/includes/mustache.h b/src/mame/includes/mustache.h
index 272af74622d..e1bd0f7004f 100644
--- a/src/mame/includes/mustache.h
+++ b/src/mame/includes/mustache.h
@@ -19,11 +19,12 @@ public:
virtual void machine_start();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_mustache(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/mustache.c -----------*/
-SCREEN_UPDATE_IND16( mustache );
+
diff --git a/src/mame/includes/mw8080bw.h b/src/mame/includes/mw8080bw.h
index 7da148cb438..56a5e8306cb 100644
--- a/src/mame/includes/mw8080bw.h
+++ b/src/mame/includes/mw8080bw.h
@@ -139,6 +139,11 @@ public:
DECLARE_MACHINE_START(spcenctr);
DECLARE_MACHINE_START(phantom2);
DECLARE_MACHINE_START(invaders);
+ UINT32 screen_update_mw8080bw(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_spcenctr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_phantom2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_invaders(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void screen_eof_phantom2(screen_device &screen, bool state);
};
@@ -271,11 +276,11 @@ DECLARE_WRITE8_DEVICE_HANDLER( invad2ct_audio_4_w );
/*----------- defined in video/mw8080bw.c -----------*/
-SCREEN_UPDATE_RGB32( mw8080bw );
-SCREEN_UPDATE_RGB32( spcenctr );
-SCREEN_UPDATE_RGB32( phantom2 );
-SCREEN_VBLANK( phantom2 );
-SCREEN_UPDATE_RGB32( invaders );
+
+
+
+
+
diff --git a/src/mame/includes/mystston.h b/src/mame/includes/mystston.h
index c1c43040f78..c7a9e9f312b 100644
--- a/src/mame/includes/mystston.h
+++ b/src/mame/includes/mystston.h
@@ -46,6 +46,7 @@ public:
TILE_GET_INFO_MEMBER(get_fg_tile_info);
DECLARE_VIDEO_START(mystston);
DECLARE_VIDEO_RESET(mystston);
+ UINT32 screen_update_mystston(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/includes/mystwarr.h b/src/mame/includes/mystwarr.h
index 3ea0f031a8e..5111aeacd67 100644
--- a/src/mame/includes/mystwarr.h
+++ b/src/mame/includes/mystwarr.h
@@ -67,6 +67,10 @@ public:
DECLARE_VIDEO_START(gaiapols);
DECLARE_MACHINE_RESET(martchmp);
DECLARE_VIDEO_START(martchmp);
+ UINT32 screen_update_mystwarr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_metamrph(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_dadandrn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_martchmp(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -78,8 +82,8 @@ public:
-SCREEN_UPDATE_RGB32( dadandrn );
-SCREEN_UPDATE_RGB32( mystwarr );
-SCREEN_UPDATE_RGB32( metamrph );
-SCREEN_UPDATE_RGB32( martchmp );
+
+
+
+
diff --git a/src/mame/includes/n64.h b/src/mame/includes/n64.h
index c73b63b0a3e..3fd20db8fb3 100644
--- a/src/mame/includes/n64.h
+++ b/src/mame/includes/n64.h
@@ -23,6 +23,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_n64(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
/*----------- devices -----------*/
diff --git a/src/mame/includes/n8080.h b/src/mame/includes/n8080.h
index 8b670a66aae..d54cea50f0c 100644
--- a/src/mame/includes/n8080.h
+++ b/src/mame/includes/n8080.h
@@ -77,6 +77,10 @@ public:
DECLARE_MACHINE_RESET(helifire_sound);
DECLARE_MACHINE_START(n8080);
DECLARE_MACHINE_RESET(n8080);
+ UINT32 screen_update_spacefev(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_sheriff(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_helifire(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_helifire(screen_device &screen, bool state);
};
@@ -90,10 +94,10 @@ public:
-SCREEN_UPDATE_IND16( spacefev );
-SCREEN_UPDATE_IND16( sheriff );
-SCREEN_UPDATE_IND16( helifire );
-SCREEN_VBLANK( helifire );
+
+
+
+
void spacefev_start_red_cannon(running_machine &machine);
diff --git a/src/mame/includes/namcofl.h b/src/mame/includes/namcofl.h
index d03346d2813..9267a0918c0 100644
--- a/src/mame/includes/namcofl.h
+++ b/src/mame/includes/namcofl.h
@@ -57,11 +57,12 @@ public:
DECLARE_MACHINE_START(namcofl);
DECLARE_MACHINE_RESET(namcofl);
DECLARE_VIDEO_START(namcofl);
+ UINT32 screen_update_namcofl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/namcofl.c -----------*/
-SCREEN_UPDATE_IND16( namcofl );
+
diff --git a/src/mame/includes/namcona1.h b/src/mame/includes/namcona1.h
index 3a57fdd7fa6..289bbb5077e 100644
--- a/src/mame/includes/namcona1.h
+++ b/src/mame/includes/namcona1.h
@@ -110,6 +110,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_namcona1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/includes/namconb1.h b/src/mame/includes/namconb1.h
index 360171ffe53..11b03b3edae 100644
--- a/src/mame/includes/namconb1.h
+++ b/src/mame/includes/namconb1.h
@@ -75,13 +75,15 @@ public:
DECLARE_MACHINE_START(namconb);
DECLARE_VIDEO_START(namconb1);
DECLARE_VIDEO_START(namconb2);
+ UINT32 screen_update_namconb1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_namconb2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/namconb1.c -----------*/
-SCREEN_UPDATE_IND16( namconb1 );
-SCREEN_UPDATE_IND16( namconb2 );
+
+
diff --git a/src/mame/includes/namcos1.h b/src/mame/includes/namcos1.h
index 63b14669bc8..d0eac79f5ae 100644
--- a/src/mame/includes/namcos1.h
+++ b/src/mame/includes/namcos1.h
@@ -93,6 +93,8 @@ public:
TILE_GET_INFO_MEMBER(fg_get_info5);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_namcos1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_namcos1(screen_device &screen, bool state);
};
@@ -118,5 +120,5 @@ DECLARE_READ8_HANDLER( namcos1_spriteram_r );
DECLARE_WRITE8_HANDLER( namcos1_spriteram_w );
-SCREEN_UPDATE_IND16( namcos1 );
-SCREEN_VBLANK( namcos1 );
+
+
diff --git a/src/mame/includes/namcos21.h b/src/mame/includes/namcos21.h
index 252b985e0d7..4c20c29d608 100644
--- a/src/mame/includes/namcos21.h
+++ b/src/mame/includes/namcos21.h
@@ -154,6 +154,7 @@ public:
DECLARE_DRIVER_INIT(aircomb);
DECLARE_MACHINE_START(namcos21);
DECLARE_VIDEO_START(namcos21);
+ UINT32 screen_update_namcos21(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/includes/namcos22.h b/src/mame/includes/namcos22.h
index 8b52c66025c..f4db51d2ed0 100644
--- a/src/mame/includes/namcos22.h
+++ b/src/mame/includes/namcos22.h
@@ -254,16 +254,18 @@ public:
DECLARE_VIDEO_START(namcos22s);
DECLARE_VIDEO_START(namcos22);
DECLARE_VIDEO_START(common);
+ UINT32 screen_update_namcos22s(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_namcos22(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/namcos22.c -----------*/
-SCREEN_UPDATE_RGB32( namcos22 );
-SCREEN_UPDATE_RGB32( namcos22s );
+
+
void namcos22_draw_direct_poly( running_machine &machine, const UINT16 *pSource );
UINT32 namcos22_point_rom_r( running_machine &machine, offs_t offs );
diff --git a/src/mame/includes/namcos86.h b/src/mame/includes/namcos86.h
index e0445915ced..656215bc047 100644
--- a/src/mame/includes/namcos86.h
+++ b/src/mame/includes/namcos86.h
@@ -52,6 +52,8 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_namcos86(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_namcos86(screen_device &screen, bool state);
};
@@ -59,6 +61,6 @@ public:
-SCREEN_UPDATE_IND16( namcos86 );
-SCREEN_VBLANK( namcos86 );
+
+
diff --git a/src/mame/includes/naughtyb.h b/src/mame/includes/naughtyb.h
index f079e33db0b..ff5fcd286ec 100644
--- a/src/mame/includes/naughtyb.h
+++ b/src/mame/includes/naughtyb.h
@@ -31,6 +31,7 @@ public:
DECLARE_DRIVER_INIT(popflame);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_naughtyb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -39,4 +40,4 @@ public:
-SCREEN_UPDATE_IND16( naughtyb );
+
diff --git a/src/mame/includes/nbmj8688.h b/src/mame/includes/nbmj8688.h
index ca7b964195e..d403b224752 100644
--- a/src/mame/includes/nbmj8688.h
+++ b/src/mame/includes/nbmj8688.h
@@ -87,6 +87,9 @@ public:
DECLARE_VIDEO_START(mbmj8688_hybrid_16bit);
DECLARE_VIDEO_START(mbmj8688_hybrid_12bit);
DECLARE_VIDEO_START(mbmj8688_pure_16bit);
+ UINT32 screen_update_mbmj8688(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_mbmj8688_lcd0(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_mbmj8688_lcd1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -95,9 +98,9 @@ public:
-SCREEN_UPDATE_IND16( mbmj8688 );
-SCREEN_UPDATE_IND16( mbmj8688_lcd0 );
-SCREEN_UPDATE_IND16( mbmj8688_lcd1 );
+
+
+
diff --git a/src/mame/includes/nbmj8891.h b/src/mame/includes/nbmj8891.h
index 765fbd89ec0..42aac38df32 100644
--- a/src/mame/includes/nbmj8891.h
+++ b/src/mame/includes/nbmj8891.h
@@ -73,12 +73,13 @@ public:
DECLARE_DRIVER_INIT(maiko);
virtual void video_start();
DECLARE_VIDEO_START(nbmj8891_1layer);
+ UINT32 screen_update_nbmj8891(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/nbmj8891.c -----------*/
-SCREEN_UPDATE_IND16( nbmj8891 );
+
diff --git a/src/mame/includes/nbmj8900.h b/src/mame/includes/nbmj8900.h
index 7dfe9e09676..0227bebfa76 100644
--- a/src/mame/includes/nbmj8900.h
+++ b/src/mame/includes/nbmj8900.h
@@ -44,11 +44,12 @@ public:
DECLARE_DRIVER_INIT(togenkyo);
DECLARE_DRIVER_INIT(ohpaipee);
virtual void video_start();
+ UINT32 screen_update_nbmj8900(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/nbmj8900.c -----------*/
-SCREEN_UPDATE_IND16( nbmj8900 );
+
diff --git a/src/mame/includes/nbmj8991.h b/src/mame/includes/nbmj8991.h
index 60e430ae221..c4f01981abf 100644
--- a/src/mame/includes/nbmj8991.h
+++ b/src/mame/includes/nbmj8991.h
@@ -51,12 +51,14 @@ public:
DECLARE_DRIVER_INIT(qmhayaku);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_nbmj8991_type1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_nbmj8991_type2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/nbmj8991.c -----------*/
-SCREEN_UPDATE_IND16( nbmj8991_type1 );
-SCREEN_UPDATE_IND16( nbmj8991_type2 );
+
+
diff --git a/src/mame/includes/nbmj9195.h b/src/mame/includes/nbmj9195.h
index e18c10d259f..1bbbc47df14 100644
--- a/src/mame/includes/nbmj9195.h
+++ b/src/mame/includes/nbmj9195.h
@@ -110,12 +110,13 @@ public:
virtual void video_start();
DECLARE_VIDEO_START(nbmj9195_1layer);
DECLARE_VIDEO_START(nbmj9195_nb22090);
+ UINT32 screen_update_nbmj9195(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/nbmj9195.c -----------*/
-SCREEN_UPDATE_IND16( nbmj9195 );
+
diff --git a/src/mame/includes/nemesis.h b/src/mame/includes/nemesis.h
index d99d8c7e58c..9c85f6c6b0a 100644
--- a/src/mame/includes/nemesis.h
+++ b/src/mame/includes/nemesis.h
@@ -84,6 +84,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_nemesis(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -92,4 +93,4 @@ public:
-SCREEN_UPDATE_IND16( nemesis );
+
diff --git a/src/mame/includes/neogeo.h b/src/mame/includes/neogeo.h
index 731d5847e33..7ca5dae0df9 100644
--- a/src/mame/includes/neogeo.h
+++ b/src/mame/includes/neogeo.h
@@ -207,6 +207,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void video_reset();
+ UINT32 screen_update_neogeo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -308,7 +309,7 @@ void matrimbl_decrypt(running_machine &machine);
-SCREEN_UPDATE_RGB32( neogeo );
+
void neogeo_set_palette_bank(running_machine &machine, UINT8 data);
diff --git a/src/mame/includes/news.h b/src/mame/includes/news.h
index 234753e5dad..eac5e30f269 100644
--- a/src/mame/includes/news.h
+++ b/src/mame/includes/news.h
@@ -24,6 +24,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_news(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -31,4 +32,4 @@ public:
-SCREEN_UPDATE_IND16( news );
+
diff --git a/src/mame/includes/ninjakd2.h b/src/mame/includes/ninjakd2.h
index 202e4fce064..ce95f779a2b 100644
--- a/src/mame/includes/ninjakd2.h
+++ b/src/mame/includes/ninjakd2.h
@@ -72,6 +72,10 @@ public:
DECLARE_VIDEO_START(robokid);
DECLARE_MACHINE_RESET(omegaf);
DECLARE_VIDEO_START(omegaf);
+ UINT32 screen_update_ninjakd2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_robokid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_omegaf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_ninjakd2(screen_device &screen, bool state);
};
diff --git a/src/mame/includes/ninjaw.h b/src/mame/includes/ninjaw.h
index 9bdc574d5dc..383654d3739 100644
--- a/src/mame/includes/ninjaw.h
+++ b/src/mame/includes/ninjaw.h
@@ -43,12 +43,15 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_ninjaw_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_ninjaw_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_ninjaw_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/ninjaw.c -----------*/
-SCREEN_UPDATE_IND16( ninjaw_left );
-SCREEN_UPDATE_IND16( ninjaw_middle );
-SCREEN_UPDATE_IND16( ninjaw_right );
+
+
+
diff --git a/src/mame/includes/nitedrvr.h b/src/mame/includes/nitedrvr.h
index e1054f41872..378a853f0e3 100644
--- a/src/mame/includes/nitedrvr.h
+++ b/src/mame/includes/nitedrvr.h
@@ -56,6 +56,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_nitedrvr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -77,4 +78,4 @@ DISCRETE_SOUND_EXTERN( nitedrvr );
-SCREEN_UPDATE_IND16( nitedrvr );
+
diff --git a/src/mame/includes/niyanpai.h b/src/mame/includes/niyanpai.h
index d2df48f8008..ba0bbe2c4c9 100644
--- a/src/mame/includes/niyanpai.h
+++ b/src/mame/includes/niyanpai.h
@@ -79,12 +79,13 @@ public:
DECLARE_DRIVER_INIT(niyanpai);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_niyanpai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/niyanpai.c -----------*/
-SCREEN_UPDATE_IND16( niyanpai );
+
diff --git a/src/mame/includes/nmk16.h b/src/mame/includes/nmk16.h
index 79ae1d6677b..92cae50ff1c 100644
--- a/src/mame/includes/nmk16.h
+++ b/src/mame/includes/nmk16.h
@@ -127,6 +127,21 @@ public:
DECLARE_VIDEO_START(afega);
DECLARE_VIDEO_START(firehawk);
DECLARE_VIDEO_START(grdnstrm);
+ UINT32 screen_update_tharrier(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_manybloc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_macross(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_bioship(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_strahl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_gunnail(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_tdragon2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_bjtwin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_afega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_firehawk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_redhawki(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_redhawkb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_bubl2000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_nmk(screen_device &screen, bool state);
+ void screen_eof_strahl(screen_device &screen, bool state);
};
@@ -141,22 +156,22 @@ public:
-SCREEN_UPDATE_IND16( macross );
-SCREEN_UPDATE_IND16( manybloc );
-SCREEN_UPDATE_IND16( tharrier );
-SCREEN_UPDATE_IND16( tdragon2 );
-SCREEN_UPDATE_IND16( gunnail );
-SCREEN_UPDATE_IND16( bioship );
-SCREEN_UPDATE_IND16( strahl );
-SCREEN_UPDATE_IND16( bjtwin );
-SCREEN_VBLANK( nmk );
-SCREEN_VBLANK( strahl );
-SCREEN_UPDATE_IND16( afega );
-SCREEN_UPDATE_IND16( redhawkb );
-SCREEN_UPDATE_IND16(redhawki );
-SCREEN_UPDATE_IND16( bubl2000 );
-SCREEN_UPDATE_IND16( firehawk );
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/mame/includes/norautp.h b/src/mame/includes/norautp.h
index bebc4616313..5237ad1edc3 100644
--- a/src/mame/includes/norautp.h
+++ b/src/mame/includes/norautp.h
@@ -27,6 +27,7 @@ public:
DECLARE_DRIVER_INIT(deb);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_norautp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/includes/nova2001.h b/src/mame/includes/nova2001.h
index 2ef3c84b52e..b8889ab1cf4 100644
--- a/src/mame/includes/nova2001.h
+++ b/src/mame/includes/nova2001.h
@@ -40,6 +40,10 @@ public:
DECLARE_VIDEO_START(ninjakun);
DECLARE_VIDEO_START(pkunwar);
DECLARE_VIDEO_START(raiders5);
+ UINT32 screen_update_nova2001(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_ninjakun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_pkunwar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_raiders5(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/includes/nycaptor.h b/src/mame/includes/nycaptor.h
index 8327792f3d9..1254f7fe713 100644
--- a/src/mame/includes/nycaptor.h
+++ b/src/mame/includes/nycaptor.h
@@ -103,6 +103,7 @@ public:
virtual void machine_reset();
virtual void video_start();
DECLARE_MACHINE_RESET(ta7630);
+ UINT32 screen_update_nycaptor(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -116,4 +117,4 @@ public:
-SCREEN_UPDATE_IND16( nycaptor );
+
diff --git a/src/mame/includes/offtwall.h b/src/mame/includes/offtwall.h
index 0770c479ac9..aa373463d08 100644
--- a/src/mame/includes/offtwall.h
+++ b/src/mame/includes/offtwall.h
@@ -33,10 +33,11 @@ public:
DECLARE_MACHINE_START(offtwall);
DECLARE_MACHINE_RESET(offtwall);
DECLARE_VIDEO_START(offtwall);
+ UINT32 screen_update_offtwall(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/offtwall.c -----------*/
-SCREEN_UPDATE_IND16( offtwall );
+
diff --git a/src/mame/includes/ohmygod.h b/src/mame/includes/ohmygod.h
index 9c1341c97c0..31d9697f575 100644
--- a/src/mame/includes/ohmygod.h
+++ b/src/mame/includes/ohmygod.h
@@ -37,6 +37,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_ohmygod(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -44,4 +45,4 @@ public:
-SCREEN_UPDATE_IND16( ohmygod );
+
diff --git a/src/mame/includes/ojankohs.h b/src/mame/includes/ojankohs.h
index 51b3bf3f8df..6f3e4cbd0f0 100644
--- a/src/mame/includes/ojankohs.h
+++ b/src/mame/includes/ojankohs.h
@@ -70,6 +70,8 @@ public:
DECLARE_MACHINE_START(ojankoc);
DECLARE_VIDEO_START(ojankoc);
DECLARE_MACHINE_START(common);
+ UINT32 screen_update_ojankohs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_ojankoc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -82,8 +84,8 @@ public:
-SCREEN_UPDATE_IND16( ojankohs );
-SCREEN_UPDATE_IND16( ojankoc );
+
+
void ojankoc_flipscreen(address_space &space, int data);
diff --git a/src/mame/includes/oneshot.h b/src/mame/includes/oneshot.h
index 70e4004147b..680bfe95beb 100644
--- a/src/mame/includes/oneshot.h
+++ b/src/mame/includes/oneshot.h
@@ -49,11 +49,13 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_oneshot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_maddonna(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/oneshot.c -----------*/
-SCREEN_UPDATE_IND16( oneshot );
-SCREEN_UPDATE_IND16( maddonna );
+
+
diff --git a/src/mame/includes/opwolf.h b/src/mame/includes/opwolf.h
index 7e55ecf67cf..9345d87b757 100644
--- a/src/mame/includes/opwolf.h
+++ b/src/mame/includes/opwolf.h
@@ -72,6 +72,7 @@ public:
DECLARE_DRIVER_INIT(opwolfb);
virtual void machine_start();
DECLARE_MACHINE_RESET(opwolf);
+ UINT32 screen_update_opwolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -84,4 +85,4 @@ void opwolf_cchip_init(running_machine &machine);
/*----------- defined in video/opwolf.c -----------*/
-SCREEN_UPDATE_IND16( opwolf );
+
diff --git a/src/mame/includes/orbit.h b/src/mame/includes/orbit.h
index 152ea32f7f2..5fc00935ab9 100644
--- a/src/mame/includes/orbit.h
+++ b/src/mame/includes/orbit.h
@@ -43,6 +43,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_orbit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -58,5 +59,5 @@ DISCRETE_SOUND_EXTERN( orbit );
/*----------- defined in video/orbit.c -----------*/
-SCREEN_UPDATE_IND16( orbit );
+
diff --git a/src/mame/includes/othldrby.h b/src/mame/includes/othldrby.h
index bdbdefd3ee7..1fce1a17a08 100644
--- a/src/mame/includes/othldrby.h
+++ b/src/mame/includes/othldrby.h
@@ -41,6 +41,8 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_othldrby(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_othldrby(screen_device &screen, bool state);
};
@@ -48,5 +50,5 @@ public:
-SCREEN_VBLANK( othldrby );
-SCREEN_UPDATE_IND16( othldrby );
+
+
diff --git a/src/mame/includes/othunder.h b/src/mame/includes/othunder.h
index 717dc6e8269..ec5bbffb24e 100644
--- a/src/mame/includes/othunder.h
+++ b/src/mame/includes/othunder.h
@@ -62,10 +62,11 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_othunder(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/othunder.c -----------*/
-SCREEN_UPDATE_IND16( othunder );
+
diff --git a/src/mame/includes/overdriv.h b/src/mame/includes/overdriv.h
index ef28ac6c9bf..df2f74f58ba 100644
--- a/src/mame/includes/overdriv.h
+++ b/src/mame/includes/overdriv.h
@@ -42,6 +42,7 @@ public:
DECLARE_READ8_MEMBER(overdriv_2_sound_r);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_overdriv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/overdriv.c -----------*/
@@ -50,4 +51,4 @@ extern void overdriv_sprite_callback(running_machine &machine, int *code,int *co
extern void overdriv_zoom_callback_0(running_machine &machine, int *code,int *color,int *flags);
extern void overdriv_zoom_callback_1(running_machine &machine, int *code,int *color,int *flags);
-SCREEN_UPDATE_IND16( overdriv );
+
diff --git a/src/mame/includes/pacland.h b/src/mame/includes/pacland.h
index 20f7fef81c9..a13c62d590c 100644
--- a/src/mame/includes/pacland.h
+++ b/src/mame/includes/pacland.h
@@ -37,6 +37,7 @@ public:
TILE_GET_INFO_MEMBER(get_fg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_pacland(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -45,4 +46,4 @@ public:
-SCREEN_UPDATE_IND16( pacland );
+
diff --git a/src/mame/includes/pacman.h b/src/mame/includes/pacman.h
index c3ed83749f2..2cd71b9e07c 100644
--- a/src/mame/includes/pacman.h
+++ b/src/mame/includes/pacman.h
@@ -134,6 +134,8 @@ public:
DECLARE_MACHINE_RESET(superabc);
DECLARE_VIDEO_START(pengo);
DECLARE_VIDEO_START(jrpacman);
+ UINT32 screen_update_pacman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_s2650games(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -141,12 +143,12 @@ public:
-SCREEN_UPDATE_IND16( pacman );
-SCREEN_UPDATE_IND16( s2650games );
+
+
diff --git a/src/mame/includes/pandoras.h b/src/mame/includes/pandoras.h
index 080e1383b3f..eb5e1685c9b 100644
--- a/src/mame/includes/pandoras.h
+++ b/src/mame/includes/pandoras.h
@@ -50,6 +50,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_pandoras(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -59,5 +60,5 @@ public:
-SCREEN_UPDATE_IND16( pandoras );
+
diff --git a/src/mame/includes/paradise.h b/src/mame/includes/paradise.h
index 25c4b75b45c..15ef9675b30 100644
--- a/src/mame/includes/paradise.h
+++ b/src/mame/includes/paradise.h
@@ -51,6 +51,9 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_paradise(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_torus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_madball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/paradise.c -----------*/
@@ -60,6 +63,6 @@ public:
-SCREEN_UPDATE_IND16( paradise );
-SCREEN_UPDATE_IND16( torus );
-SCREEN_UPDATE_IND16( madball );
+
+
+
diff --git a/src/mame/includes/parodius.h b/src/mame/includes/parodius.h
index eab4542bf7c..89e48be9a05 100644
--- a/src/mame/includes/parodius.h
+++ b/src/mame/includes/parodius.h
@@ -42,6 +42,7 @@ public:
DECLARE_READ8_MEMBER(parodius_sound_r);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_parodius(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/parodius.c -----------*/
@@ -49,4 +50,4 @@ public:
extern void parodius_tile_callback(running_machine &machine, int layer,int bank,int *code,int *color,int *flags,int *priority);
extern void parodius_sprite_callback(running_machine &machine, int *code,int *color,int *priority_mask);
-SCREEN_UPDATE_IND16( parodius );
+
diff --git a/src/mame/includes/pass.h b/src/mame/includes/pass.h
index 2c6ed102c2a..42ca7b4bbad 100644
--- a/src/mame/includes/pass.h
+++ b/src/mame/includes/pass.h
@@ -16,6 +16,7 @@ public:
TILE_GET_INFO_MEMBER(get_pass_bg_tile_info);
TILE_GET_INFO_MEMBER(get_pass_fg_tile_info);
virtual void video_start();
+ UINT32 screen_update_pass(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -23,4 +24,4 @@ public:
-SCREEN_UPDATE_IND16( pass );
+
diff --git a/src/mame/includes/pastelg.h b/src/mame/includes/pastelg.h
index 4dd243e39ba..759690aa087 100644
--- a/src/mame/includes/pastelg.h
+++ b/src/mame/includes/pastelg.h
@@ -34,13 +34,14 @@ public:
DECLARE_DRIVER_INIT(pastelg);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_pastelg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/pastelg.c -----------*/
-SCREEN_UPDATE_IND16( pastelg );
+
diff --git a/src/mame/includes/pbaction.h b/src/mame/includes/pbaction.h
index ed769309ecf..7d5c93a2242 100644
--- a/src/mame/includes/pbaction.h
+++ b/src/mame/includes/pbaction.h
@@ -51,6 +51,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_pbaction(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/includes/pcktgal.h b/src/mame/includes/pcktgal.h
index 0482b9d3fb7..8864998d53c 100644
--- a/src/mame/includes/pcktgal.h
+++ b/src/mame/includes/pcktgal.h
@@ -17,6 +17,8 @@ public:
DECLARE_DRIVER_INIT(deco222);
DECLARE_DRIVER_INIT(graphics);
virtual void palette_init();
+ UINT32 screen_update_pcktgal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_pcktgalb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -24,5 +26,5 @@ public:
-SCREEN_UPDATE_IND16( pcktgal );
-SCREEN_UPDATE_IND16( pcktgalb );
+
+
diff --git a/src/mame/includes/pgm.h b/src/mame/includes/pgm.h
index dc0dab72abb..377c3fab332 100644
--- a/src/mame/includes/pgm.h
+++ b/src/mame/includes/pgm.h
@@ -114,6 +114,8 @@ public:
DECLARE_VIDEO_START(pgm);
DECLARE_MACHINE_START(pgm);
DECLARE_MACHINE_RESET(pgm);
+ UINT32 screen_update_pgm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_pgm(screen_device &screen, bool state);
};
@@ -429,5 +431,5 @@ INPUT_PORTS_EXTERN( olds );
-SCREEN_VBLANK( pgm );
-SCREEN_UPDATE_IND16( pgm );
+
+
diff --git a/src/mame/includes/phoenix.h b/src/mame/includes/phoenix.h
index f870b371934..4cf675a4115 100644
--- a/src/mame/includes/phoenix.h
+++ b/src/mame/includes/phoenix.h
@@ -35,6 +35,7 @@ public:
DECLARE_PALETTE_INIT(phoenix);
DECLARE_PALETTE_INIT(survival);
DECLARE_PALETTE_INIT(pleiads);
+ UINT32 screen_update_phoenix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -89,7 +90,7 @@ extern const device_type PHOENIX;
-SCREEN_UPDATE_IND16( phoenix );
+
DECLARE_READ8_DEVICE_HANDLER( survival_protection_r );
diff --git a/src/mame/includes/pingpong.h b/src/mame/includes/pingpong.h
index 02733b7c414..ec649c0afe1 100644
--- a/src/mame/includes/pingpong.h
+++ b/src/mame/includes/pingpong.h
@@ -26,6 +26,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_pingpong(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -34,4 +35,4 @@ public:
-SCREEN_UPDATE_IND16( pingpong );
+
diff --git a/src/mame/includes/pirates.h b/src/mame/includes/pirates.h
index c938b3d581e..c18b8cd61b8 100644
--- a/src/mame/includes/pirates.h
+++ b/src/mame/includes/pirates.h
@@ -29,6 +29,7 @@ public:
TILE_GET_INFO_MEMBER(get_fg_tile_info);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
+ UINT32 screen_update_pirates(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -36,4 +37,4 @@ public:
-SCREEN_UPDATE_IND16( pirates );
+
diff --git a/src/mame/includes/pitnrun.h b/src/mame/includes/pitnrun.h
index 3996bdbba42..dd79eedb8ae 100644
--- a/src/mame/includes/pitnrun.h
+++ b/src/mame/includes/pitnrun.h
@@ -51,6 +51,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_pitnrun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -67,4 +68,4 @@ public:
-SCREEN_UPDATE_IND16(pitnrun);
+
diff --git a/src/mame/includes/pktgaldx.h b/src/mame/includes/pktgaldx.h
index b463e8e54dc..ce6f4539f55 100644
--- a/src/mame/includes/pktgaldx.h
+++ b/src/mame/includes/pktgaldx.h
@@ -32,11 +32,13 @@ public:
DECLARE_WRITE16_MEMBER(pktgaldx_oki_bank_w);
DECLARE_DRIVER_INIT(pktgaldx);
virtual void machine_start();
+ UINT32 screen_update_pktgaldx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_pktgaldb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/pktgaldx.c -----------*/
-SCREEN_UPDATE_IND16( pktgaldx );
-SCREEN_UPDATE_IND16( pktgaldb );
+
+
diff --git a/src/mame/includes/playch10.h b/src/mame/includes/playch10.h
index 14633125296..5c8a368de7e 100644
--- a/src/mame/includes/playch10.h
+++ b/src/mame/includes/playch10.h
@@ -114,6 +114,9 @@ public:
virtual void palette_init();
DECLARE_MACHINE_START(playch10_hboard);
DECLARE_VIDEO_START(playch10_hboard);
+ UINT32 screen_update_playch10_top(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_playch10_bottom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_playch10_single(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -133,5 +136,5 @@ extern const ppu2c0x_interface playch10_ppu_interface_hboard;
-SCREEN_UPDATE_IND16( playch10_top );
-SCREEN_UPDATE_IND16( playch10_bottom );
+
+
diff --git a/src/mame/includes/playmark.h b/src/mame/includes/playmark.h
index bce16c9475e..db2cf0e25e1 100644
--- a/src/mame/includes/playmark.h
+++ b/src/mame/includes/playmark.h
@@ -99,6 +99,12 @@ public:
DECLARE_MACHINE_START(powerbal);
DECLARE_MACHINE_RESET(powerbal);
DECLARE_VIDEO_START(powerbal);
+ UINT32 screen_update_bigtwin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_bigtwinb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_wbeachvl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_excelsr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_hrdtimes(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_powerbal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/playmark.c -----------*/
@@ -111,8 +117,8 @@ public:
-SCREEN_UPDATE_IND16( bigtwin );
-SCREEN_UPDATE_IND16( bigtwinb );
-SCREEN_UPDATE_IND16( wbeachvl );
-SCREEN_UPDATE_IND16( excelsr );
-SCREEN_UPDATE_IND16( hrdtimes );
+
+
+
+
+
diff --git a/src/mame/includes/plygonet.h b/src/mame/includes/plygonet.h
index 85eb60468dd..798428be90d 100644
--- a/src/mame/includes/plygonet.h
+++ b/src/mame/includes/plygonet.h
@@ -72,10 +72,11 @@ public:
TILEMAP_MAPPER_MEMBER(plygonet_scan_cols);
virtual void machine_start();
virtual void video_start();
+ UINT32 screen_update_polygonet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/plygonet.c -----------*/
-SCREEN_UPDATE_IND16( polygonet );
+
diff --git a/src/mame/includes/pokechmp.h b/src/mame/includes/pokechmp.h
index 5fbf747cec6..94cc973b83e 100644
--- a/src/mame/includes/pokechmp.h
+++ b/src/mame/includes/pokechmp.h
@@ -17,6 +17,7 @@ public:
DECLARE_DRIVER_INIT(pokechmp);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
+ UINT32 screen_update_pokechmp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -24,4 +25,4 @@ public:
-SCREEN_UPDATE_IND16( pokechmp );
+
diff --git a/src/mame/includes/polepos.h b/src/mame/includes/polepos.h
index da97e8d11bb..fccf1f0e903 100644
--- a/src/mame/includes/polepos.h
+++ b/src/mame/includes/polepos.h
@@ -79,6 +79,7 @@ public:
DECLARE_MACHINE_RESET(polepos);
DECLARE_VIDEO_START(polepos);
DECLARE_PALETTE_INIT(polepos);
+ UINT32 screen_update_polepos(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -119,6 +120,6 @@ DISCRETE_SOUND_EXTERN( polepos );
-SCREEN_UPDATE_IND16( polepos );
+
diff --git a/src/mame/includes/policetr.h b/src/mame/includes/policetr.h
index 93daebe8a3d..068c02f5a23 100644
--- a/src/mame/includes/policetr.h
+++ b/src/mame/includes/policetr.h
@@ -46,6 +46,7 @@ public:
DECLARE_DRIVER_INIT(sshooter);
DECLARE_DRIVER_INIT(plctr13b);
virtual void video_start();
+ UINT32 screen_update_policetr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -54,4 +55,4 @@ public:
-SCREEN_UPDATE_IND16( policetr );
+
diff --git a/src/mame/includes/polyplay.h b/src/mame/includes/polyplay.h
index d8e303e9c47..77e9e0d2d42 100644
--- a/src/mame/includes/polyplay.h
+++ b/src/mame/includes/polyplay.h
@@ -32,6 +32,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_polyplay(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -48,4 +49,4 @@ SAMPLES_START( polyplay_sh_start );
-SCREEN_UPDATE_IND16( polyplay );
+
diff --git a/src/mame/includes/poolshrk.h b/src/mame/includes/poolshrk.h
index 4a5702eef5e..869d15b6102 100644
--- a/src/mame/includes/poolshrk.h
+++ b/src/mame/includes/poolshrk.h
@@ -31,6 +31,7 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_poolshrk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -47,5 +48,5 @@ DISCRETE_SOUND_EXTERN( poolshrk );
/*----------- defined in video/poolshrk.c -----------*/
-SCREEN_UPDATE_IND16( poolshrk );
+
diff --git a/src/mame/includes/pooyan.h b/src/mame/includes/pooyan.h
index 62c7edd0bc9..a954ab7f23e 100644
--- a/src/mame/includes/pooyan.h
+++ b/src/mame/includes/pooyan.h
@@ -32,6 +32,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_pooyan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -40,4 +41,4 @@ public:
-SCREEN_UPDATE_IND16( pooyan );
+
diff --git a/src/mame/includes/popeye.h b/src/mame/includes/popeye.h
index 4a7d5be62ce..31a541f815c 100644
--- a/src/mame/includes/popeye.h
+++ b/src/mame/includes/popeye.h
@@ -40,6 +40,7 @@ public:
virtual void palette_init();
DECLARE_VIDEO_START(popeye);
DECLARE_PALETTE_INIT(popeyebl);
+ UINT32 screen_update_popeye(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -50,4 +51,4 @@ public:
-SCREEN_UPDATE_IND16( popeye );
+
diff --git a/src/mame/includes/popper.h b/src/mame/includes/popper.h
index 08c888d5231..ad2573205df 100644
--- a/src/mame/includes/popper.h
+++ b/src/mame/includes/popper.h
@@ -54,6 +54,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_popper(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -62,5 +63,5 @@ public:
-SCREEN_UPDATE_IND16( popper );
+
diff --git a/src/mame/includes/portrait.h b/src/mame/includes/portrait.h
index 0e9612dc006..622e192fa92 100644
--- a/src/mame/includes/portrait.h
+++ b/src/mame/includes/portrait.h
@@ -22,6 +22,7 @@ public:
TILE_GET_INFO_MEMBER(get_fg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_portrait(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -29,4 +30,4 @@ public:
-SCREEN_UPDATE_IND16( portrait );
+
diff --git a/src/mame/includes/powerins.h b/src/mame/includes/powerins.h
index 8b7efe035d3..ff549682f42 100644
--- a/src/mame/includes/powerins.h
+++ b/src/mame/includes/powerins.h
@@ -30,6 +30,7 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info_1);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_powerins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -39,4 +40,4 @@ public:
-SCREEN_UPDATE_IND16( powerins );
+
diff --git a/src/mame/includes/prehisle.h b/src/mame/includes/prehisle.h
index 841ef34ccb6..6d789652bfd 100644
--- a/src/mame/includes/prehisle.h
+++ b/src/mame/includes/prehisle.h
@@ -27,6 +27,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
virtual void video_start();
+ UINT32 screen_update_prehisle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -34,4 +35,4 @@ public:
-SCREEN_UPDATE_IND16( prehisle );
+
diff --git a/src/mame/includes/psikyo.h b/src/mame/includes/psikyo.h
index 47894006c24..3c4f3bdab9a 100644
--- a/src/mame/includes/psikyo.h
+++ b/src/mame/includes/psikyo.h
@@ -89,6 +89,9 @@ public:
virtual void machine_reset();
DECLARE_VIDEO_START(sngkace);
DECLARE_VIDEO_START(psikyo);
+ UINT32 screen_update_psikyo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_psikyo_bootleg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_psikyo(screen_device &screen, bool state);
};
@@ -99,6 +102,6 @@ void psikyo_switch_banks(running_machine &machine, int tmap, int bank);
-SCREEN_UPDATE_IND16( psikyo );
-SCREEN_UPDATE_IND16( psikyo_bootleg );
-SCREEN_VBLANK( psikyo );
+
+
+
diff --git a/src/mame/includes/psikyo4.h b/src/mame/includes/psikyo4.h
index 3600465fe0c..29543d0ceb1 100644
--- a/src/mame/includes/psikyo4.h
+++ b/src/mame/includes/psikyo4.h
@@ -50,11 +50,13 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_psikyo4_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_psikyo4_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/psikyo4.c -----------*/
-SCREEN_UPDATE_IND16( psikyo4_left );
-SCREEN_UPDATE_IND16( psikyo4_right );
+
+
diff --git a/src/mame/includes/psikyosh.h b/src/mame/includes/psikyosh.h
index da9a5e7437e..47562bd41ae 100644
--- a/src/mame/includes/psikyosh.h
+++ b/src/mame/includes/psikyosh.h
@@ -65,10 +65,11 @@ public:
DECLARE_DRIVER_INIT(s1945ii);
virtual void machine_start();
virtual void video_start();
+ UINT32 screen_update_psikyosh(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/psikyosh.c -----------*/
-SCREEN_UPDATE_RGB32( psikyosh );
-SCREEN_VBLANK( psikyosh );
+
+
diff --git a/src/mame/includes/psychic5.h b/src/mame/includes/psychic5.h
index 8ab2988b2b9..e896ba0c01e 100644
--- a/src/mame/includes/psychic5.h
+++ b/src/mame/includes/psychic5.h
@@ -45,6 +45,8 @@ public:
DECLARE_VIDEO_RESET(psychic5);
DECLARE_VIDEO_START(bombsa);
DECLARE_VIDEO_RESET(bombsa);
+ UINT32 screen_update_psychic5(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_bombsa(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -54,9 +56,9 @@ public:
-SCREEN_UPDATE_RGB32( psychic5 );
-SCREEN_UPDATE_RGB32( bombsa );
+
+
diff --git a/src/mame/includes/punchout.h b/src/mame/includes/punchout.h
index 3d7c378f08a..8567f4e7f51 100644
--- a/src/mame/includes/punchout.h
+++ b/src/mame/includes/punchout.h
@@ -63,6 +63,10 @@ public:
virtual void machine_reset();
virtual void video_start();
DECLARE_VIDEO_START(armwrest);
+ UINT32 screen_update_punchout_top(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_punchout_bottom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_armwrest_top(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_armwrest_bottom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -71,8 +75,8 @@ public:
-SCREEN_UPDATE_IND16( punchout_top );
-SCREEN_UPDATE_IND16( punchout_bottom );
-SCREEN_UPDATE_IND16( armwrest_top );
-SCREEN_UPDATE_IND16( armwrest_bottom );
+
+
+
+
diff --git a/src/mame/includes/pushman.h b/src/mame/includes/pushman.h
index f65f5bf4ec6..b1362c78b57 100644
--- a/src/mame/includes/pushman.h
+++ b/src/mame/includes/pushman.h
@@ -48,6 +48,7 @@ public:
virtual void video_start();
DECLARE_MACHINE_RESET(pushman);
DECLARE_MACHINE_RESET(bballs);
+ UINT32 screen_update_pushman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -56,4 +57,4 @@ public:
-SCREEN_UPDATE_IND16( pushman );
+
diff --git a/src/mame/includes/qdrmfgp.h b/src/mame/includes/qdrmfgp.h
index a386b8d0953..534a380fa18 100644
--- a/src/mame/includes/qdrmfgp.h
+++ b/src/mame/includes/qdrmfgp.h
@@ -38,13 +38,14 @@ public:
DECLARE_VIDEO_START(qdrmfgp);
DECLARE_MACHINE_START(qdrmfgp2);
DECLARE_VIDEO_START(qdrmfgp2);
+ UINT32 screen_update_qdrmfgp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/qdrmfgp.c -----------*/
-SCREEN_UPDATE_IND16( qdrmfgp );
+
void qdrmfgp_tile_callback(running_machine &machine, int layer, int *code, int *color, int *flags);
void qdrmfgp2_tile_callback(running_machine &machine, int layer, int *code, int *color, int *flags);
diff --git a/src/mame/includes/quasar.h b/src/mame/includes/quasar.h
index aa3f1f654d9..981a14f0884 100644
--- a/src/mame/includes/quasar.h
+++ b/src/mame/includes/quasar.h
@@ -28,11 +28,12 @@ public:
DECLARE_MACHINE_RESET(quasar);
DECLARE_VIDEO_START(quasar);
DECLARE_PALETTE_INIT(quasar);
+ UINT32 screen_update_quasar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/quasar.c -----------*/
-SCREEN_UPDATE_IND16( quasar );
+
diff --git a/src/mame/includes/quizdna.h b/src/mame/includes/quizdna.h
index 7ff554d8047..0f986dae3d2 100644
--- a/src/mame/includes/quizdna.h
+++ b/src/mame/includes/quizdna.h
@@ -24,12 +24,13 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
virtual void video_start();
+ UINT32 screen_update_quizdna(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/quizdna.c -----------*/
-SCREEN_UPDATE_IND16( quizdna );
+
diff --git a/src/mame/includes/quizpani.h b/src/mame/includes/quizpani.h
index a95c44d410d..4bc4facf33c 100644
--- a/src/mame/includes/quizpani.h
+++ b/src/mame/includes/quizpani.h
@@ -21,6 +21,7 @@ public:
TILE_GET_INFO_MEMBER(bg_tile_info);
TILE_GET_INFO_MEMBER(txt_tile_info);
virtual void video_start();
+ UINT32 screen_update_quizpani(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -28,4 +29,4 @@ public:
-SCREEN_UPDATE_IND16( quizpani );
+
diff --git a/src/mame/includes/raiden.h b/src/mame/includes/raiden.h
index 288288cbffc..8e5144ad717 100644
--- a/src/mame/includes/raiden.h
+++ b/src/mame/includes/raiden.h
@@ -39,6 +39,7 @@ public:
TILE_GET_INFO_MEMBER(get_text_tile_info);
virtual void video_start();
DECLARE_VIDEO_START(raidena);
+ UINT32 screen_update_raiden(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -46,4 +47,4 @@ public:
-SCREEN_UPDATE_IND16( raiden );
+
diff --git a/src/mame/includes/raiden2.h b/src/mame/includes/raiden2.h
index 366f22c1ac7..a23fcd9c615 100644
--- a/src/mame/includes/raiden2.h
+++ b/src/mame/includes/raiden2.h
@@ -148,6 +148,7 @@ public:
DECLARE_MACHINE_RESET(zeroteam);
DECLARE_MACHINE_RESET(xsedae);
DECLARE_MACHINE_RESET(raidendx);
+ UINT32 screen_update_raiden2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/includes/rainbow.h b/src/mame/includes/rainbow.h
index 891cec7520c..61845516b5d 100644
--- a/src/mame/includes/rainbow.h
+++ b/src/mame/includes/rainbow.h
@@ -47,6 +47,8 @@ public:
DECLARE_DRIVER_INIT(rbisland);
virtual void machine_start();
DECLARE_VIDEO_START(jumping);
+ UINT32 screen_update_rainbow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_jumping(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -57,7 +59,7 @@ void rbisland_cchip_init(running_machine &machine, int version);
/*----------- defined in video/rainbow.c -----------*/
-SCREEN_UPDATE_IND16( rainbow );
-SCREEN_UPDATE_IND16( jumping );
+
+
diff --git a/src/mame/includes/rallyx.h b/src/mame/includes/rallyx.h
index b4e1ad021af..5596fc2bd73 100644
--- a/src/mame/includes/rallyx.h
+++ b/src/mame/includes/rallyx.h
@@ -61,6 +61,9 @@ public:
DECLARE_PALETTE_INIT(jungler);
DECLARE_VIDEO_START(locomotn);
DECLARE_VIDEO_START(commsega);
+ UINT32 screen_update_rallyx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_jungler(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_locomotn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -73,6 +76,6 @@ public:
-SCREEN_UPDATE_IND16( rallyx );
-SCREEN_UPDATE_IND16( jungler );
-SCREEN_UPDATE_IND16( locomotn );
+
+
+
diff --git a/src/mame/includes/rampart.h b/src/mame/includes/rampart.h
index d7ef5466c2e..cd5b4cc21a6 100644
--- a/src/mame/includes/rampart.h
+++ b/src/mame/includes/rampart.h
@@ -20,10 +20,11 @@ public:
DECLARE_MACHINE_START(rampart);
DECLARE_MACHINE_RESET(rampart);
DECLARE_VIDEO_START(rampart);
+ UINT32 screen_update_rampart(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/rampart.c -----------*/
-SCREEN_UPDATE_IND16( rampart );
+
diff --git a/src/mame/includes/rastan.h b/src/mame/includes/rastan.h
index 654f464576b..3601ba9a0a6 100644
--- a/src/mame/includes/rastan.h
+++ b/src/mame/includes/rastan.h
@@ -33,10 +33,11 @@ public:
DECLARE_WRITE8_MEMBER(rastan_msm5205_stop_w);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_rastan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/rastan.c -----------*/
-SCREEN_UPDATE_IND16( rastan );
+
diff --git a/src/mame/includes/realbrk.h b/src/mame/includes/realbrk.h
index eef4200d951..3a9d48b8a29 100644
--- a/src/mame/includes/realbrk.h
+++ b/src/mame/includes/realbrk.h
@@ -44,6 +44,8 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info_1);
TILE_GET_INFO_MEMBER(get_tile_info_2);
virtual void video_start();
+ UINT32 screen_update_realbrk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_dai2kaku(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -53,8 +55,8 @@ public:
#define REALBRK_H
-SCREEN_UPDATE_IND16(realbrk);
-SCREEN_UPDATE_IND16(dai2kaku);
+
+
diff --git a/src/mame/includes/redalert.h b/src/mame/includes/redalert.h
index 8b873b1374f..8da32a24295 100644
--- a/src/mame/includes/redalert.h
+++ b/src/mame/includes/redalert.h
@@ -37,6 +37,9 @@ public:
DECLARE_WRITE8_MEMBER(demoneye_audio_command_w);
DECLARE_VIDEO_START(redalert);
DECLARE_VIDEO_START(ww3);
+ UINT32 screen_update_redalert(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_demoneye(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_panther(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/includes/relief.h b/src/mame/includes/relief.h
index a61e5071a20..757a10fcbc2 100644
--- a/src/mame/includes/relief.h
+++ b/src/mame/includes/relief.h
@@ -26,10 +26,11 @@ public:
DECLARE_MACHINE_START(relief);
DECLARE_MACHINE_RESET(relief);
DECLARE_VIDEO_START(relief);
+ UINT32 screen_update_relief(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/relief.c -----------*/
-SCREEN_UPDATE_IND16( relief );
+
diff --git a/src/mame/includes/renegade.h b/src/mame/includes/renegade.h
index c4f70f47a71..d0e2c02c366 100644
--- a/src/mame/includes/renegade.h
+++ b/src/mame/includes/renegade.h
@@ -72,10 +72,11 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_renegade(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/renegade.c -----------*/
-SCREEN_UPDATE_IND16( renegade );
+
diff --git a/src/mame/includes/retofinv.h b/src/mame/includes/retofinv.h
index b185def5ec0..ef09822a8bc 100644
--- a/src/mame/includes/retofinv.h
+++ b/src/mame/includes/retofinv.h
@@ -61,6 +61,7 @@ public:
TILE_GET_INFO_MEMBER(fg_get_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_retofinv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -72,4 +73,4 @@ public:
-SCREEN_UPDATE_IND16( retofinv );
+
diff --git a/src/mame/includes/rltennis.h b/src/mame/includes/rltennis.h
index e66766090a3..aa72e6d8f95 100644
--- a/src/mame/includes/rltennis.h
+++ b/src/mame/includes/rltennis.h
@@ -46,10 +46,11 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_rltennis(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
-SCREEN_UPDATE_IND16( rltennis );
+
diff --git a/src/mame/includes/rockrage.h b/src/mame/includes/rockrage.h
index 6e83ff6a021..4a3c1da3542 100644
--- a/src/mame/includes/rockrage.h
+++ b/src/mame/includes/rockrage.h
@@ -30,13 +30,14 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void palette_init();
+ UINT32 screen_update_rockrage(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/rockrage.c -----------*/
-SCREEN_UPDATE_IND16( rockrage );
+
void rockrage_tile_callback(running_machine &machine, int layer, int bank, int *code, int *color, int *flags);
diff --git a/src/mame/includes/rocnrope.h b/src/mame/includes/rocnrope.h
index ffa304d6e5e..50914fd84cc 100644
--- a/src/mame/includes/rocnrope.h
+++ b/src/mame/includes/rocnrope.h
@@ -28,6 +28,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_rocnrope(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/rocnrope.c -----------*/
@@ -35,4 +36,4 @@ public:
-SCREEN_UPDATE_IND16( rocnrope );
+
diff --git a/src/mame/includes/rohga.h b/src/mame/includes/rohga.h
index 4c19e285132..0e90016feb5 100644
--- a/src/mame/includes/rohga.h
+++ b/src/mame/includes/rohga.h
@@ -57,6 +57,9 @@ public:
DECLARE_VIDEO_START(rohga);
DECLARE_VIDEO_START(wizdfire);
DECLARE_VIDEO_START(schmeisr);
+ UINT32 screen_update_rohga(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_wizdfire(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_nitrobal(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -69,9 +72,9 @@ public:
-SCREEN_UPDATE_IND16( rohga );
-SCREEN_UPDATE_RGB32( wizdfire );
-SCREEN_UPDATE_RGB32( nitrobal );
+
+
+
UINT16 rohga_pri_callback(UINT16 x);
UINT16 schmeisr_col_callback(UINT16 x);
diff --git a/src/mame/includes/rollerg.h b/src/mame/includes/rollerg.h
index 382f13e184b..a62b5dd23ea 100644
--- a/src/mame/includes/rollerg.h
+++ b/src/mame/includes/rollerg.h
@@ -36,6 +36,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_rollerg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/rollerg.c -----------*/
@@ -44,4 +45,4 @@ extern void rollerg_sprite_callback(running_machine &machine, int *code,int *col
extern void rollerg_zoom_callback(running_machine &machine, int *code,int *color,int *flags);
-SCREEN_UPDATE_IND16( rollerg );
+
diff --git a/src/mame/includes/rollrace.h b/src/mame/includes/rollrace.h
index c147800b7cd..74e802b5350 100644
--- a/src/mame/includes/rollrace.h
+++ b/src/mame/includes/rollrace.h
@@ -34,12 +34,13 @@ public:
DECLARE_WRITE8_MEMBER(rollrace_flipy_w);
DECLARE_WRITE8_MEMBER(rollrace_flipx_w);
virtual void palette_init();
+ UINT32 screen_update_rollrace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/rollrace.c -----------*/
-SCREEN_UPDATE_IND16( rollrace );
+
diff --git a/src/mame/includes/route16.h b/src/mame/includes/route16.h
index 9824699a95c..6213da4a4a6 100644
--- a/src/mame/includes/route16.h
+++ b/src/mame/includes/route16.h
@@ -28,11 +28,14 @@ public:
DECLARE_WRITE8_MEMBER(stratvox_sn76477_w);
DECLARE_DRIVER_INIT(route16);
DECLARE_DRIVER_INIT(route16a);
+ UINT32 screen_update_route16(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_stratvox(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_ttmahjng(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/route16.c -----------*/
-SCREEN_UPDATE_RGB32( route16 );
-SCREEN_UPDATE_RGB32( stratvox );
-SCREEN_UPDATE_RGB32( ttmahjng );
+
+
+
diff --git a/src/mame/includes/rpunch.h b/src/mame/includes/rpunch.h
index 45ffa2f584d..4443506829c 100644
--- a/src/mame/includes/rpunch.h
+++ b/src/mame/includes/rpunch.h
@@ -39,11 +39,12 @@ public:
TILE_GET_INFO_MEMBER(get_bg1_tile_info);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_rpunch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/rpunch.c -----------*/
-SCREEN_UPDATE_IND16( rpunch );
+
diff --git a/src/mame/includes/runaway.h b/src/mame/includes/runaway.h
index a44d0584bfb..61d3a96a779 100644
--- a/src/mame/includes/runaway.h
+++ b/src/mame/includes/runaway.h
@@ -24,6 +24,8 @@ public:
virtual void machine_reset();
virtual void video_start();
DECLARE_VIDEO_START(qwak);
+ UINT32 screen_update_runaway(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_qwak(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -31,6 +33,6 @@ public:
-SCREEN_UPDATE_IND16( runaway );
-SCREEN_UPDATE_IND16( qwak );
+
+
diff --git a/src/mame/includes/rungun.h b/src/mame/includes/rungun.h
index d1801db80bc..c6b15d809bf 100644
--- a/src/mame/includes/rungun.h
+++ b/src/mame/includes/rungun.h
@@ -52,6 +52,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_rng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -63,4 +64,4 @@ extern void rng_sprite_callback(running_machine &machine, int *code, int *color,
-SCREEN_UPDATE_IND16( rng );
+
diff --git a/src/mame/includes/sauro.h b/src/mame/includes/sauro.h
index dd5fe188ea9..c837cdad44e 100644
--- a/src/mame/includes/sauro.h
+++ b/src/mame/includes/sauro.h
@@ -36,6 +36,8 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info_fg);
DECLARE_VIDEO_START(trckydoc);
DECLARE_VIDEO_START(sauro);
+ UINT32 screen_update_trckydoc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_sauro(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -45,5 +47,5 @@ public:
-SCREEN_UPDATE_IND16( sauro );
-SCREEN_UPDATE_IND16( trckydoc );
+
+
diff --git a/src/mame/includes/sbasketb.h b/src/mame/includes/sbasketb.h
index a0d6b169266..405ea321a27 100644
--- a/src/mame/includes/sbasketb.h
+++ b/src/mame/includes/sbasketb.h
@@ -42,6 +42,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_sbasketb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/sbasketb.c -----------*/
@@ -49,4 +50,4 @@ public:
-SCREEN_UPDATE_IND16( sbasketb );
+
diff --git a/src/mame/includes/sbugger.h b/src/mame/includes/sbugger.h
index 8066761ba4f..89f8042b4fa 100644
--- a/src/mame/includes/sbugger.h
+++ b/src/mame/includes/sbugger.h
@@ -16,11 +16,12 @@ public:
TILE_GET_INFO_MEMBER(get_sbugger_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_sbugger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/sbugger.c -----------*/
-SCREEN_UPDATE_IND16(sbugger);
+
diff --git a/src/mame/includes/scotrsht.h b/src/mame/includes/scotrsht.h
index f816464f68f..ebae27fcb96 100644
--- a/src/mame/includes/scotrsht.h
+++ b/src/mame/includes/scotrsht.h
@@ -25,6 +25,7 @@ public:
TILE_GET_INFO_MEMBER(scotrsht_get_bg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_scotrsht(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -33,4 +34,4 @@ public:
-SCREEN_UPDATE_IND16( scotrsht );
+
diff --git a/src/mame/includes/sderby.h b/src/mame/includes/sderby.h
index 8c7e08139ee..bd4ad675caa 100644
--- a/src/mame/includes/sderby.h
+++ b/src/mame/includes/sderby.h
@@ -33,11 +33,13 @@ public:
TILE_GET_INFO_MEMBER(get_sderby_md_tile_info);
TILE_GET_INFO_MEMBER(get_sderby_fg_tile_info);
virtual void video_start();
+ UINT32 screen_update_sderby(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_pmroulet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/sderby.c -----------*/
-SCREEN_UPDATE_IND16( sderby );
-SCREEN_UPDATE_IND16( pmroulet );
+
+
diff --git a/src/mame/includes/segag80r.h b/src/mame/includes/segag80r.h
index b5aa11eb586..6b73ac2cf9c 100644
--- a/src/mame/includes/segag80r.h
+++ b/src/mame/includes/segag80r.h
@@ -98,6 +98,7 @@ public:
TILE_GET_INFO_MEMBER(bg_get_tile_info);
virtual void machine_start();
virtual void video_start();
+ UINT32 screen_update_segag80r(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -125,7 +126,7 @@ INTERRUPT_GEN( segag80r_vblank_start );
-SCREEN_UPDATE_IND16( segag80r );
+
diff --git a/src/mame/includes/segag80v.h b/src/mame/includes/segag80v.h
index 10a76f5dd98..6736ff101c9 100644
--- a/src/mame/includes/segag80v.h
+++ b/src/mame/includes/segag80v.h
@@ -52,6 +52,7 @@ public:
DECLARE_DRIVER_INIT(spacfury);
virtual void machine_start();
virtual void video_start();
+ UINT32 screen_update_segag80v(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -62,4 +63,4 @@ public:
/*----------- defined in video/segag80v.c -----------*/
-SCREEN_UPDATE_RGB32( segag80v );
+
diff --git a/src/mame/includes/segas24.h b/src/mame/includes/segas24.h
index 1d6658da177..745074cac22 100644
--- a/src/mame/includes/segas24.h
+++ b/src/mame/includes/segas24.h
@@ -112,8 +112,9 @@ public:
DECLARE_DRIVER_INIT(sgmast);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_system24(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/segas24.c -----------*/
-SCREEN_UPDATE_IND16(system24);
+
diff --git a/src/mame/includes/segas32.h b/src/mame/includes/segas32.h
index 020a9e9d358..b05375ba1ea 100644
--- a/src/mame/includes/segas32.h
+++ b/src/mame/includes/segas32.h
@@ -174,6 +174,9 @@ public:
DECLARE_MACHINE_RESET(system32);
DECLARE_VIDEO_START(system32);
DECLARE_VIDEO_START(multi32);
+ UINT32 screen_update_system32(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_multi32_left(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_multi32_right(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -195,9 +198,9 @@ void decrypt_ga2_protrom(running_machine &machine);
-SCREEN_UPDATE_RGB32(system32);
-SCREEN_UPDATE_RGB32(multi32_left);
-SCREEN_UPDATE_RGB32(multi32_right);
+
+
+
void system32_set_vblank(running_machine &machine, int state);
diff --git a/src/mame/includes/seibuspi.h b/src/mame/includes/seibuspi.h
index fd0fea2ecd7..b2d9e3c066e 100644
--- a/src/mame/includes/seibuspi.h
+++ b/src/mame/includes/seibuspi.h
@@ -113,6 +113,8 @@ public:
DECLARE_VIDEO_START(sys386f2);
DECLARE_MACHINE_START(sxx2f);
DECLARE_MACHINE_RESET(sxx2f);
+ UINT32 screen_update_spi(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_sys386f2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -124,10 +126,10 @@ void seibuspi_sprite_decrypt(UINT8 *src, int romsize);
/*----------- defined in video/seibuspi.c -----------*/
-SCREEN_UPDATE_RGB32( spi );
-SCREEN_UPDATE_RGB32( sys386f2 );
+
+
void rf2_set_layer_banks(running_machine &machine, int banks);
diff --git a/src/mame/includes/seicross.h b/src/mame/includes/seicross.h
index 2b7e7f592c1..56254f0a57a 100644
--- a/src/mame/includes/seicross.h
+++ b/src/mame/includes/seicross.h
@@ -29,6 +29,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_seicross(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -37,4 +38,4 @@ public:
-SCREEN_UPDATE_IND16( seicross );
+
diff --git a/src/mame/includes/senjyo.h b/src/mame/includes/senjyo.h
index c80d1ac1a4c..0e2516ea779 100644
--- a/src/mame/includes/senjyo.h
+++ b/src/mame/includes/senjyo.h
@@ -81,6 +81,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg3_tile_info);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_senjyo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -95,4 +96,4 @@ extern const z80ctc_interface senjyo_ctc_intf;
-SCREEN_UPDATE_IND16( senjyo );
+
diff --git a/src/mame/includes/seta.h b/src/mame/includes/seta.h
index 58653ec938b..2c1389c96d2 100644
--- a/src/mame/includes/seta.h
+++ b/src/mame/includes/seta.h
@@ -190,6 +190,14 @@ public:
DECLARE_MACHINE_START(keroppi);
DECLARE_VIDEO_START(oisipuzl_2_layers);
DECLARE_PALETTE_INIT(inttoote);
+ UINT32 screen_update_seta_no_layers(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_seta(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_usclssic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_setaroul(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_inttoote(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_seta_layers(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_seta_buffer_sprites(screen_device &screen, bool state);
+ void screen_eof_setaroul(screen_device &screen, bool state);
};
/*----------- defined in video/seta.c -----------*/
@@ -212,11 +220,11 @@ void seta_coin_lockout_w(running_machine &machine, int data);
-SCREEN_UPDATE_IND16( seta );
-SCREEN_UPDATE_IND16( seta_no_layers );
-SCREEN_UPDATE_IND16( usclssic );
-SCREEN_UPDATE_IND16( inttoote );
-SCREEN_UPDATE_IND16( setaroul );
-SCREEN_VBLANK( setaroul );
+
+
+
+
+
+
diff --git a/src/mame/includes/seta2.h b/src/mame/includes/seta2.h
index 63ee6af7e4d..706fd581efb 100644
--- a/src/mame/includes/seta2.h
+++ b/src/mame/includes/seta2.h
@@ -69,6 +69,8 @@ public:
DECLARE_MACHINE_RESET(funcube);
DECLARE_VIDEO_START(seta2_yoffset);
DECLARE_VIDEO_START(seta2_xoffset);
+ UINT32 screen_update_seta2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_seta2(screen_device &screen, bool state);
};
/*----------- defined in video/seta2.c -----------*/
@@ -77,5 +79,5 @@ public:
-SCREEN_UPDATE_IND16( seta2 );
-SCREEN_VBLANK( seta2 );
+
+
diff --git a/src/mame/includes/sf.h b/src/mame/includes/sf.h
index a7b2e55facc..a5438caee28 100644
--- a/src/mame/includes/sf.h
+++ b/src/mame/includes/sf.h
@@ -47,6 +47,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_sf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -54,4 +55,4 @@ public:
-SCREEN_UPDATE_IND16( sf );
+
diff --git a/src/mame/includes/shadfrce.h b/src/mame/includes/shadfrce.h
index 72f27a56e95..2bb700ad157 100644
--- a/src/mame/includes/shadfrce.h
+++ b/src/mame/includes/shadfrce.h
@@ -42,11 +42,13 @@ public:
TILE_GET_INFO_MEMBER(get_shadfrce_bg0tile_info);
TILE_GET_INFO_MEMBER(get_shadfrce_bg1tile_info);
virtual void video_start();
+ UINT32 screen_update_shadfrce(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_shadfrce(screen_device &screen, bool state);
};
/*----------- defined in video/shadfrce.c -----------*/
-SCREEN_VBLANK(shadfrce);
-SCREEN_UPDATE_IND16( shadfrce );
+
+
diff --git a/src/mame/includes/shangha3.h b/src/mame/includes/shangha3.h
index e7f2f694fa4..ff257fb0eae 100644
--- a/src/mame/includes/shangha3.h
+++ b/src/mame/includes/shangha3.h
@@ -27,10 +27,11 @@ public:
DECLARE_DRIVER_INIT(shangha3);
DECLARE_DRIVER_INIT(heberpop);
virtual void video_start();
+ UINT32 screen_update_shangha3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/shangha3.c -----------*/
-SCREEN_UPDATE_IND16( shangha3 );
+
diff --git a/src/mame/includes/shangkid.h b/src/mame/includes/shangkid.h
index 08423bb136e..66d2301cec2 100644
--- a/src/mame/includes/shangkid.h
+++ b/src/mame/includes/shangkid.h
@@ -30,14 +30,16 @@ public:
DECLARE_VIDEO_START(shangkid);
DECLARE_PALETTE_INIT(dynamski);
DECLARE_MACHINE_RESET(shangkid);
+ UINT32 screen_update_shangkid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_dynamski(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/shangkid.c -----------*/
-SCREEN_UPDATE_IND16( shangkid );
-SCREEN_UPDATE_IND16( dynamski );
+
+
diff --git a/src/mame/includes/shaolins.h b/src/mame/includes/shaolins.h
index 312604bbd2b..682b7ccfe5e 100644
--- a/src/mame/includes/shaolins.h
+++ b/src/mame/includes/shaolins.h
@@ -25,6 +25,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_shaolins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -33,4 +34,4 @@ public:
-SCREEN_UPDATE_IND16( shaolins );
+
diff --git a/src/mame/includes/shisen.h b/src/mame/includes/shisen.h
index e6cc91bf381..f1b166d90f6 100644
--- a/src/mame/includes/shisen.h
+++ b/src/mame/includes/shisen.h
@@ -17,6 +17,7 @@ public:
DECLARE_WRITE8_MEMBER(sichuan2_paletteram_w);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
+ UINT32 screen_update_sichuan2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -24,4 +25,4 @@ public:
-SCREEN_UPDATE_IND16( sichuan2 );
+
diff --git a/src/mame/includes/shootout.h b/src/mame/includes/shootout.h
index 2ff285ee8af..dd7be1d97ce 100644
--- a/src/mame/includes/shootout.h
+++ b/src/mame/includes/shootout.h
@@ -26,6 +26,8 @@ public:
TILE_GET_INFO_MEMBER(get_fg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_shootout(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_shootouj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -34,5 +36,5 @@ public:
-SCREEN_UPDATE_IND16( shootout );
-SCREEN_UPDATE_IND16( shootouj );
+
+
diff --git a/src/mame/includes/shuuz.h b/src/mame/includes/shuuz.h
index ad2fc6ce04f..545ca7b49da 100644
--- a/src/mame/includes/shuuz.h
+++ b/src/mame/includes/shuuz.h
@@ -22,10 +22,11 @@ public:
DECLARE_MACHINE_START(shuuz);
DECLARE_MACHINE_RESET(shuuz);
DECLARE_VIDEO_START(shuuz);
+ UINT32 screen_update_shuuz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/shuuz.c -----------*/
-SCREEN_UPDATE_IND16( shuuz );
+
diff --git a/src/mame/includes/sidearms.h b/src/mame/includes/sidearms.h
index 07a1cdb7b39..c5d7a895576 100644
--- a/src/mame/includes/sidearms.h
+++ b/src/mame/includes/sidearms.h
@@ -51,10 +51,11 @@ public:
TILE_GET_INFO_MEMBER(get_fg_tile_info);
TILEMAP_MAPPER_MEMBER(sidearms_tilemap_scan);
virtual void video_start();
+ UINT32 screen_update_sidearms(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/sidearms.c -----------*/
-SCREEN_UPDATE_IND16( sidearms );
+
diff --git a/src/mame/includes/sidepckt.h b/src/mame/includes/sidepckt.h
index ba9898417da..094c5102ce2 100644
--- a/src/mame/includes/sidepckt.h
+++ b/src/mame/includes/sidepckt.h
@@ -28,6 +28,7 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_sidepckt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -35,5 +36,5 @@ public:
-SCREEN_UPDATE_IND16( sidepckt );
+
diff --git a/src/mame/includes/silkroad.h b/src/mame/includes/silkroad.h
index 62abdc06594..64354376c65 100644
--- a/src/mame/includes/silkroad.h
+++ b/src/mame/includes/silkroad.h
@@ -28,10 +28,11 @@ public:
TILE_GET_INFO_MEMBER(get_fg2_tile_info);
TILE_GET_INFO_MEMBER(get_fg3_tile_info);
virtual void video_start();
+ UINT32 screen_update_silkroad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/silkroad.c -----------*/
-SCREEN_UPDATE_IND16(silkroad);
+
diff --git a/src/mame/includes/simpl156.h b/src/mame/includes/simpl156.h
index fa48b16170f..a1379662440 100644
--- a/src/mame/includes/simpl156.h
+++ b/src/mame/includes/simpl156.h
@@ -58,6 +58,7 @@ public:
DECLARE_DRIVER_INIT(osman);
DECLARE_DRIVER_INIT(chainrec);
virtual void video_start();
+ UINT32 screen_update_simpl156(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -65,4 +66,4 @@ public:
/*----------- defined in video/simpl156.c -----------*/
-SCREEN_UPDATE_IND16( simpl156 );
+
diff --git a/src/mame/includes/simpsons.h b/src/mame/includes/simpsons.h
index c0266d25576..191f4fd446b 100644
--- a/src/mame/includes/simpsons.h
+++ b/src/mame/includes/simpsons.h
@@ -39,6 +39,7 @@ public:
DECLARE_WRITE8_MEMBER(simpsons_k053247_w);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_simpsons(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in machine/simpsons.c -----------*/
@@ -50,7 +51,7 @@ DECLARE_READ8_DEVICE_HANDLER( simpsons_sound_r );
/*----------- defined in video/simpsons.c -----------*/
void simpsons_video_banking( running_machine &machine, int select );
-SCREEN_UPDATE_IND16( simpsons );
+
extern void simpsons_tile_callback(running_machine &machine, int layer,int bank,int *code,int *color,int *flags,int *priority);
extern void simpsons_sprite_callback(running_machine &machine, int *code,int *color,int *priority_mask);
diff --git a/src/mame/includes/skullxbo.h b/src/mame/includes/skullxbo.h
index 46e6451d23f..b9fdb2d7ff1 100644
--- a/src/mame/includes/skullxbo.h
+++ b/src/mame/includes/skullxbo.h
@@ -20,6 +20,7 @@ public:
DECLARE_MACHINE_START(skullxbo);
DECLARE_MACHINE_RESET(skullxbo);
DECLARE_VIDEO_START(skullxbo);
+ UINT32 screen_update_skullxbo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -31,6 +32,6 @@ DECLARE_WRITE16_HANDLER( skullxbo_yscroll_w );
DECLARE_WRITE16_HANDLER( skullxbo_mobmsb_w );
-SCREEN_UPDATE_IND16( skullxbo );
+
void skullxbo_scanline_update(running_machine &machine, int param);
diff --git a/src/mame/includes/skydiver.h b/src/mame/includes/skydiver.h
index 81f486d91ae..99750941ec9 100644
--- a/src/mame/includes/skydiver.h
+++ b/src/mame/includes/skydiver.h
@@ -50,6 +50,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_skydiver(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -62,4 +63,4 @@ DISCRETE_SOUND_EXTERN( skydiver );
-SCREEN_UPDATE_IND16( skydiver );
+
diff --git a/src/mame/includes/skyfox.h b/src/mame/includes/skyfox.h
index 67db54511bb..8e317baff31 100644
--- a/src/mame/includes/skyfox.h
+++ b/src/mame/includes/skyfox.h
@@ -31,6 +31,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void palette_init();
+ UINT32 screen_update_skyfox(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/skyfox.c -----------*/
@@ -38,5 +39,5 @@ public:
-SCREEN_UPDATE_IND16( skyfox );
+
diff --git a/src/mame/includes/skykid.h b/src/mame/includes/skykid.h
index 06c4fd74bf5..31f3bc123e2 100644
--- a/src/mame/includes/skykid.h
+++ b/src/mame/includes/skykid.h
@@ -40,12 +40,13 @@ public:
virtual void machine_start();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_skykid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/skykid.c -----------*/
-SCREEN_UPDATE_IND16( skykid );
+
diff --git a/src/mame/includes/skyraid.h b/src/mame/includes/skyraid.h
index f703b84d93d..a4383646bf3 100644
--- a/src/mame/includes/skyraid.h
+++ b/src/mame/includes/skyraid.h
@@ -25,6 +25,7 @@ public:
DECLARE_WRITE8_MEMBER(skyraid_scroll_w);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_skyraid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -38,4 +39,4 @@ DECLARE_WRITE8_DEVICE_HANDLER( skyraid_sound_w );
/*----------- defined in video/skyraid.c -----------*/
-SCREEN_UPDATE_IND16(skyraid);
+
diff --git a/src/mame/includes/slapfght.h b/src/mame/includes/slapfght.h
index 26f9ba3e920..4d57c31ab71 100644
--- a/src/mame/includes/slapfght.h
+++ b/src/mame/includes/slapfght.h
@@ -123,6 +123,8 @@ public:
DECLARE_MACHINE_RESET(slapfight);
DECLARE_VIDEO_START(perfrman);
DECLARE_VIDEO_START(slapfight);
+ UINT32 screen_update_perfrman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_slapfight(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -156,8 +158,8 @@ INTERRUPT_GEN( getstar_interrupt );
/*----------- defined in video/slapfght.c -----------*/
-SCREEN_UPDATE_IND16( slapfight );
-SCREEN_UPDATE_IND16( perfrman );
+
+
diff --git a/src/mame/includes/slapshot.h b/src/mame/includes/slapshot.h
index 91354dd4517..7b191c8e9a0 100644
--- a/src/mame/includes/slapshot.h
+++ b/src/mame/includes/slapshot.h
@@ -64,11 +64,13 @@ public:
DECLARE_DRIVER_INIT(slapshot);
virtual void machine_start();
virtual void video_start();
+ UINT32 screen_update_slapshot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_taito_no_buffer(screen_device &screen, bool state);
};
/*----------- defined in video/slapshot.c -----------*/
-SCREEN_UPDATE_IND16( slapshot );
-SCREEN_VBLANK( taito_no_buffer );
+
+
diff --git a/src/mame/includes/snk.h b/src/mame/includes/snk.h
index 3cac9e7c625..914df3f98dd 100644
--- a/src/mame/includes/snk.h
+++ b/src/mame/includes/snk.h
@@ -164,6 +164,11 @@ public:
DECLARE_VIDEO_START(psychos);
DECLARE_VIDEO_START(snk_3bpp_shadow);
DECLARE_VIDEO_START(snk_4bpp_shadow);
+ UINT32 screen_update_marvins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_tnk3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_ikari(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_gwar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_tdfever(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/includes/snk6502.h b/src/mame/includes/snk6502.h
index 1177c64f1e8..e3588fca731 100644
--- a/src/mame/includes/snk6502.h
+++ b/src/mame/includes/snk6502.h
@@ -60,6 +60,7 @@ public:
DECLARE_MACHINE_RESET(satansat);
DECLARE_MACHINE_RESET(pballoon);
DECLARE_VIDEO_START(pballoon);
+ UINT32 screen_update_snk6502(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -119,7 +120,7 @@ DISCRETE_SOUND_EXTERN( fantasy );
-SCREEN_UPDATE_IND16( snk6502 );
+
diff --git a/src/mame/includes/snk68.h b/src/mame/includes/snk68.h
index 58d10ce8172..5048e52b720 100644
--- a/src/mame/includes/snk68.h
+++ b/src/mame/includes/snk68.h
@@ -43,6 +43,7 @@ public:
TILE_GET_INFO_MEMBER(get_searchar_tile_info);
virtual void video_start();
DECLARE_VIDEO_START(searchar);
+ UINT32 screen_update_pow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -50,4 +51,4 @@ public:
-SCREEN_UPDATE_IND16( pow );
+
diff --git a/src/mame/includes/snookr10.h b/src/mame/includes/snookr10.h
index 83d3611bb26..c315352a3bd 100644
--- a/src/mame/includes/snookr10.h
+++ b/src/mame/includes/snookr10.h
@@ -28,6 +28,7 @@ public:
virtual void palette_init();
DECLARE_VIDEO_START(apple10);
DECLARE_PALETTE_INIT(apple10);
+ UINT32 screen_update_snookr10(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -37,5 +38,5 @@ public:
-SCREEN_UPDATE_IND16( snookr10 );
+
diff --git a/src/mame/includes/snowbros.h b/src/mame/includes/snowbros.h
index 25faa52daa5..af2309b0a73 100644
--- a/src/mame/includes/snowbros.h
+++ b/src/mame/includes/snowbros.h
@@ -43,5 +43,11 @@ public:
DECLARE_DRIVER_INIT(cookbib2);
DECLARE_MACHINE_RESET(semiprot);
DECLARE_MACHINE_RESET(finalttr);
+ UINT32 screen_update_snowbros(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_honeydol(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_twinadv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_snowbro3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_wintbob(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_snowbros(screen_device &screen, bool state);
};
diff --git a/src/mame/includes/solomon.h b/src/mame/includes/solomon.h
index 0f35ec04171..ac9cd8809c4 100644
--- a/src/mame/includes/solomon.h
+++ b/src/mame/includes/solomon.h
@@ -30,6 +30,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
virtual void video_start();
+ UINT32 screen_update_solomon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -37,4 +38,4 @@ public:
-SCREEN_UPDATE_IND16( solomon );
+
diff --git a/src/mame/includes/sonson.h b/src/mame/includes/sonson.h
index d28fd47f40c..549f3c6fd93 100644
--- a/src/mame/includes/sonson.h
+++ b/src/mame/includes/sonson.h
@@ -38,6 +38,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_sonson(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -46,4 +47,4 @@ public:
-SCREEN_UPDATE_IND16( sonson );
+
diff --git a/src/mame/includes/spacefb.h b/src/mame/includes/spacefb.h
index 5875a4d36a6..fce6be15607 100644
--- a/src/mame/includes/spacefb.h
+++ b/src/mame/includes/spacefb.h
@@ -49,6 +49,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_spacefb(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -61,5 +62,5 @@ MACHINE_CONFIG_EXTERN( spacefb_audio );
/*----------- defined in video/spacefb.c -----------*/
-SCREEN_UPDATE_RGB32( spacefb );
+
diff --git a/src/mame/includes/spbactn.h b/src/mame/includes/spbactn.h
index a9eb91e9044..f8d254f3202 100644
--- a/src/mame/includes/spbactn.h
+++ b/src/mame/includes/spbactn.h
@@ -15,10 +15,11 @@ public:
bitmap_ind16 m_tile_bitmap_fg;
DECLARE_WRITE16_MEMBER(soundcommand_w);
virtual void video_start();
+ UINT32 screen_update_spbactn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/spbactn.c -----------*/
-SCREEN_UPDATE_RGB32( spbactn );
+
diff --git a/src/mame/includes/spcforce.h b/src/mame/includes/spcforce.h
index 4255860cdfc..5b6726e98ad 100644
--- a/src/mame/includes/spcforce.h
+++ b/src/mame/includes/spcforce.h
@@ -33,9 +33,10 @@ public:
DECLARE_WRITE8_MEMBER(irq_mask_w);
DECLARE_WRITE8_MEMBER(spcforce_flip_screen_w);
virtual void palette_init();
+ UINT32 screen_update_spcforce(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/spcforce.c -----------*/
-SCREEN_UPDATE_IND16( spcforce );
+
diff --git a/src/mame/includes/spdodgeb.h b/src/mame/includes/spdodgeb.h
index a64fab0fbd5..edaa6dddef5 100644
--- a/src/mame/includes/spdodgeb.h
+++ b/src/mame/includes/spdodgeb.h
@@ -46,6 +46,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_spdodgeb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -53,5 +54,5 @@ public:
-SCREEN_UPDATE_IND16( spdodgeb );
+
TIMER_DEVICE_CALLBACK( spdodgeb_interrupt );
diff --git a/src/mame/includes/speedatk.h b/src/mame/includes/speedatk.h
index a7ca9a90fb1..427d2aae98a 100644
--- a/src/mame/includes/speedatk.h
+++ b/src/mame/includes/speedatk.h
@@ -26,6 +26,7 @@ public:
DECLARE_WRITE8_MEMBER(speedatk_output_w);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_speedatk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -33,4 +34,4 @@ public:
-SCREEN_UPDATE_IND16( speedatk );
+
diff --git a/src/mame/includes/speedbal.h b/src/mame/includes/speedbal.h
index c1bc7b38fff..47e4b816b64 100644
--- a/src/mame/includes/speedbal.h
+++ b/src/mame/includes/speedbal.h
@@ -18,10 +18,11 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info_bg);
TILE_GET_INFO_MEMBER(get_tile_info_fg);
virtual void video_start();
+ UINT32 screen_update_speedbal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/speedbal.c -----------*/
-SCREEN_UPDATE_IND16( speedbal );
+
diff --git a/src/mame/includes/speedspn.h b/src/mame/includes/speedspn.h
index a06293c51d4..71407465a1e 100644
--- a/src/mame/includes/speedspn.h
+++ b/src/mame/includes/speedspn.h
@@ -21,12 +21,13 @@ public:
DECLARE_WRITE8_MEMBER(oki_banking_w);
TILE_GET_INFO_MEMBER(get_speedspn_tile_info);
virtual void video_start();
+ UINT32 screen_update_speedspn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/speedspn.c -----------*/
-SCREEN_UPDATE_IND16( speedspn );
+
diff --git a/src/mame/includes/splash.h b/src/mame/includes/splash.h
index 0a44e3dcd46..950c048b072 100644
--- a/src/mame/includes/splash.h
+++ b/src/mame/includes/splash.h
@@ -62,11 +62,13 @@ public:
virtual void video_start();
DECLARE_MACHINE_RESET(splash);
DECLARE_MACHINE_RESET(funystrp);
+ UINT32 screen_update_splash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_funystrp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/splash.c -----------*/
-SCREEN_UPDATE_IND16( splash );
-SCREEN_UPDATE_IND16( funystrp );
+
+
diff --git a/src/mame/includes/sprcros2.h b/src/mame/includes/sprcros2.h
index 7a3ca78c867..1b4f13f536e 100644
--- a/src/mame/includes/sprcros2.h
+++ b/src/mame/includes/sprcros2.h
@@ -30,6 +30,7 @@ public:
virtual void machine_start();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_sprcros2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -38,4 +39,4 @@ public:
-SCREEN_UPDATE_IND16( sprcros2 );
+
diff --git a/src/mame/includes/sprint2.h b/src/mame/includes/sprint2.h
index 3d6f0ab5b8c..5ac855594c9 100644
--- a/src/mame/includes/sprint2.h
+++ b/src/mame/includes/sprint2.h
@@ -64,6 +64,8 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_sprint2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_sprint2(screen_device &screen, bool state);
};
@@ -79,7 +81,7 @@ DISCRETE_SOUND_EXTERN( dominos );
-SCREEN_UPDATE_IND16( sprint2 );
-SCREEN_VBLANK( sprint2 );
+
+
diff --git a/src/mame/includes/sprint4.h b/src/mame/includes/sprint4.h
index 866602eda5a..03da19701ee 100644
--- a/src/mame/includes/sprint4.h
+++ b/src/mame/includes/sprint4.h
@@ -38,6 +38,8 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_sprint4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_sprint4(screen_device &screen, bool state);
};
@@ -45,7 +47,7 @@ public:
-SCREEN_VBLANK( sprint4 );
-SCREEN_UPDATE_IND16( sprint4 );
+
+
diff --git a/src/mame/includes/sprint8.h b/src/mame/includes/sprint8.h
index 0f2f3902b62..d7c132cc501 100644
--- a/src/mame/includes/sprint8.h
+++ b/src/mame/includes/sprint8.h
@@ -35,6 +35,8 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_sprint8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_sprint8(screen_device &screen, bool state);
};
@@ -46,9 +48,9 @@ void sprint8_set_collision(running_machine &machine, int n);
/*----------- defined in video/sprint8.c -----------*/
-SCREEN_VBLANK( sprint8 );
-SCREEN_UPDATE_IND16( sprint8 );
+
+
diff --git a/src/mame/includes/spy.h b/src/mame/includes/spy.h
index 4fe5469b7ae..77b1bb5edb8 100644
--- a/src/mame/includes/spy.h
+++ b/src/mame/includes/spy.h
@@ -44,6 +44,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_spy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -53,4 +54,4 @@ extern void spy_tile_callback(running_machine &machine, int layer,int bank,int *
extern void spy_sprite_callback(running_machine &machine, int *code,int *color,int *priority_mask,int *shadow);
-SCREEN_UPDATE_IND16( spy );
+
diff --git a/src/mame/includes/srmp2.h b/src/mame/includes/srmp2.h
index 765ffff91df..cbe1c204d35 100644
--- a/src/mame/includes/srmp2.h
+++ b/src/mame/includes/srmp2.h
@@ -46,13 +46,16 @@ public:
DECLARE_MACHINE_START(srmp3);
DECLARE_PALETTE_INIT(srmp3);
DECLARE_MACHINE_START(rmgoldyh);
+ UINT32 screen_update_srmp2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_srmp3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_mjyuugi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/srmp2.c -----------*/
-SCREEN_UPDATE_IND16( srmp2 );
-SCREEN_UPDATE_IND16( srmp3 );
-SCREEN_UPDATE_IND16( mjyuugi );
+
+
+
diff --git a/src/mame/includes/srumbler.h b/src/mame/includes/srumbler.h
index a0d576ea114..73e5232324d 100644
--- a/src/mame/includes/srumbler.h
+++ b/src/mame/includes/srumbler.h
@@ -27,6 +27,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void machine_start();
virtual void video_start();
+ UINT32 screen_update_srumbler(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -34,5 +35,5 @@ public:
-SCREEN_UPDATE_IND16( srumbler );
-SCREEN_VBLANK( srumbler );
+
+
diff --git a/src/mame/includes/sshangha.h b/src/mame/includes/sshangha.h
index 50108875a50..6530c476d49 100644
--- a/src/mame/includes/sshangha.h
+++ b/src/mame/includes/sshangha.h
@@ -49,11 +49,12 @@ public:
DECLARE_DRIVER_INIT(sshangha);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_sshangha(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/sshangha.c -----------*/
-SCREEN_UPDATE_RGB32( sshangha );
+
diff --git a/src/mame/includes/sslam.h b/src/mame/includes/sslam.h
index 55701cfe5ee..79ca024a60c 100644
--- a/src/mame/includes/sslam.h
+++ b/src/mame/includes/sslam.h
@@ -50,6 +50,8 @@ public:
TILE_GET_INFO_MEMBER(get_powerbls_bg_tile_info);
DECLARE_VIDEO_START(sslam);
DECLARE_VIDEO_START(powerbls);
+ UINT32 screen_update_sslam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_powerbls(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -57,5 +59,5 @@ public:
-SCREEN_UPDATE_IND16(sslam);
-SCREEN_UPDATE_IND16(powerbls);
+
+
diff --git a/src/mame/includes/ssozumo.h b/src/mame/includes/ssozumo.h
index c57e826b526..1709716dedd 100644
--- a/src/mame/includes/ssozumo.h
+++ b/src/mame/includes/ssozumo.h
@@ -35,6 +35,7 @@ public:
TILE_GET_INFO_MEMBER(get_fg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_ssozumo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -43,4 +44,4 @@ public:
-SCREEN_UPDATE_IND16( ssozumo );
+
diff --git a/src/mame/includes/sspeedr.h b/src/mame/includes/sspeedr.h
index 4d4fc25b721..61347824700 100644
--- a/src/mame/includes/sspeedr.h
+++ b/src/mame/includes/sspeedr.h
@@ -35,6 +35,8 @@ public:
DECLARE_WRITE8_MEMBER(sspeedr_track_ice_w);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_sspeedr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_sspeedr(screen_device &screen, bool state);
};
@@ -44,5 +46,5 @@ public:
-SCREEN_UPDATE_IND16( sspeedr );
-SCREEN_VBLANK( sspeedr );
+
+
diff --git a/src/mame/includes/ssrj.h b/src/mame/includes/ssrj.h
index bd6168f3884..7123ba93adf 100644
--- a/src/mame/includes/ssrj.h
+++ b/src/mame/includes/ssrj.h
@@ -29,6 +29,8 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_ssrj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_ssrj(screen_device &screen, bool state);
};
@@ -36,6 +38,6 @@ public:
-SCREEN_UPDATE_IND16( ssrj );
-SCREEN_VBLANK( ssrj );
+
+
diff --git a/src/mame/includes/ssv.h b/src/mame/includes/ssv.h
index fa68efa6a0a..0baa2ac45b2 100644
--- a/src/mame/includes/ssv.h
+++ b/src/mame/includes/ssv.h
@@ -125,6 +125,9 @@ public:
virtual void video_start();
DECLARE_VIDEO_START(gdfs);
DECLARE_VIDEO_START(eaglshot);
+ UINT32 screen_update_ssv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_gdfs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_eaglshot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/ssv.c -----------*/
@@ -135,6 +138,6 @@ void ssv_enable_video(running_machine &machine, int enable);
-SCREEN_UPDATE_IND16( ssv );
-SCREEN_UPDATE_IND16( eaglshot );
-SCREEN_UPDATE_IND16( gdfs );
+
+
+
diff --git a/src/mame/includes/st0016.h b/src/mame/includes/st0016.h
index a20fa4e348f..df9f3c015f3 100644
--- a/src/mame/includes/st0016.h
+++ b/src/mame/includes/st0016.h
@@ -37,6 +37,8 @@ public:
DECLARE_DRIVER_INIT(mayjisn2);
DECLARE_DRIVER_INIT(renju);
DECLARE_VIDEO_START(st0016);
+ void st0016_draw_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_st0016(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
#define ISMACS (st0016_game&0x80)
@@ -69,6 +71,3 @@ extern UINT32 st0016_game;
extern UINT8 *st0016_charram;
-void st0016_draw_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
-
-SCREEN_UPDATE_IND16(st0016);
diff --git a/src/mame/includes/stactics.h b/src/mame/includes/stactics.h
index b6c9b23bd80..cdef8aefdd0 100644
--- a/src/mame/includes/stactics.h
+++ b/src/mame/includes/stactics.h
@@ -59,6 +59,7 @@ public:
virtual void machine_start();
DECLARE_VIDEO_START(stactics);
DECLARE_PALETTE_INIT(stactics);
+ UINT32 screen_update_stactics(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/includes/stadhero.h b/src/mame/includes/stadhero.h
index 43453b0db71..8915601c8d6 100644
--- a/src/mame/includes/stadhero.h
+++ b/src/mame/includes/stadhero.h
@@ -15,11 +15,12 @@ public:
DECLARE_WRITE16_MEMBER(stadhero_pf1_data_w);
TILE_GET_INFO_MEMBER(get_pf1_tile_info);
virtual void video_start();
+ UINT32 screen_update_stadhero(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/stadhero.c -----------*/
-SCREEN_UPDATE_IND16( stadhero );
+
diff --git a/src/mame/includes/starcrus.h b/src/mame/includes/starcrus.h
index a0fb8bda970..a531b0ec71b 100644
--- a/src/mame/includes/starcrus.h
+++ b/src/mame/includes/starcrus.h
@@ -50,10 +50,11 @@ public:
DECLARE_WRITE8_MEMBER(starcrus_proj_parm_2_w);
DECLARE_READ8_MEMBER(starcrus_coll_det_r);
virtual void video_start();
+ UINT32 screen_update_starcrus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/starcrus.c -----------*/
-SCREEN_UPDATE_IND16( starcrus );
+
diff --git a/src/mame/includes/starfire.h b/src/mame/includes/starfire.h
index b97ab955e3a..158c014b8a2 100644
--- a/src/mame/includes/starfire.h
+++ b/src/mame/includes/starfire.h
@@ -43,11 +43,12 @@ public:
DECLARE_DRIVER_INIT(starfire);
DECLARE_DRIVER_INIT(fireone);
virtual void video_start();
+ UINT32 screen_update_starfire(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/starfire.c -----------*/
-SCREEN_UPDATE_RGB32( starfire );
+
diff --git a/src/mame/includes/starshp1.h b/src/mame/includes/starshp1.h
index 9cf0fc3bd66..cbcb3de0720 100644
--- a/src/mame/includes/starshp1.h
+++ b/src/mame/includes/starshp1.h
@@ -78,6 +78,8 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_starshp1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_starshp1(screen_device &screen, bool state);
};
@@ -86,8 +88,8 @@ public:
-SCREEN_UPDATE_IND16( starshp1 );
-SCREEN_VBLANK( starshp1 );
+
+
diff --git a/src/mame/includes/stfight.h b/src/mame/includes/stfight.h
index 4e367ee70fd..443f279ced8 100644
--- a/src/mame/includes/stfight.h
+++ b/src/mame/includes/stfight.h
@@ -45,6 +45,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_stfight(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -60,4 +61,4 @@ DECLARE_WRITE8_DEVICE_HANDLER( stfight_adpcm_control_w );
-SCREEN_UPDATE_IND16( stfight );
+
diff --git a/src/mame/includes/stlforce.h b/src/mame/includes/stlforce.h
index 00fd9df6c79..f21efa4fe9e 100644
--- a/src/mame/includes/stlforce.h
+++ b/src/mame/includes/stlforce.h
@@ -43,10 +43,11 @@ public:
TILE_GET_INFO_MEMBER(get_stlforce_mhigh_tile_info);
TILE_GET_INFO_MEMBER(get_stlforce_tx_tile_info);
virtual void video_start();
+ UINT32 screen_update_stlforce(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/stlforce.c -----------*/
-SCREEN_UPDATE_IND16( stlforce );
+
diff --git a/src/mame/includes/strnskil.h b/src/mame/includes/strnskil.h
index 676779b48fa..b442ad29822 100644
--- a/src/mame/includes/strnskil.h
+++ b/src/mame/includes/strnskil.h
@@ -30,6 +30,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_strnskil(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -38,4 +39,4 @@ public:
-SCREEN_UPDATE_IND16( strnskil );
+
diff --git a/src/mame/includes/stv.h b/src/mame/includes/stv.h
index 37bec569c49..10ec8fbf30c 100644
--- a/src/mame/includes/stv.h
+++ b/src/mame/includes/stv.h
@@ -198,6 +198,8 @@ public:
DECLARE_VIDEO_START(stv_vdp2);
DECLARE_MACHINE_START(stv);
DECLARE_MACHINE_RESET(stv);
+ UINT32 screen_update_saturn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_stv_vdp2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
#define MASTER_CLOCK_352 57272720
@@ -262,7 +264,7 @@ DECLARE_WRITE32_HANDLER ( saturn_vdp2_cram_w );
DECLARE_WRITE16_HANDLER ( saturn_vdp2_regs_w );
-SCREEN_UPDATE_RGB32( stv_vdp2 );
+
#if NEW_VIDEO_CODE
-SCREEN_UPDATE_RGB32( saturn );
+
#endif
diff --git a/src/mame/includes/subs.h b/src/mame/includes/subs.h
index 2ad26b25512..db2b7a23897 100644
--- a/src/mame/includes/subs.h
+++ b/src/mame/includes/subs.h
@@ -42,6 +42,8 @@ public:
DECLARE_WRITE8_MEMBER(subs_invert2_w);
virtual void machine_reset();
virtual void palette_init();
+ UINT32 screen_update_subs_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_subs_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -64,6 +66,6 @@ DISCRETE_SOUND_EXTERN( subs );
/*----------- defined in video/subs.c -----------*/
-SCREEN_UPDATE_IND16( subs_left );
-SCREEN_UPDATE_IND16( subs_right );
+
+
diff --git a/src/mame/includes/suna16.h b/src/mame/includes/suna16.h
index 8b041909e2f..015c0235bc6 100644
--- a/src/mame/includes/suna16.h
+++ b/src/mame/includes/suna16.h
@@ -36,6 +36,8 @@ public:
DECLARE_DRIVER_INIT(uballoon);
virtual void video_start();
DECLARE_MACHINE_RESET(uballoon);
+ UINT32 screen_update_suna16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_bestbest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -44,5 +46,5 @@ public:
-SCREEN_UPDATE_IND16( suna16 );
-SCREEN_UPDATE_IND16( bestbest );
+
+
diff --git a/src/mame/includes/suna8.h b/src/mame/includes/suna8.h
index 89612dffbce..06ba09e2db1 100644
--- a/src/mame/includes/suna8.h
+++ b/src/mame/includes/suna8.h
@@ -103,6 +103,7 @@ public:
DECLARE_MACHINE_RESET(brickzn);
DECLARE_VIDEO_START(suna8_textdim0);
DECLARE_MACHINE_RESET(hardhea2);
+ UINT32 screen_update_suna8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -121,4 +122,4 @@ SAMPLES_START( suna8_sh_start );
-SCREEN_UPDATE_IND16( suna8 );
+
diff --git a/src/mame/includes/supbtime.h b/src/mame/includes/supbtime.h
index 70ed5b58bd8..9a33b75fb20 100644
--- a/src/mame/includes/supbtime.h
+++ b/src/mame/includes/supbtime.h
@@ -28,10 +28,11 @@ public:
DECLARE_READ16_MEMBER(supbtime_controls_r);
DECLARE_WRITE16_MEMBER(sound_w);
virtual void machine_start();
+ UINT32 screen_update_supbtime(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/supbtime.c -----------*/
-SCREEN_UPDATE_IND16( supbtime );
+
diff --git a/src/mame/includes/superchs.h b/src/mame/includes/superchs.h
index 15d24389159..e97a5478315 100644
--- a/src/mame/includes/superchs.h
+++ b/src/mame/includes/superchs.h
@@ -38,10 +38,11 @@ public:
DECLARE_READ16_MEMBER(sub_cycle_r);
DECLARE_DRIVER_INIT(superchs);
virtual void video_start();
+ UINT32 screen_update_superchs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/superchs.c -----------*/
-SCREEN_UPDATE_IND16( superchs );
+
diff --git a/src/mame/includes/superqix.h b/src/mame/includes/superqix.h
index 4120e28a03f..f8d152cbf55 100644
--- a/src/mame/includes/superqix.h
+++ b/src/mame/includes/superqix.h
@@ -76,6 +76,8 @@ public:
DECLARE_VIDEO_START(pbillian);
DECLARE_MACHINE_START(superqix);
DECLARE_VIDEO_START(superqix);
+ UINT32 screen_update_pbillian(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_superqix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -83,6 +85,6 @@ public:
-SCREEN_UPDATE_IND16( pbillian );
-SCREEN_UPDATE_IND16( superqix );
+
+
diff --git a/src/mame/includes/suprloco.h b/src/mame/includes/suprloco.h
index 4c0320b8c1e..fed79be7c77 100644
--- a/src/mame/includes/suprloco.h
+++ b/src/mame/includes/suprloco.h
@@ -22,6 +22,7 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_suprloco(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -29,4 +30,4 @@ public:
-SCREEN_UPDATE_IND16( suprloco );
+
diff --git a/src/mame/includes/suprnova.h b/src/mame/includes/suprnova.h
index 6804d35abb2..5185fb590f9 100644
--- a/src/mame/includes/suprnova.h
+++ b/src/mame/includes/suprnova.h
@@ -134,6 +134,8 @@ public:
DECLARE_MACHINE_RESET(sknsu);
DECLARE_MACHINE_RESET(sknse);
DECLARE_MACHINE_RESET(sknsk);
+ UINT32 screen_update_skns(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void screen_eof_skns(screen_device &screen, bool state);
};
@@ -148,5 +150,5 @@ void skns_draw_sprites(
-SCREEN_VBLANK(skns);
-SCREEN_UPDATE_RGB32(skns);
+
+
diff --git a/src/mame/includes/suprridr.h b/src/mame/includes/suprridr.h
index d9131985992..d72c6f28125 100644
--- a/src/mame/includes/suprridr.h
+++ b/src/mame/includes/suprridr.h
@@ -40,6 +40,7 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info2);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_suprridr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -51,4 +52,4 @@ public:
int suprridr_is_screen_flipped(running_machine &machine);
-SCREEN_UPDATE_IND16( suprridr );
+
diff --git a/src/mame/includes/suprslam.h b/src/mame/includes/suprslam.h
index 7ad0a1d061f..7dd283b8e3e 100644
--- a/src/mame/includes/suprslam.h
+++ b/src/mame/includes/suprslam.h
@@ -49,6 +49,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_suprslam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -56,4 +57,4 @@ public:
-SCREEN_UPDATE_IND16( suprslam );
+
diff --git a/src/mame/includes/surpratk.h b/src/mame/includes/surpratk.h
index 8631bd3a116..29eaa70dd50 100644
--- a/src/mame/includes/surpratk.h
+++ b/src/mame/includes/surpratk.h
@@ -34,6 +34,7 @@ public:
DECLARE_WRITE8_MEMBER(surpratk_5fc0_w);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_surpratk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/surpratk.c -----------*/
@@ -41,4 +42,4 @@ public:
extern void surpratk_tile_callback(running_machine &machine, int layer,int bank,int *code,int *color,int *flags,int *priority);
extern void surpratk_sprite_callback(running_machine &machine, int *code,int *color,int *priority_mask);
-SCREEN_UPDATE_IND16( surpratk );
+
diff --git a/src/mame/includes/system1.h b/src/mame/includes/system1.h
index f8296321042..c2ce9f251ec 100644
--- a/src/mame/includes/system1.h
+++ b/src/mame/includes/system1.h
@@ -104,6 +104,9 @@ public:
virtual void video_start();
DECLARE_MACHINE_START(system2);
DECLARE_VIDEO_START(system2);
+ UINT32 screen_update_system1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_system2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_system2_rowscroll(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -117,6 +120,6 @@ DECLARE_WRITE8_DEVICE_HANDLER( system1_videoram_bank_w );
-SCREEN_UPDATE_IND16( system1 );
-SCREEN_UPDATE_IND16( system2 );
-SCREEN_UPDATE_IND16( system2_rowscroll );
+
+
+
diff --git a/src/mame/includes/system16.h b/src/mame/includes/system16.h
index 43dd9f42112..775fd757b26 100644
--- a/src/mame/includes/system16.h
+++ b/src/mame/includes/system16.h
@@ -189,6 +189,10 @@ public:
DECLARE_VIDEO_START(s16a_bootleg_passsht);
DECLARE_VIDEO_START(s16a_bootleg_wb3bl);
DECLARE_VIDEO_START(s16a_bootleg);
+ UINT32 screen_update_system16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_system18old(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_s16a_bootleg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_s16a_bootleg_passht4b(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/system16.c -----------*/
diff --git a/src/mame/includes/tagteam.h b/src/mame/includes/tagteam.h
index 6a00b1becc5..3161cca8991 100644
--- a/src/mame/includes/tagteam.h
+++ b/src/mame/includes/tagteam.h
@@ -27,6 +27,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_tagteam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -35,4 +36,4 @@ public:
-SCREEN_UPDATE_IND16( tagteam );
+
diff --git a/src/mame/includes/tail2nos.h b/src/mame/includes/tail2nos.h
index 539481da45d..49cb0ad5fed 100644
--- a/src/mame/includes/tail2nos.h
+++ b/src/mame/includes/tail2nos.h
@@ -38,6 +38,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_tail2nos(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -47,4 +48,4 @@ extern void tail2nos_zoom_callback(running_machine &machine, int *code,int *colo
-SCREEN_UPDATE_IND16( tail2nos );
+
diff --git a/src/mame/includes/taito_b.h b/src/mame/includes/taito_b.h
index 21c2c171e4f..357507766b3 100644
--- a/src/mame/includes/taito_b.h
+++ b/src/mame/includes/taito_b.h
@@ -70,6 +70,9 @@ public:
DECLARE_VIDEO_RESET(hitice);
DECLARE_VIDEO_START(realpunc);
DECLARE_VIDEO_START(taitob_core);
+ UINT32 screen_update_taitob(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_realpunc(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void screen_eof_taitob(screen_device &screen, bool state);
};
@@ -86,7 +89,7 @@ public:
-SCREEN_UPDATE_RGB32( realpunc );
-SCREEN_UPDATE_IND16( taitob );
-SCREEN_VBLANK( taitob );
+
+
+
diff --git a/src/mame/includes/taito_f2.h b/src/mame/includes/taito_f2.h
index 1dfd5f49bd3..60c915abf3b 100644
--- a/src/mame/includes/taito_f2.h
+++ b/src/mame/includes/taito_f2.h
@@ -129,6 +129,19 @@ public:
DECLARE_VIDEO_START(taitof2_deadconxj);
DECLARE_VIDEO_START(taitof2_dinorex);
DECLARE_VIDEO_START(taitof2_quiz);
+ UINT32 screen_update_taitof2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_taitof2_pri_roz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_taitof2_pri(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_taitof2_thundfox(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_taitof2_ssi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_taitof2_deadconx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_taitof2_yesnoj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_taitof2_metalb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_taitof2_no_buffer(screen_device &screen, bool state);
+ void screen_eof_taitof2_partial_buffer_delayed(screen_device &screen, bool state);
+ void screen_eof_taitof2_partial_buffer_delayed_thundfox(screen_device &screen, bool state);
+ void screen_eof_taitof2_full_buffer_delayed(screen_device &screen, bool state);
+ void screen_eof_taitof2_partial_buffer_delayed_qzchikyu(screen_device &screen, bool state);
};
/*----------- defined in video/taito_f2.c -----------*/
@@ -157,18 +170,18 @@ public:
-SCREEN_VBLANK( taitof2_no_buffer );
-SCREEN_VBLANK( taitof2_full_buffer_delayed );
-SCREEN_VBLANK( taitof2_partial_buffer_delayed );
-SCREEN_VBLANK( taitof2_partial_buffer_delayed_thundfox );
-SCREEN_VBLANK( taitof2_partial_buffer_delayed_qzchikyu );
-SCREEN_UPDATE_IND16( taitof2 );
-SCREEN_UPDATE_IND16( taitof2_pri );
-SCREEN_UPDATE_IND16( taitof2_pri_roz );
-SCREEN_UPDATE_IND16( taitof2_ssi );
-SCREEN_UPDATE_IND16( taitof2_thundfox );
-SCREEN_UPDATE_IND16( taitof2_deadconx );
-SCREEN_UPDATE_IND16( taitof2_metalb );
-SCREEN_UPDATE_IND16( taitof2_yesnoj );
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/mame/includes/taito_f3.h b/src/mame/includes/taito_f3.h
index 3da24e10e49..e9e406dd075 100644
--- a/src/mame/includes/taito_f3.h
+++ b/src/mame/includes/taito_f3.h
@@ -270,13 +270,15 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info_pixel);
DECLARE_MACHINE_START(f3);
DECLARE_VIDEO_START(f3);
+ UINT32 screen_update_f3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ void screen_eof_f3(screen_device &screen, bool state);
};
/*----------- defined in video/taito_f3.c -----------*/
-SCREEN_UPDATE_RGB32( f3 );
-SCREEN_VBLANK( f3 );
+
+
diff --git a/src/mame/includes/taito_h.h b/src/mame/includes/taito_h.h
index 2e81a887648..513bead5993 100644
--- a/src/mame/includes/taito_h.h
+++ b/src/mame/includes/taito_h.h
@@ -27,10 +27,13 @@ public:
DECLARE_WRITE8_MEMBER(sound_bankswitch_w);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_syvalion(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_recordbr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_dleague(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/taito_h.c -----------*/
-SCREEN_UPDATE_IND16( syvalion );
-SCREEN_UPDATE_IND16( recordbr );
-SCREEN_UPDATE_IND16( dleague );
+
+
+
diff --git a/src/mame/includes/taito_l.h b/src/mame/includes/taito_l.h
index 53205a9697b..143aa3fbd65 100644
--- a/src/mame/includes/taito_l.h
+++ b/src/mame/includes/taito_l.h
@@ -119,13 +119,15 @@ public:
DECLARE_MACHINE_RESET(horshoes);
DECLARE_MACHINE_RESET(palamed);
DECLARE_MACHINE_RESET(cachat);
+ UINT32 screen_update_taitol(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_taitol(screen_device &screen, bool state);
};
/*----------- defined in video/taito_l.c -----------*/
-SCREEN_VBLANK( taitol );
-SCREEN_UPDATE_IND16( taitol );
+
+
void taitol_chardef14_m(running_machine &machine, int offset);
void taitol_chardef15_m(running_machine &machine, int offset);
diff --git a/src/mame/includes/taito_o.h b/src/mame/includes/taito_o.h
index 8110f2f5040..e57a2c63a39 100644
--- a/src/mame/includes/taito_o.h
+++ b/src/mame/includes/taito_o.h
@@ -19,8 +19,9 @@ public:
DECLARE_WRITE16_MEMBER(io_w);
DECLARE_READ16_MEMBER(io_r);
virtual void machine_start();
+ UINT32 screen_update_parentj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/taito_o.c -----------*/
-SCREEN_UPDATE_IND16( parentj );
+
diff --git a/src/mame/includes/taito_z.h b/src/mame/includes/taito_z.h
index 2a94a266fb0..984857c35b2 100644
--- a/src/mame/includes/taito_z.h
+++ b/src/mame/includes/taito_z.h
@@ -77,6 +77,14 @@ public:
DECLARE_MACHINE_RESET(taitoz);
DECLARE_VIDEO_START(taitoz);
DECLARE_MACHINE_START(bshark);
+ UINT32 screen_update_contcirc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_chasehq(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_bshark(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_sci(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_aquajack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_spacegun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_dblaxle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_racingb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/taito_z.c -----------*/
@@ -84,11 +92,11 @@ public:
-SCREEN_UPDATE_IND16( contcirc );
-SCREEN_UPDATE_IND16( chasehq );
-SCREEN_UPDATE_IND16( bshark );
-SCREEN_UPDATE_IND16( sci );
-SCREEN_UPDATE_IND16( aquajack );
-SCREEN_UPDATE_IND16( spacegun );
-SCREEN_UPDATE_IND16( dblaxle );
-SCREEN_UPDATE_IND16( racingb );
+
+
+
+
+
+
+
+
diff --git a/src/mame/includes/taitoair.h b/src/mame/includes/taitoair.h
index 9f4b5f36a56..1ad8e848576 100644
--- a/src/mame/includes/taitoair.h
+++ b/src/mame/includes/taitoair.h
@@ -82,12 +82,13 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_taitoair(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/taitoair.c -----------*/
-SCREEN_UPDATE_IND16( taitoair );
+
diff --git a/src/mame/includes/taitojc.h b/src/mame/includes/taitojc.h
index da3a46862ae..34b2248c679 100644
--- a/src/mame/includes/taitojc.h
+++ b/src/mame/includes/taitojc.h
@@ -159,6 +159,8 @@ public:
TILE_GET_INFO_MEMBER(taitojc_tile_info);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_taitojc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_dendego(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -168,8 +170,8 @@ void taitojc_clear_frame(running_machine &machine);
void taitojc_render_polygons(running_machine &machine, UINT16 *polygon_fifo, int length);
-SCREEN_UPDATE_IND16(taitojc);
-SCREEN_UPDATE_IND16(dendego);
+
+
// lookup tables for densha de go analog controls/meters
const int dendego_odometer_table[0x100] =
diff --git a/src/mame/includes/taitosj.h b/src/mame/includes/taitosj.h
index 681a9ef2d3c..92b8df20826 100644
--- a/src/mame/includes/taitosj.h
+++ b/src/mame/includes/taitosj.h
@@ -88,6 +88,8 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_taitosj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_kikstart(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -101,5 +103,5 @@ public:
/*----------- defined in video/taitosj.c -----------*/
-SCREEN_UPDATE_IND16( taitosj );
-SCREEN_UPDATE_IND16( kikstart );
+
+
diff --git a/src/mame/includes/tank8.h b/src/mame/includes/tank8.h
index f91aa944d00..657b2e76f0e 100644
--- a/src/mame/includes/tank8.h
+++ b/src/mame/includes/tank8.h
@@ -59,6 +59,8 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_tank8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_tank8(screen_device &screen, bool state);
};
@@ -75,9 +77,9 @@ void tank8_set_collision(running_machine &machine, int index);
/*----------- defined in video/tank8.c -----------*/
-SCREEN_VBLANK( tank8 );
-SCREEN_UPDATE_IND16( tank8 );
+
+
diff --git a/src/mame/includes/tankbatt.h b/src/mame/includes/tankbatt.h
index 5c8ffae47f7..2819694ac7e 100644
--- a/src/mame/includes/tankbatt.h
+++ b/src/mame/includes/tankbatt.h
@@ -29,6 +29,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_tankbatt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -37,4 +38,4 @@ public:
-SCREEN_UPDATE_IND16( tankbatt );
+
diff --git a/src/mame/includes/tankbust.h b/src/mame/includes/tankbust.h
index 3023f0567b8..f846cc4af8c 100644
--- a/src/mame/includes/tankbust.h
+++ b/src/mame/includes/tankbust.h
@@ -42,13 +42,14 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_tankbust(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/tankbust.c -----------*/
-SCREEN_UPDATE_IND16( tankbust );
+
diff --git a/src/mame/includes/taotaido.h b/src/mame/includes/taotaido.h
index 3becb7a55f7..7501d9fccfa 100644
--- a/src/mame/includes/taotaido.h
+++ b/src/mame/includes/taotaido.h
@@ -30,11 +30,13 @@ public:
TILE_GET_INFO_MEMBER(taotaido_bg_tile_info);
TILEMAP_MAPPER_MEMBER(taotaido_tilemap_scan_rows);
virtual void video_start();
+ UINT32 screen_update_taotaido(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_taotaido(screen_device &screen, bool state);
};
/*----------- defined in video/taotaido.c -----------*/
-SCREEN_UPDATE_IND16( taotaido );
-SCREEN_VBLANK( taotaido );
+
+
diff --git a/src/mame/includes/targeth.h b/src/mame/includes/targeth.h
index 7d1629b3566..b059c97b27f 100644
--- a/src/mame/includes/targeth.h
+++ b/src/mame/includes/targeth.h
@@ -20,10 +20,11 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info_targeth_screen0);
TILE_GET_INFO_MEMBER(get_tile_info_targeth_screen1);
virtual void video_start();
+ UINT32 screen_update_targeth(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/targeth.c -----------*/
-SCREEN_UPDATE_IND16( targeth );
+
diff --git a/src/mame/includes/tatsumi.h b/src/mame/includes/tatsumi.h
index be44145d436..f89250f5d28 100644
--- a/src/mame/includes/tatsumi.h
+++ b/src/mame/includes/tatsumi.h
@@ -120,6 +120,10 @@ public:
DECLARE_VIDEO_START(roundup5);
DECLARE_VIDEO_START(cyclwarr);
DECLARE_VIDEO_START(bigfight);
+ UINT32 screen_update_apache3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_roundup5(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_cyclwarr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_bigfight(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -141,8 +145,8 @@ void tatsumi_reset(running_machine &machine);
-SCREEN_UPDATE_RGB32( roundup5 );
-SCREEN_UPDATE_RGB32( apache3 );
-SCREEN_UPDATE_RGB32( cyclwarr );
-SCREEN_UPDATE_RGB32( bigfight );
+
+
+
+
diff --git a/src/mame/includes/taxidriv.h b/src/mame/includes/taxidriv.h
index 9db11ed694e..8cdbe960f84 100644
--- a/src/mame/includes/taxidriv.h
+++ b/src/mame/includes/taxidriv.h
@@ -51,9 +51,10 @@ public:
DECLARE_READ8_MEMBER(p8910_1a_r);
DECLARE_WRITE8_MEMBER(p8910_0b_w);
DECLARE_WRITE8_MEMBER(taxidriv_spritectrl_w);
+ UINT32 screen_update_taxidriv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/taxidriv.c -----------*/
-SCREEN_UPDATE_IND16( taxidriv );
+
diff --git a/src/mame/includes/tbowl.h b/src/mame/includes/tbowl.h
index 6961a53d227..035bcc6cb75 100644
--- a/src/mame/includes/tbowl.h
+++ b/src/mame/includes/tbowl.h
@@ -50,6 +50,8 @@ public:
TILE_GET_INFO_MEMBER(get_bg2_tile_info);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_tbowl_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_tbowl_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -58,6 +60,6 @@ public:
-SCREEN_UPDATE_IND16( tbowl_left );
-SCREEN_UPDATE_IND16( tbowl_right );
+
+
diff --git a/src/mame/includes/tceptor.h b/src/mame/includes/tceptor.h
index 19199f0ff0e..5979d184a40 100644
--- a/src/mame/includes/tceptor.h
+++ b/src/mame/includes/tceptor.h
@@ -60,6 +60,10 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_tceptor_2d(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_tceptor_3d_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_tceptor_3d_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_tceptor(screen_device &screen, bool state);
};
@@ -67,9 +71,9 @@ public:
-SCREEN_UPDATE_IND16( tceptor_2d );
-SCREEN_UPDATE_IND16( tceptor_3d_left );
-SCREEN_UPDATE_IND16( tceptor_3d_right );
-SCREEN_VBLANK( tceptor );
+
+
+
+
diff --git a/src/mame/includes/tecmo.h b/src/mame/includes/tecmo.h
index 90448b7c5dc..b18f8c87c2a 100644
--- a/src/mame/includes/tecmo.h
+++ b/src/mame/includes/tecmo.h
@@ -48,6 +48,7 @@ public:
TILE_GET_INFO_MEMBER(get_tx_tile_info);
DECLARE_MACHINE_RESET(rygar);
DECLARE_VIDEO_START(tecmo);
+ UINT32 screen_update_tecmo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -55,4 +56,4 @@ public:
-SCREEN_UPDATE_IND16( tecmo );
+
diff --git a/src/mame/includes/tecmo16.h b/src/mame/includes/tecmo16.h
index 6db07f1fcb0..d37023bbb2e 100644
--- a/src/mame/includes/tecmo16.h
+++ b/src/mame/includes/tecmo16.h
@@ -49,6 +49,7 @@ public:
virtual void video_start();
DECLARE_VIDEO_START(ginkun);
DECLARE_VIDEO_START(riot);
+ UINT32 screen_update_tecmo16(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -59,4 +60,4 @@ public:
-SCREEN_UPDATE_RGB32( tecmo16 );
+
diff --git a/src/mame/includes/tecmosys.h b/src/mame/includes/tecmosys.h
index 544a57f18be..8ca32f5d9f0 100644
--- a/src/mame/includes/tecmosys.h
+++ b/src/mame/includes/tecmosys.h
@@ -79,6 +79,7 @@ public:
TILE_GET_INFO_MEMBER(get_fg_tile_info);
virtual void machine_start();
virtual void video_start();
+ UINT32 screen_update_tecmosys(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -91,5 +92,5 @@ void tecmosys_prot_init(running_machine &machine, int which);
/*----------- defined in video/tecmosys.c -----------*/
-SCREEN_UPDATE_RGB32(tecmosys);
+
diff --git a/src/mame/includes/tehkanwc.h b/src/mame/includes/tehkanwc.h
index a7822883a1b..f5248363182 100644
--- a/src/mame/includes/tehkanwc.h
+++ b/src/mame/includes/tehkanwc.h
@@ -46,6 +46,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
TILE_GET_INFO_MEMBER(get_fg_tile_info);
virtual void video_start();
+ UINT32 screen_update_tehkanwc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mame/includes/terracre.h b/src/mame/includes/terracre.h
index 3ff643d5ed4..89892ac85b5 100644
--- a/src/mame/includes/terracre.h
+++ b/src/mame/includes/terracre.h
@@ -36,6 +36,7 @@ public:
virtual void video_start();
virtual void palette_init();
DECLARE_MACHINE_START(amazon);
+ UINT32 screen_update_amazon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -43,4 +44,4 @@ public:
-SCREEN_UPDATE_IND16( amazon );
+
diff --git a/src/mame/includes/tetrisp2.h b/src/mame/includes/tetrisp2.h
index be45e93012d..c024cf58041 100644
--- a/src/mame/includes/tetrisp2.h
+++ b/src/mame/includes/tetrisp2.h
@@ -106,6 +106,10 @@ public:
DECLARE_VIDEO_START(nndmseal);
DECLARE_VIDEO_START(rockntread);
DECLARE_VIDEO_START(rocknms);
+ UINT32 screen_update_tetrisp2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_rockntread(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_rocknms_left(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_rocknms_right(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
class stepstag_state : public tetrisp2_state
@@ -125,6 +129,9 @@ public:
DECLARE_WRITE16_MEMBER( stepstag_palette_w );
DECLARE_DRIVER_INIT(stepstag);
DECLARE_VIDEO_START(stepstag);
+ UINT32 screen_update_stepstag_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_stepstag_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_stepstag_mid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/tetrisp2.c -----------*/
@@ -133,18 +140,18 @@ public:
-SCREEN_UPDATE_IND16( tetrisp2 );
-SCREEN_UPDATE_IND16( rockntread );
-SCREEN_UPDATE_RGB32( rocknms_left );
-SCREEN_UPDATE_RGB32( rocknms_right );
-SCREEN_UPDATE_IND16( stepstag_left );
-SCREEN_UPDATE_IND16( stepstag_mid );
-SCREEN_UPDATE_IND16( stepstag_right );
+
+
+
+
+
+
+
diff --git a/src/mame/includes/thedeep.h b/src/mame/includes/thedeep.h
index f7446afe6cc..6f8c9bd143f 100644
--- a/src/mame/includes/thedeep.h
+++ b/src/mame/includes/thedeep.h
@@ -49,6 +49,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_thedeep(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -57,5 +58,5 @@ public:
-SCREEN_UPDATE_IND16( thedeep );
+
diff --git a/src/mame/includes/thepit.h b/src/mame/includes/thepit.h
index 9b4f84cd7ab..1f72a6a0cb3 100644
--- a/src/mame/includes/thepit.h
+++ b/src/mame/includes/thepit.h
@@ -38,6 +38,7 @@ public:
virtual void video_start();
virtual void palette_init();
DECLARE_PALETTE_INIT(suprmous);
+ UINT32 screen_update_thepit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -46,4 +47,4 @@ public:
-SCREEN_UPDATE_IND16( thepit );
+
diff --git a/src/mame/includes/thief.h b/src/mame/includes/thief.h
index 3e155ab3908..425f1bde82e 100644
--- a/src/mame/includes/thief.h
+++ b/src/mame/includes/thief.h
@@ -33,6 +33,7 @@ public:
DECLARE_WRITE8_MEMBER(tape_control_w);
DECLARE_DRIVER_INIT(thief);
virtual void video_start();
+ UINT32 screen_update_thief(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -40,4 +41,4 @@ public:
-SCREEN_UPDATE_IND16( thief );
+
diff --git a/src/mame/includes/thoop2.h b/src/mame/includes/thoop2.h
index 1fec90792d1..43a33a42262 100644
--- a/src/mame/includes/thoop2.h
+++ b/src/mame/includes/thoop2.h
@@ -20,10 +20,11 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info_thoop2_screen0);
TILE_GET_INFO_MEMBER(get_tile_info_thoop2_screen1);
virtual void video_start();
+ UINT32 screen_update_thoop2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/thoop2.c -----------*/
-SCREEN_UPDATE_IND16( thoop2 );
+
diff --git a/src/mame/includes/thunderj.h b/src/mame/includes/thunderj.h
index 3c082872e1d..0120128846c 100644
--- a/src/mame/includes/thunderj.h
+++ b/src/mame/includes/thunderj.h
@@ -24,10 +24,11 @@ public:
DECLARE_MACHINE_START(thunderj);
DECLARE_MACHINE_RESET(thunderj);
DECLARE_VIDEO_START(thunderj);
+ UINT32 screen_update_thunderj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/thunderj.c -----------*/
-SCREEN_UPDATE_IND16( thunderj );
+
diff --git a/src/mame/includes/thunderx.h b/src/mame/includes/thunderx.h
index b0614d553db..39a50644410 100644
--- a/src/mame/includes/thunderx.h
+++ b/src/mame/includes/thunderx.h
@@ -50,6 +50,7 @@ public:
DECLARE_MACHINE_RESET(scontra);
DECLARE_MACHINE_START(thunderx);
DECLARE_MACHINE_RESET(thunderx);
+ UINT32 screen_update_scontra(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -59,4 +60,4 @@ extern void thunderx_tile_callback(running_machine &machine, int layer,int bank,
extern void thunderx_sprite_callback(running_machine &machine, int *code,int *color,int *priority_mask,int *shadow);
-SCREEN_UPDATE_IND16( scontra );
+
diff --git a/src/mame/includes/tiamc1.h b/src/mame/includes/tiamc1.h
index cfe3875d1a2..b705619ecca 100644
--- a/src/mame/includes/tiamc1.h
+++ b/src/mame/includes/tiamc1.h
@@ -33,6 +33,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_tiamc1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -71,5 +72,5 @@ DECLARE_WRITE8_DEVICE_HANDLER( tiamc1_timer1_gate_w );
-SCREEN_UPDATE_IND16( tiamc1 );
+
diff --git a/src/mame/includes/tigeroad.h b/src/mame/includes/tigeroad.h
index 84cf7715938..5b9735993c6 100644
--- a/src/mame/includes/tigeroad.h
+++ b/src/mame/includes/tigeroad.h
@@ -27,10 +27,11 @@ public:
TILE_GET_INFO_MEMBER(get_fg_tile_info);
TILEMAP_MAPPER_MEMBER(tigeroad_tilemap_scan);
virtual void video_start();
+ UINT32 screen_update_tigeroad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/tigeroad.c -----------*/
-SCREEN_UPDATE_IND16( tigeroad );
+
diff --git a/src/mame/includes/timelimt.h b/src/mame/includes/timelimt.h
index 59007202114..1853eb734a2 100644
--- a/src/mame/includes/timelimt.h
+++ b/src/mame/includes/timelimt.h
@@ -28,6 +28,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_timelimt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -35,5 +36,5 @@ public:
-SCREEN_UPDATE_IND16( timelimt );
+
diff --git a/src/mame/includes/timeplt.h b/src/mame/includes/timeplt.h
index ed13097c20a..ca886e9462b 100644
--- a/src/mame/includes/timeplt.h
+++ b/src/mame/includes/timeplt.h
@@ -50,6 +50,7 @@ public:
virtual void video_start();
virtual void palette_init();
DECLARE_VIDEO_START(chkun);
+ UINT32 screen_update_timeplt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -59,4 +60,4 @@ public:
-SCREEN_UPDATE_IND16( timeplt );
+
diff --git a/src/mame/includes/tmnt.h b/src/mame/includes/tmnt.h
index 4021243e5a3..a7ac603cf63 100644
--- a/src/mame/includes/tmnt.h
+++ b/src/mame/includes/tmnt.h
@@ -132,6 +132,14 @@ public:
DECLARE_VIDEO_START(glfgreat);
DECLARE_MACHINE_START(prmrsocr);
DECLARE_VIDEO_START(prmrsocr);
+ UINT32 screen_update_mia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_tmnt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_punkshot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_lgtnfght(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_glfgreat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_tmnt2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_thndrx2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_blswhstl(screen_device &screen, bool state);
};
@@ -159,12 +167,12 @@ extern void prmrsocr_sprite_callback(running_machine &machine, int *code,int *co
-SCREEN_UPDATE_IND16( mia );
-SCREEN_UPDATE_IND16( tmnt );
-SCREEN_UPDATE_IND16( punkshot );
-SCREEN_UPDATE_IND16( lgtnfght );
-SCREEN_UPDATE_IND16( glfgreat );
-SCREEN_UPDATE_IND16( tmnt2 );
-SCREEN_UPDATE_IND16( thndrx2 );
-SCREEN_VBLANK( blswhstl );
+
+
+
+
+
+
+
+
diff --git a/src/mame/includes/tnzs.h b/src/mame/includes/tnzs.h
index c880a55172a..51366adfe17 100644
--- a/src/mame/includes/tnzs.h
+++ b/src/mame/includes/tnzs.h
@@ -96,6 +96,8 @@ public:
DECLARE_PALETTE_INIT(arknoid2);
DECLARE_MACHINE_START(jpopnics);
DECLARE_MACHINE_RESET(jpopnics);
+ UINT32 screen_update_tnzs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_tnzs(screen_device &screen, bool state);
};
@@ -113,5 +115,5 @@ INTERRUPT_GEN( arknoid2_interrupt );
/*----------- defined in video/tnzs.c -----------*/
-SCREEN_UPDATE_IND16( tnzs );
-SCREEN_VBLANK( tnzs );
+
+
diff --git a/src/mame/includes/toaplan1.h b/src/mame/includes/toaplan1.h
index 5eb70418eb9..c1464ac9dc8 100644
--- a/src/mame/includes/toaplan1.h
+++ b/src/mame/includes/toaplan1.h
@@ -138,6 +138,11 @@ public:
DECLARE_MACHINE_RESET(zerowing);
DECLARE_MACHINE_RESET(demonwld);
DECLARE_MACHINE_RESET(vimana);
+ UINT32 screen_update_rallybik(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_toaplan1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_rallybik(screen_device &screen, bool state);
+ void screen_eof_toaplan1(screen_device &screen, bool state);
+ void screen_eof_samesame(screen_device &screen, bool state);
};
@@ -160,10 +165,10 @@ void vimana_driver_savestate(running_machine &machine);
-SCREEN_VBLANK( rallybik );
-SCREEN_VBLANK( toaplan1 );
-SCREEN_VBLANK( samesame );
-SCREEN_UPDATE_IND16( rallybik );
-SCREEN_UPDATE_IND16( toaplan1 );
+
+
+
+
+
diff --git a/src/mame/includes/toaplan2.h b/src/mame/includes/toaplan2.h
index 698047ef63e..e50b8ff6a2b 100644
--- a/src/mame/includes/toaplan2.h
+++ b/src/mame/includes/toaplan2.h
@@ -119,6 +119,14 @@ public:
DECLARE_VIDEO_START(bgaregga);
DECLARE_VIDEO_START(batrider);
DECLARE_VIDEO_START(bgareggabl);
+ UINT32 screen_update_toaplan2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_dogyuun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_truxton2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_batsugun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_batrider(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_toaplan2_dual(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_toaplan2_mixed(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_toaplan2(screen_device &screen, bool state);
};
/*----------- defined in video/toaplan2.c -----------*/
@@ -130,13 +138,13 @@ public:
-SCREEN_UPDATE_IND16( toaplan2 );
-SCREEN_UPDATE_IND16( truxton2 );
-SCREEN_UPDATE_IND16( batrider );
-SCREEN_UPDATE_IND16( dogyuun );
-SCREEN_UPDATE_IND16( batsugun );
-SCREEN_VBLANK( toaplan2 );
+
+
+
+
+
+
/* non-vdp text layer */
diff --git a/src/mame/includes/toki.h b/src/mame/includes/toki.h
index 3a6de58bb85..bf4defb1383 100644
--- a/src/mame/includes/toki.h
+++ b/src/mame/includes/toki.h
@@ -38,11 +38,13 @@ public:
TILE_GET_INFO_MEMBER(get_back_tile_info);
TILE_GET_INFO_MEMBER(get_fore_tile_info);
virtual void video_start();
+ UINT32 screen_update_toki(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_tokib(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/toki.c -----------*/
-SCREEN_UPDATE_IND16( toki );
-SCREEN_UPDATE_IND16( tokib );
+
+
diff --git a/src/mame/includes/toobin.h b/src/mame/includes/toobin.h
index b9cdcb45322..4584d900a4f 100644
--- a/src/mame/includes/toobin.h
+++ b/src/mame/includes/toobin.h
@@ -25,6 +25,7 @@ public:
DECLARE_MACHINE_START(toobin);
DECLARE_MACHINE_RESET(toobin);
DECLARE_VIDEO_START(toobin);
+ UINT32 screen_update_toobin(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -37,4 +38,4 @@ DECLARE_WRITE16_HANDLER( toobin_yscroll_w );
DECLARE_WRITE16_HANDLER( toobin_slip_w );
-SCREEN_UPDATE_RGB32( toobin );
+
diff --git a/src/mame/includes/topspeed.h b/src/mame/includes/topspeed.h
index b354a4a8704..d09c67a307d 100644
--- a/src/mame/includes/topspeed.h
+++ b/src/mame/includes/topspeed.h
@@ -54,9 +54,10 @@ public:
DECLARE_CUSTOM_INPUT_MEMBER(topspeed_pedal_r);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_topspeed(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/topspeed.c -----------*/
-SCREEN_UPDATE_IND16( topspeed );
+
diff --git a/src/mame/includes/toypop.h b/src/mame/includes/toypop.h
index d5c9120814c..5553ffc9d8f 100644
--- a/src/mame/includes/toypop.h
+++ b/src/mame/includes/toypop.h
@@ -49,11 +49,12 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_toypop(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/toypop.c -----------*/
-SCREEN_UPDATE_IND16( toypop );
+
diff --git a/src/mame/includes/tp84.h b/src/mame/includes/tp84.h
index f38e4dc2834..ff7ab0059f1 100644
--- a/src/mame/includes/tp84.h
+++ b/src/mame/includes/tp84.h
@@ -40,6 +40,7 @@ public:
virtual void machine_start();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_tp84(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -48,4 +49,4 @@ public:
-SCREEN_UPDATE_IND16( tp84 );
+
diff --git a/src/mame/includes/trackfld.h b/src/mame/includes/trackfld.h
index d6199ad94c1..6882fd7fa83 100644
--- a/src/mame/includes/trackfld.h
+++ b/src/mame/includes/trackfld.h
@@ -65,6 +65,7 @@ public:
DECLARE_VIDEO_START(trackfld);
DECLARE_PALETTE_INIT(trackfld);
DECLARE_VIDEO_START(atlantol);
+ UINT32 screen_update_trackfld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -73,6 +74,6 @@ public:
-SCREEN_UPDATE_IND16( trackfld );
+
diff --git a/src/mame/includes/travrusa.h b/src/mame/includes/travrusa.h
index d98a838de2b..008d3c3e7ef 100644
--- a/src/mame/includes/travrusa.h
+++ b/src/mame/includes/travrusa.h
@@ -24,6 +24,7 @@ public:
virtual void video_start();
virtual void palette_init();
DECLARE_PALETTE_INIT(shtrider);
+ UINT32 screen_update_travrusa(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/travrusa.c -----------*/
@@ -32,4 +33,4 @@ public:
-SCREEN_UPDATE_IND16( travrusa );
+
diff --git a/src/mame/includes/triplhnt.h b/src/mame/includes/triplhnt.h
index 1a1f9affbd9..a068a64d4e3 100644
--- a/src/mame/includes/triplhnt.h
+++ b/src/mame/includes/triplhnt.h
@@ -50,6 +50,7 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_triplhnt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -67,6 +68,6 @@ extern const samples_interface triplhnt_samples_interface;
/*----------- defined in video/triplhnt.c -----------*/
-SCREEN_UPDATE_IND16( triplhnt );
+
diff --git a/src/mame/includes/truco.h b/src/mame/includes/truco.h
index 46717833a17..9fa32a2c023 100644
--- a/src/mame/includes/truco.h
+++ b/src/mame/includes/truco.h
@@ -16,10 +16,11 @@ public:
DECLARE_WRITE8_MEMBER(pia_irqb_w);
virtual void machine_reset();
virtual void palette_init();
+ UINT32 screen_update_truco(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/truco.c -----------*/
-SCREEN_UPDATE_IND16( truco );
+
diff --git a/src/mame/includes/trucocl.h b/src/mame/includes/trucocl.h
index 064de31f262..c3a0b496d4b 100644
--- a/src/mame/includes/trucocl.h
+++ b/src/mame/includes/trucocl.h
@@ -21,6 +21,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_trucocl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -28,4 +29,4 @@ public:
-SCREEN_UPDATE_IND16( trucocl );
+
diff --git a/src/mame/includes/tryout.h b/src/mame/includes/tryout.h
index a105af08149..464c821a1a7 100644
--- a/src/mame/includes/tryout.h
+++ b/src/mame/includes/tryout.h
@@ -34,6 +34,7 @@ public:
TILEMAP_MAPPER_MEMBER(get_bg_memory_offset);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_tryout(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -42,4 +43,4 @@ public:
-SCREEN_UPDATE_IND16( tryout );
+
diff --git a/src/mame/includes/tsamurai.h b/src/mame/includes/tsamurai.h
index 7001cf56380..1ca30304287 100644
--- a/src/mame/includes/tsamurai.h
+++ b/src/mame/includes/tsamurai.h
@@ -57,6 +57,8 @@ public:
TILE_GET_INFO_MEMBER(get_vsgongf_tile_info);
DECLARE_VIDEO_START(tsamurai);
DECLARE_VIDEO_START(vsgongf);
+ UINT32 screen_update_tsamurai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_vsgongf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -66,7 +68,7 @@ public:
-SCREEN_UPDATE_IND16( tsamurai );
-SCREEN_UPDATE_IND16( vsgongf );
+
+
diff --git a/src/mame/includes/tubep.h b/src/mame/includes/tubep.h
index f50cecd6605..5abba37435c 100644
--- a/src/mame/includes/tubep.h
+++ b/src/mame/includes/tubep.h
@@ -76,6 +76,8 @@ public:
DECLARE_MACHINE_START(rjammer);
DECLARE_MACHINE_RESET(rjammer);
DECLARE_PALETTE_INIT(rjammer);
+ UINT32 screen_update_tubep(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_rjammer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -83,9 +85,9 @@ public:
void tubep_vblank_end(running_machine &machine);
-SCREEN_UPDATE_IND16( tubep );
-SCREEN_UPDATE_IND16( rjammer );
+
+
diff --git a/src/mame/includes/tumbleb.h b/src/mame/includes/tumbleb.h
index 1cf72cd3128..e09a331fb5d 100644
--- a/src/mame/includes/tumbleb.h
+++ b/src/mame/includes/tumbleb.h
@@ -91,18 +91,28 @@ public:
DECLARE_VIDEO_START(suprtrio);
DECLARE_VIDEO_START(pangpang);
DECLARE_VIDEO_START(sdfight);
+ UINT32 screen_update_tumblepb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_jumpkids(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_fncywld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_semicom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_suprtrio(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_pangpang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_semicom_altoffsets(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_bcstory(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_semibase(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_sdfight(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/tumbleb.c -----------*/
-SCREEN_UPDATE_IND16( tumblepb );
-SCREEN_UPDATE_IND16( jumpkids );
-SCREEN_UPDATE_IND16( fncywld );
-SCREEN_UPDATE_IND16( semicom );
-SCREEN_UPDATE_IND16( semicom_altoffsets );
-SCREEN_UPDATE_IND16( bcstory );
-SCREEN_UPDATE_IND16( semibase );
-SCREEN_UPDATE_IND16( suprtrio );
-SCREEN_UPDATE_IND16( pangpang );
-SCREEN_UPDATE_IND16( sdfight );
+
+
+
+
+
+
+
+
+
+
diff --git a/src/mame/includes/tumblep.h b/src/mame/includes/tumblep.h
index 235348539ab..068caedad90 100644
--- a/src/mame/includes/tumblep.h
+++ b/src/mame/includes/tumblep.h
@@ -30,10 +30,11 @@ public:
DECLARE_WRITE16_MEMBER(tumblep_oki_w);
DECLARE_DRIVER_INIT(tumblep);
virtual void machine_start();
+ UINT32 screen_update_tumblep(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/tumblep.c -----------*/
-SCREEN_UPDATE_IND16( tumblep );
+
diff --git a/src/mame/includes/tunhunt.h b/src/mame/includes/tunhunt.h
index b8ab9f1108e..def2f16c199 100644
--- a/src/mame/includes/tunhunt.h
+++ b/src/mame/includes/tunhunt.h
@@ -24,6 +24,7 @@ public:
TILE_GET_INFO_MEMBER(get_fg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_tunhunt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -32,4 +33,4 @@ public:
-SCREEN_UPDATE_IND16( tunhunt );
+
diff --git a/src/mame/includes/turbo.h b/src/mame/includes/turbo.h
index 1b7d143407d..6519af93888 100644
--- a/src/mame/includes/turbo.h
+++ b/src/mame/includes/turbo.h
@@ -128,6 +128,9 @@ public:
DECLARE_MACHINE_RESET(buckrog);
DECLARE_VIDEO_START(buckrog);
DECLARE_PALETTE_INIT(buckrog);
+ UINT32 screen_update_turbo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_subroc3d(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_buckrog(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -153,12 +156,12 @@ DECLARE_WRITE8_DEVICE_HANDLER( buckrog_sound_b_w );
-SCREEN_UPDATE_IND16( turbo );
-SCREEN_UPDATE_IND16( subroc3d );
-SCREEN_UPDATE_IND16( buckrog );
+
+
+
diff --git a/src/mame/includes/tutankhm.h b/src/mame/includes/tutankhm.h
index 7a9d6d8cd60..c826e72db71 100644
--- a/src/mame/includes/tutankhm.h
+++ b/src/mame/includes/tutankhm.h
@@ -31,10 +31,11 @@ public:
DECLARE_WRITE8_MEMBER(tutankhm_flip_screen_y_w);
DECLARE_MACHINE_START(tutankhm);
DECLARE_MACHINE_RESET(tutankhm);
+ UINT32 screen_update_tutankhm(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/tutankhm.c -----------*/
-SCREEN_UPDATE_RGB32( tutankhm );
+
diff --git a/src/mame/includes/twin16.h b/src/mame/includes/twin16.h
index ed6b4bb061a..feb9df74d4f 100644
--- a/src/mame/includes/twin16.h
+++ b/src/mame/includes/twin16.h
@@ -61,6 +61,8 @@ public:
DECLARE_MACHINE_START(twin16);
DECLARE_MACHINE_RESET(twin16);
DECLARE_VIDEO_START(twin16);
+ UINT32 screen_update_twin16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_twin16(screen_device &screen, bool state);
};
@@ -73,7 +75,7 @@ int twin16_spriteram_process_enable( running_machine &machine );
-SCREEN_UPDATE_IND16( twin16 );
-SCREEN_VBLANK( twin16 );
+
+
void twin16_spriteram_process( running_machine &machine );
diff --git a/src/mame/includes/twincobr.h b/src/mame/includes/twincobr.h
index a9ee1688bc8..192d3f8cfe0 100644
--- a/src/mame/includes/twincobr.h
+++ b/src/mame/includes/twincobr.h
@@ -104,6 +104,7 @@ public:
DECLARE_MACHINE_RESET(twincobr);
DECLARE_VIDEO_START(toaplan0);
DECLARE_MACHINE_RESET(wardner);
+ UINT32 screen_update_toaplan0(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -126,4 +127,4 @@ extern void twincobr_flipscreen(running_machine &machine, int flip);
extern void twincobr_display(running_machine &machine, int enable);
-SCREEN_UPDATE_IND16( toaplan0 );
+
diff --git a/src/mame/includes/tx1.h b/src/mame/includes/tx1.h
index 8d5f645d7fc..c0d23a52636 100644
--- a/src/mame/includes/tx1.h
+++ b/src/mame/includes/tx1.h
@@ -168,6 +168,15 @@ public:
DECLARE_VIDEO_START(buggyboy);
DECLARE_PALETTE_INIT(buggyboy);
DECLARE_VIDEO_START(buggybjr);
+ UINT32 screen_update_tx1_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_tx1_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_tx1_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_buggyboy_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_buggyboy_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_buggyboy_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_buggybjr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_tx1(screen_device &screen, bool state);
+ void screen_eof_buggyboy(screen_device &screen, bool state);
};
@@ -237,17 +246,17 @@ extern const device_type BUGGYBOY;
-SCREEN_UPDATE_IND16( tx1_left );
-SCREEN_UPDATE_IND16( tx1_middle );
-SCREEN_UPDATE_IND16( tx1_right );
-SCREEN_VBLANK( tx1 );
-SCREEN_UPDATE_IND16( buggyboy_left );
-SCREEN_UPDATE_IND16( buggyboy_middle );
-SCREEN_UPDATE_IND16( buggyboy_right );
-SCREEN_VBLANK( buggyboy );
-SCREEN_UPDATE_IND16( buggybjr );
+
+
+
+
+
+
+
+
+
diff --git a/src/mame/includes/ultraman.h b/src/mame/includes/ultraman.h
index 495bde95ee3..a9e66f96619 100644
--- a/src/mame/includes/ultraman.h
+++ b/src/mame/includes/ultraman.h
@@ -33,6 +33,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_ultraman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -46,4 +47,4 @@ extern void ultraman_zoom_callback_2(running_machine &machine, int *code,int *co
-SCREEN_UPDATE_IND16( ultraman );
+
diff --git a/src/mame/includes/ultratnk.h b/src/mame/includes/ultratnk.h
index d6caca2243a..e080fefc2d0 100644
--- a/src/mame/includes/ultratnk.h
+++ b/src/mame/includes/ultratnk.h
@@ -39,6 +39,8 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_ultratnk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_ultratnk(screen_device &screen, bool state);
};
@@ -46,6 +48,6 @@ public:
-SCREEN_UPDATE_IND16( ultratnk );
-SCREEN_VBLANK( ultratnk );
+
+
diff --git a/src/mame/includes/undrfire.h b/src/mame/includes/undrfire.h
index 0bea56867a9..fea17d77108 100644
--- a/src/mame/includes/undrfire.h
+++ b/src/mame/includes/undrfire.h
@@ -43,11 +43,13 @@ public:
DECLARE_DRIVER_INIT(undrfire);
DECLARE_DRIVER_INIT(cbombers);
virtual void video_start();
+ UINT32 screen_update_undrfire(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_cbombers(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/undrfire.c -----------*/
-SCREEN_UPDATE_IND16( undrfire );
-SCREEN_UPDATE_IND16( cbombers );
+
+
diff --git a/src/mame/includes/unico.h b/src/mame/includes/unico.h
index f37d0ece0ab..46623d10673 100644
--- a/src/mame/includes/unico.h
+++ b/src/mame/includes/unico.h
@@ -40,6 +40,8 @@ public:
DECLARE_VIDEO_START(unico);
DECLARE_MACHINE_RESET(zeropt);
DECLARE_VIDEO_START(zeropnt2);
+ UINT32 screen_update_unico(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_zeropnt2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -48,8 +50,8 @@ public:
-SCREEN_UPDATE_IND16( unico );
-SCREEN_UPDATE_IND16( zeropnt2 );
+
+
diff --git a/src/mame/includes/usgames.h b/src/mame/includes/usgames.h
index 36cbc34c3a2..c6dd4b3a057 100644
--- a/src/mame/includes/usgames.h
+++ b/src/mame/includes/usgames.h
@@ -17,6 +17,7 @@ public:
TILE_GET_INFO_MEMBER(get_usgames_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_usgames(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -24,4 +25,4 @@ public:
-SCREEN_UPDATE_IND16( usgames );
+
diff --git a/src/mame/includes/vaportra.h b/src/mame/includes/vaportra.h
index ade3f583c82..ae4b4a96407 100644
--- a/src/mame/includes/vaportra.h
+++ b/src/mame/includes/vaportra.h
@@ -37,6 +37,7 @@ public:
DECLARE_DRIVER_INIT(vaportra);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_vaportra(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -44,4 +45,4 @@ public:
/*----------- defined in video/vaportra.c -----------*/
-SCREEN_UPDATE_IND16( vaportra );
+
diff --git a/src/mame/includes/vastar.h b/src/mame/includes/vastar.h
index 4e94dfabf7c..4bdc468cbf3 100644
--- a/src/mame/includes/vastar.h
+++ b/src/mame/includes/vastar.h
@@ -46,6 +46,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg2_tile_info);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_vastar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -53,4 +54,4 @@ public:
-SCREEN_UPDATE_IND16( vastar );
+
diff --git a/src/mame/includes/vball.h b/src/mame/includes/vball.h
index 4b40c572fb5..d7bd36eabf2 100644
--- a/src/mame/includes/vball.h
+++ b/src/mame/includes/vball.h
@@ -31,13 +31,14 @@ public:
TILEMAP_MAPPER_MEMBER(background_scan);
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
+ UINT32 screen_update_vb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/vball.c -----------*/
-SCREEN_UPDATE_IND16( vb );
+
void vb_bgprombank_w(running_machine &machine, int bank);
void vb_spprombank_w(running_machine &machine, int bank);
void vb_mark_all_dirty(running_machine &machine);
diff --git a/src/mame/includes/vectrex.h b/src/mame/includes/vectrex.h
index e2281d17836..58ffef7a386 100644
--- a/src/mame/includes/vectrex.h
+++ b/src/mame/includes/vectrex.h
@@ -69,6 +69,7 @@ public:
DECLARE_DRIVER_INIT(vectrex);
virtual void video_start();
DECLARE_VIDEO_START(raaspec);
+ UINT32 screen_update_vectrex(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -94,7 +95,7 @@ extern const via6522_interface vectrex_via6522_interface;
extern const via6522_interface spectrum1_via6522_interface;
-SCREEN_UPDATE_RGB32( vectrex );
+
diff --git a/src/mame/includes/vendetta.h b/src/mame/includes/vendetta.h
index 934309599cc..55409021f98 100644
--- a/src/mame/includes/vendetta.h
+++ b/src/mame/includes/vendetta.h
@@ -43,6 +43,7 @@ public:
DECLARE_DRIVER_INIT(esckids);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_vendetta(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/vendetta.c -----------*/
@@ -51,4 +52,4 @@ extern void vendetta_tile_callback(running_machine &machine, int layer,int bank,
extern void esckids_tile_callback(running_machine &machine, int layer,int bank,int *code,int *color,int *flags,int *priority);
extern void vendetta_sprite_callback(running_machine &machine, int *code,int *color,int *priority_mask);
-SCREEN_UPDATE_IND16( vendetta );
+
diff --git a/src/mame/includes/vicdual.h b/src/mame/includes/vicdual.h
index 58fa770f641..8f74c93dc1a 100644
--- a/src/mame/includes/vicdual.h
+++ b/src/mame/includes/vicdual.h
@@ -75,6 +75,9 @@ public:
DECLARE_CUSTOM_INPUT_MEMBER(samurai_protection_r);
DECLARE_INPUT_CHANGED_MEMBER(coin_changed);
DECLARE_MACHINE_START(frogs_audio);
+ UINT32 screen_update_vicdual_bw(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_vicdual_bw_or_color(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_vicdual_color(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -86,9 +89,9 @@ int vicdual_is_cabinet_color(running_machine &machine);
/*----------- defined in video/vicdual.c -----------*/
-SCREEN_UPDATE_RGB32( vicdual_bw );
-SCREEN_UPDATE_RGB32( vicdual_color );
-SCREEN_UPDATE_RGB32( vicdual_bw_or_color );
+
+
+
/*----------- defined in audio/vicdual.c -----------*/
diff --git a/src/mame/includes/victory.h b/src/mame/includes/victory.h
index 041fe04b501..90fd72f35be 100644
--- a/src/mame/includes/victory.h
+++ b/src/mame/includes/victory.h
@@ -61,12 +61,13 @@ public:
DECLARE_READ8_MEMBER(victory_video_control_r);
DECLARE_WRITE8_MEMBER(victory_video_control_w);
virtual void video_start();
+ UINT32 screen_update_victory(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/victory.c -----------*/
-SCREEN_UPDATE_IND16( victory );
+
INTERRUPT_GEN( victory_vblank_interrupt );
diff --git a/src/mame/includes/videopin.h b/src/mame/includes/videopin.h
index 2970e5b2efb..4bc41843728 100644
--- a/src/mame/includes/videopin.h
+++ b/src/mame/includes/videopin.h
@@ -41,6 +41,7 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_videopin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -53,5 +54,5 @@ DISCRETE_SOUND_EXTERN( videopin );
-SCREEN_UPDATE_IND16( videopin );
+
diff --git a/src/mame/includes/vigilant.h b/src/mame/includes/vigilant.h
index b9baa56bab5..3cf5aa51574 100644
--- a/src/mame/includes/vigilant.h
+++ b/src/mame/includes/vigilant.h
@@ -26,6 +26,8 @@ public:
DECLARE_WRITE8_MEMBER(vigilant_rear_color_w);
virtual void video_start();
virtual void video_reset();
+ UINT32 screen_update_vigilant(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_kikcubic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -33,5 +35,5 @@ public:
-SCREEN_UPDATE_IND16( vigilant );
-SCREEN_UPDATE_IND16( kikcubic );
+
+
diff --git a/src/mame/includes/vindictr.h b/src/mame/includes/vindictr.h
index f41d9de3986..b09fc97cb2e 100644
--- a/src/mame/includes/vindictr.h
+++ b/src/mame/includes/vindictr.h
@@ -22,6 +22,7 @@ public:
DECLARE_MACHINE_START(vindictr);
DECLARE_MACHINE_RESET(vindictr);
DECLARE_VIDEO_START(vindictr);
+ UINT32 screen_update_vindictr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -30,6 +31,6 @@ public:
DECLARE_WRITE16_HANDLER( vindictr_paletteram_w );
-SCREEN_UPDATE_IND16( vindictr );
+
void vindictr_scanline_update(screen_device &screen, int scanline);
diff --git a/src/mame/includes/volfied.h b/src/mame/includes/volfied.h
index ebad428220c..0fd40b4c5f7 100644
--- a/src/mame/includes/volfied.h
+++ b/src/mame/includes/volfied.h
@@ -43,6 +43,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_volfied(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -57,5 +58,5 @@ void volfied_cchip_reset(running_machine &machine);
-SCREEN_UPDATE_IND16( volfied );
+
diff --git a/src/mame/includes/vsnes.h b/src/mame/includes/vsnes.h
index 2c03d5477f9..24215222ac6 100644
--- a/src/mame/includes/vsnes.h
+++ b/src/mame/includes/vsnes.h
@@ -111,6 +111,10 @@ SCREEN_UPDATE_IND16( vsnes );
SCREEN_UPDATE_IND16( vsnes_bottom );
+
+
+
+
extern const ppu2c0x_interface vsnes_ppu_interface_1;
extern const ppu2c0x_interface vsnes_ppu_interface_2;
diff --git a/src/mame/includes/vulgus.h b/src/mame/includes/vulgus.h
index c414aa754c3..d7ffcd7ee53 100644
--- a/src/mame/includes/vulgus.h
+++ b/src/mame/includes/vulgus.h
@@ -25,6 +25,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_vulgus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -33,4 +34,4 @@ public:
-SCREEN_UPDATE_IND16( vulgus );
+
diff --git a/src/mame/includes/warpwarp.h b/src/mame/includes/warpwarp.h
index 8c43b3c37d2..0887aff2738 100644
--- a/src/mame/includes/warpwarp.h
+++ b/src/mame/includes/warpwarp.h
@@ -46,6 +46,7 @@ public:
DECLARE_PALETTE_INIT(warpwarp);
DECLARE_VIDEO_START(navarone);
DECLARE_PALETTE_INIT(navarone);
+ UINT32 screen_update_geebee(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -57,7 +58,7 @@ public:
-SCREEN_UPDATE_IND16( geebee );
+
/*----------- defined in audio/geebee.c -----------*/
diff --git a/src/mame/includes/warriorb.h b/src/mame/includes/warriorb.h
index 7d29ec141b0..1c49cf04d0c 100644
--- a/src/mame/includes/warriorb.h
+++ b/src/mame/includes/warriorb.h
@@ -38,11 +38,13 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_warriorb_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_warriorb_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/warriorb.c -----------*/
-SCREEN_UPDATE_IND16( warriorb_left );
-SCREEN_UPDATE_IND16( warriorb_right );
+
+
diff --git a/src/mame/includes/wc90.h b/src/mame/includes/wc90.h
index 8565c5e14cf..4abdc31a256 100644
--- a/src/mame/includes/wc90.h
+++ b/src/mame/includes/wc90.h
@@ -52,6 +52,7 @@ public:
TILE_GET_INFO_MEMBER(track_get_fg_tile_info);
virtual void video_start();
DECLARE_VIDEO_START(wc90t);
+ UINT32 screen_update_wc90(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -59,4 +60,4 @@ public:
-SCREEN_UPDATE_IND16( wc90 );
+
diff --git a/src/mame/includes/wc90b.h b/src/mame/includes/wc90b.h
index 986588dbeb8..8d15feba650 100644
--- a/src/mame/includes/wc90b.h
+++ b/src/mame/includes/wc90b.h
@@ -39,11 +39,12 @@ public:
TILE_GET_INFO_MEMBER(get_fg_tile_info);
TILE_GET_INFO_MEMBER(get_tx_tile_info);
virtual void video_start();
+ UINT32 screen_update_wc90b(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/wc90b.c -----------*/
-SCREEN_UPDATE_IND16( wc90b );
+
diff --git a/src/mame/includes/wecleman.h b/src/mame/includes/wecleman.h
index bf684e6ac68..84a4a069e4e 100644
--- a/src/mame/includes/wecleman.h
+++ b/src/mame/includes/wecleman.h
@@ -76,14 +76,16 @@ public:
DECLARE_VIDEO_START(wecleman);
DECLARE_MACHINE_RESET(hotchase);
DECLARE_VIDEO_START(hotchase);
+ UINT32 screen_update_wecleman(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_hotchase(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/wecleman.c -----------*/
-SCREEN_UPDATE_RGB32( wecleman );
-SCREEN_UPDATE_IND16( hotchase );
+
+
void hotchase_zoom_callback_0(running_machine &machine, int *code,int *color,int *flags);
diff --git a/src/mame/includes/welltris.h b/src/mame/includes/welltris.h
index b026f9bb6b1..e283aaf3cb9 100644
--- a/src/mame/includes/welltris.h
+++ b/src/mame/includes/welltris.h
@@ -35,6 +35,7 @@ public:
DECLARE_DRIVER_INIT(welltris);
TILE_GET_INFO_MEMBER(get_welltris_tile_info);
virtual void video_start();
+ UINT32 screen_update_welltris(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -42,4 +43,4 @@ public:
-SCREEN_UPDATE_IND16( welltris );
+
diff --git a/src/mame/includes/wgp.h b/src/mame/includes/wgp.h
index 4d6703a6f4a..62d7cf51f95 100644
--- a/src/mame/includes/wgp.h
+++ b/src/mame/includes/wgp.h
@@ -68,6 +68,7 @@ public:
virtual void machine_reset();
virtual void video_start();
DECLARE_VIDEO_START(wgp2);
+ UINT32 screen_update_wgp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -77,4 +78,4 @@ public:
-SCREEN_UPDATE_IND16( wgp );
+
diff --git a/src/mame/includes/williams.h b/src/mame/includes/williams.h
index 6ad5d484f30..5c63b77d732 100644
--- a/src/mame/includes/williams.h
+++ b/src/mame/includes/williams.h
@@ -104,6 +104,9 @@ public:
DECLARE_VIDEO_START(blaster);
DECLARE_MACHINE_START(williams_common);
DECLARE_MACHINE_RESET(williams_common);
+ UINT32 screen_update_williams(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_williams2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_blaster(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -195,8 +198,8 @@ TIMER_DEVICE_CALLBACK( williams2_endscreen_callback );
-SCREEN_UPDATE_RGB32( williams );
-SCREEN_UPDATE_RGB32( blaster );
-SCREEN_UPDATE_RGB32( williams2 );
+
+
+
diff --git a/src/mame/includes/wiping.h b/src/mame/includes/wiping.h
index 53ebc05980a..309cd4373f3 100644
--- a/src/mame/includes/wiping.h
+++ b/src/mame/includes/wiping.h
@@ -21,11 +21,12 @@ public:
DECLARE_WRITE8_MEMBER(sound_irq_mask_w);
DECLARE_WRITE8_MEMBER(wiping_flipscreen_w);
virtual void palette_init();
+ UINT32 screen_update_wiping(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/wiping.c -----------*/
-SCREEN_UPDATE_IND16( wiping );
+
diff --git a/src/mame/includes/wiz.h b/src/mame/includes/wiz.h
index e9917a196c2..0c91d14c62b 100644
--- a/src/mame/includes/wiz.h
+++ b/src/mame/includes/wiz.h
@@ -48,6 +48,9 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_wiz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_stinger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_kungfut(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -56,6 +59,6 @@ public:
-SCREEN_UPDATE_IND16( wiz );
-SCREEN_UPDATE_IND16( stinger );
-SCREEN_UPDATE_IND16( kungfut );
+
+
+
diff --git a/src/mame/includes/wolfpack.h b/src/mame/includes/wolfpack.h
index 53c0507c40a..8edfbbcd0ba 100644
--- a/src/mame/includes/wolfpack.h
+++ b/src/mame/includes/wolfpack.h
@@ -54,13 +54,15 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_wolfpack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_wolfpack(screen_device &screen, bool state);
};
/*----------- defined in video/wolfpack.c -----------*/
-SCREEN_UPDATE_IND16( wolfpack );
-SCREEN_VBLANK( wolfpack );
+
+
diff --git a/src/mame/includes/wrally.h b/src/mame/includes/wrally.h
index 4d25c00ef16..51e4fbe29ab 100644
--- a/src/mame/includes/wrally.h
+++ b/src/mame/includes/wrally.h
@@ -24,6 +24,7 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info_wrally_screen0);
TILE_GET_INFO_MEMBER(get_tile_info_wrally_screen1);
virtual void video_start();
+ UINT32 screen_update_wrally(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -33,5 +34,5 @@ public:
/*----------- defined in video/wrally.c -----------*/
-SCREEN_UPDATE_IND16( wrally );
+
diff --git a/src/mame/includes/wwfsstar.h b/src/mame/includes/wwfsstar.h
index 9124a128968..1063dec7501 100644
--- a/src/mame/includes/wwfsstar.h
+++ b/src/mame/includes/wwfsstar.h
@@ -26,10 +26,11 @@ public:
TILEMAP_MAPPER_MEMBER(bg0_scan);
TILE_GET_INFO_MEMBER(get_bg0_tile_info);
virtual void video_start();
+ UINT32 screen_update_wwfsstar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/wwfsstar.c -----------*/
-SCREEN_UPDATE_IND16( wwfsstar );
+
diff --git a/src/mame/includes/wwfwfest.h b/src/mame/includes/wwfwfest.h
index dd64cf1ad8a..9accc1ef793 100644
--- a/src/mame/includes/wwfwfest.h
+++ b/src/mame/includes/wwfwfest.h
@@ -43,6 +43,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg1_tile_info);
virtual void video_start();
DECLARE_VIDEO_START(wwfwfstb);
+ UINT32 screen_update_wwfwfest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -50,4 +51,4 @@ public:
-SCREEN_UPDATE_IND16( wwfwfest );
+
diff --git a/src/mame/includes/xain.h b/src/mame/includes/xain.h
index c8ebdc53cdc..9e0d6ff6af3 100644
--- a/src/mame/includes/xain.h
+++ b/src/mame/includes/xain.h
@@ -68,10 +68,11 @@ public:
TILE_GET_INFO_MEMBER(get_char_tile_info);
virtual void machine_start();
virtual void video_start();
+ UINT32 screen_update_xain(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/xain.c -----------*/
-SCREEN_UPDATE_IND16( xain );
+
diff --git a/src/mame/includes/xexex.h b/src/mame/includes/xexex.h
index a0424b07513..5e1c7a2a7ba 100644
--- a/src/mame/includes/xexex.h
+++ b/src/mame/includes/xexex.h
@@ -64,6 +64,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_xexex(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -73,4 +74,4 @@ extern void xexex_sprite_callback(running_machine &machine, int *code, int *colo
extern void xexex_tile_callback(running_machine &machine, int layer, int *code, int *color, int *flags);
-SCREEN_UPDATE_RGB32( xexex );
+
diff --git a/src/mame/includes/xmen.h b/src/mame/includes/xmen.h
index 92e79176be9..0ecef1390a9 100644
--- a/src/mame/includes/xmen.h
+++ b/src/mame/includes/xmen.h
@@ -49,6 +49,10 @@ public:
virtual void machine_start();
virtual void machine_reset();
DECLARE_VIDEO_START(xmen6p);
+ UINT32 screen_update_xmen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_xmen6p_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_xmen6p_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_xmen6p(screen_device &screen, bool state);
};
/*----------- defined in video/xmen.c -----------*/
@@ -57,7 +61,7 @@ void xmen_tile_callback(running_machine &machine, int layer,int bank,int *code,i
void xmen_sprite_callback(running_machine &machine, int *code,int *color,int *priority_mask);
-SCREEN_UPDATE_IND16( xmen );
-SCREEN_UPDATE_IND16( xmen6p_left );
-SCREEN_UPDATE_IND16( xmen6p_right );
-SCREEN_VBLANK( xmen6p );
+
+
+
+
diff --git a/src/mame/includes/xorworld.h b/src/mame/includes/xorworld.h
index 9b12ef2756b..12d4e67d6ce 100644
--- a/src/mame/includes/xorworld.h
+++ b/src/mame/includes/xorworld.h
@@ -19,6 +19,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_xorworld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -27,4 +28,4 @@ public:
-SCREEN_UPDATE_IND16( xorworld );
+
diff --git a/src/mame/includes/xxmissio.h b/src/mame/includes/xxmissio.h
index 5e7adf9689a..43085134350 100644
--- a/src/mame/includes/xxmissio.h
+++ b/src/mame/includes/xxmissio.h
@@ -28,13 +28,14 @@ public:
TILE_GET_INFO_MEMBER(get_fg_tile_info);
virtual void machine_start();
virtual void video_start();
+ UINT32 screen_update_xxmissio(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/xxmissio.c -----------*/
-SCREEN_UPDATE_IND16( xxmissio );
+
DECLARE_WRITE8_DEVICE_HANDLER( xxmissio_scroll_x_w );
DECLARE_WRITE8_DEVICE_HANDLER( xxmissio_scroll_y_w );
diff --git a/src/mame/includes/xybots.h b/src/mame/includes/xybots.h
index e81bb6a7926..5864d5aa8b9 100644
--- a/src/mame/includes/xybots.h
+++ b/src/mame/includes/xybots.h
@@ -20,10 +20,11 @@ public:
DECLARE_MACHINE_START(xybots);
DECLARE_MACHINE_RESET(xybots);
DECLARE_VIDEO_START(xybots);
+ UINT32 screen_update_xybots(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/xybots.c -----------*/
-SCREEN_UPDATE_IND16( xybots );
+
diff --git a/src/mame/includes/xyonix.h b/src/mame/includes/xyonix.h
index d55177f34d8..5e46c152b94 100644
--- a/src/mame/includes/xyonix.h
+++ b/src/mame/includes/xyonix.h
@@ -19,6 +19,7 @@ public:
TILE_GET_INFO_MEMBER(get_xyonix_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_xyonix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -26,4 +27,4 @@ public:
-SCREEN_UPDATE_IND16(xyonix);
+
diff --git a/src/mame/includes/yiear.h b/src/mame/includes/yiear.h
index c64efbd960e..8f698e04abe 100644
--- a/src/mame/includes/yiear.h
+++ b/src/mame/includes/yiear.h
@@ -35,6 +35,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_yiear(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -43,4 +44,4 @@ public:
-SCREEN_UPDATE_IND16( yiear );
+
diff --git a/src/mame/includes/yunsun16.h b/src/mame/includes/yunsun16.h
index 38ec8242d7d..db69bbb7843 100644
--- a/src/mame/includes/yunsun16.h
+++ b/src/mame/includes/yunsun16.h
@@ -44,6 +44,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_yunsun16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -51,4 +52,4 @@ public:
-SCREEN_UPDATE_IND16( yunsun16 );
+
diff --git a/src/mame/includes/yunsung8.h b/src/mame/includes/yunsung8.h
index 316780e6f51..a6683d5a854 100644
--- a/src/mame/includes/yunsung8.h
+++ b/src/mame/includes/yunsung8.h
@@ -39,6 +39,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_yunsung8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -46,4 +47,4 @@ public:
-SCREEN_UPDATE_IND16( yunsung8 );
+
diff --git a/src/mame/includes/zac2650.h b/src/mame/includes/zac2650.h
index 841290e8367..f7a4235a232 100644
--- a/src/mame/includes/zac2650.h
+++ b/src/mame/includes/zac2650.h
@@ -21,6 +21,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_tinvader(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -28,5 +29,5 @@ public:
-SCREEN_UPDATE_IND16( tinvader );
+
diff --git a/src/mame/includes/zaccaria.h b/src/mame/includes/zaccaria.h
index e4c0478555c..394d72ed329 100644
--- a/src/mame/includes/zaccaria.h
+++ b/src/mame/includes/zaccaria.h
@@ -44,6 +44,7 @@ public:
TILE_GET_INFO_MEMBER(get_tile_info);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_zaccaria(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -51,4 +52,4 @@ public:
-SCREEN_UPDATE_IND16( zaccaria );
+
diff --git a/src/mame/includes/zaxxon.h b/src/mame/includes/zaxxon.h
index 7169fc659b8..c02e8c6daf3 100644
--- a/src/mame/includes/zaxxon.h
+++ b/src/mame/includes/zaxxon.h
@@ -68,6 +68,10 @@ public:
virtual void palette_init();
DECLARE_VIDEO_START(razmataz);
DECLARE_VIDEO_START(congo);
+ UINT32 screen_update_zaxxon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_futspy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_razmataz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_congo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -95,7 +99,7 @@ MACHINE_CONFIG_EXTERN( congo_samples );
-SCREEN_UPDATE_IND16( zaxxon );
-SCREEN_UPDATE_IND16( razmataz );
-SCREEN_UPDATE_IND16( congo );
-SCREEN_UPDATE_IND16( futspy );
+
+
+
+
diff --git a/src/mame/machine/3do.c b/src/mame/machine/3do.c
index ff3baf9acb1..46e1f91763e 100644
--- a/src/mame/machine/3do.c
+++ b/src/mame/machine/3do.c
@@ -976,10 +976,9 @@ VIDEO_START_MEMBER(_3do_state,_3do)
/* This is incorrect! Just testing stuff */
-SCREEN_UPDATE_RGB32( _3do )
+UINT32 _3do_state::screen_update__3do(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- _3do_state *state = screen.machine().driver_data<_3do_state>();
- UINT32 *source_p = state->m_vram + 0x1c0000 / 4;
+ UINT32 *source_p = m_vram + 0x1c0000 / 4;
for ( int i = 0; i < 120; i++ )
{
@@ -993,18 +992,18 @@ SCREEN_UPDATE_RGB32( _3do )
UINT32 upper = ( *source_p >> 1 ) & 0x55555555;
UINT32 rgb = 0;
- rgb = ( ( state->m_video_bits[upper & 0x1ff] << 3 ) << 8 );
- rgb |= ( ( state->m_video_bits[ ( upper >> 10 ) & 0x1ff ] << 3 ) << 0 );
- rgb |= ( ( state->m_video_bits[ ( upper >> 20 ) & 0x1ff ] << 3 ) << 16 );
+ rgb = ( ( m_video_bits[upper & 0x1ff] << 3 ) << 8 );
+ rgb |= ( ( m_video_bits[ ( upper >> 10 ) & 0x1ff ] << 3 ) << 0 );
+ rgb |= ( ( m_video_bits[ ( upper >> 20 ) & 0x1ff ] << 3 ) << 16 );
dest_p0[0] = rgb;
dest_p0[1] = rgb;
dest_p0[2] = rgb;
dest_p0[3] = rgb;
- rgb = ( ( state->m_video_bits[lower & 0x1ff] << 3 ) << 8 );
- rgb |= ( ( state->m_video_bits[ ( lower >> 10 ) & 0x1ff ] << 3 ) << 0 );
- rgb |= ( ( state->m_video_bits[ ( lower >> 20 ) & 0x1ff ] << 3 ) << 16 );
+ rgb = ( ( m_video_bits[lower & 0x1ff] << 3 ) << 8 );
+ rgb |= ( ( m_video_bits[ ( lower >> 10 ) & 0x1ff ] << 3 ) << 0 );
+ rgb |= ( ( m_video_bits[ ( lower >> 20 ) & 0x1ff ] << 3 ) << 16 );
dest_p1[0] = rgb;
dest_p1[1] = rgb;
diff --git a/src/mame/machine/decocass.h b/src/mame/machine/decocass.h
index a75bc3ac8af..4aedbdc97b7 100644
--- a/src/mame/machine/decocass.h
+++ b/src/mame/machine/decocass.h
@@ -180,6 +180,7 @@ public:
DECLARE_MACHINE_RESET(type4);
DECLARE_MACHINE_RESET(cbdash);
DECLARE_MACHINE_RESET(cflyball);
+ UINT32 screen_update_decocass(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -275,6 +276,6 @@ DECLARE_WRITE8_HANDLER( decocass_center_h_shift_space_w );
DECLARE_WRITE8_HANDLER( decocass_center_v_shift_w );
-SCREEN_UPDATE_IND16( decocass );
+
void decocass_video_state_save_init(running_machine &machine);
diff --git a/src/mame/machine/slikshot.c b/src/mame/machine/slikshot.c
index b60ffb469a0..1147f9770cd 100644
--- a/src/mame/machine/slikshot.c
+++ b/src/mame/machine/slikshot.c
@@ -548,63 +548,62 @@ VIDEO_START_MEMBER(itech8_state,slikshot)
*
*************************************/
-SCREEN_UPDATE_RGB32( slikshot )
+UINT32 itech8_state::screen_update_slikshot(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- itech8_state *state = screen.machine().driver_data<itech8_state>();
int totaldy, totaldx;
int temp, i;
/* draw the normal video first */
- SCREEN_UPDATE32_CALL(itech8_2page);
+ SCREEN_UPDATE32_CALL_MEMBER(itech8_2page);
/* add the current X,Y positions to the list */
- state->m_xbuffer[state->m_ybuffer_next % YBUFFER_COUNT] = state->ioport("FAKEX")->read_safe(0);
- state->m_ybuffer[state->m_ybuffer_next % YBUFFER_COUNT] = state->ioport("FAKEY")->read_safe(0);
- state->m_ybuffer_next++;
+ m_xbuffer[m_ybuffer_next % YBUFFER_COUNT] = ioport("FAKEX")->read_safe(0);
+ m_ybuffer[m_ybuffer_next % YBUFFER_COUNT] = ioport("FAKEY")->read_safe(0);
+ m_ybuffer_next++;
/* determine where to draw the starting point */
- state->m_curxpos += state->m_xbuffer[(state->m_ybuffer_next + 1) % YBUFFER_COUNT];
- if (state->m_curxpos < -0x80) state->m_curxpos = -0x80;
- if (state->m_curxpos > 0x80) state->m_curxpos = 0x80;
+ m_curxpos += m_xbuffer[(m_ybuffer_next + 1) % YBUFFER_COUNT];
+ if (m_curxpos < -0x80) m_curxpos = -0x80;
+ if (m_curxpos > 0x80) m_curxpos = 0x80;
/* compute the total X/Y movement */
totaldx = totaldy = 0;
for (i = 0; i < YBUFFER_COUNT - 1; i++)
{
- totaldx += state->m_xbuffer[(state->m_ybuffer_next + i + 1) % YBUFFER_COUNT];
- totaldy += state->m_ybuffer[(state->m_ybuffer_next + i + 1) % YBUFFER_COUNT];
+ totaldx += m_xbuffer[(m_ybuffer_next + i + 1) % YBUFFER_COUNT];
+ totaldy += m_ybuffer[(m_ybuffer_next + i + 1) % YBUFFER_COUNT];
}
/* if the shoot button is pressed, fire away */
- if (totaldy < state->m_last_ytotal && state->m_last_ytotal > 50 && state->m_crosshair_vis)
+ if (totaldy < m_last_ytotal && m_last_ytotal > 50 && m_crosshair_vis)
{
/* compute the updated values */
temp = totaldx;
if (temp <= -0x80) temp = -0x7f;
if (temp >= 0x80) temp = 0x7f;
- state->m_curvx = temp;
+ m_curvx = temp;
- temp = state->m_last_ytotal - 50;
+ temp = m_last_ytotal - 50;
if (temp <= 0x10) temp = 0x10;
if (temp >= 0x7f) temp = 0x7f;
- state->m_curvy = temp;
+ m_curvy = temp;
- temp = 0x60 + (state->m_curxpos * 0x30 / 0x80);
+ temp = 0x60 + (m_curxpos * 0x30 / 0x80);
if (temp <= 0x30) temp = 0x30;
if (temp >= 0x90) temp = 0x90;
- state->m_curx = temp;
+ m_curx = temp;
compute_sensors(screen.machine());
-// popmessage("V=%02x,%02x X=%02x", state->m_curvx, state->m_curvy, state->m_curx);
- state->m_crosshair_vis = 0;
+// popmessage("V=%02x,%02x X=%02x", m_curvx, m_curvy, m_curx);
+ m_crosshair_vis = 0;
}
- state->m_last_ytotal = totaldy;
+ m_last_ytotal = totaldy;
/* clear the buffer while the crosshair is not visible */
- if (!state->m_crosshair_vis)
+ if (!m_crosshair_vis)
{
- memset(state->m_xbuffer, 0, sizeof(state->m_xbuffer));
- memset(state->m_ybuffer, 0, sizeof(state->m_ybuffer));
+ memset(m_xbuffer, 0, sizeof(m_xbuffer));
+ memset(m_ybuffer, 0, sizeof(m_ybuffer));
}
return 0;
diff --git a/src/mame/video/1942.c b/src/mame/video/1942.c
index 4d7050d11c9..f9969f9e9f7 100644
--- a/src/mame/video/1942.c
+++ b/src/mame/video/1942.c
@@ -233,12 +233,11 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
-SCREEN_UPDATE_IND16( 1942 )
+UINT32 _1942_state::screen_update_1942(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- _1942_state *state = screen.machine().driver_data<_1942_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/1943.c b/src/mame/video/1943.c
index 118fc4105b8..61bf977bf64 100644
--- a/src/mame/video/1943.c
+++ b/src/mame/video/1943.c
@@ -249,29 +249,28 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( 1943 )
+UINT32 _1943_state::screen_update_1943(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- _1943_state *state = screen.machine().driver_data<_1943_state>();
- state->m_bg2_tilemap->set_scrollx(0, state->m_bgscrollx[0] + 256 * state->m_bgscrollx[1]);
- state->m_bg_tilemap->set_scrollx(0, state->m_scrollx[0] + 256 * state->m_scrollx[1]);
- state->m_bg_tilemap->set_scrolly(0, state->m_scrolly[0]);
+ m_bg2_tilemap->set_scrollx(0, m_bgscrollx[0] + 256 * m_bgscrollx[1]);
+ m_bg_tilemap->set_scrollx(0, m_scrollx[0] + 256 * m_scrollx[1]);
+ m_bg_tilemap->set_scrolly(0, m_scrolly[0]);
- if (state->m_bg2_on)
- state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (m_bg2_on)
+ m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
else
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- if (state->m_obj_on)
+ if (m_obj_on)
draw_sprites(screen.machine(), bitmap, cliprect, 0);
- if (state->m_bg1_on)
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (m_bg1_on)
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- if (state->m_obj_on)
+ if (m_obj_on)
draw_sprites(screen.machine(), bitmap, cliprect, 1);
- if (state->m_char_on)
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (m_char_on)
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/20pacgal.c b/src/mame/video/20pacgal.c
index 2978d2c70b8..b5ccccd917c 100644
--- a/src/mame/video/20pacgal.c
+++ b/src/mame/video/20pacgal.c
@@ -406,15 +406,14 @@ static void draw_stars(_20pacgal_state *state, bitmap_rgb32 &bitmap, const recta
*
*************************************/
-static SCREEN_UPDATE_RGB32( 20pacgal )
+UINT32 _20pacgal_state::screen_update_20pacgal(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- _20pacgal_state *state = screen.machine().driver_data<_20pacgal_state>();
bitmap.fill(0, cliprect);
- draw_stars(state, bitmap,cliprect);
- draw_chars(state, bitmap);
- draw_sprites(screen.machine(),state, bitmap);
- do_pen_lookup(screen.machine(), state, bitmap, cliprect);
+ draw_stars(this, bitmap,cliprect);
+ draw_chars(this, bitmap);
+ draw_sprites(screen.machine(),this, bitmap);
+ do_pen_lookup(screen.machine(), this, bitmap, cliprect);
return 0;
}
@@ -433,5 +432,5 @@ MACHINE_CONFIG_FRAGMENT( 20pacgal_video )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(SCREEN_WIDTH, SCREEN_HEIGHT)
MCFG_SCREEN_VISIBLE_AREA(0, SCREEN_WIDTH - 1, 0, SCREEN_HEIGHT - 1)
- MCFG_SCREEN_UPDATE_STATIC(20pacgal)
+ MCFG_SCREEN_UPDATE_DRIVER(_20pacgal_state, screen_update_20pacgal)
MACHINE_CONFIG_END
diff --git a/src/mame/video/40love.c b/src/mame/video/40love.c
index 913392d3747..3f89b4ddf05 100644
--- a/src/mame/video/40love.c
+++ b/src/mame/video/40love.c
@@ -350,13 +350,12 @@ static void draw_pixram( running_machine &machine, bitmap_ind16 &bitmap, const r
copybitmap(bitmap, *state->m_tmp_bitmap2, f, f, state->m_xoffset, 0, cliprect);
}
-SCREEN_UPDATE_IND16( fortyl )
+UINT32 fortyl_state::screen_update_fortyl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- fortyl_state *state = screen.machine().driver_data<fortyl_state>();
draw_pixram(screen.machine(), bitmap, cliprect);
- state->m_bg_tilemap->set_scrolldy(- state->m_video_ctrl[1] + 1, - state->m_video_ctrl[1] - 1 );
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->set_scrolldy(- m_video_ctrl[1] + 1, - m_video_ctrl[1] - 1 );
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
diff --git a/src/mame/video/4enraya.c b/src/mame/video/4enraya.c
index c78e358b943..48b4afac0f5 100644
--- a/src/mame/video/4enraya.c
+++ b/src/mame/video/4enraya.c
@@ -34,10 +34,9 @@ void _4enraya_state::video_start()
m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(_4enraya_state::get_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
-SCREEN_UPDATE_IND16( 4enraya )
+UINT32 _4enraya_state::screen_update_4enraya(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- _4enraya_state *state = screen.machine().driver_data<_4enraya_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/8080bw.c b/src/mame/video/8080bw.c
index f9aa9bffc8b..5e6df02ac86 100644
--- a/src/mame/video/8080bw.c
+++ b/src/mame/video/8080bw.c
@@ -111,9 +111,8 @@ static void clear_extra_columns( running_machine &machine, bitmap_rgb32 &bitmap,
}
-SCREEN_UPDATE_RGB32( invadpt2 )
+UINT32 _8080bw_state::screen_update_invadpt2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- _8080bw_state *state = screen.machine().driver_data<_8080bw_state>();
pen_t pens[NUM_PENS];
offs_t offs;
UINT8 *prom;
@@ -121,18 +120,18 @@ SCREEN_UPDATE_RGB32( invadpt2 )
invadpt2_get_pens(pens);
- prom = state->memregion("proms")->base();
- color_map_base = state->m_color_map ? &prom[0x0400] : &prom[0x0000];
+ prom = memregion("proms")->base();
+ color_map_base = m_color_map ? &prom[0x0400] : &prom[0x0000];
- for (offs = 0; offs < state->m_main_ram.bytes(); offs++)
+ for (offs = 0; offs < m_main_ram.bytes(); offs++)
{
UINT8 y = offs >> 5;
UINT8 x = offs << 3;
offs_t color_address = (offs >> 8 << 5) | (offs & 0x1f);
- UINT8 data = state->m_main_ram[offs];
- UINT8 fore_color = state->m_screen_red ? 1 : color_map_base[color_address] & 0x07;
+ UINT8 data = m_main_ram[offs];
+ UINT8 fore_color = m_screen_red ? 1 : color_map_base[color_address] & 0x07;
set_8_pixels(screen.machine(), bitmap, y, x, data, pens, fore_color, 0);
}
@@ -143,9 +142,8 @@ SCREEN_UPDATE_RGB32( invadpt2 )
}
-SCREEN_UPDATE_RGB32( ballbomb )
+UINT32 _8080bw_state::screen_update_ballbomb(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- _8080bw_state *state = screen.machine().driver_data<_8080bw_state>();
pen_t pens[NUM_PENS];
offs_t offs;
UINT8 *color_map_base;
@@ -153,18 +151,18 @@ SCREEN_UPDATE_RGB32( ballbomb )
invadpt2_get_pens(pens);
- prom = state->memregion("proms")->base();
- color_map_base = state->m_color_map ? &prom[0x0400] : &prom[0x0000];
+ prom = memregion("proms")->base();
+ color_map_base = m_color_map ? &prom[0x0400] : &prom[0x0000];
- for (offs = 0; offs < state->m_main_ram.bytes(); offs++)
+ for (offs = 0; offs < m_main_ram.bytes(); offs++)
{
UINT8 y = offs >> 5;
UINT8 x = offs << 3;
offs_t color_address = (offs >> 8 << 5) | (offs & 0x1f);
- UINT8 data = state->m_main_ram[offs];
- UINT8 fore_color = state->m_screen_red ? 1 : color_map_base[color_address] & 0x07;
+ UINT8 data = m_main_ram[offs];
+ UINT8 fore_color = m_screen_red ? 1 : color_map_base[color_address] & 0x07;
/* blue background */
set_8_pixels(screen.machine(), bitmap, y, x, data, pens, fore_color, 2);
@@ -176,28 +174,27 @@ SCREEN_UPDATE_RGB32( ballbomb )
}
-SCREEN_UPDATE_RGB32( schaser )
+UINT32 _8080bw_state::screen_update_schaser(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- _8080bw_state *state = screen.machine().driver_data<_8080bw_state>();
pen_t pens[NUM_PENS];
offs_t offs;
UINT8 *background_map_base;
invadpt2_get_pens(pens);
- background_map_base = state->memregion("proms")->base();
+ background_map_base = memregion("proms")->base();
- for (offs = 0; offs < state->m_main_ram.bytes(); offs++)
+ for (offs = 0; offs < m_main_ram.bytes(); offs++)
{
UINT8 back_color = 0;
UINT8 y = offs >> 5;
UINT8 x = offs << 3;
- UINT8 data = state->m_main_ram[offs];
- UINT8 fore_color = state->m_colorram[offs & 0x1f9f] & 0x07;
+ UINT8 data = m_main_ram[offs];
+ UINT8 fore_color = m_colorram[offs & 0x1f9f] & 0x07;
- if (!state->m_schaser_background_disable)
+ if (!m_schaser_background_disable)
{
offs_t back_address = (offs >> 8 << 5) | (offs & 0x1f);
@@ -205,33 +202,32 @@ SCREEN_UPDATE_RGB32( schaser )
/* the equations derived from the schematics don't appear to produce
the right colors, but this one does, at least for this PROM */
- back_color = (((back_data & 0x0c) == 0x0c) && state->m_schaser_background_select) ? 4 : 2;
+ back_color = (((back_data & 0x0c) == 0x0c) && m_schaser_background_select) ? 4 : 2;
}
set_8_pixels(screen.machine(), bitmap, y, x, data, pens, fore_color, back_color);
}
- clear_extra_columns(screen.machine(), bitmap, pens, state->m_schaser_background_disable ? 0 : 2);
+ clear_extra_columns(screen.machine(), bitmap, pens, m_schaser_background_disable ? 0 : 2);
return 0;
}
-SCREEN_UPDATE_RGB32( schasercv )
+UINT32 _8080bw_state::screen_update_schasercv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- _8080bw_state *state = screen.machine().driver_data<_8080bw_state>();
pen_t pens[NUM_PENS];
offs_t offs;
invadpt2_get_pens(pens);
- for (offs = 0; offs < state->m_main_ram.bytes(); offs++)
+ for (offs = 0; offs < m_main_ram.bytes(); offs++)
{
UINT8 y = offs >> 5;
UINT8 x = offs << 3;
- UINT8 data = state->m_main_ram[offs];
- UINT8 fore_color = state->m_colorram[offs & 0x1f9f] & 0x07;
+ UINT8 data = m_main_ram[offs];
+ UINT8 fore_color = m_colorram[offs & 0x1f9f] & 0x07;
/* blue background */
set_8_pixels(screen.machine(), bitmap, y, x, data, pens, fore_color, 2);
@@ -243,21 +239,20 @@ SCREEN_UPDATE_RGB32( schasercv )
}
-SCREEN_UPDATE_RGB32( rollingc )
+UINT32 _8080bw_state::screen_update_rollingc(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- _8080bw_state *state = screen.machine().driver_data<_8080bw_state>();
pen_t pens[NUM_PENS];
offs_t offs;
invadpt2_get_pens(pens);
- for (offs = 0; offs < state->m_main_ram.bytes(); offs++)
+ for (offs = 0; offs < m_main_ram.bytes(); offs++)
{
UINT8 y = offs >> 5;
UINT8 x = offs << 3;
- UINT8 data = state->m_main_ram[offs];
- UINT8 fore_color = state->m_colorram[offs & 0x1f1f] & 0x07;
+ UINT8 data = m_main_ram[offs];
+ UINT8 fore_color = m_colorram[offs & 0x1f1f] & 0x07;
set_8_pixels(screen.machine(), bitmap, y, x, data, pens, fore_color, 0);
}
@@ -268,9 +263,8 @@ SCREEN_UPDATE_RGB32( rollingc )
}
-SCREEN_UPDATE_RGB32( polaris )
+UINT32 _8080bw_state::screen_update_polaris(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- _8080bw_state *state = screen.machine().driver_data<_8080bw_state>();
pen_t pens[NUM_PENS];
offs_t offs;
UINT8 *color_map_base;
@@ -279,14 +273,14 @@ SCREEN_UPDATE_RGB32( polaris )
invadpt2_get_pens(pens);
color_map_base = screen.machine().root_device().memregion("proms")->base();
- cloud_gfx = state->memregion("user1")->base();
+ cloud_gfx = memregion("user1")->base();
- for (offs = 0; offs < state->m_main_ram.bytes(); offs++)
+ for (offs = 0; offs < m_main_ram.bytes(); offs++)
{
UINT8 y = offs >> 5;
UINT8 x = offs << 3;
- UINT8 data = state->m_main_ram[offs];
+ UINT8 data = m_main_ram[offs];
offs_t color_address = (offs >> 8 << 5) | (offs & 0x1f);
@@ -297,9 +291,9 @@ SCREEN_UPDATE_RGB32( polaris )
bits 1 and 2 are marked 'not use' (sic) */
UINT8 back_color = (color_map_base[color_address] & 0x01) ? 6 : 2;
- UINT8 fore_color = ~state->m_colorram[offs & 0x1f9f] & 0x07;
+ UINT8 fore_color = ~m_colorram[offs & 0x1f9f] & 0x07;
- UINT8 cloud_y = y - state->m_polaris_cloud_pos;
+ UINT8 cloud_y = y - m_polaris_cloud_pos;
if ((color_map_base[color_address] & 0x08) || (cloud_y >= 64))
{
@@ -340,21 +334,20 @@ SCREEN_UPDATE_RGB32( polaris )
}
-SCREEN_UPDATE_RGB32( lupin3 )
+UINT32 _8080bw_state::screen_update_lupin3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- _8080bw_state *state = screen.machine().driver_data<_8080bw_state>();
pen_t pens[NUM_PENS];
offs_t offs;
invadpt2_get_pens(pens);
- for (offs = 0; offs < state->m_main_ram.bytes(); offs++)
+ for (offs = 0; offs < m_main_ram.bytes(); offs++)
{
UINT8 y = offs >> 5;
UINT8 x = offs << 3;
- UINT8 data = state->m_main_ram[offs];
- UINT8 fore_color = ~state->m_colorram[offs & 0x1f9f] & 0x07;
+ UINT8 data = m_main_ram[offs];
+ UINT8 fore_color = ~m_colorram[offs & 0x1f9f] & 0x07;
set_8_pixels(screen.machine(), bitmap, y, x, data, pens, fore_color, 0);
}
@@ -365,23 +358,22 @@ SCREEN_UPDATE_RGB32( lupin3 )
}
-SCREEN_UPDATE_RGB32( cosmo )
+UINT32 _8080bw_state::screen_update_cosmo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- _8080bw_state *state = screen.machine().driver_data<_8080bw_state>();
pen_t pens[NUM_PENS];
offs_t offs;
cosmo_get_pens(pens);
- for (offs = 0; offs < state->m_main_ram.bytes(); offs++)
+ for (offs = 0; offs < m_main_ram.bytes(); offs++)
{
UINT8 y = offs >> 5;
UINT8 x = offs << 3;
offs_t color_address = (offs >> 8 << 5) | (offs & 0x1f);
- UINT8 data = state->m_main_ram[offs];
- UINT8 fore_color = state->m_colorram[color_address] & 0x07;
+ UINT8 data = m_main_ram[offs];
+ UINT8 fore_color = m_colorram[color_address] & 0x07;
set_8_pixels(screen.machine(), bitmap, y, x, data, pens, fore_color, 0);
}
@@ -392,9 +384,8 @@ SCREEN_UPDATE_RGB32( cosmo )
}
-SCREEN_UPDATE_RGB32( indianbt )
+UINT32 _8080bw_state::screen_update_indianbt(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- _8080bw_state *state = screen.machine().driver_data<_8080bw_state>();
pen_t pens[NUM_PENS];
offs_t offs;
UINT8 *color_map_base;
@@ -402,17 +393,17 @@ SCREEN_UPDATE_RGB32( indianbt )
cosmo_get_pens(pens);
- prom = state->memregion("proms")->base();
- color_map_base = state->m_color_map ? &prom[0x0400] : &prom[0x0000];
+ prom = memregion("proms")->base();
+ color_map_base = m_color_map ? &prom[0x0400] : &prom[0x0000];
- for (offs = 0; offs < state->m_main_ram.bytes(); offs++)
+ for (offs = 0; offs < m_main_ram.bytes(); offs++)
{
UINT8 y = offs >> 5;
UINT8 x = offs << 3;
offs_t color_address = (offs >> 8 << 5) | (offs & 0x1f);
- UINT8 data = state->m_main_ram[offs];
+ UINT8 data = m_main_ram[offs];
UINT8 fore_color = color_map_base[color_address] & 0x07;
set_8_pixels(screen.machine(), bitmap, y, x, data, pens, fore_color, 0);
@@ -424,20 +415,19 @@ SCREEN_UPDATE_RGB32( indianbt )
}
-SCREEN_UPDATE_RGB32( shuttlei )
+UINT32 _8080bw_state::screen_update_shuttlei(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- _8080bw_state *state = screen.machine().driver_data<_8080bw_state>();
pen_t pens[2] = { RGB_BLACK, RGB_WHITE };
offs_t offs;
- for (offs = 0; offs < state->m_main_ram.bytes(); offs++)
+ for (offs = 0; offs < m_main_ram.bytes(); offs++)
{
int i;
UINT8 y = offs >> 5;
UINT8 x = offs << 3;
- UINT8 data = state->m_main_ram[offs];
+ UINT8 data = m_main_ram[offs];
for (i = 0; i < 8; i++)
{
@@ -455,21 +445,20 @@ SCREEN_UPDATE_RGB32( shuttlei )
}
-SCREEN_UPDATE_RGB32( sflush )
+UINT32 _8080bw_state::screen_update_sflush(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- _8080bw_state *state = screen.machine().driver_data<_8080bw_state>();
pen_t pens[NUM_PENS];
offs_t offs;
sflush_get_pens(pens);
- for (offs = 0; offs < state->m_main_ram.bytes(); offs++)
+ for (offs = 0; offs < m_main_ram.bytes(); offs++)
{
UINT8 y = offs >> 5;
UINT8 x = offs << 3;
- UINT8 data = state->m_main_ram[offs];
- UINT8 fore_color = state->m_colorram[offs & 0x1f9f] & 0x07;
+ UINT8 data = m_main_ram[offs];
+ UINT8 fore_color = m_colorram[offs & 0x1f9f] & 0x07;
set_8_pixels(screen.machine(), bitmap, y, x, data, pens, fore_color, 0);
}
diff --git a/src/mame/video/88games.c b/src/mame/video/88games.c
index bf91f2d3207..1ba62584057 100644
--- a/src/mame/video/88games.c
+++ b/src/mame/video/88games.c
@@ -54,29 +54,28 @@ void _88games_zoom_callback( running_machine &machine, int *code, int *color, in
***************************************************************************/
-SCREEN_UPDATE_IND16( 88games )
+UINT32 _88games_state::screen_update_88games(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- _88games_state *state = screen.machine().driver_data<_88games_state>();
- k052109_tilemap_update(state->m_k052109);
+ k052109_tilemap_update(m_k052109);
- if (state->m_k88games_priority)
+ if (m_k88games_priority)
{
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0); // tile 0
- k051960_sprites_draw(state->m_k051960, bitmap,cliprect, 1, 1);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, 0, 0); // tile 2
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, 0, 0); // tile 1
- k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 0, 0);
- k051316_zoom_draw(state->m_k051316, bitmap, cliprect, 0, 0);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0); // tile 0
+ k051960_sprites_draw(m_k051960, bitmap,cliprect, 1, 1);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, 0, 0); // tile 2
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, 0, 0); // tile 1
+ k051960_sprites_draw(m_k051960, bitmap, cliprect, 0, 0);
+ k051316_zoom_draw(m_k051316, bitmap, cliprect, 0, 0);
}
else
{
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE, 0); // tile 2
- k051316_zoom_draw(state->m_k051316, bitmap, cliprect, 0, 0);
- k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 0, 0);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, 0, 0); // tile 1
- k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 1, 1);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, 0, 0); // tile 0
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE, 0); // tile 2
+ k051316_zoom_draw(m_k051316, bitmap, cliprect, 0, 0);
+ k051960_sprites_draw(m_k051960, bitmap, cliprect, 0, 0);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, 0, 0); // tile 1
+ k051960_sprites_draw(m_k051960, bitmap, cliprect, 1, 1);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, 0, 0); // tile 0
}
return 0;
diff --git a/src/mame/video/actfancr.c b/src/mame/video/actfancr.c
index 3466714fc89..38fbd695829 100644
--- a/src/mame/video/actfancr.c
+++ b/src/mame/video/actfancr.c
@@ -24,16 +24,15 @@ void actfancr_state::video_start()
/******************************************************************************/
-SCREEN_UPDATE_IND16( actfancr )
+UINT32 actfancr_state::screen_update_actfancr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- actfancr_state *state = screen.machine().driver_data<actfancr_state>();
/* Draw playfield */
- //state->m_flipscreen = state->m_control_2[0] & 0x80;
- //screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
+ //m_flipscreen = m_control_2[0] & 0x80;
+ //screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
screen.machine().device<deco_bac06_device>("tilegen1")->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
- screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram16, 0x00, 0x00, 0x0f);
+ screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram16, 0x00, 0x00, 0x0f);
screen.machine().device<deco_bac06_device>("tilegen2")->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
return 0;
diff --git a/src/mame/video/aeroboto.c b/src/mame/video/aeroboto.c
index 1b02afe2604..2d73056ec26 100644
--- a/src/mame/video/aeroboto.c
+++ b/src/mame/video/aeroboto.c
@@ -149,19 +149,18 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
-SCREEN_UPDATE_IND16( aeroboto )
+UINT32 aeroboto_state::screen_update_aeroboto(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- aeroboto_state *state = screen.machine().driver_data<aeroboto_state>();
const rectangle splitrect1(0, 255, 0, 39);
const rectangle splitrect2(0, 255, 40, 255);
UINT8 *src_base, *src_colptr, *src_rowptr;
int src_offsx, src_colmask, sky_color, star_color, x, y, i, j, pen;
- sky_color = star_color = *state->m_bgcolor << 2;
+ sky_color = star_color = *m_bgcolor << 2;
// the star field is supposed to be seen through tile pen 0 when active
- if (!state->m_starsoff)
+ if (!m_starsoff)
{
if (star_color < 0xd0)
{
@@ -174,16 +173,16 @@ SCREEN_UPDATE_IND16( aeroboto )
bitmap.fill(sky_color, cliprect);
// actual scroll speed is unknown but it can be adjusted by changing the SCROLL_SPEED constant
- state->m_sx += (char)(*state->m_starx - state->m_ox);
- state->m_ox = *state->m_starx;
- x = state->m_sx / SCROLL_SPEED;
+ m_sx += (char)(*m_starx - m_ox);
+ m_ox = *m_starx;
+ x = m_sx / SCROLL_SPEED;
- if (*state->m_vscroll != 0xff)
- state->m_sy += (char)(*state->m_stary - state->m_oy);
- state->m_oy = *state->m_stary;
- y = state->m_sy / SCROLL_SPEED;
+ if (*m_vscroll != 0xff)
+ m_sy += (char)(*m_stary - m_oy);
+ m_oy = *m_stary;
+ y = m_sy / SCROLL_SPEED;
- src_base = state->m_stars_rom;
+ src_base = m_stars_rom;
for (i = 0; i < 256; i++)
{
@@ -203,22 +202,22 @@ SCREEN_UPDATE_IND16( aeroboto )
}
else
{
- state->m_sx = state->m_ox = *state->m_starx;
- state->m_sy = state->m_oy = *state->m_stary;
+ m_sx = m_ox = *m_starx;
+ m_sy = m_oy = *m_stary;
bitmap.fill(sky_color, cliprect);
}
for (y = 0; y < 64; y++)
- state->m_bg_tilemap->set_scrollx(y, state->m_hscroll[y]);
+ m_bg_tilemap->set_scrollx(y, m_hscroll[y]);
// the playfield is part of a splitscreen and should not overlap with status display
- state->m_bg_tilemap->set_scrolly(0, *state->m_vscroll);
- state->m_bg_tilemap->draw(bitmap, splitrect2, 0, 0);
+ m_bg_tilemap->set_scrolly(0, *m_vscroll);
+ m_bg_tilemap->draw(bitmap, splitrect2, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
// the status display behaves more closely to a 40-line splitscreen than an overlay
- state->m_bg_tilemap->set_scrolly(0, 0);
- state->m_bg_tilemap->draw(bitmap, splitrect1, 0, 0);
+ m_bg_tilemap->set_scrolly(0, 0);
+ m_bg_tilemap->draw(bitmap, splitrect1, 0, 0);
return 0;
}
diff --git a/src/mame/video/aerofgt.c b/src/mame/video/aerofgt.c
index a5ea1e27dc1..d325cf7516e 100644
--- a/src/mame/video/aerofgt.c
+++ b/src/mame/video/aerofgt.c
@@ -811,57 +811,54 @@ static void wbbc97_draw_bitmap( running_machine &machine, bitmap_rgb32 &bitmap )
}
-SCREEN_UPDATE_IND16( pspikes )
+UINT32 aerofgt_state::screen_update_pspikes(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- aerofgt_state *state = screen.machine().driver_data<aerofgt_state>();
int i, scrolly;
- state->m_bg1_tilemap->set_scroll_rows(256);
- scrolly = state->m_bg1scrolly;
+ m_bg1_tilemap->set_scroll_rows(256);
+ scrolly = m_bg1scrolly;
for (i = 0; i < 256; i++)
- state->m_bg1_tilemap->set_scrollx((i + scrolly) & 0xff, state->m_rasterram[i]);
- state->m_bg1_tilemap->set_scrolly(0, scrolly);
+ m_bg1_tilemap->set_scrollx((i + scrolly) & 0xff, m_rasterram[i]);
+ m_bg1_tilemap->set_scrolly(0, scrolly);
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
turbofrc_draw_sprites(screen.machine(), bitmap, cliprect, 0, -1);
turbofrc_draw_sprites(screen.machine(), bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( pspikesb )
+UINT32 aerofgt_state::screen_update_pspikesb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- aerofgt_state *state = screen.machine().driver_data<aerofgt_state>();
int i, scrolly;
- state->m_bg1_tilemap->set_scroll_rows(256);
- scrolly = state->m_bg1scrolly;
+ m_bg1_tilemap->set_scroll_rows(256);
+ scrolly = m_bg1scrolly;
for (i = 0; i < 256; i++)
- state->m_bg1_tilemap->set_scrollx((i + scrolly) & 0xff, state->m_rasterram[i] + 22);
- state->m_bg1_tilemap->set_scrolly(0, scrolly);
+ m_bg1_tilemap->set_scrollx((i + scrolly) & 0xff, m_rasterram[i] + 22);
+ m_bg1_tilemap->set_scrolly(0, scrolly);
- state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
pspikesb_draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
-SCREEN_UPDATE_IND16( spikes91 )
+UINT32 aerofgt_state::screen_update_spikes91(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- aerofgt_state *state = screen.machine().driver_data<aerofgt_state>();
int i, scrolly;
int y, x;
int count;
gfx_element *gfx = screen.machine().gfx[0];
- state->m_bg1_tilemap->set_scroll_rows(256);
- scrolly = state->m_bg1scrolly;
+ m_bg1_tilemap->set_scroll_rows(256);
+ scrolly = m_bg1scrolly;
for (i = 0; i < 256; i++)
- state->m_bg1_tilemap->set_scrollx((i + scrolly) & 0xff, state->m_rasterram[i + 0x01f0 / 2] + 0x96 + 0x16);
- state->m_bg1_tilemap->set_scrolly(0, scrolly);
+ m_bg1_tilemap->set_scrollx((i + scrolly) & 0xff, m_rasterram[i + 0x01f0 / 2] + 0x96 + 0x16);
+ m_bg1_tilemap->set_scrolly(0, scrolly);
- state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
spikes91_draw_sprites(screen.machine(), bitmap, cliprect);
/* we could use a tilemap, but it's easier to just do it here */
@@ -870,8 +867,8 @@ SCREEN_UPDATE_IND16( spikes91 )
{
for (x = 0; x < 64; x++)
{
- UINT16 tileno = state->m_tx_tilemap_ram[count] & 0x1fff;
- UINT16 colour = state->m_tx_tilemap_ram[count] & 0xe000;
+ UINT16 tileno = m_tx_tilemap_ram[count] & 0x1fff;
+ UINT16 colour = m_tx_tilemap_ram[count] & 0xe000;
drawgfx_transpen(bitmap,cliprect,gfx,
tileno,
colour>>13,
@@ -887,18 +884,17 @@ SCREEN_UPDATE_IND16( spikes91 )
return 0;
}
-SCREEN_UPDATE_IND16( karatblz )
+UINT32 aerofgt_state::screen_update_karatblz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- aerofgt_state *state = screen.machine().driver_data<aerofgt_state>();
- state->m_bg1_tilemap->set_scrollx(0, state->m_bg1scrollx - 8);
- state->m_bg1_tilemap->set_scrolly(0, state->m_bg1scrolly);
- state->m_bg2_tilemap->set_scrollx(0, state->m_bg2scrollx - 4);
- state->m_bg2_tilemap->set_scrolly(0, state->m_bg2scrolly);
+ m_bg1_tilemap->set_scrollx(0, m_bg1scrollx - 8);
+ m_bg1_tilemap->set_scrolly(0, m_bg1scrolly);
+ m_bg2_tilemap->set_scrollx(0, m_bg2scrollx - 4);
+ m_bg2_tilemap->set_scrolly(0, m_bg2scrolly);
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
/* we use the priority buffer so sprites are drawn front to back */
turbofrc_draw_sprites(screen.machine(), bitmap, cliprect, 1, -1);
@@ -908,23 +904,22 @@ SCREEN_UPDATE_IND16( karatblz )
return 0;
}
-SCREEN_UPDATE_IND16( spinlbrk )
+UINT32 aerofgt_state::screen_update_spinlbrk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- aerofgt_state *state = screen.machine().driver_data<aerofgt_state>();
int i, scrolly;
- state->m_bg1_tilemap->set_scroll_rows(512);
+ m_bg1_tilemap->set_scroll_rows(512);
scrolly = 0;
for (i = 0; i < 256; i++)
- state->m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, state->m_rasterram[i] - 8);
-// state->m_bg1_tilemap->set_scrolly(0, state->m_bg1scrolly);
- state->m_bg2_tilemap->set_scrollx(0, state->m_bg2scrollx - 4);
-// state->m_bg2_tilemap->set_scrolly(0, state->m_bg2scrolly);
+ m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[i] - 8);
+// m_bg1_tilemap->set_scrolly(0, m_bg1scrolly);
+ m_bg2_tilemap->set_scrollx(0, m_bg2scrollx - 4);
+// m_bg2_tilemap->set_scrolly(0, m_bg2scrolly);
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 1);
+ m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg2_tilemap->draw(bitmap, cliprect, 0, 1);
/* we use the priority buffer so sprites are drawn front to back */
spinlbrk_draw_sprites(screen.machine(), bitmap, cliprect, 0, 0);
@@ -934,24 +929,23 @@ SCREEN_UPDATE_IND16( spinlbrk )
return 0;
}
-SCREEN_UPDATE_IND16( turbofrc )
+UINT32 aerofgt_state::screen_update_turbofrc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- aerofgt_state *state = screen.machine().driver_data<aerofgt_state>();
int i, scrolly;
- state->m_bg1_tilemap->set_scroll_rows(512);
- scrolly = state->m_bg1scrolly + 2;
+ m_bg1_tilemap->set_scroll_rows(512);
+ scrolly = m_bg1scrolly + 2;
for (i = 0; i < 256; i++)
-// state->m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, state->m_rasterram[i] - 11);
- state->m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, state->m_rasterram[7] - 11);
- state->m_bg1_tilemap->set_scrolly(0, scrolly);
- state->m_bg2_tilemap->set_scrollx(0, state->m_bg2scrollx - 7);
- state->m_bg2_tilemap->set_scrolly(0, state->m_bg2scrolly + 2);
+// m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[i] - 11);
+ m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[7] - 11);
+ m_bg1_tilemap->set_scrolly(0, scrolly);
+ m_bg2_tilemap->set_scrollx(0, m_bg2scrollx - 7);
+ m_bg2_tilemap->set_scrolly(0, m_bg2scrolly + 2);
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 1);
+ m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg2_tilemap->draw(bitmap, cliprect, 0, 1);
/* we use the priority buffer so sprites are drawn front to back */
turbofrc_draw_sprites(screen.machine(), bitmap, cliprect, 1, -1); //ship
@@ -961,22 +955,21 @@ SCREEN_UPDATE_IND16( turbofrc )
return 0;
}
-SCREEN_UPDATE_IND16( aerofgt )
+UINT32 aerofgt_state::screen_update_aerofgt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- aerofgt_state *state = screen.machine().driver_data<aerofgt_state>();
- state->m_bg1_tilemap->set_scrollx(0, state->m_rasterram[0x0000] - 18);
- state->m_bg1_tilemap->set_scrolly(0, state->m_bg1scrolly);
- state->m_bg2_tilemap->set_scrollx(0, state->m_rasterram[0x0200] - 20);
- state->m_bg2_tilemap->set_scrolly(0, state->m_bg2scrolly);
+ m_bg1_tilemap->set_scrollx(0, m_rasterram[0x0000] - 18);
+ m_bg1_tilemap->set_scrolly(0, m_bg1scrolly);
+ m_bg2_tilemap->set_scrollx(0, m_rasterram[0x0200] - 20);
+ m_bg2_tilemap->set_scrolly(0, m_bg2scrolly);
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
aerofgt_draw_sprites(screen.machine(), bitmap, cliprect, 0);
aerofgt_draw_sprites(screen.machine(), bitmap, cliprect, 1);
- state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
aerofgt_draw_sprites(screen.machine(), bitmap, cliprect, 2);
aerofgt_draw_sprites(screen.machine(), bitmap, cliprect, 3);
@@ -984,47 +977,45 @@ SCREEN_UPDATE_IND16( aerofgt )
}
-SCREEN_UPDATE_IND16( aerfboot )
+UINT32 aerofgt_state::screen_update_aerfboot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- aerofgt_state *state = screen.machine().driver_data<aerofgt_state>();
int i, scrolly;
- state->m_bg1_tilemap->set_scroll_rows(512);
- scrolly = state->m_bg1scrolly + 2;
+ m_bg1_tilemap->set_scroll_rows(512);
+ scrolly = m_bg1scrolly + 2;
for (i = 0; i < 256; i++)
- state->m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, state->m_rasterram[7] + 174);
- state->m_bg1_tilemap->set_scrolly(0, scrolly);
- state->m_bg2_tilemap->set_scrollx(0, state->m_bg2scrollx + 172);
- state->m_bg2_tilemap->set_scrolly(0, state->m_bg2scrolly + 2);
+ m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[7] + 174);
+ m_bg1_tilemap->set_scrolly(0, scrolly);
+ m_bg2_tilemap->set_scrollx(0, m_bg2scrollx + 172);
+ m_bg2_tilemap->set_scrolly(0, m_bg2scrolly + 2);
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 1);
+ m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg2_tilemap->draw(bitmap, cliprect, 0, 1);
/* we use the priority buffer so sprites are drawn front to back */
aerfboot_draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
-SCREEN_UPDATE_IND16( aerfboo2 )
+UINT32 aerofgt_state::screen_update_aerfboo2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- aerofgt_state *state = screen.machine().driver_data<aerofgt_state>();
int i, scrolly;
- state->m_bg1_tilemap->set_scroll_rows(512);
- scrolly = state->m_bg1scrolly + 2;
+ m_bg1_tilemap->set_scroll_rows(512);
+ scrolly = m_bg1scrolly + 2;
for (i = 0; i < 256; i++)
-// state->m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, state->m_rasterram[i] - 11);
- state->m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, state->m_rasterram[7] - 11);
- state->m_bg1_tilemap->set_scrolly(0, scrolly);
- state->m_bg2_tilemap->set_scrollx(0, state->m_bg2scrollx - 7);
- state->m_bg2_tilemap->set_scrolly(0, state->m_bg2scrolly + 2);
+// m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[i] - 11);
+ m_bg1_tilemap->set_scrollx((i + scrolly) & 0x1ff, m_rasterram[7] - 11);
+ m_bg1_tilemap->set_scrolly(0, scrolly);
+ m_bg2_tilemap->set_scrollx(0, m_bg2scrollx - 7);
+ m_bg2_tilemap->set_scrolly(0, m_bg2scrolly + 2);
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 1);
+ m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg2_tilemap->draw(bitmap, cliprect, 0, 1);
/* we use the priority buffer so sprites are drawn front to back */
aerfboo2_draw_sprites(screen.machine(), bitmap, cliprect, 1, -1); //ship
@@ -1034,27 +1025,26 @@ SCREEN_UPDATE_IND16( aerfboo2 )
return 0;
}
-SCREEN_UPDATE_RGB32( wbbc97 )
+UINT32 aerofgt_state::screen_update_wbbc97(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- aerofgt_state *state = screen.machine().driver_data<aerofgt_state>();
int i, scrolly;
- state->m_bg1_tilemap->set_scroll_rows(256);
- scrolly = state->m_bg1scrolly;
+ m_bg1_tilemap->set_scroll_rows(256);
+ scrolly = m_bg1scrolly;
for (i = 0; i < 256; i++)
- state->m_bg1_tilemap->set_scrollx((i + scrolly) & 0xff, state->m_rasterram[i]);
- state->m_bg1_tilemap->set_scrolly(0, scrolly);
+ m_bg1_tilemap->set_scrollx((i + scrolly) & 0xff, m_rasterram[i]);
+ m_bg1_tilemap->set_scrolly(0, scrolly);
screen.machine().priority_bitmap.fill(0, cliprect);
- if (state->m_wbbc97_bitmap_enable)
+ if (m_wbbc97_bitmap_enable)
{
wbbc97_draw_bitmap(screen.machine(), bitmap);
- state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
}
else
{
- state->m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
}
turbofrc_draw_sprites(screen.machine(), bitmap, cliprect, 0, -1);
diff --git a/src/mame/video/airbustr.c b/src/mame/video/airbustr.c
index 116b4fd65be..191b7fee72b 100644
--- a/src/mame/video/airbustr.c
+++ b/src/mame/video/airbustr.c
@@ -125,28 +125,26 @@ void airbustr_state::video_start()
}
-SCREEN_UPDATE_IND16( airbustr )
+UINT32 airbustr_state::screen_update_airbustr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- airbustr_state *state = screen.machine().driver_data<airbustr_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
// copy the sprite bitmap to the screen
- pandora_update(state->m_pandora, bitmap, cliprect);
+ pandora_update(m_pandora, bitmap, cliprect);
return 0;
}
-SCREEN_VBLANK( airbustr )
+void airbustr_state::screen_eof_airbustr(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- airbustr_state *state = screen.machine().driver_data<airbustr_state>();
// update the sprite bitmap
- pandora_eof(state->m_pandora);
+ pandora_eof(m_pandora);
}
}
diff --git a/src/mame/video/ajax.c b/src/mame/video/ajax.c
index f2d74fa537d..3c68fe3bbab 100644
--- a/src/mame/video/ajax.c
+++ b/src/mame/video/ajax.c
@@ -86,30 +86,29 @@ void ajax_state::video_start()
***************************************************************************/
-SCREEN_UPDATE_IND16( ajax )
+UINT32 ajax_state::screen_update_ajax(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ajax_state *state = screen.machine().driver_data<ajax_state>();
- k052109_tilemap_update(state->m_k052109);
+ k052109_tilemap_update(m_k052109);
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, 0, 1);
- if (state->m_priority)
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, 0, 1);
+ if (m_priority)
{
/* basic layer order is B, zoom, A, F */
- k051316_zoom_draw(state->m_k051316, bitmap, cliprect, 0, 4);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, 0, 2);
+ k051316_zoom_draw(m_k051316, bitmap, cliprect, 0, 4);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, 0, 2);
}
else
{
/* basic layer order is B, A, zoom, F */
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, 0, 2);
- k051316_zoom_draw(state->m_k051316, bitmap, cliprect, 0, 4);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, 0, 2);
+ k051316_zoom_draw(m_k051316, bitmap, cliprect, 0, 4);
}
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, 0, 8);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, 0, 8);
- k051960_sprites_draw(state->m_k051960, bitmap, cliprect, -1, -1);
+ k051960_sprites_draw(m_k051960, bitmap, cliprect, -1, -1);
return 0;
}
diff --git a/src/mame/video/aliens.c b/src/mame/video/aliens.c
index def90c14f77..03f3e53c932 100644
--- a/src/mame/video/aliens.c
+++ b/src/mame/video/aliens.c
@@ -72,19 +72,18 @@ void aliens_state::video_start()
***************************************************************************/
-SCREEN_UPDATE_IND16( aliens )
+UINT32 aliens_state::screen_update_aliens(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- aliens_state *state = screen.machine().driver_data<aliens_state>();
- k052109_tilemap_update(state->m_k052109);
+ k052109_tilemap_update(m_k052109);
screen.machine().priority_bitmap.fill(0, cliprect);
- bitmap.fill(state->m_layer_colorbase[1] * 16, cliprect);
+ bitmap.fill(m_layer_colorbase[1] * 16, cliprect);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, 0, 1);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, 0, 2);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, 0, 4);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, 0, 1);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, 0, 2);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, 0, 4);
- k051960_sprites_draw(state->m_k051960, bitmap, cliprect, -1, -1);
+ k051960_sprites_draw(m_k051960, bitmap, cliprect, -1, -1);
return 0;
}
diff --git a/src/mame/video/alpha68k.c b/src/mame/video/alpha68k.c
index 28879d48336..1cc4cc05608 100644
--- a/src/mame/video/alpha68k.c
+++ b/src/mame/video/alpha68k.c
@@ -124,15 +124,14 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
/******************************************************************************/
-SCREEN_UPDATE_IND16( alpha68k_II )
+UINT32 alpha68k_state::screen_update_alpha68k_II(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- alpha68k_state *state = screen.machine().driver_data<alpha68k_state>();
- if (state->m_last_bank != state->m_bank_base)
+ if (m_last_bank != m_bank_base)
screen.machine().tilemap().mark_all_dirty();
- state->m_last_bank = state->m_bank_base;
- screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
+ m_last_bank = m_bank_base;
+ screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
bitmap.fill(2047, cliprect);
//AT
@@ -141,7 +140,7 @@ SCREEN_UPDATE_IND16( alpha68k_II )
draw_sprites(screen.machine(), bitmap, cliprect, 2, 0x0000, 0x0800);
draw_sprites(screen.machine(), bitmap, cliprect, 0, 0x0000, 0x07c0);
//ZT
- state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -270,21 +269,20 @@ static void draw_sprites_V( running_machine &machine, bitmap_ind16 &bitmap, cons
}
}
-SCREEN_UPDATE_IND16( alpha68k_V )
+UINT32 alpha68k_state::screen_update_alpha68k_V(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- alpha68k_state *state = screen.machine().driver_data<alpha68k_state>();
- UINT16 *spriteram = state->m_spriteram;
+ UINT16 *spriteram = m_spriteram;
- if (state->m_last_bank != state->m_bank_base)
+ if (m_last_bank != m_bank_base)
screen.machine().tilemap().mark_all_dirty();
- state->m_last_bank = state->m_bank_base;
- screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
+ m_last_bank = m_bank_base;
+ screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
bitmap.fill(4095, cliprect);
/* This appears to be correct priority */
- if (state->m_microcontroller_id == 0x8814) /* Sky Adventure */
+ if (m_microcontroller_id == 0x8814) /* Sky Adventure */
{
draw_sprites_V(screen.machine(), bitmap, cliprect, 0, 0x07c0, 0x0800, 0, 0x8000, 0x7fff);
draw_sprites_V(screen.machine(), bitmap, cliprect, 1, 0x0000, 0x0800, 0, 0x8000, 0x7fff);
@@ -307,19 +305,18 @@ SCREEN_UPDATE_IND16( alpha68k_V )
draw_sprites_V(screen.machine(), bitmap, cliprect, 0, 0x0000, 0x07c0, 0x8000, 0, 0x7fff);
}
- state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( alpha68k_V_sb )
+UINT32 alpha68k_state::screen_update_alpha68k_V_sb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- alpha68k_state *state = screen.machine().driver_data<alpha68k_state>();
- if (state->m_last_bank != state->m_bank_base)
+ if (m_last_bank != m_bank_base)
screen.machine().tilemap().mark_all_dirty();
- state->m_last_bank = state->m_bank_base;
- screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
+ m_last_bank = m_bank_base;
+ screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
bitmap.fill(4095, cliprect);
@@ -329,7 +326,7 @@ SCREEN_UPDATE_IND16( alpha68k_V_sb )
draw_sprites_V(screen.machine(), bitmap, cliprect, 2, 0x0000, 0x0800, 0x4000, 0x8000, 0x3fff);
draw_sprites_V(screen.machine(), bitmap, cliprect, 0, 0x0000, 0x07c0, 0x4000, 0x8000, 0x3fff);
- state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -363,10 +360,9 @@ static void draw_sprites_I( running_machine &machine, bitmap_ind16 &bitmap, cons
}
}
-SCREEN_UPDATE_IND16( alpha68k_I )
+UINT32 alpha68k_state::screen_update_alpha68k_I(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- alpha68k_state *state = screen.machine().driver_data<alpha68k_state>();
- int yshift = (state->m_microcontroller_id == 0x890a) ? 1 : 0; // The Next Space is 1 pixel off
+ int yshift = (m_microcontroller_id == 0x890a) ? 1 : 0; // The Next Space is 1 pixel off
bitmap.fill(get_black_pen(screen.machine()), cliprect);
@@ -498,10 +494,9 @@ static void kyros_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap,
}
}
-SCREEN_UPDATE_IND16( kyros )
+UINT32 alpha68k_state::screen_update_kyros(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- alpha68k_state *state = screen.machine().driver_data<alpha68k_state>();
- colortable_entry_set_value(screen.machine().colortable, 0x100, *state->m_videoram & 0xff);
+ colortable_entry_set_value(screen.machine().colortable, 0x100, *m_videoram & 0xff);
bitmap.fill(0x100, cliprect); //AT
kyros_draw_sprites(screen.machine(), bitmap, cliprect, 2, 0x0800);
@@ -558,10 +553,9 @@ static void sstingry_draw_sprites( running_machine &machine, bitmap_ind16 &bitma
}
}
-SCREEN_UPDATE_IND16( sstingry )
+UINT32 alpha68k_state::screen_update_sstingry(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- alpha68k_state *state = screen.machine().driver_data<alpha68k_state>();
- colortable_entry_set_value(screen.machine().colortable, 0x100, *state->m_videoram & 0xff);
+ colortable_entry_set_value(screen.machine().colortable, 0x100, *m_videoram & 0xff);
bitmap.fill(0x100, cliprect); //AT
sstingry_draw_sprites(screen.machine(), bitmap, cliprect, 2, 0x0800);
diff --git a/src/mame/video/ambush.c b/src/mame/video/ambush.c
index 28ff04e58a6..87d1f2df039 100644
--- a/src/mame/video/ambush.c
+++ b/src/mame/video/ambush.c
@@ -88,9 +88,8 @@ static void draw_chars( running_machine &machine, bitmap_ind16 &bitmap, const re
}
-SCREEN_UPDATE_IND16( ambush )
+UINT32 ambush_state::screen_update_ambush(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ambush_state *state = screen.machine().driver_data<ambush_state>();
int offs;
bitmap.fill(0, cliprect);
@@ -99,28 +98,28 @@ SCREEN_UPDATE_IND16( ambush )
draw_chars(screen.machine(), bitmap, cliprect, 0x00);
/* Draw the sprites. */
- for (offs = state->m_spriteram.bytes() - 4; offs >= 0; offs -= 4)
+ for (offs = m_spriteram.bytes() - 4; offs >= 0; offs -= 4)
{
int code, col, sx, sy, flipx, flipy, gfx;
- sy = state->m_spriteram[offs + 0];
- sx = state->m_spriteram[offs + 3];
+ sy = m_spriteram[offs + 0];
+ sx = m_spriteram[offs + 3];
if ( (sy == 0) ||
(sy == 0xff) ||
- ((sx < 0x40) && ( state->m_spriteram[offs + 2] & 0x10)) ||
- ((sx >= 0xc0) && (!(state->m_spriteram[offs + 2] & 0x10))))
+ ((sx < 0x40) && ( m_spriteram[offs + 2] & 0x10)) ||
+ ((sx >= 0xc0) && (!(m_spriteram[offs + 2] & 0x10))))
continue; /* prevent wraparound */
- code = (state->m_spriteram[offs + 1] & 0x3f) | ((state->m_spriteram[offs + 2] & 0x60) << 1);
+ code = (m_spriteram[offs + 1] & 0x3f) | ((m_spriteram[offs + 2] & 0x60) << 1);
- if (state->m_spriteram[offs + 2] & 0x80)
+ if (m_spriteram[offs + 2] & 0x80)
{
/* 16x16 sprites */
gfx = 1;
- if (!state->flip_screen())
+ if (!flip_screen())
sy = 240 - sy;
else
sx = 240 - sx;
@@ -131,24 +130,24 @@ SCREEN_UPDATE_IND16( ambush )
gfx = 0;
code <<= 2;
- if (!state->flip_screen())
+ if (!flip_screen())
sy = 248 - sy;
else
sx = 248 - sx;
}
- col = state->m_spriteram[offs + 2] & 0x0f;
- flipx = state->m_spriteram[offs + 1] & 0x40;
- flipy = state->m_spriteram[offs + 1] & 0x80;
+ col = m_spriteram[offs + 2] & 0x0f;
+ flipx = m_spriteram[offs + 1] & 0x40;
+ flipy = m_spriteram[offs + 1] & 0x80;
- if (state->flip_screen())
+ if (flip_screen())
{
flipx = !flipx;
flipy = !flipy;
}
drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[gfx],
- code, col | ((*state->m_colorbank & 0x03) << 4),
+ code, col | ((*m_colorbank & 0x03) << 4),
flipx, flipy,
sx,sy,0);
}
diff --git a/src/mame/video/amiga.c b/src/mame/video/amiga.c
index c992c2d6a52..857b3b2f91b 100644
--- a/src/mame/video/amiga.c
+++ b/src/mame/video/amiga.c
@@ -999,7 +999,7 @@ void amiga_render_scanline(running_machine &machine, bitmap_ind16 &bitmap, int s
*************************************/
/* TODO: alg.c requires that this uses RGB32 */
-SCREEN_UPDATE_IND16( amiga )
+UINT32 amiga_state::screen_update_amiga(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int y;
diff --git a/src/mame/video/amigaaga.c b/src/mame/video/amigaaga.c
index d182c062754..1859ea2d013 100644
--- a/src/mame/video/amigaaga.c
+++ b/src/mame/video/amigaaga.c
@@ -859,7 +859,7 @@ void amiga_aga_render_scanline(running_machine &machine, bitmap_rgb32 &bitmap, i
*
*************************************/
-SCREEN_UPDATE_RGB32( amiga_aga )
+UINT32 amiga_state::screen_update_amiga_aga(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
int y;
diff --git a/src/mame/video/ampoker2.c b/src/mame/video/ampoker2.c
index 15cddae7817..07c9c50af77 100644
--- a/src/mame/video/ampoker2.c
+++ b/src/mame/video/ampoker2.c
@@ -157,9 +157,8 @@ VIDEO_START_MEMBER(ampoker2_state,sigma2k)
8, 8, 64, 32);
}
-SCREEN_UPDATE_IND16(ampoker2)
+UINT32 ampoker2_state::screen_update_ampoker2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ampoker2_state *state = screen.machine().driver_data<ampoker2_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/amspdwy.c b/src/mame/video/amspdwy.c
index d7d6f0a8ef3..9b277805b3d 100644
--- a/src/mame/video/amspdwy.c
+++ b/src/mame/video/amspdwy.c
@@ -141,10 +141,9 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
***************************************************************************/
-SCREEN_UPDATE_IND16( amspdwy )
+UINT32 amspdwy_state::screen_update_amspdwy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- amspdwy_state *state = screen.machine().driver_data<amspdwy_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/angelkds.c b/src/mame/video/angelkds.c
index 991f3f973b3..b039ae03a01 100644
--- a/src/mame/video/angelkds.c
+++ b/src/mame/video/angelkds.c
@@ -258,9 +258,8 @@ void angelkds_state::video_start()
/* enable bits are uncertain */
-SCREEN_UPDATE_IND16( angelkds )
+UINT32 angelkds_state::screen_update_angelkds(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- angelkds_state *state = screen.machine().driver_data<angelkds_state>();
const rectangle &visarea = screen.visible_area();
rectangle clip;
@@ -269,24 +268,24 @@ SCREEN_UPDATE_IND16( angelkds )
/* draw top of screen */
clip.set(8*0, 8*16-1, visarea.min_y, visarea.max_y);
- if ((state->m_layer_ctrl & 0x80) == 0x00)
- state->m_bgtop_tilemap->draw(bitmap, clip, 0, 0);
+ if ((m_layer_ctrl & 0x80) == 0x00)
+ m_bgtop_tilemap->draw(bitmap, clip, 0, 0);
draw_sprites(screen.machine(), bitmap, clip, 0x80);
- if ((state->m_layer_ctrl & 0x20) == 0x00)
- state->m_tx_tilemap->draw(bitmap, clip, 0, 0);
+ if ((m_layer_ctrl & 0x20) == 0x00)
+ m_tx_tilemap->draw(bitmap, clip, 0, 0);
/* draw bottom of screen */
clip.set(8*16, 8*32-1, visarea.min_y, visarea.max_y);
- if ((state->m_layer_ctrl & 0x40) == 0x00)
- state->m_bgbot_tilemap->draw(bitmap, clip, 0, 0);
+ if ((m_layer_ctrl & 0x40) == 0x00)
+ m_bgbot_tilemap->draw(bitmap, clip, 0, 0);
draw_sprites(screen.machine(), bitmap, clip, 0x40);
- if ((state->m_layer_ctrl & 0x20) == 0x00)
- state->m_tx_tilemap->draw(bitmap, clip, 0, 0);
+ if ((m_layer_ctrl & 0x20) == 0x00)
+ m_tx_tilemap->draw(bitmap, clip, 0, 0);
return 0;
}
diff --git a/src/mame/video/appoooh.c b/src/mame/video/appoooh.c
index 42375076720..3b60db24e3d 100644
--- a/src/mame/video/appoooh.c
+++ b/src/mame/video/appoooh.c
@@ -265,62 +265,60 @@ static void robowres_draw_sprites( bitmap_ind16 &dest_bmp, const rectangle &clip
}
-SCREEN_UPDATE_IND16( appoooh )
+UINT32 appoooh_state::screen_update_appoooh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- appoooh_state *state = screen.machine().driver_data<appoooh_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- if (state->m_priority == 0) /* fg behind sprites */
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (m_priority == 0) /* fg behind sprites */
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
/* draw sprites */
- if (state->m_priority == 1)
+ if (m_priority == 1)
{
/* sprite set #1 */
- appoooh_draw_sprites(bitmap, cliprect, screen.machine().gfx[2], state->m_spriteram);
+ appoooh_draw_sprites(bitmap, cliprect, screen.machine().gfx[2], m_spriteram);
/* sprite set #2 */
- appoooh_draw_sprites(bitmap, cliprect, screen.machine().gfx[3], state->m_spriteram_2);
+ appoooh_draw_sprites(bitmap, cliprect, screen.machine().gfx[3], m_spriteram_2);
}
else
{
/* sprite set #2 */
- appoooh_draw_sprites(bitmap, cliprect, screen.machine().gfx[3], state->m_spriteram_2);
+ appoooh_draw_sprites(bitmap, cliprect, screen.machine().gfx[3], m_spriteram_2);
/* sprite set #1 */
- appoooh_draw_sprites(bitmap, cliprect, screen.machine().gfx[2], state->m_spriteram);
+ appoooh_draw_sprites(bitmap, cliprect, screen.machine().gfx[2], m_spriteram);
}
- if (state->m_priority != 0) /* fg in front of sprites */
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (m_priority != 0) /* fg in front of sprites */
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( robowres )
+UINT32 appoooh_state::screen_update_robowres(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- appoooh_state *state = screen.machine().driver_data<appoooh_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- if (state->m_priority == 0) /* fg behind sprites */
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (m_priority == 0) /* fg behind sprites */
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
/* draw sprites */
- if (state->m_priority == 1)
+ if (m_priority == 1)
{
/* sprite set #1 */
- robowres_draw_sprites(bitmap, cliprect, screen.machine().gfx[2], state->m_spriteram);
+ robowres_draw_sprites(bitmap, cliprect, screen.machine().gfx[2], m_spriteram);
/* sprite set #2 */
- robowres_draw_sprites(bitmap, cliprect, screen.machine().gfx[3], state->m_spriteram_2);
+ robowres_draw_sprites(bitmap, cliprect, screen.machine().gfx[3], m_spriteram_2);
}
else
{
/* sprite set #2 */
- robowres_draw_sprites(bitmap, cliprect, screen.machine().gfx[3], state->m_spriteram_2);
+ robowres_draw_sprites(bitmap, cliprect, screen.machine().gfx[3], m_spriteram_2);
/* sprite set #1 */
- robowres_draw_sprites(bitmap, cliprect, screen.machine().gfx[2], state->m_spriteram);
+ robowres_draw_sprites(bitmap, cliprect, screen.machine().gfx[2], m_spriteram);
}
- if (state->m_priority != 0) /* fg in front of sprites */
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (m_priority != 0) /* fg in front of sprites */
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/aquarium.c b/src/mame/video/aquarium.c
index 5b4472ccae8..37ccce63ddf 100644
--- a/src/mame/video/aquarium.c
+++ b/src/mame/video/aquarium.c
@@ -151,23 +151,22 @@ void aquarium_state::video_start()
m_mid_tilemap->set_transparent_pen(0);
}
-SCREEN_UPDATE_IND16(aquarium)
+UINT32 aquarium_state::screen_update_aquarium(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- aquarium_state *state = screen.machine().driver_data<aquarium_state>();
- state->m_mid_tilemap->set_scrollx(0, state->m_scroll[0]);
- state->m_mid_tilemap->set_scrolly(0, state->m_scroll[1]);
- state->m_bak_tilemap->set_scrollx(0, state->m_scroll[2]);
- state->m_bak_tilemap->set_scrolly(0, state->m_scroll[3]);
- state->m_txt_tilemap->set_scrollx(0, state->m_scroll[4]);
- state->m_txt_tilemap->set_scrolly(0, state->m_scroll[5]);
+ m_mid_tilemap->set_scrollx(0, m_scroll[0]);
+ m_mid_tilemap->set_scrolly(0, m_scroll[1]);
+ m_bak_tilemap->set_scrollx(0, m_scroll[2]);
+ m_bak_tilemap->set_scrolly(0, m_scroll[3]);
+ m_txt_tilemap->set_scrollx(0, m_scroll[4]);
+ m_txt_tilemap->set_scrolly(0, m_scroll[5]);
- state->m_bak_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_mid_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bak_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_mid_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 16);
- state->m_bak_tilemap->draw(bitmap, cliprect, 1, 0);
- state->m_mid_tilemap->draw(bitmap, cliprect, 1, 0);
- state->m_txt_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bak_tilemap->draw(bitmap, cliprect, 1, 0);
+ m_mid_tilemap->draw(bitmap, cliprect, 1, 0);
+ m_txt_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/arabian.c b/src/mame/video/arabian.c
index cca5fff558c..4d4358c9c87 100644
--- a/src/mame/video/arabian.c
+++ b/src/mame/video/arabian.c
@@ -365,18 +365,17 @@ WRITE8_MEMBER(arabian_state::arabian_videoram_w)
*
*************************************/
-SCREEN_UPDATE_IND16( arabian )
+UINT32 arabian_state::screen_update_arabian(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- arabian_state *state = screen.machine().driver_data<arabian_state>();
- const pen_t *pens = &screen.machine().pens[(state->m_video_control >> 3) << 8];
+ const pen_t *pens = &screen.machine().pens[(m_video_control >> 3) << 8];
int y;
/* render the screen from the bitmap */
for (y = 0; y < BITMAP_HEIGHT; y++)
{
/* non-flipped case */
- if (!state->m_flip_screen)
- draw_scanline8(bitmap, 0, y, BITMAP_WIDTH, &state->m_main_bitmap[y * BITMAP_WIDTH], pens);
+ if (!m_flip_screen)
+ draw_scanline8(bitmap, 0, y, BITMAP_WIDTH, &m_main_bitmap[y * BITMAP_WIDTH], pens);
/* flipped case */
else
@@ -384,7 +383,7 @@ SCREEN_UPDATE_IND16( arabian )
UINT8 scanline[BITMAP_WIDTH];
int x;
for (x = 0; x < BITMAP_WIDTH; x++)
- scanline[BITMAP_WIDTH - 1 - x] = state->m_main_bitmap[y * BITMAP_WIDTH + x];
+ scanline[BITMAP_WIDTH - 1 - x] = m_main_bitmap[y * BITMAP_WIDTH + x];
draw_scanline8(bitmap, 0, BITMAP_HEIGHT - 1 - y, BITMAP_WIDTH, scanline, pens);
}
}
diff --git a/src/mame/video/arcadecl.c b/src/mame/video/arcadecl.c
index 7c93a65b3dc..26144fea7eb 100644
--- a/src/mame/video/arcadecl.c
+++ b/src/mame/video/arcadecl.c
@@ -77,15 +77,14 @@ VIDEO_START_MEMBER(arcadecl_state,arcadecl)
*
*************************************/
-SCREEN_UPDATE_IND16( arcadecl )
+UINT32 arcadecl_state::screen_update_arcadecl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- arcadecl_state *state = screen.machine().driver_data<arcadecl_state>();
/* draw the playfield */
arcadecl_bitmap_render(screen.machine(), bitmap, cliprect);
/* draw and merge the MO */
- if (state->m_has_mo)
+ if (m_has_mo)
{
atarimo_rect_list rectlist;
bitmap_ind16 *mobitmap;
diff --git a/src/mame/video/argus.c b/src/mame/video/argus.c
index 1469efe38ac..bacd62d3115 100644
--- a/src/mame/video/argus.c
+++ b/src/mame/video/argus.c
@@ -1154,49 +1154,46 @@ static void butasan_log_vram(running_machine &machine)
#endif
}
-SCREEN_UPDATE_RGB32( argus )
+UINT32 argus_state::screen_update_argus(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- argus_state *state = screen.machine().driver_data<argus_state>();
bg_setting(screen.machine());
/* scroll BG0 and render tile at proper position */
argus_bg0_scroll_handle(screen.machine());
- state->m_bg0_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg0_tilemap->draw(bitmap, cliprect, 0, 0);
argus_draw_sprites(screen.machine(), bitmap, cliprect, 0);
- if (state->m_bg_status & 1) /* Backgound enable */
- state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (m_bg_status & 1) /* Backgound enable */
+ m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
argus_draw_sprites(screen.machine(), bitmap, cliprect, 1);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_RGB32( valtric )
+UINT32 argus_state::screen_update_valtric(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- argus_state *state = screen.machine().driver_data<argus_state>();
bg_setting(screen.machine());
- if (state->m_bg_status & 1) /* Backgound enable */
+ if (m_bg_status & 1) /* Backgound enable */
valtric_draw_mosaic(screen, bitmap, cliprect);
else
bitmap.fill(get_black_pen(screen.machine()), cliprect);
valtric_draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_RGB32( butasan )
+UINT32 argus_state::screen_update_butasan(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- argus_state *state = screen.machine().driver_data<argus_state>();
bg_setting(screen.machine());
- if (state->m_bg_status & 1) /* Backgound enable */
- state->m_bg0_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (m_bg_status & 1) /* Backgound enable */
+ m_bg0_tilemap->draw(bitmap, cliprect, 0, 0);
else
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- if (state->m_butasan_bg1_status & 1) state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (m_butasan_bg1_status & 1) m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
butasan_draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
butasan_log_vram(screen.machine());
return 0;
diff --git a/src/mame/video/arkanoid.c b/src/mame/video/arkanoid.c
index 6241b7a2321..0c46b02a231 100644
--- a/src/mame/video/arkanoid.c
+++ b/src/mame/video/arkanoid.c
@@ -196,19 +196,17 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
-SCREEN_UPDATE_IND16( arkanoid )
+UINT32 arkanoid_state::screen_update_arkanoid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- arkanoid_state *state = screen.machine().driver_data<arkanoid_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
-SCREEN_UPDATE_IND16( hexa )
+UINT32 arkanoid_state::screen_update_hexa(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- arkanoid_state *state = screen.machine().driver_data<arkanoid_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/armedf.c b/src/mame/video/armedf.c
index ec56cc7a8d7..29994708bc3 100644
--- a/src/mame/video/armedf.c
+++ b/src/mame/video/armedf.c
@@ -367,41 +367,40 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( armedf )
+UINT32 armedf_state::screen_update_armedf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- armedf_state *state = screen.machine().driver_data<armedf_state>();
- int sprite_enable = state->m_vreg & 0x200;
+ int sprite_enable = m_vreg & 0x200;
- state->m_bg_tilemap->enable(state->m_vreg & 0x800);
- state->m_fg_tilemap->enable(state->m_vreg & 0x400);
- state->m_tx_tilemap->enable(state->m_vreg & 0x100);
+ m_bg_tilemap->enable(m_vreg & 0x800);
+ m_fg_tilemap->enable(m_vreg & 0x400);
+ m_tx_tilemap->enable(m_vreg & 0x100);
- switch (state->m_scroll_type)
+ switch (m_scroll_type)
{
case 0: /* terra force, kozure ookami */
case 2: /* legion */
case 3: /* crazy climber */
- state->m_fg_tilemap->set_scrollx(0, (state->m_fg_scrollx & 0x3ff));
- state->m_fg_tilemap->set_scrolly(0, (state->m_fg_scrolly & 0x3ff));
+ m_fg_tilemap->set_scrollx(0, (m_fg_scrollx & 0x3ff));
+ m_fg_tilemap->set_scrolly(0, (m_fg_scrolly & 0x3ff));
break;
case 1: /* armed formation */
- state->m_fg_tilemap->set_scrollx(0, state->m_fg_scrollx);
- state->m_fg_tilemap->set_scrolly(0, state->m_fg_scrolly);
+ m_fg_tilemap->set_scrollx(0, m_fg_scrollx);
+ m_fg_tilemap->set_scrolly(0, m_fg_scrolly);
break;
}
bitmap.fill(0xff, cliprect );
- state->m_tx_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1), 0);
+ m_tx_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1), 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
if (sprite_enable)
draw_sprites(screen.machine(), bitmap, cliprect, 2);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
if (sprite_enable)
draw_sprites(screen.machine(), bitmap, cliprect, 1);
@@ -409,7 +408,7 @@ SCREEN_UPDATE_IND16( armedf )
if (sprite_enable)
draw_sprites(screen.machine(), bitmap, cliprect, 0);
- state->m_tx_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0), 0);
+ m_tx_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0), 0);
return 0;
}
diff --git a/src/mame/video/ashnojoe.c b/src/mame/video/ashnojoe.c
index 2c6d0767a61..f3114eedc32 100644
--- a/src/mame/video/ashnojoe.c
+++ b/src/mame/video/ashnojoe.c
@@ -207,24 +207,23 @@ void ashnojoe_state::video_start()
m_joetilemap5->set_transparent_pen(15);
}
-SCREEN_UPDATE_IND16( ashnojoe )
+UINT32 ashnojoe_state::screen_update_ashnojoe(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ashnojoe_state *state = screen.machine().driver_data<ashnojoe_state>();
- //state->m_tilemap_reg[0] & 0x10 // ?? on coin insertion
+ //m_tilemap_reg[0] & 0x10 // ?? on coin insertion
- state->flip_screen_set(state->m_tilemap_reg[0] & 1);
+ flip_screen_set(m_tilemap_reg[0] & 1);
- if(state->m_tilemap_reg[0] & 0x02)
- state->m_joetilemap7->draw(bitmap, cliprect, 0, 0);
+ if(m_tilemap_reg[0] & 0x02)
+ m_joetilemap7->draw(bitmap, cliprect, 0, 0);
else
- state->m_joetilemap6->draw(bitmap, cliprect, 0, 0);
+ m_joetilemap6->draw(bitmap, cliprect, 0, 0);
- state->m_joetilemap4->draw(bitmap, cliprect, 0, 0);
- state->m_joetilemap2->draw(bitmap, cliprect, 0, 0);
- state->m_joetilemap5->draw(bitmap, cliprect, 0, 0);
- state->m_joetilemap3->draw(bitmap, cliprect, 0, 0);
- state->m_joetilemap->draw(bitmap, cliprect, 0, 0);
+ m_joetilemap4->draw(bitmap, cliprect, 0, 0);
+ m_joetilemap2->draw(bitmap, cliprect, 0, 0);
+ m_joetilemap5->draw(bitmap, cliprect, 0, 0);
+ m_joetilemap3->draw(bitmap, cliprect, 0, 0);
+ m_joetilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/asterix.c b/src/mame/video/asterix.c
index f6bc763346b..509e439901f 100644
--- a/src/mame/video/asterix.c
+++ b/src/mame/video/asterix.c
@@ -45,67 +45,66 @@ void asterix_tile_callback( running_machine &machine, int layer, int *code, int
*code = (*code & 0x03ff) | state->m_tilebanks[(*code >> 10) & 3];
}
-SCREEN_UPDATE_IND16( asterix )
+UINT32 asterix_state::screen_update_asterix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- asterix_state *state = screen.machine().driver_data<asterix_state>();
static const int K053251_CI[4] = { K053251_CI0, K053251_CI2, K053251_CI3, K053251_CI4 };
int layer[3], plane, new_colorbase;
/* Layer offsets are different if horizontally flipped */
- if (k056832_read_register(state->m_k056832, 0x0) & 0x10)
+ if (k056832_read_register(m_k056832, 0x0) & 0x10)
{
- k056832_set_layer_offs(state->m_k056832, 0, 89 - 176, 0);
- k056832_set_layer_offs(state->m_k056832, 1, 91 - 176, 0);
- k056832_set_layer_offs(state->m_k056832, 2, 89 - 176, 0);
- k056832_set_layer_offs(state->m_k056832, 3, 95 - 176, 0);
+ k056832_set_layer_offs(m_k056832, 0, 89 - 176, 0);
+ k056832_set_layer_offs(m_k056832, 1, 91 - 176, 0);
+ k056832_set_layer_offs(m_k056832, 2, 89 - 176, 0);
+ k056832_set_layer_offs(m_k056832, 3, 95 - 176, 0);
}
else
{
- k056832_set_layer_offs(state->m_k056832, 0, 89, 0);
- k056832_set_layer_offs(state->m_k056832, 1, 91, 0);
- k056832_set_layer_offs(state->m_k056832, 2, 89, 0);
- k056832_set_layer_offs(state->m_k056832, 3, 95, 0);
+ k056832_set_layer_offs(m_k056832, 0, 89, 0);
+ k056832_set_layer_offs(m_k056832, 1, 91, 0);
+ k056832_set_layer_offs(m_k056832, 2, 89, 0);
+ k056832_set_layer_offs(m_k056832, 3, 95, 0);
}
- state->m_tilebanks[0] = (k056832_get_lookup(state->m_k056832, 0) << 10);
- state->m_tilebanks[1] = (k056832_get_lookup(state->m_k056832, 1) << 10);
- state->m_tilebanks[2] = (k056832_get_lookup(state->m_k056832, 2) << 10);
- state->m_tilebanks[3] = (k056832_get_lookup(state->m_k056832, 3) << 10);
+ m_tilebanks[0] = (k056832_get_lookup(m_k056832, 0) << 10);
+ m_tilebanks[1] = (k056832_get_lookup(m_k056832, 1) << 10);
+ m_tilebanks[2] = (k056832_get_lookup(m_k056832, 2) << 10);
+ m_tilebanks[3] = (k056832_get_lookup(m_k056832, 3) << 10);
// update color info and refresh tilemaps
- state->m_sprite_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI1);
+ m_sprite_colorbase = k053251_get_palette_index(m_k053251, K053251_CI1);
for (plane = 0; plane < 4; plane++)
{
- new_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI[plane]);
- if (state->m_layer_colorbase[plane] != new_colorbase)
+ new_colorbase = k053251_get_palette_index(m_k053251, K053251_CI[plane]);
+ if (m_layer_colorbase[plane] != new_colorbase)
{
- state->m_layer_colorbase[plane] = new_colorbase;
- k056832_mark_plane_dirty(state->m_k056832, plane);
+ m_layer_colorbase[plane] = new_colorbase;
+ k056832_mark_plane_dirty(m_k056832, plane);
}
}
layer[0] = 0;
- state->m_layerpri[0] = k053251_get_priority(state->m_k053251, K053251_CI0);
+ m_layerpri[0] = k053251_get_priority(m_k053251, K053251_CI0);
layer[1] = 1;
- state->m_layerpri[1] = k053251_get_priority(state->m_k053251, K053251_CI2);
+ m_layerpri[1] = k053251_get_priority(m_k053251, K053251_CI2);
layer[2] = 3;
- state->m_layerpri[2] = k053251_get_priority(state->m_k053251, K053251_CI4);
+ m_layerpri[2] = k053251_get_priority(m_k053251, K053251_CI4);
- konami_sortlayers3(layer, state->m_layerpri);
+ konami_sortlayers3(layer, m_layerpri);
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(0, cliprect);
- k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, layer[0], K056832_DRAW_FLAG_MIRROR, 1);
- k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, layer[1], K056832_DRAW_FLAG_MIRROR, 2);
- k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, layer[2], K056832_DRAW_FLAG_MIRROR, 4);
+ k056832_tilemap_draw(m_k056832, bitmap, cliprect, layer[0], K056832_DRAW_FLAG_MIRROR, 1);
+ k056832_tilemap_draw(m_k056832, bitmap, cliprect, layer[1], K056832_DRAW_FLAG_MIRROR, 2);
+ k056832_tilemap_draw(m_k056832, bitmap, cliprect, layer[2], K056832_DRAW_FLAG_MIRROR, 4);
/* this isn't supported anymore and it is unsure if still needed; keeping here for reference
pdrawgfx_shadow_lowpri = 1; fix shadows in front of feet */
- k053245_sprites_draw(state->m_k053244, bitmap, cliprect);
+ k053245_sprites_draw(m_k053244, bitmap, cliprect);
- k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, 2, K056832_DRAW_FLAG_MIRROR, 0);
+ k056832_tilemap_draw(m_k056832, bitmap, cliprect, 2, K056832_DRAW_FLAG_MIRROR, 0);
return 0;
}
diff --git a/src/mame/video/astrocde.c b/src/mame/video/astrocde.c
index ebc04986ce9..bed4aaace68 100644
--- a/src/mame/video/astrocde.c
+++ b/src/mame/video/astrocde.c
@@ -247,20 +247,19 @@ static void init_savestate(running_machine &machine)
*
*************************************/
-SCREEN_UPDATE_IND16( astrocde )
+UINT32 astrocde_state::screen_update_astrocde(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- astrocde_state *state = screen.machine().driver_data<astrocde_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
UINT32 sparklebase = 0;
- const int colormask = (state->m_video_config & AC_MONITOR_BW) ? 0 : 0x1f0;
- int xystep = 2 - state->m_video_mode;
+ const int colormask = (m_video_config & AC_MONITOR_BW) ? 0 : 0x1f0;
+ int xystep = 2 - m_video_mode;
int y;
/* compute the starting point of sparkle for the current frame */
int width = screen.width();
int height = screen.height();
- if (state->m_video_config & AC_STARS)
+ if (m_video_config & AC_STARS)
sparklebase = (screen.frame_number() * (UINT64)(width * height)) % RNG_PERIOD;
/* iterate over scanlines */
@@ -273,7 +272,7 @@ SCREEN_UPDATE_IND16( astrocde )
int x;
/* compute the star and sparkle offset at the start of this line */
- if (state->m_video_config & AC_STARS)
+ if (m_video_config & AC_STARS)
{
staroffs = ((effy < 0) ? (effy + 262) : effy) * width;
sparkleoffs = sparklebase + y * width;
@@ -285,12 +284,12 @@ SCREEN_UPDATE_IND16( astrocde )
for (x = 0; x < 456/4; x += xystep)
{
int effx = x - HORZ_OFFSET/4;
- const UINT8 *colorbase = &state->m_colors[(effx < state->m_colorsplit) ? 4 : 0];
+ const UINT8 *colorbase = &m_colors[(effx < m_colorsplit) ? 4 : 0];
UINT8 data;
int xx;
/* select either video data or background data */
- data = (effx >= 0 && effx < 80 && effy >= 0 && effy < state->m_vblank) ? videoram[offset++] : state->m_bgdata;
+ data = (effx >= 0 && effx < 80 && effy >= 0 && effy < m_vblank) ? videoram[offset++] : m_bgdata;
/* iterate over the 4 pixels */
for (xx = 0; xx < 4; xx++)
@@ -301,14 +300,14 @@ SCREEN_UPDATE_IND16( astrocde )
rgb_t color;
/* handle stars/sparkle */
- if (state->m_video_config & AC_STARS)
+ if (m_video_config & AC_STARS)
{
/* if sparkle is enabled for this pixel index and either it is non-zero or a star */
/* then adjust the intensity */
- if (state->m_sparkle[pixdata] == 0)
+ if (m_sparkle[pixdata] == 0)
{
- if (pixdata != 0 || (state->m_sparklestar[staroffs] & 0x10))
- luma = state->m_sparklestar[sparkleoffs] & 0x0f;
+ if (pixdata != 0 || (m_sparklestar[staroffs] & 0x10))
+ luma = m_sparklestar[sparkleoffs] & 0x0f;
else if (pixdata == 0)
colordata = luma = 0;
}
@@ -333,9 +332,8 @@ SCREEN_UPDATE_IND16( astrocde )
}
-SCREEN_UPDATE_IND16( profpac )
+UINT32 astrocde_state::screen_update_profpac(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- astrocde_state *state = screen.machine().driver_data<astrocde_state>();
int y;
/* iterate over scanlines */
@@ -343,7 +341,7 @@ SCREEN_UPDATE_IND16( profpac )
{
int effy = mame_vpos_to_astrocade_vpos(y);
UINT16 *dest = &bitmap.pix16(y);
- UINT16 offset = state->m_profpac_vispage * 0x4000 + effy * 80;
+ UINT16 offset = m_profpac_vispage * 0x4000 + effy * 80;
int x;
/* star with black */
@@ -354,13 +352,13 @@ SCREEN_UPDATE_IND16( profpac )
int effx = x - HORZ_OFFSET/4;
/* select either video data or background data */
- UINT16 data = (effx >= 0 && effx < 80 && effy >= 0 && effy < state->m_vblank) ? state->m_profpac_videoram[offset++] : 0;
+ UINT16 data = (effx >= 0 && effx < 80 && effy >= 0 && effy < m_vblank) ? m_profpac_videoram[offset++] : 0;
/* iterate over the 4 pixels */
- *dest++ = state->m_profpac_palette[(data >> 12) & 0x0f];
- *dest++ = state->m_profpac_palette[(data >> 8) & 0x0f];
- *dest++ = state->m_profpac_palette[(data >> 4) & 0x0f];
- *dest++ = state->m_profpac_palette[(data >> 0) & 0x0f];
+ *dest++ = m_profpac_palette[(data >> 12) & 0x0f];
+ *dest++ = m_profpac_palette[(data >> 8) & 0x0f];
+ *dest++ = m_profpac_palette[(data >> 4) & 0x0f];
+ *dest++ = m_profpac_palette[(data >> 0) & 0x0f];
}
}
diff --git a/src/mame/video/asuka.c b/src/mame/video/asuka.c
index 81be402b3f5..9aea933c539 100644
--- a/src/mame/video/asuka.c
+++ b/src/mame/video/asuka.c
@@ -18,14 +18,13 @@ WRITE16_MEMBER(asuka_state::asuka_spritectrl_w)
SCREEN REFRESH
**************************************************************/
-SCREEN_UPDATE_IND16( asuka )
+UINT32 asuka_state::screen_update_asuka(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- asuka_state *state = screen.machine().driver_data<asuka_state>();
UINT8 layer[3];
- tc0100scn_tilemap_update(state->m_tc0100scn);
+ tc0100scn_tilemap_update(m_tc0100scn);
- layer[0] = tc0100scn_bottomlayer(state->m_tc0100scn);
+ layer[0] = tc0100scn_bottomlayer(m_tc0100scn);
layer[1] = layer[0] ^ 1;
layer[2] = 2;
@@ -34,24 +33,23 @@ SCREEN_UPDATE_IND16( asuka )
/* Ensure screen blanked even when bottom layer not drawn due to disable bit */
bitmap.fill(0, cliprect);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[1], 0, 2);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[1], 0, 2);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
/* Sprites may be over or under top bg layer */
- pc090oj_draw_sprites(state->m_pc090oj, bitmap, cliprect, 2);
+ pc090oj_draw_sprites(m_pc090oj, bitmap, cliprect, 2);
return 0;
}
-SCREEN_UPDATE_IND16( bonzeadv )
+UINT32 asuka_state::screen_update_bonzeadv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- asuka_state *state = screen.machine().driver_data<asuka_state>();
UINT8 layer[3];
- tc0100scn_tilemap_update(state->m_tc0100scn);
+ tc0100scn_tilemap_update(m_tc0100scn);
- layer[0] = tc0100scn_bottomlayer(state->m_tc0100scn);
+ layer[0] = tc0100scn_bottomlayer(m_tc0100scn);
layer[1] = layer[0] ^ 1;
layer[2] = 2;
@@ -60,11 +58,11 @@ SCREEN_UPDATE_IND16( bonzeadv )
/* Ensure screen blanked even when bottom layer not drawn due to disable bit */
bitmap.fill(0, cliprect);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[1], 0, 2);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[1], 0, 2);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
/* Sprites are always over both bg layers */
- pc090oj_draw_sprites(state->m_pc090oj, bitmap, cliprect, 0);
+ pc090oj_draw_sprites(m_pc090oj, bitmap, cliprect, 0);
return 0;
}
diff --git a/src/mame/video/atarifb.c b/src/mame/video/atarifb.c
index 9d930eaeeb7..6857ca8d35f 100644
--- a/src/mame/video/atarifb.c
+++ b/src/mame/video/atarifb.c
@@ -173,7 +173,7 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
-SCREEN_UPDATE_IND16( atarifb )
+UINT32 atarifb_state::screen_update_atarifb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
draw_playfield_and_alpha(screen.machine(), bitmap, cliprect, 0, 0);
@@ -183,7 +183,7 @@ SCREEN_UPDATE_IND16( atarifb )
}
-SCREEN_UPDATE_IND16( abaseb )
+UINT32 atarifb_state::screen_update_abaseb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
draw_playfield_and_alpha(screen.machine(), bitmap, cliprect, -8, 0);
@@ -193,7 +193,7 @@ SCREEN_UPDATE_IND16( abaseb )
}
-SCREEN_UPDATE_IND16( soccer )
+UINT32 atarifb_state::screen_update_soccer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
draw_playfield_and_alpha(screen.machine(), bitmap, cliprect, 0, 8);
diff --git a/src/mame/video/atarig1.c b/src/mame/video/atarig1.c
index 40feff0426a..4329bf21935 100644
--- a/src/mame/video/atarig1.c
+++ b/src/mame/video/atarig1.c
@@ -148,28 +148,26 @@ void atarig1_scanline_update(screen_device &screen, int scanline)
*
*************************************/
-SCREEN_UPDATE_IND16( atarig1 )
+UINT32 atarig1_state::screen_update_atarig1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- atarig1_state *state = screen.machine().driver_data<atarig1_state>();
/* draw the playfield */
- state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
/* copy the motion objects on top */
- copybitmap_trans(bitmap, *atarirle_get_vram(state->m_rle, 0), 0, 0, 0, 0, cliprect, 0);
+ copybitmap_trans(bitmap, *atarirle_get_vram(m_rle, 0), 0, 0, 0, 0, cliprect, 0);
/* add the alpha on top */
- state->m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_VBLANK( atarig1 )
+void atarig1_state::screen_eof_atarig1(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- atarig1_state *state = screen.machine().driver_data<atarig1_state>();
- atarirle_eof(state->m_rle);
+ atarirle_eof(m_rle);
}
}
diff --git a/src/mame/video/atarig42.c b/src/mame/video/atarig42.c
index 2d4d757e9e1..3de6b9c414e 100644
--- a/src/mame/video/atarig42.c
+++ b/src/mame/video/atarig42.c
@@ -177,25 +177,24 @@ void atarig42_scanline_update(screen_device &screen, int scanline)
*
*************************************/
-SCREEN_UPDATE_IND16( atarig42 )
+UINT32 atarig42_state::screen_update_atarig42(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- atarig42_state *state = screen.machine().driver_data<atarig42_state>();
bitmap_ind8 &priority_bitmap = screen.machine().priority_bitmap;
/* draw the playfield */
priority_bitmap.fill(0, cliprect);
- state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_playfield_tilemap->draw(bitmap, cliprect, 1, 1);
- state->m_playfield_tilemap->draw(bitmap, cliprect, 2, 2);
- state->m_playfield_tilemap->draw(bitmap, cliprect, 3, 3);
- state->m_playfield_tilemap->draw(bitmap, cliprect, 4, 4);
- state->m_playfield_tilemap->draw(bitmap, cliprect, 5, 5);
- state->m_playfield_tilemap->draw(bitmap, cliprect, 6, 6);
- state->m_playfield_tilemap->draw(bitmap, cliprect, 7, 7);
+ m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_playfield_tilemap->draw(bitmap, cliprect, 1, 1);
+ m_playfield_tilemap->draw(bitmap, cliprect, 2, 2);
+ m_playfield_tilemap->draw(bitmap, cliprect, 3, 3);
+ m_playfield_tilemap->draw(bitmap, cliprect, 4, 4);
+ m_playfield_tilemap->draw(bitmap, cliprect, 5, 5);
+ m_playfield_tilemap->draw(bitmap, cliprect, 6, 6);
+ m_playfield_tilemap->draw(bitmap, cliprect, 7, 7);
/* copy the motion objects on top */
{
- bitmap_ind16 *mo_bitmap = atarirle_get_vram(state->m_rle, 0);
+ bitmap_ind16 *mo_bitmap = atarirle_get_vram(m_rle, 0);
int left = cliprect.min_x;
int top = cliprect.min_y;
int right = cliprect.max_x + 1;
@@ -220,17 +219,16 @@ SCREEN_UPDATE_IND16( atarig42 )
}
/* add the alpha on top */
- state->m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_VBLANK( atarig42 )
+void atarig42_state::screen_eof_atarig42(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- atarig42_state *state = screen.machine().driver_data<atarig42_state>();
- atarirle_eof(state->m_rle);
+ atarirle_eof(m_rle);
}
}
diff --git a/src/mame/video/atarigt.c b/src/mame/video/atarigt.c
index 48468a59516..f5c7381c7d9 100644
--- a/src/mame/video/atarigt.c
+++ b/src/mame/video/atarigt.c
@@ -503,39 +503,38 @@ PrimRage GALs:
*/
-SCREEN_UPDATE_RGB32( atarigt )
+UINT32 atarigt_state::screen_update_atarigt(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- atarigt_state *state = screen.machine().driver_data<atarigt_state>();
- bitmap_ind16 *mo_bitmap = atarirle_get_vram(state->m_rle, 0);
- bitmap_ind16 *tm_bitmap = atarirle_get_vram(state->m_rle, 1);
+ bitmap_ind16 *mo_bitmap = atarirle_get_vram(m_rle, 0);
+ bitmap_ind16 *tm_bitmap = atarirle_get_vram(m_rle, 1);
UINT16 *cram, *tram;
int color_latch;
UINT32 *mram;
int x, y;
/* draw the playfield */
- state->m_playfield_tilemap->draw(*state->m_pf_bitmap, cliprect, 0, 0);
+ m_playfield_tilemap->draw(*m_pf_bitmap, cliprect, 0, 0);
/* draw the alpha layer */
- state->m_alpha_tilemap->draw(*state->m_an_bitmap, cliprect, 0, 0);
+ m_alpha_tilemap->draw(*m_an_bitmap, cliprect, 0, 0);
/* cache pointers */
- color_latch = state->m_colorram[0x30000/2];
- cram = (UINT16 *)&state->m_colorram[0x00000/2] + 0x2000 * ((color_latch >> 3) & 1);
- tram = (UINT16 *)&state->m_colorram[0x20000/2] + 0x1000 * ((color_latch >> 4) & 3);
- mram = state->m_expanded_mram + 0x2000 * ((color_latch >> 6) & 3);
+ color_latch = m_colorram[0x30000/2];
+ cram = (UINT16 *)&m_colorram[0x00000/2] + 0x2000 * ((color_latch >> 3) & 1);
+ tram = (UINT16 *)&m_colorram[0x20000/2] + 0x1000 * ((color_latch >> 4) & 3);
+ mram = m_expanded_mram + 0x2000 * ((color_latch >> 6) & 3);
/* now do the nasty blend */
for (y = cliprect.min_y; y <= cliprect.max_y; y++)
{
- UINT16 *an = &state->m_an_bitmap->pix16(y);
- UINT16 *pf = &state->m_pf_bitmap->pix16(y);
+ UINT16 *an = &m_an_bitmap->pix16(y);
+ UINT16 *pf = &m_pf_bitmap->pix16(y);
UINT16 *mo = &mo_bitmap->pix16(y);
UINT16 *tm = &tm_bitmap->pix16(y);
UINT32 *dst = &bitmap.pix32(y);
/* Primal Rage: no TRAM, slightly different priorities */
- if (state->m_is_primrage)
+ if (m_is_primrage)
{
for (x = cliprect.min_x; x <= cliprect.max_x; x++)
{
@@ -629,13 +628,12 @@ SCREEN_UPDATE_RGB32( atarigt )
return 0;
}
-SCREEN_VBLANK( atarigt )
+void atarigt_state::screen_eof_atarigt(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- atarigt_state *state = screen.machine().driver_data<atarigt_state>();
- atarirle_eof(state->m_rle);
+ atarirle_eof(m_rle);
}
}
diff --git a/src/mame/video/atarigx2.c b/src/mame/video/atarigx2.c
index 3c1064b4b2a..a93395c487e 100644
--- a/src/mame/video/atarigx2.c
+++ b/src/mame/video/atarigx2.c
@@ -175,25 +175,24 @@ void atarigx2_scanline_update(screen_device &screen, int scanline)
*
*************************************/
-SCREEN_UPDATE_IND16( atarigx2 )
+UINT32 atarigx2_state::screen_update_atarigx2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- atarigx2_state *state = screen.machine().driver_data<atarigx2_state>();
bitmap_ind8 &priority_bitmap = screen.machine().priority_bitmap;
/* draw the playfield */
priority_bitmap.fill(0, cliprect);
- state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_playfield_tilemap->draw(bitmap, cliprect, 1, 1);
- state->m_playfield_tilemap->draw(bitmap, cliprect, 2, 2);
- state->m_playfield_tilemap->draw(bitmap, cliprect, 3, 3);
- state->m_playfield_tilemap->draw(bitmap, cliprect, 4, 4);
- state->m_playfield_tilemap->draw(bitmap, cliprect, 5, 5);
- state->m_playfield_tilemap->draw(bitmap, cliprect, 6, 6);
- state->m_playfield_tilemap->draw(bitmap, cliprect, 7, 7);
+ m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_playfield_tilemap->draw(bitmap, cliprect, 1, 1);
+ m_playfield_tilemap->draw(bitmap, cliprect, 2, 2);
+ m_playfield_tilemap->draw(bitmap, cliprect, 3, 3);
+ m_playfield_tilemap->draw(bitmap, cliprect, 4, 4);
+ m_playfield_tilemap->draw(bitmap, cliprect, 5, 5);
+ m_playfield_tilemap->draw(bitmap, cliprect, 6, 6);
+ m_playfield_tilemap->draw(bitmap, cliprect, 7, 7);
/* copy the motion objects on top */
{
- bitmap_ind16 *mo_bitmap = atarirle_get_vram(state->m_rle, 0);
+ bitmap_ind16 *mo_bitmap = atarirle_get_vram(m_rle, 0);
int left = cliprect.min_x;
int top = cliprect.min_y;
int right = cliprect.max_x + 1;
@@ -213,17 +212,16 @@ SCREEN_UPDATE_IND16( atarigx2 )
}
/* add the alpha on top */
- state->m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_VBLANK( atarigx2 )
+void atarigx2_state::screen_eof_atarigx2(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- atarigx2_state *state = screen.machine().driver_data<atarigx2_state>();
- atarirle_eof(state->m_rle);
+ atarirle_eof(m_rle);
}
}
diff --git a/src/mame/video/atarisy1.c b/src/mame/video/atarisy1.c
index 725eaf0a689..3204d036539 100644
--- a/src/mame/video/atarisy1.c
+++ b/src/mame/video/atarisy1.c
@@ -497,15 +497,14 @@ static void update_timers(running_machine &machine, int scanline)
*
*************************************/
-SCREEN_UPDATE_IND16( atarisy1 )
+UINT32 atarisy1_state::screen_update_atarisy1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- atarisy1_state *state = screen.machine().driver_data<atarisy1_state>();
atarimo_rect_list rectlist;
bitmap_ind16 *mobitmap;
int x, y, r;
/* draw the playfield */
- state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
/* draw and merge the MO */
mobitmap = atarimo_render(0, cliprect, &rectlist);
@@ -529,7 +528,7 @@ SCREEN_UPDATE_IND16( atarisy1 )
else
{
/* priority pens for playfield color 0 */
- if ((pf[x] & 0xf8) != 0 || !(state->m_playfield_priority_pens & (1 << (pf[x] & 0x07))))
+ if ((pf[x] & 0xf8) != 0 || !(m_playfield_priority_pens & (1 << (pf[x] & 0x07))))
pf[x] = mo[x];
}
@@ -539,7 +538,7 @@ SCREEN_UPDATE_IND16( atarisy1 )
}
/* add the alpha on top */
- state->m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/atarisy2.c b/src/mame/video/atarisy2.c
index 2baead1cf85..5ff4dc2548e 100644
--- a/src/mame/video/atarisy2.c
+++ b/src/mame/video/atarisy2.c
@@ -316,9 +316,8 @@ WRITE16_HANDLER( atarisy2_videoram_w )
*
*************************************/
-SCREEN_UPDATE_IND16( atarisy2 )
+UINT32 atarisy2_state::screen_update_atarisy2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- atarisy2_state *state = screen.machine().driver_data<atarisy2_state>();
bitmap_ind8 &priority_bitmap = screen.machine().priority_bitmap;
atarimo_rect_list rectlist;
bitmap_ind16 *mobitmap;
@@ -326,10 +325,10 @@ SCREEN_UPDATE_IND16( atarisy2 )
/* draw the playfield */
priority_bitmap.fill(0, cliprect);
- state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_playfield_tilemap->draw(bitmap, cliprect, 1, 1);
- state->m_playfield_tilemap->draw(bitmap, cliprect, 2, 2);
- state->m_playfield_tilemap->draw(bitmap, cliprect, 3, 3);
+ m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_playfield_tilemap->draw(bitmap, cliprect, 1, 1);
+ m_playfield_tilemap->draw(bitmap, cliprect, 2, 2);
+ m_playfield_tilemap->draw(bitmap, cliprect, 3, 3);
/* draw and merge the MO */
mobitmap = atarimo_render(0, cliprect, &rectlist);
@@ -362,6 +361,6 @@ SCREEN_UPDATE_IND16( atarisy2 )
}
/* add the alpha on top */
- state->m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/atetris.c b/src/mame/video/atetris.c
index 161f78f5fa1..fba572e4b99 100644
--- a/src/mame/video/atetris.c
+++ b/src/mame/video/atetris.c
@@ -61,10 +61,9 @@ void atetris_state::video_start()
*
*************************************/
-SCREEN_UPDATE_IND16( atetris )
+UINT32 atetris_state::screen_update_atetris(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- atetris_state *state = screen.machine().driver_data<atetris_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/video/badlands.c b/src/mame/video/badlands.c
index 6edfa50e3d2..8e77c255eb4 100644
--- a/src/mame/video/badlands.c
+++ b/src/mame/video/badlands.c
@@ -109,15 +109,14 @@ WRITE16_HANDLER( badlands_pf_bank_w )
*
*************************************/
-SCREEN_UPDATE_IND16( badlands )
+UINT32 badlands_state::screen_update_badlands(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- badlands_state *state = screen.machine().driver_data<badlands_state>();
atarimo_rect_list rectlist;
bitmap_ind16 *mobitmap;
int x, y, r;
/* draw the playfield */
- state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
/* draw and merge the MO */
mobitmap = atarimo_render(0, cliprect, &rectlist);
diff --git a/src/mame/video/bagman.c b/src/mame/video/bagman.c
index 879a26c56b2..aa85f13b1a3 100644
--- a/src/mame/video/bagman.c
+++ b/src/mame/video/bagman.c
@@ -142,14 +142,13 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( bagman )
+UINT32 bagman_state::screen_update_bagman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bagman_state *state = screen.machine().driver_data<bagman_state>();
bitmap.fill(0, cliprect);
- if (*state->m_video_enable == 0)
+ if (*m_video_enable == 0)
return 0;
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/balsente.c b/src/mame/video/balsente.c
index be1ed654980..bcab7b6db36 100644
--- a/src/mame/video/balsente.c
+++ b/src/mame/video/balsente.c
@@ -206,19 +206,18 @@ static void draw_one_sprite(running_machine &machine, bitmap_ind16 &bitmap, cons
*
*************************************/
-SCREEN_UPDATE_IND16( balsente )
+UINT32 balsente_state::screen_update_balsente(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- balsente_state *state = screen.machine().driver_data<balsente_state>();
- const pen_t *pens = &screen.machine().pens[state->m_palettebank_vis * 256];
+ const pen_t *pens = &screen.machine().pens[m_palettebank_vis * 256];
int y, i;
/* draw scanlines from the VRAM directly */
for (y = cliprect.min_y; y <= cliprect.max_y; y++)
- draw_scanline8(bitmap, 0, y, 256, &state->m_expanded_videoram[(y - BALSENTE_VBEND) * 256], pens);
+ draw_scanline8(bitmap, 0, y, 256, &m_expanded_videoram[(y - BALSENTE_VBEND) * 256], pens);
/* draw the sprite images */
for (i = 0; i < 40; i++)
- draw_one_sprite(screen.machine(), bitmap, cliprect, &state->m_spriteram[(0xe0 + i * 4) & 0xff]);
+ draw_one_sprite(screen.machine(), bitmap, cliprect, &m_spriteram[(0xe0 + i * 4) & 0xff]);
return 0;
}
diff --git a/src/mame/video/bankp.c b/src/mame/video/bankp.c
index cf37c90b722..d01826e2edf 100644
--- a/src/mame/video/bankp.c
+++ b/src/mame/video/bankp.c
@@ -165,40 +165,39 @@ void bankp_state::video_start()
save_item(NAME(m_priority));
}
-SCREEN_UPDATE_IND16( bankp )
+UINT32 bankp_state::screen_update_bankp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bankp_state *state = screen.machine().driver_data<bankp_state>();
- if (state->flip_screen())
+ if (flip_screen())
{
- state->m_fg_tilemap->set_scrollx(0, -state->m_scroll_x);
- state->m_bg_tilemap->set_scrollx(0, 0);
+ m_fg_tilemap->set_scrollx(0, -m_scroll_x);
+ m_bg_tilemap->set_scrollx(0, 0);
}
else
{
- state->m_fg_tilemap->set_scrollx(0, state->m_scroll_x);
- state->m_bg_tilemap->set_scrollx(0, 0);
+ m_fg_tilemap->set_scrollx(0, m_scroll_x);
+ m_bg_tilemap->set_scrollx(0, 0);
}
// only one bit matters?
- switch (state->m_priority)
+ switch (m_priority)
{
case 0: // combat hawk uses this
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
break;
case 1:
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
break;
case 2:
- state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
break;
case 3:
- state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); // just a guess
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0); // just a guess
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
break;
}
return 0;
diff --git a/src/mame/video/baraduke.c b/src/mame/video/baraduke.c
index a4641603fbc..59ff6f9c3f4 100644
--- a/src/mame/video/baraduke.c
+++ b/src/mame/video/baraduke.c
@@ -303,43 +303,41 @@ static void set_scroll(running_machine &machine, int layer)
}
-SCREEN_UPDATE_IND16( baraduke )
+UINT32 baraduke_state::screen_update_baraduke(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- baraduke_state *state = screen.machine().driver_data<baraduke_state>();
- UINT8 *spriteram = state->m_spriteram + 0x1800;
+ UINT8 *spriteram = m_spriteram + 0x1800;
int back;
/* flip screen is embedded in the sprite control registers */
- /* can't use state->flip_screen_set() because the visible area is asymmetrical */
- state->flip_screen_set_no_update(spriteram[0x07f6] & 0x01);
- screen.machine().tilemap().set_flip_all(state->flip_screen() ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0);
+ /* can't use flip_screen_set() because the visible area is asymmetrical */
+ flip_screen_set_no_update(spriteram[0x07f6] & 0x01);
+ screen.machine().tilemap().set_flip_all(flip_screen() ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0);
set_scroll(screen.machine(), 0);
set_scroll(screen.machine(), 1);
- if (((state->m_xscroll[0] & 0x0e00) >> 9) == 6)
+ if (((m_xscroll[0] & 0x0e00) >> 9) == 6)
back = 1;
else
back = 0;
- state->m_bg_tilemap[back]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
+ m_bg_tilemap[back]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
draw_sprites(screen.machine(), bitmap,cliprect,0);
- state->m_bg_tilemap[back ^ 1]->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap[back ^ 1]->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect,1);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
-SCREEN_VBLANK( baraduke )
+void baraduke_state::screen_eof_baraduke(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- baraduke_state *state = screen.machine().driver_data<baraduke_state>();
- if (state->m_copy_sprites)
+ if (m_copy_sprites)
{
- UINT8 *spriteram = state->m_spriteram + 0x1800;
+ UINT8 *spriteram = m_spriteram + 0x1800;
int i,j;
for (i = 0;i < 0x800;i += 16)
@@ -348,7 +346,7 @@ SCREEN_VBLANK( baraduke )
spriteram[i+j] = spriteram[i+j - 6];
}
- state->m_copy_sprites = 0;
+ m_copy_sprites = 0;
}
}
}
diff --git a/src/mame/video/batman.c b/src/mame/video/batman.c
index c038c37a5ad..4cc58d781fe 100644
--- a/src/mame/video/batman.c
+++ b/src/mame/video/batman.c
@@ -190,9 +190,8 @@ void batman_scanline_update(screen_device &screen, int scanline)
*
*************************************/
-SCREEN_UPDATE_IND16( batman )
+UINT32 batman_state::screen_update_batman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- batman_state *state = screen.machine().driver_data<batman_state>();
bitmap_ind8 &priority_bitmap = screen.machine().priority_bitmap;
atarimo_rect_list rectlist;
bitmap_ind16 *mobitmap;
@@ -200,14 +199,14 @@ SCREEN_UPDATE_IND16( batman )
/* draw the playfield */
priority_bitmap.fill(0, cliprect);
- state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0x00);
- state->m_playfield_tilemap->draw(bitmap, cliprect, 1, 0x01);
- state->m_playfield_tilemap->draw(bitmap, cliprect, 2, 0x02);
- state->m_playfield_tilemap->draw(bitmap, cliprect, 3, 0x03);
- state->m_playfield2_tilemap->draw(bitmap, cliprect, 0, 0x80);
- state->m_playfield2_tilemap->draw(bitmap, cliprect, 1, 0x84);
- state->m_playfield2_tilemap->draw(bitmap, cliprect, 2, 0x88);
- state->m_playfield2_tilemap->draw(bitmap, cliprect, 3, 0x8c);
+ m_playfield_tilemap->draw(bitmap, cliprect, 0, 0x00);
+ m_playfield_tilemap->draw(bitmap, cliprect, 1, 0x01);
+ m_playfield_tilemap->draw(bitmap, cliprect, 2, 0x02);
+ m_playfield_tilemap->draw(bitmap, cliprect, 3, 0x03);
+ m_playfield2_tilemap->draw(bitmap, cliprect, 0, 0x80);
+ m_playfield2_tilemap->draw(bitmap, cliprect, 1, 0x84);
+ m_playfield2_tilemap->draw(bitmap, cliprect, 2, 0x88);
+ m_playfield2_tilemap->draw(bitmap, cliprect, 3, 0x8c);
/* draw and merge the MO */
mobitmap = atarimo_render(0, cliprect, &rectlist);
@@ -280,7 +279,7 @@ SCREEN_UPDATE_IND16( batman )
}
/* add the alpha on top */
- state->m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
/* now go back and process the upper bit of MO priority */
rectlist.rect -= rectlist.numrects;
diff --git a/src/mame/video/battlane.c b/src/mame/video/battlane.c
index 98d006769c2..cabd3d96a84 100644
--- a/src/mame/video/battlane.c
+++ b/src/mame/video/battlane.c
@@ -225,13 +225,12 @@ static void draw_fg_bitmap( running_machine &machine, bitmap_ind16 &bitmap )
}
}
-SCREEN_UPDATE_IND16( battlane )
+UINT32 battlane_state::screen_update_battlane(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- battlane_state *state = screen.machine().driver_data<battlane_state>();
- state->m_bg_tilemap->mark_all_dirty(); // HACK
+ m_bg_tilemap->mark_all_dirty(); // HACK
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
draw_fg_bitmap(screen.machine(), bitmap);
return 0;
diff --git a/src/mame/video/battlera.c b/src/mame/video/battlera.c
index 8f99a300bce..51f79a854ae 100644
--- a/src/mame/video/battlera.c
+++ b/src/mame/video/battlera.c
@@ -299,16 +299,15 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re
/******************************************************************************/
-SCREEN_UPDATE_IND16( battlera )
+UINT32 battlera_state::screen_update_battlera(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- battlera_state *state = screen.machine().driver_data<battlera_state>();
int offs,code,scrollx,scrolly,mx,my;
/* if any tiles changed, redraw the VRAM */
- if (screen.machine().gfx[0]->dirtyseq() != state->m_tile_dirtyseq)
+ if (screen.machine().gfx[0]->dirtyseq() != m_tile_dirtyseq)
{
- state->m_tile_dirtyseq = screen.machine().gfx[0]->dirtyseq();
- memset(state->m_vram_dirty, 1, 0x1000);
+ m_tile_dirtyseq = screen.machine().gfx[0]->dirtyseq();
+ memset(m_vram_dirty, 1, 0x1000);
}
mx=-1;
@@ -317,45 +316,45 @@ SCREEN_UPDATE_IND16( battlera )
{
mx++;
if (mx==64) {mx=0; my++;}
- code=state->m_HuC6270_vram[offs+1] + ((state->m_HuC6270_vram[offs] & 0x0f) << 8);
+ code=m_HuC6270_vram[offs+1] + ((m_HuC6270_vram[offs] & 0x0f) << 8);
/* If this tile was changed OR tilemap was changed, redraw */
- if (state->m_vram_dirty[offs/2]) {
- state->m_vram_dirty[offs/2]=0;
- drawgfx_opaque(*state->m_tile_bitmap,state->m_tile_bitmap->cliprect(),screen.machine().gfx[0],
+ if (m_vram_dirty[offs/2]) {
+ m_vram_dirty[offs/2]=0;
+ drawgfx_opaque(*m_tile_bitmap,m_tile_bitmap->cliprect(),screen.machine().gfx[0],
code,
- state->m_HuC6270_vram[offs] >> 4,
+ m_HuC6270_vram[offs] >> 4,
0,0,
8*mx,8*my);
- drawgfx_opaque(*state->m_front_bitmap,state->m_tile_bitmap->cliprect(),screen.machine().gfx[2],
+ drawgfx_opaque(*m_front_bitmap,m_tile_bitmap->cliprect(),screen.machine().gfx[2],
0,
0, /* fill the spot with pen 256 */
0,0,
8*mx,8*my);
- drawgfx_transmask(*state->m_front_bitmap,state->m_tile_bitmap->cliprect(),screen.machine().gfx[0],
+ drawgfx_transmask(*m_front_bitmap,m_tile_bitmap->cliprect(),screen.machine().gfx[0],
code,
- state->m_HuC6270_vram[offs] >> 4,
+ m_HuC6270_vram[offs] >> 4,
0,0,
8*mx,8*my,0x1);
}
}
/* Render bitmap */
- scrollx=-state->m_HuC6270_registers[7];
- scrolly=-state->m_HuC6270_registers[8]+cliprect.min_y-1;
+ scrollx=-m_HuC6270_registers[7];
+ scrolly=-m_HuC6270_registers[8]+cliprect.min_y-1;
- copyscrollbitmap(bitmap,*state->m_tile_bitmap,1,&scrollx,1,&scrolly,cliprect);
+ copyscrollbitmap(bitmap,*m_tile_bitmap,1,&scrollx,1,&scrolly,cliprect);
/* Todo: Background enable (not used anyway) */
/* Render low priority sprites, if enabled */
- if (state->m_sb_enable) draw_sprites(screen.machine(),bitmap,cliprect,0);
+ if (m_sb_enable) draw_sprites(screen.machine(),bitmap,cliprect,0);
/* Render background over sprites */
- copyscrollbitmap_trans(bitmap,*state->m_front_bitmap,1,&scrollx,1,&scrolly,cliprect,256);
+ copyscrollbitmap_trans(bitmap,*m_front_bitmap,1,&scrollx,1,&scrolly,cliprect,256);
/* Render high priority sprites, if enabled */
- if (state->m_sb_enable) draw_sprites(screen.machine(),bitmap,cliprect,1);
+ if (m_sb_enable) draw_sprites(screen.machine(),bitmap,cliprect,1);
return 0;
}
diff --git a/src/mame/video/battlex.c b/src/mame/video/battlex.c
index 7dab35a229f..85537cc9317 100644
--- a/src/mame/video/battlex.c
+++ b/src/mame/video/battlex.c
@@ -89,12 +89,11 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
-SCREEN_UPDATE_IND16(battlex)
+UINT32 battlex_state::screen_update_battlex(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- battlex_state *state = screen.machine().driver_data<battlex_state>();
- state->m_bg_tilemap->set_scrollx(0, state->m_scroll_lsb | (state->m_scroll_msb << 8));
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->set_scrollx(0, m_scroll_lsb | (m_scroll_msb << 8));
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
diff --git a/src/mame/video/battlnts.c b/src/mame/video/battlnts.c
index 090c5fd9ec4..411f4252ed5 100644
--- a/src/mame/video/battlnts.c
+++ b/src/mame/video/battlnts.c
@@ -42,14 +42,13 @@ WRITE8_MEMBER(battlnts_state::battlnts_spritebank_w)
***************************************************************************/
-SCREEN_UPDATE_IND16( battlnts )
+UINT32 battlnts_state::screen_update_battlnts(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- battlnts_state *state = screen.machine().driver_data<battlnts_state>();
- k007342_tilemap_update(state->m_k007342);
+ k007342_tilemap_update(m_k007342);
- k007342_tilemap_draw(state->m_k007342, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE ,0);
- k007420_sprites_draw(state->m_k007420, bitmap, cliprect, screen.machine().gfx[1]);
- k007342_tilemap_draw(state->m_k007342, bitmap, cliprect, 0, 1 | TILEMAP_DRAW_OPAQUE ,0);
+ k007342_tilemap_draw(m_k007342, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE ,0);
+ k007420_sprites_draw(m_k007420, bitmap, cliprect, screen.machine().gfx[1]);
+ k007342_tilemap_draw(m_k007342, bitmap, cliprect, 0, 1 | TILEMAP_DRAW_OPAQUE ,0);
return 0;
}
diff --git a/src/mame/video/bbusters.c b/src/mame/video/bbusters.c
index 4d952ec4ec0..8e60dc2d64b 100644
--- a/src/mame/video/bbusters.c
+++ b/src/mame/video/bbusters.c
@@ -271,36 +271,34 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const U
/******************************************************************************/
-SCREEN_UPDATE_IND16( bbuster )
+UINT32 bbusters_state::screen_update_bbuster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bbusters_state *state = screen.machine().driver_data<bbusters_state>();
-
- state->m_pf1_tilemap->set_scrollx(0, state->m_pf1_scroll_data[0]);
- state->m_pf1_tilemap->set_scrolly(0, state->m_pf1_scroll_data[1]);
- state->m_pf2_tilemap->set_scrollx(0, state->m_pf2_scroll_data[0]);
- state->m_pf2_tilemap->set_scrolly(0, state->m_pf2_scroll_data[1]);
-
- state->m_pf2_tilemap->draw(bitmap, cliprect, 0, 0);
- //draw_sprites(screen.machine(), bitmap, state->m_spriteram2->buffer(), 2, 0x8, 0x8);
- state->m_pf1_tilemap->draw(bitmap, cliprect, 0, 0);
- draw_sprites(screen.machine(), bitmap, state->m_spriteram2->buffer(), 2, 0, 0);
- draw_sprites(screen.machine(), bitmap, state->m_spriteram->buffer(), 1, 0, 0);
- state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
+
+ m_pf1_tilemap->set_scrollx(0, m_pf1_scroll_data[0]);
+ m_pf1_tilemap->set_scrolly(0, m_pf1_scroll_data[1]);
+ m_pf2_tilemap->set_scrollx(0, m_pf2_scroll_data[0]);
+ m_pf2_tilemap->set_scrolly(0, m_pf2_scroll_data[1]);
+
+ m_pf2_tilemap->draw(bitmap, cliprect, 0, 0);
+ //draw_sprites(screen.machine(), bitmap, m_spriteram2->buffer(), 2, 0x8, 0x8);
+ m_pf1_tilemap->draw(bitmap, cliprect, 0, 0);
+ draw_sprites(screen.machine(), bitmap, m_spriteram2->buffer(), 2, 0, 0);
+ draw_sprites(screen.machine(), bitmap, m_spriteram->buffer(), 1, 0, 0);
+ m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( mechatt )
+UINT32 bbusters_state::screen_update_mechatt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bbusters_state *state = screen.machine().driver_data<bbusters_state>();
- state->m_pf1_tilemap->set_scrollx(0, state->m_pf1_scroll_data[0]);
- state->m_pf1_tilemap->set_scrolly(0, state->m_pf1_scroll_data[1]);
- state->m_pf2_tilemap->set_scrollx(0, state->m_pf2_scroll_data[0]);
- state->m_pf2_tilemap->set_scrolly(0, state->m_pf2_scroll_data[1]);
+ m_pf1_tilemap->set_scrollx(0, m_pf1_scroll_data[0]);
+ m_pf1_tilemap->set_scrolly(0, m_pf1_scroll_data[1]);
+ m_pf2_tilemap->set_scrollx(0, m_pf2_scroll_data[0]);
+ m_pf2_tilemap->set_scrolly(0, m_pf2_scroll_data[1]);
- state->m_pf2_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_pf1_tilemap->draw(bitmap, cliprect, 0, 0);
- draw_sprites(screen.machine(), bitmap, state->m_spriteram->buffer(), 1, 0, 0);
- state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_pf2_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_pf1_tilemap->draw(bitmap, cliprect, 0, 0);
+ draw_sprites(screen.machine(), bitmap, m_spriteram->buffer(), 1, 0, 0);
+ m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/beezer.c b/src/mame/video/beezer.c
index 1ed9c0c22cd..d0bea429ad1 100644
--- a/src/mame/video/beezer.c
+++ b/src/mame/video/beezer.c
@@ -19,10 +19,9 @@ TIMER_DEVICE_CALLBACK( beezer_interrupt )
#endif
}
-SCREEN_UPDATE_IND16( beezer )
+UINT32 beezer_state::screen_update_beezer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- beezer_state *state = screen.machine().driver_data<beezer_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
int x,y;
for (y = cliprect.min_y; y <= cliprect.max_y; y++)
diff --git a/src/mame/video/bigevglf.c b/src/mame/video/bigevglf.c
index dd8de34ce02..d02c2a09ab1 100644
--- a/src/mame/video/bigevglf.c
+++ b/src/mame/video/bigevglf.c
@@ -85,11 +85,10 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( bigevglf )
+UINT32 bigevglf_state::screen_update_bigevglf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bigevglf_state *state = screen.machine().driver_data<bigevglf_state>();
- copybitmap(bitmap, state->m_tmp_bitmap[state->m_plane_visible], 0, 0, 0, 0, cliprect);
+ copybitmap(bitmap, m_tmp_bitmap[m_plane_visible], 0, 0, 0, 0, cliprect);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/bigstrkb.c b/src/mame/video/bigstrkb.c
index 09bd79ab848..170ebd92276 100644
--- a/src/mame/video/bigstrkb.c
+++ b/src/mame/video/bigstrkb.c
@@ -121,23 +121,22 @@ void bigstrkb_state::video_start()
m_tilemap3->set_transparent_pen(15);
}
-SCREEN_UPDATE_IND16(bigstrkb)
+UINT32 bigstrkb_state::screen_update_bigstrkb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bigstrkb_state *state = screen.machine().driver_data<bigstrkb_state>();
// bitmap.fill(get_black_pen(screen.machine()), cliprect);
- state->m_tilemap2->set_scrollx(0, state->m_vidreg1[0]+(256-14));
- state->m_tilemap2->set_scrolly(0, state->m_vidreg2[0]);
+ m_tilemap2->set_scrollx(0, m_vidreg1[0]+(256-14));
+ m_tilemap2->set_scrolly(0, m_vidreg2[0]);
- state->m_tilemap3->set_scrollx(0, state->m_vidreg1[1]+(256-14));
- state->m_tilemap3->set_scrolly(0, state->m_vidreg2[1]);
+ m_tilemap3->set_scrollx(0, m_vidreg1[1]+(256-14));
+ m_tilemap3->set_scrolly(0, m_vidreg2[1]);
- state->m_tilemap2->draw(bitmap, cliprect, 0,0);
- state->m_tilemap3->draw(bitmap, cliprect, 0,0);
+ m_tilemap2->draw(bitmap, cliprect, 0,0);
+ m_tilemap3->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(),bitmap,cliprect);
- state->m_tilemap->draw(bitmap, cliprect, 0,0);
+ m_tilemap->draw(bitmap, cliprect, 0,0);
// popmessage ("Regs %08x %08x %08x %08x",bsb_vidreg2[0],bsb_vidreg2[1],bsb_vidreg2[2],bsb_vidreg2[3]);
return 0;
diff --git a/src/mame/video/bionicc.c b/src/mame/video/bionicc.c
index 4500d18d6f3..eec1eeb212f 100644
--- a/src/mame/video/bionicc.c
+++ b/src/mame/video/bionicc.c
@@ -236,16 +236,15 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( bionicc )
+UINT32 bionicc_state::screen_update_bionicc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bionicc_state *state = screen.machine().driver_data<bionicc_state>();
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 1 | TILEMAP_DRAW_LAYER1, 0); /* nothing in FRONT */
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER1, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 1 | TILEMAP_DRAW_LAYER1, 0); /* nothing in FRONT */
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER1, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER0, 0);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER0, 0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/bishi.c b/src/mame/video/bishi.c
index 4da225aafee..373d87283d0 100644
--- a/src/mame/video/bishi.c
+++ b/src/mame/video/bishi.c
@@ -43,21 +43,20 @@ void bishi_state::video_start()
m_layer_colorbase[3] = 0xc0;
}
-SCREEN_UPDATE_RGB32(bishi)
+UINT32 bishi_state::screen_update_bishi(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- bishi_state *state = screen.machine().driver_data<bishi_state>();
int layers[4], layerpri[4], i;/*, old;*/
/* int bg_colorbase, new_colorbase, plane, dirty; */
static const int pris[4] = { K55_PRIINP_0, K55_PRIINP_3, K55_PRIINP_6, K55_PRIINP_7 };
static const int enables[4] = { K55_INP_VRAM_A, K55_INP_VRAM_B, K55_INP_VRAM_C, K55_INP_VRAM_D };
- k054338_update_all_shadows(state->m_k054338, 0);
- k054338_fill_backcolor(state->m_k054338, bitmap, 0);
+ k054338_update_all_shadows(m_k054338, 0);
+ k054338_fill_backcolor(m_k054338, bitmap, 0);
for (i = 0; i < 4; i++)
{
layers[i] = i;
- layerpri[i] = k055555_read_register(state->m_k055555, pris[i]);
+ layerpri[i] = k055555_read_register(m_k055555, pris[i]);
}
konami_sortlayers4(layers, layerpri);
@@ -66,9 +65,9 @@ SCREEN_UPDATE_RGB32(bishi)
for (i = 0; i < 4; i++)
{
- if (k055555_read_register(state->m_k055555, K55_INPUT_ENABLES) & enables[layers[i]])
+ if (k055555_read_register(m_k055555, K55_INPUT_ENABLES) & enables[layers[i]])
{
- k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, layers[i], 0, 1 << i);
+ k056832_tilemap_draw(m_k056832, bitmap, cliprect, layers[i], 0, 1 << i);
}
}
return 0;
diff --git a/src/mame/video/bking.c b/src/mame/video/bking.c
index fd9949d96d6..bfea0f1d0e1 100644
--- a/src/mame/video/bking.c
+++ b/src/mame/video/bking.c
@@ -233,41 +233,39 @@ void bking_state::video_start()
}
-SCREEN_UPDATE_IND16( bking )
+UINT32 bking_state::screen_update_bking(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bking_state *state = screen.machine().driver_data<bking_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
/* draw the balls */
drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[2],
- state->m_ball1_pic,
- state->m_palette_bank,
+ m_ball1_pic,
+ m_palette_bank,
0, 0,
- state->m_xld1, state->m_yld1, 0);
+ m_xld1, m_yld1, 0);
drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[3],
- state->m_ball2_pic,
- state->m_palette_bank,
+ m_ball2_pic,
+ m_palette_bank,
0, 0,
- state->m_xld2, state->m_yld2, 0);
+ m_xld2, m_yld2, 0);
/* draw the crow */
drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1],
- state->m_crow_pic,
- state->m_palette_bank,
- state->m_crow_flip, state->m_crow_flip,
- state->m_crow_flip ? state->m_xld3 - 16 : 256 - state->m_xld3, state->m_crow_flip ? state->m_yld3 - 16 : 256 - state->m_yld3, 0);
+ m_crow_pic,
+ m_palette_bank,
+ m_crow_flip, m_crow_flip,
+ m_crow_flip ? m_xld3 - 16 : 256 - m_xld3, m_crow_flip ? m_yld3 - 16 : 256 - m_yld3, 0);
return 0;
}
-SCREEN_VBLANK( bking )
+void bking_state::screen_eof_bking(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- bking_state *state = screen.machine().driver_data<bking_state>();
const rectangle rect(0, 7, 0, 15);
int xld = 0;
@@ -275,13 +273,13 @@ SCREEN_VBLANK( bking )
UINT32 latch = 0;
- if (state->m_pc3259_mask == 6) /* player 1 */
+ if (m_pc3259_mask == 6) /* player 1 */
{
- xld = state->m_xld1;
- yld = state->m_yld1;
+ xld = m_xld1;
+ yld = m_yld1;
- drawgfx_opaque(state->m_tmp_bitmap2, rect, screen.machine().gfx[2],
- state->m_ball1_pic,
+ drawgfx_opaque(m_tmp_bitmap2, rect, screen.machine().gfx[2],
+ m_ball1_pic,
0,
0, 0,
0, 0);
@@ -289,13 +287,13 @@ SCREEN_VBLANK( bking )
latch = 0x0c00;
}
- if (state->m_pc3259_mask == 3) /* player 2 */
+ if (m_pc3259_mask == 3) /* player 2 */
{
- xld = state->m_xld2;
- yld = state->m_yld2;
+ xld = m_xld2;
+ yld = m_yld2;
- drawgfx_opaque(state->m_tmp_bitmap2, rect, screen.machine().gfx[3],
- state->m_ball2_pic,
+ drawgfx_opaque(m_tmp_bitmap2, rect, screen.machine().gfx[3],
+ m_ball2_pic,
0,
0, 0,
0, 0);
@@ -303,25 +301,25 @@ SCREEN_VBLANK( bking )
latch = 0x0400;
}
- state->m_bg_tilemap->set_scrollx(0, state->flip_screen() ? -xld : xld);
- state->m_bg_tilemap->set_scrolly(0, state->flip_screen() ? -yld : yld);
+ m_bg_tilemap->set_scrollx(0, flip_screen() ? -xld : xld);
+ m_bg_tilemap->set_scrolly(0, flip_screen() ? -yld : yld);
- state->m_bg_tilemap->draw(state->m_tmp_bitmap1, rect, 0, 0);
+ m_bg_tilemap->draw(m_tmp_bitmap1, rect, 0, 0);
- state->m_bg_tilemap->set_scrollx(0, 0);
- state->m_bg_tilemap->set_scrolly(0, 0);
+ m_bg_tilemap->set_scrollx(0, 0);
+ m_bg_tilemap->set_scrolly(0, 0);
if (latch != 0)
{
- const UINT8* MASK = screen.machine().root_device().memregion("user1")->base() + 8 * state->m_hit;
+ const UINT8* MASK = screen.machine().root_device().memregion("user1")->base() + 8 * m_hit;
int x;
int y;
for (y = rect.min_y; y <= rect.max_y; y++)
{
- const UINT16* p0 = &state->m_tmp_bitmap1.pix16(y);
- const UINT16* p1 = &state->m_tmp_bitmap2.pix16(y);
+ const UINT16* p0 = &m_tmp_bitmap1.pix16(y);
+ const UINT16* p1 = &m_tmp_bitmap2.pix16(y);
for (x = rect.min_x; x <= rect.max_x; x++)
{
@@ -330,13 +328,13 @@ SCREEN_VBLANK( bking )
int col = (xld + x) / 8 + 1;
int row = (yld + y) / 8 + 0;
- latch |= (state->flip_screen() ? 31 - col : col) << 0;
- latch |= (state->flip_screen() ? 31 - row : row) << 5;
+ latch |= (flip_screen() ? 31 - col : col) << 0;
+ latch |= (flip_screen() ? 31 - row : row) << 5;
- state->m_pc3259_output[0] = (latch >> 0x0) & 0xf;
- state->m_pc3259_output[1] = (latch >> 0x4) & 0xf;
- state->m_pc3259_output[2] = (latch >> 0x8) & 0xf;
- state->m_pc3259_output[3] = (latch >> 0xc) & 0xf;
+ m_pc3259_output[0] = (latch >> 0x0) & 0xf;
+ m_pc3259_output[1] = (latch >> 0x4) & 0xf;
+ m_pc3259_output[2] = (latch >> 0x8) & 0xf;
+ m_pc3259_output[3] = (latch >> 0xc) & 0xf;
return;
}
diff --git a/src/mame/video/bladestl.c b/src/mame/video/bladestl.c
index f9aaec48c08..2bd9c0b4bf1 100644
--- a/src/mame/video/bladestl.c
+++ b/src/mame/video/bladestl.c
@@ -77,17 +77,16 @@ void bladestl_sprite_callback( running_machine &machine, int *code,int *color )
***************************************************************************/
-SCREEN_UPDATE_IND16( bladestl )
+UINT32 bladestl_state::screen_update_bladestl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bladestl_state *state = screen.machine().driver_data<bladestl_state>();
set_pens(screen.machine());
- k007342_tilemap_update(state->m_k007342);
+ k007342_tilemap_update(m_k007342);
- k007342_tilemap_draw(state->m_k007342, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE ,0);
- k007420_sprites_draw(state->m_k007420, bitmap, cliprect, screen.machine().gfx[1]);
- k007342_tilemap_draw(state->m_k007342, bitmap, cliprect, 1, 1 | TILEMAP_DRAW_OPAQUE ,0);
- k007342_tilemap_draw(state->m_k007342, bitmap, cliprect, 0, 0 ,0);
- k007342_tilemap_draw(state->m_k007342, bitmap, cliprect, 0, 1 ,0);
+ k007342_tilemap_draw(m_k007342, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE ,0);
+ k007420_sprites_draw(m_k007420, bitmap, cliprect, screen.machine().gfx[1]);
+ k007342_tilemap_draw(m_k007342, bitmap, cliprect, 1, 1 | TILEMAP_DRAW_OPAQUE ,0);
+ k007342_tilemap_draw(m_k007342, bitmap, cliprect, 0, 0 ,0);
+ k007342_tilemap_draw(m_k007342, bitmap, cliprect, 0, 1 ,0);
return 0;
}
diff --git a/src/mame/video/blktiger.c b/src/mame/video/blktiger.c
index 3567d1dbbdf..570e8e1e472 100644
--- a/src/mame/video/blktiger.c
+++ b/src/mame/video/blktiger.c
@@ -218,23 +218,22 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( blktiger )
+UINT32 blktiger_state::screen_update_blktiger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- blktiger_state *state = screen.machine().driver_data<blktiger_state>();
bitmap.fill(1023, cliprect);
- if (state->m_bgon)
- (state->m_screen_layout ? state->m_bg_tilemap8x4 : state->m_bg_tilemap4x8)->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
+ if (m_bgon)
+ (m_screen_layout ? m_bg_tilemap8x4 : m_bg_tilemap4x8)->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
- if (state->m_objon)
+ if (m_objon)
draw_sprites(screen.machine(), bitmap, cliprect);
- if (state->m_bgon)
- (state->m_screen_layout ? state->m_bg_tilemap8x4 : state->m_bg_tilemap4x8)->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
+ if (m_bgon)
+ (m_screen_layout ? m_bg_tilemap8x4 : m_bg_tilemap4x8)->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
- if (state->m_chon)
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (m_chon)
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/blmbycar.c b/src/mame/video/blmbycar.c
index 8fde491520c..19df36d0af1 100644
--- a/src/mame/video/blmbycar.c
+++ b/src/mame/video/blmbycar.c
@@ -213,16 +213,15 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
***************************************************************************/
-SCREEN_UPDATE_IND16( blmbycar )
+UINT32 blmbycar_state::screen_update_blmbycar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- blmbycar_state *state = screen.machine().driver_data<blmbycar_state>();
int i, layers_ctrl = -1;
- state->m_tilemap_0->set_scrolly(0, state->m_scroll_0[0]);
- state->m_tilemap_0->set_scrollx(0, state->m_scroll_0[1]);
+ m_tilemap_0->set_scrolly(0, m_scroll_0[0]);
+ m_tilemap_0->set_scrollx(0, m_scroll_0[1]);
- state->m_tilemap_1->set_scrolly(0, state->m_scroll_1[0] + 1);
- state->m_tilemap_1->set_scrollx(0, state->m_scroll_1[1] + 5);
+ m_tilemap_1->set_scrolly(0, m_scroll_1[0] + 1);
+ m_tilemap_1->set_scrollx(0, m_scroll_1[1] + 5);
#ifdef MAME_DEBUG
if (screen.machine().input().code_pressed(KEYCODE_Z))
@@ -241,13 +240,13 @@ if (screen.machine().input().code_pressed(KEYCODE_Z))
if (layers_ctrl & 1)
for (i = 0; i <= 1; i++)
- state->m_tilemap_0->draw(bitmap, cliprect, i, i);
+ m_tilemap_0->draw(bitmap, cliprect, i, i);
else
bitmap.fill(0, cliprect);
if (layers_ctrl & 2)
for (i = 0; i <= 1; i++)
- state->m_tilemap_1->draw(bitmap, cliprect, i, i);
+ m_tilemap_1->draw(bitmap, cliprect, i, i);
if (layers_ctrl & 8)
draw_sprites(screen.machine(), bitmap, cliprect);
diff --git a/src/mame/video/blockade.c b/src/mame/video/blockade.c
index 01c00e64e48..ebe056260a5 100644
--- a/src/mame/video/blockade.c
+++ b/src/mame/video/blockade.c
@@ -25,10 +25,9 @@ void blockade_state::video_start()
m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(blockade_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
-SCREEN_UPDATE_IND16( blockade )
+UINT32 blockade_state::screen_update_blockade(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- blockade_state *state = screen.machine().driver_data<blockade_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/blockhl.c b/src/mame/video/blockhl.c
index 0b827b81b09..6fbdec805c5 100644
--- a/src/mame/video/blockhl.c
+++ b/src/mame/video/blockhl.c
@@ -52,18 +52,17 @@ void blockhl_state::video_start()
m_sprite_colorbase = 48;
}
-SCREEN_UPDATE_IND16( blockhl )
+UINT32 blockhl_state::screen_update_blockhl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- blockhl_state *state = screen.machine().driver_data<blockhl_state>();
screen.machine().priority_bitmap.fill(0, cliprect);
- k052109_tilemap_update(state->m_k052109);
+ k052109_tilemap_update(m_k052109);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE, 0); // tile 2
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, 0, 1); // tile 1
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, 0, 2); // tile 0
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE, 0); // tile 2
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, 0, 1); // tile 1
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, 0, 2); // tile 0
- k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 0, -1);
+ k051960_sprites_draw(m_k051960, bitmap, cliprect, 0, -1);
return 0;
}
diff --git a/src/mame/video/blockout.c b/src/mame/video/blockout.c
index 15024f4d33c..c9cd69322cd 100644
--- a/src/mame/video/blockout.c
+++ b/src/mame/video/blockout.c
@@ -106,19 +106,18 @@ WRITE16_MEMBER(blockout_state::blockout_videoram_w)
-SCREEN_UPDATE_IND16( blockout )
+UINT32 blockout_state::screen_update_blockout(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- blockout_state *state = screen.machine().driver_data<blockout_state>();
int x, y;
pen_t color = 512;
- copybitmap(bitmap, state->m_tmpbitmap, 0, 0, 0, 0, cliprect);
+ copybitmap(bitmap, m_tmpbitmap, 0, 0, 0, 0, cliprect);
for (y = 0; y < 256; y++)
{
for (x = 0; x < 320; x += 8)
{
- int d = state->m_frontvideoram[y * 64 + (x / 8)];
+ int d = m_frontvideoram[y * 64 + (x / 8)];
if (d)
{
diff --git a/src/mame/video/bloodbro.c b/src/mame/video/bloodbro.c
index a43d6056aa8..d33535f94bd 100644
--- a/src/mame/video/bloodbro.c
+++ b/src/mame/video/bloodbro.c
@@ -225,55 +225,52 @@ static void weststry_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap
-SCREEN_UPDATE_IND16( bloodbro )
+UINT32 bloodbro_state::screen_update_bloodbro(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bloodbro_state *state = screen.machine().driver_data<bloodbro_state>();
- state->m_bg_tilemap->set_scrollx(0,state->m_scroll[0x10]); /* ? */
- state->m_bg_tilemap->set_scrolly(0,state->m_scroll[0x11]); /* ? */
- state->m_fg_tilemap->set_scrollx(0,state->m_scroll[0x12]);
- state->m_fg_tilemap->set_scrolly(0,state->m_scroll[0x13]);
+ m_bg_tilemap->set_scrollx(0,m_scroll[0x10]); /* ? */
+ m_bg_tilemap->set_scrolly(0,m_scroll[0x11]); /* ? */
+ m_fg_tilemap->set_scrollx(0,m_scroll[0x12]);
+ m_fg_tilemap->set_scrolly(0,m_scroll[0x13]);
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,1);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0,1);
bloodbro_draw_sprites(screen.machine(),bitmap,cliprect);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
-SCREEN_UPDATE_IND16( weststry )
+UINT32 bloodbro_state::screen_update_weststry(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bloodbro_state *state = screen.machine().driver_data<bloodbro_state>();
-// state->m_bg_tilemap->set_scrollx(0,state->m_scroll[0x10]); /* ? */
-// state->m_bg_tilemap->set_scrolly(0,state->m_scroll[0x11]); /* ? */
-// state->m_fg_tilemap->set_scrollx(0,state->m_scroll[0x12]);
-// state->m_fg_tilemap->set_scrolly(0,state->m_scroll[0x13]);
+// m_bg_tilemap->set_scrollx(0,m_scroll[0x10]); /* ? */
+// m_bg_tilemap->set_scrolly(0,m_scroll[0x11]); /* ? */
+// m_fg_tilemap->set_scrollx(0,m_scroll[0x12]);
+// m_fg_tilemap->set_scrolly(0,m_scroll[0x13]);
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,1);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0,1);
weststry_draw_sprites(screen.machine(),bitmap,cliprect);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
-SCREEN_UPDATE_IND16( skysmash )
+UINT32 bloodbro_state::screen_update_skysmash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bloodbro_state *state = screen.machine().driver_data<bloodbro_state>();
- state->m_bg_tilemap->set_scrollx(0,state->m_scroll[0x08]);
- state->m_bg_tilemap->set_scrolly(0,state->m_scroll[0x09]); /* ? */
- state->m_fg_tilemap->set_scrollx(0,state->m_scroll[0x0a]);
- state->m_fg_tilemap->set_scrolly(0,state->m_scroll[0x0b]); /* ? */
+ m_bg_tilemap->set_scrollx(0,m_scroll[0x08]);
+ m_bg_tilemap->set_scrolly(0,m_scroll[0x09]); /* ? */
+ m_fg_tilemap->set_scrollx(0,m_scroll[0x0a]);
+ m_fg_tilemap->set_scrolly(0,m_scroll[0x0b]); /* ? */
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,1);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0,1);
bloodbro_draw_sprites(screen.machine(),bitmap,cliprect);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/video/blstroid.c b/src/mame/video/blstroid.c
index fcaf790ce22..7b530bbba4a 100644
--- a/src/mame/video/blstroid.c
+++ b/src/mame/video/blstroid.c
@@ -142,15 +142,14 @@ void blstroid_scanline_update(screen_device &screen, int scanline)
*
*************************************/
-SCREEN_UPDATE_IND16( blstroid )
+UINT32 blstroid_state::screen_update_blstroid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- blstroid_state *state = screen.machine().driver_data<blstroid_state>();
atarimo_rect_list rectlist;
bitmap_ind16 *mobitmap;
int x, y, r;
/* draw the playfield */
- state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
/* draw and merge the MO */
mobitmap = atarimo_render(0, cliprect, &rectlist);
@@ -167,7 +166,7 @@ SCREEN_UPDATE_IND16( blstroid )
priority address = HPPPMMMM
*/
int priaddr = ((pf[x] & 8) << 4) | (pf[x] & 0x70) | ((mo[x] & 0xf0) >> 4);
- if (state->m_priorityram[priaddr] & 1)
+ if (m_priorityram[priaddr] & 1)
pf[x] = mo[x];
/* erase behind ourselves */
diff --git a/src/mame/video/blueprnt.c b/src/mame/video/blueprnt.c
index d7512b85a03..955be0ec665 100644
--- a/src/mame/video/blueprnt.c
+++ b/src/mame/video/blueprnt.c
@@ -119,21 +119,20 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( blueprnt )
+UINT32 blueprnt_state::screen_update_blueprnt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- blueprnt_state *state = screen.machine().driver_data<blueprnt_state>();
int i;
- if (state->flip_screen())
+ if (flip_screen())
for (i = 0; i < 32; i++)
- state->m_bg_tilemap->set_scrolly(i, state->m_scrollram[32 - i]);
+ m_bg_tilemap->set_scrolly(i, m_scrollram[32 - i]);
else
for (i = 0; i < 32; i++)
- state->m_bg_tilemap->set_scrolly(i, state->m_scrollram[30 - i]);
+ m_bg_tilemap->set_scrolly(i, m_scrollram[30 - i]);
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
return 0;
}
diff --git a/src/mame/video/bogeyman.c b/src/mame/video/bogeyman.c
index 759f1b80f14..2f10f85648a 100644
--- a/src/mame/video/bogeyman.c
+++ b/src/mame/video/bogeyman.c
@@ -145,12 +145,11 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( bogeyman )
+UINT32 bogeyman_state::screen_update_bogeyman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bogeyman_state *state = screen.machine().driver_data<bogeyman_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/bombjack.c b/src/mame/video/bombjack.c
index 6297c5f309e..94e264be567 100644
--- a/src/mame/video/bombjack.c
+++ b/src/mame/video/bombjack.c
@@ -127,11 +127,10 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( bombjack )
+UINT32 bombjack_state::screen_update_bombjack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bombjack_state *state = screen.machine().driver_data<bombjack_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/boogwing.c b/src/mame/video/boogwing.c
index 5db9bbbd59c..cb1e5144f64 100644
--- a/src/mame/video/boogwing.c
+++ b/src/mame/video/boogwing.c
@@ -178,20 +178,19 @@ static void mix_boogwing(running_machine &machine, bitmap_rgb32 &bitmap, const r
}
}
-SCREEN_UPDATE_RGB32( boogwing )
+UINT32 boogwing_state::screen_update_boogwing(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- boogwing_state *state = screen.machine().driver_data<boogwing_state>();
address_space &space = screen.machine().driver_data()->generic_space();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
- UINT16 priority = decocomn_priority_r(state->m_decocomn, space, 0, 0xffff);
+ UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
+ UINT16 priority = decocomn_priority_r(m_decocomn, space, 0, 0xffff);
/* Draw sprite planes to bitmaps for later mixing */
- screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, state->m_spriteram2->buffer(), 0x400, true);
- screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, state->m_spriteram->buffer(), 0x400, true);
+ screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, m_spriteram2->buffer(), 0x400, true);
+ screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400, true);
- state->flip_screen_set(BIT(flip, 7));
- deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
- deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
+ flip_screen_set(BIT(flip, 7));
+ deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
+ deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
/* Draw playfields */
bitmap.fill(screen.machine().pens[0x400], cliprect); /* pen not confirmed */
@@ -201,33 +200,33 @@ SCREEN_UPDATE_RGB32( boogwing )
// bit&0x4 combines playfields
if ((priority & 0x7) == 0x5)
{
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- deco16ic_tilemap_12_combine_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 32);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ deco16ic_tilemap_12_combine_draw(m_deco_tilegen2, bitmap, cliprect, 0, 32);
}
else if ((priority & 0x7) == 0x1 || (priority & 0x7) == 0x2)
{
- deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 8);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 32);
+ deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 8);
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 32);
}
else if ((priority & 0x7) == 0x3)
{
- deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 8);
+ deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 8);
// This mode uses playfield 3 to shadow sprites & playfield 2 (instead of
// regular alpha-blending, the destination is inverted). Not yet implemented.
- // deco16ic_tilemap_3_draw(state->m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_ALPHA(0x80), 32);
+ // deco16ic_tilemap_3_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_ALPHA(0x80), 32);
}
else
{
- deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 8);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 32);
+ deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 8);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 32);
}
mix_boogwing(screen.machine(), bitmap,cliprect);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/bosco.c b/src/mame/video/bosco.c
index 605a727c33b..7ef97037085 100644
--- a/src/mame/video/bosco.c
+++ b/src/mame/video/bosco.c
@@ -281,15 +281,14 @@ static void draw_stars(running_machine &machine, bitmap_ind16 &bitmap, const rec
}
-SCREEN_UPDATE_IND16( bosco )
+UINT32 bosco_state::screen_update_bosco(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bosco_state *state = screen.machine().driver_data<bosco_state>();
/* the radar tilemap is just 8x32. We rely on the tilemap code to repeat it across
the screen, and clip it to only the position where it is supposed to be shown */
rectangle fg_clip = cliprect;
rectangle bg_clip = cliprect;
- if (state->flip_screen())
+ if (flip_screen())
{
bg_clip.min_x = 20*8;
fg_clip.max_x = 20*8-1;
@@ -301,16 +300,16 @@ SCREEN_UPDATE_IND16( bosco )
}
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- draw_stars(screen.machine(),bitmap,cliprect,state->flip_screen());
+ draw_stars(screen.machine(),bitmap,cliprect,flip_screen());
- state->m_bg_tilemap->draw(bitmap, bg_clip, 0,0);
- state->m_fg_tilemap->draw(bitmap, fg_clip, 0,0);
+ m_bg_tilemap->draw(bitmap, bg_clip, 0,0);
+ m_fg_tilemap->draw(bitmap, fg_clip, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect);
/* draw the high priority characters */
- state->m_bg_tilemap->draw(bitmap, bg_clip, 1,0);
- state->m_fg_tilemap->draw(bitmap, fg_clip, 1,0);
+ m_bg_tilemap->draw(bitmap, bg_clip, 1,0);
+ m_fg_tilemap->draw(bitmap, fg_clip, 1,0);
draw_bullets(screen.machine(), bitmap,cliprect);
@@ -318,16 +317,15 @@ SCREEN_UPDATE_IND16( bosco )
}
-SCREEN_VBLANK( bosco )
+void bosco_state::screen_eof_bosco(screen_device &screen, bool state)
{
// falling edge
- if (!vblank_on)
+ if (!state)
{
- bosco_state *state = screen.machine().driver_data<bosco_state>();
static const int speedsx[8] = { -1, -2, -3, 0, 3, 2, 1, 0 };
static const int speedsy[8] = { 0, -1, -2, -3, 0, 3, 2, 1 };
- state->m_stars_scrollx += speedsx[state->m_bosco_starcontrol[0] & 0x07];
- state->m_stars_scrolly += speedsy[(state->m_bosco_starcontrol[0] & 0x38) >> 3];
+ m_stars_scrollx += speedsx[m_bosco_starcontrol[0] & 0x07];
+ m_stars_scrolly += speedsy[(m_bosco_starcontrol[0] & 0x38) >> 3];
}
}
diff --git a/src/mame/video/bottom9.c b/src/mame/video/bottom9.c
index 542337dde90..8011ba969d5 100644
--- a/src/mame/video/bottom9.c
+++ b/src/mame/video/bottom9.c
@@ -72,24 +72,23 @@ void bottom9_state::video_start()
***************************************************************************/
-SCREEN_UPDATE_IND16( bottom9 )
+UINT32 bottom9_state::screen_update_bottom9(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bottom9_state *state = screen.machine().driver_data<bottom9_state>();
- k052109_tilemap_update(state->m_k052109);
+ k052109_tilemap_update(m_k052109);
/* note: FIX layer is not used */
- bitmap.fill(state->m_layer_colorbase[1], cliprect);
-// if (state->m_video_enable)
+ bitmap.fill(m_layer_colorbase[1], cliprect);
+// if (m_video_enable)
{
- k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 1, 1);
- k051316_zoom_draw(state->m_k051316, bitmap, cliprect, 0, 0);
- k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 0, 0);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, 0, 0);
+ k051960_sprites_draw(m_k051960, bitmap, cliprect, 1, 1);
+ k051316_zoom_draw(m_k051316, bitmap, cliprect, 0, 0);
+ k051960_sprites_draw(m_k051960, bitmap, cliprect, 0, 0);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, 0, 0);
/* note that priority 3 is opposite to the basic layer priority! */
/* (it IS used, but hopefully has no effect) */
- k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 2, 3);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, 0, 0);
+ k051960_sprites_draw(m_k051960, bitmap, cliprect, 2, 3);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, 0, 0);
}
return 0;
}
diff --git a/src/mame/video/brkthru.c b/src/mame/video/brkthru.c
index 1297d04a7a8..6528c22eaf4 100644
--- a/src/mame/video/brkthru.c
+++ b/src/mame/video/brkthru.c
@@ -245,26 +245,25 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( brkthru )
+UINT32 brkthru_state::screen_update_brkthru(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- brkthru_state *state = screen.machine().driver_data<brkthru_state>();
- state->m_bg_tilemap->set_scrollx(0, state->m_bgscroll);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ m_bg_tilemap->set_scrollx(0, m_bgscroll);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
/* low priority sprites */
draw_sprites(screen.machine(), bitmap, cliprect, 0x01);
/* draw background over low priority sprites */
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
/* high priority sprites */
draw_sprites(screen.machine(), bitmap, cliprect, 0x09);
/* fg layer */
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
-/* show_register(bitmap, 8, 8, (UINT32)state->m_flipscreen); */
+/* show_register(bitmap, 8, 8, (UINT32)m_flipscreen); */
return 0;
}
diff --git a/src/mame/video/bsktball.c b/src/mame/video/bsktball.c
index ca9285d73e9..a17c82821b0 100644
--- a/src/mame/video/bsktball.c
+++ b/src/mame/video/bsktball.c
@@ -50,11 +50,10 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( bsktball )
+UINT32 bsktball_state::screen_update_bsktball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bsktball_state *state = screen.machine().driver_data<bsktball_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/btime.c b/src/mame/video/btime.c
index 5906ea7dbbc..ff9b24c27f6 100644
--- a/src/mame/video/btime.c
+++ b/src/mame/video/btime.c
@@ -411,84 +411,79 @@ static void draw_background( running_machine &machine, bitmap_ind16 &bitmap, con
}
-SCREEN_UPDATE_IND16( btime )
+UINT32 btime_state::screen_update_btime(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- btime_state *state = screen.machine().driver_data<btime_state>();
- if (state->m_bnj_scroll1 & 0x10)
+ if (m_bnj_scroll1 & 0x10)
{
int i, start;
// Generate tile map
- if (state->flip_screen())
+ if (flip_screen())
start = 0;
else
start = 1;
for (i = 0; i < 4; i++)
{
- state->m_btime_tilemap[i] = start | (state->m_bnj_scroll1 & 0x04);
+ m_btime_tilemap[i] = start | (m_bnj_scroll1 & 0x04);
start = (start + 1) & 0x03;
}
- draw_background(screen.machine(), bitmap, cliprect, state->m_btime_tilemap, 0);
+ draw_background(screen.machine(), bitmap, cliprect, m_btime_tilemap, 0);
draw_chars(screen.machine(), bitmap, cliprect, TRUE, 0, -1);
}
else
draw_chars(screen.machine(), bitmap, cliprect, FALSE, 0, -1);
- draw_sprites(screen.machine(), bitmap, cliprect, 0, 1, 0, state->m_videoram, 0x20);
+ draw_sprites(screen.machine(), bitmap, cliprect, 0, 1, 0, m_videoram, 0x20);
return 0;
}
-SCREEN_UPDATE_IND16( eggs )
+UINT32 btime_state::screen_update_eggs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- btime_state *state = screen.machine().driver_data<btime_state>();
draw_chars(screen.machine(), bitmap, cliprect, FALSE, 0, -1);
- draw_sprites(screen.machine(), bitmap, cliprect, 0, 0, 0, state->m_videoram, 0x20);
+ draw_sprites(screen.machine(), bitmap, cliprect, 0, 0, 0, m_videoram, 0x20);
return 0;
}
-SCREEN_UPDATE_IND16( lnc )
+UINT32 btime_state::screen_update_lnc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- btime_state *state = screen.machine().driver_data<btime_state>();
draw_chars(screen.machine(), bitmap, cliprect, FALSE, 0, -1);
- draw_sprites(screen.machine(), bitmap, cliprect, 0, 1, 2, state->m_videoram, 0x20);
+ draw_sprites(screen.machine(), bitmap, cliprect, 0, 1, 2, m_videoram, 0x20);
return 0;
}
-SCREEN_UPDATE_IND16( zoar )
+UINT32 btime_state::screen_update_zoar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- btime_state *state = screen.machine().driver_data<btime_state>();
- if (state->m_bnj_scroll1 & 0x04)
+ if (m_bnj_scroll1 & 0x04)
{
- draw_background(screen.machine(), bitmap, cliprect, state->m_zoar_scrollram, state->m_btime_palette);
- draw_chars(screen.machine(), bitmap, cliprect, TRUE, state->m_btime_palette + 1, -1);
+ draw_background(screen.machine(), bitmap, cliprect, m_zoar_scrollram, m_btime_palette);
+ draw_chars(screen.machine(), bitmap, cliprect, TRUE, m_btime_palette + 1, -1);
}
else
- draw_chars(screen.machine(), bitmap, cliprect, FALSE, state->m_btime_palette + 1, -1);
+ draw_chars(screen.machine(), bitmap, cliprect, FALSE, m_btime_palette + 1, -1);
/* The order is important for correct priorities */
- draw_sprites(screen.machine(), bitmap, cliprect, state->m_btime_palette + 1, 1, 2, state->m_videoram + 0x1f, 0x20);
- draw_sprites(screen.machine(), bitmap, cliprect, state->m_btime_palette + 1, 1, 2, state->m_videoram, 0x20);
+ draw_sprites(screen.machine(), bitmap, cliprect, m_btime_palette + 1, 1, 2, m_videoram + 0x1f, 0x20);
+ draw_sprites(screen.machine(), bitmap, cliprect, m_btime_palette + 1, 1, 2, m_videoram, 0x20);
return 0;
}
-SCREEN_UPDATE_IND16( bnj )
+UINT32 btime_state::screen_update_bnj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- btime_state *state = screen.machine().driver_data<btime_state>();
- if (state->m_bnj_scroll1)
+ if (m_bnj_scroll1)
{
int scroll, offs;
- for (offs = state->m_bnj_backgroundram.bytes() - 1; offs >=0; offs--)
+ for (offs = m_bnj_backgroundram.bytes() - 1; offs >=0; offs--)
{
int sx, sy;
@@ -496,78 +491,76 @@ SCREEN_UPDATE_IND16( bnj )
sy = 16 * (((offs % 0x100) < 0x80) ? offs % 8 : (offs % 8) + 8);
sx = 496 - sx;
- if (state->flip_screen())
+ if (flip_screen())
{
sx = 496 - sx;
sy = 256 - sy;
}
- drawgfx_opaque(*state->m_background_bitmap, state->m_background_bitmap->cliprect(), screen.machine().gfx[2],
- (state->m_bnj_backgroundram[offs] >> 4) + ((offs & 0x80) >> 3) + 32,
+ drawgfx_opaque(*m_background_bitmap, m_background_bitmap->cliprect(), screen.machine().gfx[2],
+ (m_bnj_backgroundram[offs] >> 4) + ((offs & 0x80) >> 3) + 32,
0,
- state->flip_screen(), state->flip_screen(),
+ flip_screen(), flip_screen(),
sx, sy);
}
/* copy the background bitmap to the screen */
- scroll = (state->m_bnj_scroll1 & 0x02) * 128 + 511 - state->m_bnj_scroll2;
- if (!state->flip_screen())
+ scroll = (m_bnj_scroll1 & 0x02) * 128 + 511 - m_bnj_scroll2;
+ if (!flip_screen())
scroll = 767 - scroll;
- copyscrollbitmap(bitmap, *state->m_background_bitmap, 1, &scroll, 0, 0, cliprect);
+ copyscrollbitmap(bitmap, *m_background_bitmap, 1, &scroll, 0, 0, cliprect);
/* copy the low priority characters followed by the sprites
then the high priority characters */
draw_chars(screen.machine(), bitmap, cliprect, TRUE, 0, 1);
- draw_sprites(screen.machine(), bitmap, cliprect, 0, 0, 0, state->m_videoram, 0x20);
+ draw_sprites(screen.machine(), bitmap, cliprect, 0, 0, 0, m_videoram, 0x20);
draw_chars(screen.machine(), bitmap, cliprect, TRUE, 0, 0);
}
else
{
draw_chars(screen.machine(), bitmap, cliprect, FALSE, 0, -1);
- draw_sprites(screen.machine(), bitmap, cliprect, 0, 0, 0, state->m_videoram, 0x20);
+ draw_sprites(screen.machine(), bitmap, cliprect, 0, 0, 0, m_videoram, 0x20);
}
return 0;
}
-SCREEN_UPDATE_IND16( cookrace )
+UINT32 btime_state::screen_update_cookrace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- btime_state *state = screen.machine().driver_data<btime_state>();
int offs;
- for (offs = state->m_bnj_backgroundram.bytes() - 1; offs >=0; offs--)
+ for (offs = m_bnj_backgroundram.bytes() - 1; offs >=0; offs--)
{
int sx, sy;
sx = 31 - (offs / 32);
sy = offs % 32;
- if (state->flip_screen())
+ if (flip_screen())
{
sx = 31 - sx;
sy = 33 - sy;
}
drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[2],
- state->m_bnj_backgroundram[offs],
+ m_bnj_backgroundram[offs],
0,
- state->flip_screen(), state->flip_screen(),
+ flip_screen(), flip_screen(),
8*sx,8*sy);
}
draw_chars(screen.machine(), bitmap, cliprect, TRUE, 0, -1);
- draw_sprites(screen.machine(), bitmap, cliprect, 0, 1, 0, state->m_videoram, 0x20);
+ draw_sprites(screen.machine(), bitmap, cliprect, 0, 1, 0, m_videoram, 0x20);
return 0;
}
-SCREEN_UPDATE_IND16( disco )
+UINT32 btime_state::screen_update_disco(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- btime_state *state = screen.machine().driver_data<btime_state>();
- draw_chars(screen.machine(), bitmap, cliprect, FALSE, state->m_btime_palette, -1);
- draw_sprites(screen.machine(), bitmap, cliprect, state->m_btime_palette, 0, 0, state->m_spriteram, 1);
+ draw_chars(screen.machine(), bitmap, cliprect, FALSE, m_btime_palette, -1);
+ draw_sprites(screen.machine(), bitmap, cliprect, m_btime_palette, 0, 0, m_spriteram, 1);
return 0;
}
diff --git a/src/mame/video/bublbobl.c b/src/mame/video/bublbobl.c
index 26544466e93..e945feaee21 100644
--- a/src/mame/video/bublbobl.c
+++ b/src/mame/video/bublbobl.c
@@ -10,9 +10,8 @@
#include "includes/bublbobl.h"
-SCREEN_UPDATE_IND16( bublbobl )
+UINT32 bublbobl_state::screen_update_bublbobl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bublbobl_state *state = screen.machine().driver_data<bublbobl_state>();
int offs;
int sx, sy, xc, yc;
int gfx_num, gfx_attr, gfx_offs;
@@ -27,29 +26,29 @@ SCREEN_UPDATE_IND16( bublbobl )
/* This clears & redraws the entire screen each pass */
bitmap.fill(255, cliprect);
- if (!state->m_video_enable)
+ if (!m_video_enable)
return 0;
sx = 0;
- prom = state->memregion("proms")->base();
- for (offs = 0; offs < state->m_objectram.bytes(); offs += 4)
+ prom = memregion("proms")->base();
+ for (offs = 0; offs < m_objectram.bytes(); offs += 4)
{
/* skip empty sprites */
/* this is dword aligned so the UINT32 * cast shouldn't give problems */
/* on any architecture */
- if (*(UINT32 *)(&state->m_objectram[offs]) == 0)
+ if (*(UINT32 *)(&m_objectram[offs]) == 0)
continue;
- gfx_num = state->m_objectram[offs + 1];
- gfx_attr = state->m_objectram[offs + 3];
+ gfx_num = m_objectram[offs + 1];
+ gfx_attr = m_objectram[offs + 3];
prom_line = prom + 0x80 + ((gfx_num & 0xe0) >> 1);
gfx_offs = ((gfx_num & 0x1f) * 0x80);
if ((gfx_num & 0xa0) == 0xa0)
gfx_offs |= 0x1000;
- sy = -state->m_objectram[offs + 0];
+ sy = -m_objectram[offs + 0];
for (yc = 0; yc < 32; yc++)
{
@@ -57,7 +56,7 @@ SCREEN_UPDATE_IND16( bublbobl )
if (!(prom_line[yc / 2] & 0x04)) /* next column */
{
- sx = state->m_objectram[offs + 2];
+ sx = m_objectram[offs + 2];
if (gfx_attr & 0x40) sx -= 256;
}
@@ -66,14 +65,14 @@ SCREEN_UPDATE_IND16( bublbobl )
int goffs, code, color, flipx, flipy, x, y;
goffs = gfx_offs + xc * 0x40 + (yc & 7) * 0x02 + (prom_line[yc/2] & 0x03) * 0x10;
- code = state->m_videoram[goffs] + 256 * (state->m_videoram[goffs + 1] & 0x03) + 1024 * (gfx_attr & 0x0f);
- color = (state->m_videoram[goffs + 1] & 0x3c) >> 2;
- flipx = state->m_videoram[goffs + 1] & 0x40;
- flipy = state->m_videoram[goffs + 1] & 0x80;
+ code = m_videoram[goffs] + 256 * (m_videoram[goffs + 1] & 0x03) + 1024 * (gfx_attr & 0x0f);
+ color = (m_videoram[goffs + 1] & 0x3c) >> 2;
+ flipx = m_videoram[goffs + 1] & 0x40;
+ flipy = m_videoram[goffs + 1] & 0x80;
x = sx + xc * 8;
y = (sy + yc * 8) & 0xff;
- if (state->flip_screen())
+ if (flip_screen())
{
x = 248 - x;
y = 248 - y;
diff --git a/src/mame/video/buggychl.c b/src/mame/video/buggychl.c
index da1884d8140..5cf2ed958b5 100644
--- a/src/mame/video/buggychl.c
+++ b/src/mame/video/buggychl.c
@@ -229,16 +229,15 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
-SCREEN_UPDATE_IND16( buggychl )
+UINT32 buggychl_state::screen_update_buggychl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- buggychl_state *state = screen.machine().driver_data<buggychl_state>();
- if (state->m_sky_on)
+ if (m_sky_on)
draw_sky(bitmap, cliprect);
else
bitmap.fill(0, cliprect);
- if (state->m_bg_on)
+ if (m_bg_on)
draw_bg(screen.machine(), bitmap, cliprect);
draw_sprites(screen.machine(), bitmap, cliprect);
diff --git a/src/mame/video/bwing.c b/src/mame/video/bwing.c
index ad4332ec5f3..be5aab4feb8 100644
--- a/src/mame/video/bwing.c
+++ b/src/mame/video/bwing.c
@@ -282,57 +282,56 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bmp, const rec
}
-SCREEN_UPDATE_IND16( bwing )
+UINT32 bwing_state::screen_update_bwing(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bwing_state *state = screen.machine().driver_data<bwing_state>();
unsigned x, y, shiftx;
- if (state->m_mapmask & 0x20)
+ if (m_mapmask & 0x20)
{
- state->m_mapflip = TILEMAP_FLIPX;
+ m_mapflip = TILEMAP_FLIPX;
shiftx = -8;
}
else
{
- state->m_mapflip = TILEMAP_FLIPY;
+ m_mapflip = TILEMAP_FLIPY;
shiftx = 8;
}
// draw background
- if (!(state->m_mapmask & 1))
+ if (!(m_mapmask & 1))
{
- state->m_bgmap->set_flip(state->m_mapflip);
- x = ((state->m_sreg[1]<<2 & 0x300) + state->m_sreg[2] + shiftx) & 0x3ff;
- state->m_bgmap->set_scrollx(0, x);
- y = (state->m_sreg[1]<<4 & 0x300) + state->m_sreg[3];
- state->m_bgmap->set_scrolly(0, y);
- state->m_bgmap->draw(bitmap, cliprect, 0, 0);
+ m_bgmap->set_flip(m_mapflip);
+ x = ((m_sreg[1]<<2 & 0x300) + m_sreg[2] + shiftx) & 0x3ff;
+ m_bgmap->set_scrollx(0, x);
+ y = (m_sreg[1]<<4 & 0x300) + m_sreg[3];
+ m_bgmap->set_scrolly(0, y);
+ m_bgmap->draw(bitmap, cliprect, 0, 0);
}
else
bitmap.fill(get_black_pen(screen.machine()), cliprect);
// draw low priority sprites
- draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram, 0);
+ draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram, 0);
// draw foreground
- if (!(state->m_mapmask & 2))
+ if (!(m_mapmask & 2))
{
- state->m_fgmap->set_flip(state->m_mapflip);
- x = ((state->m_sreg[1] << 6 & 0x300) + state->m_sreg[4] + shiftx) & 0x3ff;
- state->m_fgmap->set_scrollx(0, x);
- y = (state->m_sreg[1] << 8 & 0x300) + state->m_sreg[5];
- state->m_fgmap->set_scrolly(0, y);
- state->m_fgmap->draw(bitmap, cliprect, 0, 0);
+ m_fgmap->set_flip(m_mapflip);
+ x = ((m_sreg[1] << 6 & 0x300) + m_sreg[4] + shiftx) & 0x3ff;
+ m_fgmap->set_scrollx(0, x);
+ y = (m_sreg[1] << 8 & 0x300) + m_sreg[5];
+ m_fgmap->set_scrolly(0, y);
+ m_fgmap->draw(bitmap, cliprect, 0, 0);
}
// draw high priority sprites
- draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram, 1);
+ draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram, 1);
// draw text layer
-// if (state->m_mapmask & 4)
+// if (m_mapmask & 4)
{
- state->m_charmap->set_flip(state->m_mapflip);
- state->m_charmap->draw(bitmap, cliprect, 0, 0);
+ m_charmap->set_flip(m_mapflip);
+ m_charmap->draw(bitmap, cliprect, 0, 0);
}
return 0;
}
diff --git a/src/mame/video/cabal.c b/src/mame/video/cabal.c
index a700645528b..f71e7acfe25 100644
--- a/src/mame/video/cabal.c
+++ b/src/mame/video/cabal.c
@@ -140,12 +140,11 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
-SCREEN_UPDATE_IND16( cabal )
+UINT32 cabal_state::screen_update_cabal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cabal_state *state = screen.machine().driver_data<cabal_state>();
- state->m_background_layer->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
+ m_background_layer->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
draw_sprites(screen.machine(),bitmap,cliprect);
- state->m_text_layer->draw(bitmap, cliprect, 0,0);
+ m_text_layer->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/video/calomega.c b/src/mame/video/calomega.c
index f7b088085c6..57644e4fafd 100644
--- a/src/mame/video/calomega.c
+++ b/src/mame/video/calomega.c
@@ -59,10 +59,9 @@ void calomega_state::video_start()
m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(calomega_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 31);
}
-SCREEN_UPDATE_IND16( calomega )
+UINT32 calomega_state::screen_update_calomega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- calomega_state *state = screen.machine().driver_data<calomega_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/canyon.c b/src/mame/video/canyon.c
index 51aa9eecab6..72702ce4f8d 100644
--- a/src/mame/video/canyon.c
+++ b/src/mame/video/canyon.c
@@ -70,11 +70,10 @@ static void draw_bombs( running_machine &machine, bitmap_ind16 &bitmap, const re
}
-SCREEN_UPDATE_IND16( canyon )
+UINT32 canyon_state::screen_update_canyon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- canyon_state *state = screen.machine().driver_data<canyon_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
diff --git a/src/mame/video/capbowl.c b/src/mame/video/capbowl.c
index f98f59c97d6..53507d65c18 100644
--- a/src/mame/video/capbowl.c
+++ b/src/mame/video/capbowl.c
@@ -161,7 +161,7 @@ INLINE rgb_t pen_for_pixel( UINT8 *src, UINT8 pix )
}
-SCREEN_UPDATE_RGB32( capbowl )
+UINT32 capbowl_state::screen_update_capbowl(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
struct tms34061_display state;
int x, y;
diff --git a/src/mame/video/carjmbre.c b/src/mame/video/carjmbre.c
index 633173384bb..67b65d0c765 100644
--- a/src/mame/video/carjmbre.c
+++ b/src/mame/video/carjmbre.c
@@ -104,9 +104,8 @@ void carjmbre_state::video_start()
save_item(NAME(m_bgcolor));
}
-SCREEN_UPDATE_IND16( carjmbre )
+UINT32 carjmbre_state::screen_update_carjmbre(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- carjmbre_state *state = screen.machine().driver_data<carjmbre_state>();
int offs, troffs, sx, sy, flipx, flipy;
//colorram
@@ -115,7 +114,7 @@ SCREEN_UPDATE_IND16( carjmbre )
//-xxx---- unused
//----xxxx colour
- state->m_cj_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_cj_tilemap->draw(bitmap, cliprect, 0, 0);
//spriteram[offs]
//+0 y pos
@@ -127,21 +126,21 @@ SCREEN_UPDATE_IND16( carjmbre )
//--xx---- unused
//----xxxx colour
//+3 x pos
- for (offs = state->m_spriteram.bytes() - 4; offs >= 0; offs -= 4)
+ for (offs = m_spriteram.bytes() - 4; offs >= 0; offs -= 4)
{
//before copying the sprites to spriteram the game reorders the first
//sprite to last, sprite ordering is incorrect if this isn't undone
- troffs = (offs - 4 + state->m_spriteram.bytes()) % state->m_spriteram.bytes();
+ troffs = (offs - 4 + m_spriteram.bytes()) % m_spriteram.bytes();
//unused sprites are marked with ypos <= 0x02 (or >= 0xfd if screen flipped)
- if (state->m_spriteram[troffs] > 0x02 && state->m_spriteram[troffs] < 0xfd)
+ if (m_spriteram[troffs] > 0x02 && m_spriteram[troffs] < 0xfd)
{
- sx = state->m_spriteram[troffs + 3] - 7;
- sy = 241 - state->m_spriteram[troffs];
- flipx = (state->m_spriteram[troffs + 2] & 0x40) >> 6;
- flipy = (state->m_spriteram[troffs + 2] & 0x80) >> 7;
+ sx = m_spriteram[troffs + 3] - 7;
+ sy = 241 - m_spriteram[troffs];
+ flipx = (m_spriteram[troffs + 2] & 0x40) >> 6;
+ flipy = (m_spriteram[troffs + 2] & 0x80) >> 7;
- if (state->m_flipscreen)
+ if (m_flipscreen)
{
sx = (256 + (226 - sx)) % 256;
sy = 242 - sy;
@@ -150,8 +149,8 @@ SCREEN_UPDATE_IND16( carjmbre )
}
drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1],
- state->m_spriteram[troffs + 1],
- state->m_spriteram[troffs + 2] & 0xf,
+ m_spriteram[troffs + 1],
+ m_spriteram[troffs + 2] & 0xf,
flipx,flipy,
sx,sy,0);
}
diff --git a/src/mame/video/carpolo.c b/src/mame/video/carpolo.c
index fb33da2775b..0ea73450448 100644
--- a/src/mame/video/carpolo.c
+++ b/src/mame/video/carpolo.c
@@ -220,9 +220,8 @@ static void draw_sprite(running_machine &machine, bitmap_ind16 &bitmap, const re
}
-SCREEN_UPDATE_IND16( carpolo )
+UINT32 carpolo_state::screen_update_carpolo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- carpolo_state *state = screen.machine().driver_data<carpolo_state>();
/* draw the playfield elements in the correct priority order */
/* score area - position determined by bit 4 of the vertical timing PROM */
@@ -233,8 +232,8 @@ SCREEN_UPDATE_IND16( carpolo )
/* car 1 */
draw_sprite(screen.machine(), bitmap, cliprect,
- state->m_spriteram[0x00], state->m_spriteram[0x01],
- 0, state->m_spriteram[0x0c] & 0x0f, CAR1_COLOR);
+ m_spriteram[0x00], m_spriteram[0x01],
+ 0, m_spriteram[0x0c] & 0x0f, CAR1_COLOR);
/* border - position determined by bit 4 and 7 of the vertical timing PROM */
bitmap.plot_box(0,TOP_BORDER, RIGHT_BORDER+1,1,LINE_PEN);
@@ -244,23 +243,23 @@ SCREEN_UPDATE_IND16( carpolo )
/* car 4 */
draw_sprite(screen.machine(), bitmap, cliprect,
- state->m_spriteram[0x06], state->m_spriteram[0x07],
- 0, state->m_spriteram[0x0d] >> 4, CAR4_COLOR);
+ m_spriteram[0x06], m_spriteram[0x07],
+ 0, m_spriteram[0x0d] >> 4, CAR4_COLOR);
/* car 3 */
draw_sprite(screen.machine(), bitmap, cliprect,
- state->m_spriteram[0x04], state->m_spriteram[0x05],
- 0, state->m_spriteram[0x0d] & 0x0f, CAR3_COLOR);
+ m_spriteram[0x04], m_spriteram[0x05],
+ 0, m_spriteram[0x0d] & 0x0f, CAR3_COLOR);
/* car 2 */
draw_sprite(screen.machine(), bitmap, cliprect,
- state->m_spriteram[0x02], state->m_spriteram[0x03],
- 0, state->m_spriteram[0x0c] >> 4, CAR2_COLOR);
+ m_spriteram[0x02], m_spriteram[0x03],
+ 0, m_spriteram[0x0c] >> 4, CAR2_COLOR);
/* ball */
draw_sprite(screen.machine(), bitmap, cliprect,
- state->m_spriteram[0x08], state->m_spriteram[0x09],
- 1, state->m_spriteram[0x0e] & 0x0f, BALL_COLOR);
+ m_spriteram[0x08], m_spriteram[0x09],
+ 1, m_spriteram[0x0e] & 0x0f, BALL_COLOR);
/* left goal - position determined by bit 6 of the
horizontal and vertical timing PROMs */
@@ -279,13 +278,13 @@ SCREEN_UPDATE_IND16( carpolo )
/* special char - bit 0 of 0x0f enables it,
bit 1 marked as WIDE, but never appears to be set */
- if (state->m_spriteram[0x0f] & 0x02)
+ if (m_spriteram[0x0f] & 0x02)
popmessage("WIDE!\n");
- if (state->m_spriteram[0x0f] & 0x01)
+ if (m_spriteram[0x0f] & 0x01)
draw_sprite(screen.machine(), bitmap, cliprect,
- state->m_spriteram[0x0a], state->m_spriteram[0x0b],
- 1, state->m_spriteram[0x0e] >> 4, SPECIAL_CHAR_COLOR);
+ m_spriteram[0x0a], m_spriteram[0x0b],
+ 1, m_spriteram[0x0e] >> 4, SPECIAL_CHAR_COLOR);
/* draw the alpha layer */
@@ -548,12 +547,11 @@ static int check_sprite_border_collision(running_machine &machine, UINT8 x1, UIN
}
-SCREEN_VBLANK( carpolo )
+void carpolo_state::screen_eof_carpolo(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- carpolo_state *state = screen.machine().driver_data<carpolo_state>();
int col_x, col_y;
int car1_x, car2_x, car3_x, car4_x, ball_x;
int car1_y, car2_y, car3_y, car4_y, ball_y;
@@ -563,25 +561,25 @@ SCREEN_VBLANK( carpolo )
/* check car-car collision first */
- car1_x = state->m_spriteram[0x00];
- car1_y = state->m_spriteram[0x01];
- remap_sprite_code(screen.machine(), 0, state->m_spriteram[0x0c] & 0x0f, &car1_code, &car1_flipy);
+ car1_x = m_spriteram[0x00];
+ car1_y = m_spriteram[0x01];
+ remap_sprite_code(screen.machine(), 0, m_spriteram[0x0c] & 0x0f, &car1_code, &car1_flipy);
- car2_x = state->m_spriteram[0x02];
- car2_y = state->m_spriteram[0x03];
- remap_sprite_code(screen.machine(), 0, state->m_spriteram[0x0c] >> 4, &car2_code, &car2_flipy);
+ car2_x = m_spriteram[0x02];
+ car2_y = m_spriteram[0x03];
+ remap_sprite_code(screen.machine(), 0, m_spriteram[0x0c] >> 4, &car2_code, &car2_flipy);
- car3_x = state->m_spriteram[0x04];
- car3_y = state->m_spriteram[0x05];
- remap_sprite_code(screen.machine(), 0, state->m_spriteram[0x0d] & 0x0f, &car3_code, &car3_flipy);
+ car3_x = m_spriteram[0x04];
+ car3_y = m_spriteram[0x05];
+ remap_sprite_code(screen.machine(), 0, m_spriteram[0x0d] & 0x0f, &car3_code, &car3_flipy);
- car4_x = state->m_spriteram[0x06];
- car4_y = state->m_spriteram[0x07];
- remap_sprite_code(screen.machine(), 0, state->m_spriteram[0x0d] >> 4, &car4_code, &car4_flipy);
+ car4_x = m_spriteram[0x06];
+ car4_y = m_spriteram[0x07];
+ remap_sprite_code(screen.machine(), 0, m_spriteram[0x0d] >> 4, &car4_code, &car4_flipy);
- ball_x = state->m_spriteram[0x08];
- ball_y = state->m_spriteram[0x09];
- remap_sprite_code(screen.machine(), 1, state->m_spriteram[0x0e] & 0x0f, &ball_code, &ball_flipy);
+ ball_x = m_spriteram[0x08];
+ ball_y = m_spriteram[0x09];
+ remap_sprite_code(screen.machine(), 1, m_spriteram[0x0e] & 0x0f, &ball_code, &ball_flipy);
/* cars 1 and 2 */
diff --git a/src/mame/video/cave.c b/src/mame/video/cave.c
index ed3ccdaee3b..cff1a026d65 100644
--- a/src/mame/video/cave.c
+++ b/src/mame/video/cave.c
@@ -1527,28 +1527,27 @@ INLINE void cave_tilemap_draw(
}
-SCREEN_UPDATE_IND16( cave )
+UINT32 cave_state::screen_update_cave(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cave_state *state = screen.machine().driver_data<cave_state>();
int pri, pri2, GFX;
int layers_ctrl = -1;
set_pens(screen.machine());
- state->m_blit.baseaddr = reinterpret_cast<UINT8 *>(bitmap.raw_pixptr(0));
- state->m_blit.line_offset = bitmap.rowbytes();
- state->m_blit.baseaddr_zbuf = reinterpret_cast<UINT8 *>(state->m_sprite_zbuf.raw_pixptr(0));
- state->m_blit.line_offset_zbuf = state->m_sprite_zbuf.rowbytes();
+ m_blit.baseaddr = reinterpret_cast<UINT8 *>(bitmap.raw_pixptr(0));
+ m_blit.line_offset = bitmap.rowbytes();
+ m_blit.baseaddr_zbuf = reinterpret_cast<UINT8 *>(m_sprite_zbuf.raw_pixptr(0));
+ m_blit.line_offset_zbuf = m_sprite_zbuf.rowbytes();
/* Choose the tilemap to display (8x8 tiles or 16x16 tiles) */
for (GFX = 0; GFX < 4; GFX++)
{
- if (state->m_tilemap[GFX])
+ if (m_tilemap[GFX])
{
- state->m_tiledim[GFX] = state->m_vctrl[GFX][1] & 0x2000;
- if (state->m_tiledim[GFX] != state->m_old_tiledim[GFX])
- state->m_tilemap[GFX]->mark_all_dirty();
- state->m_old_tiledim[GFX] = state->m_tiledim[GFX];
+ m_tiledim[GFX] = m_vctrl[GFX][1] & 0x2000;
+ if (m_tiledim[GFX] != m_old_tiledim[GFX])
+ m_tilemap[GFX]->mark_all_dirty();
+ m_old_tiledim[GFX] = m_tiledim[GFX];
}
}
@@ -1575,42 +1574,42 @@ SCREEN_UPDATE_IND16( cave )
#if 1
/* Show the video registers (cave_videoregs) */
popmessage("%04X %04X %04X %04X %04X %04X %04X %04X",
- state->m_videoregs[0], state->m_videoregs[1], state->m_videoregs[2], state->m_videoregs[3],
- state->m_videoregs[4], state->m_videoregs[5], state->m_videoregs[6], state->m_videoregs[7] );
+ m_videoregs[0], m_videoregs[1], m_videoregs[2], m_videoregs[3],
+ m_videoregs[4], m_videoregs[5], m_videoregs[6], m_videoregs[7] );
#endif
/* Show the scroll / flags registers of the selected layer */
- if ((state->m_tilemap[0]) && (msk & 0x000f)) popmessage("x:%04X y:%04X f:%04X", state->m_vctrl[0][0],state->m_vctrl[0][1],state->m_vctrl[0][2]);
- if ((state->m_tilemap[1]) && (msk & 0x00f0)) popmessage("x:%04X y:%04X f:%04X", state->m_vctrl[1][0],state->m_vctrl[1][1],state->m_vctrl[1][2]);
- if ((state->m_tilemap[2]) && (msk & 0x0f00)) popmessage("x:%04X y:%04X f:%04X", state->m_vctrl[2][0],state->m_vctrl[2][1],state->m_vctrl[2][2]);
- if ((state->m_tilemap[3]) && (msk & 0xf000)) popmessage("x:%04X y:%04X f:%04X", state->m_vctrl[3][0],state->m_vctrl[3][1],state->m_vctrl[3][2]);
+ if ((m_tilemap[0]) && (msk & 0x000f)) popmessage("x:%04X y:%04X f:%04X", m_vctrl[0][0],m_vctrl[0][1],m_vctrl[0][2]);
+ if ((m_tilemap[1]) && (msk & 0x00f0)) popmessage("x:%04X y:%04X f:%04X", m_vctrl[1][0],m_vctrl[1][1],m_vctrl[1][2]);
+ if ((m_tilemap[2]) && (msk & 0x0f00)) popmessage("x:%04X y:%04X f:%04X", m_vctrl[2][0],m_vctrl[2][1],m_vctrl[2][2]);
+ if ((m_tilemap[3]) && (msk & 0xf000)) popmessage("x:%04X y:%04X f:%04X", m_vctrl[3][0],m_vctrl[3][1],m_vctrl[3][2]);
}
/* Show the row / "column" scroll enable flags, when they change state */
- state->m_rasflag = 0;
+ m_rasflag = 0;
for (GFX = 0; GFX < 4; GFX++)
{
- if (state->m_tilemap[GFX])
+ if (m_tilemap[GFX])
{
- state->m_rasflag |= (state->m_vctrl[GFX][0] & 0x4000) ? 0x0001 << (4*GFX) : 0;
- state->m_rasflag |= (state->m_vctrl[GFX][1] & 0x4000) ? 0x0002 << (4*GFX) : 0;
+ m_rasflag |= (m_vctrl[GFX][0] & 0x4000) ? 0x0001 << (4*GFX) : 0;
+ m_rasflag |= (m_vctrl[GFX][1] & 0x4000) ? 0x0002 << (4*GFX) : 0;
}
}
- if (state->m_rasflag != state->m_old_rasflag)
+ if (m_rasflag != m_old_rasflag)
{
popmessage("Line Effect: 0:%c%c 1:%c%c 2:%c%c 3:%c%c",
- (state->m_rasflag & 0x0001) ? 'x' : ' ', (state->m_rasflag & 0x0002) ? 'y' : ' ',
- (state->m_rasflag & 0x0010) ? 'x' : ' ', (state->m_rasflag & 0x0020) ? 'y' : ' ',
- (state->m_rasflag & 0x0100) ? 'x' : ' ', (state->m_rasflag & 0x0200) ? 'y' : ' ',
- (state->m_rasflag & 0x1000) ? 'x' : ' ', (state->m_rasflag & 0x2000) ? 'y' : ' ' );
- state->m_old_rasflag = state->m_rasflag;
+ (m_rasflag & 0x0001) ? 'x' : ' ', (m_rasflag & 0x0002) ? 'y' : ' ',
+ (m_rasflag & 0x0010) ? 'x' : ' ', (m_rasflag & 0x0020) ? 'y' : ' ',
+ (m_rasflag & 0x0100) ? 'x' : ' ', (m_rasflag & 0x0200) ? 'y' : ' ',
+ (m_rasflag & 0x1000) ? 'x' : ' ', (m_rasflag & 0x2000) ? 'y' : ' ' );
+ m_old_rasflag = m_rasflag;
}
}
#endif
cave_sprite_check(screen, cliprect);
- bitmap.fill(state->m_background_color, cliprect);
+ bitmap.fill(m_background_color, cliprect);
/*
Tiles and sprites are ordered by priority (0 back, 3 front) with
@@ -1626,7 +1625,7 @@ SCREEN_UPDATE_IND16( cave )
*/
for (pri = 0; pri <= 3; pri++) // tile / sprite priority
{
- if (layers_ctrl & (1 << (pri + 16))) (*state->m_sprite_draw)(screen.machine(), pri);
+ if (layers_ctrl & (1 << (pri + 16))) (*m_sprite_draw)(screen.machine(), pri);
for (pri2 = 0; pri2 <= 3; pri2++) // priority of the whole layer
{
diff --git a/src/mame/video/cbasebal.c b/src/mame/video/cbasebal.c
index d33959594ce..117e62b91f3 100644
--- a/src/mame/video/cbasebal.c
+++ b/src/mame/video/cbasebal.c
@@ -168,19 +168,18 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( cbasebal )
+UINT32 cbasebal_state::screen_update_cbasebal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cbasebal_state *state = screen.machine().driver_data<cbasebal_state>();
- if (state->m_bg_on)
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (m_bg_on)
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
else
bitmap.fill(768, cliprect);
- if (state->m_obj_on)
+ if (m_obj_on)
draw_sprites(screen.machine(), bitmap, cliprect);
- if (state->m_text_on)
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (m_text_on)
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/cbuster.c b/src/mame/video/cbuster.c
index 71dcede049e..435ecbd1753 100644
--- a/src/mame/video/cbuster.c
+++ b/src/mame/video/cbuster.c
@@ -48,38 +48,37 @@ void cbuster_state::video_start()
machine().device<decospr_device>("spritegen")->alloc_sprite_bitmap();
}
-SCREEN_UPDATE_RGB32( twocrude )
+UINT32 cbuster_state::screen_update_twocrude(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- cbuster_state *state = screen.machine().driver_data<cbuster_state>();
address_space &space = screen.machine().driver_data()->generic_space();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
+ UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
- state->flip_screen_set(!BIT(flip, 7));
+ flip_screen_set(!BIT(flip, 7));
- screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram16_buffer, 0x400);
+ screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram16_buffer, 0x400);
- deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
- deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
+ deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
+ deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
/* Draw playfields & sprites */
- deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0900, 0x100, 0x0ff);
screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0900, 0x0900, 0x500, 0x0ff);
- if (state->m_pri)
+ if (m_pri)
{
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 0);
}
else
{
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 0);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
}
screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0900, 0x100, 0x0ff);
screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0100, 0x0900, 0x500, 0x0ff);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/ccastles.c b/src/mame/video/ccastles.c
index c6b1af6d7e3..d67177ccca0 100644
--- a/src/mame/video/ccastles.c
+++ b/src/mame/video/ccastles.c
@@ -257,16 +257,15 @@ WRITE8_MEMBER(ccastles_state::ccastles_bitmode_addr_w)
*
*************************************/
-SCREEN_UPDATE_IND16( ccastles )
+UINT32 ccastles_state::screen_update_ccastles(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ccastles_state *state = screen.machine().driver_data<ccastles_state>();
- UINT8 *spriteaddr = &state->m_spriteram[state->m_video_control[7] * 0x100]; /* BUF1/BUF2 */
- int flip = state->m_video_control[4] ? 0xff : 0x00; /* PLAYER2 */
+ UINT8 *spriteaddr = &m_spriteram[m_video_control[7] * 0x100]; /* BUF1/BUF2 */
+ int flip = m_video_control[4] ? 0xff : 0x00; /* PLAYER2 */
pen_t black = get_black_pen(screen.machine());
int x, y, offs;
/* draw the sprites */
- state->m_spritebitmap.fill(0x0f, cliprect);
+ m_spritebitmap.fill(0x0f, cliprect);
for (offs = 0; offs < 320/2; offs += 4)
{
int x = spriteaddr[offs + 3];
@@ -274,7 +273,7 @@ SCREEN_UPDATE_IND16( ccastles )
int which = spriteaddr[offs];
int color = spriteaddr[offs + 2] >> 7;
- drawgfx_transpen(state->m_spritebitmap, cliprect, screen.machine().gfx[0], which, color, flip, flip, x, y, 7);
+ drawgfx_transpen(m_spritebitmap, cliprect, screen.machine().gfx[0], which, color, flip, flip, x, y, 7);
}
/* draw the bitmap to the screen, looping over Y */
@@ -283,7 +282,7 @@ SCREEN_UPDATE_IND16( ccastles )
UINT16 *dst = &bitmap.pix16(y);
/* if we're in the VBLANK region, just fill with black */
- if (state->m_syncprom[y] & 1)
+ if (m_syncprom[y] & 1)
{
for (x = cliprect.min_x; x <= cliprect.max_x; x++)
dst[x] = black;
@@ -292,14 +291,14 @@ SCREEN_UPDATE_IND16( ccastles )
/* non-VBLANK region: merge the sprites and the bitmap */
else
{
- UINT16 *mosrc = &state->m_spritebitmap.pix16(y);
- int effy = (((y - state->m_vblank_end) + (flip ? 0 : state->m_vscroll)) ^ flip) & 0xff;
+ UINT16 *mosrc = &m_spritebitmap.pix16(y);
+ int effy = (((y - m_vblank_end) + (flip ? 0 : m_vscroll)) ^ flip) & 0xff;
UINT8 *src;
/* the "POTATO" chip does some magic here; this is just a guess */
if (effy < 24)
effy = 24;
- src = &state->m_videoram[effy * 128];
+ src = &m_videoram[effy * 128];
/* loop over X */
for (x = cliprect.min_x; x <= cliprect.max_x; x++)
@@ -311,7 +310,7 @@ SCREEN_UPDATE_IND16( ccastles )
/* otherwise, process normally */
else
{
- int effx = (state->m_hscroll + (x ^ flip)) & 255;
+ int effx = (m_hscroll + (x ^ flip)) & 255;
/* low 4 bits = left pixel, high 4 bits = right pixel */
UINT8 pix = (src[effx / 2] >> ((effx & 1) * 4)) & 0x0f;
@@ -333,7 +332,7 @@ SCREEN_UPDATE_IND16( ccastles )
prindex |= (mopix & 7) << 2;
prindex |= (mopix & 8) >> 2;
prindex |= (pix & 8) >> 3;
- prvalue = state->m_priprom[prindex];
+ prvalue = m_priprom[prindex];
/* Bit 1 of prvalue selects the low 4 bits of the final pixel */
if (prvalue & 2)
diff --git a/src/mame/video/cclimber.c b/src/mame/video/cclimber.c
index 429f529a2aa..a5c76b29d08 100644
--- a/src/mame/video/cclimber.c
+++ b/src/mame/video/cclimber.c
@@ -655,14 +655,13 @@ static void swimmer_draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect
}
-SCREEN_UPDATE_IND16( cclimber )
+UINT32 cclimber_state::screen_update_cclimber(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cclimber_state *state = screen.machine().driver_data<cclimber_state>();
bitmap.fill(CCLIMBER_BG_PEN, cliprect);
draw_playfield(screen.machine(), bitmap, cliprect);
/* draw the "big sprite" under the regular sprites */
- if ((state->m_bigsprite_control[0] & 0x01))
+ if ((m_bigsprite_control[0] & 0x01))
{
cclimber_draw_bigsprite(screen.machine(), bitmap, cliprect);
cclimber_draw_sprites(bitmap, cliprect, screen.machine().gfx[1]);
@@ -679,11 +678,11 @@ SCREEN_UPDATE_IND16( cclimber )
}
-SCREEN_UPDATE_IND16( yamato )
+UINT32 cclimber_state::screen_update_yamato(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
cclimber_state *state = screen.machine().driver_data<cclimber_state>();
int i;
- UINT8 *sky_rom = state->memregion("user1")->base() + 0x1200;
+ UINT8 *sky_rom = memregion("user1")->base() + 0x1200;
for (i = 0; i < 0x100; i++)
{
@@ -697,7 +696,7 @@ SCREEN_UPDATE_IND16( yamato )
draw_playfield(screen.machine(), bitmap, cliprect);
/* draw the "big sprite" under the regular sprites */
- if ((state->m_bigsprite_control[0] & 0x01))
+ if ((m_bigsprite_control[0] & 0x01))
{
cclimber_draw_bigsprite(screen.machine(), bitmap, cliprect);
toprollr_draw_sprites(bitmap, cliprect, screen.machine().gfx[1]);
@@ -714,12 +713,12 @@ SCREEN_UPDATE_IND16( yamato )
}
-SCREEN_UPDATE_IND16( swimmer )
+UINT32 cclimber_state::screen_update_swimmer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
cclimber_state *state = screen.machine().driver_data<cclimber_state>();
swimmer_set_background_pen(screen.machine());
- if (*state->m_swimmer_side_background_enabled & 0x01)
+ if (*m_swimmer_side_background_enabled & 0x01)
{
if (CCLIMBER_FLIP_X)
{
@@ -750,7 +749,7 @@ SCREEN_UPDATE_IND16( swimmer )
draw_playfield(screen.machine(), bitmap, cliprect);
/* draw the "big sprite" under the regular sprites */
- if ((state->m_bigsprite_control[0] & 0x01))
+ if ((m_bigsprite_control[0] & 0x01))
{
cclimber_draw_bigsprite(screen.machine(), bitmap, cliprect);
swimmer_draw_sprites(bitmap, cliprect, screen.machine().gfx[1]);
@@ -767,7 +766,7 @@ SCREEN_UPDATE_IND16( swimmer )
}
-SCREEN_UPDATE_IND16( toprollr )
+UINT32 cclimber_state::screen_update_toprollr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
cclimber_state *state = screen.machine().driver_data<cclimber_state>();
rectangle scroll_area_clip = cliprect;
@@ -776,14 +775,14 @@ SCREEN_UPDATE_IND16( toprollr )
bitmap.fill(CCLIMBER_BG_PEN, cliprect);
- state->m_toproller_bg_tilemap->set_scrollx(0, state->m_toprollr_bg_videoram[0]);
- state->m_toproller_bg_tilemap->set_flip((CCLIMBER_FLIP_X ? TILEMAP_FLIPX : 0) |
+ m_toproller_bg_tilemap->set_scrollx(0, m_toprollr_bg_videoram[0]);
+ m_toproller_bg_tilemap->set_flip((CCLIMBER_FLIP_X ? TILEMAP_FLIPX : 0) |
(CCLIMBER_FLIP_Y ? TILEMAP_FLIPY : 0));
- state->m_toproller_bg_tilemap->mark_all_dirty();
- state->m_toproller_bg_tilemap->draw(bitmap, scroll_area_clip, 0, 0);
+ m_toproller_bg_tilemap->mark_all_dirty();
+ m_toproller_bg_tilemap->draw(bitmap, scroll_area_clip, 0, 0);
/* draw the "big sprite" over the regular sprites */
- if ((state->m_bigsprite_control[1] & 0x20))
+ if ((m_bigsprite_control[1] & 0x20))
{
toprollr_draw_sprites(bitmap, scroll_area_clip, screen.machine().gfx[1]);
toprollr_draw_bigsprite(screen.machine(), bitmap, scroll_area_clip);
@@ -796,10 +795,10 @@ SCREEN_UPDATE_IND16( toprollr )
toprollr_draw_sprites(bitmap, scroll_area_clip, screen.machine().gfx[1]);
}
- state->m_pf_tilemap->mark_all_dirty();
- state->m_pf_tilemap->set_flip((CCLIMBER_FLIP_X ? TILEMAP_FLIPX : 0) |
+ m_pf_tilemap->mark_all_dirty();
+ m_pf_tilemap->set_flip((CCLIMBER_FLIP_X ? TILEMAP_FLIPX : 0) |
(CCLIMBER_FLIP_Y ? TILEMAP_FLIPY : 0));
- state->m_pf_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_pf_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/centiped.c b/src/mame/video/centiped.c
index afb339a2fb5..517d897738e 100644
--- a/src/mame/video/centiped.c
+++ b/src/mame/video/centiped.c
@@ -417,18 +417,17 @@ WRITE8_MEMBER(centiped_state::mazeinv_paletteram_w)
*
*************************************/
-SCREEN_UPDATE_IND16( centiped )
+UINT32 centiped_state::screen_update_centiped(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- centiped_state *state = screen.machine().driver_data<centiped_state>();
- UINT8 *spriteram = state->m_spriteram;
+ UINT8 *spriteram = m_spriteram;
rectangle spriteclip = cliprect;
int offs;
/* draw the background */
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
/* apply the sprite clip */
- if (state->m_flipscreen)
+ if (m_flipscreen)
spriteclip.min_x += 8;
else
spriteclip.max_x -= 8;
@@ -443,29 +442,28 @@ SCREEN_UPDATE_IND16( centiped )
int x = spriteram[offs + 0x20];
int y = 240 - spriteram[offs + 0x10];
- drawgfx_transmask(bitmap, spriteclip, screen.machine().gfx[1], code, color, flipx, flipy, x, y, state->m_penmask[color & 0x3f]);
+ drawgfx_transmask(bitmap, spriteclip, screen.machine().gfx[1], code, color, flipx, flipy, x, y, m_penmask[color & 0x3f]);
}
return 0;
}
-SCREEN_UPDATE_IND16( warlords )
+UINT32 centiped_state::screen_update_warlords(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- centiped_state *state = screen.machine().driver_data<centiped_state>();
- UINT8 *spriteram = state->m_spriteram;
+ UINT8 *spriteram = m_spriteram;
int upright_mode = screen.machine().root_device().ioport("IN0")->read() & 0x80;
int offs;
/* if the cocktail/upright switch flipped, force refresh */
- if (state->m_flipscreen != upright_mode)
+ if (m_flipscreen != upright_mode)
{
- state->m_flipscreen = upright_mode;
- state->m_bg_tilemap->set_flip(upright_mode ? TILEMAP_FLIPX : 0);
- state->m_bg_tilemap->mark_all_dirty();
+ m_flipscreen = upright_mode;
+ m_bg_tilemap->set_flip(upright_mode ? TILEMAP_FLIPX : 0);
+ m_bg_tilemap->mark_all_dirty();
}
/* draw the background */
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
/* draw the sprites */
for (offs = 0; offs < 0x10; offs++)
@@ -495,19 +493,18 @@ SCREEN_UPDATE_IND16( warlords )
}
-SCREEN_UPDATE_IND16( bullsdrt )
+UINT32 centiped_state::screen_update_bullsdrt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- centiped_state *state = screen.machine().driver_data<centiped_state>();
- UINT8 *spriteram = state->m_spriteram;
+ UINT8 *spriteram = m_spriteram;
rectangle spriteclip = cliprect;
int offs;
/* draw the background */
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
/* apply the sprite clip */
- if (state->m_flipscreen)
+ if (m_flipscreen)
spriteclip.min_x += 8;
else
spriteclip.max_x -= 8;
@@ -515,7 +512,7 @@ SCREEN_UPDATE_IND16( bullsdrt )
/* draw the sprites */
for (offs = 0; offs < 0x10; offs++)
{
- int code = ((spriteram[offs] & 0x3e) >> 1) | ((spriteram[offs] & 0x01) << 6) | (state->m_bullsdrt_sprites_bank * 0x20);
+ int code = ((spriteram[offs] & 0x3e) >> 1) | ((spriteram[offs] & 0x01) << 6) | (m_bullsdrt_sprites_bank * 0x20);
int color = spriteram[offs + 0x30];
int flipy = (spriteram[offs] >> 7) & 1;
int x = spriteram[offs + 0x20];
@@ -530,18 +527,17 @@ SCREEN_UPDATE_IND16( bullsdrt )
* This varies from Centipede, in that flipx is not in
* the data, but is determined by VIDROT value at 0x2506.
*/
-SCREEN_UPDATE_IND16( milliped )
+UINT32 centiped_state::screen_update_milliped(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- centiped_state *state = screen.machine().driver_data<centiped_state>();
- UINT8 *spriteram = state->m_spriteram;
+ UINT8 *spriteram = m_spriteram;
rectangle spriteclip = cliprect;
int offs;
/* draw the background */
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
/* apply the sprite clip */
- if (state->m_flipscreen)
+ if (m_flipscreen)
spriteclip.min_x += 8;
else
spriteclip.max_x -= 8;
@@ -549,9 +545,9 @@ SCREEN_UPDATE_IND16( milliped )
/* draw the sprites */
for (offs = 0; offs < 0x10; offs++)
{
- int code = ((spriteram[offs] & 0x3e) >> 1) | ((spriteram[offs] & 0x01) << 6) | (state->m_gfx_bank << 7);
+ int code = ((spriteram[offs] & 0x3e) >> 1) | ((spriteram[offs] & 0x01) << 6) | (m_gfx_bank << 7);
int color = spriteram[offs + 0x30];
- int flipx = state->m_flipscreen;
+ int flipx = m_flipscreen;
int flipy = (spriteram[offs] & 0x80);
int x = spriteram[offs + 0x20];
int y = 240 - spriteram[offs + 0x10];
@@ -559,7 +555,7 @@ SCREEN_UPDATE_IND16( milliped )
flipy = !flipy;
}
- drawgfx_transmask(bitmap, spriteclip, screen.machine().gfx[1], code, color, flipx, flipy, x, y, state->m_penmask[color & 0x3f]);
+ drawgfx_transmask(bitmap, spriteclip, screen.machine().gfx[1], code, color, flipx, flipy, x, y, m_penmask[color & 0x3f]);
}
return 0;
}
diff --git a/src/mame/video/chaknpop.c b/src/mame/video/chaknpop.c
index b210c9fe997..f333773b429 100644
--- a/src/mame/video/chaknpop.c
+++ b/src/mame/video/chaknpop.c
@@ -253,11 +253,10 @@ static void draw_bitmap( running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( chaknpop )
+UINT32 chaknpop_state::screen_update_chaknpop(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- chaknpop_state *state = screen.machine().driver_data<chaknpop_state>();
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
draw_bitmap(screen.machine(), bitmap, cliprect);
return 0;
diff --git a/src/mame/video/champbas.c b/src/mame/video/champbas.c
index fa5249ab508..c605f464ab3 100644
--- a/src/mame/video/champbas.c
+++ b/src/mame/video/champbas.c
@@ -277,18 +277,16 @@ static void exctsccr_draw_sprites( running_machine &machine, bitmap_ind16 &bitma
-SCREEN_UPDATE_IND16( champbas )
+UINT32 champbas_state::screen_update_champbas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- champbas_state *state = screen.machine().driver_data<champbas_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
champbas_draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
-SCREEN_UPDATE_IND16( exctsccr )
+UINT32 champbas_state::screen_update_exctsccr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- champbas_state *state = screen.machine().driver_data<champbas_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
exctsccr_draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/changela.c b/src/mame/video/changela.c
index 7ed5d6cbc24..8ed79bebe9f 100644
--- a/src/mame/video/changela.c
+++ b/src/mame/video/changela.c
@@ -721,13 +721,12 @@ static TIMER_CALLBACK( changela_scanline_callback )
state->m_scanline_timer->adjust(machine.primary_screen->time_until_pos(sy), sy);
}
-SCREEN_UPDATE_IND16( changela )
+UINT32 changela_state::screen_update_changela(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- changela_state *state = screen.machine().driver_data<changela_state>();
- copybitmap(bitmap, state->m_river_bitmap, 0, 0, 0, 0, cliprect);
- copybitmap_trans(bitmap, state->m_obj0_bitmap, 0, 0, 0, 0, cliprect, 0);
- copybitmap_trans(bitmap, state->m_tree0_bitmap, 0, 0, 0, 0, cliprect, 0);
- copybitmap_trans(bitmap, state->m_tree1_bitmap, 0, 0, 0, 0, cliprect, 0);
+ copybitmap(bitmap, m_river_bitmap, 0, 0, 0, 0, cliprect);
+ copybitmap_trans(bitmap, m_obj0_bitmap, 0, 0, 0, 0, cliprect, 0);
+ copybitmap_trans(bitmap, m_tree0_bitmap, 0, 0, 0, 0, cliprect, 0);
+ copybitmap_trans(bitmap, m_tree1_bitmap, 0, 0, 0, 0, cliprect, 0);
draw_obj1(screen.machine(), bitmap);
return 0;
diff --git a/src/mame/video/cheekyms.c b/src/mame/video/cheekyms.c
index 611dfb28b28..f45e993f9de 100644
--- a/src/mame/video/cheekyms.c
+++ b/src/mame/video/cheekyms.c
@@ -145,24 +145,23 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
-SCREEN_UPDATE_IND16( cheekyms )
+UINT32 cheekyms_state::screen_update_cheekyms(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cheekyms_state *state = screen.machine().driver_data<cheekyms_state>();
int y, x;
- int scrolly = ((*state->m_port_80 >> 3) & 0x07);
- int flip = *state->m_port_80 & 0x80;
+ int scrolly = ((*m_port_80 >> 3) & 0x07);
+ int flip = *m_port_80 & 0x80;
screen.machine().tilemap().mark_all_dirty();
screen.machine().tilemap().set_flip_all(flip ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
bitmap.fill(0, cliprect);
- state->m_bitmap_buffer->fill(0, cliprect);
+ m_bitmap_buffer->fill(0, cliprect);
/* sprites go under the playfield */
draw_sprites(screen.machine(), bitmap, cliprect, screen.machine().gfx[1], flip);
/* draw the tilemap to a temp bitmap */
- state->m_cm_tilemap->draw(*state->m_bitmap_buffer, cliprect, 0, 0);
+ m_cm_tilemap->draw(*m_bitmap_buffer, cliprect, 0, 0);
/* draw the tilemap to the final bitmap applying the scroll to the man character */
for (y = cliprect.min_y; y <= cliprect.max_y; y++)
@@ -182,13 +181,13 @@ SCREEN_UPDATE_IND16( cheekyms )
if (in_man_area)
{
- if ((y + scrolly) < 27 * 8 && state->m_bitmap_buffer->pix16(y + scrolly, x) != 0)
- bitmap.pix16(y, x) = state->m_bitmap_buffer->pix16(y + scrolly, x);
+ if ((y + scrolly) < 27 * 8 && m_bitmap_buffer->pix16(y + scrolly, x) != 0)
+ bitmap.pix16(y, x) = m_bitmap_buffer->pix16(y + scrolly, x);
}
else
{
- if(state->m_bitmap_buffer->pix16(y, x) != 0)
- bitmap.pix16(y, x) = state->m_bitmap_buffer->pix16(y, x);
+ if(m_bitmap_buffer->pix16(y, x) != 0)
+ bitmap.pix16(y, x) = m_bitmap_buffer->pix16(y, x);
}
}
}
diff --git a/src/mame/video/chqflag.c b/src/mame/video/chqflag.c
index 4a5f6bc3a94..22c162f2dd8 100644
--- a/src/mame/video/chqflag.c
+++ b/src/mame/video/chqflag.c
@@ -68,16 +68,15 @@ void chqflag_state::video_start()
***************************************************************************/
-SCREEN_UPDATE_IND16( chqflag )
+UINT32 chqflag_state::screen_update_chqflag(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- chqflag_state *state = screen.machine().driver_data<chqflag_state>();
bitmap.fill(0, cliprect);
- k051316_zoom_draw(state->m_k051316_2, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
- k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 0, 0);
- k051316_zoom_draw(state->m_k051316_2, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
- k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 1, 1);
- k051316_zoom_draw(state->m_k051316_1, bitmap, cliprect, 0, 0);
+ k051316_zoom_draw(m_k051316_2, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
+ k051960_sprites_draw(m_k051960, bitmap, cliprect, 0, 0);
+ k051316_zoom_draw(m_k051316_2, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
+ k051960_sprites_draw(m_k051960, bitmap, cliprect, 1, 1);
+ k051316_zoom_draw(m_k051316_1, bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/cinemat.c b/src/mame/video/cinemat.c
index 463eb19477d..cced09493f3 100644
--- a/src/mame/video/cinemat.c
+++ b/src/mame/video/cinemat.c
@@ -207,7 +207,7 @@ VIDEO_START_MEMBER(cinemat_state,cinemat_qb3color)
*
*************************************/
-SCREEN_UPDATE_RGB32( cinemat )
+UINT32 cinemat_state::screen_update_cinemat(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
SCREEN_UPDATE32_CALL(vector);
vector_clear_list();
@@ -225,11 +225,11 @@ SCREEN_UPDATE_RGB32( cinemat )
*
*************************************/
-SCREEN_UPDATE_RGB32( spacewar )
+UINT32 cinemat_state::screen_update_spacewar(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
int sw_option = screen.machine().root_device().ioport("INPUTS")->read();
- SCREEN_UPDATE32_CALL(cinemat);
+ SCREEN_UPDATE32_CALL_MEMBER(cinemat);
/* set the state of the artwork */
output_set_value("pressed3", (~sw_option >> 0) & 1);
diff --git a/src/mame/video/circus.c b/src/mame/video/circus.c
index 5e374bbc8de..7e36c0d1030 100644
--- a/src/mame/video/circus.c
+++ b/src/mame/video/circus.c
@@ -108,10 +108,9 @@ static void circus_draw_fg( running_machine &machine, bitmap_ind16 &bitmap, cons
draw_line(bitmap, cliprect, 231, 192, 248, 192, 0);
}
-SCREEN_UPDATE_IND16( circus )
+UINT32 circus_state::screen_update_circus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- circus_state *state = screen.machine().driver_data<circus_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
circus_draw_fg(screen.machine(), bitmap, cliprect);
draw_sprite_collision(screen.machine(), bitmap, cliprect);
return 0;
@@ -179,10 +178,9 @@ static void robotbwl_draw_ball( running_machine &machine, bitmap_ind16 &bitmap,
state->m_clown_y + 8, state->m_clown_x + 8, 0);
}
-SCREEN_UPDATE_IND16( robotbwl )
+UINT32 circus_state::screen_update_robotbwl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- circus_state *state = screen.machine().driver_data<circus_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
robotbwl_draw_scoreboard(bitmap, cliprect);
robotbwl_draw_bowling_alley(bitmap, cliprect);
robotbwl_draw_ball(screen.machine(), bitmap, cliprect);
@@ -200,18 +198,16 @@ static void crash_draw_car( running_machine &machine, bitmap_ind16 &bitmap, cons
state->m_clown_y, state->m_clown_x - 1, 0);
}
-SCREEN_UPDATE_IND16( crash )
+UINT32 circus_state::screen_update_crash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- circus_state *state = screen.machine().driver_data<circus_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
crash_draw_car(screen.machine(), bitmap, cliprect);
return 0;
}
-SCREEN_UPDATE_IND16( ripcord )
+UINT32 circus_state::screen_update_ripcord(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- circus_state *state = screen.machine().driver_data<circus_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprite_collision(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/circusc.c b/src/mame/video/circusc.c
index 5f166a25118..7922789eca7 100644
--- a/src/mame/video/circusc.c
+++ b/src/mame/video/circusc.c
@@ -195,19 +195,18 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( circusc )
+UINT32 circusc_state::screen_update_circusc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- circusc_state *state = screen.machine().driver_data<circusc_state>();
int i;
for (i = 0; i < 10; i++)
- state->m_bg_tilemap->set_scrolly(i, 0);
+ m_bg_tilemap->set_scrolly(i, 0);
for (i = 10; i < 32; i++)
- state->m_bg_tilemap->set_scrolly(i, *state->m_scroll);
+ m_bg_tilemap->set_scrolly(i, *m_scroll);
bitmap.fill(0, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/cischeat.c b/src/mame/video/cischeat.c
index 9fac86ab3a8..e14d7319ec5 100644
--- a/src/mame/video/cischeat.c
+++ b/src/mame/video/cischeat.c
@@ -89,16 +89,16 @@ Note: if MAME_DEBUG is defined, pressing Z or X with:
#define cischeat_tmap_SET_SCROLL(_n_) \
- if (state->m_tmap[_n_]) \
+ if (m_tmap[_n_]) \
{ \
- state->m_tmap[_n_]->set_scrollx(0, state->m_scrollx[_n_]); \
- state->m_tmap[_n_]->set_scrolly(0, state->m_scrolly[_n_]); \
+ m_tmap[_n_]->set_scrollx(0, m_scrollx[_n_]); \
+ m_tmap[_n_]->set_scrolly(0, m_scrolly[_n_]); \
}
#define cischeat_tmap_DRAW(_n_) \
- if ( (state->m_tmap[_n_]) && (state->m_active_layers & (1 << _n_) ) ) \
+ if ( (m_tmap[_n_]) && (m_active_layers & (1 << _n_) ) ) \
{ \
- state->m_tmap[_n_]->draw(bitmap, cliprect, flag, 0 ); \
+ m_tmap[_n_]->draw(bitmap, cliprect, flag, 0 ); \
flag = 0; \
}
@@ -1227,21 +1227,20 @@ if ( screen.machine().input().code_pressed(KEYCODE_Z) || screen.machine().input(
Big Run
**************************************************************************/
-SCREEN_UPDATE_IND16( bigrun )
+UINT32 cischeat_state::screen_update_bigrun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cischeat_state *state = screen.machine().driver_data<cischeat_state>();
int i;
int active_layers1, flag;
#ifdef MAME_DEBUG
/* FAKE Videoreg */
- state->m_active_layers = state->m_vregs[0x2400/2];
- if (state->m_active_layers == 0) state->m_active_layers = 0x3f;
+ m_active_layers = m_vregs[0x2400/2];
+ if (m_active_layers == 0) m_active_layers = 0x3f;
#else
- state->m_active_layers = 0x3f;
+ m_active_layers = 0x3f;
#endif
- active_layers1 = state->m_active_layers;
+ active_layers1 = m_active_layers;
#ifdef MAME_DEBUG
CISCHEAT_LAYERSCTRL
@@ -1255,8 +1254,8 @@ SCREEN_UPDATE_IND16( bigrun )
for (i = 7; i >= 4; i--)
{ /* bitmap, road, min_priority, max_priority, transparency */
- if (state->m_active_layers & 0x10) cischeat_draw_road(screen.machine(),bitmap,cliprect,0,i,i,FALSE);
- if (state->m_active_layers & 0x20) cischeat_draw_road(screen.machine(),bitmap,cliprect,1,i,i,TRUE);
+ if (m_active_layers & 0x10) cischeat_draw_road(screen.machine(),bitmap,cliprect,0,i,i,FALSE);
+ if (m_active_layers & 0x20) cischeat_draw_road(screen.machine(),bitmap,cliprect,1,i,i,TRUE);
}
flag = 0;
@@ -1265,15 +1264,15 @@ SCREEN_UPDATE_IND16( bigrun )
for (i = 3; i >= 0; i--)
{ /* bitmap, road, min_priority, max_priority, transparency */
- if (state->m_active_layers & 0x10) cischeat_draw_road(screen.machine(),bitmap,cliprect,0,i,i,TRUE);
- if (state->m_active_layers & 0x20) cischeat_draw_road(screen.machine(),bitmap,cliprect,1,i,i,TRUE);
+ if (m_active_layers & 0x10) cischeat_draw_road(screen.machine(),bitmap,cliprect,0,i,i,TRUE);
+ if (m_active_layers & 0x20) cischeat_draw_road(screen.machine(),bitmap,cliprect,1,i,i,TRUE);
}
- if (state->m_active_layers & 0x08) bigrun_draw_sprites(screen.machine(),bitmap,cliprect,15,0);
+ if (m_active_layers & 0x08) bigrun_draw_sprites(screen.machine(),bitmap,cliprect,15,0);
cischeat_tmap_DRAW(2)
- state->m_active_layers = active_layers1;
+ m_active_layers = active_layers1;
return 0;
}
@@ -1282,20 +1281,19 @@ SCREEN_UPDATE_IND16( bigrun )
Cisco Heat
**************************************************************************/
-SCREEN_UPDATE_IND16( cischeat )
+UINT32 cischeat_state::screen_update_cischeat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cischeat_state *state = screen.machine().driver_data<cischeat_state>();
int active_layers1, flag;
#ifdef MAME_DEBUG
/* FAKE Videoreg */
- state->m_active_layers = state->m_vregs[0x2400/2];
- if (state->m_active_layers == 0) state->m_active_layers = 0x3f;
+ m_active_layers = m_vregs[0x2400/2];
+ if (m_active_layers == 0) m_active_layers = 0x3f;
#else
- state->m_active_layers = 0x3f;
+ m_active_layers = 0x3f;
#endif
- active_layers1 = state->m_active_layers;
+ active_layers1 = m_active_layers;
#ifdef MAME_DEBUG
CISCHEAT_LAYERSCTRL
@@ -1308,28 +1306,28 @@ SCREEN_UPDATE_IND16( cischeat )
bitmap.fill(0, cliprect);
/* bitmap, road, priority, transparency */
- if (state->m_active_layers & 0x10) cischeat_draw_road(screen.machine(),bitmap,cliprect,0,7,5,FALSE);
- if (state->m_active_layers & 0x20) cischeat_draw_road(screen.machine(),bitmap,cliprect,1,7,5,TRUE);
+ if (m_active_layers & 0x10) cischeat_draw_road(screen.machine(),bitmap,cliprect,0,7,5,FALSE);
+ if (m_active_layers & 0x20) cischeat_draw_road(screen.machine(),bitmap,cliprect,1,7,5,TRUE);
flag = 0;
cischeat_tmap_DRAW(0)
// else bitmap.fill(0, cliprect);
cischeat_tmap_DRAW(1)
- if (state->m_active_layers & 0x08) cischeat_draw_sprites(screen.machine(),bitmap,cliprect,15,3);
- if (state->m_active_layers & 0x10) cischeat_draw_road(screen.machine(),bitmap,cliprect,0,4,1,TRUE);
- if (state->m_active_layers & 0x20) cischeat_draw_road(screen.machine(),bitmap,cliprect,1,4,1,TRUE);
- if (state->m_active_layers & 0x08) cischeat_draw_sprites(screen.machine(),bitmap,cliprect,2,2);
- if (state->m_active_layers & 0x10) cischeat_draw_road(screen.machine(),bitmap,cliprect,0,0,0,TRUE);
- if (state->m_active_layers & 0x20) cischeat_draw_road(screen.machine(),bitmap,cliprect,1,0,0,TRUE);
- if (state->m_active_layers & 0x08) cischeat_draw_sprites(screen.machine(),bitmap,cliprect,1,0);
+ if (m_active_layers & 0x08) cischeat_draw_sprites(screen.machine(),bitmap,cliprect,15,3);
+ if (m_active_layers & 0x10) cischeat_draw_road(screen.machine(),bitmap,cliprect,0,4,1,TRUE);
+ if (m_active_layers & 0x20) cischeat_draw_road(screen.machine(),bitmap,cliprect,1,4,1,TRUE);
+ if (m_active_layers & 0x08) cischeat_draw_sprites(screen.machine(),bitmap,cliprect,2,2);
+ if (m_active_layers & 0x10) cischeat_draw_road(screen.machine(),bitmap,cliprect,0,0,0,TRUE);
+ if (m_active_layers & 0x20) cischeat_draw_road(screen.machine(),bitmap,cliprect,1,0,0,TRUE);
+ if (m_active_layers & 0x08) cischeat_draw_sprites(screen.machine(),bitmap,cliprect,1,0);
cischeat_tmap_DRAW(2)
/* for the map screen */
- if (state->m_active_layers & 0x08) cischeat_draw_sprites(screen.machine(),bitmap,cliprect,0+16,0+16);
+ if (m_active_layers & 0x08) cischeat_draw_sprites(screen.machine(),bitmap,cliprect,0+16,0+16);
- state->m_active_layers = active_layers1;
+ m_active_layers = active_layers1;
return 0;
}
@@ -1339,20 +1337,19 @@ SCREEN_UPDATE_IND16( cischeat )
F1 GrandPrix Star
**************************************************************************/
-SCREEN_UPDATE_IND16( f1gpstar )
+UINT32 cischeat_state::screen_update_f1gpstar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cischeat_state *state = screen.machine().driver_data<cischeat_state>();
int active_layers1, flag;
#ifdef MAME_DEBUG
/* FAKE Videoreg */
- state->m_active_layers = state->m_vregs[0x2400/2];
- if (state->m_active_layers == 0) state->m_active_layers = 0x3f;
+ m_active_layers = m_vregs[0x2400/2];
+ if (m_active_layers == 0) m_active_layers = 0x3f;
#else
- state->m_active_layers = 0x3f;
+ m_active_layers = 0x3f;
#endif
- active_layers1 = state->m_active_layers;
+ active_layers1 = m_active_layers;
#ifdef MAME_DEBUG
CISCHEAT_LAYERSCTRL
@@ -1367,8 +1364,8 @@ SCREEN_UPDATE_IND16( f1gpstar )
/* 1: clouds 5, grad 7, road 0 2: clouds 5, grad 7, road 0, tunnel roof 0 */
/* road 1!! 0!! */ /* bitmap, road, min_priority, max_priority, transparency */
- if (state->m_active_layers & 0x20) f1gpstar_draw_road(screen.machine(),bitmap,cliprect,1,6,7,TRUE);
- if (state->m_active_layers & 0x10) f1gpstar_draw_road(screen.machine(),bitmap,cliprect,0,6,7,TRUE);
+ if (m_active_layers & 0x20) f1gpstar_draw_road(screen.machine(),bitmap,cliprect,1,6,7,TRUE);
+ if (m_active_layers & 0x10) f1gpstar_draw_road(screen.machine(),bitmap,cliprect,0,6,7,TRUE);
flag = 0;
cischeat_tmap_DRAW(0)
@@ -1376,21 +1373,21 @@ SCREEN_UPDATE_IND16( f1gpstar )
cischeat_tmap_DRAW(1)
/* road 1!! 0!! */ /* bitmap, road, min_priority, max_priority, transparency */
- if (state->m_active_layers & 0x20) f1gpstar_draw_road(screen.machine(),bitmap,cliprect,1,1,5,TRUE);
- if (state->m_active_layers & 0x10) f1gpstar_draw_road(screen.machine(),bitmap,cliprect,0,1,5,TRUE);
+ if (m_active_layers & 0x20) f1gpstar_draw_road(screen.machine(),bitmap,cliprect,1,1,5,TRUE);
+ if (m_active_layers & 0x10) f1gpstar_draw_road(screen.machine(),bitmap,cliprect,0,1,5,TRUE);
- if (state->m_active_layers & 0x08) cischeat_draw_sprites(screen.machine(),bitmap,cliprect,15,2);
+ if (m_active_layers & 0x08) cischeat_draw_sprites(screen.machine(),bitmap,cliprect,15,2);
/* road 1!! 0!! */ /* bitmap, road, min_priority, max_priority, transparency */
- if (state->m_active_layers & 0x20) f1gpstar_draw_road(screen.machine(),bitmap,cliprect,1,0,0,TRUE);
- if (state->m_active_layers & 0x10) f1gpstar_draw_road(screen.machine(),bitmap,cliprect,0,0,0,TRUE);
+ if (m_active_layers & 0x20) f1gpstar_draw_road(screen.machine(),bitmap,cliprect,1,0,0,TRUE);
+ if (m_active_layers & 0x10) f1gpstar_draw_road(screen.machine(),bitmap,cliprect,0,0,0,TRUE);
- if (state->m_active_layers & 0x08) cischeat_draw_sprites(screen.machine(),bitmap,cliprect,1,1);
+ if (m_active_layers & 0x08) cischeat_draw_sprites(screen.machine(),bitmap,cliprect,1,1);
cischeat_tmap_DRAW(2)
- if (state->m_active_layers & 0x08) cischeat_draw_sprites(screen.machine(),bitmap,cliprect,0,0);
+ if (m_active_layers & 0x08) cischeat_draw_sprites(screen.machine(),bitmap,cliprect,0,0);
- state->m_active_layers = active_layers1;
+ m_active_layers = active_layers1;
return 0;
}
@@ -1400,36 +1397,35 @@ SCREEN_UPDATE_IND16( f1gpstar )
Scud Hammer
**************************************************************************/
-SCREEN_UPDATE_IND16( scudhamm )
+UINT32 cischeat_state::screen_update_scudhamm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cischeat_state *state = screen.machine().driver_data<cischeat_state>();
int active_layers1, flag;
- active_layers1 = state->m_active_layers;
- state->m_active_layers = 0x0d;
+ active_layers1 = m_active_layers;
+ m_active_layers = 0x0d;
#ifdef MAME_DEBUG
-state->m_debugsprites = 0;
+m_debugsprites = 0;
if ( screen.machine().input().code_pressed(KEYCODE_Z) || screen.machine().input().code_pressed(KEYCODE_X) )
{
int msk = 0;
if (screen.machine().input().code_pressed(KEYCODE_Q)) { msk |= 0x1;}
if (screen.machine().input().code_pressed(KEYCODE_W)) { msk |= 0x2;}
if (screen.machine().input().code_pressed(KEYCODE_E)) { msk |= 0x4;}
- if (screen.machine().input().code_pressed(KEYCODE_A)) { msk |= 0x8; state->m_debugsprites = 1;}
- if (screen.machine().input().code_pressed(KEYCODE_S)) { msk |= 0x8; state->m_debugsprites = 2;}
- if (screen.machine().input().code_pressed(KEYCODE_D)) { msk |= 0x8; state->m_debugsprites = 3;}
- if (screen.machine().input().code_pressed(KEYCODE_F)) { msk |= 0x8; state->m_debugsprites = 4;}
+ if (screen.machine().input().code_pressed(KEYCODE_A)) { msk |= 0x8; m_debugsprites = 1;}
+ if (screen.machine().input().code_pressed(KEYCODE_S)) { msk |= 0x8; m_debugsprites = 2;}
+ if (screen.machine().input().code_pressed(KEYCODE_D)) { msk |= 0x8; m_debugsprites = 3;}
+ if (screen.machine().input().code_pressed(KEYCODE_F)) { msk |= 0x8; m_debugsprites = 4;}
- if (msk != 0) state->m_active_layers &= msk;
+ if (msk != 0) m_active_layers &= msk;
#if 1
{
address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
popmessage("Cmd: %04X Pos:%04X Lim:%04X Inp:%04X",
- state->m_scudhamm_motor_command,
- state->scudhamm_motor_pos_r(space,0,0xffff),
- state->scudhamm_motor_status_r(space,0,0xffff),
- state->scudhamm_analog_r(space,0,0xffff) );
+ m_scudhamm_motor_command,
+ scudhamm_motor_pos_r(space,0,0xffff),
+ scudhamm_motor_status_r(space,0,0xffff),
+ scudhamm_analog_r(space,0,0xffff) );
}
#endif
@@ -1444,10 +1440,10 @@ if ( screen.machine().input().code_pressed(KEYCODE_Z) || screen.machine().input(
flag = 0;
cischeat_tmap_DRAW(0)
// no layer 1
- if (state->m_active_layers & 0x08) cischeat_draw_sprites(screen.machine(),bitmap,cliprect,0,15);
+ if (m_active_layers & 0x08) cischeat_draw_sprites(screen.machine(),bitmap,cliprect,0,15);
cischeat_tmap_DRAW(2)
- state->m_active_layers = active_layers1;
+ m_active_layers = active_layers1;
return 0;
}
diff --git a/src/mame/video/citycon.c b/src/mame/video/citycon.c
index 3e04eac9988..91c19bc0a82 100644
--- a/src/mame/video/citycon.c
+++ b/src/mame/video/citycon.c
@@ -135,15 +135,14 @@ INLINE void changecolor_RRRRGGGGBBBBxxxx( running_machine &machine, int color, i
palette_set_color_rgb(machine, color, pal4bit(data >> 12), pal4bit(data >> 8), pal4bit(data >> 4));
}
-SCREEN_UPDATE_IND16( citycon )
+UINT32 citycon_state::screen_update_citycon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- citycon_state *state = screen.machine().driver_data<citycon_state>();
int offs, scroll;
/* Update the virtual palette to support text color code changing on every scanline. */
for (offs = 0; offs < 256; offs++)
{
- int indx = state->m_linecolor[offs];
+ int indx = m_linecolor[offs];
int i;
for (i = 0; i < 4; i++)
@@ -151,13 +150,13 @@ SCREEN_UPDATE_IND16( citycon )
}
- scroll = state->m_scroll[0] * 256 + state->m_scroll[1];
- state->m_bg_tilemap->set_scrollx(0, scroll >> 1);
+ scroll = m_scroll[0] * 256 + m_scroll[1];
+ m_bg_tilemap->set_scrollx(0, scroll >> 1);
for (offs = 6; offs < 32; offs++)
- state->m_fg_tilemap->set_scrollx(offs, scroll);
+ m_fg_tilemap->set_scrollx(offs, scroll);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/cloak.c b/src/mame/video/cloak.c
index ffe28ecf548..ea1462aa758 100644
--- a/src/mame/video/cloak.c
+++ b/src/mame/video/cloak.c
@@ -222,11 +222,10 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( cloak )
+UINT32 cloak_state::screen_update_cloak(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cloak_state *state = screen.machine().driver_data<cloak_state>();
set_pens(screen.machine());
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_bitmap(screen.machine(), bitmap, cliprect);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
diff --git a/src/mame/video/cloud9.c b/src/mame/video/cloud9.c
index c544c880da7..35915d26ca5 100644
--- a/src/mame/video/cloud9.c
+++ b/src/mame/video/cloud9.c
@@ -241,16 +241,15 @@ WRITE8_MEMBER(cloud9_state::cloud9_bitmode_addr_w)
*
*************************************/
-SCREEN_UPDATE_IND16( cloud9 )
+UINT32 cloud9_state::screen_update_cloud9(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cloud9_state *state = screen.machine().driver_data<cloud9_state>();
- UINT8 *spriteaddr = state->m_spriteram;
- int flip = state->m_video_control[5] ? 0xff : 0x00; /* PLAYER2 */
+ UINT8 *spriteaddr = m_spriteram;
+ int flip = m_video_control[5] ? 0xff : 0x00; /* PLAYER2 */
pen_t black = get_black_pen(screen.machine());
int x, y, offs;
/* draw the sprites */
- state->m_spritebitmap.fill(0x00, cliprect);
+ m_spritebitmap.fill(0x00, cliprect);
for (offs = 0; offs < 0x20; offs++)
if (spriteaddr[offs + 0x00] != 0)
{
@@ -261,9 +260,9 @@ SCREEN_UPDATE_IND16( cloud9 )
int which = spriteaddr[offs + 0x20];
int color = 0;
- drawgfx_transpen(state->m_spritebitmap, cliprect, screen.machine().gfx[0], which, color, xflip, yflip, x, y, 0);
+ drawgfx_transpen(m_spritebitmap, cliprect, screen.machine().gfx[0], which, color, xflip, yflip, x, y, 0);
if (x >= 256 - 16)
- drawgfx_transpen(state->m_spritebitmap, cliprect, screen.machine().gfx[0], which, color, xflip, yflip, x - 256, y, 0);
+ drawgfx_transpen(m_spritebitmap, cliprect, screen.machine().gfx[0], which, color, xflip, yflip, x - 256, y, 0);
}
/* draw the bitmap to the screen, looping over Y */
@@ -272,7 +271,7 @@ SCREEN_UPDATE_IND16( cloud9 )
UINT16 *dst = &bitmap.pix16(y);
/* if we're in the VBLANK region, just fill with black */
- if (~state->m_syncprom[y] & 2)
+ if (~m_syncprom[y] & 2)
{
for (x = cliprect.min_x; x <= cliprect.max_x; x++)
dst[x] = black;
@@ -281,13 +280,13 @@ SCREEN_UPDATE_IND16( cloud9 )
/* non-VBLANK region: merge the sprites and the bitmap */
else
{
- UINT16 *mosrc = &state->m_spritebitmap.pix16(y);
+ UINT16 *mosrc = &m_spritebitmap.pix16(y);
int effy = y ^ flip;
UINT8 *src[2];
/* two videoram arrays */
- src[0] = &state->m_videoram[0x4000 | (effy * 64)];
- src[1] = &state->m_videoram[0x0000 | (effy * 64)];
+ src[0] = &m_videoram[0x4000 | (effy * 64)];
+ src[1] = &m_videoram[0x0000 | (effy * 64)];
/* loop over X */
for (x = cliprect.min_x; x <= cliprect.max_x; x++)
@@ -310,7 +309,7 @@ SCREEN_UPDATE_IND16( cloud9 )
pix = mopix | 0x10;
/* the high bit is the bank select */
- pix |= state->m_video_control[7] << 5;
+ pix |= m_video_control[7] << 5;
/* store the pixel value and also a priority value based on the topmost bit */
dst[x] = pix;
diff --git a/src/mame/video/clshroad.c b/src/mame/video/clshroad.c
index fff9bf22162..008043044d3 100644
--- a/src/mame/video/clshroad.c
+++ b/src/mame/video/clshroad.c
@@ -321,19 +321,18 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
***************************************************************************/
-SCREEN_UPDATE_IND16( clshroad )
+UINT32 clshroad_state::screen_update_clshroad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- clshroad_state *state = screen.machine().driver_data<clshroad_state>();
- int scrollx = state->m_vregs[ 0 ] + (state->m_vregs[ 1 ] << 8);
-// int priority = state->m_vregs[ 2 ];
+ int scrollx = m_vregs[ 0 ] + (m_vregs[ 1 ] << 8);
+// int priority = m_vregs[ 2 ];
/* Only horizontal scrolling (these 2 layers use the same value) */
- state->m_tilemap_0a->set_scrollx(0, scrollx);
- state->m_tilemap_0b->set_scrollx(0, scrollx);
+ m_tilemap_0a->set_scrollx(0, scrollx);
+ m_tilemap_0b->set_scrollx(0, scrollx);
- state->m_tilemap_0a->draw(bitmap, cliprect, 0,0); // Opaque
- state->m_tilemap_0b->draw(bitmap, cliprect, 0,0);
+ m_tilemap_0a->draw(bitmap, cliprect, 0,0); // Opaque
+ m_tilemap_0b->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(),bitmap,cliprect);
- state->m_tilemap_1->draw(bitmap, cliprect, 0,0);
+ m_tilemap_1->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/video/cninja.c b/src/mame/video/cninja.c
index 011ca542793..767127ca095 100644
--- a/src/mame/video/cninja.c
+++ b/src/mame/video/cninja.c
@@ -124,123 +124,119 @@ static void cninjabl_draw_sprites( running_machine &machine, bitmap_ind16 &bitma
/******************************************************************************/
-SCREEN_UPDATE_IND16( cninja )
+UINT32 cninja_state::screen_update_cninja(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cninja_state *state = screen.machine().driver_data<cninja_state>();
address_space &space = screen.machine().driver_data()->generic_space();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
+ UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
- state->flip_screen_set(BIT(flip, 7));
- deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
- deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
+ flip_screen_set(BIT(flip, 7));
+ deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
+ deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
/* Draw playfields */
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(512, cliprect);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 2);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 2);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 4);
- screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram->buffer(), 0x400);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 2);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 2);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 4);
+ screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400);
+ deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( cninjabl )
+UINT32 cninja_state::screen_update_cninjabl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cninja_state *state = screen.machine().driver_data<cninja_state>();
address_space &space = screen.machine().driver_data()->generic_space();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
+ UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
/* force layers to be enabled */
- deco16ic_set_enable(state->m_deco_tilegen2, 0, 1 );
- deco16ic_set_enable(state->m_deco_tilegen2, 1, 1 );
+ deco16ic_set_enable(m_deco_tilegen2, 0, 1 );
+ deco16ic_set_enable(m_deco_tilegen2, 1, 1 );
- state->flip_screen_set(BIT(flip, 7));
- deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
- deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
+ flip_screen_set(BIT(flip, 7));
+ deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
+ deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
/* Draw playfields */
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(512, cliprect);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 2);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 2);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 4);
+ deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 2);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_LAYER1, 2);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_LAYER0, 4);
cninjabl_draw_sprites(screen.machine(), bitmap, cliprect);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( edrandy )
+UINT32 cninja_state::screen_update_edrandy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cninja_state *state = screen.machine().driver_data<cninja_state>();
address_space &space = screen.machine().driver_data()->generic_space();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
+ UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
- state->flip_screen_set(BIT(flip, 7));
- deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
- deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
+ flip_screen_set(BIT(flip, 7));
+ deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
+ deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(0, cliprect);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 2);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 4);
- screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram->buffer(), 0x400);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 2);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 4);
+ screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400);
+ deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( robocop2 )
+UINT32 cninja_state::screen_update_robocop2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cninja_state *state = screen.machine().driver_data<cninja_state>();
address_space &space = screen.machine().driver_data()->generic_space();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
- UINT16 priority = decocomn_priority_r(state->m_decocomn, space, 0, 0xffff);
+ UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
+ UINT16 priority = decocomn_priority_r(m_decocomn, space, 0, 0xffff);
/* One of the tilemap chips can switch between 2 tilemaps at 4bpp, or 1 at 8bpp */
if (priority & 4)
{
- deco16ic_set_tilemap_colour_mask(state->m_deco_tilegen1, 2, 0);
- deco16ic_set_tilemap_colour_mask(state->m_deco_tilegen1, 3, 0);
- deco16ic_pf12_set_gfxbank(state->m_deco_tilegen2, 0, 4);
+ deco16ic_set_tilemap_colour_mask(m_deco_tilegen1, 2, 0);
+ deco16ic_set_tilemap_colour_mask(m_deco_tilegen1, 3, 0);
+ deco16ic_pf12_set_gfxbank(m_deco_tilegen2, 0, 4);
}
else
{
- deco16ic_set_tilemap_colour_mask(state->m_deco_tilegen1, 2, 0xf);
- deco16ic_set_tilemap_colour_mask(state->m_deco_tilegen1, 3, 0xf);
- deco16ic_pf12_set_gfxbank(state->m_deco_tilegen2, 0, 2);
+ deco16ic_set_tilemap_colour_mask(m_deco_tilegen1, 2, 0xf);
+ deco16ic_set_tilemap_colour_mask(m_deco_tilegen1, 3, 0xf);
+ deco16ic_pf12_set_gfxbank(m_deco_tilegen2, 0, 2);
}
/* Update playfields */
- state->flip_screen_set(BIT(flip, 7));
- deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
- deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
+ flip_screen_set(BIT(flip, 7));
+ deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
+ deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
/* Draw playfields */
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(0x200, cliprect);
if ((priority & 4) == 0)
- deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
+ deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
/* Switchable priority */
switch (priority & 0x8)
{
case 8:
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 2);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 4);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2);
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 4);
break;
default:
case 0:
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 2);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 4);
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 2);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 4);
break;
}
- screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram->buffer(), 0x400);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400);
+ deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
return 0;
}
@@ -250,25 +246,24 @@ VIDEO_START_MEMBER(cninja_state,mutantf)
machine().device<decospr_device>("spritegen2")->alloc_sprite_bitmap();
}
-SCREEN_UPDATE_RGB32( mutantf )
+UINT32 cninja_state::screen_update_mutantf(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- cninja_state *state = screen.machine().driver_data<cninja_state>();
address_space &space = screen.machine().driver_data()->generic_space();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
- UINT16 priority = decocomn_priority_r(state->m_decocomn, space, 0, 0xffff);
+ UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
+ UINT16 priority = decocomn_priority_r(m_decocomn, space, 0, 0xffff);
- state->flip_screen_set(BIT(flip, 7));
- deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
- deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
+ flip_screen_set(BIT(flip, 7));
+ deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
+ deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
/* Draw playfields */
bitmap.fill(0x400, cliprect); /* Confirmed */
screen.machine().device<decospr_device>("spritegen1")->set_alt_format(true);
screen.machine().device<decospr_device>("spritegen2")->set_alt_format(true);
- screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, state->m_spriteram2->buffer(), 0x400, true);
- screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, state->m_spriteram->buffer(), 0x400, true);
+ screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, m_spriteram2->buffer(), 0x400, true);
+ screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400, true);
/* There is no priority prom on this board, but there is a
@@ -282,9 +277,9 @@ SCREEN_UPDATE_RGB32( mutantf )
The other bits may control alpha blend on the 2nd sprite chip, or
layer order.
*/
- deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 0);
if (priority & 1)
@@ -297,6 +292,6 @@ SCREEN_UPDATE_RGB32( mutantf )
screen.machine().device<decospr_device>("spritegen2")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0000, 1024+768, 0x0ff, 0x80); // fixed alpha of 0x80 for this layer?
screen.machine().device<decospr_device>("spritegen1")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0000, 0x100, 0x1ff);
}
- deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/combatsc.c b/src/mame/video/combatsc.c
index 36c4f23928b..9f93e87bcc5 100644
--- a/src/mame/video/combatsc.c
+++ b/src/mame/video/combatsc.c
@@ -393,77 +393,76 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
-SCREEN_UPDATE_IND16( combatsc )
+UINT32 combatsc_state::screen_update_combatsc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- combatsc_state *state = screen.machine().driver_data<combatsc_state>();
int i;
set_pens(screen.machine());
address_space &space = screen.machine().driver_data()->generic_space();
- if (k007121_ctrlram_r(state->m_k007121_1, space, 1) & 0x02)
+ if (k007121_ctrlram_r(m_k007121_1, space, 1) & 0x02)
{
- state->m_bg_tilemap[0]->set_scroll_rows(32);
+ m_bg_tilemap[0]->set_scroll_rows(32);
for (i = 0; i < 32; i++)
- state->m_bg_tilemap[0]->set_scrollx(i, state->m_scrollram0[i]);
+ m_bg_tilemap[0]->set_scrollx(i, m_scrollram0[i]);
}
else
{
- state->m_bg_tilemap[0]->set_scroll_rows(1);
- state->m_bg_tilemap[0]->set_scrollx(0, k007121_ctrlram_r(state->m_k007121_1, space, 0) | ((k007121_ctrlram_r(state->m_k007121_1, space, 1) & 0x01) << 8));
+ m_bg_tilemap[0]->set_scroll_rows(1);
+ m_bg_tilemap[0]->set_scrollx(0, k007121_ctrlram_r(m_k007121_1, space, 0) | ((k007121_ctrlram_r(m_k007121_1, space, 1) & 0x01) << 8));
}
- if (k007121_ctrlram_r(state->m_k007121_2, space, 1) & 0x02)
+ if (k007121_ctrlram_r(m_k007121_2, space, 1) & 0x02)
{
- state->m_bg_tilemap[1]->set_scroll_rows(32);
+ m_bg_tilemap[1]->set_scroll_rows(32);
for (i = 0; i < 32; i++)
- state->m_bg_tilemap[1]->set_scrollx(i, state->m_scrollram1[i]);
+ m_bg_tilemap[1]->set_scrollx(i, m_scrollram1[i]);
}
else
{
- state->m_bg_tilemap[1]->set_scroll_rows(1);
- state->m_bg_tilemap[1]->set_scrollx(0, k007121_ctrlram_r(state->m_k007121_2, space, 0) | ((k007121_ctrlram_r(state->m_k007121_2, space, 1) & 0x01) << 8));
+ m_bg_tilemap[1]->set_scroll_rows(1);
+ m_bg_tilemap[1]->set_scrollx(0, k007121_ctrlram_r(m_k007121_2, space, 0) | ((k007121_ctrlram_r(m_k007121_2, space, 1) & 0x01) << 8));
}
- state->m_bg_tilemap[0]->set_scrolly(0, k007121_ctrlram_r(state->m_k007121_1, space, 2));
- state->m_bg_tilemap[1]->set_scrolly(0, k007121_ctrlram_r(state->m_k007121_2, space, 2));
+ m_bg_tilemap[0]->set_scrolly(0, k007121_ctrlram_r(m_k007121_1, space, 2));
+ m_bg_tilemap[1]->set_scrolly(0, k007121_ctrlram_r(m_k007121_2, space, 2));
screen.machine().priority_bitmap.fill(0, cliprect);
- if (state->m_priority == 0)
+ if (m_priority == 0)
{
- state->m_bg_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 0, 4);
- state->m_bg_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 1, 8);
- state->m_bg_tilemap[0]->draw(bitmap, cliprect, 0, 1);
- state->m_bg_tilemap[0]->draw(bitmap, cliprect, 1, 2);
+ m_bg_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 0, 4);
+ m_bg_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 1, 8);
+ m_bg_tilemap[0]->draw(bitmap, cliprect, 0, 1);
+ m_bg_tilemap[0]->draw(bitmap, cliprect, 1, 2);
/* we use the priority buffer so sprites are drawn front to back */
- draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram[1], 1, 0x0f00);
- draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram[0], 0, 0x4444);
+ draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram[1], 1, 0x0f00);
+ draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram[0], 0, 0x4444);
}
else
{
- state->m_bg_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 0, 1);
- state->m_bg_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 1, 2);
- state->m_bg_tilemap[1]->draw(bitmap, cliprect, 1, 4);
- state->m_bg_tilemap[1]->draw(bitmap, cliprect, 0, 8);
+ m_bg_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 0, 1);
+ m_bg_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 1, 2);
+ m_bg_tilemap[1]->draw(bitmap, cliprect, 1, 4);
+ m_bg_tilemap[1]->draw(bitmap, cliprect, 0, 8);
/* we use the priority buffer so sprites are drawn front to back */
- draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram[1], 1, 0x0f00);
- draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram[0], 0, 0x4444);
+ draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram[1], 1, 0x0f00);
+ draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram[0], 0, 0x4444);
}
- if (k007121_ctrlram_r(state->m_k007121_1, space, 1) & 0x08)
+ if (k007121_ctrlram_r(m_k007121_1, space, 1) & 0x08)
{
for (i = 0; i < 32; i++)
{
- state->m_textlayer->set_scrollx(i, state->m_scrollram0[0x20 + i] ? 0 : TILE_LINE_DISABLED);
- state->m_textlayer->draw(bitmap, cliprect, 0, 0);
+ m_textlayer->set_scrollx(i, m_scrollram0[0x20 + i] ? 0 : TILE_LINE_DISABLED);
+ m_textlayer->draw(bitmap, cliprect, 0, 0);
}
}
/* chop the extreme columns if necessary */
- if (k007121_ctrlram_r(state->m_k007121_1, space, 3) & 0x40)
+ if (k007121_ctrlram_r(m_k007121_1, space, 3) & 0x40)
{
rectangle clip;
@@ -552,36 +551,35 @@ static void bootleg_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap
}
}
-SCREEN_UPDATE_IND16( combatscb )
+UINT32 combatsc_state::screen_update_combatscb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- combatsc_state *state = screen.machine().driver_data<combatsc_state>();
int i;
set_pens(screen.machine());
for (i = 0; i < 32; i++)
{
- state->m_bg_tilemap[0]->set_scrollx(i, state->m_io_ram[0x040 + i] + 5);
- state->m_bg_tilemap[1]->set_scrollx(i, state->m_io_ram[0x060 + i] + 3);
+ m_bg_tilemap[0]->set_scrollx(i, m_io_ram[0x040 + i] + 5);
+ m_bg_tilemap[1]->set_scrollx(i, m_io_ram[0x060 + i] + 3);
}
- state->m_bg_tilemap[0]->set_scrolly(0, state->m_io_ram[0x000] + 1);
- state->m_bg_tilemap[1]->set_scrolly(0, state->m_io_ram[0x020] + 1);
+ m_bg_tilemap[0]->set_scrolly(0, m_io_ram[0x000] + 1);
+ m_bg_tilemap[1]->set_scrolly(0, m_io_ram[0x020] + 1);
- if (state->m_priority == 0)
+ if (m_priority == 0)
{
- state->m_bg_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- bootleg_draw_sprites(screen.machine(), bitmap,cliprect, state->m_page[0], 0);
- state->m_bg_tilemap[0]->draw(bitmap, cliprect, 0 ,0);
- bootleg_draw_sprites(screen.machine(), bitmap,cliprect, state->m_page[1], 1);
+ m_bg_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ bootleg_draw_sprites(screen.machine(), bitmap,cliprect, m_page[0], 0);
+ m_bg_tilemap[0]->draw(bitmap, cliprect, 0 ,0);
+ bootleg_draw_sprites(screen.machine(), bitmap,cliprect, m_page[1], 1);
}
else
{
- state->m_bg_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- bootleg_draw_sprites(screen.machine(), bitmap,cliprect, state->m_page[0], 0);
- state->m_bg_tilemap[1]->draw(bitmap, cliprect, 0, 0);
- bootleg_draw_sprites(screen.machine(), bitmap,cliprect, state->m_page[1], 1);
+ m_bg_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ bootleg_draw_sprites(screen.machine(), bitmap,cliprect, m_page[0], 0);
+ m_bg_tilemap[1]->draw(bitmap, cliprect, 0, 0);
+ bootleg_draw_sprites(screen.machine(), bitmap,cliprect, m_page[1], 1);
}
- state->m_textlayer->draw(bitmap, cliprect, 0, 0);
+ m_textlayer->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/commando.c b/src/mame/video/commando.c
index 5b8471925ca..c3751ba4876 100644
--- a/src/mame/video/commando.c
+++ b/src/mame/video/commando.c
@@ -126,12 +126,11 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( commando )
+UINT32 commando_state::screen_update_commando(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- commando_state *state = screen.machine().driver_data<commando_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/compgolf.c b/src/mame/video/compgolf.c
index 96a9698dce7..4b0c5ebb0e6 100644
--- a/src/mame/video/compgolf.c
+++ b/src/mame/video/compgolf.c
@@ -114,17 +114,16 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( compgolf )
+UINT32 compgolf_state::screen_update_compgolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- compgolf_state *state = screen.machine().driver_data<compgolf_state>();
- int scrollx = state->m_scrollx_hi + state->m_scrollx_lo;
- int scrolly = state->m_scrolly_hi + state->m_scrolly_lo;
+ int scrollx = m_scrollx_hi + m_scrollx_lo;
+ int scrolly = m_scrolly_hi + m_scrolly_lo;
- state->m_bg_tilemap->set_scrollx(0, scrollx);
- state->m_bg_tilemap->set_scrolly(0, scrolly);
+ m_bg_tilemap->set_scrollx(0, scrollx);
+ m_bg_tilemap->set_scrolly(0, scrolly);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_text_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_text_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/contra.c b/src/mame/video/contra.c
index cef249849ed..72deced8842 100644
--- a/src/mame/video/contra.c
+++ b/src/mame/video/contra.c
@@ -306,17 +306,16 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
k007121_sprites_draw(k007121, bitmap, cliprect, machine.gfx[bank], machine.colortable, source, base_color, 40, 0, (UINT32)-1);
}
-SCREEN_UPDATE_IND16( contra )
+UINT32 contra_state::screen_update_contra(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- contra_state *state = screen.machine().driver_data<contra_state>();
address_space &space = screen.machine().driver_data()->generic_space();
- UINT8 ctrl_1_0 = k007121_ctrlram_r(state->m_k007121_1, space, 0);
- UINT8 ctrl_1_2 = k007121_ctrlram_r(state->m_k007121_1, space, 2);
- UINT8 ctrl_2_0 = k007121_ctrlram_r(state->m_k007121_2, space, 0);
- UINT8 ctrl_2_2 = k007121_ctrlram_r(state->m_k007121_2, space, 2);
- rectangle bg_finalclip = state->m_bg_clip;
- rectangle fg_finalclip = state->m_fg_clip;
- rectangle tx_finalclip = state->m_tx_clip;
+ UINT8 ctrl_1_0 = k007121_ctrlram_r(m_k007121_1, space, 0);
+ UINT8 ctrl_1_2 = k007121_ctrlram_r(m_k007121_1, space, 2);
+ UINT8 ctrl_2_0 = k007121_ctrlram_r(m_k007121_2, space, 0);
+ UINT8 ctrl_2_2 = k007121_ctrlram_r(m_k007121_2, space, 2);
+ rectangle bg_finalclip = m_bg_clip;
+ rectangle fg_finalclip = m_fg_clip;
+ rectangle tx_finalclip = m_tx_clip;
bg_finalclip &= cliprect;
fg_finalclip &= cliprect;
@@ -324,15 +323,15 @@ SCREEN_UPDATE_IND16( contra )
set_pens(screen.machine());
- state->m_fg_tilemap->set_scrollx(0, ctrl_1_0 - 40);
- state->m_fg_tilemap->set_scrolly(0, ctrl_1_2);
- state->m_bg_tilemap->set_scrollx(0, ctrl_2_0 - 40);
- state->m_bg_tilemap->set_scrolly(0, ctrl_2_2);
+ m_fg_tilemap->set_scrollx(0, ctrl_1_0 - 40);
+ m_fg_tilemap->set_scrolly(0, ctrl_1_2);
+ m_bg_tilemap->set_scrollx(0, ctrl_2_0 - 40);
+ m_bg_tilemap->set_scrolly(0, ctrl_2_2);
- state->m_bg_tilemap->draw(bitmap, bg_finalclip, 0 ,0);
- state->m_fg_tilemap->draw(bitmap, fg_finalclip, 0 ,0);
+ m_bg_tilemap->draw(bitmap, bg_finalclip, 0 ,0);
+ m_fg_tilemap->draw(bitmap, fg_finalclip, 0 ,0);
draw_sprites(screen.machine(),bitmap,cliprect, 0);
draw_sprites(screen.machine(),bitmap,cliprect, 1);
- state->m_tx_tilemap->draw(bitmap, tx_finalclip, 0 ,0);
+ m_tx_tilemap->draw(bitmap, tx_finalclip, 0 ,0);
return 0;
}
diff --git a/src/mame/video/cop01.c b/src/mame/video/cop01.c
index 3ae6f0691d1..3ea4e1aed62 100644
--- a/src/mame/video/cop01.c
+++ b/src/mame/video/cop01.c
@@ -201,15 +201,14 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
-SCREEN_UPDATE_IND16( cop01 )
+UINT32 cop01_state::screen_update_cop01(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cop01_state *state = screen.machine().driver_data<cop01_state>();
- state->m_bg_tilemap->set_scrollx(0, state->m_vreg[1] + 256 * (state->m_vreg[2] & 1));
- state->m_bg_tilemap->set_scrolly(0, state->m_vreg[3]);
+ m_bg_tilemap->set_scrollx(0, m_vreg[1] + 256 * (m_vreg[2] & 1));
+ m_bg_tilemap->set_scrolly(0, m_vreg[3]);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0 );
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0 );
return 0;
}
diff --git a/src/mame/video/copsnrob.c b/src/mame/video/copsnrob.c
index 38469e81479..e461a7546e6 100644
--- a/src/mame/video/copsnrob.c
+++ b/src/mame/video/copsnrob.c
@@ -8,14 +8,13 @@
#include "includes/copsnrob.h"
-SCREEN_UPDATE_IND16( copsnrob )
+UINT32 copsnrob_state::screen_update_copsnrob(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- copsnrob_state *state = screen.machine().driver_data<copsnrob_state>();
int offs, x, y;
/* redrawing the entire display is faster in this case */
- for (offs = state->m_videoram.bytes(); offs >= 0; offs--)
+ for (offs = m_videoram.bytes(); offs >= 0; offs--)
{
int sx,sy;
@@ -23,36 +22,36 @@ SCREEN_UPDATE_IND16( copsnrob )
sy = offs / 32;
drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],
- state->m_videoram[offs] & 0x3f,0,
+ m_videoram[offs] & 0x3f,0,
0,0,
8*sx,8*sy);
}
/* Draw the cars. Positioning was based on a screen shot */
- if (state->m_cary[0])
+ if (m_cary[0])
drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[1],
- state->m_carimage[0],0,
+ m_carimage[0],0,
1,0,
- 0xe4,256 - state->m_cary[0],0);
+ 0xe4,256 - m_cary[0],0);
- if (state->m_cary[1])
+ if (m_cary[1])
drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[1],
- state->m_carimage[1],0,
+ m_carimage[1],0,
1,0,
- 0xc4,256 - state->m_cary[1],0);
+ 0xc4,256 - m_cary[1],0);
- if (state->m_cary[2])
+ if (m_cary[2])
drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[1],
- state->m_carimage[2],0,
+ m_carimage[2],0,
0,0,
- 0x24,256 - state->m_cary[2],0);
+ 0x24,256 - m_cary[2],0);
- if (state->m_cary[3])
+ if (m_cary[3])
drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[1],
- state->m_carimage[3],0,
+ m_carimage[3],0,
0,0,
- 0x04,256 - state->m_cary[3],0);
+ 0x04,256 - m_cary[3],0);
/* Draw the beer truck. Positioning was based on a screen shot.
@@ -70,11 +69,11 @@ SCREEN_UPDATE_IND16( copsnrob )
/* y is going up the screen, but the truck window RAM locations
go down the screen. */
- if (state->m_truckram[255 - y])
+ if (m_truckram[255 - y])
{
/* The hardware only uses the low 5 bits of the truck image line
sync register. */
- if ((state->m_trucky[0] & 0x1f) == ((y + 31) & 0x1f))
+ if ((m_trucky[0] & 0x1f) == ((y + 31) & 0x1f))
{
/* We've hit a truck's back end, so draw the truck. The front
end may be off the top of the screen, but we don't care. */
@@ -86,7 +85,7 @@ SCREEN_UPDATE_IND16( copsnrob )
truck twice. */
y += 31;
}
- else if ((state->m_trucky[0] & 0x1f) == (y & 0x1f))
+ else if ((m_trucky[0] & 0x1f) == (y & 0x1f))
{
/* We missed a truck's back end (it was off the bottom of the
screen) but have hit its front end, so draw the truck. */
@@ -107,7 +106,7 @@ SCREEN_UPDATE_IND16( copsnrob )
{
int bullet, mask1, mask2, val;
- val = state->m_bulletsram[x];
+ val = m_bulletsram[x];
// Check for the most common case
if (!(val & 0x0f))
@@ -122,7 +121,7 @@ SCREEN_UPDATE_IND16( copsnrob )
if (val & mask1)
{
for (y = cliprect.min_y; y <= cliprect.max_y; y++)
- if (state->m_bulletsram[y] & mask2)
+ if (m_bulletsram[y] & mask2)
bitmap.pix16(y, 256 - x) = 1;
}
diff --git a/src/mame/video/cosmic.c b/src/mame/video/cosmic.c
index 833f93f0671..7f3e9c2eda2 100644
--- a/src/mame/video/cosmic.c
+++ b/src/mame/video/cosmic.c
@@ -546,7 +546,7 @@ static void nomnlnd_draw_background( screen_device &screen, bitmap_ind16 &bitmap
}
-SCREEN_UPDATE_IND16( cosmicg )
+UINT32 cosmic_state::screen_update_cosmicg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(0, cliprect);
draw_bitmap(screen.machine(), bitmap, cliprect);
@@ -554,7 +554,7 @@ SCREEN_UPDATE_IND16( cosmicg )
}
-SCREEN_UPDATE_IND16( panic )
+UINT32 cosmic_state::screen_update_panic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(0, cliprect);
draw_bitmap(screen.machine(), bitmap, cliprect);
@@ -563,7 +563,7 @@ SCREEN_UPDATE_IND16( panic )
}
-SCREEN_UPDATE_IND16( cosmica )
+UINT32 cosmic_state::screen_update_cosmica(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(0, cliprect);
cosmica_draw_starfield(screen, bitmap, cliprect);
@@ -573,7 +573,7 @@ SCREEN_UPDATE_IND16( cosmica )
}
-SCREEN_UPDATE_IND16( magspot )
+UINT32 cosmic_state::screen_update_magspot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(0, cliprect);
draw_bitmap(screen.machine(), bitmap, cliprect);
@@ -582,13 +582,12 @@ SCREEN_UPDATE_IND16( magspot )
}
-SCREEN_UPDATE_IND16( devzone )
+UINT32 cosmic_state::screen_update_devzone(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cosmic_state *state = screen.machine().driver_data<cosmic_state>();
bitmap.fill(0, cliprect);
- if (state->m_background_enable)
+ if (m_background_enable)
devzone_draw_grid(screen.machine(), bitmap, cliprect);
draw_bitmap(screen.machine(), bitmap, cliprect);
@@ -597,9 +596,8 @@ SCREEN_UPDATE_IND16( devzone )
}
-SCREEN_UPDATE_IND16( nomnlnd )
+UINT32 cosmic_state::screen_update_nomnlnd(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cosmic_state *state = screen.machine().driver_data<cosmic_state>();
/* according to the video summation logic on pg4, the trees and river
have the highest priority */
@@ -608,7 +606,7 @@ SCREEN_UPDATE_IND16( nomnlnd )
draw_bitmap(screen.machine(), bitmap, cliprect);
draw_sprites(screen.machine(), bitmap, cliprect, 0x07, 0);
- if (state->m_background_enable)
+ if (m_background_enable)
nomnlnd_draw_background(screen, bitmap, cliprect);
return 0;
diff --git a/src/mame/video/cps1.c b/src/mame/video/cps1.c
index 88087173c47..53a490f10ab 100644
--- a/src/mame/video/cps1.c
+++ b/src/mame/video/cps1.c
@@ -2790,15 +2790,14 @@ static void cps1_render_high_layer( running_machine &machine, bitmap_ind16 &bitm
***************************************************************************/
-SCREEN_UPDATE_IND16( cps1 )
+UINT32 cps_state::screen_update_cps1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cps_state *state = screen.machine().driver_data<cps_state>();
int layercontrol, l0, l1, l2, l3;
- int videocontrol = state->m_cps_a_regs[CPS1_VIDEOCONTROL];
+ int videocontrol = m_cps_a_regs[CPS1_VIDEOCONTROL];
- state->flip_screen_set(videocontrol & 0x8000);
+ flip_screen_set(videocontrol & 0x8000);
- layercontrol = state->m_cps_b_regs[state->m_game_config->layer_control / 2];
+ layercontrol = m_cps_b_regs[m_game_config->layer_control / 2];
/* Get video memory base registers */
cps1_get_video_base(screen.machine());
@@ -2806,41 +2805,41 @@ SCREEN_UPDATE_IND16( cps1 )
/* Find the offset of the last sprite in the sprite table */
cps1_find_last_sprite(screen.machine());
- if (state->m_cps_version == 2)
+ if (m_cps_version == 2)
{
cps2_find_last_sprite(screen.machine());
}
cps1_update_transmasks(screen.machine());
- state->m_bg_tilemap[0]->set_scrollx(0, state->m_scroll1x);
- state->m_bg_tilemap[0]->set_scrolly(0, state->m_scroll1y);
+ m_bg_tilemap[0]->set_scrollx(0, m_scroll1x);
+ m_bg_tilemap[0]->set_scrolly(0, m_scroll1y);
if (videocontrol & 0x01) /* linescroll enable */
{
- int scrly = -state->m_scroll2y;
+ int scrly = -m_scroll2y;
int i;
int otheroffs;
- state->m_bg_tilemap[1]->set_scroll_rows(1024);
+ m_bg_tilemap[1]->set_scroll_rows(1024);
- otheroffs = state->m_cps_a_regs[CPS1_ROWSCROLL_OFFS];
+ otheroffs = m_cps_a_regs[CPS1_ROWSCROLL_OFFS];
for (i = 0; i < 256; i++)
- state->m_bg_tilemap[1]->set_scrollx((i - scrly) & 0x3ff, state->m_scroll2x + state->m_other[(i + otheroffs) & 0x3ff]);
+ m_bg_tilemap[1]->set_scrollx((i - scrly) & 0x3ff, m_scroll2x + m_other[(i + otheroffs) & 0x3ff]);
}
else
{
- state->m_bg_tilemap[1]->set_scroll_rows(1);
- state->m_bg_tilemap[1]->set_scrollx(0, state->m_scroll2x);
+ m_bg_tilemap[1]->set_scroll_rows(1);
+ m_bg_tilemap[1]->set_scrollx(0, m_scroll2x);
}
- state->m_bg_tilemap[1]->set_scrolly(0, state->m_scroll2y);
- state->m_bg_tilemap[2]->set_scrollx(0, state->m_scroll3x);
- state->m_bg_tilemap[2]->set_scrolly(0, state->m_scroll3y);
+ m_bg_tilemap[1]->set_scrolly(0, m_scroll2y);
+ m_bg_tilemap[2]->set_scrollx(0, m_scroll3x);
+ m_bg_tilemap[2]->set_scrolly(0, m_scroll3y);
/* Blank screen */
- if (state->m_cps_version == 1)
+ if (m_cps_version == 1)
{
// CPS1 games use pen 0xbff as background color; this is used in 3wonders,
// mtwins (explosion during attract), mercs (intermission).
@@ -2865,7 +2864,7 @@ SCREEN_UPDATE_IND16( cps1 )
l3 = (layercontrol >> 0x0c) & 03;
screen.machine().priority_bitmap.fill(0, cliprect);
- if (state->m_cps_version == 1)
+ if (m_cps_version == 1)
{
cps1_render_layer(screen.machine(), bitmap, cliprect, l0, 0);
@@ -2888,10 +2887,10 @@ SCREEN_UPDATE_IND16( cps1 )
{
int l0pri, l1pri, l2pri, l3pri;
int primasks[8], i;
- l0pri = (state->m_pri_ctrl >> 4 * l0) & 0x0f;
- l1pri = (state->m_pri_ctrl >> 4 * l1) & 0x0f;
- l2pri = (state->m_pri_ctrl >> 4 * l2) & 0x0f;
- l3pri = (state->m_pri_ctrl >> 4 * l3) & 0x0f;
+ l0pri = (m_pri_ctrl >> 4 * l0) & 0x0f;
+ l1pri = (m_pri_ctrl >> 4 * l1) & 0x0f;
+ l2pri = (m_pri_ctrl >> 4 * l2) & 0x0f;
+ l3pri = (m_pri_ctrl >> 4 * l3) & 0x0f;
#if 0
if ( (cps2_port(screen.machine(), CPS2_OBJ_BASE) != 0x7080 && cps2_port(screen.machine(), CPS2_OBJ_BASE) != 0x7000) ||
@@ -2942,20 +2941,19 @@ if (0 && screen.machine().input().code_pressed(KEYCODE_Z))
return 0;
}
-SCREEN_VBLANK( cps1 )
+void cps_state::screen_eof_cps1(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- cps_state *state = screen.machine().driver_data<cps_state>();
/* Get video memory base registers */
cps1_get_video_base(screen.machine());
- if (state->m_cps_version == 1)
+ if (m_cps_version == 1)
{
/* CPS1 sprites have to be delayed one frame */
- memcpy(state->m_buffered_obj, state->m_obj, state->m_obj_size);
+ memcpy(m_buffered_obj, m_obj, m_obj_size);
}
}
}
diff --git a/src/mame/video/crbaloon.c b/src/mame/video/crbaloon.c
index 2f772e3d2c6..8d10ce899b0 100644
--- a/src/mame/video/crbaloon.c
+++ b/src/mame/video/crbaloon.c
@@ -144,10 +144,9 @@ static void draw_sprite_and_check_collision(running_machine &machine, bitmap_ind
}
-SCREEN_UPDATE_IND16( crbaloon )
+UINT32 crbaloon_state::screen_update_crbaloon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- crbaloon_state *state = screen.machine().driver_data<crbaloon_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprite_and_check_collision(screen.machine(), bitmap);
diff --git a/src/mame/video/crgolf.c b/src/mame/video/crgolf.c
index add36d7d14b..6bc6acfb99b 100644
--- a/src/mame/video/crgolf.c
+++ b/src/mame/video/crgolf.c
@@ -108,10 +108,9 @@ VIDEO_START_MEMBER(crgolf_state,crgolf)
*
*************************************/
-static SCREEN_UPDATE_RGB32( crgolf )
+UINT32 crgolf_state::screen_update_crgolf(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- crgolf_state *state = screen.machine().driver_data<crgolf_state>();
- int flip = *state->m_screen_flip & 1;
+ int flip = *m_screen_flip & 1;
offs_t offs;
pen_t pens[NUM_PENS];
@@ -126,12 +125,12 @@ static SCREEN_UPDATE_RGB32( crgolf )
UINT8 y = (offs & 0x1fe0) >> 5;
UINT8 x = (offs & 0x001f) << 3;
- UINT8 data_a0 = state->m_videoram_a[0x2000 | offs];
- UINT8 data_a1 = state->m_videoram_a[0x0000 | offs];
- UINT8 data_a2 = state->m_videoram_a[0x4000 | offs];
- UINT8 data_b0 = state->m_videoram_b[0x2000 | offs];
- UINT8 data_b1 = state->m_videoram_b[0x0000 | offs];
- UINT8 data_b2 = state->m_videoram_b[0x4000 | offs];
+ UINT8 data_a0 = m_videoram_a[0x2000 | offs];
+ UINT8 data_a1 = m_videoram_a[0x0000 | offs];
+ UINT8 data_a2 = m_videoram_a[0x4000 | offs];
+ UINT8 data_b0 = m_videoram_b[0x2000 | offs];
+ UINT8 data_b1 = m_videoram_b[0x0000 | offs];
+ UINT8 data_b2 = m_videoram_b[0x4000 | offs];
if (flip)
{
@@ -146,10 +145,10 @@ static SCREEN_UPDATE_RGB32( crgolf )
UINT8 data_b = 0;
UINT8 data_a = 0;
- if (~*state->m_screena_enable & 1)
+ if (~*m_screena_enable & 1)
data_a = ((data_a0 & 0x80) >> 7) | ((data_a1 & 0x80) >> 6) | ((data_a2 & 0x80) >> 5);
- if (~*state->m_screenb_enable & 1)
+ if (~*m_screenb_enable & 1)
data_b = ((data_b0 & 0x80) >> 7) | ((data_b1 & 0x80) >> 6) | ((data_b2 & 0x80) >> 5);
/* screen A has priority over B */
@@ -159,7 +158,7 @@ static SCREEN_UPDATE_RGB32( crgolf )
color = data_b | 0x08;
/* add HI bit if enabled */
- if (*state->m_color_select)
+ if (*m_color_select)
color = color | 0x10;
bitmap.pix32(y, x) = pens[color];
@@ -197,5 +196,5 @@ MACHINE_CONFIG_FRAGMENT( crgolf_video )
MCFG_SCREEN_VISIBLE_AREA(0, 255, 8, 247)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
- MCFG_SCREEN_UPDATE_STATIC(crgolf)
+ MCFG_SCREEN_UPDATE_DRIVER(crgolf_state, screen_update_crgolf)
MACHINE_CONFIG_END
diff --git a/src/mame/video/crimfght.c b/src/mame/video/crimfght.c
index 99e45b15d8e..8dbf697e3f7 100644
--- a/src/mame/video/crimfght.c
+++ b/src/mame/video/crimfght.c
@@ -74,17 +74,16 @@ void crimfght_state::video_start()
***************************************************************************/
-SCREEN_UPDATE_IND16( crimfght )
+UINT32 crimfght_state::screen_update_crimfght(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- crimfght_state *state = screen.machine().driver_data<crimfght_state>();
- k052109_tilemap_update(state->m_k052109);
+ k052109_tilemap_update(m_k052109);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 0);
- k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 2, 2);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, 0, 0);
- k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 1, 1);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, 0, 0);
- k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 0, 0);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 0);
+ k051960_sprites_draw(m_k051960, bitmap, cliprect, 2, 2);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, 0, 0);
+ k051960_sprites_draw(m_k051960, bitmap, cliprect, 1, 1);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, 0, 0);
+ k051960_sprites_draw(m_k051960, bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/crospang.c b/src/mame/video/crospang.c
index 853c08a650c..73209c6d023 100644
--- a/src/mame/video/crospang.c
+++ b/src/mame/video/crospang.c
@@ -115,11 +115,10 @@ void crospang_state::video_start()
m_fg_layer->set_transparent_pen(0);
}
-SCREEN_UPDATE_IND16( crospang )
+UINT32 crospang_state::screen_update_crospang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- crospang_state *state = screen.machine().driver_data<crospang_state>();
- state->m_bg_layer->draw(bitmap, cliprect, 0, 0);
- state->m_fg_layer->draw(bitmap, cliprect, 0, 0);
- screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400);
+ m_bg_layer->draw(bitmap, cliprect, 0, 0);
+ m_fg_layer->draw(bitmap, cliprect, 0, 0);
+ screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
return 0;
}
diff --git a/src/mame/video/crshrace.c b/src/mame/video/crshrace.c
index 490d919579a..ffbc77b62b7 100644
--- a/src/mame/video/crshrace.c
+++ b/src/mame/video/crshrace.c
@@ -178,11 +178,10 @@ static void draw_fg(running_machine &machine, bitmap_ind16 &bitmap, const rectan
}
-SCREEN_UPDATE_IND16( crshrace )
+UINT32 crshrace_state::screen_update_crshrace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- crshrace_state *state = screen.machine().driver_data<crshrace_state>();
- if (state->m_gfxctrl & 0x04) /* display disable? */
+ if (m_gfxctrl & 0x04) /* display disable? */
{
bitmap.fill(get_black_pen(screen.machine()), cliprect);
return 0;
@@ -190,7 +189,7 @@ SCREEN_UPDATE_IND16( crshrace )
bitmap.fill(0x1ff, cliprect);
- switch (state->m_gfxctrl & 0xfb)
+ switch (m_gfxctrl & 0xfb)
{
case 0x00: /* high score screen */
draw_sprites(screen.machine(), bitmap, cliprect);
@@ -204,15 +203,14 @@ SCREEN_UPDATE_IND16( crshrace )
draw_sprites(screen.machine(), bitmap, cliprect);
break;
default:
- popmessage("gfxctrl = %02x", state->m_gfxctrl);
+ popmessage("gfxctrl = %02x", m_gfxctrl);
break;
}
return 0;
}
-SCREEN_VBLANK( crshrace )
+void crshrace_state::screen_eof_crshrace(screen_device &screen, bool state)
{
- crshrace_state *state = screen.machine().driver_data<crshrace_state>();
- state->m_spriteram->vblank_copy_rising(screen, vblank_on);
- state->m_spriteram2->vblank_copy_rising(screen, vblank_on);
+ m_spriteram->vblank_copy_rising(screen, state);
+ m_spriteram2->vblank_copy_rising(screen, state);
}
diff --git a/src/mame/video/cvs.c b/src/mame/video/cvs.c
index 10ec82329d0..7a9ca846d43 100644
--- a/src/mame/video/cvs.c
+++ b/src/mame/video/cvs.c
@@ -138,9 +138,8 @@ VIDEO_START_MEMBER(cvs_state,cvs)
}
-SCREEN_UPDATE_IND16( cvs )
+UINT32 cvs_state::screen_update_cvs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cvs_state *state = screen.machine().driver_data<cvs_state>();
static const int ram_based_char_start_indices[] = { 0xe0, 0xc0, 0x100, 0x80 };
offs_t offs;
int scroll[8];
@@ -151,15 +150,15 @@ SCREEN_UPDATE_IND16( cvs )
for (offs = 0; offs < 0x0400; offs++)
{
int collision_color = 0x100;
- UINT8 code = state->m_video_ram[offs];
- UINT8 color = state->m_color_ram[offs];
+ UINT8 code = m_video_ram[offs];
+ UINT8 color = m_color_ram[offs];
UINT8 x = offs << 3;
UINT8 y = offs >> 5 << 3;
- int gfxnum = (code < ram_based_char_start_indices[state->m_character_banking_mode]) ? 0 : 1;
+ int gfxnum = (code < ram_based_char_start_indices[m_character_banking_mode]) ? 0 : 1;
- drawgfx_opaque(state->m_background_bitmap, state->m_background_bitmap.cliprect(), screen.machine().gfx[gfxnum],
+ drawgfx_opaque(m_background_bitmap, m_background_bitmap.cliprect(), screen.machine().gfx[gfxnum],
code, color,
0, 0,
x, y);
@@ -175,7 +174,7 @@ SCREEN_UPDATE_IND16( cvs )
collision_color = 0x102;
}
- drawgfx_opaque(state->m_collision_background, state->m_collision_background.cliprect(), screen.machine().gfx[gfxnum],
+ drawgfx_opaque(m_collision_background, m_collision_background.cliprect(), screen.machine().gfx[gfxnum],
code, collision_color,
0, 0,
x, y);
@@ -184,41 +183,41 @@ SCREEN_UPDATE_IND16( cvs )
/* Update screen - 8 regions, fixed scrolling area */
scroll[0] = 0;
- scroll[1] = state->m_scroll_reg;
- scroll[2] = state->m_scroll_reg;
- scroll[3] = state->m_scroll_reg;
- scroll[4] = state->m_scroll_reg;
- scroll[5] = state->m_scroll_reg;
+ scroll[1] = m_scroll_reg;
+ scroll[2] = m_scroll_reg;
+ scroll[3] = m_scroll_reg;
+ scroll[4] = m_scroll_reg;
+ scroll[5] = m_scroll_reg;
scroll[6] = 0;
scroll[7] = 0;
- copyscrollbitmap(bitmap, state->m_background_bitmap, 0, 0, 8, scroll, cliprect);
- copyscrollbitmap(state->m_scrolled_collision_background, state->m_collision_background, 0, 0, 8, scroll, cliprect);
+ copyscrollbitmap(bitmap, m_background_bitmap, 0, 0, 8, scroll, cliprect);
+ copyscrollbitmap(m_scrolled_collision_background, m_collision_background, 0, 0, 8, scroll, cliprect);
/* update the S2636 chips */
- bitmap_ind16 &s2636_0_bitmap = s2636_update(state->m_s2636_0, cliprect);
- bitmap_ind16 &s2636_1_bitmap = s2636_update(state->m_s2636_1, cliprect);
- bitmap_ind16 &s2636_2_bitmap = s2636_update(state->m_s2636_2, cliprect);
+ bitmap_ind16 &s2636_0_bitmap = s2636_update(m_s2636_0, cliprect);
+ bitmap_ind16 &s2636_1_bitmap = s2636_update(m_s2636_1, cliprect);
+ bitmap_ind16 &s2636_2_bitmap = s2636_update(m_s2636_2, cliprect);
/* Bullet Hardware */
for (offs = 8; offs < 256; offs++ )
{
- if (state->m_bullet_ram[offs] != 0)
+ if (m_bullet_ram[offs] != 0)
{
int ct;
for (ct = 0; ct < 4; ct++)
{
- int bx = 255 - 7 - state->m_bullet_ram[offs] - ct;
+ int bx = 255 - 7 - m_bullet_ram[offs] - ct;
/* Bullet/Object Collision */
if ((s2636_0_bitmap.pix16(offs, bx) != 0) ||
(s2636_1_bitmap.pix16(offs, bx) != 0) ||
(s2636_2_bitmap.pix16(offs, bx) != 0))
- state->m_collision_register |= 0x08;
+ m_collision_register |= 0x08;
/* Bullet/Background Collision */
- if (colortable_entry_get_value(screen.machine().colortable, state->m_scrolled_collision_background.pix16(offs, bx)))
- state->m_collision_register |= 0x80;
+ if (colortable_entry_get_value(screen.machine().colortable, m_scrolled_collision_background.pix16(offs, bx)))
+ m_collision_register |= 0x80;
bitmap.pix16(offs, bx) = BULLET_STAR_PEN;
}
@@ -247,16 +246,16 @@ SCREEN_UPDATE_IND16( cvs )
bitmap.pix16(y, x) = SPRITE_PEN_BASE + S2636_PIXEL_COLOR(pixel);
/* S2636 vs. S2636 collision detection */
- if (S2636_IS_PIXEL_DRAWN(pixel0) && S2636_IS_PIXEL_DRAWN(pixel1)) state->m_collision_register |= 0x01;
- if (S2636_IS_PIXEL_DRAWN(pixel1) && S2636_IS_PIXEL_DRAWN(pixel2)) state->m_collision_register |= 0x02;
- if (S2636_IS_PIXEL_DRAWN(pixel0) && S2636_IS_PIXEL_DRAWN(pixel2)) state->m_collision_register |= 0x04;
+ if (S2636_IS_PIXEL_DRAWN(pixel0) && S2636_IS_PIXEL_DRAWN(pixel1)) m_collision_register |= 0x01;
+ if (S2636_IS_PIXEL_DRAWN(pixel1) && S2636_IS_PIXEL_DRAWN(pixel2)) m_collision_register |= 0x02;
+ if (S2636_IS_PIXEL_DRAWN(pixel0) && S2636_IS_PIXEL_DRAWN(pixel2)) m_collision_register |= 0x04;
/* S2636 vs. background collision detection */
- if (colortable_entry_get_value(screen.machine().colortable, state->m_scrolled_collision_background.pix16(y, x)))
+ if (colortable_entry_get_value(screen.machine().colortable, m_scrolled_collision_background.pix16(y, x)))
{
- if (S2636_IS_PIXEL_DRAWN(pixel0)) state->m_collision_register |= 0x10;
- if (S2636_IS_PIXEL_DRAWN(pixel1)) state->m_collision_register |= 0x20;
- if (S2636_IS_PIXEL_DRAWN(pixel2)) state->m_collision_register |= 0x40;
+ if (S2636_IS_PIXEL_DRAWN(pixel0)) m_collision_register |= 0x10;
+ if (S2636_IS_PIXEL_DRAWN(pixel1)) m_collision_register |= 0x20;
+ if (S2636_IS_PIXEL_DRAWN(pixel2)) m_collision_register |= 0x40;
}
}
}
@@ -264,7 +263,7 @@ SCREEN_UPDATE_IND16( cvs )
}
/* stars circuit */
- if (state->m_stars_on)
+ if (m_stars_on)
cvs_update_stars(screen.machine(), bitmap, cliprect, BULLET_STAR_PEN, 0);
return 0;
diff --git a/src/mame/video/cyberbal.c b/src/mame/video/cyberbal.c
index 02b2c8168d4..54e833d3134 100644
--- a/src/mame/video/cyberbal.c
+++ b/src/mame/video/cyberbal.c
@@ -377,17 +377,17 @@ static UINT32 update_one_screen(screen_device &screen, bitmap_ind16 &bitmap, con
}
-SCREEN_UPDATE_IND16( cyberbal_left )
+UINT32 cyberbal_state::screen_update_cyberbal_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return update_one_screen(screen, bitmap, cliprect, 0);
}
-SCREEN_UPDATE_IND16( cyberbal_right )
+UINT32 cyberbal_state::screen_update_cyberbal_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return update_one_screen(screen, bitmap, cliprect, 1);
}
-SCREEN_UPDATE_IND16( cyberbal2p )
+UINT32 cyberbal_state::screen_update_cyberbal2p(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return update_one_screen(screen, bitmap, cliprect, 0);
}
diff --git a/src/mame/video/darius.c b/src/mame/video/darius.c
index df83af3dfe0..9562b82f870 100644
--- a/src/mame/video/darius.c
+++ b/src/mame/video/darius.c
@@ -113,7 +113,7 @@ static UINT32 update_screen(screen_device &screen, bitmap_ind16 &bitmap, const r
return 0;
}
-SCREEN_UPDATE_IND16( darius_left ) { return update_screen(screen, bitmap, cliprect, 36 * 8 * 0); }
-SCREEN_UPDATE_IND16( darius_middle ) { return update_screen(screen, bitmap, cliprect, 36 * 8 * 1); }
-SCREEN_UPDATE_IND16( darius_right ) { return update_screen(screen, bitmap, cliprect, 36 * 8 * 2); }
+UINT32 darius_state::screen_update_darius_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8 * 0); }
+UINT32 darius_state::screen_update_darius_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8 * 1); }
+UINT32 darius_state::screen_update_darius_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8 * 2); }
diff --git a/src/mame/video/darkmist.c b/src/mame/video/darkmist.c
index daae7254cbf..7a711c352f6 100644
--- a/src/mame/video/darkmist.c
+++ b/src/mame/video/darkmist.c
@@ -127,29 +127,28 @@ void darkmist_state::video_start()
m_txtilemap->set_transparent_pen(0);
}
-SCREEN_UPDATE_IND16( darkmist)
+UINT32 darkmist_state::screen_update_darkmist(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- darkmist_state *state = screen.machine().driver_data<darkmist_state>();
- UINT8 *spriteram = state->m_spriteram;
+ UINT8 *spriteram = m_spriteram;
-#define DM_GETSCROLL(n) (((state->m_scroll[(n)]<<1)&0xff) + ((state->m_scroll[(n)]&0x80)?1:0) +( ((state->m_scroll[(n)-1]<<4) | (state->m_scroll[(n)-1]<<12) )&0xff00))
+#define DM_GETSCROLL(n) (((m_scroll[(n)]<<1)&0xff) + ((m_scroll[(n)]&0x80)?1:0) +( ((m_scroll[(n)-1]<<4) | (m_scroll[(n)-1]<<12) )&0xff00))
set_pens(screen.machine());
- state->m_bgtilemap->set_scrollx(0, DM_GETSCROLL(0x2));
- state->m_bgtilemap->set_scrolly(0, DM_GETSCROLL(0x6));
- state->m_fgtilemap->set_scrollx(0, DM_GETSCROLL(0xa));
- state->m_fgtilemap->set_scrolly(0, DM_GETSCROLL(0xe));
+ m_bgtilemap->set_scrollx(0, DM_GETSCROLL(0x2));
+ m_bgtilemap->set_scrolly(0, DM_GETSCROLL(0x6));
+ m_fgtilemap->set_scrollx(0, DM_GETSCROLL(0xa));
+ m_fgtilemap->set_scrolly(0, DM_GETSCROLL(0xe));
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- if(state->m_hw & DISPLAY_BG)
- state->m_bgtilemap->draw(bitmap, cliprect, 0,0);
+ if(m_hw & DISPLAY_BG)
+ m_bgtilemap->draw(bitmap, cliprect, 0,0);
- if(state->m_hw & DISPLAY_FG)
- state->m_fgtilemap->draw(bitmap, cliprect, 0,0);
+ if(m_hw & DISPLAY_FG)
+ m_fgtilemap->draw(bitmap, cliprect, 0,0);
- if(state->m_hw & DISPLAY_SPR)
+ if(m_hw & DISPLAY_SPR)
{
/*
Sprites
@@ -163,7 +162,7 @@ SCREEN_UPDATE_IND16( darkmist)
*/
int i,fx,fy,tile,palette;
- for(i=0;i<state->m_spriteram.bytes();i+=32)
+ for(i=0;i<m_spriteram.bytes();i+=32)
{
fy=spriteram[i+1]&0x40;
fx=spriteram[i+1]&0x80;
@@ -171,7 +170,7 @@ SCREEN_UPDATE_IND16( darkmist)
tile=spriteram[i+0];
if(spriteram[i+1]&0x20)
- tile += (*state->m_spritebank << 8);
+ tile += (*m_spritebank << 8);
palette=((spriteram[i+1])>>1)&0xf;
@@ -190,10 +189,10 @@ SCREEN_UPDATE_IND16( darkmist)
}
}
- if(state->m_hw & DISPLAY_TXT)
+ if(m_hw & DISPLAY_TXT)
{
- state->m_txtilemap->mark_all_dirty();
- state->m_txtilemap->draw(bitmap, cliprect, 0,0);
+ m_txtilemap->mark_all_dirty();
+ m_txtilemap->draw(bitmap, cliprect, 0,0);
}
diff --git a/src/mame/video/darkseal.c b/src/mame/video/darkseal.c
index 08f295c119d..d69bcbd4c88 100644
--- a/src/mame/video/darkseal.c
+++ b/src/mame/video/darkseal.c
@@ -60,22 +60,21 @@ void darkseal_state::video_start()
/******************************************************************************/
-SCREEN_UPDATE_IND16( darkseal )
+UINT32 darkseal_state::screen_update_darkseal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- darkseal_state *state = screen.machine().driver_data<darkseal_state>();
- screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
+ screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf1_rowscroll);
- deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf3_rowscroll);
+ deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf1_rowscroll);
+ deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf3_rowscroll);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 0);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, 0, 0);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
- screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram->buffer(), 0x400);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/dassault.c b/src/mame/video/dassault.c
index 3d778b29129..f7b66d8c817 100644
--- a/src/mame/video/dassault.c
+++ b/src/mame/video/dassault.c
@@ -74,35 +74,34 @@ static void mixdassaultlayer(running_machine &machine, bitmap_rgb32 &bitmap, bit
}
/* are the priorities 100% correct? they're the same as they were before conversion to DECO52 sprite device, but if (for example) you walk to the side of the crates in the first part of the game you appear over them... */
-SCREEN_UPDATE_RGB32( dassault )
+UINT32 dassault_state::screen_update_dassault(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- dassault_state *state = screen.machine().driver_data<dassault_state>();
address_space &space = screen.machine().driver_data()->generic_space();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
- UINT16 priority = decocomn_priority_r(state->m_decocomn, space, 0, 0xffff);
+ UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
+ UINT16 priority = decocomn_priority_r(m_decocomn, space, 0, 0xffff);
- screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, state->m_spriteram2->buffer(), 0x400, false);
- screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, state->m_spriteram->buffer(), 0x400, false);
+ screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, m_spriteram2->buffer(), 0x400, false);
+ screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400, false);
bitmap_ind16* sprite_bitmap1 = &screen.machine().device<decospr_device>("spritegen1")->get_sprite_temp_bitmap();
bitmap_ind16* sprite_bitmap2 = &screen.machine().device<decospr_device>("spritegen2")->get_sprite_temp_bitmap();
/* Update tilemaps */
- state->flip_screen_set(BIT(flip, 7));
- deco16ic_pf_update(state->m_deco_tilegen1, 0, state->m_pf2_rowscroll);
- deco16ic_pf_update(state->m_deco_tilegen2, 0, state->m_pf4_rowscroll);
+ flip_screen_set(BIT(flip, 7));
+ deco16ic_pf_update(m_deco_tilegen1, 0, m_pf2_rowscroll);
+ deco16ic_pf_update(m_deco_tilegen2, 0, m_pf4_rowscroll);
/* Draw playfields/update priority bitmap */
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(screen.machine().pens[3072], cliprect);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
/* The middle playfields can be swapped priority-wise */
if ((priority & 3) == 0)
{
mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect, 0x0600, 0x0600, 0x400, 0xff); // 1
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 2); // 2
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2); // 2
mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect, 0x0400, 0x0600, 0x400, 0xff); // 8
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 16); // 16
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 16); // 16
mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect, 0x0200, 0x0600, 0x400, 0xff); // 32
mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap2, cliprect, 0x0000, 0x0000, 0x800, 0x80); // 64?
mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect, 0x0000, 0x0600, 0x400, 0xff); // 128
@@ -111,19 +110,19 @@ SCREEN_UPDATE_RGB32( dassault )
else if ((priority & 3) == 1)
{
mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect, 0x0600, 0x0600, 0x400, 0xff); // 1
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 2); // 2
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 2); // 2
mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect, 0x0400, 0x0600, 0x400, 0xff); // 8
mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap2, cliprect, 0x0000, 0x0000, 0x800, 0x80); // 16?
mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect, 0x0200, 0x0600, 0x400, 0xff); // 32
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 64); // 64
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 64); // 64
mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect, 0x0000, 0x0600, 0x400, 0xff); // 128
}
else if ((priority & 3) == 3)
{
mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect, 0x0600, 0x0600, 0x400, 0xff); // 1
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 2); // 2
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 2); // 2
mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect, 0x0400, 0x0600, 0x400, 0xff); // 8
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 16); // 16
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 16); // 16
mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect, 0x0200, 0x0600, 0x400, 0xff); // 32
mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap2, cliprect, 0x0000, 0x0000, 0x800, 0x80); // 64?
mixdassaultlayer(screen.machine(), bitmap, sprite_bitmap1, cliprect, 0x0000, 0x0600, 0x400, 0xff); // 128
@@ -133,6 +132,6 @@ SCREEN_UPDATE_RGB32( dassault )
/* Unused */
}
- deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/dbz.c b/src/mame/video/dbz.c
index 2afe0b4ea90..72efa62e0ea 100644
--- a/src/mame/video/dbz.c
+++ b/src/mame/video/dbz.c
@@ -92,43 +92,42 @@ void dbz_state::video_start()
k053247_set_sprite_offs(m_k053246, -87, 32);
}
-SCREEN_UPDATE_IND16( dbz )
+UINT32 dbz_state::screen_update_dbz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dbz_state *state = screen.machine().driver_data<dbz_state>();
static const int K053251_CI[6] = { K053251_CI3, K053251_CI4, K053251_CI4, K053251_CI4, K053251_CI2, K053251_CI1 };
int layer[5], plane, new_colorbase;
- state->m_sprite_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI0);
+ m_sprite_colorbase = k053251_get_palette_index(m_k053251, K053251_CI0);
for (plane = 0; plane < 6; plane++)
{
- new_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI[plane]);
- if (state->m_layer_colorbase[plane] != new_colorbase)
+ new_colorbase = k053251_get_palette_index(m_k053251, K053251_CI[plane]);
+ if (m_layer_colorbase[plane] != new_colorbase)
{
- state->m_layer_colorbase[plane] = new_colorbase;
+ m_layer_colorbase[plane] = new_colorbase;
if (plane <= 3)
- k056832_mark_plane_dirty(state->m_k056832, plane);
+ k056832_mark_plane_dirty(m_k056832, plane);
else if (plane == 4)
- state->m_bg1_tilemap->mark_all_dirty();
+ m_bg1_tilemap->mark_all_dirty();
else if (plane == 5)
- state->m_bg2_tilemap->mark_all_dirty();
+ m_bg2_tilemap->mark_all_dirty();
}
}
//layers priority
layer[0] = 0;
- state->m_layerpri[0] = k053251_get_priority(state->m_k053251, K053251_CI3);
+ m_layerpri[0] = k053251_get_priority(m_k053251, K053251_CI3);
layer[1] = 1;
- state->m_layerpri[1] = k053251_get_priority(state->m_k053251, K053251_CI4);
+ m_layerpri[1] = k053251_get_priority(m_k053251, K053251_CI4);
layer[2] = 3;
- state->m_layerpri[2] = k053251_get_priority(state->m_k053251, K053251_CI0);
+ m_layerpri[2] = k053251_get_priority(m_k053251, K053251_CI0);
layer[3] = 4;
- state->m_layerpri[3] = k053251_get_priority(state->m_k053251, K053251_CI2);
+ m_layerpri[3] = k053251_get_priority(m_k053251, K053251_CI2);
layer[4] = 5;
- state->m_layerpri[4] = k053251_get_priority(state->m_k053251, K053251_CI1);
+ m_layerpri[4] = k053251_get_priority(m_k053251, K053251_CI1);
- konami_sortlayers5(layer, state->m_layerpri);
+ konami_sortlayers5(layer, m_layerpri);
screen.machine().priority_bitmap.fill(0, cliprect);
@@ -148,14 +147,14 @@ SCREEN_UPDATE_IND16( dbz )
}
if(layer[plane] == 4)
- k053936_zoom_draw(state->m_k053936_2, bitmap, cliprect, state->m_bg1_tilemap, flag, pri, 1);
+ k053936_zoom_draw(m_k053936_2, bitmap, cliprect, m_bg1_tilemap, flag, pri, 1);
else if(layer[plane] == 5)
- k053936_zoom_draw(state->m_k053936_1, bitmap, cliprect, state->m_bg2_tilemap, flag, pri, 1);
+ k053936_zoom_draw(m_k053936_1, bitmap, cliprect, m_bg2_tilemap, flag, pri, 1);
else
- k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, layer[plane], flag, pri);
+ k056832_tilemap_draw(m_k056832, bitmap, cliprect, layer[plane], flag, pri);
}
- k053247_sprites_draw(state->m_k053246, bitmap, cliprect);
+ k053247_sprites_draw(m_k053246, bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/dc.c b/src/mame/video/dc.c
index 9181e476aec..75d65673c14 100644
--- a/src/mame/video/dc.c
+++ b/src/mame/video/dc.c
@@ -48,10 +48,10 @@ VO_BORDER_COL
---- ---- ---- ---- xxxx xxxx ---- ---- Green
---- ---- ---- ---- ---- ---- xxxx xxxx Blue
*/
-#define vo_border_K ((state->pvrta_regs[VO_BORDER_COL] & 0x01000000) >> 24)
-#define vo_border_R ((state->pvrta_regs[VO_BORDER_COL] & 0x00ff0000) >> 16)
-#define vo_border_G ((state->pvrta_regs[VO_BORDER_COL] & 0x0000ff00) >> 8)
-#define vo_border_B ((state->pvrta_regs[VO_BORDER_COL] & 0x000000ff) >> 0)
+#define vo_border_K ((pvrta_regs[VO_BORDER_COL] & 0x01000000) >> 24)
+#define vo_border_R ((pvrta_regs[VO_BORDER_COL] & 0x00ff0000) >> 16)
+#define vo_border_G ((pvrta_regs[VO_BORDER_COL] & 0x0000ff00) >> 8)
+#define vo_border_B ((pvrta_regs[VO_BORDER_COL] & 0x000000ff) >> 0)
/*
SPG_HBLANK
@@ -92,7 +92,7 @@ VO_CONTROL
#define spg_pclk_delay ((state->pvrta_regs[VO_CONTROL] & 0x003f0000) >> 16)
#define spg_pixel_double ((state->pvrta_regs[VO_CONTROL] & 0x00000100) >> 8)
#define spg_field_mode ((state->pvrta_regs[VO_CONTROL] & 0x000000f0) >> 4)
-#define spg_blank_video ((state->pvrta_regs[VO_CONTROL] & 0x00000008) >> 3)
+#define spg_blank_video ((pvrta_regs[VO_CONTROL] & 0x00000008) >> 3)
#define spg_blank_pol ((state->pvrta_regs[VO_CONTROL] & 0x00000004) >> 2)
#define spg_vsync_pol ((state->pvrta_regs[VO_CONTROL] & 0x00000002) >> 1)
#define spg_hsync_pol ((state->pvrta_regs[VO_CONTROL] & 0x00000001) >> 0)
@@ -2637,9 +2637,8 @@ void dc_state::video_start()
}
-SCREEN_UPDATE_RGB32(dc)
+UINT32 dc_state::screen_update_dc(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- dc_state *state = screen.machine().driver_data<dc_state>();
/******************
MAME note
@@ -2681,7 +2680,7 @@ SCREEN_UPDATE_RGB32(dc)
pvr_drawframebuffer(screen.machine(),bitmap,cliprect);
// update this here so we only do string lookup once per frame
- state->debug_dip_status = screen.machine().root_device().ioport("MAMEDEBUG")->read();
+ debug_dip_status = screen.machine().root_device().ioport("MAMEDEBUG")->read();
return 0;
}
diff --git a/src/mame/video/dcheese.c b/src/mame/video/dcheese.c
index 63a4f8f7594..d4bb47825de 100644
--- a/src/mame/video/dcheese.c
+++ b/src/mame/video/dcheese.c
@@ -115,16 +115,15 @@ void dcheese_state::video_start()
*
*************************************/
-SCREEN_UPDATE_IND16( dcheese )
+UINT32 dcheese_state::screen_update_dcheese(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dcheese_state *state = screen.machine().driver_data<dcheese_state>();
int x, y;
/* update the pixels */
for (y = cliprect.min_y; y <= cliprect.max_y; y++)
{
UINT16 *dest = &bitmap.pix16(y);
- UINT16 *src = &state->m_dstbitmap->pix16((y + state->m_blitter_vidparam[0x28/2]) % DSTBITMAP_HEIGHT);
+ UINT16 *src = &m_dstbitmap->pix16((y + m_blitter_vidparam[0x28/2]) % DSTBITMAP_HEIGHT);
for (x = cliprect.min_x; x <= cliprect.max_x; x++)
dest[x] = src[x];
diff --git a/src/mame/video/dcon.c b/src/mame/video/dcon.c
index b17adfdf0d1..57c62b66c0c 100644
--- a/src/mame/video/dcon.c
+++ b/src/mame/video/dcon.c
@@ -265,63 +265,61 @@ static void draw_sprites(running_machine& machine, bitmap_ind16 &bitmap,const re
}
}
-SCREEN_UPDATE_IND16( dcon )
+UINT32 dcon_state::screen_update_dcon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dcon_state *state = screen.machine().driver_data<dcon_state>();
screen.machine().priority_bitmap.fill(0, cliprect);
/* Setup the tilemaps */
- state->m_background_layer->set_scrollx(0, state->m_scroll_ram[0] );
- state->m_background_layer->set_scrolly(0, state->m_scroll_ram[1] );
- state->m_midground_layer->set_scrollx(0, state->m_scroll_ram[2] );
- state->m_midground_layer->set_scrolly(0, state->m_scroll_ram[3] );
- state->m_foreground_layer->set_scrollx(0, state->m_scroll_ram[4] );
- state->m_foreground_layer->set_scrolly(0, state->m_scroll_ram[5] );
-
- if ((state->m_enable&1)!=1)
- state->m_background_layer->draw(bitmap, cliprect, 0,0);
+ m_background_layer->set_scrollx(0, m_scroll_ram[0] );
+ m_background_layer->set_scrolly(0, m_scroll_ram[1] );
+ m_midground_layer->set_scrollx(0, m_scroll_ram[2] );
+ m_midground_layer->set_scrolly(0, m_scroll_ram[3] );
+ m_foreground_layer->set_scrollx(0, m_scroll_ram[4] );
+ m_foreground_layer->set_scrolly(0, m_scroll_ram[5] );
+
+ if ((m_enable&1)!=1)
+ m_background_layer->draw(bitmap, cliprect, 0,0);
else
bitmap.fill(15, cliprect); /* Should always be black, not pen 15 */
- state->m_midground_layer->draw(bitmap, cliprect, 0,1);
- state->m_foreground_layer->draw(bitmap, cliprect, 0,2);
- state->m_text_layer->draw(bitmap, cliprect, 0,4);
+ m_midground_layer->draw(bitmap, cliprect, 0,1);
+ m_foreground_layer->draw(bitmap, cliprect, 0,2);
+ m_text_layer->draw(bitmap, cliprect, 0,4);
draw_sprites(screen.machine(),bitmap,cliprect);
return 0;
}
-SCREEN_UPDATE_IND16( sdgndmps )
+UINT32 dcon_state::screen_update_sdgndmps(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dcon_state *state = screen.machine().driver_data<dcon_state>();
screen.machine().priority_bitmap.fill(0, cliprect);
/* Gfx banking */
- if (state->m_last_gfx_bank!=state->m_gfx_bank_select)
+ if (m_last_gfx_bank!=m_gfx_bank_select)
{
- state->m_midground_layer->mark_all_dirty();
- state->m_last_gfx_bank=state->m_gfx_bank_select;
+ m_midground_layer->mark_all_dirty();
+ m_last_gfx_bank=m_gfx_bank_select;
}
/* Setup the tilemaps */
- state->m_background_layer->set_scrollx(0, state->m_scroll_ram[0]+128 );
- state->m_background_layer->set_scrolly(0, state->m_scroll_ram[1] );
- state->m_midground_layer->set_scrollx(0, state->m_scroll_ram[2]+128 );
- state->m_midground_layer->set_scrolly(0, state->m_scroll_ram[3] );
- state->m_foreground_layer->set_scrollx(0, state->m_scroll_ram[4]+128 );
- state->m_foreground_layer->set_scrolly(0, state->m_scroll_ram[5] );
- state->m_text_layer->set_scrollx(0, /*state->m_scroll_ram[6] + */ 128 );
- state->m_text_layer->set_scrolly(0, /*state->m_scroll_ram[7] + */ 0 );
-
- if ((state->m_enable&1)!=1)
- state->m_background_layer->draw(bitmap, cliprect, 0,0);
+ m_background_layer->set_scrollx(0, m_scroll_ram[0]+128 );
+ m_background_layer->set_scrolly(0, m_scroll_ram[1] );
+ m_midground_layer->set_scrollx(0, m_scroll_ram[2]+128 );
+ m_midground_layer->set_scrolly(0, m_scroll_ram[3] );
+ m_foreground_layer->set_scrollx(0, m_scroll_ram[4]+128 );
+ m_foreground_layer->set_scrolly(0, m_scroll_ram[5] );
+ m_text_layer->set_scrollx(0, /*m_scroll_ram[6] + */ 128 );
+ m_text_layer->set_scrolly(0, /*m_scroll_ram[7] + */ 0 );
+
+ if ((m_enable&1)!=1)
+ m_background_layer->draw(bitmap, cliprect, 0,0);
else
bitmap.fill(15, cliprect); /* Should always be black, not pen 15 */
- state->m_midground_layer->draw(bitmap, cliprect, 0,1);
- state->m_foreground_layer->draw(bitmap, cliprect, 0,2);
- state->m_text_layer->draw(bitmap, cliprect, 0,4);
+ m_midground_layer->draw(bitmap, cliprect, 0,1);
+ m_foreground_layer->draw(bitmap, cliprect, 0,2);
+ m_text_layer->draw(bitmap, cliprect, 0,4);
draw_sprites(screen.machine(),bitmap,cliprect);
return 0;
diff --git a/src/mame/video/dday.c b/src/mame/video/dday.c
index 55063eaad92..35605cc8659 100644
--- a/src/mame/video/dday.c
+++ b/src/mame/video/dday.c
@@ -303,26 +303,25 @@ WRITE8_MEMBER(dday_state::dday_control_w)
***************************************************************************/
-SCREEN_UPDATE_IND16( dday )
+UINT32 dday_state::screen_update_dday(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dday_state *state = screen.machine().driver_data<dday_state>();
- state->m_bg_tilemap->draw(state->m_main_bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
- state->m_fg_tilemap->draw(state->m_main_bitmap, cliprect, 0, 0);
- state->m_bg_tilemap->draw(state->m_main_bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
- state->m_text_tilemap->draw(state->m_main_bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(m_main_bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
+ m_fg_tilemap->draw(m_main_bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(m_main_bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
+ m_text_tilemap->draw(m_main_bitmap, cliprect, 0, 0);
- if (state->m_sl_enable)
+ if (m_sl_enable)
{
/* apply shadow */
int x, y;
- bitmap_ind16 &sl_bitmap = state->m_sl_tilemap->pixmap();
+ bitmap_ind16 &sl_bitmap = m_sl_tilemap->pixmap();
for (x = cliprect.min_x; x <= cliprect.max_x; x++)
for (y = cliprect.min_y; y <= cliprect.max_y; y++)
{
- UINT16 src_pixel = state->m_main_bitmap.pix16(y, x);
+ UINT16 src_pixel = m_main_bitmap.pix16(y, x);
if (sl_bitmap.pix16(y, x) == 0xff)
src_pixel += screen.machine().total_colors();
@@ -331,7 +330,7 @@ SCREEN_UPDATE_IND16( dday )
}
}
else
- copybitmap(bitmap, state->m_main_bitmap, 0, 0, 0, 0, cliprect);
+ copybitmap(bitmap, m_main_bitmap, 0, 0, 0, 0, cliprect);
return 0;
}
diff --git a/src/mame/video/ddragon.c b/src/mame/video/ddragon.c
index 6e1f7837b54..c3af28f2297 100644
--- a/src/mame/video/ddragon.c
+++ b/src/mame/video/ddragon.c
@@ -233,18 +233,17 @@ static void draw_sprites( running_machine& machine, bitmap_ind16 &bitmap,const r
#undef DRAW_SPRITE
-SCREEN_UPDATE_IND16( ddragon )
+UINT32 ddragon_state::screen_update_ddragon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ddragon_state *state = screen.machine().driver_data<ddragon_state>();
- int scrollx = (state->m_scrollx_hi << 8) | *state->m_scrollx_lo;
- int scrolly = (state->m_scrolly_hi << 8) | *state->m_scrolly_lo;
+ int scrollx = (m_scrollx_hi << 8) | *m_scrollx_lo;
+ int scrolly = (m_scrolly_hi << 8) | *m_scrolly_lo;
- state->m_bg_tilemap->set_scrollx(0, scrollx);
- state->m_bg_tilemap->set_scrolly(0, scrolly);
+ m_bg_tilemap->set_scrollx(0, scrollx);
+ m_bg_tilemap->set_scrolly(0, scrolly);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/ddragon3.c b/src/mame/video/ddragon3.c
index 43582b9be21..26b27e17908 100644
--- a/src/mame/video/ddragon3.c
+++ b/src/mame/video/ddragon3.c
@@ -155,55 +155,53 @@ static void draw_sprites( running_machine& machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( ddragon3 )
+UINT32 ddragon3_state::screen_update_ddragon3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ddragon3_state *state = screen.machine().driver_data<ddragon3_state>();
- state->m_bg_tilemap->set_scrollx(0, state->m_bg_scrollx);
- state->m_bg_tilemap->set_scrolly(0, state->m_bg_scrolly);
- state->m_fg_tilemap->set_scrollx(0, state->m_fg_scrollx);
- state->m_fg_tilemap->set_scrolly(0, state->m_fg_scrolly);
+ m_bg_tilemap->set_scrollx(0, m_bg_scrollx);
+ m_bg_tilemap->set_scrolly(0, m_bg_scrolly);
+ m_fg_tilemap->set_scrollx(0, m_fg_scrollx);
+ m_fg_tilemap->set_scrolly(0, m_fg_scrolly);
- if ((state->m_vreg & 0x60) == 0x40)
+ if ((m_vreg & 0x60) == 0x40)
{
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
}
- else if ((state->m_vreg & 0x60) == 0x60)
+ else if ((m_vreg & 0x60) == 0x60)
{
- state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
}
else
{
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
}
return 0;
}
-SCREEN_UPDATE_IND16( ctribe )
+UINT32 ddragon3_state::screen_update_ctribe(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ddragon3_state *state = screen.machine().driver_data<ddragon3_state>();
- state->m_bg_tilemap->set_scrollx(0, state->m_bg_scrollx);
- state->m_bg_tilemap->set_scrolly(0, state->m_bg_scrolly);
- state->m_fg_tilemap->set_scrollx(0, state->m_fg_scrollx);
- state->m_fg_tilemap->set_scrolly(0, state->m_fg_scrolly);
+ m_bg_tilemap->set_scrollx(0, m_bg_scrollx);
+ m_bg_tilemap->set_scrolly(0, m_bg_scrolly);
+ m_fg_tilemap->set_scrollx(0, m_fg_scrollx);
+ m_fg_tilemap->set_scrolly(0, m_fg_scrolly);
- if(state->m_vreg & 8)
+ if(m_vreg & 8)
{
- state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
}
else
{
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
}
return 0;
diff --git a/src/mame/video/ddribble.c b/src/mame/video/ddribble.c
index 25303031923..843f4c79793 100644
--- a/src/mame/video/ddribble.c
+++ b/src/mame/video/ddribble.c
@@ -244,23 +244,22 @@ static void draw_sprites( running_machine& machine, bitmap_ind16 &bitmap, const
***************************************************************************/
-SCREEN_UPDATE_IND16( ddribble )
+UINT32 ddribble_state::screen_update_ddribble(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ddribble_state *state = screen.machine().driver_data<ddribble_state>();
set_pens(screen.machine());
- state->m_fg_tilemap->set_flip((state->m_vregs[0][4] & 0x08) ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
- state->m_bg_tilemap->set_flip((state->m_vregs[1][4] & 0x08) ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
+ m_fg_tilemap->set_flip((m_vregs[0][4] & 0x08) ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
+ m_bg_tilemap->set_flip((m_vregs[1][4] & 0x08) ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
/* set scroll registers */
- state->m_fg_tilemap->set_scrollx(0, state->m_vregs[0][1] | ((state->m_vregs[0][2] & 0x01) << 8));
- state->m_bg_tilemap->set_scrollx(0, state->m_vregs[1][1] | ((state->m_vregs[1][2] & 0x01) << 8));
- state->m_fg_tilemap->set_scrolly(0, state->m_vregs[0][0]);
- state->m_bg_tilemap->set_scrolly(0, state->m_vregs[1][0]);
-
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram_1, 0x07d, 2, state->m_vregs[0][4] & 0x08);
- draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram_2, 0x140, 3, state->m_vregs[1][4] & 0x08);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->set_scrollx(0, m_vregs[0][1] | ((m_vregs[0][2] & 0x01) << 8));
+ m_bg_tilemap->set_scrollx(0, m_vregs[1][1] | ((m_vregs[1][2] & 0x01) << 8));
+ m_fg_tilemap->set_scrolly(0, m_vregs[0][0]);
+ m_bg_tilemap->set_scrolly(0, m_vregs[1][0]);
+
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram_1, 0x07d, 2, m_vregs[0][4] & 0x08);
+ draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram_2, 0x140, 3, m_vregs[1][4] & 0x08);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/deadang.c b/src/mame/video/deadang.c
index ed16010f65e..d0eece174aa 100644
--- a/src/mame/video/deadang.c
+++ b/src/mame/video/deadang.c
@@ -124,16 +124,15 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( deadang )
+UINT32 deadang_state::screen_update_deadang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- deadang_state *state = screen.machine().driver_data<deadang_state>();
/* Setup the tilemaps */
- state->m_pf3_layer->set_scrolly(0, ((state->m_scroll_ram[0x01]&0xf0)<<4)+((state->m_scroll_ram[0x02]&0x7f)<<1)+((state->m_scroll_ram[0x02]&0x80)>>7) );
- state->m_pf3_layer->set_scrollx(0, ((state->m_scroll_ram[0x09]&0xf0)<<4)+((state->m_scroll_ram[0x0a]&0x7f)<<1)+((state->m_scroll_ram[0x0a]&0x80)>>7) );
- state->m_pf1_layer->set_scrolly(0, ((state->m_scroll_ram[0x11]&0x10)<<4)+((state->m_scroll_ram[0x12]&0x7f)<<1)+((state->m_scroll_ram[0x12]&0x80)>>7) );
- state->m_pf1_layer->set_scrollx(0, ((state->m_scroll_ram[0x19]&0x10)<<4)+((state->m_scroll_ram[0x1a]&0x7f)<<1)+((state->m_scroll_ram[0x1a]&0x80)>>7) );
- state->m_pf2_layer->set_scrolly(0, ((state->m_scroll_ram[0x21]&0xf0)<<4)+((state->m_scroll_ram[0x22]&0x7f)<<1)+((state->m_scroll_ram[0x22]&0x80)>>7) );
- state->m_pf2_layer->set_scrollx(0, ((state->m_scroll_ram[0x29]&0xf0)<<4)+((state->m_scroll_ram[0x2a]&0x7f)<<1)+((state->m_scroll_ram[0x2a]&0x80)>>7) );
+ m_pf3_layer->set_scrolly(0, ((m_scroll_ram[0x01]&0xf0)<<4)+((m_scroll_ram[0x02]&0x7f)<<1)+((m_scroll_ram[0x02]&0x80)>>7) );
+ m_pf3_layer->set_scrollx(0, ((m_scroll_ram[0x09]&0xf0)<<4)+((m_scroll_ram[0x0a]&0x7f)<<1)+((m_scroll_ram[0x0a]&0x80)>>7) );
+ m_pf1_layer->set_scrolly(0, ((m_scroll_ram[0x11]&0x10)<<4)+((m_scroll_ram[0x12]&0x7f)<<1)+((m_scroll_ram[0x12]&0x80)>>7) );
+ m_pf1_layer->set_scrollx(0, ((m_scroll_ram[0x19]&0x10)<<4)+((m_scroll_ram[0x1a]&0x7f)<<1)+((m_scroll_ram[0x1a]&0x80)>>7) );
+ m_pf2_layer->set_scrolly(0, ((m_scroll_ram[0x21]&0xf0)<<4)+((m_scroll_ram[0x22]&0x7f)<<1)+((m_scroll_ram[0x22]&0x80)>>7) );
+ m_pf2_layer->set_scrollx(0, ((m_scroll_ram[0x29]&0xf0)<<4)+((m_scroll_ram[0x2a]&0x7f)<<1)+((m_scroll_ram[0x2a]&0x80)>>7) );
/* Control byte:
0x01: Background playfield disable
@@ -145,17 +144,17 @@ SCREEN_UPDATE_IND16( deadang )
0x40: Flipscreen
0x80: Always set?
*/
- state->m_pf3_layer->enable(!(state->m_scroll_ram[0x34]&1));
- state->m_pf1_layer->enable(!(state->m_scroll_ram[0x34]&2));
- state->m_pf2_layer->enable(!(state->m_scroll_ram[0x34]&4));
- state->flip_screen_set(state->m_scroll_ram[0x34]&0x40 );
+ m_pf3_layer->enable(!(m_scroll_ram[0x34]&1));
+ m_pf1_layer->enable(!(m_scroll_ram[0x34]&2));
+ m_pf2_layer->enable(!(m_scroll_ram[0x34]&4));
+ flip_screen_set(m_scroll_ram[0x34]&0x40 );
bitmap.fill(get_black_pen(screen.machine()), cliprect);
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_pf3_layer->draw(bitmap, cliprect, 0,1);
- state->m_pf1_layer->draw(bitmap, cliprect, 0,2);
- state->m_pf2_layer->draw(bitmap, cliprect, 0,4);
- if (!(state->m_scroll_ram[0x34]&0x10)) draw_sprites(screen.machine(),bitmap,cliprect);
- state->m_text_layer->draw(bitmap, cliprect, 0,0);
+ m_pf3_layer->draw(bitmap, cliprect, 0,1);
+ m_pf1_layer->draw(bitmap, cliprect, 0,2);
+ m_pf2_layer->draw(bitmap, cliprect, 0,4);
+ if (!(m_scroll_ram[0x34]&0x10)) draw_sprites(screen.machine(),bitmap,cliprect);
+ m_text_layer->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/video/dec0.c b/src/mame/video/dec0.c
index 94ec968bf8f..2ac4016cbae 100644
--- a/src/mame/video/dec0.c
+++ b/src/mame/video/dec0.c
@@ -44,326 +44,317 @@ WRITE16_MEMBER(dec0_state::dec0_paletteram_b_w)
/******************************************************************************/
-SCREEN_UPDATE_IND16( hbarrel )
+UINT32 dec0_state::screen_update_hbarrel(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dec0_state *state = screen.machine().driver_data<dec0_state>();
- state->flip_screen_set(state->m_tilegen1->get_flip_state());
+ flip_screen_set(m_tilegen1->get_flip_state());
- state->m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
- state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x08, 0x08, 0x0f);
- state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
+ m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x08, 0x08, 0x0f);
+ m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
/* HB always keeps pf2 on top of pf3, no need explicitly support priority register */
- state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x08, 0x00, 0x0f);
- state->m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
+ m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x08, 0x00, 0x0f);
+ m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
return 0;
}
/******************************************************************************/
-SCREEN_UPDATE_IND16( baddudes )
+UINT32 dec0_state::screen_update_baddudes(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dec0_state *state = screen.machine().driver_data<dec0_state>();
- state->flip_screen_set(state->m_tilegen1->get_flip_state());
+ flip_screen_set(m_tilegen1->get_flip_state());
/* WARNING: inverted wrt Midnight Resistance */
- if ((state->m_pri & 0x01) == 0)
+ if ((m_pri & 0x01) == 0)
{
- state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
- state->m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
- if (state->m_pri & 2)
- state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0,0x08,0x08,0x08,0x08); // upper 8 pens of upper 8 priority marked tiles /* Foreground pens only */
+ if (m_pri & 2)
+ m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0,0x08,0x08,0x08,0x08); // upper 8 pens of upper 8 priority marked tiles /* Foreground pens only */
- state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x00, 0x00, 0x0f);
+ m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x00, 0x00, 0x0f);
- if (state->m_pri & 4)
- state->m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0,0x08,0x08,0x08,0x08); // upper 8 pens of upper 8 priority marked tiles /* Foreground pens only */
+ if (m_pri & 4)
+ m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0,0x08,0x08,0x08,0x08); // upper 8 pens of upper 8 priority marked tiles /* Foreground pens only */
}
else
{
- state->m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
- state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
- if (state->m_pri & 2)
- state->m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0,0x08,0x08,0x08,0x08); // upper 8 pens of upper 8 priority marked tiles /* Foreground pens only */
+ if (m_pri & 2)
+ m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0,0x08,0x08,0x08,0x08); // upper 8 pens of upper 8 priority marked tiles /* Foreground pens only */
- state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x00, 0x00, 0x0f);
+ m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x00, 0x00, 0x0f);
- if (state->m_pri & 4)
- state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0,0x08,0x08,0x08,0x08); // upper 8 pens of upper 8 priority marked tiles /* Foreground pens only */
+ if (m_pri & 4)
+ m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0,0x08,0x08,0x08,0x08); // upper 8 pens of upper 8 priority marked tiles /* Foreground pens only */
}
- state->m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
return 0;
}
/******************************************************************************/
-SCREEN_UPDATE_IND16( robocop )
+UINT32 dec0_state::screen_update_robocop(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dec0_state *state = screen.machine().driver_data<dec0_state>();
int trans;
- state->flip_screen_set(state->m_tilegen1->get_flip_state());
+ flip_screen_set(m_tilegen1->get_flip_state());
- if (state->m_pri & 0x04)
+ if (m_pri & 0x04)
trans = 0x08;
else
trans = 0x00;
- if (state->m_pri & 0x01)
+ if (m_pri & 0x01)
{
/* WARNING: inverted wrt Midnight Resistance */
/* Robocop uses it only for the title screen, so this might be just */
/* completely wrong. The top 8 bits of the register might mean */
/* something (they are 0x80 in midres, 0x00 here) */
- state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
- if (state->m_pri & 0x02)
- state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x08, trans, 0x0f);
+ if (m_pri & 0x02)
+ m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x08, trans, 0x0f);
- state->m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
}
else
{
- state->m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
- if (state->m_pri & 0x02)
- state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x08, trans, 0x0f);
+ if (m_pri & 0x02)
+ m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x08, trans, 0x0f);
- state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
}
- if (state->m_pri & 0x02)
- state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x08, trans^0x08, 0x0f);
+ if (m_pri & 0x02)
+ m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x08, trans^0x08, 0x0f);
else
- state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x00, 0x00, 0x0f);
+ m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x00, 0x00, 0x0f);
- state->m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
return 0;
}
-SCREEN_UPDATE_IND16( automat )
+UINT32 dec0_automat_state::screen_update_automat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dec0_automat_state *state = screen.machine().driver_data<dec0_automat_state>();
int trans;
// layer enables seem different... where are they?
// the bootleg doesn't write these registers, I think they're hardcoded?, so fake them for compatibility with our implementation..
address_space &space = screen.machine().driver_data()->generic_space();
- deco_bac06_pf_control_0_w(state->m_tilegen1,space,0,0x0003, 0x00ff); // 8x8
- deco_bac06_pf_control_0_w(state->m_tilegen1,space,1,0x0003, 0x00ff);
- deco_bac06_pf_control_0_w(state->m_tilegen1,space,2,0x0000, 0x00ff);
- deco_bac06_pf_control_0_w(state->m_tilegen1,space,3,0x0001, 0x00ff); // dimensions
+ deco_bac06_pf_control_0_w(m_tilegen1,space,0,0x0003, 0x00ff); // 8x8
+ deco_bac06_pf_control_0_w(m_tilegen1,space,1,0x0003, 0x00ff);
+ deco_bac06_pf_control_0_w(m_tilegen1,space,2,0x0000, 0x00ff);
+ deco_bac06_pf_control_0_w(m_tilegen1,space,3,0x0001, 0x00ff); // dimensions
- deco_bac06_pf_control_0_w(state->m_tilegen2,space,0,0x0082, 0x00ff); // 16x16
- deco_bac06_pf_control_0_w(state->m_tilegen2,space,1,0x0000, 0x00ff);
- deco_bac06_pf_control_0_w(state->m_tilegen2,space,2,0x0000, 0x00ff);
- deco_bac06_pf_control_0_w(state->m_tilegen2,space,3,0x0001, 0x00ff); // dimensions
+ deco_bac06_pf_control_0_w(m_tilegen2,space,0,0x0082, 0x00ff); // 16x16
+ deco_bac06_pf_control_0_w(m_tilegen2,space,1,0x0000, 0x00ff);
+ deco_bac06_pf_control_0_w(m_tilegen2,space,2,0x0000, 0x00ff);
+ deco_bac06_pf_control_0_w(m_tilegen2,space,3,0x0001, 0x00ff); // dimensions
- deco_bac06_pf_control_0_w(state->m_tilegen3,space,0,0x0082, 0x00ff); // 16x16
- deco_bac06_pf_control_0_w(state->m_tilegen3,space,1,0x0003, 0x00ff);
- deco_bac06_pf_control_0_w(state->m_tilegen3,space,2,0x0000, 0x00ff);
- deco_bac06_pf_control_0_w(state->m_tilegen3,space,3,0x0001, 0x00ff); // dimensions
+ deco_bac06_pf_control_0_w(m_tilegen3,space,0,0x0082, 0x00ff); // 16x16
+ deco_bac06_pf_control_0_w(m_tilegen3,space,1,0x0003, 0x00ff);
+ deco_bac06_pf_control_0_w(m_tilegen3,space,2,0x0000, 0x00ff);
+ deco_bac06_pf_control_0_w(m_tilegen3,space,3,0x0001, 0x00ff); // dimensions
// scroll registers got written elsewhere, copy them across
- deco_bac06_pf_control_1_w(state->m_tilegen1,space,0,0x0000, 0xffff); // no scroll?
- deco_bac06_pf_control_1_w(state->m_tilegen1,space,1,0x0000, 0xffff); // no scroll?
+ deco_bac06_pf_control_1_w(m_tilegen1,space,0,0x0000, 0xffff); // no scroll?
+ deco_bac06_pf_control_1_w(m_tilegen1,space,1,0x0000, 0xffff); // no scroll?
- deco_bac06_pf_control_1_w(state->m_tilegen2,space,0,state->m_automat_scroll_regs[3] - 0x010a, 0xffff);
- deco_bac06_pf_control_1_w(state->m_tilegen2,space,1,state->m_automat_scroll_regs[2], 0xffff);
+ deco_bac06_pf_control_1_w(m_tilegen2,space,0,m_automat_scroll_regs[3] - 0x010a, 0xffff);
+ deco_bac06_pf_control_1_w(m_tilegen2,space,1,m_automat_scroll_regs[2], 0xffff);
- deco_bac06_pf_control_1_w(state->m_tilegen3,space,0,state->m_automat_scroll_regs[1] - 0x0108, 0xffff);
- deco_bac06_pf_control_1_w(state->m_tilegen3,space,1,state->m_automat_scroll_regs[0], 0xffff);
+ deco_bac06_pf_control_1_w(m_tilegen3,space,0,m_automat_scroll_regs[1] - 0x0108, 0xffff);
+ deco_bac06_pf_control_1_w(m_tilegen3,space,1,m_automat_scroll_regs[0], 0xffff);
- state->flip_screen_set(state->m_tilegen1->get_flip_state());
+ flip_screen_set(m_tilegen1->get_flip_state());
- if (state->m_pri & 0x04)
+ if (m_pri & 0x04)
trans = 0x08;
else
trans = 0x00;
- if (state->m_pri & 0x01)
+ if (m_pri & 0x01)
{
- state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
- if (state->m_pri & 0x02)
- state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x08, trans, 0x0f);
+ if (m_pri & 0x02)
+ m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x08, trans, 0x0f);
- state->m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
}
else
{
- state->m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
- if (state->m_pri & 0x02)
- state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x08, trans, 0x0f);
+ if (m_pri & 0x02)
+ m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x08, trans, 0x0f);
- state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
}
- if (state->m_pri & 0x02)
- state->m_spritegen->draw_sprites_bootleg(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x08, trans^0x08, 0x0f);
+ if (m_pri & 0x02)
+ m_spritegen->draw_sprites_bootleg(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x08, trans^0x08, 0x0f);
else
- state->m_spritegen->draw_sprites_bootleg(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x00, 0x00, 0x0f);
+ m_spritegen->draw_sprites_bootleg(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x00, 0x00, 0x0f);
- state->m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
return 0;
}
-SCREEN_UPDATE_IND16( secretab )
+UINT32 dec0_automat_state::screen_update_secretab(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dec0_automat_state *state = screen.machine().driver_data<dec0_automat_state>();
// layer enables seem different... where are they?
// the bootleg doesn't write these registers, I think they're hardcoded?, so fake them for compatibility with our implementation..
address_space &space = screen.machine().driver_data()->generic_space();
- deco_bac06_pf_control_0_w(state->m_tilegen1,space,0,0x0003, 0x00ff); // 8x8
- deco_bac06_pf_control_0_w(state->m_tilegen1,space,1,0x0003, 0x00ff);
- deco_bac06_pf_control_0_w(state->m_tilegen1,space,2,0x0000, 0x00ff);
- deco_bac06_pf_control_0_w(state->m_tilegen1,space,3,0x0001, 0x00ff); // dimensions
+ deco_bac06_pf_control_0_w(m_tilegen1,space,0,0x0003, 0x00ff); // 8x8
+ deco_bac06_pf_control_0_w(m_tilegen1,space,1,0x0003, 0x00ff);
+ deco_bac06_pf_control_0_w(m_tilegen1,space,2,0x0000, 0x00ff);
+ deco_bac06_pf_control_0_w(m_tilegen1,space,3,0x0001, 0x00ff); // dimensions
- deco_bac06_pf_control_0_w(state->m_tilegen2,space,0,0x0082, 0x00ff); // 16x16
- deco_bac06_pf_control_0_w(state->m_tilegen2,space,1,0x0000, 0x00ff);
- deco_bac06_pf_control_0_w(state->m_tilegen2,space,2,0x0000, 0x00ff);
- deco_bac06_pf_control_0_w(state->m_tilegen2,space,3,0x0001, 0x00ff); // dimensions
+ deco_bac06_pf_control_0_w(m_tilegen2,space,0,0x0082, 0x00ff); // 16x16
+ deco_bac06_pf_control_0_w(m_tilegen2,space,1,0x0000, 0x00ff);
+ deco_bac06_pf_control_0_w(m_tilegen2,space,2,0x0000, 0x00ff);
+ deco_bac06_pf_control_0_w(m_tilegen2,space,3,0x0001, 0x00ff); // dimensions
- deco_bac06_pf_control_0_w(state->m_tilegen3,space,0,0x0082, 0x00ff); // 16x16
- deco_bac06_pf_control_0_w(state->m_tilegen3,space,1,0x0003, 0x00ff);
- deco_bac06_pf_control_0_w(state->m_tilegen3,space,2,0x0000, 0x00ff);
- deco_bac06_pf_control_0_w(state->m_tilegen3,space,3,0x0001, 0x00ff); // dimensions
+ deco_bac06_pf_control_0_w(m_tilegen3,space,0,0x0082, 0x00ff); // 16x16
+ deco_bac06_pf_control_0_w(m_tilegen3,space,1,0x0003, 0x00ff);
+ deco_bac06_pf_control_0_w(m_tilegen3,space,2,0x0000, 0x00ff);
+ deco_bac06_pf_control_0_w(m_tilegen3,space,3,0x0001, 0x00ff); // dimensions
// scroll registers got written elsewhere, copy them across
- deco_bac06_pf_control_1_w(state->m_tilegen1,space,0,0x0000, 0xffff); // no scroll?
- deco_bac06_pf_control_1_w(state->m_tilegen1,space,1,0x0000, 0xffff); // no scroll?
+ deco_bac06_pf_control_1_w(m_tilegen1,space,0,0x0000, 0xffff); // no scroll?
+ deco_bac06_pf_control_1_w(m_tilegen1,space,1,0x0000, 0xffff); // no scroll?
- deco_bac06_pf_control_1_w(state->m_tilegen2,space,0,state->m_automat_scroll_regs[3] - 0x010a, 0xffff);
- deco_bac06_pf_control_1_w(state->m_tilegen2,space,1,state->m_automat_scroll_regs[2], 0xffff);
+ deco_bac06_pf_control_1_w(m_tilegen2,space,0,m_automat_scroll_regs[3] - 0x010a, 0xffff);
+ deco_bac06_pf_control_1_w(m_tilegen2,space,1,m_automat_scroll_regs[2], 0xffff);
- deco_bac06_pf_control_1_w(state->m_tilegen3,space,0,state->m_automat_scroll_regs[1] - 0x0108, 0xffff);
- deco_bac06_pf_control_1_w(state->m_tilegen3,space,1,state->m_automat_scroll_regs[0], 0xffff);
+ deco_bac06_pf_control_1_w(m_tilegen3,space,0,m_automat_scroll_regs[1] - 0x0108, 0xffff);
+ deco_bac06_pf_control_1_w(m_tilegen3,space,1,m_automat_scroll_regs[0], 0xffff);
- state->flip_screen_set(state->m_tilegen1->get_flip_state());
+ flip_screen_set(m_tilegen1->get_flip_state());
- state->m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
- state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
- state->m_spritegen->draw_sprites_bootleg(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x00, 0x00, 0x0f);
+ m_spritegen->draw_sprites_bootleg(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x00, 0x00, 0x0f);
/* Redraw top 8 pens of top 8 palettes over sprites */
- if (state->m_pri&0x80)
- state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0,0x08,0x08,0x08,0x08); // upper 8 pens of upper 8 priority marked tiles
+ if (m_pri&0x80)
+ m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0,0x08,0x08,0x08,0x08); // upper 8 pens of upper 8 priority marked tiles
- state->m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
return 0;
}
/******************************************************************************/
-SCREEN_UPDATE_IND16( birdtry )
+UINT32 dec0_state::screen_update_birdtry(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dec0_state *state = screen.machine().driver_data<dec0_state>();
- state->flip_screen_set(state->m_tilegen1->get_flip_state());
+ flip_screen_set(m_tilegen1->get_flip_state());
/* This game doesn't have the extra playfield chip on the game board, but
the palette does show through. */
bitmap.fill(screen.machine().pens[768], cliprect);
- state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
- state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x00, 0x00, 0x0f);
- state->m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
+ m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x00, 0x00, 0x0f);
+ m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
return 0;
}
/******************************************************************************/
-SCREEN_UPDATE_IND16( hippodrm )
+UINT32 dec0_state::screen_update_hippodrm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dec0_state *state = screen.machine().driver_data<dec0_state>();
- state->flip_screen_set(state->m_tilegen1->get_flip_state());
+ flip_screen_set(m_tilegen1->get_flip_state());
- if (state->m_pri & 0x01)
+ if (m_pri & 0x01)
{
- state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
- state->m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
}
else
{
- state->m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
- state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
}
- state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x00, 0x00, 0x0f);
- state->m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
+ m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x00, 0x00, 0x0f);
+ m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
return 0;
}
/******************************************************************************/
-SCREEN_UPDATE_IND16( slyspy )
+UINT32 dec0_state::screen_update_slyspy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dec0_state *state = screen.machine().driver_data<dec0_state>();
- state->flip_screen_set(state->m_tilegen1->get_flip_state());
+ flip_screen_set(m_tilegen1->get_flip_state());
- state->m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
- state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
- state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x00, 0x00, 0x0f);
+ m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x00, 0x00, 0x0f);
/* Redraw top 8 pens of top 8 palettes over sprites */
- if (state->m_pri&0x80)
- state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0,0x08,0x08,0x08,0x08); // upper 8 pens of upper 8 priority marked tiles
+ if (m_pri&0x80)
+ m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0,0x08,0x08,0x08,0x08); // upper 8 pens of upper 8 priority marked tiles
- state->m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
return 0;
}
/******************************************************************************/
-SCREEN_UPDATE_IND16( midres )
+UINT32 dec0_state::screen_update_midres(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dec0_state *state = screen.machine().driver_data<dec0_state>();
int trans;
- state->flip_screen_set(state->m_tilegen1->get_flip_state());
+ flip_screen_set(m_tilegen1->get_flip_state());
- if (state->m_pri & 0x04)
+ if (m_pri & 0x04)
trans = 0x00;
else trans = 0x08;
- if (state->m_pri & 0x01)
+ if (m_pri & 0x01)
{
- state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
- if (state->m_pri & 0x02)
- state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x08, trans, 0x0f);
+ if (m_pri & 0x02)
+ m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x08, trans, 0x0f);
- state->m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
}
else
{
- state->m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen3->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
- if (state->m_pri & 0x02)
- state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x08, trans, 0x0f);
+ if (m_pri & 0x02)
+ m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x08, trans, 0x0f);
- state->m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen2->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
}
- if (state->m_pri & 0x02)
- state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x08, trans ^ 0x08, 0x0f);
+ if (m_pri & 0x02)
+ m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x08, trans ^ 0x08, 0x0f);
else
- state->m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram, 0x00, 0x00, 0x0f);
+ m_spritegen->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram, 0x00, 0x00, 0x0f);
- state->m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
+ m_tilegen1->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
return 0;
}
diff --git a/src/mame/video/dec8.c b/src/mame/video/dec8.c
index 91d17067c49..dff2c6fd915 100644
--- a/src/mame/video/dec8.c
+++ b/src/mame/video/dec8.c
@@ -263,17 +263,16 @@ static void srdarwin_draw_sprites( running_machine& machine, bitmap_ind16 &bitma
/******************************************************************************/
-SCREEN_UPDATE_IND16( cobracom )
+UINT32 dec8_state::screen_update_cobracom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dec8_state *state = screen.machine().driver_data<dec8_state>();
- state->flip_screen_set(state->m_bg_control[0] >> 7);
+ flip_screen_set(m_bg_control[0] >> 7);
screen.machine().device<deco_bac06_device>("tilegen1")->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
- screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram16, 0x04, 0x00, 0x03);
+ screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram16, 0x04, 0x00, 0x03);
screen.machine().device<deco_bac06_device>("tilegen2")->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
- screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram16, 0x04, 0x04, 0x03);
- state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
+ screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram16, 0x04, 0x04, 0x03);
+ m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -307,12 +306,11 @@ VIDEO_START_MEMBER(dec8_state,cobracom)
/******************************************************************************/
-SCREEN_UPDATE_IND16( ghostb )
+UINT32 dec8_state::screen_update_ghostb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dec8_state *state = screen.machine().driver_data<dec8_state>();
screen.machine().device<deco_bac06_device>("tilegen1")->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
- screen.machine().device<deco_karnovsprites_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram16, 0x400, 0);
- state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
+ screen.machine().device<deco_karnovsprites_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram16, 0x400, 0);
+ m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -340,16 +338,15 @@ VIDEO_START_MEMBER(dec8_state,ghostb)
/******************************************************************************/
-SCREEN_UPDATE_IND16( oscar )
+UINT32 dec8_state::screen_update_oscar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dec8_state *state = screen.machine().driver_data<dec8_state>();
- state->flip_screen_set(state->m_bg_control[1] >> 7);
+ flip_screen_set(m_bg_control[1] >> 7);
// we mimic the priority scheme in dec0.c, this was originally a bit different, so this could be wrong
screen.machine().device<deco_bac06_device>("tilegen1")->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
- screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram16, 0x00, 0x00, 0x0f);
+ screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram16, 0x00, 0x00, 0x0f);
screen.machine().device<deco_bac06_device>("tilegen1")->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x08,0x08,0x08,0x08);
- state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -379,30 +376,28 @@ VIDEO_START_MEMBER(dec8_state,oscar)
/******************************************************************************/
-SCREEN_UPDATE_IND16( lastmisn )
+UINT32 dec8_state::screen_update_lastmisn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dec8_state *state = screen.machine().driver_data<dec8_state>();
- state->m_bg_tilemap->set_scrollx(0, ((state->m_scroll2[0] << 8)+ state->m_scroll2[1]));
- state->m_bg_tilemap->set_scrolly(0, ((state->m_scroll2[2] << 8)+ state->m_scroll2[3]));
+ m_bg_tilemap->set_scrollx(0, ((m_scroll2[0] << 8)+ m_scroll2[1]));
+ m_bg_tilemap->set_scrolly(0, ((m_scroll2[2] << 8)+ m_scroll2[3]));
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- screen.machine().device<deco_karnovsprites_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram16, 0x400, 0);
- state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ screen.machine().device<deco_karnovsprites_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram16, 0x400, 0);
+ m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( shackled )
+UINT32 dec8_state::screen_update_shackled(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dec8_state *state = screen.machine().driver_data<dec8_state>();
- state->m_bg_tilemap->set_scrollx(0, ((state->m_scroll2[0] << 8) + state->m_scroll2[1]));
- state->m_bg_tilemap->set_scrolly(0, ((state->m_scroll2[2] << 8) + state->m_scroll2[3]));
+ m_bg_tilemap->set_scrollx(0, ((m_scroll2[0] << 8) + m_scroll2[1]));
+ m_bg_tilemap->set_scrolly(0, ((m_scroll2[2] << 8) + m_scroll2[3]));
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0);
- screen.machine().device<deco_karnovsprites_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram16, 0x400, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0);
- state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0);
+ screen.machine().device<deco_karnovsprites_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram16, 0x400, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0);
+ m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -464,16 +459,15 @@ VIDEO_START_MEMBER(dec8_state,shackled)
/******************************************************************************/
-SCREEN_UPDATE_IND16( srdarwin )
+UINT32 dec8_state::screen_update_srdarwin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dec8_state *state = screen.machine().driver_data<dec8_state>();
- state->m_bg_tilemap->set_scrollx(0, (state->m_scroll2[0] << 8) + state->m_scroll2[1]);
+ m_bg_tilemap->set_scrollx(0, (m_scroll2[0] << 8) + m_scroll2[1]);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
srdarwin_draw_sprites(screen.machine(), bitmap, cliprect, 0); //* (srdarwin37b5gre)
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
srdarwin_draw_sprites(screen.machine(), bitmap, cliprect, 1);
- state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -526,30 +520,28 @@ VIDEO_START_MEMBER(dec8_state,srdarwin)
/******************************************************************************/
-SCREEN_UPDATE_IND16( gondo )
+UINT32 dec8_state::screen_update_gondo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dec8_state *state = screen.machine().driver_data<dec8_state>();
- state->m_bg_tilemap->set_scrollx(0, ((state->m_scroll2[0] << 8) + state->m_scroll2[1]));
- state->m_bg_tilemap->set_scrolly(0, ((state->m_scroll2[2] << 8) + state->m_scroll2[3]));
+ m_bg_tilemap->set_scrollx(0, ((m_scroll2[0] << 8) + m_scroll2[1]));
+ m_bg_tilemap->set_scrolly(0, ((m_scroll2[2] << 8) + m_scroll2[3]));
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
- screen.machine().device<deco_karnovsprites_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram16, 0x400, 2);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
- screen.machine().device<deco_karnovsprites_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram16, 0x400, 1);
- state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
+ screen.machine().device<deco_karnovsprites_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram16, 0x400, 2);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
+ screen.machine().device<deco_karnovsprites_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram16, 0x400, 1);
+ m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( garyoret )
+UINT32 dec8_state::screen_update_garyoret(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dec8_state *state = screen.machine().driver_data<dec8_state>();
- state->m_bg_tilemap->set_scrollx(0, ((state->m_scroll2[0] << 8) + state->m_scroll2[1]));
- state->m_bg_tilemap->set_scrolly(0, ((state->m_scroll2[2] << 8) + state->m_scroll2[3]));
+ m_bg_tilemap->set_scrollx(0, ((m_scroll2[0] << 8) + m_scroll2[1]));
+ m_bg_tilemap->set_scrolly(0, ((m_scroll2[2] << 8) + m_scroll2[3]));
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- screen.machine().device<deco_karnovsprites_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_buffered_spriteram16, 0x400, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
- state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ screen.machine().device<deco_karnovsprites_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_buffered_spriteram16, 0x400, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
+ m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/deco32.c b/src/mame/video/deco32.c
index 6b5c3230b6f..12646753783 100644
--- a/src/mame/video/deco32.c
+++ b/src/mame/video/deco32.c
@@ -558,12 +558,12 @@ VIDEO_START_MEMBER(deco32_state,nslasher)
/******************************************************************************/
-SCREEN_VBLANK( captaven )
+void deco32_state::screen_eof_captaven(screen_device &screen, bool state)
{
}
-SCREEN_VBLANK( dragngun )
+void dragngun_state::screen_eof_dragngun(screen_device &screen, bool state)
{
}
@@ -571,59 +571,57 @@ SCREEN_VBLANK( dragngun )
/******************************************************************************/
-SCREEN_UPDATE_IND16( captaven )
+UINT32 deco32_state::screen_update_captaven(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- deco32_state *state = screen.machine().driver_data<deco32_state>();
- state->m_deco_tilegen1 = screen.machine().device("tilegen1");
- state->m_deco_tilegen2 = screen.machine().device("tilegen2");
+ m_deco_tilegen1 = screen.machine().device("tilegen1");
+ m_deco_tilegen2 = screen.machine().device("tilegen2");
- screen.machine().tilemap().set_flip_all(state->flip_screen() ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
+ screen.machine().tilemap().set_flip_all(flip_screen() ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(screen.machine().pens[0x000], cliprect); // Palette index not confirmed
- deco16ic_set_pf1_8bpp_mode(state->m_deco_tilegen2, 1);
+ deco16ic_set_pf1_8bpp_mode(m_deco_tilegen2, 1);
- deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
- deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
+ deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
+ deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
// pf4 not used (because pf3 is in 8bpp mode)
- if ((state->m_pri&1)==0)
+ if ((m_pri&1)==0)
{
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 1);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 2);
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 1);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2);
}
else
{
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 1);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 2);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 1);
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 2);
}
- deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 4);
+ deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 4);
screen.machine().device<decospr_device>("spritegen")->set_alt_format(true);
- screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram16_buffered, 0x400);
+ screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram16_buffered, 0x400);
return 0;
}
-SCREEN_UPDATE_RGB32( dragngun )
+UINT32 dragngun_state::screen_update_dragngun(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- deco32_state *state = screen.machine().driver_data<deco32_state>();
- state->m_deco_tilegen1 = screen.machine().device("tilegen1");
- state->m_deco_tilegen2 = screen.machine().device("tilegen2");
+ m_deco_tilegen1 = screen.machine().device("tilegen1");
+ m_deco_tilegen2 = screen.machine().device("tilegen2");
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
- deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
+ deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
+ deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
- //deco16ic_set_pf3_8bpp_mode(state->m_deco_tilegen1, 1); // despite being 8bpp this doesn't require the same shifting as captaven, why not?
+ //deco16ic_set_pf3_8bpp_mode(m_deco_tilegen1, 1); // despite being 8bpp this doesn't require the same shifting as captaven, why not?
- deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 0); // it uses pf3 in 8bpp mode instead, like captaven
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 0);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, 0, 0); // it uses pf3 in 8bpp mode instead, like captaven
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
// zooming sprite draw is very slow, and sprites are buffered.. however, one of the levels attempts to use
// partial updates for every line, which causes things to be very slow... the sprites appear to support
@@ -639,8 +637,8 @@ SCREEN_UPDATE_RGB32( dragngun )
{
rectangle clip(cliprect.min_x, cliprect.max_x, 8, 247);
- dragngun_draw_sprites(screen.machine(),bitmap,clip,state->m_spriteram->buffer());
- deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, clip, 0, 0);
+ dragngun_draw_sprites(screen.machine(),bitmap,clip,m_spriteram->buffer());
+ deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, clip, 0, 0);
}
@@ -648,39 +646,38 @@ SCREEN_UPDATE_RGB32( dragngun )
}
-SCREEN_UPDATE_RGB32( fghthist )
+UINT32 deco32_state::screen_update_fghthist(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- deco32_state *state = screen.machine().driver_data<deco32_state>();
- state->m_deco_tilegen1 = screen.machine().device("tilegen1");
- state->m_deco_tilegen2 = screen.machine().device("tilegen2");
+ m_deco_tilegen1 = screen.machine().device("tilegen1");
+ m_deco_tilegen2 = screen.machine().device("tilegen2");
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(screen.machine().pens[0x000], cliprect); // Palette index not confirmed
- deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
- deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
+ deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
+ deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
- screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram16_buffered, 0x800, true);
+ screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram16_buffered, 0x800, true);
/* Draw screen */
- deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 1);
+ deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, 0, 1);
- if(state->m_pri&1)
+ if(m_pri&1)
{
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 2);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2);
screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 1024, 0x1ff);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 4);
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 4);
}
else
{
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 2);
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 2);
screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 1024, 0x1ff);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 4);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 4);
}
screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0800, 1024, 0x1ff);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
return 0;
}
@@ -825,21 +822,20 @@ static void mixDualAlphaSprites(bitmap_rgb32 &bitmap, const rectangle &cliprect,
}
}
-SCREEN_UPDATE_RGB32( nslasher )
+UINT32 deco32_state::screen_update_nslasher(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- deco32_state *state = screen.machine().driver_data<deco32_state>();
int alphaTilemap=0;
- state->m_deco_tilegen1 = screen.machine().device("tilegen1");
- state->m_deco_tilegen2 = screen.machine().device("tilegen2");
+ m_deco_tilegen1 = screen.machine().device("tilegen1");
+ m_deco_tilegen2 = screen.machine().device("tilegen2");
- deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
- deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
+ deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
+ deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
/* This is not a conclusive test for deciding if tilemap needs alpha blending */
- if (state->m_ace_ram[0x17]!=0x0 && state->m_pri)
+ if (m_ace_ram[0x17]!=0x0 && m_pri)
alphaTilemap=1;
- if (state->m_ace_ram_dirty)
+ if (m_ace_ram_dirty)
updateAceRam(screen.machine());
screen.machine().priority_bitmap.fill(0, cliprect);
@@ -850,42 +846,42 @@ SCREEN_UPDATE_RGB32( nslasher )
screen.machine().device<decospr_device>("spritegen1")->set_pix_raw_shift(8);
screen.machine().device<decospr_device>("spritegen2")->set_pix_raw_shift(8);
- screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, state->m_spriteram16_buffered, 0x800, true);
- screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, state->m_spriteram16_2_buffered, 0x800, true);
+ screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, m_spriteram16_buffered, 0x800, true);
+ screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, m_spriteram16_2_buffered, 0x800, true);
/* Render alpha-blended tilemap to separate buffer for proper mixing */
- state->m_tilemap_alpha_bitmap->fill(0, cliprect);
+ m_tilemap_alpha_bitmap->fill(0, cliprect);
/* Draw playfields & sprites */
- if (state->m_pri&2)
+ if (m_pri&2)
{
- deco16ic_tilemap_12_combine_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 1, 1);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 4);
+ deco16ic_tilemap_12_combine_draw(m_deco_tilegen2, bitmap, cliprect, 0, 1, 1);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 4);
}
else
{
- deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 1);
- if (state->m_pri&1)
+ deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, 0, 1);
+ if (m_pri&1)
{
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 2);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2);
if (alphaTilemap)
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, *state->m_tilemap_alpha_bitmap, cliprect, 0, 4);
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, *m_tilemap_alpha_bitmap, cliprect, 0, 4);
else
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 4);
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 4);
}
else
{
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 2);
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 2);
if (alphaTilemap)
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, *state->m_tilemap_alpha_bitmap, cliprect, 0, 4);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, *m_tilemap_alpha_bitmap, cliprect, 0, 4);
else
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 4);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 4);
}
}
mixDualAlphaSprites(bitmap, cliprect, screen.machine().gfx[3], screen.machine().gfx[4], alphaTilemap);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/deco_mlc.c b/src/mame/video/deco_mlc.c
index 39a9f68cae8..73e74d80807 100644
--- a/src/mame/video/deco_mlc.c
+++ b/src/mame/video/deco_mlc.c
@@ -493,22 +493,21 @@ static void draw_sprites(running_machine& machine, bitmap_rgb32 &bitmap,const re
}
}
-SCREEN_VBLANK( mlc )
+void deco_mlc_state::screen_eof_mlc(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- deco_mlc_state *state = screen.machine().driver_data<deco_mlc_state>();
/* Spriteram is definitely double buffered, as the vram lookup tables
are often updated a frame after spriteram is setup to point to a new
lookup table. Without buffering incorrect one frame glitches are seen
in several places, especially in Hoops.
*/
- memcpy(state->m_mlc_buffered_spriteram, state->m_spriteram, 0x3000);
+ memcpy(m_mlc_buffered_spriteram, m_spriteram, 0x3000);
}
}
-SCREEN_UPDATE_RGB32( mlc )
+UINT32 deco_mlc_state::screen_update_mlc(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
// temp_bitmap->fill(0, cliprect);
bitmap.fill(screen.machine().pens[0], cliprect); /* Pen 0 fill colour confirmed from Skull Fang level 2 */
diff --git a/src/mame/video/decocass.c b/src/mame/video/decocass.c
index 4260ee270ce..dd3477b8d62 100644
--- a/src/mame/video/decocass.c
+++ b/src/mame/video/decocass.c
@@ -516,77 +516,76 @@ void decocass_state::video_start()
machine().gfx[2]->decode(16);
}
-SCREEN_UPDATE_IND16( decocass )
+UINT32 decocass_state::screen_update_decocass(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- decocass_state *state = screen.machine().driver_data<decocass_state>();
int scrollx, scrolly_l, scrolly_r;
rectangle clip;
if (0xc0 != (screen.machine().root_device().ioport("IN2")->read() & 0xc0)) /* coin slots assert an NMI */
- state->m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
+ m_maincpu->set_input_line(INPUT_LINE_NMI, ASSERT_LINE);
- if (0 == (state->m_watchdog_flip & 0x04))
+ if (0 == (m_watchdog_flip & 0x04))
screen.machine().watchdog_reset();
- else if (state->m_watchdog_count-- > 0)
+ else if (m_watchdog_count-- > 0)
screen.machine().watchdog_reset();
#ifdef MAME_DEBUG
{
if (screen.machine().input().code_pressed_once(KEYCODE_I))
- state->m_showmsg ^= 1;
- if (state->m_showmsg)
+ m_showmsg ^= 1;
+ if (m_showmsg)
popmessage("mode:$%02x cm:$%02x ccb:$%02x h:$%02x vl:$%02x vr:$%02x ph:$%02x pv:$%02x ch:$%02x cv:$%02x",
- state->m_mode_set,
- state->m_color_missiles,
- state->m_color_center_bot,
- state->m_back_h_shift,
- state->m_back_vl_shift,
- state->m_back_vr_shift,
- state->m_part_h_shift,
- state->m_part_v_shift,
- state->m_center_h_shift_space,
- state->m_center_v_shift);
+ m_mode_set,
+ m_color_missiles,
+ m_color_center_bot,
+ m_back_h_shift,
+ m_back_vl_shift,
+ m_back_vr_shift,
+ m_part_h_shift,
+ m_part_v_shift,
+ m_center_h_shift_space,
+ m_center_v_shift);
}
#endif
bitmap.fill(0, cliprect);
- scrolly_l = state->m_back_vl_shift;
- scrolly_r = 256 - state->m_back_vr_shift;
+ scrolly_l = m_back_vl_shift;
+ scrolly_r = 256 - m_back_vr_shift;
- scrollx = 256 - state->m_back_h_shift;
- if (0 == (state->m_mode_set & 0x02))
+ scrollx = 256 - m_back_h_shift;
+ if (0 == (m_mode_set & 0x02))
scrollx += 256;
#if 0
/* this is wrong */
- if (0 != state->m_back_h_shift && 0 == ((state->m_mode_set ^ (state->m_mode_set >> 1)) & 1))
+ if (0 != m_back_h_shift && 0 == ((m_mode_set ^ (m_mode_set >> 1)) & 1))
scrollx += 256;
#endif
- if (0 == (state->m_mode_set & 0x04))
+ if (0 == (m_mode_set & 0x04))
scrolly_r += 256;
else
scrolly_l += 256;
- state->m_bg_tilemap_l->set_scrollx(0, scrollx);
- state->m_bg_tilemap_l->set_scrolly(0, scrolly_l);
+ m_bg_tilemap_l->set_scrollx(0, scrollx);
+ m_bg_tilemap_l->set_scrolly(0, scrolly_l);
- state->m_bg_tilemap_r->set_scrollx(0, scrollx);
- state->m_bg_tilemap_r->set_scrolly(0, scrolly_r);
+ m_bg_tilemap_r->set_scrollx(0, scrollx);
+ m_bg_tilemap_r->set_scrolly(0, scrolly_r);
- if (state->m_mode_set & 0x08) /* bkg_ena on ? */
+ if (m_mode_set & 0x08) /* bkg_ena on ? */
{
- clip = state->m_bg_tilemap_l_clip;
+ clip = m_bg_tilemap_l_clip;
clip &= cliprect;
- state->m_bg_tilemap_l->draw(bitmap, clip, TILEMAP_DRAW_OPAQUE, 0);
+ m_bg_tilemap_l->draw(bitmap, clip, TILEMAP_DRAW_OPAQUE, 0);
- clip = state->m_bg_tilemap_r_clip;
+ clip = m_bg_tilemap_r_clip;
clip &= cliprect;
- state->m_bg_tilemap_r->draw(bitmap, clip, TILEMAP_DRAW_OPAQUE, 0);
+ m_bg_tilemap_r->draw(bitmap, clip, TILEMAP_DRAW_OPAQUE, 0);
}
- if (state->m_mode_set & 0x20)
+ if (m_mode_set & 0x20)
{
draw_object(screen.machine(), bitmap, cliprect);
draw_center(screen.machine(), bitmap, cliprect);
@@ -595,19 +594,19 @@ SCREEN_UPDATE_IND16( decocass )
{
draw_object(screen.machine(), bitmap, cliprect);
draw_center(screen.machine(), bitmap, cliprect);
- if (state->m_mode_set & 0x08) /* bkg_ena on ? */
+ if (m_mode_set & 0x08) /* bkg_ena on ? */
{
- clip = state->m_bg_tilemap_l_clip;
+ clip = m_bg_tilemap_l_clip;
clip &= cliprect;
- state->m_bg_tilemap_l->draw(bitmap, clip, 0, 0);
+ m_bg_tilemap_l->draw(bitmap, clip, 0, 0);
- clip = state->m_bg_tilemap_r_clip;
+ clip = m_bg_tilemap_r_clip;
clip &= cliprect;
- state->m_bg_tilemap_r->draw(bitmap, clip, 0, 0);
+ m_bg_tilemap_r->draw(bitmap, clip, 0, 0);
}
}
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
- draw_sprites(screen.machine(), bitmap, cliprect, (state->m_color_center_bot >> 1) & 1, 0, 0, state->m_fgvideoram, 0x20);
- draw_missiles(screen.machine(), bitmap, cliprect, 1, 0, state->m_colorram, 0x20);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ draw_sprites(screen.machine(), bitmap, cliprect, (m_color_center_bot >> 1) & 1, 0, 0, m_fgvideoram, 0x20);
+ draw_missiles(screen.machine(), bitmap, cliprect, 1, 0, m_colorram, 0x20);
return 0;
}
diff --git a/src/mame/video/deniam.c b/src/mame/video/deniam.c
index d47cc9e9f56..2ad1008dd94 100644
--- a/src/mame/video/deniam.c
+++ b/src/mame/video/deniam.c
@@ -362,41 +362,40 @@ static void set_fg_page( running_machine &machine, int page, int value )
}
}
-SCREEN_UPDATE_IND16( deniam )
+UINT32 deniam_state::screen_update_deniam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- deniam_state *state = screen.machine().driver_data<deniam_state>();
int bg_scrollx, bg_scrolly, fg_scrollx, fg_scrolly;
int page;
- if (!state->m_display_enable)
+ if (!m_display_enable)
return 0; /* don't update (freeze display) */
- bg_scrollx = state->m_textram[state->m_bg_scrollx_reg] - state->m_bg_scrollx_offs;
- bg_scrolly = (state->m_textram[state->m_bg_scrolly_reg] & 0xff) - state->m_bg_scrolly_offs;
- page = state->m_textram[state->m_bg_page_reg];
+ bg_scrollx = m_textram[m_bg_scrollx_reg] - m_bg_scrollx_offs;
+ bg_scrolly = (m_textram[m_bg_scrolly_reg] & 0xff) - m_bg_scrolly_offs;
+ page = m_textram[m_bg_page_reg];
set_bg_page(screen.machine(), 3, (page >>12) & 0x0f);
set_bg_page(screen.machine(), 2, (page >> 8) & 0x0f);
set_bg_page(screen.machine(), 1, (page >> 4) & 0x0f);
set_bg_page(screen.machine(), 0, (page >> 0) & 0x0f);
- fg_scrollx = state->m_textram[state->m_fg_scrollx_reg] - state->m_fg_scrollx_offs;
- fg_scrolly = (state->m_textram[state->m_fg_scrolly_reg] & 0xff) - state->m_fg_scrolly_offs;
- page = state->m_textram[state->m_fg_page_reg];
+ fg_scrollx = m_textram[m_fg_scrollx_reg] - m_fg_scrollx_offs;
+ fg_scrolly = (m_textram[m_fg_scrolly_reg] & 0xff) - m_fg_scrolly_offs;
+ page = m_textram[m_fg_page_reg];
set_fg_page(screen.machine(), 3, (page >>12) & 0x0f);
set_fg_page(screen.machine(), 2, (page >> 8) & 0x0f);
set_fg_page(screen.machine(), 1, (page >> 4) & 0x0f);
set_fg_page(screen.machine(), 0, (page >> 0) & 0x0f);
- state->m_bg_tilemap->set_scrollx(0, bg_scrollx & 0x1ff);
- state->m_bg_tilemap->set_scrolly(0, bg_scrolly & 0x0ff);
- state->m_fg_tilemap->set_scrollx(0, fg_scrollx & 0x1ff);
- state->m_fg_tilemap->set_scrolly(0, fg_scrolly & 0x0ff);
+ m_bg_tilemap->set_scrollx(0, bg_scrollx & 0x1ff);
+ m_bg_tilemap->set_scrolly(0, bg_scrolly & 0x0ff);
+ m_fg_tilemap->set_scrollx(0, fg_scrollx & 0x1ff);
+ m_fg_tilemap->set_scrolly(0, fg_scrolly & 0x0ff);
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
diff --git a/src/mame/video/dietgo.c b/src/mame/video/dietgo.c
index 470400cf836..da059b07652 100644
--- a/src/mame/video/dietgo.c
+++ b/src/mame/video/dietgo.c
@@ -3,20 +3,19 @@
#include "includes/dietgo.h"
#include "video/decospr.h"
-SCREEN_UPDATE_IND16( dietgo )
+UINT32 dietgo_state::screen_update_dietgo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dietgo_state *state = screen.machine().driver_data<dietgo_state>();
address_space &space = screen.machine().driver_data()->generic_space();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
+ UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
- state->flip_screen_set(BIT(flip, 7));
- deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
+ flip_screen_set(BIT(flip, 7));
+ deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
bitmap.fill(256, cliprect); /* not verified */
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
- screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400);
+ screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
return 0;
}
diff --git a/src/mame/video/digdug.c b/src/mame/video/digdug.c
index 2422666a6f3..4fe6d1ab456 100644
--- a/src/mame/video/digdug.c
+++ b/src/mame/video/digdug.c
@@ -308,12 +308,11 @@ static void draw_sprites(running_machine& machine, bitmap_ind16 &bitmap, const r
}
-SCREEN_UPDATE_IND16( digdug )
+UINT32 digdug_state::screen_update_digdug(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- digdug_state *state = screen.machine().driver_data<digdug_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(),bitmap,cliprect);
return 0;
}
diff --git a/src/mame/video/djboy.c b/src/mame/video/djboy.c
index f060026f8c2..0f4b01dcc30 100644
--- a/src/mame/video/djboy.c
+++ b/src/mame/video/djboy.c
@@ -52,7 +52,7 @@ WRITE8_MEMBER(djboy_state::djboy_paletteram_w)
palette_set_color_rgb(machine(), offset / 2, pal4bit(val >> 8), pal4bit(val >> 4), pal4bit(val >> 0));
}
-SCREEN_UPDATE_IND16( djboy )
+UINT32 djboy_state::screen_update_djboy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
/**
* xx------ msb x
@@ -60,27 +60,25 @@ SCREEN_UPDATE_IND16( djboy )
* ---x---- flipscreen?
* ----xxxx ROM bank
*/
- djboy_state *state = screen.machine().driver_data<djboy_state>();
int scroll;
- scroll = state->m_scrollx | ((state->m_videoreg & 0xc0) << 2);
- state->m_background->set_scrollx(0, scroll - 0x391);
+ scroll = m_scrollx | ((m_videoreg & 0xc0) << 2);
+ m_background->set_scrollx(0, scroll - 0x391);
- scroll = state->m_scrolly | ((state->m_videoreg & 0x20) << 3);
- state->m_background->set_scrolly(0, scroll);
+ scroll = m_scrolly | ((m_videoreg & 0x20) << 3);
+ m_background->set_scrolly(0, scroll);
- state->m_background->draw(bitmap, cliprect, 0, 0);
- pandora_update(state->m_pandora, bitmap, cliprect);
+ m_background->draw(bitmap, cliprect, 0, 0);
+ pandora_update(m_pandora, bitmap, cliprect);
return 0;
}
-SCREEN_VBLANK( djboy )
+void djboy_state::screen_eof_djboy(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- djboy_state *state = screen.machine().driver_data<djboy_state>();
- pandora_eof(state->m_pandora);
+ pandora_eof(m_pandora);
}
}
diff --git a/src/mame/video/djmain.c b/src/mame/video/djmain.c
index 3e9222359ec..e83e748e6a9 100644
--- a/src/mame/video/djmain.c
+++ b/src/mame/video/djmain.c
@@ -143,7 +143,7 @@ void djmain_state::video_start()
k056832_set_layer_offs(k056832, 1, -88, -27);
}
-SCREEN_UPDATE_RGB32( djmain )
+UINT32 djmain_state::screen_update_djmain(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
device_t *k056832 = screen.machine().device("k056832");
device_t *k055555 = screen.machine().device("k055555");
diff --git a/src/mame/video/dkong.c b/src/mame/video/dkong.c
index afdce753898..5a9dc2a2a54 100644
--- a/src/mame/video/dkong.c
+++ b/src/mame/video/dkong.c
@@ -952,27 +952,26 @@ VIDEO_START_MEMBER(dkong_state,dkong)
}
}
-SCREEN_UPDATE_IND16( dkong )
+UINT32 dkong_state::screen_update_dkong(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dkong_state *state = screen.machine().driver_data<dkong_state>();
- screen.machine().tilemap().set_flip_all(state->m_flip ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
- state->m_bg_tilemap->set_scrollx(0, state->m_flip ? 0 : 0);
- state->m_bg_tilemap->set_scrolly(0, state->m_flip ? -8 : 0);
+ screen.machine().tilemap().set_flip_all(m_flip ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
+ m_bg_tilemap->set_scrollx(0, m_flip ? 0 : 0);
+ m_bg_tilemap->set_scrolly(0, m_flip ? -8 : 0);
- switch (state->m_hardware_type)
+ switch (m_hardware_type)
{
case HARDWARE_TKG02:
case HARDWARE_TKG04:
check_palette(screen.machine());
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 0x40, 1);
break;
case HARDWARE_TRS01:
case HARDWARE_TRS02:
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 0x40, 1);
- radarscp_draw_background(screen.machine(), state, bitmap, cliprect);
+ radarscp_draw_background(screen.machine(), this, bitmap, cliprect);
break;
default:
fatalerror("Invalid hardware type in dkong_video_update\n");
@@ -980,33 +979,31 @@ SCREEN_UPDATE_IND16( dkong )
return 0;
}
-SCREEN_UPDATE_IND16( pestplce )
+UINT32 dkong_state::screen_update_pestplce(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dkong_state *state = screen.machine().driver_data<dkong_state>();
int offs;
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
/* Draw the sprites. */
- for (offs = 0;offs < state->m_sprite_ram.bytes();offs += 4)
+ for (offs = 0;offs < m_sprite_ram.bytes();offs += 4)
{
- if (state->m_sprite_ram[offs])
+ if (m_sprite_ram[offs])
{
drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[1],
- state->m_sprite_ram[offs + 2],
- (state->m_sprite_ram[offs + 1] & 0x0f) + 16 * state->m_palette_bank,
- state->m_sprite_ram[offs + 1] & 0x80,state->m_sprite_ram[offs + 1] & 0x40,
- state->m_sprite_ram[offs + 3] - 8,240 - state->m_sprite_ram[offs] + 8,0);
+ m_sprite_ram[offs + 2],
+ (m_sprite_ram[offs + 1] & 0x0f) + 16 * m_palette_bank,
+ m_sprite_ram[offs + 1] & 0x80,m_sprite_ram[offs + 1] & 0x40,
+ m_sprite_ram[offs + 3] - 8,240 - m_sprite_ram[offs] + 8,0);
}
}
return 0;
}
-SCREEN_UPDATE_IND16( spclforc )
+UINT32 dkong_state::screen_update_spclforc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dkong_state *state = screen.machine().driver_data<dkong_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
/* it uses sprite_ram[offs + 2] & 0x10 for sprite bank */
draw_sprites(screen.machine(), bitmap, cliprect, 0x10, 3);
diff --git a/src/mame/video/docastle.c b/src/mame/video/docastle.c
index fc19cfa2eaa..0b9ee5132fb 100644
--- a/src/mame/video/docastle.c
+++ b/src/mame/video/docastle.c
@@ -218,12 +218,11 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( docastle )
+UINT32 docastle_state::screen_update_docastle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- docastle_state *state = screen.machine().driver_data<docastle_state>();
- state->m_do_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ m_do_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_do_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
+ m_do_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
return 0;
}
diff --git a/src/mame/video/dogfgt.c b/src/mame/video/dogfgt.c
index 12c5758a47b..c0d96ab617f 100644
--- a/src/mame/video/dogfgt.c
+++ b/src/mame/video/dogfgt.c
@@ -209,27 +209,26 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap,const r
}
-SCREEN_UPDATE_IND16( dogfgt )
+UINT32 dogfgt_state::screen_update_dogfgt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dogfgt_state *state = screen.machine().driver_data<dogfgt_state>();
int offs;
- if (state->m_lastflip != state->flip_screen() || state->m_lastpixcolor != state->m_pixcolor)
+ if (m_lastflip != flip_screen() || m_lastpixcolor != m_pixcolor)
{
address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
- state->m_lastflip = state->flip_screen();
- state->m_lastpixcolor = state->m_pixcolor;
+ m_lastflip = flip_screen();
+ m_lastpixcolor = m_pixcolor;
for (offs = 0; offs < BITMAPRAM_SIZE; offs++)
- state->internal_bitmapram_w(space, offs, state->m_bitmapram[offs]);
+ internal_bitmapram_w(space, offs, m_bitmapram[offs]);
}
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- copybitmap_trans(bitmap, state->m_pixbitmap, 0, 0, 0, 0, cliprect, PIXMAP_COLOR_BASE + 8 * state->m_pixcolor);
+ copybitmap_trans(bitmap, m_pixbitmap, 0, 0, 0, 0, cliprect, PIXMAP_COLOR_BASE + 8 * m_pixcolor);
return 0;
}
diff --git a/src/mame/video/dooyong.c b/src/mame/video/dooyong.c
index 379ac6f975e..0175a8d5b00 100644
--- a/src/mame/video/dooyong.c
+++ b/src/mame/video/dooyong.c
@@ -498,121 +498,113 @@ static void rshark_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,
}
-SCREEN_UPDATE_IND16( lastday )
+UINT32 dooyong_state::screen_update_lastday(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dooyong_state *state = screen.machine().driver_data<dooyong_state>();
bitmap.fill(get_black_pen(screen.machine()), cliprect);
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
- if (!state->m_sprites_disabled)
+ if (!m_sprites_disabled)
draw_sprites(screen.machine(), bitmap, cliprect, 0);
return 0;
}
-SCREEN_UPDATE_IND16( gulfstrm )
+UINT32 dooyong_state::screen_update_gulfstrm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dooyong_state *state = screen.machine().driver_data<dooyong_state>();
bitmap.fill(get_black_pen(screen.machine()), cliprect);
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
draw_sprites(screen.machine(), bitmap, cliprect, 1);
return 0;
}
-SCREEN_UPDATE_IND16( pollux )
+UINT32 dooyong_state::screen_update_pollux(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dooyong_state *state = screen.machine().driver_data<dooyong_state>();
bitmap.fill(get_black_pen(screen.machine()), cliprect);
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
draw_sprites(screen.machine(), bitmap, cliprect, 2);
return 0;
}
-SCREEN_UPDATE_IND16( flytiger )
+UINT32 dooyong_state::screen_update_flytiger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dooyong_state *state = screen.machine().driver_data<dooyong_state>();
bitmap.fill(get_black_pen(screen.machine()), cliprect);
screen.machine().priority_bitmap.fill(0, cliprect);
- if (state->m_flytiger_pri)
+ if (m_flytiger_pri)
{
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 1);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 2);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 1);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 2);
}
else
{
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
}
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
draw_sprites(screen.machine(), bitmap, cliprect, 4);
return 0;
}
-SCREEN_UPDATE_IND16( bluehawk )
+UINT32 dooyong_state::screen_update_bluehawk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dooyong_state *state = screen.machine().driver_data<dooyong_state>();
bitmap.fill(get_black_pen(screen.machine()), cliprect);
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
- state->m_fg2_tilemap->draw(bitmap, cliprect, 0, 4);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
+ m_fg2_tilemap->draw(bitmap, cliprect, 0, 4);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
draw_sprites(screen.machine(), bitmap, cliprect, 3);
return 0;
}
-SCREEN_UPDATE_IND16( primella )
+UINT32 dooyong_state::screen_update_primella(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dooyong_state *state = screen.machine().driver_data<dooyong_state>();
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- if (state->m_tx_pri) state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
- if (!state->m_tx_pri) state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (m_tx_pri) m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (!m_tx_pri) m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( rshark )
+UINT32 dooyong_state::screen_update_rshark(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dooyong_state *state = screen.machine().driver_data<dooyong_state>();
bitmap.fill(get_black_pen(screen.machine()), cliprect);
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
- state->m_bg2_tilemap->draw(bitmap, cliprect, 0, (state->m_rshark_pri ? 2 : 1));
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
- state->m_fg2_tilemap->draw(bitmap, cliprect, 0, 2);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
+ m_bg2_tilemap->draw(bitmap, cliprect, 0, (m_rshark_pri ? 2 : 1));
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
+ m_fg2_tilemap->draw(bitmap, cliprect, 0, 2);
rshark_draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
-SCREEN_UPDATE_IND16( popbingo )
+UINT32 dooyong_state::screen_update_popbingo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dooyong_state *state = screen.machine().driver_data<dooyong_state>();
bitmap.fill(get_black_pen(screen.machine()), cliprect);
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
rshark_draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
diff --git a/src/mame/video/dragrace.c b/src/mame/video/dragrace.c
index 4fff2a82c4e..858f8a386dd 100644
--- a/src/mame/video/dragrace.c
+++ b/src/mame/video/dragrace.c
@@ -45,29 +45,28 @@ void dragrace_state::video_start()
}
-SCREEN_UPDATE_IND16( dragrace )
+UINT32 dragrace_state::screen_update_dragrace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dragrace_state *state = screen.machine().driver_data<dragrace_state>();
int y;
- state->m_bg_tilemap->mark_all_dirty();
+ m_bg_tilemap->mark_all_dirty();
for (y = 0; y < 256; y += 4)
{
rectangle rect = cliprect;
- int xl = state->m_position_ram[y + 0] & 15;
- int xh = state->m_position_ram[y + 1] & 15;
- int yl = state->m_position_ram[y + 2] & 15;
- int yh = state->m_position_ram[y + 3] & 15;
+ int xl = m_position_ram[y + 0] & 15;
+ int xh = m_position_ram[y + 1] & 15;
+ int yl = m_position_ram[y + 2] & 15;
+ int yh = m_position_ram[y + 3] & 15;
- state->m_bg_tilemap->set_scrollx(0, 16 * xh + xl - 8);
- state->m_bg_tilemap->set_scrolly(0, 16 * yh + yl);
+ m_bg_tilemap->set_scrollx(0, 16 * xh + xl - 8);
+ m_bg_tilemap->set_scrolly(0, 16 * yh + yl);
if (rect.min_y < y + 0) rect.min_y = y + 0;
if (rect.max_y > y + 3) rect.max_y = y + 3;
- state->m_bg_tilemap->draw(bitmap, rect, 0, 0);
+ m_bg_tilemap->draw(bitmap, rect, 0, 0);
}
return 0;
}
diff --git a/src/mame/video/drgnmst.c b/src/mame/video/drgnmst.c
index 75dd7b04033..b26ba49bb2c 100644
--- a/src/mame/video/drgnmst.c
+++ b/src/mame/video/drgnmst.c
@@ -132,65 +132,64 @@ void drgnmst_state::video_start()
m_md_tilemap->set_scroll_rows(1024);
}
-SCREEN_UPDATE_IND16(drgnmst)
+UINT32 drgnmst_state::screen_update_drgnmst(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- drgnmst_state *state = screen.machine().driver_data<drgnmst_state>();
int y, rowscroll_bank;
- state->m_bg_tilemap->set_scrollx(0, state->m_vidregs[10] - 18); // verify
- state->m_bg_tilemap->set_scrolly(0, state->m_vidregs[11]); // verify
+ m_bg_tilemap->set_scrollx(0, m_vidregs[10] - 18); // verify
+ m_bg_tilemap->set_scrolly(0, m_vidregs[11]); // verify
-// state->m_md_tilemap->set_scrollx(0, state->m_vidregs[8] - 16); // rowscrolled
- state->m_md_tilemap->set_scrolly(0, state->m_vidregs[9]); // verify
+// m_md_tilemap->set_scrollx(0, m_vidregs[8] - 16); // rowscrolled
+ m_md_tilemap->set_scrolly(0, m_vidregs[9]); // verify
- state->m_fg_tilemap->set_scrollx(0, state->m_vidregs[6] - 18); // verify (test mode colour test needs it)
- state->m_fg_tilemap->set_scrolly(0, state->m_vidregs[7]); // verify
+ m_fg_tilemap->set_scrollx(0, m_vidregs[6] - 18); // verify (test mode colour test needs it)
+ m_fg_tilemap->set_scrolly(0, m_vidregs[7]); // verify
- rowscroll_bank = (state->m_vidregs[4] & 0x30) >> 4;
+ rowscroll_bank = (m_vidregs[4] & 0x30) >> 4;
for (y = 0; y < 1024; y++)
- state->m_md_tilemap->set_scrollx(y, state->m_vidregs[8] - 16 + state->m_rowscrollram[y + 0x800 * rowscroll_bank]);
+ m_md_tilemap->set_scrollx(y, m_vidregs[8] - 16 + m_rowscrollram[y + 0x800 * rowscroll_bank]);
// todo: figure out which bits relate to the order
- switch (state->m_vidregs2[0])
+ switch (m_vidregs2[0])
{
case 0x2451: // fg unsure
case 0x2d9a: // fg unsure
case 0x2440: // all ok
case 0x245a: // fg unsure, title screen
- state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- state->m_md_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ m_md_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
break;
case 0x23c0: // all ok
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_md_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_md_tilemap->draw(bitmap, cliprect, 0, 0);
break;
case 0x38da: // fg unsure
case 0x215a: // fg unsure
case 0x2140: // all ok
- state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_md_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_md_tilemap->draw(bitmap, cliprect, 0, 0);
break;
case 0x2d80: // all ok
- state->m_md_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_md_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
break;
default:
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_md_tilemap->draw(bitmap, cliprect, 0, 0);
- logerror ("unknown video priority regs %04x\n", state->m_vidregs2[0]);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_md_tilemap->draw(bitmap, cliprect, 0, 0);
+ logerror ("unknown video priority regs %04x\n", m_vidregs2[0]);
}
draw_sprites(screen.machine(),bitmap,cliprect);
-// popmessage ("x %04x x %04x x %04x x %04x x %04x", state->m_vidregs2[0], state->m_vidregs[12], state->m_vidregs[13], state->m_vidregs[14], state->m_vidregs[15]);
-// popmessage ("x %04x x %04x y %04x y %04x z %04x z %04x",state->m_vidregs[0],state->m_vidregs[1],state->m_vidregs[2],state->m_vidregs[3],state->m_vidregs[4],state->m_vidregs[5]);
+// popmessage ("x %04x x %04x x %04x x %04x x %04x", m_vidregs2[0], m_vidregs[12], m_vidregs[13], m_vidregs[14], m_vidregs[15]);
+// popmessage ("x %04x x %04x y %04x y %04x z %04x z %04x",m_vidregs[0],m_vidregs[1],m_vidregs[2],m_vidregs[3],m_vidregs[4],m_vidregs[5]);
return 0;
}
diff --git a/src/mame/video/dribling.c b/src/mame/video/dribling.c
index 636bd8687db..2af552efa46 100644
--- a/src/mame/video/dribling.c
+++ b/src/mame/video/dribling.c
@@ -57,11 +57,10 @@ WRITE8_MEMBER(dribling_state::dribling_colorram_w)
*
*************************************/
-SCREEN_UPDATE_IND16( dribling )
+UINT32 dribling_state::screen_update_dribling(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dribling_state *state = screen.machine().driver_data<dribling_state>();
UINT8 *prombase = screen.machine().root_device().memregion("proms")->base();
- UINT8 *gfxbase = state->memregion("gfx1")->base();
+ UINT8 *gfxbase = memregion("gfx1")->base();
int x, y;
/* loop over rows */
@@ -73,11 +72,11 @@ SCREEN_UPDATE_IND16( dribling )
for (x = cliprect.min_x; x <= cliprect.max_x; x++)
{
int b7 = prombase[(x >> 3) | ((y >> 3) << 5)] & 1;
- int b6 = state->m_abca;
+ int b6 = m_abca;
int b5 = (x >> 3) & 1;
int b4 = (gfxbase[(x >> 3) | (y << 5)] >> (x & 7)) & 1;
- int b3 = (state->m_videoram[(x >> 3) | (y << 5)] >> (x & 7)) & 1;
- int b2_0 = state->m_colorram[(x >> 3) | ((y >> 2) << 7)] & 7;
+ int b3 = (m_videoram[(x >> 3) | (y << 5)] >> (x & 7)) & 1;
+ int b2_0 = m_colorram[(x >> 3) | ((y >> 2) << 7)] & 7;
/* assemble the various bits into a palette PROM index */
dst[x] = (b7 << 7) | (b6 << 6) | (b5 << 5) | (b4 << 4) | (b3 << 3) | b2_0;
diff --git a/src/mame/video/drmicro.c b/src/mame/video/drmicro.c
index 822defe4b9b..55b3a5ee3b4 100644
--- a/src/mame/video/drmicro.c
+++ b/src/mame/video/drmicro.c
@@ -113,15 +113,14 @@ void drmicro_state::video_start()
m_bg2->set_transparent_pen(0);
}
-SCREEN_UPDATE_IND16( drmicro )
+UINT32 drmicro_state::screen_update_drmicro(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- drmicro_state *state = screen.machine().driver_data<drmicro_state>();
int offs, adr, g;
int chr, col, attr;
int x, y, fx, fy;
- state->m_bg1->draw(bitmap, cliprect, 0, 0);
- state->m_bg2->draw(bitmap, cliprect, 0, 0);
+ m_bg1->draw(bitmap, cliprect, 0, 0);
+ m_bg2->draw(bitmap, cliprect, 0, 0);
/* draw sprites */
for (g = 0; g < 2; g++)
@@ -130,19 +129,19 @@ SCREEN_UPDATE_IND16( drmicro )
for (offs = 0x00; offs < 0x20; offs += 4)
{
- x = state->m_videoram[offs + adr + 3];
- y = state->m_videoram[offs + adr + 0];
- attr = state->m_videoram[offs + adr + 2];
- chr = state->m_videoram[offs + adr + 1];
+ x = m_videoram[offs + adr + 3];
+ y = m_videoram[offs + adr + 0];
+ attr = m_videoram[offs + adr + 2];
+ chr = m_videoram[offs + adr + 1];
- fx = (chr & 0x01) ^ state->m_flipscreen;
- fy = ((chr & 0x02) >> 1) ^ state->m_flipscreen;
+ fx = (chr & 0x01) ^ m_flipscreen;
+ fy = ((chr & 0x02) >> 1) ^ m_flipscreen;
chr = (chr >> 2) | (attr & 0xc0);
col = (attr & 0x0f) + 0x00;
- if (!state->m_flipscreen)
+ if (!m_flipscreen)
y = (240 - y) & 0xff;
else
x = (240 - x) & 0xff;
diff --git a/src/mame/video/dynax.c b/src/mame/video/dynax.c
index 2e280116708..a27a93ab2ee 100644
--- a/src/mame/video/dynax.c
+++ b/src/mame/video/dynax.c
@@ -1238,10 +1238,9 @@ static int debug_viewer( running_machine &machine, bitmap_ind16 &bitmap, const r
-SCREEN_UPDATE_IND16( hanamai )
+UINT32 dynax_state::screen_update_hanamai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dynax_state *state = screen.machine().driver_data<dynax_state>();
- int layers_ctrl = ~state->m_layer_enable;
+ int layers_ctrl = ~m_layer_enable;
int lay[4];
if (debug_viewer(screen.machine(), bitmap, cliprect))
@@ -1249,15 +1248,15 @@ SCREEN_UPDATE_IND16( hanamai )
layers_ctrl &= debug_mask(screen.machine());
- bitmap.fill((state->m_blit_backpen & 0xff) + (state->m_blit_palbank & 1) * 256, cliprect);
+ bitmap.fill((m_blit_backpen & 0xff) + (m_blit_palbank & 1) * 256, cliprect);
/* bit 4 = display enable? */
- if (!(state->m_hanamai_priority & 0x10))
+ if (!(m_hanamai_priority & 0x10))
return 0;
- switch (state->m_hanamai_priority)
+ switch (m_hanamai_priority)
{
- default: popmessage("unknown priority %02x", state->m_hanamai_priority);
+ default: popmessage("unknown priority %02x", m_hanamai_priority);
case 0x10: lay[0] = 0; lay[1] = 1; lay[2] = 2; lay[3] = 3; break;
case 0x11: lay[0] = 0; lay[1] = 3; lay[2] = 2; lay[3] = 1; break;
case 0x12: lay[0] = 0; lay[1] = 1; lay[2] = 3; lay[3] = 2; break;
@@ -1274,10 +1273,9 @@ SCREEN_UPDATE_IND16( hanamai )
}
-SCREEN_UPDATE_IND16( hnoridur )
+UINT32 dynax_state::screen_update_hnoridur(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dynax_state *state = screen.machine().driver_data<dynax_state>();
- int layers_ctrl = ~BITSWAP8(state->m_hanamai_priority, 7, 6, 5, 4, 0, 1, 2, 3);
+ int layers_ctrl = ~BITSWAP8(m_hanamai_priority, 7, 6, 5, 4, 0, 1, 2, 3);
int lay[4];
int pri;
@@ -1286,17 +1284,17 @@ SCREEN_UPDATE_IND16( hnoridur )
layers_ctrl &= debug_mask(screen.machine());
- bitmap.fill((state->m_blit_backpen & 0xff) + (state->m_blit_palbank & 0x0f) * 256, cliprect);
+ bitmap.fill((m_blit_backpen & 0xff) + (m_blit_palbank & 0x0f) * 256, cliprect);
- pri = state->m_hanamai_priority >> 4;
+ pri = m_hanamai_priority >> 4;
if (pri > 7)
{
- popmessage("unknown priority %02x", state->m_hanamai_priority);
+ popmessage("unknown priority %02x", m_hanamai_priority);
pri = 0;
}
- pri = state->m_priority_table[pri];
+ pri = m_priority_table[pri];
lay[0] = (pri >> 12) & 3;
lay[1] = (pri >> 8) & 3;
lay[2] = (pri >> 4) & 3;
@@ -1311,17 +1309,16 @@ SCREEN_UPDATE_IND16( hnoridur )
}
-SCREEN_UPDATE_IND16( sprtmtch )
+UINT32 dynax_state::screen_update_sprtmtch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dynax_state *state = screen.machine().driver_data<dynax_state>();
- int layers_ctrl = ~state->m_layer_enable;
+ int layers_ctrl = ~m_layer_enable;
if (debug_viewer(screen.machine(),bitmap,cliprect))
return 0;
layers_ctrl &= debug_mask(screen.machine());
- bitmap.fill((state->m_blit_backpen & 0xff) + (state->m_blit_palbank & 1) * 256, cliprect);
+ bitmap.fill((m_blit_backpen & 0xff) + (m_blit_palbank & 1) * 256, cliprect);
if (BIT(layers_ctrl, 0)) hanamai_copylayer(screen.machine(), bitmap, cliprect, 0);
if (BIT(layers_ctrl, 1)) hanamai_copylayer(screen.machine(), bitmap, cliprect, 1);
@@ -1329,17 +1326,16 @@ SCREEN_UPDATE_IND16( sprtmtch )
return 0;
}
-SCREEN_UPDATE_IND16( jantouki_top )
+UINT32 dynax_state::screen_update_jantouki_top(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dynax_state *state = screen.machine().driver_data<dynax_state>();
- int layers_ctrl = state->m_layer_enable;
+ int layers_ctrl = m_layer_enable;
if (debug_viewer(screen.machine(), bitmap, cliprect))
return 0;
layers_ctrl &= debug_mask(screen.machine());
- bitmap.fill((state->m_blit_backpen & 0xff) + (state->m_blit_palbank & 1) * 256, cliprect);
+ bitmap.fill((m_blit_backpen & 0xff) + (m_blit_palbank & 1) * 256, cliprect);
// if (BIT(layers_ctrl, 0)) jantouki_copylayer(screen.machine(), bitmap, cliprect, 3, 0);
if (BIT(layers_ctrl, 1)) jantouki_copylayer(screen.machine(), bitmap, cliprect, 2, 0);
@@ -1348,17 +1344,16 @@ SCREEN_UPDATE_IND16( jantouki_top )
return 0;
}
-SCREEN_UPDATE_IND16( jantouki_bottom )
+UINT32 dynax_state::screen_update_jantouki_bottom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dynax_state *state = screen.machine().driver_data<dynax_state>();
- int layers_ctrl = state->m_layer_enable;
+ int layers_ctrl = m_layer_enable;
if (debug_viewer(screen.machine(), bitmap, cliprect))
return 0;
layers_ctrl &= debug_mask(screen.machine());
- bitmap.fill((state->m_blit_backpen & 0xff) + (state->m_blit_palbank & 1) * 256, cliprect);
+ bitmap.fill((m_blit_backpen & 0xff) + (m_blit_palbank & 1) * 256, cliprect);
if (BIT(layers_ctrl, 0)) jantouki_copylayer(screen.machine(), bitmap, cliprect, 3, 0);
if (BIT(layers_ctrl, 4)) jantouki_copylayer(screen.machine(), bitmap, cliprect, 7, 0);
@@ -1369,17 +1364,16 @@ SCREEN_UPDATE_IND16( jantouki_bottom )
}
-SCREEN_UPDATE_IND16( mjdialq2 )
+UINT32 dynax_state::screen_update_mjdialq2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dynax_state *state = screen.machine().driver_data<dynax_state>();
- int layers_ctrl = ~state->m_layer_enable;
+ int layers_ctrl = ~m_layer_enable;
if (debug_viewer(screen.machine(), bitmap, cliprect))
return 0;
layers_ctrl &= debug_mask(screen.machine());
- bitmap.fill((state->m_blit_backpen & 0xff) + (state->m_blit_palbank & 1) * 256, cliprect);
+ bitmap.fill((m_blit_backpen & 0xff) + (m_blit_palbank & 1) * 256, cliprect);
if (BIT(layers_ctrl, 0)) mjdialq2_copylayer(screen.machine(), bitmap, cliprect, 0);
if (BIT(layers_ctrl, 1)) mjdialq2_copylayer(screen.machine(), bitmap, cliprect, 1);
@@ -1394,9 +1388,8 @@ VIDEO_START_MEMBER(dynax_state,htengoku)
VIDEO_START_CALL_MEMBER(hnoridur);
}
-SCREEN_UPDATE_IND16(htengoku)
+UINT32 dynax_state::screen_update_htengoku(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dynax_state *state = screen.machine().driver_data<dynax_state>();
int layer, x, y;
// render the layers, one by one, "dynax.c" style. Then convert the pixmaps to "ddenlovr.c"
@@ -1408,8 +1401,8 @@ SCREEN_UPDATE_IND16(htengoku)
for (y = 0; y < 256; y++)
for (x = 0; x < 512; x++)
- state->m_ddenlovr_pixmap[3 - layer][y * 512 + x] = (UINT8)(bitmap.pix16(y, x));
+ m_ddenlovr_pixmap[3 - layer][y * 512 + x] = (UINT8)(bitmap.pix16(y, x));
}
- return SCREEN_UPDATE16_CALL(ddenlovr);
+ return SCREEN_UPDATE16_CALL_MEMBER(ddenlovr);
}
diff --git a/src/mame/video/dynduke.c b/src/mame/video/dynduke.c
index cfc0c43adf2..57c402d13d9 100644
--- a/src/mame/video/dynduke.c
+++ b/src/mame/video/dynduke.c
@@ -219,14 +219,13 @@ static void draw_background(running_machine &machine, bitmap_ind16 &bitmap, cons
}
}
-SCREEN_UPDATE_IND16( dynduke )
+UINT32 dynduke_state::screen_update_dynduke(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dynduke_state *state = screen.machine().driver_data<dynduke_state>();
/* Setup the tilemaps */
- state->m_fg_layer->set_scrolly(0, ((state->m_scroll_ram[0x11]&0x30)<<4)+((state->m_scroll_ram[0x12]&0x7f)<<1)+((state->m_scroll_ram[0x12]&0x80)>>7) );
- state->m_fg_layer->set_scrollx(0, ((state->m_scroll_ram[0x19]&0x30)<<4)+((state->m_scroll_ram[0x1a]&0x7f)<<1)+((state->m_scroll_ram[0x1a]&0x80)>>7) );
- state->m_fg_layer->enable(state->m_fore_enable);
- state->m_tx_layer->enable(state->m_txt_enable);
+ m_fg_layer->set_scrolly(0, ((m_scroll_ram[0x11]&0x30)<<4)+((m_scroll_ram[0x12]&0x7f)<<1)+((m_scroll_ram[0x12]&0x80)>>7) );
+ m_fg_layer->set_scrollx(0, ((m_scroll_ram[0x19]&0x30)<<4)+((m_scroll_ram[0x1a]&0x7f)<<1)+((m_scroll_ram[0x1a]&0x80)>>7) );
+ m_fg_layer->enable(m_fore_enable);
+ m_tx_layer->enable(m_txt_enable);
draw_background(screen.machine(), bitmap, cliprect,0x00);
@@ -235,9 +234,9 @@ SCREEN_UPDATE_IND16( dynduke )
draw_background(screen.machine(), bitmap, cliprect,0x20);
draw_sprites(screen.machine(),bitmap,cliprect,2);
- state->m_fg_layer->draw(bitmap, cliprect, 0,0);
+ m_fg_layer->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(),bitmap,cliprect,3);
- state->m_tx_layer->draw(bitmap, cliprect, 0,0);
+ m_tx_layer->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/video/eolith.c b/src/mame/video/eolith.c
index d8fd24fdf66..b3fadaefd24 100644
--- a/src/mame/video/eolith.c
+++ b/src/mame/video/eolith.c
@@ -35,15 +35,14 @@ VIDEO_START_MEMBER(eolith_state,eolith)
m_vram = auto_alloc_array(machine(), UINT32, 0x40000*2/4);
}
-SCREEN_UPDATE_IND16( eolith )
+UINT32 eolith_state::screen_update_eolith(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- eolith_state *state = screen.machine().driver_data<eolith_state>();
int y;
for (y = 0; y < 240; y++)
{
int x;
- UINT32 *src = &state->m_vram[(state->m_buffer ? 0 : 0x10000) | (y * (336 / 2))];
+ UINT32 *src = &m_vram[(m_buffer ? 0 : 0x10000) | (y * (336 / 2))];
UINT16 *dest = &bitmap.pix16(y);
for (x = 0; x < 320; x += 2)
diff --git a/src/mame/video/epos.c b/src/mame/video/epos.c
index 2ab7ca791e0..5f8978f0b4f 100644
--- a/src/mame/video/epos.c
+++ b/src/mame/video/epos.c
@@ -71,23 +71,22 @@ WRITE8_MEMBER(epos_state::epos_port_1_w)
}
-SCREEN_UPDATE_RGB32( epos )
+UINT32 epos_state::screen_update_epos(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- epos_state *state = screen.machine().driver_data<epos_state>();
pen_t pens[0x20];
offs_t offs;
get_pens(screen.machine(), pens);
- for (offs = 0; offs < state->m_videoram.bytes(); offs++)
+ for (offs = 0; offs < m_videoram.bytes(); offs++)
{
- UINT8 data = state->m_videoram[offs];
+ UINT8 data = m_videoram[offs];
int x = (offs % 136) * 2;
int y = (offs / 136);
- bitmap.pix32(y, x + 0) = pens[(state->m_palette << 4) | (data & 0x0f)];
- bitmap.pix32(y, x + 1) = pens[(state->m_palette << 4) | (data >> 4)];
+ bitmap.pix32(y, x + 0) = pens[(m_palette << 4) | (data & 0x0f)];
+ bitmap.pix32(y, x + 1) = pens[(m_palette << 4) | (data >> 4)];
}
return 0;
diff --git a/src/mame/video/eprom.c b/src/mame/video/eprom.c
index b9899fe2b88..ecb8f21a17c 100644
--- a/src/mame/video/eprom.c
+++ b/src/mame/video/eprom.c
@@ -229,14 +229,13 @@ void eprom_scanline_update(screen_device &screen, int scanline)
*
*************************************/
-SCREEN_UPDATE_IND16( eprom )
+UINT32 eprom_state::screen_update_eprom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- eprom_state *state = screen.machine().driver_data<eprom_state>();
atarimo_rect_list rectlist;
bitmap_ind16 *mobitmap;
int x, y, r;
- if (state->m_video_disable)
+ if (m_video_disable)
{
bitmap.fill(get_black_pen(screen.machine()), cliprect);
return 0;
@@ -245,7 +244,7 @@ SCREEN_UPDATE_IND16( eprom )
update_palette(screen.machine());
/* draw the playfield */
- state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
/* draw and merge the MO */
mobitmap = atarimo_render(0, cliprect, &rectlist);
@@ -354,7 +353,7 @@ SCREEN_UPDATE_IND16( eprom )
}
/* add the alpha on top */
- state->m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
/* now go back and process the upper bit of MO priority */
rectlist.rect -= rectlist.numrects;
@@ -384,14 +383,13 @@ SCREEN_UPDATE_IND16( eprom )
}
-SCREEN_UPDATE_IND16( guts )
+UINT32 eprom_state::screen_update_guts(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- eprom_state *state = screen.machine().driver_data<eprom_state>();
atarimo_rect_list rectlist;
bitmap_ind16 *mobitmap;
int x, y, r;
- if (state->m_video_disable)
+ if (m_video_disable)
{
bitmap.fill(get_black_pen(screen.machine()), cliprect);
return 0;
@@ -400,7 +398,7 @@ SCREEN_UPDATE_IND16( guts )
update_palette(screen.machine());
/* draw the playfield */
- state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
/* draw and merge the MO */
mobitmap = atarimo_render(0, cliprect, &rectlist);
@@ -428,7 +426,7 @@ SCREEN_UPDATE_IND16( guts )
}
/* add the alpha on top */
- state->m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
/* now go back and process the upper bit of MO priority */
rectlist.rect -= rectlist.numrects;
diff --git a/src/mame/video/equites.c b/src/mame/video/equites.c
index f1285446dc2..78c97ad2518 100644
--- a/src/mame/video/equites.c
+++ b/src/mame/video/equites.c
@@ -449,34 +449,32 @@ static void splndrbt_copy_bg( running_machine &machine, bitmap_ind16 &dst_bitmap
-SCREEN_UPDATE_IND16( equites )
+UINT32 equites_state::screen_update_equites(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- equites_state *state = screen.machine().driver_data<equites_state>();
- bitmap.fill(state->m_bgcolor, cliprect);
+ bitmap.fill(m_bgcolor, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
equites_draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( splndrbt )
+UINT32 equites_state::screen_update_splndrbt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- equites_state *state = screen.machine().driver_data<equites_state>();
- bitmap.fill(state->m_bgcolor, cliprect);
+ bitmap.fill(m_bgcolor, cliprect);
splndrbt_copy_bg(screen.machine(), bitmap, cliprect);
- if (state->m_fg_char_bank)
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (m_fg_char_bank)
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
splndrbt_draw_sprites(screen.machine(), bitmap, cliprect);
- if (!state->m_fg_char_bank)
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (!m_fg_char_bank)
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/esd16.c b/src/mame/video/esd16.c
index 7e343381bfb..024932eb235 100644
--- a/src/mame/video/esd16.c
+++ b/src/mame/video/esd16.c
@@ -163,9 +163,8 @@ void esd16_state::video_start()
***************************************************************************/
-SCREEN_UPDATE_IND16( hedpanic )
+UINT32 esd16_state::screen_update_hedpanic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- esd16_state *state = screen.machine().driver_data<esd16_state>();
int layers_ctrl = -1;
screen.machine().priority_bitmap.fill(0, cliprect);
@@ -183,17 +182,17 @@ if (screen.machine().input().code_pressed(KEYCODE_Z))
if (layers_ctrl & 1)
{
- if (state->m_head_layersize[0] & 0x0001)
+ if (m_head_layersize[0] & 0x0001)
{
- state->m_tilemap_0_16x16->set_scrollx(0, state->m_scroll_0[0]);
- state->m_tilemap_0_16x16->set_scrolly(0, state->m_scroll_0[1]);
- state->m_tilemap_0_16x16->draw(bitmap, cliprect, 0, 0);
+ m_tilemap_0_16x16->set_scrollx(0, m_scroll_0[0]);
+ m_tilemap_0_16x16->set_scrolly(0, m_scroll_0[1]);
+ m_tilemap_0_16x16->draw(bitmap, cliprect, 0, 0);
}
else
{
- state->m_tilemap_0->set_scrollx(0, state->m_scroll_0[0]);
- state->m_tilemap_0->set_scrolly(0, state->m_scroll_0[1]);
- state->m_tilemap_0->draw(bitmap, cliprect, 0, 0);
+ m_tilemap_0->set_scrollx(0, m_scroll_0[0]);
+ m_tilemap_0->set_scrolly(0, m_scroll_0[1]);
+ m_tilemap_0->draw(bitmap, cliprect, 0, 0);
}
}
else
@@ -204,22 +203,22 @@ if (screen.machine().input().code_pressed(KEYCODE_Z))
if (layers_ctrl & 2)
{
- if (state->m_head_layersize[0] & 0x0002)
+ if (m_head_layersize[0] & 0x0002)
{
- state->m_tilemap_1_16x16->set_scrollx(0, state->m_scroll_1[0]);
- state->m_tilemap_1_16x16->set_scrolly(0, state->m_scroll_1[1]);
- state->m_tilemap_1_16x16->draw(bitmap, cliprect, 0, 1);
+ m_tilemap_1_16x16->set_scrollx(0, m_scroll_1[0]);
+ m_tilemap_1_16x16->set_scrolly(0, m_scroll_1[1]);
+ m_tilemap_1_16x16->draw(bitmap, cliprect, 0, 1);
}
else
{
- state->m_tilemap_1->set_scrollx(0, state->m_scroll_1[0]);
- state->m_tilemap_1->set_scrolly(0, state->m_scroll_1[1]);
- state->m_tilemap_1->draw(bitmap, cliprect, 0, 1);
+ m_tilemap_1->set_scrollx(0, m_scroll_1[0]);
+ m_tilemap_1->set_scrolly(0, m_scroll_1[1]);
+ m_tilemap_1->draw(bitmap, cliprect, 0, 1);
}
}
- if (layers_ctrl & 4) screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400);
+ if (layers_ctrl & 4) screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
// popmessage("%04x %04x %04x %04x %04x",head_unknown1[0],head_layersize[0],head_unknown3[0],head_unknown4[0],head_unknown5[0]);
return 0;
diff --git a/src/mame/video/espial.c b/src/mame/video/espial.c
index 4906e6ab9cf..dae88c368a2 100644
--- a/src/mame/video/espial.c
+++ b/src/mame/video/espial.c
@@ -225,11 +225,10 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
-SCREEN_UPDATE_IND16( espial )
+UINT32 espial_state::screen_update_espial(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- espial_state *state = screen.machine().driver_data<espial_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/esripsys.c b/src/mame/video/esripsys.c
index 682f964d300..49e529cfea7 100644
--- a/src/mame/video/esripsys.c
+++ b/src/mame/video/esripsys.c
@@ -150,15 +150,14 @@ void esripsys_state::video_start()
state_save_register_global(machine(), m_12sel);
}
-SCREEN_UPDATE_RGB32( esripsys )
+UINT32 esripsys_state::screen_update_esripsys(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- esripsys_state *state = screen.machine().driver_data<esripsys_state>();
- struct line_buffer_t *line_buffer = state->m_line_buffer;
+ struct line_buffer_t *line_buffer = m_line_buffer;
int x, y;
- UINT8 *colour_buf = line_buffer[state->m_12sel ? 0 : 1].colour_buf;
- UINT8 *intensity_buf = line_buffer[state->m_12sel ? 0 : 1].intensity_buf;
- UINT8 *priority_buf = line_buffer[state->m_12sel ? 0 : 1].priority_buf;
+ UINT8 *colour_buf = line_buffer[m_12sel ? 0 : 1].colour_buf;
+ UINT8 *intensity_buf = line_buffer[m_12sel ? 0 : 1].intensity_buf;
+ UINT8 *priority_buf = line_buffer[m_12sel ? 0 : 1].priority_buf;
for (y = cliprect.min_y; y <= cliprect.max_y; ++y)
{
@@ -167,16 +166,16 @@ SCREEN_UPDATE_RGB32( esripsys )
for (x = 0; x < 512; ++x)
{
int idx = colour_buf[x];
- int r = (state->m_pal_ram[idx] & 0xf);
- int g = (state->m_pal_ram[256 + idx] & 0xf);
- int b = (state->m_pal_ram[512 + idx] & 0xf);
+ int r = (m_pal_ram[idx] & 0xf);
+ int g = (m_pal_ram[256 + idx] & 0xf);
+ int b = (m_pal_ram[512 + idx] & 0xf);
int i = intensity_buf[x];
*dest++ = MAKE_RGB(r*i, g*i, b*i);
/* Clear the line buffer as we scan out */
colour_buf[x] = 0xff;
- intensity_buf[x] = state->m_bg_intensity;
+ intensity_buf[x] = m_bg_intensity;
priority_buf[x] = 0;
}
}
diff --git a/src/mame/video/exedexes.c b/src/mame/video/exedexes.c
index 7f03b3414cc..b141fc13ebc 100644
--- a/src/mame/video/exedexes.c
+++ b/src/mame/video/exedexes.c
@@ -212,30 +212,29 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( exedexes )
+UINT32 exedexes_state::screen_update_exedexes(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- exedexes_state *state = screen.machine().driver_data<exedexes_state>();
- if (state->m_sc2on)
+ if (m_sc2on)
{
- state->m_bg_tilemap->set_scrollx(0, ((state->m_bg_scroll[1]) << 8) + state->m_bg_scroll[0]);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->set_scrollx(0, ((m_bg_scroll[1]) << 8) + m_bg_scroll[0]);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
}
else
bitmap.fill(0, cliprect);
draw_sprites(screen.machine(), bitmap, cliprect, 1);
- if (state->m_sc1on)
+ if (m_sc1on)
{
- state->m_fg_tilemap->set_scrollx(0, ((state->m_nbg_yscroll[1]) << 8) + state->m_nbg_yscroll[0]);
- state->m_fg_tilemap->set_scrolly(0, ((state->m_nbg_xscroll[1]) << 8) + state->m_nbg_xscroll[0]);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->set_scrollx(0, ((m_nbg_yscroll[1]) << 8) + m_nbg_yscroll[0]);
+ m_fg_tilemap->set_scrolly(0, ((m_nbg_xscroll[1]) << 8) + m_nbg_xscroll[0]);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
}
draw_sprites(screen.machine(), bitmap, cliprect, 0);
- if (state->m_chon)
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (m_chon)
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/exerion.c b/src/mame/video/exerion.c
index ae3cab1b0e0..ddf5b53dc48 100644
--- a/src/mame/video/exerion.c
+++ b/src/mame/video/exerion.c
@@ -348,21 +348,20 @@ static void draw_background( running_machine &machine, bitmap_ind16 &bitmap, con
*
*************************************/
-SCREEN_UPDATE_IND16( exerion )
+UINT32 exerion_state::screen_update_exerion(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- exerion_state *state = screen.machine().driver_data<exerion_state>();
int sx, sy, offs, i;
/* draw background */
draw_background(screen.machine(), bitmap, cliprect);
/* draw sprites */
- for (i = 0; i < state->m_spriteram.bytes(); i += 4)
+ for (i = 0; i < m_spriteram.bytes(); i += 4)
{
- int flags = state->m_spriteram[i + 0];
- int y = state->m_spriteram[i + 1] ^ 255;
- int code = state->m_spriteram[i + 2];
- int x = state->m_spriteram[i + 3] * 2 + 72;
+ int flags = m_spriteram[i + 0];
+ int y = m_spriteram[i + 1] ^ 255;
+ int code = m_spriteram[i + 2];
+ int x = m_spriteram[i + 3] * 2 + 72;
int xflip = flags & 0x80;
int yflip = flags & 0x40;
@@ -370,10 +369,10 @@ SCREEN_UPDATE_IND16( exerion )
int wide = flags & 0x08;
int code2 = code;
- int color = ((flags >> 1) & 0x03) | ((code >> 5) & 0x04) | (code & 0x08) | (state->m_sprite_palette * 16);
+ int color = ((flags >> 1) & 0x03) | ((code >> 5) & 0x04) | (code & 0x08) | (m_sprite_palette * 16);
gfx_element *gfx = doubled ? screen.machine().gfx[2] : screen.machine().gfx[1];
- if (state->m_cocktail_flip)
+ if (m_cocktail_flip)
{
x = 64*8 - gfx->width() - x;
y = 32*8 - gfx->height() - y;
@@ -403,14 +402,14 @@ SCREEN_UPDATE_IND16( exerion )
for (sy = cliprect.min_y/8; sy <= cliprect.max_y/8; sy++)
for (sx = VISIBLE_X_MIN/8; sx < VISIBLE_X_MAX/8; sx++)
{
- int x = state->m_cocktail_flip ? (63*8 - 8*sx) : 8*sx;
- int y = state->m_cocktail_flip ? (31*8 - 8*sy) : 8*sy;
+ int x = m_cocktail_flip ? (63*8 - 8*sx) : 8*sx;
+ int y = m_cocktail_flip ? (31*8 - 8*sy) : 8*sy;
offs = sx + sy * 64;
drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0],
- state->m_videoram[offs] + 256 * state->m_char_bank,
- ((state->m_videoram[offs] & 0xf0) >> 4) + state->m_char_palette * 16,
- state->m_cocktail_flip, state->m_cocktail_flip, x, y, 0);
+ m_videoram[offs] + 256 * m_char_bank,
+ ((m_videoram[offs] & 0xf0) >> 4) + m_char_palette * 16,
+ m_cocktail_flip, m_cocktail_flip, x, y, 0);
}
return 0;
diff --git a/src/mame/video/exidy.c b/src/mame/video/exidy.c
index 26fc0b56f62..c0a5c242f9a 100644
--- a/src/mame/video/exidy.c
+++ b/src/mame/video/exidy.c
@@ -356,15 +356,14 @@ static void check_collision(running_machine &machine)
*
*************************************/
-SCREEN_UPDATE_IND16( exidy )
+UINT32 exidy_state::screen_update_exidy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- exidy_state *state = screen.machine().driver_data<exidy_state>();
/* refresh the colors from the palette (static or dynamic) */
set_colors(screen.machine());
/* update the background and draw it */
draw_background(screen.machine());
- copybitmap(bitmap, state->m_background_bitmap, 0, 0, 0, 0, cliprect);
+ copybitmap(bitmap, m_background_bitmap, 0, 0, 0, 0, cliprect);
/* draw the sprites */
draw_sprites(screen.machine(), bitmap, cliprect);
diff --git a/src/mame/video/exidy440.c b/src/mame/video/exidy440.c
index 2ae4908e966..9c2d81ee367 100644
--- a/src/mame/video/exidy440.c
+++ b/src/mame/video/exidy440.c
@@ -423,7 +423,7 @@ static void update_screen(screen_device &screen, bitmap_ind16 &bitmap, const rec
*
*************************************/
-static SCREEN_UPDATE_IND16( exidy440 )
+UINT32 exidy440_state::screen_update_exidy440(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
/* redraw the screen */
update_screen(screen, bitmap, cliprect, 0, TRUE);
@@ -455,11 +455,10 @@ static SCREEN_UPDATE_IND16( exidy440 )
}
-static SCREEN_UPDATE_IND16( topsecex )
+UINT32 exidy440_state::screen_update_topsecex(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- exidy440_state *state = screen.machine().driver_data<exidy440_state>();
/* redraw the screen */
- update_screen(screen, bitmap, cliprect, *state->m_topsecex_yscroll, FALSE);
+ update_screen(screen, bitmap, cliprect, *m_topsecex_yscroll, FALSE);
return 0;
}
@@ -479,7 +478,7 @@ MACHINE_CONFIG_FRAGMENT( exidy440_video )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(exidy440)
+ MCFG_SCREEN_UPDATE_DRIVER(exidy440_state, screen_update_exidy440)
MACHINE_CONFIG_END
@@ -489,5 +488,5 @@ MACHINE_CONFIG_FRAGMENT( topsecex_video )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, TOPSECEX_VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(topsecex)
+ MCFG_SCREEN_UPDATE_DRIVER(exidy440_state, screen_update_topsecex)
MACHINE_CONFIG_END
diff --git a/src/mame/video/exprraid.c b/src/mame/video/exprraid.c
index cb68c46fa38..0cc58f99c71 100644
--- a/src/mame/video/exprraid.c
+++ b/src/mame/video/exprraid.c
@@ -128,12 +128,11 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( exprraid )
+UINT32 exprraid_state::screen_update_exprraid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- exprraid_state *state = screen.machine().driver_data<exprraid_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/exzisus.c b/src/mame/video/exzisus.c
index 7404b85c2eb..9fa88507fe5 100644
--- a/src/mame/video/exzisus.c
+++ b/src/mame/video/exzisus.c
@@ -68,9 +68,8 @@ WRITE8_MEMBER(exzisus_state::exzisus_objectram_1_w)
Screen refresh
***************************************************************************/
-SCREEN_UPDATE_IND16( exzisus )
+UINT32 exzisus_state::screen_update_exzisus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- exzisus_state *state = screen.machine().driver_data<exzisus_state>();
int offs;
int sx, sy, xc, yc;
int gfx_num, gfx_attr, gfx_offs;
@@ -80,25 +79,25 @@ SCREEN_UPDATE_IND16( exzisus )
/* ---------- 1st TC0010VCU ---------- */
sx = 0;
- for (offs = 0 ; offs < state->m_objectram0.bytes() ; offs += 4)
+ for (offs = 0 ; offs < m_objectram0.bytes() ; offs += 4)
{
int height;
/* Skip empty sprites. */
- if ( !(*(UINT32 *)(&state->m_objectram0[offs])) )
+ if ( !(*(UINT32 *)(&m_objectram0[offs])) )
{
continue;
}
- gfx_num = state->m_objectram0[offs + 1];
- gfx_attr = state->m_objectram0[offs + 3];
+ gfx_num = m_objectram0[offs + 1];
+ gfx_attr = m_objectram0[offs + 3];
if ((gfx_num & 0x80) == 0) /* 16x16 sprites */
{
gfx_offs = ((gfx_num & 0x7f) << 3);
height = 2;
- sx = state->m_objectram0[offs + 2];
+ sx = m_objectram0[offs + 2];
sx |= (gfx_attr & 0x40) << 2;
}
else /* tilemaps (each sprite is a 16x256 column) */
@@ -112,12 +111,12 @@ SCREEN_UPDATE_IND16( exzisus )
}
else
{
- sx = state->m_objectram0[offs + 2];
+ sx = m_objectram0[offs + 2];
sx |= (gfx_attr & 0x40) << 2;
}
}
- sy = 256 - (height << 3) - (state->m_objectram0[offs]);
+ sy = 256 - (height << 3) - (m_objectram0[offs]);
for (xc = 0 ; xc < 2 ; xc++)
{
@@ -126,12 +125,12 @@ SCREEN_UPDATE_IND16( exzisus )
{
int code, color, x, y;
- code = (state->m_videoram0[goffs + 1] << 8) | state->m_videoram0[goffs];
- color = (state->m_videoram0[goffs + 1] >> 6) | (gfx_attr & 0x0f);
+ code = (m_videoram0[goffs + 1] << 8) | m_videoram0[goffs];
+ color = (m_videoram0[goffs + 1] >> 6) | (gfx_attr & 0x0f);
x = (sx + (xc << 3)) & 0xff;
y = (sy + (yc << 3)) & 0xff;
- if (state->flip_screen())
+ if (flip_screen())
{
x = 248 - x;
y = 248 - y;
@@ -140,7 +139,7 @@ SCREEN_UPDATE_IND16( exzisus )
drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0],
code & 0x3fff,
color,
- state->flip_screen(), state->flip_screen(),
+ flip_screen(), flip_screen(),
x, y, 15);
goffs += 2;
}
@@ -150,25 +149,25 @@ SCREEN_UPDATE_IND16( exzisus )
/* ---------- 2nd TC0010VCU ---------- */
sx = 0;
- for (offs = 0 ; offs < state->m_objectram1.bytes() ; offs += 4)
+ for (offs = 0 ; offs < m_objectram1.bytes() ; offs += 4)
{
int height;
/* Skip empty sprites. */
- if ( !(*(UINT32 *)(&state->m_objectram1[offs])) )
+ if ( !(*(UINT32 *)(&m_objectram1[offs])) )
{
continue;
}
- gfx_num = state->m_objectram1[offs + 1];
- gfx_attr = state->m_objectram1[offs + 3];
+ gfx_num = m_objectram1[offs + 1];
+ gfx_attr = m_objectram1[offs + 3];
if ((gfx_num & 0x80) == 0) /* 16x16 sprites */
{
gfx_offs = ((gfx_num & 0x7f) << 3);
height = 2;
- sx = state->m_objectram1[offs + 2];
+ sx = m_objectram1[offs + 2];
sx |= (gfx_attr & 0x40) << 2;
}
else /* tilemaps (each sprite is a 16x256 column) */
@@ -182,11 +181,11 @@ SCREEN_UPDATE_IND16( exzisus )
}
else
{
- sx = state->m_objectram1[offs + 2];
+ sx = m_objectram1[offs + 2];
sx |= (gfx_attr & 0x40) << 2;
}
}
- sy = 256 - (height << 3) - (state->m_objectram1[offs]);
+ sy = 256 - (height << 3) - (m_objectram1[offs]);
for (xc = 0 ; xc < 2 ; xc++)
{
@@ -195,12 +194,12 @@ SCREEN_UPDATE_IND16( exzisus )
{
int code, color, x, y;
- code = (state->m_videoram1[goffs + 1] << 8) | state->m_videoram1[goffs];
- color = (state->m_videoram1[goffs + 1] >> 6) | (gfx_attr & 0x0f);
+ code = (m_videoram1[goffs + 1] << 8) | m_videoram1[goffs];
+ color = (m_videoram1[goffs + 1] >> 6) | (gfx_attr & 0x0f);
x = (sx + (xc << 3)) & 0xff;
y = (sy + (yc << 3)) & 0xff;
- if (state->flip_screen())
+ if (flip_screen())
{
x = 248 - x;
y = 248 - y;
@@ -209,7 +208,7 @@ SCREEN_UPDATE_IND16( exzisus )
drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1],
code & 0x3fff,
color,
- state->flip_screen(), state->flip_screen(),
+ flip_screen(), flip_screen(),
x, y, 15);
goffs += 2;
}
diff --git a/src/mame/video/f1gp.c b/src/mame/video/f1gp.c
index 29179cd342b..af8dca8fdeb 100644
--- a/src/mame/video/f1gp.c
+++ b/src/mame/video/f1gp.c
@@ -236,18 +236,17 @@ static void f1gp_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, c
}
-SCREEN_UPDATE_IND16( f1gp )
+UINT32 f1gp_state::screen_update_f1gp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- f1gp_state *state = screen.machine().driver_data<f1gp_state>();
screen.machine().priority_bitmap.fill(0, cliprect);
- k053936_zoom_draw(state->m_k053936, bitmap, cliprect, state->m_roz_tilemap, 0, 0, 1);
+ k053936_zoom_draw(m_k053936, bitmap, cliprect, m_roz_tilemap, 0, 0, 1);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 1);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 1);
/* quick kludge for "continue" screen priority */
- if (state->m_gfxctrl == 0x00)
+ if (m_gfxctrl == 0x00)
{
f1gp_draw_sprites(screen.machine(), bitmap, cliprect, 0, 0x02);
f1gp_draw_sprites(screen.machine(), bitmap, cliprect, 1, 0x02);
@@ -329,28 +328,27 @@ static void f1gpb_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap,c
}
}
-SCREEN_UPDATE_IND16( f1gpb )
+UINT32 f1gp_state::screen_update_f1gpb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- f1gp_state *state = screen.machine().driver_data<f1gp_state>();
UINT32 startx, starty;
int incxx, incxy, incyx, incyy;
- incxy = (INT16)state->m_rozregs[1];
+ incxy = (INT16)m_rozregs[1];
incyx = -incxy;
- incxx = incyy = (INT16)state->m_rozregs[3];
- startx = state->m_rozregs[0] + 328;
- starty = state->m_rozregs[2];
+ incxx = incyy = (INT16)m_rozregs[3];
+ startx = m_rozregs[0] + 328;
+ starty = m_rozregs[2];
- state->m_fg_tilemap->set_scrolly(0, state->m_fgregs[0] + 8);
+ m_fg_tilemap->set_scrolly(0, m_fgregs[0] + 8);
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_roz_tilemap->draw_roz(bitmap, cliprect,
+ m_roz_tilemap->draw_roz(bitmap, cliprect,
startx << 13, starty << 13,
incxx << 5, incxy << 5, incyx << 5, incyy << 5,
1, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 1);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 1);
f1gpb_draw_sprites(screen.machine(), bitmap, cliprect);
@@ -430,29 +428,28 @@ static void f1gp2_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap,
}
-SCREEN_UPDATE_IND16( f1gp2 )
+UINT32 f1gp_state::screen_update_f1gp2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- f1gp_state *state = screen.machine().driver_data<f1gp_state>();
- if (state->m_gfxctrl & 4) /* blank screen */
+ if (m_gfxctrl & 4) /* blank screen */
bitmap.fill(get_black_pen(screen.machine()), cliprect);
else
{
- switch (state->m_gfxctrl & 3)
+ switch (m_gfxctrl & 3)
{
case 0:
- k053936_zoom_draw(state->m_k053936, bitmap, cliprect, state->m_roz_tilemap, TILEMAP_DRAW_OPAQUE, 0, 1);
+ k053936_zoom_draw(m_k053936, bitmap, cliprect, m_roz_tilemap, TILEMAP_DRAW_OPAQUE, 0, 1);
f1gp2_draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
break;
case 1:
- k053936_zoom_draw(state->m_k053936, bitmap, cliprect, state->m_roz_tilemap, TILEMAP_DRAW_OPAQUE, 0, 1);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ k053936_zoom_draw(m_k053936, bitmap, cliprect, m_roz_tilemap, TILEMAP_DRAW_OPAQUE, 0, 1);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
f1gp2_draw_sprites(screen.machine(), bitmap, cliprect);
break;
case 2:
- state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- k053936_zoom_draw(state->m_k053936, bitmap, cliprect, state->m_roz_tilemap, 0, 0, 1);
+ m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ k053936_zoom_draw(m_k053936, bitmap, cliprect, m_roz_tilemap, 0, 0, 1);
f1gp2_draw_sprites(screen.machine(), bitmap, cliprect);
break;
#ifdef MAME_DEBUG
diff --git a/src/mame/video/fantland.c b/src/mame/video/fantland.c
index 13980805707..360369c76f1 100644
--- a/src/mame/video/fantland.c
+++ b/src/mame/video/fantland.c
@@ -139,7 +139,7 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re
}
}
-SCREEN_UPDATE_IND16( fantland )
+UINT32 fantland_state::screen_update_fantland(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(0, cliprect);
draw_sprites(screen.machine(),bitmap,cliprect);
diff --git a/src/mame/video/fastfred.c b/src/mame/video/fastfred.c
index 8e7a53242e3..a1fbadbf190 100644
--- a/src/mame/video/fastfred.c
+++ b/src/mame/video/fastfred.c
@@ -295,11 +295,10 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
-SCREEN_UPDATE_IND16( fastfred )
+UINT32 fastfred_state::screen_update_fastfred(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- fastfred_state *state = screen.machine().driver_data<fastfred_state>();
- bitmap.fill(*state->m_background_color, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ bitmap.fill(*m_background_color, cliprect);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
@@ -362,14 +361,13 @@ VIDEO_START_MEMBER(fastfred_state,imago)
palette_set_color(machine(),256+64+1,MAKE_RGB(0x00,0x00,0x00));
}
-SCREEN_UPDATE_IND16( imago )
+UINT32 fastfred_state::screen_update_imago(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- fastfred_state *state = screen.machine().driver_data<fastfred_state>();
- state->m_web_tilemap->draw(bitmap, cliprect, 0,0);
+ m_web_tilemap->draw(bitmap, cliprect, 0,0);
galaxold_draw_stars(screen.machine(), bitmap, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/video/fastlane.c b/src/mame/video/fastlane.c
index 14f197bd10e..244de5c0ea8 100644
--- a/src/mame/video/fastlane.c
+++ b/src/mame/video/fastlane.c
@@ -151,10 +151,9 @@ WRITE8_MEMBER(fastlane_state::fastlane_vram2_w)
***************************************************************************/
-SCREEN_UPDATE_IND16( fastlane )
+UINT32 fastlane_state::screen_update_fastlane(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- fastlane_state *state = screen.machine().driver_data<fastlane_state>();
- rectangle finalclip0 = state->m_clip0, finalclip1 = state->m_clip1;
+ rectangle finalclip0 = m_clip0, finalclip1 = m_clip1;
int i, xoffs;
finalclip0 &= cliprect;
@@ -164,14 +163,14 @@ SCREEN_UPDATE_IND16( fastlane )
/* set scroll registers */
address_space &space = screen.machine().driver_data()->generic_space();
- xoffs = k007121_ctrlram_r(state->m_k007121, space, 0);
+ xoffs = k007121_ctrlram_r(m_k007121, space, 0);
for (i = 0; i < 32; i++)
- state->m_layer0->set_scrollx(i, state->m_k007121_regs[0x20 + i] + xoffs - 40);
+ m_layer0->set_scrollx(i, m_k007121_regs[0x20 + i] + xoffs - 40);
- state->m_layer0->set_scrolly(0, k007121_ctrlram_r(state->m_k007121, space, 2));
+ m_layer0->set_scrolly(0, k007121_ctrlram_r(m_k007121, space, 2));
- state->m_layer0->draw(bitmap, finalclip0, 0, 0);
- k007121_sprites_draw(state->m_k007121, bitmap, cliprect, screen.machine().gfx[0], screen.machine().colortable, state->m_spriteram, 0, 40, 0, (UINT32)-1);
- state->m_layer1->draw(bitmap, finalclip1, 0, 0);
+ m_layer0->draw(bitmap, finalclip0, 0, 0);
+ k007121_sprites_draw(m_k007121, bitmap, cliprect, screen.machine().gfx[0], screen.machine().colortable, m_spriteram, 0, 40, 0, (UINT32)-1);
+ m_layer1->draw(bitmap, finalclip1, 0, 0);
return 0;
}
diff --git a/src/mame/video/fcombat.c b/src/mame/video/fcombat.c
index 02838cbb3a9..01583bd3bc6 100644
--- a/src/mame/video/fcombat.c
+++ b/src/mame/video/fcombat.c
@@ -133,26 +133,25 @@ WRITE8_MEMBER(fcombat_state::fcombat_videoreg_w)
-SCREEN_UPDATE_IND16( fcombat )
+UINT32 fcombat_state::screen_update_fcombat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- fcombat_state *state = screen.machine().driver_data<fcombat_state>();
int sx, sy, offs, i;
/* draw background */
- state->m_bgmap->set_scrolly(0, state->m_fcombat_sh);
- state->m_bgmap->set_scrollx(0, state->m_fcombat_sv - 24);
+ m_bgmap->set_scrolly(0, m_fcombat_sh);
+ m_bgmap->set_scrollx(0, m_fcombat_sv - 24);
- state->m_bgmap->mark_all_dirty();
- state->m_bgmap->draw(bitmap, cliprect, 0, 0);
+ m_bgmap->mark_all_dirty();
+ m_bgmap->draw(bitmap, cliprect, 0, 0);
//draw_background(bitmap, cliprect);
/* draw sprites */
- for (i = 0; i < state->m_spriteram.bytes(); i += 4)
+ for (i = 0; i < m_spriteram.bytes(); i += 4)
{
- int flags = state->m_spriteram[i + 0];
- int y = state->m_spriteram[i + 1] ^ 255;
- int code = state->m_spriteram[i + 2] + ((flags & 0x20) << 3);
- int x = state->m_spriteram[i + 3] * 2 + 72;
+ int flags = m_spriteram[i + 0];
+ int y = m_spriteram[i + 1] ^ 255;
+ int code = m_spriteram[i + 2] + ((flags & 0x20) << 3);
+ int x = m_spriteram[i + 3] * 2 + 72;
int xflip = flags & 0x80;
int yflip = flags & 0x40;
@@ -160,10 +159,10 @@ SCREEN_UPDATE_IND16( fcombat )
int wide = flags & 0x08;
int code2 = code;
- int color = ((flags >> 1) & 0x03) | ((code >> 5) & 0x04) | (code & 0x08) | (state->m_sprite_palette * 16);
+ int color = ((flags >> 1) & 0x03) | ((code >> 5) & 0x04) | (code & 0x08) | (m_sprite_palette * 16);
gfx_element *gfx = screen.machine().gfx[1];
- if (state->m_cocktail_flip)
+ if (m_cocktail_flip)
{
x = 64 * 8 - gfx->width() - x;
y = 32 * 8 - gfx->height() - y;
@@ -199,14 +198,14 @@ SCREEN_UPDATE_IND16( fcombat )
for (sy = VISIBLE_Y_MIN/8; sy < VISIBLE_Y_MAX/8; sy++)
for (sx = VISIBLE_X_MIN/8; sx < VISIBLE_X_MAX/8; sx++)
{
- int x = state->m_cocktail_flip ? (63 * 8 - 8 * sx) : 8 * sx;
- int y = state->m_cocktail_flip ? (31 * 8 - 8 * sy) : 8 * sy;
+ int x = m_cocktail_flip ? (63 * 8 - 8 * sx) : 8 * sx;
+ int y = m_cocktail_flip ? (31 * 8 - 8 * sy) : 8 * sy;
offs = sx + sy * 64;
drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0],
- state->m_videoram[offs] + 256 * state->m_char_bank,
- ((state->m_videoram[offs] & 0xf0) >> 4) + state->m_char_palette * 16,
- state->m_cocktail_flip, state->m_cocktail_flip, x, y, 0);
+ m_videoram[offs] + 256 * m_char_bank,
+ ((m_videoram[offs] & 0xf0) >> 4) + m_char_palette * 16,
+ m_cocktail_flip, m_cocktail_flip, x, y, 0);
}
return 0;
}
diff --git a/src/mame/video/fgoal.c b/src/mame/video/fgoal.c
index 2c4501e7e08..88002ebc2f1 100644
--- a/src/mame/video/fgoal.c
+++ b/src/mame/video/fgoal.c
@@ -36,10 +36,9 @@ void fgoal_state::video_start()
}
-SCREEN_UPDATE_IND16( fgoal )
+UINT32 fgoal_state::screen_update_fgoal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- fgoal_state *state = screen.machine().driver_data<fgoal_state>();
- const UINT8* VRAM = state->m_video_ram;
+ const UINT8* VRAM = m_video_ram;
int x;
int y;
@@ -47,16 +46,16 @@ SCREEN_UPDATE_IND16( fgoal )
/* draw color overlay foreground and background */
- if (state->m_fgoal_player == 1 && (screen.machine().root_device().ioport("IN1")->read() & 0x40))
+ if (m_fgoal_player == 1 && (screen.machine().root_device().ioport("IN1")->read() & 0x40))
{
- drawgfxzoom_opaque(state->m_fgbitmap, cliprect, screen.machine().gfx[0],
- 0, (state->m_fgoal_player << 2) | state->m_current_color,
+ drawgfxzoom_opaque(m_fgbitmap, cliprect, screen.machine().gfx[0],
+ 0, (m_fgoal_player << 2) | m_current_color,
1, 1,
0, 16,
0x40000,
0x40000);
- drawgfxzoom_opaque(state->m_bgbitmap, cliprect, screen.machine().gfx[1],
+ drawgfxzoom_opaque(m_bgbitmap, cliprect, screen.machine().gfx[1],
0, 0,
1, 1,
0, 16,
@@ -65,14 +64,14 @@ SCREEN_UPDATE_IND16( fgoal )
}
else
{
- drawgfxzoom_opaque(state->m_fgbitmap, cliprect, screen.machine().gfx[0],
- 0, (state->m_fgoal_player << 2) | state->m_current_color,
+ drawgfxzoom_opaque(m_fgbitmap, cliprect, screen.machine().gfx[0],
+ 0, (m_fgoal_player << 2) | m_current_color,
0, 0,
0, 0,
0x40000,
0x40000);
- drawgfxzoom_opaque(state->m_bgbitmap, cliprect, screen.machine().gfx[1],
+ drawgfxzoom_opaque(m_bgbitmap, cliprect, screen.machine().gfx[1],
0, 0,
0, 0,
0, 0,
@@ -82,13 +81,13 @@ SCREEN_UPDATE_IND16( fgoal )
/* the ball has a fixed color */
- for (y = state->m_ypos; y < state->m_ypos + 8; y++)
+ for (y = m_ypos; y < m_ypos + 8; y++)
{
- for (x = state->m_xpos; x < state->m_xpos + 8; x++)
+ for (x = m_xpos; x < m_xpos + 8; x++)
{
if (y < 256 && x < 256)
{
- state->m_fgbitmap.pix16(y, x) = 128 + 16;
+ m_fgbitmap.pix16(y, x) = 128 + 16;
}
}
}
@@ -99,8 +98,8 @@ SCREEN_UPDATE_IND16( fgoal )
{
UINT16* p = &bitmap.pix16(y);
- const UINT16* FG = &state->m_fgbitmap.pix16(y);
- const UINT16* BG = &state->m_bgbitmap.pix16(y);
+ const UINT16* FG = &m_fgbitmap.pix16(y);
+ const UINT16* BG = &m_bgbitmap.pix16(y);
for (x = 0; x < 256; x += 8)
{
diff --git a/src/mame/video/finalizr.c b/src/mame/video/finalizr.c
index 9fb81139940..d68730fe951 100644
--- a/src/mame/video/finalizr.c
+++ b/src/mame/video/finalizr.c
@@ -82,26 +82,25 @@ WRITE8_MEMBER(finalizr_state::finalizr_videoctrl_w)
-SCREEN_UPDATE_IND16( finalizr )
+UINT32 finalizr_state::screen_update_finalizr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- finalizr_state *state = screen.machine().driver_data<finalizr_state>();
int offs;
- state->m_bg_tilemap->mark_all_dirty();
- state->m_fg_tilemap->mark_all_dirty();
+ m_bg_tilemap->mark_all_dirty();
+ m_fg_tilemap->mark_all_dirty();
- state->m_bg_tilemap->set_scrollx(0, *state->m_scroll - 32);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->set_scrollx(0, *m_scroll - 32);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
/* Draw the sprites. */
{
gfx_element *gfx1 = screen.machine().gfx[1];
gfx_element *gfx2 = screen.machine().gfx[2];
- UINT8 *sr = state->m_spriterambank ? state->m_spriteram_2 : state->m_spriteram;
+ UINT8 *sr = m_spriterambank ? m_spriteram_2 : m_spriteram;
- for (offs = 0; offs <= state->m_spriteram.bytes() - 5; offs += 5)
+ for (offs = 0; offs <= m_spriteram.bytes() - 5; offs += 5)
{
int sx, sy, flipx, flipy, code, color, size;
@@ -119,7 +118,7 @@ SCREEN_UPDATE_IND16( finalizr )
if (size >= 0x10) /* 32x32 */
{
- if (state->flip_screen())
+ if (flip_screen())
{
sx = 256 - sx;
sy = 224 - sy;
@@ -150,7 +149,7 @@ SCREEN_UPDATE_IND16( finalizr )
}
else
{
- if (state->flip_screen())
+ if (flip_screen())
{
sx = ((size & 0x08) ? 280:272) - sx;
sy = ((size & 0x04) ? 248:240) - sy;
@@ -216,8 +215,8 @@ SCREEN_UPDATE_IND16( finalizr )
/* draw top status region */
clip.min_x = visarea.min_x;
clip.max_x = visarea.min_x + 31;
- state->m_fg_tilemap->set_scrolldx(0,-32);
- state->m_fg_tilemap->draw(bitmap, clip, 0, 0);
+ m_fg_tilemap->set_scrolldx(0,-32);
+ m_fg_tilemap->draw(bitmap, clip, 0, 0);
}
return 0;
}
diff --git a/src/mame/video/firetrap.c b/src/mame/video/firetrap.c
index 0ab7ba8dcb3..edb7859eb7a 100644
--- a/src/mame/video/firetrap.c
+++ b/src/mame/video/firetrap.c
@@ -261,12 +261,11 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( firetrap )
+UINT32 firetrap_state::screen_update_firetrap(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- firetrap_state *state = screen.machine().driver_data<firetrap_state>();
- state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/firetrk.c b/src/mame/video/firetrk.c
index c321d4b0937..3db35af7d54 100644
--- a/src/mame/video/firetrk.c
+++ b/src/mame/video/firetrk.c
@@ -347,98 +347,95 @@ static void check_collision(firetrk_state *state, int which)
}
-SCREEN_UPDATE_IND16( firetrk )
+UINT32 firetrk_state::screen_update_firetrk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- firetrk_state *state = screen.machine().driver_data<firetrk_state>();
screen.machine().tilemap().mark_all_dirty();
- state->m_tilemap1->set_scrollx(0, *state->m_scroll_x - 37);
- state->m_tilemap2->set_scrollx(0, *state->m_scroll_x - 37);
- state->m_tilemap1->set_scrolly(0, *state->m_scroll_y);
- state->m_tilemap2->set_scrolly(0, *state->m_scroll_y);
+ m_tilemap1->set_scrollx(0, *m_scroll_x - 37);
+ m_tilemap2->set_scrollx(0, *m_scroll_x - 37);
+ m_tilemap1->set_scrolly(0, *m_scroll_y);
+ m_tilemap2->set_scrolly(0, *m_scroll_y);
bitmap.fill(0, cliprect);
- state->m_tilemap1->draw(bitmap, playfield_window, 0, 0);
- firetrk_draw_car(screen.machine(), bitmap, playfield_window, screen.machine().gfx, 0, state->m_flash);
- firetrk_draw_car(screen.machine(), bitmap, playfield_window, screen.machine().gfx, 1, state->m_flash);
- draw_text(bitmap, cliprect, screen.machine().gfx, state->m_alpha_num_ram + 0x00, 296, 0x10, 0x10);
- draw_text(bitmap, cliprect, screen.machine().gfx, state->m_alpha_num_ram + 0x10, 8, 0x10, 0x10);
+ m_tilemap1->draw(bitmap, playfield_window, 0, 0);
+ firetrk_draw_car(screen.machine(), bitmap, playfield_window, screen.machine().gfx, 0, m_flash);
+ firetrk_draw_car(screen.machine(), bitmap, playfield_window, screen.machine().gfx, 1, m_flash);
+ draw_text(bitmap, cliprect, screen.machine().gfx, m_alpha_num_ram + 0x00, 296, 0x10, 0x10);
+ draw_text(bitmap, cliprect, screen.machine().gfx, m_alpha_num_ram + 0x10, 8, 0x10, 0x10);
if (cliprect.max_y == screen.visible_area().max_y)
{
- state->m_tilemap2->draw(state->m_helper1, playfield_window, 0, 0);
+ m_tilemap2->draw(m_helper1, playfield_window, 0, 0);
- state->m_helper2.fill(0xff, playfield_window);
- firetrk_draw_car(screen.machine(), state->m_helper2, playfield_window, screen.machine().gfx, 0, FALSE);
- check_collision(state, 0);
+ m_helper2.fill(0xff, playfield_window);
+ firetrk_draw_car(screen.machine(), m_helper2, playfield_window, screen.machine().gfx, 0, FALSE);
+ check_collision(this, 0);
- state->m_helper2.fill(0xff, playfield_window);
- firetrk_draw_car(screen.machine(), state->m_helper2, playfield_window, screen.machine().gfx, 1, FALSE);
- check_collision(state, 1);
+ m_helper2.fill(0xff, playfield_window);
+ firetrk_draw_car(screen.machine(), m_helper2, playfield_window, screen.machine().gfx, 1, FALSE);
+ check_collision(this, 1);
- *state->m_blink = FALSE;
+ *m_blink = FALSE;
}
return 0;
}
-SCREEN_UPDATE_IND16( superbug )
+UINT32 firetrk_state::screen_update_superbug(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- firetrk_state *state = screen.machine().driver_data<firetrk_state>();
screen.machine().tilemap().mark_all_dirty();
- state->m_tilemap1->set_scrollx(0, *state->m_scroll_x - 37);
- state->m_tilemap2->set_scrollx(0, *state->m_scroll_x - 37);
- state->m_tilemap1->set_scrolly(0, *state->m_scroll_y);
- state->m_tilemap2->set_scrolly(0, *state->m_scroll_y);
+ m_tilemap1->set_scrollx(0, *m_scroll_x - 37);
+ m_tilemap2->set_scrollx(0, *m_scroll_x - 37);
+ m_tilemap1->set_scrolly(0, *m_scroll_y);
+ m_tilemap2->set_scrolly(0, *m_scroll_y);
bitmap.fill(0, cliprect);
- state->m_tilemap1->draw(bitmap, playfield_window, 0, 0);
- superbug_draw_car(screen.machine(), bitmap, playfield_window, screen.machine().gfx, state->m_flash);
- draw_text(bitmap, cliprect, screen.machine().gfx, state->m_alpha_num_ram + 0x00, 296, 0x10, 0x10);
- draw_text(bitmap, cliprect, screen.machine().gfx, state->m_alpha_num_ram + 0x10, 8, 0x10, 0x10);
+ m_tilemap1->draw(bitmap, playfield_window, 0, 0);
+ superbug_draw_car(screen.machine(), bitmap, playfield_window, screen.machine().gfx, m_flash);
+ draw_text(bitmap, cliprect, screen.machine().gfx, m_alpha_num_ram + 0x00, 296, 0x10, 0x10);
+ draw_text(bitmap, cliprect, screen.machine().gfx, m_alpha_num_ram + 0x10, 8, 0x10, 0x10);
if (cliprect.max_y == screen.visible_area().max_y)
{
- state->m_tilemap2->draw(state->m_helper1, playfield_window, 0, 0);
+ m_tilemap2->draw(m_helper1, playfield_window, 0, 0);
- state->m_helper2.fill(0xff, playfield_window);
- superbug_draw_car(screen.machine(), state->m_helper2, playfield_window, screen.machine().gfx, FALSE);
- check_collision(state, 0);
+ m_helper2.fill(0xff, playfield_window);
+ superbug_draw_car(screen.machine(), m_helper2, playfield_window, screen.machine().gfx, FALSE);
+ check_collision(this, 0);
- *state->m_blink = FALSE;
+ *m_blink = FALSE;
}
return 0;
}
-SCREEN_UPDATE_IND16( montecar )
+UINT32 firetrk_state::screen_update_montecar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- firetrk_state *state = screen.machine().driver_data<firetrk_state>();
screen.machine().tilemap().mark_all_dirty();
- state->m_tilemap1->set_scrollx(0, *state->m_scroll_x - 37);
- state->m_tilemap2->set_scrollx(0, *state->m_scroll_x - 37);
- state->m_tilemap1->set_scrolly(0, *state->m_scroll_y);
- state->m_tilemap2->set_scrolly(0, *state->m_scroll_y);
+ m_tilemap1->set_scrollx(0, *m_scroll_x - 37);
+ m_tilemap2->set_scrollx(0, *m_scroll_x - 37);
+ m_tilemap1->set_scrolly(0, *m_scroll_y);
+ m_tilemap2->set_scrolly(0, *m_scroll_y);
bitmap.fill(0x2c, cliprect);
- state->m_tilemap1->draw(bitmap, playfield_window, 0, 0);
+ m_tilemap1->draw(bitmap, playfield_window, 0, 0);
montecar_draw_car(screen.machine(), bitmap, playfield_window, screen.machine().gfx, 0, FALSE);
montecar_draw_car(screen.machine(), bitmap, playfield_window, screen.machine().gfx, 1, FALSE);
- draw_text(bitmap, cliprect, screen.machine().gfx, state->m_alpha_num_ram + 0x00, 24, 0x20, 0x08);
- draw_text(bitmap, cliprect, screen.machine().gfx, state->m_alpha_num_ram + 0x20, 16, 0x20, 0x08);
+ draw_text(bitmap, cliprect, screen.machine().gfx, m_alpha_num_ram + 0x00, 24, 0x20, 0x08);
+ draw_text(bitmap, cliprect, screen.machine().gfx, m_alpha_num_ram + 0x20, 16, 0x20, 0x08);
if (cliprect.max_y == screen.visible_area().max_y)
{
- state->m_tilemap2->draw(state->m_helper1, playfield_window, 0, 0);
+ m_tilemap2->draw(m_helper1, playfield_window, 0, 0);
- state->m_helper2.fill(0xff, playfield_window);
- montecar_draw_car(screen.machine(), state->m_helper2, playfield_window, screen.machine().gfx, 0, TRUE);
- check_collision(state, 0);
+ m_helper2.fill(0xff, playfield_window);
+ montecar_draw_car(screen.machine(), m_helper2, playfield_window, screen.machine().gfx, 0, TRUE);
+ check_collision(this, 0);
- state->m_helper2.fill(0xff, playfield_window);
- montecar_draw_car(screen.machine(), state->m_helper2, playfield_window, screen.machine().gfx, 1, TRUE);
- check_collision(state, 1);
+ m_helper2.fill(0xff, playfield_window);
+ montecar_draw_car(screen.machine(), m_helper2, playfield_window, screen.machine().gfx, 1, TRUE);
+ check_collision(this, 1);
}
return 0;
diff --git a/src/mame/video/fitfight.c b/src/mame/video/fitfight.c
index 57103a1dd01..ffb80c13877 100644
--- a/src/mame/video/fitfight.c
+++ b/src/mame/video/fitfight.c
@@ -107,59 +107,58 @@ void fitfight_state::video_start()
m_fof_txt_tilemap->set_transparent_pen(0);
}
-SCREEN_UPDATE_IND16(fitfight)
+UINT32 fitfight_state::screen_update_fitfight(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- fitfight_state *state = screen.machine().driver_data<fitfight_state>();
/* scroll isn't right */
int vblank;
int scrollbak, scrollmid;
- vblank = (state->m_fof_700000[0] & 0x8000);
+ vblank = (m_fof_700000[0] & 0x8000);
if (vblank > 0)
bitmap.fill(get_black_pen(screen.machine()), cliprect);
else {
// if (screen.machine().input().code_pressed(KEYCODE_Q))
-// scrollbak = ((state->m_fof_a00000[0] & 0xff00) >> 5) - ((state->m_fof_700000[0] & 0x0038) >> 3);
+// scrollbak = ((m_fof_a00000[0] & 0xff00) >> 5) - ((m_fof_700000[0] & 0x0038) >> 3);
// else if (screen.machine().input().code_pressed(KEYCODE_W))
-// scrollbak = ((state->m_fof_a00000[0] & 0xff00) >> 5) + ((state->m_fof_700000[0] & 0x01c0) >> 6);
+// scrollbak = ((m_fof_a00000[0] & 0xff00) >> 5) + ((m_fof_700000[0] & 0x01c0) >> 6);
// else if (screen.machine().input().code_pressed(KEYCODE_E))
-// scrollbak = ((state->m_fof_a00000[0] & 0xff00) >> 5) - ((state->m_fof_700000[0] & 0x01c0) >> 6);
+// scrollbak = ((m_fof_a00000[0] & 0xff00) >> 5) - ((m_fof_700000[0] & 0x01c0) >> 6);
// else if (screen.machine().input().code_pressed(KEYCODE_R))
-// scrollbak = ((state->m_fof_a00000[0] & 0xff00) >> 5) + ((state->m_fof_700000[0] & 0x0038) >> 3);
+// scrollbak = ((m_fof_a00000[0] & 0xff00) >> 5) + ((m_fof_700000[0] & 0x0038) >> 3);
// else
- scrollbak = ((state->m_fof_a00000[0] & 0xffe0) >> 5);
- state->m_fof_bak_tilemap->set_scrollx(0, scrollbak );
- state->m_fof_bak_tilemap->set_scrolly(0, state->m_fof_a00000[0] & 0xff);
- state->m_fof_bak_tilemap->draw(bitmap, cliprect, 0, 0);
+ scrollbak = ((m_fof_a00000[0] & 0xffe0) >> 5);
+ m_fof_bak_tilemap->set_scrollx(0, scrollbak );
+ m_fof_bak_tilemap->set_scrolly(0, m_fof_a00000[0] & 0xff);
+ m_fof_bak_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 0);
// if (screen.machine().input().code_pressed(KEYCODE_A))
-// scrollmid = ((state->m_fof_900000[0] & 0xff00) >> 5) - ((state->m_fof_700000[0] & 0x01c0) >> 6);
+// scrollmid = ((m_fof_900000[0] & 0xff00) >> 5) - ((m_fof_700000[0] & 0x01c0) >> 6);
// else if (screen.machine().input().code_pressed(KEYCODE_S))
-// scrollmid = ((state->m_fof_900000[0] & 0xff00) >> 5) + ((state->m_fof_700000[0] & 0x0038) >> 3);
+// scrollmid = ((m_fof_900000[0] & 0xff00) >> 5) + ((m_fof_700000[0] & 0x0038) >> 3);
// else if (screen.machine().input().code_pressed(KEYCODE_D))
-// scrollmid = ((state->m_fof_900000[0] & 0xff00) >> 5) - ((state->m_fof_700000[0] & 0x0038) >> 3);
+// scrollmid = ((m_fof_900000[0] & 0xff00) >> 5) - ((m_fof_700000[0] & 0x0038) >> 3);
// else if (screen.machine().input().code_pressed(KEYCODE_F))
-// scrollmid = ((state->m_fof_900000[0] & 0xff00) >> 5) + ((state->m_fof_700000[0] & 0x01c0) >> 6);
+// scrollmid = ((m_fof_900000[0] & 0xff00) >> 5) + ((m_fof_700000[0] & 0x01c0) >> 6);
// else
- scrollmid = ((state->m_fof_900000[0] & 0xffe0) >> 5);
- state->m_fof_mid_tilemap->set_scrollx(0, scrollmid );
- state->m_fof_mid_tilemap->set_scrolly(0, state->m_fof_900000[0] & 0xff);
+ scrollmid = ((m_fof_900000[0] & 0xffe0) >> 5);
+ m_fof_mid_tilemap->set_scrollx(0, scrollmid );
+ m_fof_mid_tilemap->set_scrolly(0, m_fof_900000[0] & 0xff);
// if (!screen.machine().input().code_pressed(KEYCODE_F))
- state->m_fof_mid_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fof_mid_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 1);
- state->m_fof_txt_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fof_txt_tilemap->draw(bitmap, cliprect, 0, 0);
}
/* popmessage ("Regs %04x %04x %04x %04x %04x %04x",
- state->m_fof_100000[0], state->m_fof_600000[0], state->m_fof_700000[0],
- state->m_fof_800000[0], state->m_fof_900000[0],
- state->m_fof_a00000[0] );
+ m_fof_100000[0], m_fof_600000[0], m_fof_700000[0],
+ m_fof_800000[0], m_fof_900000[0],
+ m_fof_a00000[0] );
*/
return 0;
}
diff --git a/src/mame/video/flkatck.c b/src/mame/video/flkatck.c
index 8b15b2d1bd3..1a4b98684cc 100644
--- a/src/mame/video/flkatck.c
+++ b/src/mame/video/flkatck.c
@@ -127,14 +127,13 @@ WRITE8_MEMBER(flkatck_state::flkatck_k007121_regs_w)
***************************************************************************/
-SCREEN_UPDATE_IND16( flkatck )
+UINT32 flkatck_state::screen_update_flkatck(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- flkatck_state *state = screen.machine().driver_data<flkatck_state>();
rectangle clip[2];
const rectangle &visarea = screen.visible_area();
address_space &space = screen.machine().driver_data()->generic_space();
- if (state->m_flipscreen)
+ if (m_flipscreen)
{
clip[0] = visarea;
clip[0].max_x -= 40;
@@ -142,9 +141,9 @@ SCREEN_UPDATE_IND16( flkatck )
clip[1] = visarea;
clip[1].min_x = clip[1].max_x - 40;
- state->m_k007121_tilemap[0]->set_scrollx(0, k007121_ctrlram_r(state->m_k007121, space, 0) - 56 );
- state->m_k007121_tilemap[0]->set_scrolly(0, k007121_ctrlram_r(state->m_k007121, space, 2));
- state->m_k007121_tilemap[1]->set_scrollx(0, -16);
+ m_k007121_tilemap[0]->set_scrollx(0, k007121_ctrlram_r(m_k007121, space, 0) - 56 );
+ m_k007121_tilemap[0]->set_scrolly(0, k007121_ctrlram_r(m_k007121, space, 2));
+ m_k007121_tilemap[1]->set_scrollx(0, -16);
}
else
{
@@ -155,9 +154,9 @@ SCREEN_UPDATE_IND16( flkatck )
clip[1].max_x = 39;
clip[1].min_x = 0;
- state->m_k007121_tilemap[0]->set_scrollx(0, k007121_ctrlram_r(state->m_k007121, space, 0) - 40 );
- state->m_k007121_tilemap[0]->set_scrolly(0, k007121_ctrlram_r(state->m_k007121, space, 2));
- state->m_k007121_tilemap[1]->set_scrollx(0, 0);
+ m_k007121_tilemap[0]->set_scrollx(0, k007121_ctrlram_r(m_k007121, space, 0) - 40 );
+ m_k007121_tilemap[0]->set_scrolly(0, k007121_ctrlram_r(m_k007121, space, 2));
+ m_k007121_tilemap[1]->set_scrollx(0, 0);
}
/* compute clipping */
@@ -165,8 +164,8 @@ SCREEN_UPDATE_IND16( flkatck )
clip[1] &= cliprect;
/* draw the graphics */
- state->m_k007121_tilemap[0]->draw(bitmap, clip[0], 0, 0);
- k007121_sprites_draw(state->m_k007121, bitmap, cliprect, screen.machine().gfx[0], NULL, &state->m_k007121_ram[0x1000], 0, 40, 0, (UINT32)-1);
- state->m_k007121_tilemap[1]->draw(bitmap, clip[1], 0, 0);
+ m_k007121_tilemap[0]->draw(bitmap, clip[0], 0, 0);
+ k007121_sprites_draw(m_k007121, bitmap, cliprect, screen.machine().gfx[0], NULL, &m_k007121_ram[0x1000], 0, 40, 0, (UINT32)-1);
+ m_k007121_tilemap[1]->draw(bitmap, clip[1], 0, 0);
return 0;
}
diff --git a/src/mame/video/flower.c b/src/mame/video/flower.c
index baa965620ae..d8d491089c4 100644
--- a/src/mame/video/flower.c
+++ b/src/mame/video/flower.c
@@ -160,20 +160,19 @@ void flower_state::video_start()
m_text_right_tilemap->set_scrolly(0, 16);
}
-SCREEN_UPDATE_IND16( flower )
+UINT32 flower_state::screen_update_flower(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- flower_state *state = screen.machine().driver_data<flower_state>();
rectangle myclip = cliprect;
- state->m_bg0_tilemap->set_scrolly(0, state->m_bg0_scroll[0]+16);
- state->m_bg1_tilemap->set_scrolly(0, state->m_bg1_scroll[0]+16);
+ m_bg0_tilemap->set_scrolly(0, m_bg0_scroll[0]+16);
+ m_bg1_tilemap->set_scrolly(0, m_bg1_scroll[0]+16);
- state->m_bg0_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_bg1_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg0_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg1_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(),bitmap,cliprect);
- if(state->flip_screen())
+ if(flip_screen())
{
myclip.min_x = cliprect.min_x;
myclip.max_x = cliprect.min_x + 15;
@@ -184,8 +183,8 @@ SCREEN_UPDATE_IND16( flower )
myclip.max_x = cliprect.max_x;
}
- state->m_text_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_text_right_tilemap->draw(bitmap, myclip, 0,0);
+ m_text_tilemap->draw(bitmap, cliprect, 0,0);
+ m_text_right_tilemap->draw(bitmap, myclip, 0,0);
return 0;
}
diff --git a/src/mame/video/flstory.c b/src/mame/video/flstory.c
index 3d4761d54ef..666ddae901a 100644
--- a/src/mame/video/flstory.c
+++ b/src/mame/video/flstory.c
@@ -204,15 +204,14 @@ static void flstory_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap
}
}
-SCREEN_UPDATE_IND16( flstory )
+UINT32 flstory_state::screen_update_flstory(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- flstory_state *state = screen.machine().driver_data<flstory_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER1, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, 1 | TILEMAP_DRAW_LAYER1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 1 | TILEMAP_DRAW_LAYER1, 0);
flstory_draw_sprites(screen.machine(), bitmap, cliprect, 0x00);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER0, 0);
flstory_draw_sprites(screen.machine(), bitmap, cliprect, 0x80);
- state->m_bg_tilemap->draw(bitmap, cliprect, 1 | TILEMAP_DRAW_LAYER0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 1 | TILEMAP_DRAW_LAYER0, 0);
return 0;
}
@@ -261,22 +260,20 @@ static void victnine_draw_sprites( running_machine &machine, bitmap_ind16 &bitma
}
}
-SCREEN_UPDATE_IND16( victnine )
+UINT32 flstory_state::screen_update_victnine(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- flstory_state *state = screen.machine().driver_data<flstory_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
victnine_draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
-SCREEN_UPDATE_IND16( rumba )
+UINT32 flstory_state::screen_update_rumba(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- flstory_state *state = screen.machine().driver_data<flstory_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER1, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, 1 | TILEMAP_DRAW_LAYER1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 1 | TILEMAP_DRAW_LAYER1, 0);
victnine_draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0 | TILEMAP_DRAW_LAYER0, 0);
victnine_draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 1 | TILEMAP_DRAW_LAYER0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 1 | TILEMAP_DRAW_LAYER0, 0);
return 0;
}
diff --git a/src/mame/video/foodf.c b/src/mame/video/foodf.c
index 8e867c47237..15818d347e6 100644
--- a/src/mame/video/foodf.c
+++ b/src/mame/video/foodf.c
@@ -111,20 +111,19 @@ WRITE16_MEMBER(foodf_state::foodf_paletteram_w)
*
*************************************/
-SCREEN_UPDATE_IND16( foodf )
+UINT32 foodf_state::screen_update_foodf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- foodf_state *state = screen.machine().driver_data<foodf_state>();
int offs;
gfx_element *gfx = screen.machine().gfx[1];
bitmap_ind8 &priority_bitmap = screen.machine().priority_bitmap;
- UINT16 *spriteram16 = state->m_spriteram;
+ UINT16 *spriteram16 = m_spriteram;
/* first draw the playfield opaquely */
- state->m_playfield_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ m_playfield_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
/* then draw the non-transparent parts with a priority of 1 */
priority_bitmap.fill(0);
- state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 1);
+ m_playfield_tilemap->draw(bitmap, cliprect, 0, 1);
/* draw the motion objects front-to-back */
for (offs = 0x80-2; offs >= 0x20; offs -= 2)
diff --git a/src/mame/video/freekick.c b/src/mame/video/freekick.c
index 03f15d0d9ef..8a08c33acc0 100644
--- a/src/mame/video/freekick.c
+++ b/src/mame/video/freekick.c
@@ -131,26 +131,23 @@ static void freekick_draw_sprites( running_machine &machine, bitmap_ind16 &bitma
}
}
-SCREEN_UPDATE_IND16( gigas )
+UINT32 freekick_state::screen_update_gigas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- freekick_state *state = screen.machine().driver_data<freekick_state>();
- state->m_freek_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_freek_tilemap->draw(bitmap, cliprect, 0, 0);
gigas_draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
-SCREEN_UPDATE_IND16( pbillrd )
+UINT32 freekick_state::screen_update_pbillrd(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- freekick_state *state = screen.machine().driver_data<freekick_state>();
- state->m_freek_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_freek_tilemap->draw(bitmap, cliprect, 0, 0);
pbillrd_draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
-SCREEN_UPDATE_IND16( freekick )
+UINT32 freekick_state::screen_update_freekick(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- freekick_state *state = screen.machine().driver_data<freekick_state>();
- state->m_freek_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_freek_tilemap->draw(bitmap, cliprect, 0, 0);
freekick_draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/fromanc2.c b/src/mame/video/fromanc2.c
index 22dc0cf00cd..2dc8839f68b 100644
--- a/src/mame/video/fromanc2.c
+++ b/src/mame/video/fromanc2.c
@@ -521,36 +521,34 @@ VIDEO_START_MEMBER(fromanc2_state,fromanc4)
******************************************************************************/
-SCREEN_UPDATE_IND16( fromanc2_left )
+UINT32 fromanc2_state::screen_update_fromanc2_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- fromanc2_state *state = screen.machine().driver_data<fromanc2_state>();
int i;
for (i = 0; i < 4; i++)
{
- if (state->m_tilemap[0][i])
+ if (m_tilemap[0][i])
{
- state->m_tilemap[0][i]->set_scrollx(0, -state->m_scrollx[0][i]);
- state->m_tilemap[0][i]->set_scrolly(0, -state->m_scrolly[0][i]);
- state->m_tilemap[0][i]->draw(bitmap, cliprect, 0, 0);
+ m_tilemap[0][i]->set_scrollx(0, -m_scrollx[0][i]);
+ m_tilemap[0][i]->set_scrolly(0, -m_scrolly[0][i]);
+ m_tilemap[0][i]->draw(bitmap, cliprect, 0, 0);
}
}
return 0;
}
-SCREEN_UPDATE_IND16( fromanc2_right )
+UINT32 fromanc2_state::screen_update_fromanc2_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- fromanc2_state *state = screen.machine().driver_data<fromanc2_state>();
int i;
for (i = 0; i < 4; i++)
{
- if (state->m_tilemap[1][i])
+ if (m_tilemap[1][i])
{
- state->m_tilemap[1][i]->set_scrollx(0, -state->m_scrollx[1][i]);
- state->m_tilemap[1][i]->set_scrolly(0, -state->m_scrolly[1][i]);
- state->m_tilemap[1][i]->draw(bitmap, cliprect, 0, 0);
+ m_tilemap[1][i]->set_scrollx(0, -m_scrollx[1][i]);
+ m_tilemap[1][i]->set_scrolly(0, -m_scrolly[1][i]);
+ m_tilemap[1][i]->draw(bitmap, cliprect, 0, 0);
}
}
diff --git a/src/mame/video/fromance.c b/src/mame/video/fromance.c
index d69505c924b..e6ad8dab03b 100644
--- a/src/mame/video/fromance.c
+++ b/src/mame/video/fromance.c
@@ -410,31 +410,29 @@ static void draw_sprites( screen_device &screen, bitmap_ind16 &bitmap, const rec
*
*************************************/
-SCREEN_UPDATE_IND16( fromance )
+UINT32 fromance_state::screen_update_fromance(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- fromance_state *state = screen.machine().driver_data<fromance_state>();
- state->m_bg_tilemap->set_scrollx(0, state->m_scrollx[0]);
- state->m_bg_tilemap->set_scrolly(0, state->m_scrolly[0]);
- state->m_fg_tilemap->set_scrollx(0, state->m_scrollx[1]);
- state->m_fg_tilemap->set_scrolly(0, state->m_scrolly[1]);
+ m_bg_tilemap->set_scrollx(0, m_scrollx[0]);
+ m_bg_tilemap->set_scrolly(0, m_scrolly[0]);
+ m_fg_tilemap->set_scrollx(0, m_scrollx[1]);
+ m_fg_tilemap->set_scrolly(0, m_scrolly[1]);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( pipedrm )
+UINT32 fromance_state::screen_update_pipedrm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- fromance_state *state = screen.machine().driver_data<fromance_state>();
/* there seems to be no logical mapping for the X scroll register -- maybe it's gone */
- state->m_bg_tilemap->set_scrolly(0, state->m_scrolly[1]);
- state->m_fg_tilemap->set_scrolly(0, state->m_scrolly[0]);
+ m_bg_tilemap->set_scrolly(0, m_scrolly[1]);
+ m_fg_tilemap->set_scrolly(0, m_scrolly[0]);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen, bitmap, cliprect, 0);
draw_sprites(screen, bitmap, cliprect, 1);
diff --git a/src/mame/video/funkybee.c b/src/mame/video/funkybee.c
index d21cb7c2635..d8509334585 100644
--- a/src/mame/video/funkybee.c
+++ b/src/mame/video/funkybee.c
@@ -155,10 +155,9 @@ static void draw_columns( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( funkybee )
+UINT32 funkybee_state::screen_update_funkybee(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- funkybee_state *state = screen.machine().driver_data<funkybee_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
draw_columns(screen.machine(), bitmap, cliprect);
return 0;
diff --git a/src/mame/video/funkyjet.c b/src/mame/video/funkyjet.c
index face8a83149..d0c88f7f19f 100644
--- a/src/mame/video/funkyjet.c
+++ b/src/mame/video/funkyjet.c
@@ -11,18 +11,17 @@
/******************************************************************************/
-SCREEN_UPDATE_IND16( funkyjet )
+UINT32 funkyjet_state::screen_update_funkyjet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- funkyjet_state *state = screen.machine().driver_data<funkyjet_state>();
address_space &space = screen.machine().driver_data()->generic_space();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
+ UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
- state->flip_screen_set(BIT(flip, 7));
- deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
+ flip_screen_set(BIT(flip, 7));
+ deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
bitmap.fill(768, cliprect);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
- screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
return 0;
}
diff --git a/src/mame/video/funworld.c b/src/mame/video/funworld.c
index 56f46a712cb..b3eb43f5750 100644
--- a/src/mame/video/funworld.c
+++ b/src/mame/video/funworld.c
@@ -191,9 +191,8 @@ VIDEO_START_MEMBER(funworld_state,magicrd2)
}
-SCREEN_UPDATE_IND16(funworld)
+UINT32 funworld_state::screen_update_funworld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- funworld_state *state = screen.machine().driver_data<funworld_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/funybubl.c b/src/mame/video/funybubl.c
index 6137971fb1f..1d5ac4040e2 100644
--- a/src/mame/video/funybubl.c
+++ b/src/mame/video/funybubl.c
@@ -72,9 +72,8 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
-SCREEN_UPDATE_IND16(funybubl)
+UINT32 funybubl_state::screen_update_funybubl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- funybubl_state *state = screen.machine().driver_data<funybubl_state>();
int x, y, offs;
offs = 0;
@@ -87,7 +86,7 @@ SCREEN_UPDATE_IND16(funybubl)
{
int data;
- data = state->m_banked_vram[offs] | (state->m_banked_vram[offs + 1] << 8);
+ data = m_banked_vram[offs] | (m_banked_vram[offs + 1] << 8);
drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0], data & 0x7fff, (data & 0x8000) ? 2 : 1, 0, 0, x*8, y*8, 0);
offs += 2;
}
@@ -103,7 +102,7 @@ SCREEN_UPDATE_IND16(funybubl)
fp = fopen("funnybubsprites", "w+b");
if (fp)
{
- fwrite(&state->m_banked_vram[0x1000], 0x1000, 1, fp);
+ fwrite(&m_banked_vram[0x1000], 0x1000, 1, fp);
fclose(fp);
}
}
diff --git a/src/mame/video/fuukifg2.c b/src/mame/video/fuukifg2.c
index f704e516558..a0ddeacff3c 100644
--- a/src/mame/video/fuukifg2.c
+++ b/src/mame/video/fuukifg2.c
@@ -282,9 +282,8 @@ static void fuuki16_draw_layer( running_machine &machine, bitmap_ind16 &bitmap,
}
}
-SCREEN_UPDATE_IND16( fuuki16 )
+UINT32 fuuki16_state::screen_update_fuuki16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- fuuki16_state *state = screen.machine().driver_data<fuuki16_state>();
UINT16 layer0_scrollx, layer0_scrolly;
UINT16 layer1_scrollx, layer1_scrolly;
UINT16 layer2_scrollx, layer2_scrolly;
@@ -302,34 +301,34 @@ SCREEN_UPDATE_IND16( fuuki16 )
{ 2, 0, 1 },
{ 2, 1, 0 }};
- int tm_front = pri_table[state->m_priority[0] & 0x0f][0];
- int tm_middle = pri_table[state->m_priority[0] & 0x0f][1];
- int tm_back = pri_table[state->m_priority[0] & 0x0f][2];
+ int tm_front = pri_table[m_priority[0] & 0x0f][0];
+ int tm_middle = pri_table[m_priority[0] & 0x0f][1];
+ int tm_back = pri_table[m_priority[0] & 0x0f][2];
- state->flip_screen_set(state->m_vregs[0x1e / 2] & 1);
+ flip_screen_set(m_vregs[0x1e / 2] & 1);
/* Layers scrolling */
- scrolly_offs = state->m_vregs[0xc / 2] - (state->flip_screen() ? 0x103 : 0x1f3);
- scrollx_offs = state->m_vregs[0xe / 2] - (state->flip_screen() ? 0x2a7 : 0x3f6);
+ scrolly_offs = m_vregs[0xc / 2] - (flip_screen() ? 0x103 : 0x1f3);
+ scrollx_offs = m_vregs[0xe / 2] - (flip_screen() ? 0x2a7 : 0x3f6);
- layer0_scrolly = state->m_vregs[0x0 / 2] + scrolly_offs;
- layer0_scrollx = state->m_vregs[0x2 / 2] + scrollx_offs;
- layer1_scrolly = state->m_vregs[0x4 / 2] + scrolly_offs;
- layer1_scrollx = state->m_vregs[0x6 / 2] + scrollx_offs;
+ layer0_scrolly = m_vregs[0x0 / 2] + scrolly_offs;
+ layer0_scrollx = m_vregs[0x2 / 2] + scrollx_offs;
+ layer1_scrolly = m_vregs[0x4 / 2] + scrolly_offs;
+ layer1_scrollx = m_vregs[0x6 / 2] + scrollx_offs;
- layer2_scrolly = state->m_vregs[0x8 / 2];
- layer2_scrollx = state->m_vregs[0xa / 2];
+ layer2_scrolly = m_vregs[0x8 / 2];
+ layer2_scrollx = m_vregs[0xa / 2];
- state->m_tilemap[0]->set_scrollx(0, layer0_scrollx);
- state->m_tilemap[0]->set_scrolly(0, layer0_scrolly);
- state->m_tilemap[1]->set_scrollx(0, layer1_scrollx);
- state->m_tilemap[1]->set_scrolly(0, layer1_scrolly);
+ m_tilemap[0]->set_scrollx(0, layer0_scrollx);
+ m_tilemap[0]->set_scrolly(0, layer0_scrolly);
+ m_tilemap[1]->set_scrollx(0, layer1_scrollx);
+ m_tilemap[1]->set_scrolly(0, layer1_scrolly);
- state->m_tilemap[2]->set_scrollx(0, layer2_scrollx + 0x10);
- state->m_tilemap[2]->set_scrolly(0, layer2_scrolly /*+ 0x02*/);
- state->m_tilemap[3]->set_scrollx(0, layer2_scrollx + 0x10);
- state->m_tilemap[3]->set_scrolly(0, layer2_scrolly /*+ 0x02*/);
+ m_tilemap[2]->set_scrollx(0, layer2_scrollx + 0x10);
+ m_tilemap[2]->set_scrolly(0, layer2_scrolly /*+ 0x02*/);
+ m_tilemap[3]->set_scrollx(0, layer2_scrollx + 0x10);
+ m_tilemap[3]->set_scrolly(0, layer2_scrolly /*+ 0x02*/);
/* The backmost tilemap decides the background color(s) but sprites can
go below the opaque pixels of that tilemap. We thus need to mark the
diff --git a/src/mame/video/fuukifg3.c b/src/mame/video/fuukifg3.c
index 8996e0f0207..a4566419ca6 100644
--- a/src/mame/video/fuukifg3.c
+++ b/src/mame/video/fuukifg3.c
@@ -305,9 +305,8 @@ static void fuuki32_draw_layer( running_machine &machine, bitmap_ind16 &bitmap,
}
}
-SCREEN_UPDATE_IND16( fuuki32 )
+UINT32 fuuki32_state::screen_update_fuuki32(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- fuuki32_state *state = screen.machine().driver_data<fuuki32_state>();
UINT16 layer0_scrollx, layer0_scrolly;
UINT16 layer1_scrollx, layer1_scrolly;
UINT16 layer2_scrollx, layer2_scrolly;
@@ -325,34 +324,34 @@ SCREEN_UPDATE_IND16( fuuki32 )
{ 2, 0, 1 }, // Title etc. - 0>1 (0,1,2 or 0,2,1 or 2,0,1)
{ 2, 1, 0 }}; // Char Select, prison stage 1>0 (leaves 1,2,0 or 2,1,0)
- int tm_front = pri_table[(state->m_priority[0] >> 16) & 0x0f][0];
- int tm_middle = pri_table[(state->m_priority[0] >> 16) & 0x0f][1];
- int tm_back = pri_table[(state->m_priority[0] >> 16) & 0x0f][2];
+ int tm_front = pri_table[(m_priority[0] >> 16) & 0x0f][0];
+ int tm_middle = pri_table[(m_priority[0] >> 16) & 0x0f][1];
+ int tm_back = pri_table[(m_priority[0] >> 16) & 0x0f][2];
- state->flip_screen_set((state->m_vregs[0x1e / 4] & 0x0000ffff) & 1);
+ flip_screen_set((m_vregs[0x1e / 4] & 0x0000ffff) & 1);
/* Layers scrolling */
- scrolly_offs = ((state->m_vregs[0xc / 4] & 0xffff0000) >> 16) - (state->flip_screen() ? 0x103 : 0x1f3);
- scrollx_offs = (state->m_vregs[0xc / 4] & 0x0000ffff) - (state->flip_screen() ? 0x2c7 : 0x3f6);
+ scrolly_offs = ((m_vregs[0xc / 4] & 0xffff0000) >> 16) - (flip_screen() ? 0x103 : 0x1f3);
+ scrollx_offs = (m_vregs[0xc / 4] & 0x0000ffff) - (flip_screen() ? 0x2c7 : 0x3f6);
- layer0_scrolly = ((state->m_vregs[0x0 / 4] & 0xffff0000) >> 16) + scrolly_offs;
- layer0_scrollx = ((state->m_vregs[0x0 / 4] & 0x0000ffff)) + scrollx_offs;
- layer1_scrolly = ((state->m_vregs[0x4 / 4] & 0xffff0000) >> 16) + scrolly_offs;
- layer1_scrollx = ((state->m_vregs[0x4 / 4] & 0x0000ffff)) + scrollx_offs;
+ layer0_scrolly = ((m_vregs[0x0 / 4] & 0xffff0000) >> 16) + scrolly_offs;
+ layer0_scrollx = ((m_vregs[0x0 / 4] & 0x0000ffff)) + scrollx_offs;
+ layer1_scrolly = ((m_vregs[0x4 / 4] & 0xffff0000) >> 16) + scrolly_offs;
+ layer1_scrollx = ((m_vregs[0x4 / 4] & 0x0000ffff)) + scrollx_offs;
- layer2_scrolly = ((state->m_vregs[0x8 / 4] & 0xffff0000) >> 16);
- layer2_scrollx = ((state->m_vregs[0x8 / 4] & 0x0000ffff));
+ layer2_scrolly = ((m_vregs[0x8 / 4] & 0xffff0000) >> 16);
+ layer2_scrollx = ((m_vregs[0x8 / 4] & 0x0000ffff));
- state->m_tilemap[0]->set_scrollx(0, layer0_scrollx);
- state->m_tilemap[0]->set_scrolly(0, layer0_scrolly);
- state->m_tilemap[1]->set_scrollx(0, layer1_scrollx);
- state->m_tilemap[1]->set_scrolly(0, layer1_scrolly);
+ m_tilemap[0]->set_scrollx(0, layer0_scrollx);
+ m_tilemap[0]->set_scrolly(0, layer0_scrolly);
+ m_tilemap[1]->set_scrollx(0, layer1_scrollx);
+ m_tilemap[1]->set_scrolly(0, layer1_scrolly);
- state->m_tilemap[2]->set_scrollx(0, layer2_scrollx);
- state->m_tilemap[2]->set_scrolly(0, layer2_scrolly);
- state->m_tilemap[3]->set_scrollx(0, layer2_scrollx);
- state->m_tilemap[3]->set_scrolly(0, layer2_scrolly);
+ m_tilemap[2]->set_scrollx(0, layer2_scrollx);
+ m_tilemap[2]->set_scrolly(0, layer2_scrolly);
+ m_tilemap[3]->set_scrollx(0, layer2_scrollx);
+ m_tilemap[3]->set_scrolly(0, layer2_scrolly);
/* The bg colour is the last pen i.e. 0x1fff */
bitmap.fill((0x800 * 4) - 1, cliprect);
@@ -366,17 +365,16 @@ SCREEN_UPDATE_IND16( fuuki32 )
return 0;
}
-SCREEN_VBLANK( fuuki32 )
+void fuuki32_state::screen_eof_fuuki32(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- fuuki32_state *state = screen.machine().driver_data<fuuki32_state>();
/* Buffer sprites and tilebank by 2 frames */
- state->m_spr_buffered_tilebank[1] = state->m_spr_buffered_tilebank[0];
- state->m_spr_buffered_tilebank[0] = state->m_tilebank[0];
- memcpy(state->m_buf_spriteram2, state->m_buf_spriteram, state->m_spriteram.bytes());
- memcpy(state->m_buf_spriteram, state->m_spriteram, state->m_spriteram.bytes());
+ m_spr_buffered_tilebank[1] = m_spr_buffered_tilebank[0];
+ m_spr_buffered_tilebank[0] = m_tilebank[0];
+ memcpy(m_buf_spriteram2, m_buf_spriteram, m_spriteram.bytes());
+ memcpy(m_buf_spriteram, m_spriteram, m_spriteram.bytes());
}
}
diff --git a/src/mame/video/gaelco.c b/src/mame/video/gaelco.c
index 8c23c871ae8..2ec22409a26 100644
--- a/src/mame/video/gaelco.c
+++ b/src/mame/video/gaelco.c
@@ -182,71 +182,69 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
***************************************************************************/
-SCREEN_UPDATE_IND16( maniacsq )
+UINT32 gaelco_state::screen_update_maniacsq(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- gaelco_state *state = screen.machine().driver_data<gaelco_state>();
/* set scroll registers */
- state->m_tilemap[0]->set_scrolly(0, state->m_vregs[0]);
- state->m_tilemap[0]->set_scrollx(0, state->m_vregs[1] + 4);
- state->m_tilemap[1]->set_scrolly(0, state->m_vregs[2]);
- state->m_tilemap[1]->set_scrollx(0, state->m_vregs[3]);
+ m_tilemap[0]->set_scrolly(0, m_vregs[0]);
+ m_tilemap[0]->set_scrollx(0, m_vregs[1] + 4);
+ m_tilemap[1]->set_scrolly(0, m_vregs[2]);
+ m_tilemap[1]->set_scrollx(0, m_vregs[3]);
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(0, cliprect);
- state->m_tilemap[1]->draw(bitmap, cliprect, 3, 0);
- state->m_tilemap[0]->draw(bitmap, cliprect, 3, 0);
+ m_tilemap[1]->draw(bitmap, cliprect, 3, 0);
+ m_tilemap[0]->draw(bitmap, cliprect, 3, 0);
- state->m_tilemap[1]->draw(bitmap, cliprect, 2, 1);
- state->m_tilemap[0]->draw(bitmap, cliprect, 2, 1);
+ m_tilemap[1]->draw(bitmap, cliprect, 2, 1);
+ m_tilemap[0]->draw(bitmap, cliprect, 2, 1);
- state->m_tilemap[1]->draw(bitmap, cliprect, 1, 2);
- state->m_tilemap[0]->draw(bitmap, cliprect, 1, 2);
+ m_tilemap[1]->draw(bitmap, cliprect, 1, 2);
+ m_tilemap[0]->draw(bitmap, cliprect, 1, 2);
- state->m_tilemap[1]->draw(bitmap, cliprect, 0, 4);
- state->m_tilemap[0]->draw(bitmap, cliprect, 0, 4);
+ m_tilemap[1]->draw(bitmap, cliprect, 0, 4);
+ m_tilemap[0]->draw(bitmap, cliprect, 0, 4);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
-SCREEN_UPDATE_IND16( bigkarnk )
+UINT32 gaelco_state::screen_update_bigkarnk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- gaelco_state *state = screen.machine().driver_data<gaelco_state>();
/* set scroll registers */
- state->m_tilemap[0]->set_scrolly(0, state->m_vregs[0]);
- state->m_tilemap[0]->set_scrollx(0, state->m_vregs[1] + 4);
- state->m_tilemap[1]->set_scrolly(0, state->m_vregs[2]);
- state->m_tilemap[1]->set_scrollx(0, state->m_vregs[3]);
+ m_tilemap[0]->set_scrolly(0, m_vregs[0]);
+ m_tilemap[0]->set_scrollx(0, m_vregs[1] + 4);
+ m_tilemap[1]->set_scrolly(0, m_vregs[2]);
+ m_tilemap[1]->set_scrollx(0, m_vregs[3]);
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(0, cliprect);
- state->m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0);
- state->m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0);
+ m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0);
+ m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0);
- state->m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 1);
- state->m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 1);
+ m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 1);
+ m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 1);
- state->m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 1);
- state->m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 1);
+ m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 1);
+ m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 1);
- state->m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 2);
- state->m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 2);
+ m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 2);
+ m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 2);
- state->m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 2);
- state->m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 2);
+ m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 2);
+ m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 2);
- state->m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 4);
- state->m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 4);
+ m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 4);
+ m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 4);
- state->m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 4);
- state->m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 4);
+ m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 4);
+ m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 4);
- state->m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 8);
- state->m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 8);
+ m_tilemap[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 8);
+ m_tilemap[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 8);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
diff --git a/src/mame/video/gaelco2.c b/src/mame/video/gaelco2.c
index f1633fa70ce..cbdd08a4266 100644
--- a/src/mame/video/gaelco2.c
+++ b/src/mame/video/gaelco2.c
@@ -429,32 +429,31 @@ static void draw_sprites(screen_device &screen, bitmap_ind16 &bitmap, const rect
***************************************************************************/
-SCREEN_UPDATE_IND16( gaelco2 )
+UINT32 gaelco2_state::screen_update_gaelco2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- gaelco2_state *state = screen.machine().driver_data<gaelco2_state>();
int i;
/* read scroll values */
- int scroll0x = state->m_videoram[0x2802/2] + 0x14;
- int scroll1x = state->m_videoram[0x2806/2] + 0x10;
- int scroll0y = state->m_videoram[0x2800/2] + 0x01;
- int scroll1y = state->m_videoram[0x2804/2] + 0x01;
+ int scroll0x = m_videoram[0x2802/2] + 0x14;
+ int scroll1x = m_videoram[0x2806/2] + 0x10;
+ int scroll0y = m_videoram[0x2800/2] + 0x01;
+ int scroll1y = m_videoram[0x2804/2] + 0x01;
/* set y scroll registers */
- state->m_pant[0]->set_scrolly(0, scroll0y & 0x1ff);
- state->m_pant[1]->set_scrolly(0, scroll1y & 0x1ff);
+ m_pant[0]->set_scrolly(0, scroll0y & 0x1ff);
+ m_pant[1]->set_scrolly(0, scroll1y & 0x1ff);
/* set x linescroll registers */
for (i = 0; i < 512; i++){
- state->m_pant[0]->set_scrollx(i & 0x1ff, (state->m_vregs[0] & 0x8000) ? (state->m_videoram[(0x2000/2) + i] + 0x14) & 0x3ff : scroll0x & 0x3ff);
- state->m_pant[1]->set_scrollx(i & 0x1ff, (state->m_vregs[1] & 0x8000) ? (state->m_videoram[(0x2400/2) + i] + 0x10) & 0x3ff : scroll1x & 0x3ff);
+ m_pant[0]->set_scrollx(i & 0x1ff, (m_vregs[0] & 0x8000) ? (m_videoram[(0x2000/2) + i] + 0x14) & 0x3ff : scroll0x & 0x3ff);
+ m_pant[1]->set_scrollx(i & 0x1ff, (m_vregs[1] & 0x8000) ? (m_videoram[(0x2400/2) + i] + 0x10) & 0x3ff : scroll1x & 0x3ff);
}
/* draw screen */
bitmap.fill(0, cliprect);
- state->m_pant[1]->draw(bitmap, cliprect, 0, 0);
- state->m_pant[0]->draw(bitmap, cliprect, 0, 0);
+ m_pant[1]->draw(bitmap, cliprect, 0, 0);
+ m_pant[0]->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen, bitmap, cliprect, 0, 0);
return 0;
}
@@ -489,5 +488,5 @@ static UINT32 dual_update(screen_device &screen, bitmap_ind16 &bitmap, const rec
return 0;
}
-SCREEN_UPDATE_IND16( gaelco2_left ) { return dual_update(screen, bitmap, cliprect, 0); }
-SCREEN_UPDATE_IND16( gaelco2_right ) { return dual_update(screen, bitmap, cliprect, 1); }
+UINT32 gaelco2_state::screen_update_gaelco2_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return dual_update(screen, bitmap, cliprect, 0); }
+UINT32 gaelco2_state::screen_update_gaelco2_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return dual_update(screen, bitmap, cliprect, 1); }
diff --git a/src/mame/video/gaelco3d.c b/src/mame/video/gaelco3d.c
index e812a682171..b5e6ea07ac3 100644
--- a/src/mame/video/gaelco3d.c
+++ b/src/mame/video/gaelco3d.c
@@ -427,22 +427,21 @@ WRITE32_MEMBER(gaelco3d_state::gaelco3d_paletteram_020_w)
*
*************************************/
-SCREEN_UPDATE_IND16( gaelco3d )
+UINT32 gaelco3d_state::screen_update_gaelco3d(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- gaelco3d_state *state = screen.machine().driver_data<gaelco3d_state>();
int ret;
/*
if (DISPLAY_TEXTURE && (screen.machine().input().code_pressed(KEYCODE_Z) || screen.machine().input().code_pressed(KEYCODE_X)))
{
static int xv = 0, yv = 0x1000;
- UINT8 *base = state->m_texture;
- int length = state->m_texture_size;
+ UINT8 *base = m_texture;
+ int length = m_texture_size;
if (screen.machine().input().code_pressed(KEYCODE_X))
{
- base = state->m_texmask;
- length = state->m_texmask_size;
+ base = m_texmask;
+ length = m_texmask_size;
}
if (screen.machine().input().code_pressed(KEYCODE_LEFT) && xv >= 4)
@@ -471,10 +470,10 @@ SCREEN_UPDATE_IND16( gaelco3d )
}
else*/
{
- if (state->m_video_changed)
- copybitmap(bitmap, state->m_poly->screenbits(), 0,1, 0,0, cliprect);
- ret = state->m_video_changed;
- state->m_video_changed = FALSE;
+ if (m_video_changed)
+ copybitmap(bitmap, m_poly->screenbits(), 0,1, 0,0, cliprect);
+ ret = m_video_changed;
+ m_video_changed = FALSE;
}
logerror("---update---\n");
diff --git a/src/mame/video/gaiden.c b/src/mame/video/gaiden.c
index 56694c83130..624e45779d9 100644
--- a/src/mame/video/gaiden.c
+++ b/src/mame/video/gaiden.c
@@ -641,65 +641,62 @@ static void drgnbowl_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap
}
}
-SCREEN_UPDATE_RGB32( gaiden )
+UINT32 gaiden_state::screen_update_gaiden(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- gaiden_state *state = screen.machine().driver_data<gaiden_state>();
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_tile_bitmap_bg.fill(0x200, cliprect);
- state->m_tile_bitmap_fg.fill(0, cliprect);
- state->m_sprite_bitmap.fill(0, cliprect);
+ m_tile_bitmap_bg.fill(0x200, cliprect);
+ m_tile_bitmap_fg.fill(0, cliprect);
+ m_sprite_bitmap.fill(0, cliprect);
/* draw tilemaps into a 16-bit bitmap */
- state->m_background->draw(state->m_tile_bitmap_bg, cliprect, 0, 1);
- state->m_foreground->draw(state->m_tile_bitmap_fg, cliprect, 0, 2);
+ m_background->draw(m_tile_bitmap_bg, cliprect, 0, 1);
+ m_foreground->draw(m_tile_bitmap_fg, cliprect, 0, 2);
/* draw the blended tiles at a lower priority
so sprites covered by them will still be drawn */
- state->m_foreground->draw(state->m_tile_bitmap_fg, cliprect, 1, 0);
- state->m_text_layer->draw(state->m_tile_bitmap_fg, cliprect, 0, 4);
+ m_foreground->draw(m_tile_bitmap_fg, cliprect, 1, 0);
+ m_text_layer->draw(m_tile_bitmap_fg, cliprect, 0, 4);
/* draw sprites into a 16-bit bitmap */
- gaiden_draw_sprites(screen.machine(), state->m_tile_bitmap_bg, state->m_tile_bitmap_fg, state->m_sprite_bitmap, cliprect);
+ gaiden_draw_sprites(screen.machine(), m_tile_bitmap_bg, m_tile_bitmap_fg, m_sprite_bitmap, cliprect);
/* mix & blend the tilemaps and sprites into a 32-bit bitmap */
- blendbitmaps(screen.machine(), bitmap, state->m_tile_bitmap_bg, state->m_tile_bitmap_fg, state->m_sprite_bitmap, 0, 0, cliprect);
+ blendbitmaps(screen.machine(), bitmap, m_tile_bitmap_bg, m_tile_bitmap_fg, m_sprite_bitmap, 0, 0, cliprect);
return 0;
}
-SCREEN_UPDATE_RGB32( raiga )
+UINT32 gaiden_state::screen_update_raiga(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- gaiden_state *state = screen.machine().driver_data<gaiden_state>();
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_tile_bitmap_bg.fill(0x200, cliprect);
- state->m_tile_bitmap_fg.fill(0, cliprect);
- state->m_sprite_bitmap.fill(0, cliprect);
+ m_tile_bitmap_bg.fill(0x200, cliprect);
+ m_tile_bitmap_fg.fill(0, cliprect);
+ m_sprite_bitmap.fill(0, cliprect);
/* draw tilemaps into a 16-bit bitmap */
- state->m_background->draw(state->m_tile_bitmap_bg, cliprect, 0, 1);
- state->m_foreground->draw(state->m_tile_bitmap_fg, cliprect, 0, 2);
+ m_background->draw(m_tile_bitmap_bg, cliprect, 0, 1);
+ m_foreground->draw(m_tile_bitmap_fg, cliprect, 0, 2);
/* draw the blended tiles at a lower priority
so sprites covered by them will still be drawn */
- state->m_foreground->draw(state->m_tile_bitmap_fg, cliprect, 1, 0);
- state->m_text_layer->draw(state->m_tile_bitmap_fg, cliprect, 0, 4);
+ m_foreground->draw(m_tile_bitmap_fg, cliprect, 1, 0);
+ m_text_layer->draw(m_tile_bitmap_fg, cliprect, 0, 4);
/* draw sprites into a 16-bit bitmap */
- raiga_draw_sprites(screen.machine(), state->m_tile_bitmap_bg, state->m_tile_bitmap_fg, state->m_sprite_bitmap, cliprect);
+ raiga_draw_sprites(screen.machine(), m_tile_bitmap_bg, m_tile_bitmap_fg, m_sprite_bitmap, cliprect);
/* mix & blend the tilemaps and sprites into a 32-bit bitmap */
- blendbitmaps(screen.machine(), bitmap, state->m_tile_bitmap_bg, state->m_tile_bitmap_fg, state->m_sprite_bitmap, 0, 0, cliprect);
+ blendbitmaps(screen.machine(), bitmap, m_tile_bitmap_bg, m_tile_bitmap_fg, m_sprite_bitmap, 0, 0, cliprect);
return 0;
}
-SCREEN_UPDATE_IND16( drgnbowl )
+UINT32 gaiden_state::screen_update_drgnbowl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- gaiden_state *state = screen.machine().driver_data<gaiden_state>();
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_background->draw(bitmap, cliprect, 0, 1);
- state->m_foreground->draw(bitmap, cliprect, 0, 2);
- state->m_text_layer->draw(bitmap, cliprect, 0, 4);
+ m_background->draw(bitmap, cliprect, 0, 1);
+ m_foreground->draw(bitmap, cliprect, 0, 2);
+ m_text_layer->draw(bitmap, cliprect, 0, 4);
drgnbowl_draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/galaga.c b/src/mame/video/galaga.c
index 93887eee84e..e7920d5f35f 100644
--- a/src/mame/video/galaga.c
+++ b/src/mame/video/galaga.c
@@ -562,34 +562,32 @@ static void draw_stars(running_machine &machine, bitmap_ind16 &bitmap, const rec
}
}
-SCREEN_UPDATE_IND16( galaga )
+UINT32 galaga_state::screen_update_galaga(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- galaga_state *state = screen.machine().driver_data<galaga_state>();
bitmap.fill(get_black_pen(screen.machine()), cliprect);
draw_stars(screen.machine(),bitmap,cliprect);
draw_sprites(screen.machine(),bitmap,cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
-SCREEN_VBLANK( galaga )
+void galaga_state::screen_eof_galaga(screen_device &screen, bool state)
{
// falling edge
- if (!vblank_on)
+ if (!state)
{
- galaga_state *state = screen.machine().driver_data<galaga_state>();
/* this function is called by galaga_interrupt_1() */
int s0,s1,s2;
static const int speeds[8] = { -1, -2, -3, 0, 3, 2, 1, 0 };
- s0 = (state->m_galaga_starcontrol[0] & 1);
- s1 = (state->m_galaga_starcontrol[1] & 1);
- s2 = (state->m_galaga_starcontrol[2] & 1);
+ s0 = (m_galaga_starcontrol[0] & 1);
+ s1 = (m_galaga_starcontrol[1] & 1);
+ s2 = (m_galaga_starcontrol[2] & 1);
- state->m_stars_scrollx += speeds[s0 + s1*2 + s2*4];
+ m_stars_scrollx += speeds[s0 + s1*2 + s2*4];
}
}
diff --git a/src/mame/video/galastrm.c b/src/mame/video/galastrm.c
index 8d5e73a519d..2119a8c7ef4 100644
--- a/src/mame/video/galastrm.c
+++ b/src/mame/video/galastrm.c
@@ -432,9 +432,8 @@ static void tc0610_rotate_draw(running_machine &machine, bitmap_ind16 &bitmap, b
SCREEN REFRESH
**************************************************************/
-SCREEN_UPDATE_IND16( galastrm )
+UINT32 galastrm_state::screen_update_galastrm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- galastrm_state *state = screen.machine().driver_data<galastrm_state>();
device_t *tc0100scn = screen.machine().device("tc0100scn");
device_t *tc0480scp = screen.machine().device("tc0480scp");
UINT8 layer[5];
@@ -461,7 +460,7 @@ SCREEN_UPDATE_IND16( galastrm )
bitmap.fill(0, cliprect);
priority_bitmap.fill(0, clip);
- state->m_tmpbitmaps.fill(0, clip);
+ m_tmpbitmaps.fill(0, clip);
tc0100scn_tilemap_draw(tc0100scn, bitmap, cliprect, pivlayer[0], 0, 0);
tc0100scn_tilemap_draw(tc0100scn, bitmap, cliprect, pivlayer[1], 0, 0);
@@ -469,17 +468,17 @@ SCREEN_UPDATE_IND16( galastrm )
#if 0
if (layer[0]==0 && layer[1]==3 && layer[2]==2 && layer[3]==1)
{
- if (!screen.machine().input().code_pressed(KEYCODE_Z)) tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[0], 0, 1);
- if (!screen.machine().input().code_pressed(KEYCODE_X)) tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[1], 0, 4);
- if (!screen.machine().input().code_pressed(KEYCODE_C)) tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[2], 0, 4);
- if (!screen.machine().input().code_pressed(KEYCODE_V)) tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[3], 0, 4);
+ if (!screen.machine().input().code_pressed(KEYCODE_Z)) tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[0], 0, 1);
+ if (!screen.machine().input().code_pressed(KEYCODE_X)) tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[1], 0, 4);
+ if (!screen.machine().input().code_pressed(KEYCODE_C)) tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[2], 0, 4);
+ if (!screen.machine().input().code_pressed(KEYCODE_V)) tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[3], 0, 4);
}
else
{
- if (!screen.machine().input().code_pressed(KEYCODE_Z)) tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[0], 0, 1);
- if (!screen.machine().input().code_pressed(KEYCODE_X)) tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[1], 0, 2);
- if (!screen.machine().input().code_pressed(KEYCODE_C)) tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[2], 0, 4);
- if (!screen.machine().input().code_pressed(KEYCODE_V)) tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[3], 0, 8);
+ if (!screen.machine().input().code_pressed(KEYCODE_Z)) tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[0], 0, 1);
+ if (!screen.machine().input().code_pressed(KEYCODE_X)) tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[1], 0, 2);
+ if (!screen.machine().input().code_pressed(KEYCODE_C)) tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[2], 0, 4);
+ if (!screen.machine().input().code_pressed(KEYCODE_V)) tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[3], 0, 8);
}
if (layer[0]==3 && layer[1]==0 && layer[2]==1 && layer[3]==2)
@@ -492,18 +491,18 @@ SCREEN_UPDATE_IND16( galastrm )
for (x=0; x < priority_bitmap.width; x++)
{
pri = &priority_bitmap.pix8(y, x);
- if (!(*pri & 0x02) && state->m_tmpbitmaps.pix16(y, x))
+ if (!(*pri & 0x02) && m_tmpbitmaps.pix16(y, x))
*pri |= 0x04;
}
}
}
draw_sprites_pre(screen.machine(), 42-X_OFFSET, -571+Y_OFFSET);
- draw_sprites(screen.machine(),state->m_tmpbitmaps,clip,primasks,1);
+ draw_sprites(screen.machine(),m_tmpbitmaps,clip,primasks,1);
- copybitmap_trans(bitmap,state->m_polybitmap,0,0, 0,0,cliprect,0);
- state->m_polybitmap->fill(0, clip);
- tc0610_rotate_draw(screen.machine(),state->m_polybitmap,state->m_tmpbitmaps,cliprect);
+ copybitmap_trans(bitmap,m_polybitmap,0,0, 0,0,cliprect,0);
+ m_polybitmap->fill(0, clip);
+ tc0610_rotate_draw(screen.machine(),m_polybitmap,m_tmpbitmaps,cliprect);
priority_bitmap.fill(0, cliprect);
draw_sprites(screen.machine(),bitmap,cliprect,primasks,0);
@@ -516,17 +515,17 @@ SCREEN_UPDATE_IND16( galastrm )
#else
if (layer[0]==0 && layer[1]==3 && layer[2]==2 && layer[3]==1)
{
- tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[0], 0, 1);
- tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[1], 0, 4);
- tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[2], 0, 4);
- tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[3], 0, 4);
+ tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[0], 0, 1);
+ tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[1], 0, 4);
+ tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[2], 0, 4);
+ tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[3], 0, 4);
}
else
{
- tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[0], 0, 1);
- tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[1], 0, 2);
- tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[2], 0, 4);
- tc0480scp_tilemap_draw(tc0480scp, state->m_tmpbitmaps, clip, layer[3], 0, 8);
+ tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[0], 0, 1);
+ tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[1], 0, 2);
+ tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[2], 0, 4);
+ tc0480scp_tilemap_draw(tc0480scp, m_tmpbitmaps, clip, layer[3], 0, 8);
}
if (layer[0]==3 && layer[1]==0 && layer[2]==1 && layer[3]==2)
@@ -539,18 +538,18 @@ SCREEN_UPDATE_IND16( galastrm )
for (x=0; x < priority_bitmap.width(); x++)
{
pri = &priority_bitmap.pix8(y, x);
- if (!(*pri & 0x02) && state->m_tmpbitmaps.pix16(y, x))
+ if (!(*pri & 0x02) && m_tmpbitmaps.pix16(y, x))
*pri |= 0x04;
}
}
}
draw_sprites_pre(screen.machine(), 42-X_OFFSET, -571+Y_OFFSET);
- draw_sprites(screen.machine(),state->m_tmpbitmaps,clip,primasks,1);
+ draw_sprites(screen.machine(),m_tmpbitmaps,clip,primasks,1);
- copybitmap_trans(bitmap,state->m_polybitmap,0,0, 0,0,cliprect,0);
- state->m_polybitmap.fill(0, clip);
- tc0610_rotate_draw(screen.machine(),state->m_polybitmap,state->m_tmpbitmaps,cliprect);
+ copybitmap_trans(bitmap,m_polybitmap,0,0, 0,0,cliprect,0);
+ m_polybitmap.fill(0, clip);
+ tc0610_rotate_draw(screen.machine(),m_polybitmap,m_tmpbitmaps,cliprect);
priority_bitmap.fill(0, cliprect);
draw_sprites(screen.machine(),bitmap,cliprect,primasks,0);
diff --git a/src/mame/video/galaxia.c b/src/mame/video/galaxia.c
index c5aaa967670..8c764d6607b 100644
--- a/src/mame/video/galaxia.c
+++ b/src/mame/video/galaxia.c
@@ -107,9 +107,8 @@ VIDEO_START_MEMBER(galaxia_state,astrowar)
/********************************************************************************/
-SCREEN_UPDATE_IND16( galaxia )
+UINT32 galaxia_state::screen_update_galaxia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- galaxia_state *state = screen.machine().driver_data<galaxia_state>();
int x, y;
bitmap_ind16 &s2636_0_bitmap = s2636_update(screen.machine().device("s2636_0"), cliprect);
@@ -118,20 +117,20 @@ SCREEN_UPDATE_IND16( galaxia )
bitmap.fill(0, cliprect);
cvs_update_stars(screen.machine(), bitmap, cliprect, STAR_PEN, 1);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
for (y = cliprect.min_y; y <= cliprect.max_y; y++)
{
for (x = cliprect.min_x; x <= cliprect.max_x; x++)
{
- bool bullet = state->m_bullet_ram[y] && x == (state->m_bullet_ram[y] ^ 0xff);
+ bool bullet = m_bullet_ram[y] && x == (m_bullet_ram[y] ^ 0xff);
bool background = (bitmap.pix16(y, x) & 3) != 0;
// draw bullets (guesswork)
if (bullet)
{
// background vs. bullet collision detection
- if (background) state->m_collision_register |= 0x80;
+ if (background) m_collision_register |= 0x80;
// bullet size/color/priority is guessed
bitmap.pix16(y, x) = BULLET_PEN;
@@ -148,20 +147,20 @@ SCREEN_UPDATE_IND16( galaxia )
if (S2636_IS_PIXEL_DRAWN(pixel))
{
// S2636 vs. S2636 collision detection
- if (S2636_IS_PIXEL_DRAWN(pixel0) && S2636_IS_PIXEL_DRAWN(pixel1)) state->m_collision_register |= 0x01;
- if (S2636_IS_PIXEL_DRAWN(pixel1) && S2636_IS_PIXEL_DRAWN(pixel2)) state->m_collision_register |= 0x02;
- if (S2636_IS_PIXEL_DRAWN(pixel2) && S2636_IS_PIXEL_DRAWN(pixel0)) state->m_collision_register |= 0x04;
+ if (S2636_IS_PIXEL_DRAWN(pixel0) && S2636_IS_PIXEL_DRAWN(pixel1)) m_collision_register |= 0x01;
+ if (S2636_IS_PIXEL_DRAWN(pixel1) && S2636_IS_PIXEL_DRAWN(pixel2)) m_collision_register |= 0x02;
+ if (S2636_IS_PIXEL_DRAWN(pixel2) && S2636_IS_PIXEL_DRAWN(pixel0)) m_collision_register |= 0x04;
// S2636 vs. bullet collision detection
- if (bullet) state->m_collision_register |= 0x08;
+ if (bullet) m_collision_register |= 0x08;
// S2636 vs. background collision detection
if (background)
{
/* bit4 causes problems on 2nd level
- if (S2636_IS_PIXEL_DRAWN(pixel0)) state->m_collision_register |= 0x10; */
- if (S2636_IS_PIXEL_DRAWN(pixel1)) state->m_collision_register |= 0x20;
- if (S2636_IS_PIXEL_DRAWN(pixel2)) state->m_collision_register |= 0x40;
+ if (S2636_IS_PIXEL_DRAWN(pixel0)) m_collision_register |= 0x10; */
+ if (S2636_IS_PIXEL_DRAWN(pixel1)) m_collision_register |= 0x20;
+ if (S2636_IS_PIXEL_DRAWN(pixel2)) m_collision_register |= 0x40;
}
bitmap.pix16(y, x) = S2636_PIXEL_COLOR(pixel) | SPRITE_PEN_BASE;
@@ -173,29 +172,28 @@ SCREEN_UPDATE_IND16( galaxia )
}
-SCREEN_UPDATE_IND16( astrowar )
+UINT32 galaxia_state::screen_update_astrowar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
// astrowar has only one S2636
- galaxia_state *state = screen.machine().driver_data<galaxia_state>();
int x, y;
bitmap_ind16 &s2636_0_bitmap = s2636_update(screen.machine().device("s2636_0"), cliprect);
bitmap.fill(0, cliprect);
cvs_update_stars(screen.machine(), bitmap, cliprect, STAR_PEN, 1);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- copybitmap(state->m_temp_bitmap, bitmap, 0, 0, 0, 0, cliprect);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ copybitmap(m_temp_bitmap, bitmap, 0, 0, 0, 0, cliprect);
for (y = cliprect.min_y; y <= cliprect.max_y; y++)
{
// draw bullets (guesswork)
- if (state->m_bullet_ram[y])
+ if (m_bullet_ram[y])
{
- UINT8 pos = state->m_bullet_ram[y] ^ 0xff;
+ UINT8 pos = m_bullet_ram[y] ^ 0xff;
// background vs. bullet collision detection
- if (state->m_temp_bitmap.pix16(y, pos) & 1)
- state->m_collision_register |= 0x02;
+ if (m_temp_bitmap.pix16(y, pos) & 1)
+ m_collision_register |= 0x02;
// bullet size/color/priority is guessed
bitmap.pix16(y, pos) = BULLET_PEN;
@@ -218,8 +216,8 @@ SCREEN_UPDATE_IND16( astrowar )
if (S2636_IS_PIXEL_DRAWN(pixel))
{
// S2636 vs. background collision detection
- if ((state->m_temp_bitmap.pix16(y, (int)(sx)) | state->m_temp_bitmap.pix16(y, (int)(sx + 0.5))) & 1)
- state->m_collision_register |= 0x01;
+ if ((m_temp_bitmap.pix16(y, (int)(sx)) | m_temp_bitmap.pix16(y, (int)(sx + 0.5))) & 1)
+ m_collision_register |= 0x01;
bitmap.pix16(y, (int)(sx)) = S2636_PIXEL_COLOR(pixel) | SPRITE_PEN_BASE;
bitmap.pix16(y, (int)(sx + 0.5)) = S2636_PIXEL_COLOR(pixel) | SPRITE_PEN_BASE;
diff --git a/src/mame/video/galaxian.c b/src/mame/video/galaxian.c
index 09d535b22a8..2425a1e78d2 100644
--- a/src/mame/video/galaxian.c
+++ b/src/mame/video/galaxian.c
@@ -450,22 +450,21 @@ static void state_save_register(running_machine &machine)
*
*************************************/
-SCREEN_UPDATE_RGB32( galaxian )
+UINT32 galaxian_state::screen_update_galaxian(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- galaxian_state *state = screen.machine().driver_data<galaxian_state>();
/* draw the background layer (including stars) */
- (*state->m_draw_background_ptr)(screen.machine(), bitmap, cliprect);
+ (*m_draw_background_ptr)(screen.machine(), bitmap, cliprect);
/* draw the tilemap characters over top */
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
/* render the sprites next. Some custom pcbs (eg. zigzag, fantastc) have more than one sprite generator (ideally, this should be rendered in parallel) */
- for (int i = 0; i < state->m_numspritegens; i++)
- sprites_draw(screen.machine(), bitmap, cliprect, &state->m_spriteram[0x40 + i * 0x20]);
+ for (int i = 0; i < m_numspritegens; i++)
+ sprites_draw(screen.machine(), bitmap, cliprect, &m_spriteram[0x40 + i * 0x20]);
/* if we have bullets to draw, render them following */
- if (state->m_draw_bullet_ptr != NULL)
- bullets_draw(screen.machine(), bitmap, cliprect, &state->m_spriteram[state->m_bullets_base]);
+ if (m_draw_bullet_ptr != NULL)
+ bullets_draw(screen.machine(), bitmap, cliprect, &m_spriteram[m_bullets_base]);
return 0;
}
diff --git a/src/mame/video/galaxold.c b/src/mame/video/galaxold.c
index 9ad691ae8e5..9e9285c474a 100644
--- a/src/mame/video/galaxold.c
+++ b/src/mame/video/galaxold.c
@@ -1753,77 +1753,75 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, UINT8 *
}
-SCREEN_UPDATE_IND16( galaxold )
+UINT32 galaxold_state::screen_update_galaxold(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- galaxold_state *state = screen.machine().driver_data<galaxold_state>();
- (*state->m_draw_background)(screen.machine(), bitmap, cliprect);
+ (*m_draw_background)(screen.machine(), bitmap, cliprect);
- if (state->m_stars_on)
+ if (m_stars_on)
{
- (*state->m_draw_stars)(screen.machine(), bitmap, cliprect);
+ (*m_draw_stars)(screen.machine(), bitmap, cliprect);
}
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- if (state->m_draw_bullets)
+ if (m_draw_bullets)
{
draw_bullets_common(screen.machine(), bitmap, cliprect);
}
- draw_sprites(screen.machine(), bitmap, state->m_spriteram, state->m_spriteram.bytes());
+ draw_sprites(screen.machine(), bitmap, m_spriteram, m_spriteram.bytes());
- if (state->m_spriteram2_present)
+ if (m_spriteram2_present)
{
- draw_sprites(screen.machine(), bitmap, state->m_spriteram2, state->m_spriteram2.bytes());
+ draw_sprites(screen.machine(), bitmap, m_spriteram2, m_spriteram2.bytes());
}
return 0;
}
-SCREEN_UPDATE_IND16( dambustr )
+UINT32 galaxold_state::screen_update_dambustr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- galaxold_state *state = screen.machine().driver_data<galaxold_state>();
int i, j;
UINT8 color;
- (*state->m_draw_background)(screen.machine(), bitmap, cliprect);
+ (*m_draw_background)(screen.machine(), bitmap, cliprect);
- if (state->m_stars_on)
+ if (m_stars_on)
{
- (*state->m_draw_stars)(screen.machine(), bitmap, cliprect);
+ (*m_draw_stars)(screen.machine(), bitmap, cliprect);
}
/* save the background for drawing it again later, if background has priority over characters */
- copybitmap(*state->m_dambustr_tmpbitmap, bitmap, 0, 0, 0, 0, state->m_dambustr_tmpbitmap->cliprect());
+ copybitmap(*m_dambustr_tmpbitmap, bitmap, 0, 0, 0, 0, m_dambustr_tmpbitmap->cliprect());
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- if (state->m_draw_bullets)
+ if (m_draw_bullets)
{
draw_bullets_common(screen.machine(), bitmap, cliprect);
}
- draw_sprites(screen.machine(), bitmap, state->m_spriteram, state->m_spriteram.bytes());
+ draw_sprites(screen.machine(), bitmap, m_spriteram, m_spriteram.bytes());
- if (state->m_dambustr_bg_priority)
+ if (m_dambustr_bg_priority)
{
/* draw the upper part of the background, as it has priority */
dambustr_draw_upper_background(screen.machine(), bitmap, cliprect);
/* only rows with color code > 3 are stronger than the background */
- memset(state->m_dambustr_videoram2, 0x20, 0x0400);
+ memset(m_dambustr_videoram2, 0x20, 0x0400);
for (i=0; i<32; i++) {
- color = state->m_attributesram[(i << 1) | 1] & state->m_color_mask;
+ color = m_attributesram[(i << 1) | 1] & m_color_mask;
if (color > 3) {
for (j=0; j<32; j++)
- state->m_dambustr_videoram2[32*j+i] = state->m_videoram[32*j+i];
+ m_dambustr_videoram2[32*j+i] = m_videoram[32*j+i];
};
};
- state->m_dambustr_tilemap2->mark_all_dirty();
- state->m_dambustr_tilemap2->draw(bitmap, cliprect, 0, 0);
+ m_dambustr_tilemap2->mark_all_dirty();
+ m_dambustr_tilemap2->draw(bitmap, cliprect, 0, 0);
};
return 0;
diff --git a/src/mame/video/galivan.c b/src/mame/video/galivan.c
index 6cf14f069bf..d89b827e8e2 100644
--- a/src/mame/video/galivan.c
+++ b/src/mame/video/galivan.c
@@ -337,47 +337,45 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
-SCREEN_UPDATE_IND16( galivan )
+UINT32 galivan_state::screen_update_galivan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- galivan_state *state = screen.machine().driver_data<galivan_state>();
- state->m_bg_tilemap->set_scrollx(0, state->m_galivan_scrollx[0] + 256 * (state->m_galivan_scrollx[1] & 0x07));
- state->m_bg_tilemap->set_scrolly(0, state->m_galivan_scrolly[0] + 256 * (state->m_galivan_scrolly[1] & 0x07));
+ m_bg_tilemap->set_scrollx(0, m_galivan_scrollx[0] + 256 * (m_galivan_scrollx[1] & 0x07));
+ m_bg_tilemap->set_scrolly(0, m_galivan_scrolly[0] + 256 * (m_galivan_scrolly[1] & 0x07));
- if (state->m_layers & 0x40)
+ if (m_layers & 0x40)
bitmap.fill(0, cliprect);
else
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- if (state->m_layers & 0x20)
+ if (m_layers & 0x20)
{
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_tx_tilemap->draw(bitmap, cliprect, 1, 0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tx_tilemap->draw(bitmap, cliprect, 1, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
}
else
{
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_tx_tilemap->draw(bitmap, cliprect, 1, 0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tx_tilemap->draw(bitmap, cliprect, 1, 0);
}
return 0;
}
-SCREEN_UPDATE_IND16( ninjemak )
+UINT32 galivan_state::screen_update_ninjemak(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- galivan_state *state = screen.machine().driver_data<galivan_state>();
/* (scrollx[1] & 0x40) does something */
- state->m_bg_tilemap->set_scrollx(0, state->m_scrollx);
- state->m_bg_tilemap->set_scrolly(0, state->m_scrolly);
+ m_bg_tilemap->set_scrollx(0, m_scrollx);
+ m_bg_tilemap->set_scrolly(0, m_scrolly);
- if (state->m_ninjemak_dispdisable)
+ if (m_ninjemak_dispdisable)
bitmap.fill(0, cliprect);
else
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/galpani2.c b/src/mame/video/galpani2.c
index c2d2ea9910e..bc593d6a77c 100644
--- a/src/mame/video/galpani2.c
+++ b/src/mame/video/galpani2.c
@@ -137,9 +137,8 @@ void galpani2_state::video_start()
***************************************************************************/
-SCREEN_UPDATE_IND16( galpani2 )
+UINT32 galpani2_state::screen_update_galpani2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- galpani2_state *state = screen.machine().driver_data<galpani2_state>();
int layers_ctrl = -1;
#ifdef MAME_DEBUG
@@ -161,7 +160,7 @@ if (screen.machine().input().code_pressed(KEYCODE_Z))
{
int x = 0;
int y = 0;
- copyscrollbitmap_trans(bitmap, *state->m_bg15_bitmap,
+ copyscrollbitmap_trans(bitmap, *m_bg15_bitmap,
1, &x, 1, &y,
cliprect,0x4200 + 0);
}
@@ -174,22 +173,22 @@ if (screen.machine().input().code_pressed(KEYCODE_Z))
if (layers_ctrl & 0x2)
{
- int x = - ( *state->m_bg8_scrollx[0] + 0x200 - 0x0f5 );
- int y = - ( *state->m_bg8_scrolly[0] + 0x200 - 0x1be );
- copyscrollbitmap_trans(bitmap, *state->m_bg8_bitmap[0],
+ int x = - ( *m_bg8_scrollx[0] + 0x200 - 0x0f5 );
+ int y = - ( *m_bg8_scrolly[0] + 0x200 - 0x1be );
+ copyscrollbitmap_trans(bitmap, *m_bg8_bitmap[0],
1, &x, 1, &y,
cliprect,0x4000 + 0);
}
if (layers_ctrl & 0x4)
{
- int x = - ( *state->m_bg8_scrollx[1] + 0x200 - 0x0f5 );
- int y = - ( *state->m_bg8_scrolly[1] + 0x200 - 0x1be );
- copyscrollbitmap_trans(bitmap, *state->m_bg8_bitmap[1],
+ int x = - ( *m_bg8_scrollx[1] + 0x200 - 0x0f5 );
+ int y = - ( *m_bg8_scrolly[1] + 0x200 - 0x1be );
+ copyscrollbitmap_trans(bitmap, *m_bg8_bitmap[1],
1, &x, 1, &y,
cliprect,0x4000 + 0);
}
- if (layers_ctrl & 0x8) state->m_kaneko_spr->kaneko16_render_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram, state->m_spriteram.bytes());
+ if (layers_ctrl & 0x8) m_kaneko_spr->kaneko16_render_sprites(screen.machine(), bitmap, cliprect, m_spriteram, m_spriteram.bytes());
return 0;
}
diff --git a/src/mame/video/galpanic.c b/src/mame/video/galpanic.c
index 145a93f1b02..6dbec6a1d7a 100644
--- a/src/mame/video/galpanic.c
+++ b/src/mame/video/galpanic.c
@@ -100,13 +100,12 @@ static void draw_fgbitmap(running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( galpanic )
+UINT32 galpanic_state::screen_update_galpanic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- galpanic_state *state = screen.machine().driver_data<galpanic_state>();
device_t *pandora = screen.machine().device("pandora");
/* copy the temporary bitmap to the screen */
- copybitmap(bitmap,state->m_bitmap,0,0,0,0,cliprect);
+ copybitmap(bitmap,m_bitmap,0,0,0,0,cliprect);
draw_fgbitmap(screen.machine(), bitmap, cliprect);
@@ -115,25 +114,24 @@ SCREEN_UPDATE_IND16( galpanic )
return 0;
}
-SCREEN_UPDATE_IND16( comad )
+UINT32 galpanic_state::screen_update_comad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- galpanic_state *state = screen.machine().driver_data<galpanic_state>();
/* copy the temporary bitmap to the screen */
- copybitmap(bitmap,state->m_bitmap,0,0,0,0,cliprect);
+ copybitmap(bitmap,m_bitmap,0,0,0,0,cliprect);
draw_fgbitmap(screen.machine(), bitmap, cliprect);
// if(galpanic_clear_sprites)
{
- state->m_sprites_bitmap.fill(0, cliprect);
+ m_sprites_bitmap.fill(0, cliprect);
comad_draw_sprites(screen.machine(),bitmap,cliprect);
}
// else
// {
// /* keep sprites on the bitmap without clearing them */
-// comad_draw_sprites(screen.machine(),state->m_sprites_bitmap,0);
-// copybitmap_trans(bitmap,state->m_sprites_bitmap,0,0,0,0,cliprect,0);
+// comad_draw_sprites(screen.machine(),m_sprites_bitmap,0);
+// copybitmap_trans(bitmap,m_sprites_bitmap,0,0,0,0,cliprect,0);
// }
return 0;
}
diff --git a/src/mame/video/galspnbl.c b/src/mame/video/galspnbl.c
index 992b8e765b5..45b35b4758d 100644
--- a/src/mame/video/galspnbl.c
+++ b/src/mame/video/galspnbl.c
@@ -101,9 +101,8 @@ static void draw_background( running_machine &machine, bitmap_ind16 &bitmap, con
}
-SCREEN_UPDATE_IND16( galspnbl )
+UINT32 galspnbl_state::screen_update_galspnbl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- galspnbl_state *state = screen.machine().driver_data<galspnbl_state>();
int offs;
draw_background(screen.machine(), bitmap, cliprect);
@@ -114,8 +113,8 @@ SCREEN_UPDATE_IND16( galspnbl )
{
int sx, sy, code, attr, color;
- code = state->m_videoram[offs];
- attr = state->m_colorram[offs];
+ code = m_videoram[offs];
+ attr = m_colorram[offs];
color = (attr & 0x00f0) >> 4;
sx = offs % 64;
sy = offs / 64;
diff --git a/src/mame/video/gameplan.c b/src/mame/video/gameplan.c
index 30d1ba57cae..7d78a5b65b2 100644
--- a/src/mame/video/gameplan.c
+++ b/src/mame/video/gameplan.c
@@ -69,40 +69,38 @@ static void leprechn_get_pens( pen_t *pens )
*
*************************************/
-static SCREEN_UPDATE_RGB32( gameplan )
+UINT32 gameplan_state::screen_update_gameplan(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- gameplan_state *state = screen.machine().driver_data<gameplan_state>();
pen_t pens[GAMEPLAN_NUM_PENS];
offs_t offs;
gameplan_get_pens(pens);
- for (offs = 0; offs < state->m_videoram_size; offs++)
+ for (offs = 0; offs < m_videoram_size; offs++)
{
UINT8 y = offs >> 8;
UINT8 x = offs & 0xff;
- bitmap.pix32(y, x) = pens[state->m_videoram[offs] & 0x07];
+ bitmap.pix32(y, x) = pens[m_videoram[offs] & 0x07];
}
return 0;
}
-static SCREEN_UPDATE_RGB32( leprechn )
+UINT32 gameplan_state::screen_update_leprechn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- gameplan_state *state = screen.machine().driver_data<gameplan_state>();
pen_t pens[LEPRECHN_NUM_PENS];
offs_t offs;
leprechn_get_pens(pens);
- for (offs = 0; offs < state->m_videoram_size; offs++)
+ for (offs = 0; offs < m_videoram_size; offs++)
{
UINT8 y = offs >> 8;
UINT8 x = offs & 0xff;
- bitmap.pix32(y, x) = pens[state->m_videoram[offs]];
+ bitmap.pix32(y, x) = pens[m_videoram[offs]];
}
return 0;
@@ -343,19 +341,19 @@ MACHINE_CONFIG_FRAGMENT( gameplan_video )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(GAMEPLAN_PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(gameplan)
+ MCFG_SCREEN_UPDATE_DRIVER(gameplan_state, screen_update_gameplan)
MACHINE_CONFIG_END
MACHINE_CONFIG_FRAGMENT( leprechn_video )
MCFG_VIDEO_START_OVERRIDE(gameplan_state,leprechn)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(leprechn)
+ MCFG_SCREEN_UPDATE_DRIVER(gameplan_state, screen_update_leprechn)
MACHINE_CONFIG_END
MACHINE_CONFIG_DERIVED( trvquest_video, gameplan_video )
MCFG_VIDEO_START_OVERRIDE(gameplan_state,trvquest)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(gameplan)
+ MCFG_SCREEN_UPDATE_DRIVER(gameplan_state, screen_update_gameplan)
MACHINE_CONFIG_END
diff --git a/src/mame/video/gaplus.c b/src/mame/video/gaplus.c
index 0d4c3ca70cd..0de92d7df08 100644
--- a/src/mame/video/gaplus.c
+++ b/src/mame/video/gaplus.c
@@ -303,47 +303,45 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( gaplus )
+UINT32 gaplus_state::screen_update_gaplus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- gaplus_state *state = screen.machine().driver_data<gaplus_state>();
/* flip screen control is embedded in RAM */
- state->flip_screen_set(state->m_spriteram[0x1f7f-0x800] & 1);
+ flip_screen_set(m_spriteram[0x1f7f-0x800] & 1);
bitmap.fill(0, cliprect);
starfield_render(screen.machine(), bitmap);
/* draw the low priority characters */
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap, cliprect);
/* draw the high priority characters */
/* (I don't know if this feature is used by Gaplus, but it's shown in the schematics) */
- state->m_bg_tilemap->draw(bitmap, cliprect, 1,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 1,0);
return 0;
}
-SCREEN_VBLANK( gaplus ) /* update starfields */
+void gaplus_state::screen_eof_gaplus(screen_device &screen, bool state)/* update starfields */
{
// falling edge
- if (!vblank_on)
+ if (!state)
{
- gaplus_state *state = screen.machine().driver_data<gaplus_state>();
- struct star *stars = state->m_stars;
+ struct star *stars = m_stars;
int i;
int width = screen.machine().primary_screen->width();
int height = screen.machine().primary_screen->height();
/* check if we're running */
- if ( ( state->m_starfield_control[0] & 1 ) == 0 )
+ if ( ( m_starfield_control[0] & 1 ) == 0 )
return;
/* update the starfields */
- for ( i = 0; i < state->m_total_stars; i++ ) {
- switch( state->m_starfield_control[stars[i].set + 1] ) {
+ for ( i = 0; i < m_total_stars; i++ ) {
+ switch( m_starfield_control[stars[i].set + 1] ) {
case 0x87:
/* stand still */
break;
diff --git a/src/mame/video/gatron.c b/src/mame/video/gatron.c
index 84aad44b32d..a806698d76b 100644
--- a/src/mame/video/gatron.c
+++ b/src/mame/video/gatron.c
@@ -48,10 +48,9 @@ void gatron_state::video_start()
m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(gatron_state::get_bg_tile_info),this), TILEMAP_SCAN_COLS, 8, 16, 48, 16);
}
-SCREEN_UPDATE_IND16( gat )
+UINT32 gatron_state::screen_update_gat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- gatron_state *state = screen.machine().driver_data<gatron_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/gauntlet.c b/src/mame/video/gauntlet.c
index 718a09836a4..7b0a6c694c0 100644
--- a/src/mame/video/gauntlet.c
+++ b/src/mame/video/gauntlet.c
@@ -173,15 +173,14 @@ WRITE16_HANDLER( gauntlet_yscroll_w )
*
*************************************/
-SCREEN_UPDATE_IND16( gauntlet )
+UINT32 gauntlet_state::screen_update_gauntlet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- gauntlet_state *state = screen.machine().driver_data<gauntlet_state>();
atarimo_rect_list rectlist;
bitmap_ind16 *mobitmap;
int x, y, r;
/* draw the playfield */
- state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
/* draw and merge the MO */
mobitmap = atarimo_render(0, cliprect, &rectlist);
@@ -200,7 +199,7 @@ SCREEN_UPDATE_IND16( gauntlet )
if ((mo[x] & 0x0f) == 1)
{
/* Vindicators Part II has extra logic here for the bases */
- if (!state->m_vindctr2_screen_refresh || (mo[x] & 0xf0) != 0)
+ if (!m_vindctr2_screen_refresh || (mo[x] & 0xf0) != 0)
pf[x] ^= 0x80;
}
else
@@ -212,6 +211,6 @@ SCREEN_UPDATE_IND16( gauntlet )
}
/* add the alpha on top */
- state->m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/gberet.c b/src/mame/video/gberet.c
index c0777eaa2bd..f621e857429 100644
--- a/src/mame/video/gberet.c
+++ b/src/mame/video/gberet.c
@@ -163,13 +163,12 @@ static void gberet_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap,
}
}
-SCREEN_UPDATE_IND16( gberet )
+UINT32 gberet_state::screen_update_gberet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- gberet_state *state = screen.machine().driver_data<gberet_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES, 0);
gberet_draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -218,11 +217,10 @@ static void gberetb_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap
}
}
-SCREEN_UPDATE_IND16( gberetb )
+UINT32 gberet_state::screen_update_gberetb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- gberet_state *state = screen.machine().driver_data<gberet_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES, 0);
gberetb_draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/gbusters.c b/src/mame/video/gbusters.c
index a9fe019b0c4..91d28ae9f59 100644
--- a/src/mame/video/gbusters.c
+++ b/src/mame/video/gbusters.c
@@ -46,30 +46,29 @@ void gbusters_state::video_start()
}
-SCREEN_UPDATE_IND16( gbusters )
+UINT32 gbusters_state::screen_update_gbusters(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- gbusters_state *state = screen.machine().driver_data<gbusters_state>();
- k052109_tilemap_update(state->m_k052109);
+ k052109_tilemap_update(m_k052109);
/* sprite priority 3 = disable */
- if (state->m_priority)
+ if (m_priority)
{
-// k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 1, 1); /* are these used? */
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE, 0);
- k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 2, 2);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, 0, 0);
- k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 0, 0);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, 0, 0);
+// k051960_sprites_draw(m_k051960, bitmap, cliprect, 1, 1); /* are these used? */
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE, 0);
+ k051960_sprites_draw(m_k051960, bitmap, cliprect, 2, 2);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, 0, 0);
+ k051960_sprites_draw(m_k051960, bitmap, cliprect, 0, 0);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, 0, 0);
}
else
{
-// k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 1, 1); /* are these used? */
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 0);
- k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 2, 2);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, 0, 0);
- k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 0, 0);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, 0, 0);
+// k051960_sprites_draw(m_k051960, bitmap, cliprect, 1, 1); /* are these used? */
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 0);
+ k051960_sprites_draw(m_k051960, bitmap, cliprect, 2, 2);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, 0, 0);
+ k051960_sprites_draw(m_k051960, bitmap, cliprect, 0, 0);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, 0, 0);
}
return 0;
}
diff --git a/src/mame/video/gcpinbal.c b/src/mame/video/gcpinbal.c
index 09d5807aad1..04529684d14 100644
--- a/src/mame/video/gcpinbal.c
+++ b/src/mame/video/gcpinbal.c
@@ -243,9 +243,8 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
SCREEN REFRESH
**************************************************************/
-SCREEN_UPDATE_IND16( gcpinbal )
+UINT32 gcpinbal_state::screen_update_gcpinbal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- gcpinbal_state *state = screen.machine().driver_data<gcpinbal_state>();
int i;
UINT16 tile_sets = 0;
UINT8 layer[3];
@@ -253,38 +252,38 @@ SCREEN_UPDATE_IND16( gcpinbal )
#ifdef MAME_DEBUG
if (screen.machine().input().code_pressed_once(KEYCODE_V))
{
- state->m_dislayer[0] ^= 1;
- popmessage("bg0: %01x", state->m_dislayer[0]);
+ m_dislayer[0] ^= 1;
+ popmessage("bg0: %01x", m_dislayer[0]);
}
if (screen.machine().input().code_pressed_once(KEYCODE_B))
{
- state->m_dislayer[1] ^= 1;
- popmessage("bg1: %01x", state->m_dislayer[1]);
+ m_dislayer[1] ^= 1;
+ popmessage("bg1: %01x", m_dislayer[1]);
}
if (screen.machine().input().code_pressed_once(KEYCODE_N))
{
- state->m_dislayer[2] ^= 1;
- popmessage("fg: %01x", state->m_dislayer[2]);
+ m_dislayer[2] ^= 1;
+ popmessage("fg: %01x", m_dislayer[2]);
}
#endif
- state->m_scrollx[0] = state->m_ioc_ram[0x14 / 2];
- state->m_scrolly[0] = state->m_ioc_ram[0x16 / 2];
- state->m_scrollx[1] = state->m_ioc_ram[0x18 / 2];
- state->m_scrolly[1] = state->m_ioc_ram[0x1a / 2];
- state->m_scrollx[2] = state->m_ioc_ram[0x1c / 2];
- state->m_scrolly[2] = state->m_ioc_ram[0x1e / 2];
+ m_scrollx[0] = m_ioc_ram[0x14 / 2];
+ m_scrolly[0] = m_ioc_ram[0x16 / 2];
+ m_scrollx[1] = m_ioc_ram[0x18 / 2];
+ m_scrolly[1] = m_ioc_ram[0x1a / 2];
+ m_scrollx[2] = m_ioc_ram[0x1c / 2];
+ m_scrolly[2] = m_ioc_ram[0x1e / 2];
- tile_sets = state->m_ioc_ram[0x88 / 2];
- state->m_bg0_gfxset = (tile_sets & 0x400) ? 0x1000 : 0;
- state->m_bg1_gfxset = (tile_sets & 0x800) ? 0x1000 : 0;
+ tile_sets = m_ioc_ram[0x88 / 2];
+ m_bg0_gfxset = (tile_sets & 0x400) ? 0x1000 : 0;
+ m_bg1_gfxset = (tile_sets & 0x800) ? 0x1000 : 0;
for (i = 0; i < 3; i++)
{
- state->m_tilemap[i]->set_scrollx(0, state->m_scrollx[i]);
- state->m_tilemap[i]->set_scrolly(0, state->m_scrolly[i]);
+ m_tilemap[i]->set_scrollx(0, m_scrollx[i]);
+ m_tilemap[i]->set_scrolly(0, m_scrolly[i]);
}
screen.machine().priority_bitmap.fill(0, cliprect);
@@ -296,19 +295,19 @@ SCREEN_UPDATE_IND16( gcpinbal )
#ifdef MAME_DEBUG
- if (state->m_dislayer[layer[0]] == 0)
+ if (m_dislayer[layer[0]] == 0)
#endif
- state->m_tilemap[layer[0]]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
+ m_tilemap[layer[0]]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
#ifdef MAME_DEBUG
- if (state->m_dislayer[layer[1]] == 0)
+ if (m_dislayer[layer[1]] == 0)
#endif
- state->m_tilemap[layer[1]]->draw(bitmap, cliprect, 0, 2);
+ m_tilemap[layer[1]]->draw(bitmap, cliprect, 0, 2);
#ifdef MAME_DEBUG
- if (state->m_dislayer[layer[2]] == 0)
+ if (m_dislayer[layer[2]] == 0)
#endif
- state->m_tilemap[layer[2]]->draw(bitmap, cliprect, 0, 4);
+ m_tilemap[layer[2]]->draw(bitmap, cliprect, 0, 4);
draw_sprites(screen.machine(), bitmap, cliprect, 16);
@@ -316,7 +315,7 @@ SCREEN_UPDATE_IND16( gcpinbal )
#if 0
{
// char buf[80];
- sprintf(buf,"bg0_gfx: %04x bg1_gfx: %04x ", state->m_bg0_gfxset, state->m_bg1_gfxset);
+ sprintf(buf,"bg0_gfx: %04x bg1_gfx: %04x ", m_bg0_gfxset, m_bg1_gfxset);
popmessage(buf);
}
#endif
diff --git a/src/mame/video/gijoe.c b/src/mame/video/gijoe.c
index 5df64bc1781..a6cacfddc30 100644
--- a/src/mame/video/gijoe.c
+++ b/src/mame/video/gijoe.c
@@ -74,51 +74,50 @@ void gijoe_state::video_start()
save_item(NAME(m_layer_pri));
}
-SCREEN_UPDATE_IND16( gijoe )
+UINT32 gijoe_state::screen_update_gijoe(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- gijoe_state *state = screen.machine().driver_data<gijoe_state>();
static const int K053251_CI[4] = { K053251_CI1, K053251_CI2, K053251_CI3, K053251_CI4 };
int layer[4];
int vrc_mode, vrc_new, colorbase_new, /*primode,*/ dirty, i;
int mask = 0;
// update tile offsets
- k056832_read_avac(state->m_k056832, &vrc_mode, &vrc_new);
+ k056832_read_avac(m_k056832, &vrc_mode, &vrc_new);
if (vrc_mode)
{
for (dirty = 0xf000; dirty; dirty >>= 4)
- if ((state->m_avac_vrc & dirty) != (vrc_new & dirty))
+ if ((m_avac_vrc & dirty) != (vrc_new & dirty))
mask |= dirty;
- state->m_avac_vrc = vrc_new;
- state->m_avac_bits[0] = vrc_new << 4 & 0xf000;
- state->m_avac_bits[1] = vrc_new & 0xf000;
- state->m_avac_bits[2] = vrc_new << 8 & 0xf000;
- state->m_avac_bits[3] = vrc_new << 12 & 0xf000;
+ m_avac_vrc = vrc_new;
+ m_avac_bits[0] = vrc_new << 4 & 0xf000;
+ m_avac_bits[1] = vrc_new & 0xf000;
+ m_avac_bits[2] = vrc_new << 8 & 0xf000;
+ m_avac_bits[3] = vrc_new << 12 & 0xf000;
}
else
- state->m_avac_bits[3] = state->m_avac_bits[2] = state->m_avac_bits[1] = state->m_avac_bits[0] = 0xf000;
+ m_avac_bits[3] = m_avac_bits[2] = m_avac_bits[1] = m_avac_bits[0] = 0xf000;
// update color info and refresh tilemaps
- state->m_sprite_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI0);
+ m_sprite_colorbase = k053251_get_palette_index(m_k053251, K053251_CI0);
for (i = 0; i < 4; i++)
{
dirty = 0;
- colorbase_new = k053251_get_palette_index(state->m_k053251, K053251_CI[i]);
- if (state->m_layer_colorbase[i] != colorbase_new)
+ colorbase_new = k053251_get_palette_index(m_k053251, K053251_CI[i]);
+ if (m_layer_colorbase[i] != colorbase_new)
{
- state->m_layer_colorbase[i] = colorbase_new;
+ m_layer_colorbase[i] = colorbase_new;
dirty = 1;
}
- if (state->m_avac_occupancy[i] & mask)
+ if (m_avac_occupancy[i] & mask)
dirty = 1;
if (dirty)
{
- state->m_avac_occupancy[i] = 0;
- k056832_mark_plane_dirty(state->m_k056832, i);
+ m_avac_occupancy[i] = 0;
+ k056832_mark_plane_dirty(m_k056832, i);
}
}
@@ -128,43 +127,43 @@ SCREEN_UPDATE_IND16( gijoe )
written to the layer's X-scroll register otherwise the chip expects totally
different alignment values.
*/
- if (k056832_read_register(state->m_k056832, 0x14) == 2)
+ if (k056832_read_register(m_k056832, 0x14) == 2)
{
- k056832_set_layer_offs(state->m_k056832, 0, 2, 0);
- k056832_set_layer_offs(state->m_k056832, 1, 4, 0);
- k056832_set_layer_offs(state->m_k056832, 2, 6, 0); // 7?
- k056832_set_layer_offs(state->m_k056832, 3, 8, 0);
+ k056832_set_layer_offs(m_k056832, 0, 2, 0);
+ k056832_set_layer_offs(m_k056832, 1, 4, 0);
+ k056832_set_layer_offs(m_k056832, 2, 6, 0); // 7?
+ k056832_set_layer_offs(m_k056832, 3, 8, 0);
}
else
{
- k056832_set_layer_offs(state->m_k056832, 0, 0, 0);
- k056832_set_layer_offs(state->m_k056832, 1, 8, 0);
- k056832_set_layer_offs(state->m_k056832, 2, 14, 0);
- k056832_set_layer_offs(state->m_k056832, 3, 16, 0); // smaller?
+ k056832_set_layer_offs(m_k056832, 0, 0, 0);
+ k056832_set_layer_offs(m_k056832, 1, 8, 0);
+ k056832_set_layer_offs(m_k056832, 2, 14, 0);
+ k056832_set_layer_offs(m_k056832, 3, 16, 0); // smaller?
}
// seems to switch the K053251 between different priority modes, detail unknown
- // primode = k053251_get_priority(state->m_k053251, K053251_CI1);
+ // primode = k053251_get_priority(m_k053251, K053251_CI1);
layer[0] = 0;
- state->m_layer_pri[0] = 0; // not sure
+ m_layer_pri[0] = 0; // not sure
layer[1] = 1;
- state->m_layer_pri[1] = k053251_get_priority(state->m_k053251, K053251_CI2);
+ m_layer_pri[1] = k053251_get_priority(m_k053251, K053251_CI2);
layer[2] = 2;
- state->m_layer_pri[2] = k053251_get_priority(state->m_k053251, K053251_CI3);
+ m_layer_pri[2] = k053251_get_priority(m_k053251, K053251_CI3);
layer[3] = 3;
- state->m_layer_pri[3] = k053251_get_priority(state->m_k053251, K053251_CI4);
+ m_layer_pri[3] = k053251_get_priority(m_k053251, K053251_CI4);
- konami_sortlayers4(layer, state->m_layer_pri);
+ konami_sortlayers4(layer, m_layer_pri);
bitmap.fill(get_black_pen(screen.machine()), cliprect);
screen.machine().priority_bitmap.fill(0, cliprect);
- k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, layer[0], 0, 1);
- k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, layer[1], 0, 2);
- k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, layer[2], 0, 4);
- k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, layer[3], 0, 8);
+ k056832_tilemap_draw(m_k056832, bitmap, cliprect, layer[0], 0, 1);
+ k056832_tilemap_draw(m_k056832, bitmap, cliprect, layer[1], 0, 2);
+ k056832_tilemap_draw(m_k056832, bitmap, cliprect, layer[2], 0, 4);
+ k056832_tilemap_draw(m_k056832, bitmap, cliprect, layer[3], 0, 8);
- k053247_sprites_draw(state->m_k053246, bitmap, cliprect);
+ k053247_sprites_draw(m_k053246, bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/ginganin.c b/src/mame/video/ginganin.c
index 113e5b39099..6be05fa22f6 100644
--- a/src/mame/video/ginganin.c
+++ b/src/mame/video/ginganin.c
@@ -239,10 +239,9 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap,const r
}
-SCREEN_UPDATE_IND16( ginganin )
+UINT32 ginganin_state::screen_update_ginganin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ginganin_state *state = screen.machine().driver_data<ginganin_state>();
- int layers_ctrl1 = state->m_layers_ctrl;
+ int layers_ctrl1 = m_layers_ctrl;
#ifdef MAME_DEBUG
if (screen.machine().input().code_pressed(KEYCODE_Z))
@@ -256,33 +255,33 @@ if (screen.machine().input().code_pressed(KEYCODE_Z))
if (msk != 0) layers_ctrl1 &= msk;
#define SETSCROLL \
- state->m_bg_tilemap->set_scrollx(0, state->m_posx); \
- state->m_bg_tilemap->set_scrolly(0, state->m_posy); \
- state->m_fg_tilemap->set_scrollx(0, state->m_posx); \
- state->m_fg_tilemap->set_scrolly(0, state->m_posy); \
- popmessage("B>%04X:%04X F>%04X:%04X",state->m_posx%(BG_NX*16),state->m_posy%(BG_NY*16),state->m_posx%(FG_NX*16),state->m_posy%(FG_NY*16));
-
- if (screen.machine().input().code_pressed(KEYCODE_L)) { state->m_posx +=8; SETSCROLL }
- if (screen.machine().input().code_pressed(KEYCODE_J)) { state->m_posx -=8; SETSCROLL }
- if (screen.machine().input().code_pressed(KEYCODE_K)) { state->m_posy +=8; SETSCROLL }
- if (screen.machine().input().code_pressed(KEYCODE_I)) { state->m_posy -=8; SETSCROLL }
- if (screen.machine().input().code_pressed(KEYCODE_H)) { state->m_posx = state->m_posy = 0; SETSCROLL }
+ m_bg_tilemap->set_scrollx(0, m_posx); \
+ m_bg_tilemap->set_scrolly(0, m_posy); \
+ m_fg_tilemap->set_scrollx(0, m_posx); \
+ m_fg_tilemap->set_scrolly(0, m_posy); \
+ popmessage("B>%04X:%04X F>%04X:%04X",m_posx%(BG_NX*16),m_posy%(BG_NY*16),m_posx%(FG_NX*16),m_posy%(FG_NY*16));
+
+ if (screen.machine().input().code_pressed(KEYCODE_L)) { m_posx +=8; SETSCROLL }
+ if (screen.machine().input().code_pressed(KEYCODE_J)) { m_posx -=8; SETSCROLL }
+ if (screen.machine().input().code_pressed(KEYCODE_K)) { m_posy +=8; SETSCROLL }
+ if (screen.machine().input().code_pressed(KEYCODE_I)) { m_posy -=8; SETSCROLL }
+ if (screen.machine().input().code_pressed(KEYCODE_H)) { m_posx = m_posy = 0; SETSCROLL }
}
#endif
if (layers_ctrl1 & 1)
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
else
bitmap.fill(0, cliprect);
if (layers_ctrl1 & 2)
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
if (layers_ctrl1 & 8)
draw_sprites(screen.machine(), bitmap, cliprect);
if (layers_ctrl1 & 4)
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/gladiatr.c b/src/mame/video/gladiatr.c
index 4c0327d1eaa..a8594d6cd6f 100644
--- a/src/mame/video/gladiatr.c
+++ b/src/mame/video/gladiatr.c
@@ -240,10 +240,9 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
-SCREEN_UPDATE_IND16( ppking )
+UINT32 gladiatr_state::screen_update_ppking(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- gladiatr_state *state = screen.machine().driver_data<gladiatr_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect);
/* the fg layer just selects the upper palette bank on underlying pixels */
@@ -251,13 +250,13 @@ SCREEN_UPDATE_IND16( ppking )
int sx = cliprect.min_x;
int sy = cliprect.min_y;
- state->m_fg_tilemap ->pixmap();
- bitmap_ind8 &flagsbitmap = state->m_fg_tilemap ->flagsmap();
+ m_fg_tilemap ->pixmap();
+ bitmap_ind8 &flagsbitmap = m_fg_tilemap ->flagsmap();
while( sy <= cliprect.max_y )
{
int x = sx;
- int y = (sy + state->m_fg_scrolly) & 0x1ff;
+ int y = (sy + m_fg_scrolly) & 0x1ff;
UINT16 *dest = &bitmap.pix16(sy, sx);
while( x <= cliprect.max_x )
@@ -275,25 +274,24 @@ SCREEN_UPDATE_IND16( ppking )
return 0;
}
-SCREEN_UPDATE_IND16( gladiatr )
+UINT32 gladiatr_state::screen_update_gladiatr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- gladiatr_state *state = screen.machine().driver_data<gladiatr_state>();
- if (state->m_video_attributes & 0x20)
+ if (m_video_attributes & 0x20)
{
int scroll;
- scroll = state->m_bg_scrollx + ((state->m_video_attributes & 0x04) << 6);
- state->m_bg_tilemap->set_scrollx(0, scroll ^ (state->flip_screen() ? 0x0f : 0));
- scroll = state->m_fg_scrollx + ((state->m_video_attributes & 0x08) << 5);
- state->m_fg_tilemap->set_scrollx(0, scroll ^ (state->flip_screen() ? 0x0f : 0));
+ scroll = m_bg_scrollx + ((m_video_attributes & 0x04) << 6);
+ m_bg_tilemap->set_scrollx(0, scroll ^ (flip_screen() ? 0x0f : 0));
+ scroll = m_fg_scrollx + ((m_video_attributes & 0x08) << 5);
+ m_fg_tilemap->set_scrollx(0, scroll ^ (flip_screen() ? 0x0f : 0));
// always 0 anyway
- state->m_bg_tilemap->set_scrolly(0, state->m_bg_scrolly);
- state->m_fg_tilemap->set_scrolly(0, state->m_fg_scrolly);
+ m_bg_tilemap->set_scrolly(0, m_bg_scrolly);
+ m_fg_tilemap->set_scrolly(0, m_fg_scrolly);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0,0);
}
else
bitmap.fill(get_black_pen(screen.machine()), cliprect );
diff --git a/src/mame/video/glass.c b/src/mame/video/glass.c
index efaa33b4960..91348190f63 100644
--- a/src/mame/video/glass.c
+++ b/src/mame/video/glass.c
@@ -190,20 +190,19 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
****************************************************************************/
-SCREEN_UPDATE_IND16( glass )
+UINT32 glass_state::screen_update_glass(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- glass_state *state = screen.machine().driver_data<glass_state>();
/* set scroll registers */
- state->m_pant[0]->set_scrolly(0, state->m_vregs[0]);
- state->m_pant[0]->set_scrollx(0, state->m_vregs[1] + 0x04);
- state->m_pant[1]->set_scrolly(0, state->m_vregs[2]);
- state->m_pant[1]->set_scrollx(0, state->m_vregs[3]);
+ m_pant[0]->set_scrolly(0, m_vregs[0]);
+ m_pant[0]->set_scrollx(0, m_vregs[1] + 0x04);
+ m_pant[1]->set_scrolly(0, m_vregs[2]);
+ m_pant[1]->set_scrollx(0, m_vregs[3]);
/* draw layers + sprites */
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- copybitmap(bitmap, *state->m_screen_bitmap, 0, 0, 0x18, 0x24, cliprect);
- state->m_pant[1]->draw(bitmap, cliprect, 0, 0);
- state->m_pant[0]->draw(bitmap, cliprect, 0, 0);
+ copybitmap(bitmap, *m_screen_bitmap, 0, 0, 0x18, 0x24, cliprect);
+ m_pant[1]->draw(bitmap, cliprect, 0, 0);
+ m_pant[0]->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/gng.c b/src/mame/video/gng.c
index 92c3b79e976..2ad1b6063ab 100644
--- a/src/mame/video/gng.c
+++ b/src/mame/video/gng.c
@@ -133,13 +133,12 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( gng )
+UINT32 gng_state::screen_update_gng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- gng_state *state = screen.machine().driver_data<gng_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/goal92.c b/src/mame/video/goal92.c
index 97f0bb497c8..18142f24883 100644
--- a/src/mame/video/goal92.c
+++ b/src/mame/video/goal92.c
@@ -143,48 +143,46 @@ void goal92_state::video_start()
m_tx_layer->set_transparent_pen(15);
}
-SCREEN_UPDATE_IND16( goal92 )
+UINT32 goal92_state::screen_update_goal92(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- goal92_state *state = screen.machine().driver_data<goal92_state>();
- state->m_bg_layer->set_scrollx(0, state->m_scrollram[0] + 60);
- state->m_bg_layer->set_scrolly(0, state->m_scrollram[1] + 8);
+ m_bg_layer->set_scrollx(0, m_scrollram[0] + 60);
+ m_bg_layer->set_scrolly(0, m_scrollram[1] + 8);
- if (state->m_fg_bank & 0xff)
+ if (m_fg_bank & 0xff)
{
- state->m_fg_layer->set_scrollx(0, state->m_scrollram[0] + 60);
- state->m_fg_layer->set_scrolly(0, state->m_scrollram[1] + 8);
+ m_fg_layer->set_scrollx(0, m_scrollram[0] + 60);
+ m_fg_layer->set_scrolly(0, m_scrollram[1] + 8);
}
else
{
- state->m_fg_layer->set_scrollx(0, state->m_scrollram[2] + 60);
- state->m_fg_layer->set_scrolly(0, state->m_scrollram[3] + 8);
+ m_fg_layer->set_scrollx(0, m_scrollram[2] + 60);
+ m_fg_layer->set_scrolly(0, m_scrollram[3] + 8);
}
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- state->m_bg_layer->draw(bitmap, cliprect, 0, 0);
+ m_bg_layer->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 2);
- if (!(state->m_fg_bank & 0xff))
+ if (!(m_fg_bank & 0xff))
draw_sprites(screen.machine(), bitmap, cliprect, 1);
- state->m_fg_layer->draw(bitmap, cliprect, 0, 0);
+ m_fg_layer->draw(bitmap, cliprect, 0, 0);
- if(state->m_fg_bank & 0xff)
+ if(m_fg_bank & 0xff)
draw_sprites(screen.machine(), bitmap, cliprect, 1);
draw_sprites(screen.machine(), bitmap, cliprect, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 3);
- state->m_tx_layer->draw(bitmap, cliprect, 0, 0);
+ m_tx_layer->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_VBLANK( goal92 )
+void goal92_state::screen_eof_goal92(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- goal92_state *state = screen.machine().driver_data<goal92_state>();
- memcpy(state->m_buffered_spriteram, state->m_spriteram, 0x400 * 2);
+ memcpy(m_buffered_spriteram, m_spriteram, 0x400 * 2);
}
}
diff --git a/src/mame/video/goindol.c b/src/mame/video/goindol.c
index 16df70b7f4d..33165944d8d 100644
--- a/src/mame/video/goindol.c
+++ b/src/mame/video/goindol.c
@@ -118,15 +118,14 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( goindol )
+UINT32 goindol_state::screen_update_goindol(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- goindol_state *state = screen.machine().driver_data<goindol_state>();
- state->m_fg_tilemap->set_scrollx(0, *state->m_fg_scrollx);
- state->m_fg_tilemap->set_scrolly(0, *state->m_fg_scrolly);
-
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
- draw_sprites(screen.machine(), bitmap, cliprect, 1, state->m_spriteram);
- draw_sprites(screen.machine(), bitmap, cliprect, 0, state->m_spriteram2);
+ m_fg_tilemap->set_scrollx(0, *m_fg_scrollx);
+ m_fg_tilemap->set_scrolly(0, *m_fg_scrolly);
+
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ draw_sprites(screen.machine(), bitmap, cliprect, 1, m_spriteram);
+ draw_sprites(screen.machine(), bitmap, cliprect, 0, m_spriteram2);
return 0;
}
diff --git a/src/mame/video/goldstar.c b/src/mame/video/goldstar.c
index 9994ab85d76..eec990ab6e2 100644
--- a/src/mame/video/goldstar.c
+++ b/src/mame/video/goldstar.c
@@ -362,23 +362,22 @@ WRITE8_MEMBER(goldstar_state::cm_background_col_w)
-SCREEN_UPDATE_IND16( goldstar )
+UINT32 goldstar_state::screen_update_goldstar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- goldstar_state *state = screen.machine().driver_data<goldstar_state>();
int i;
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- if (!(state->m_cm_enable_reg &0x01))
+ if (!(m_cm_enable_reg &0x01))
return 0;
- if (state->m_cm_enable_reg &0x08)
+ if (m_cm_enable_reg &0x08)
{
for (i= 0;i < 64;i++)
{
- state->m_reel1_tilemap->set_scrolly(i, state->m_reel1_scroll[i]);
- state->m_reel2_tilemap->set_scrolly(i, state->m_reel2_scroll[i]);
- state->m_reel3_tilemap->set_scrolly(i, state->m_reel3_scroll[i]);
+ m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i]);
+ m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i]);
+ m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i]);
}
@@ -387,112 +386,110 @@ SCREEN_UPDATE_IND16( goldstar )
const rectangle visible2(0*8, (14+48)*8-1, 12*8, (12+7)*8-1);
const rectangle visible3(0*8, (14+48)*8-1, 20*8, (20+7)*8-1);
- state->m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
- state->m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
- state->m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
+ m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
+ m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
+ m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
}
- if (state->m_cm_enable_reg &0x04)
+ if (m_cm_enable_reg &0x04)
{
if (screen.machine().root_device().memregion("user1")->base())
{
gfx_element *gfx = screen.machine().gfx[2];
- int girlyscroll = (INT8)((state->m_cm_girl_scroll & 0xf0));
- int girlxscroll = (INT8)((state->m_cm_girl_scroll & 0x0f)<<4);
+ int girlyscroll = (INT8)((m_cm_girl_scroll & 0xf0));
+ int girlxscroll = (INT8)((m_cm_girl_scroll & 0x0f)<<4);
- drawgfxzoom_transpen(bitmap,cliprect,gfx,state->m_cmaster_girl_num,state->m_cmaster_girl_pal,0,0,-(girlxscroll*2),-(girlyscroll), 0x20000, 0x10000,0);
+ drawgfxzoom_transpen(bitmap,cliprect,gfx,m_cmaster_girl_num,m_cmaster_girl_pal,0,0,-(girlxscroll*2),-(girlyscroll), 0x20000, 0x10000,0);
}
}
- if (state->m_cm_enable_reg &0x02)
+ if (m_cm_enable_reg &0x02)
{
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
}
return 0;
}
-SCREEN_UPDATE_IND16( bingowng )
+UINT32 goldstar_state::screen_update_bingowng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- goldstar_state *state = screen.machine().driver_data<goldstar_state>();
int i;
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- if (!(state->m_cm_enable_reg &0x01))
+ if (!(m_cm_enable_reg &0x01))
return 0;
- if (state->m_cm_enable_reg &0x08)
+ if (m_cm_enable_reg &0x08)
{
for (i= 0;i < 64;i++)
{
- state->m_reel1_tilemap->set_scrolly(i, state->m_reel1_scroll[i]);
+ m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i]);
}
const rectangle visible1(0*8, (14+48)*8-1, 3*8, (4+7)*8-1);
- state->m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
+ m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
}
- if (state->m_cm_enable_reg &0x04)
+ if (m_cm_enable_reg &0x04)
{
if (screen.machine().root_device().memregion("user1")->base())
{
gfx_element *gfx = screen.machine().gfx[2];
- int girlyscroll = (INT8)((state->m_cm_girl_scroll & 0xf0));
- int girlxscroll = (INT8)((state->m_cm_girl_scroll & 0x0f)<<4);
+ int girlyscroll = (INT8)((m_cm_girl_scroll & 0xf0));
+ int girlxscroll = (INT8)((m_cm_girl_scroll & 0x0f)<<4);
- drawgfxzoom_transpen(bitmap,cliprect,gfx,state->m_cmaster_girl_num,state->m_cmaster_girl_pal,0,0,-(girlxscroll*2),-(girlyscroll), 0x20000, 0x10000,0);
+ drawgfxzoom_transpen(bitmap,cliprect,gfx,m_cmaster_girl_num,m_cmaster_girl_pal,0,0,-(girlxscroll*2),-(girlyscroll), 0x20000, 0x10000,0);
}
}
- if (state->m_cm_enable_reg &0x02)
+ if (m_cm_enable_reg &0x02)
{
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
}
return 0;
}
-SCREEN_UPDATE_IND16( magical )
+UINT32 goldstar_state::screen_update_magical(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- goldstar_state *state = screen.machine().driver_data<goldstar_state>();
int i;
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- if (!(state->m_cm_enable_reg &0x01))
+ if (!(m_cm_enable_reg &0x01))
return 0;
- if (state->m_cm_enable_reg &0x08)
+ if (m_cm_enable_reg &0x08)
{
// guess, could be wrong, but different screens clearly need different reel layouts
- if (state->m_unkch_vidreg & 2)
+ if (m_unkch_vidreg & 2)
{
for (i= 0;i < 32;i++)
{
- state->m_reel1_tilemap->set_scrolly(i, state->m_reel1_scroll[i*2]);
- state->m_reel2_tilemap->set_scrolly(i, state->m_reel2_scroll[i*2]);
- // state->m_reel3_tilemap->set_scrolly(i, state->m_reel3_scroll[i*2]);
+ m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i*2]);
+ m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i*2]);
+ // m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i*2]);
}
const rectangle visible1alt(0*8, (16+48)*8-1, 4*8, 16*8-1);
const rectangle visible2alt(0*8, (16+48)*8-1, 16*8, 28*8-1);
- state->m_reel1_tilemap->draw(bitmap, visible1alt, 0, 0);
- state->m_reel2_tilemap->draw(bitmap, visible2alt, 0, 0);
- //state->m_reel3_tilemap->draw(bitmap, &magical_visible3, 0, 0);
+ m_reel1_tilemap->draw(bitmap, visible1alt, 0, 0);
+ m_reel2_tilemap->draw(bitmap, visible2alt, 0, 0);
+ //m_reel3_tilemap->draw(bitmap, &magical_visible3, 0, 0);
}
else
{
for (i= 0;i < 32;i++)
{
- state->m_reel1_tilemap->set_scrolly(i, state->m_reel1_scroll[i*2]);
- state->m_reel2_tilemap->set_scrolly(i, state->m_reel2_scroll[i*2]);
- state->m_reel3_tilemap->set_scrolly(i, state->m_reel3_scroll[i*2]);
+ m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i*2]);
+ m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i*2]);
+ m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i*2]);
}
@@ -500,45 +497,44 @@ SCREEN_UPDATE_IND16( magical )
const rectangle visible2(0*8, (14+48)*8-1, 12*8, (12+8)*8-1);
const rectangle visible3(0*8, (14+48)*8-1, 20*8, (20+8)*8-1);
- state->m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
- state->m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
- state->m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
+ m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
+ m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
+ m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
}
}
- if (state->m_cm_enable_reg &0x02)
+ if (m_cm_enable_reg &0x02)
{
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
}
return 0;
}
-SCREEN_UPDATE_IND16( unkch )
+UINT32 goldstar_state::screen_update_unkch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- goldstar_state *state = screen.machine().driver_data<goldstar_state>();
int i;
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- if (!(state->m_cm_enable_reg &0x01))
+ if (!(m_cm_enable_reg &0x01))
return 0;
- if (state->m_cm_enable_reg &0x08)
+ if (m_cm_enable_reg &0x08)
{
// guess, this could be something else completely!!
// only draw the first 'reels' tilemap, but fullscreen, using alt registers? (or no scrolling at all? - doubtful, see girl)
- if (state->m_unkch_vidreg & 0x40)
+ if (m_unkch_vidreg & 0x40)
{
for (i= 0;i < 32;i++)
{
- state->m_reel1_tilemap->set_scrolly(i, -0x08/*state->m_reel1_scroll[(i*2)+1]*/);
- // state->m_reel2_tilemap->set_scrolly(i, state->m_reel2_scroll[(i*2)+1]);
- // state->m_reel3_tilemap->set_scrolly(i, state->m_reel3_scroll[(i*2)+1]);
+ m_reel1_tilemap->set_scrolly(i, -0x08/*m_reel1_scroll[(i*2)+1]*/);
+ // m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[(i*2)+1]);
+ // m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[(i*2)+1]);
}
- state->m_reel1_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_reel1_tilemap->draw(bitmap, cliprect, 0, 0);
}
// or draw the reels normally?
@@ -546,101 +542,99 @@ SCREEN_UPDATE_IND16( unkch )
{
for (i= 0;i < 32;i++)
{
- state->m_reel1_tilemap->set_scrolly(i, state->m_reel1_scroll[i*2]);
- state->m_reel2_tilemap->set_scrolly(i, state->m_reel2_scroll[i*2]);
- state->m_reel3_tilemap->set_scrolly(i, state->m_reel3_scroll[i*2]);
+ m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i*2]);
+ m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i*2]);
+ m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i*2]);
}
const rectangle visible1(0*8, (14+48)*8-1, 3*8, (3+7)*8-1);
const rectangle visible2(0*8, (14+48)*8-1, 10*8, (10+7)*8-1);
const rectangle visible3(0*8, (14+48)*8-1, 17*8, (17+7)*8-1);
- state->m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
- state->m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
- state->m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
+ m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
+ m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
+ m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
}
}
- if (state->m_cm_enable_reg &0x02)
+ if (m_cm_enable_reg &0x02)
{
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
}
return 0;
}
-SCREEN_UPDATE_IND16( cmast91 )
+UINT32 goldstar_state::screen_update_cmast91(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- goldstar_state *state = screen.machine().driver_data<goldstar_state>();
int i;
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- if (!(state->m_cm_enable_reg &0x01))
+ if (!(m_cm_enable_reg &0x01))
return 0;
- if (state->m_cm_enable_reg &0x08)
+ if (m_cm_enable_reg &0x08)
{
for (i= 0;i < 64;i++)
{
- state->m_reel1_tilemap->set_scrolly(i, state->m_reel1_scroll[i]);
- state->m_reel2_tilemap->set_scrolly(i, state->m_reel2_scroll[i]);
- state->m_reel3_tilemap->set_scrolly(i, state->m_reel3_scroll[i]);
+ m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i]);
+ m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i]);
+ m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i]);
}
const rectangle visible1(0*8, (14+48)*8-1, 4*8, (4+7)*8-1); /* same start for reel1 */
const rectangle visible2(0*8, (14+48)*8-1, 11*8, (12+7)*8-1); /* 4 pixels less for reel2 */
const rectangle visible3(0*8, (14+48)*8-1, 19*8, (19+7)*8-1); /* 8 pixels less for reel3 */
- state->m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
- state->m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
- state->m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
+ m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
+ m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
+ m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
}
- if (state->m_cm_enable_reg &0x02)
+ if (m_cm_enable_reg &0x02)
{
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
}
return 0;
}
-SCREEN_UPDATE_IND16( amcoe1a )
+UINT32 goldstar_state::screen_update_amcoe1a(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- goldstar_state *state = screen.machine().driver_data<goldstar_state>();
int i;
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- if (!(state->m_cm_enable_reg &0x01))
+ if (!(m_cm_enable_reg &0x01))
return 0;
- if (state->m_cm_enable_reg &0x08)
+ if (m_cm_enable_reg &0x08)
{
for (i= 0;i < 64;i++)
{
- state->m_reel1_tilemap->set_scrolly(i, state->m_reel1_scroll[i]);
- state->m_reel2_tilemap->set_scrolly(i, state->m_reel2_scroll[i]);
- state->m_reel3_tilemap->set_scrolly(i, state->m_reel3_scroll[i]);
+ m_reel1_tilemap->set_scrolly(i, m_reel1_scroll[i]);
+ m_reel2_tilemap->set_scrolly(i, m_reel2_scroll[i]);
+ m_reel3_tilemap->set_scrolly(i, m_reel3_scroll[i]);
}
const rectangle visible1(0*8, (14+48)*8-1, 4*8, (4+6)*8-1);
const rectangle visible2(0*8, (14+48)*8-1, 10*8, (10+6)*8-1);
const rectangle visible3(0*8, (14+48)*8-1, 16*8, (16+6)*8-1);
- state->m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
- state->m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
- state->m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
+ m_reel1_tilemap->draw(bitmap, visible1, 0, 0);
+ m_reel2_tilemap->draw(bitmap, visible2, 0, 0);
+ m_reel3_tilemap->draw(bitmap, visible3, 0, 0);
}
- if (state->m_cm_enable_reg &0x04)
+ if (m_cm_enable_reg &0x04)
{
// no girls
}
- if (state->m_cm_enable_reg &0x02)
+ if (m_cm_enable_reg &0x02)
{
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
}
return 0;
diff --git a/src/mame/video/gomoku.c b/src/mame/video/gomoku.c
index 623534c7865..2fd330dccbc 100644
--- a/src/mame/video/gomoku.c
+++ b/src/mame/video/gomoku.c
@@ -144,12 +144,11 @@ void gomoku_state::video_start()
******************************************************************************/
-SCREEN_UPDATE_IND16( gomoku )
+UINT32 gomoku_state::screen_update_gomoku(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- gomoku_state *state = screen.machine().driver_data<gomoku_state>();
UINT8 *GOMOKU_BG_X = screen.machine().root_device().memregion( "user1" )->base();
UINT8 *GOMOKU_BG_Y = screen.machine().root_device().memregion( "user2" )->base();
- UINT8 *GOMOKU_BG_D = state->memregion( "user3" )->base();
+ UINT8 *GOMOKU_BG_D = memregion( "user3" )->base();
int x, y;
int bgram;
int bgoffs;
@@ -157,10 +156,10 @@ SCREEN_UPDATE_IND16( gomoku )
int color;
/* draw background layer */
- if (state->m_bg_dispsw)
+ if (m_bg_dispsw)
{
/* copy bg bitmap */
- copybitmap(bitmap, state->m_bg_bitmap, 0, 0, 0, 0, cliprect);
+ copybitmap(bitmap, m_bg_bitmap, 0, 0, 0, 0, cliprect);
// stone
for (y = 0; y < 256; y++)
@@ -170,7 +169,7 @@ SCREEN_UPDATE_IND16( gomoku )
bgoffs = ((((255 - x - 2) / 14) | (((255 - y - 10) / 14) << 4)) & 0xff);
bgdata = GOMOKU_BG_D[ GOMOKU_BG_X[x] + (GOMOKU_BG_Y[y] << 4) ];
- bgram = state->m_bgram[bgoffs];
+ bgram = m_bgram[bgoffs];
if (bgdata & 0x04)
{
@@ -198,7 +197,7 @@ SCREEN_UPDATE_IND16( gomoku )
bgoffs = ((((255 - x - 2) / 14) | (((255 - y - 10) / 14) << 4)) & 0xff);
bgdata = GOMOKU_BG_D[ GOMOKU_BG_X[x] + (GOMOKU_BG_Y[y] << 4) ];
- bgram = state->m_bgram[bgoffs];
+ bgram = m_bgram[bgoffs];
if (bgdata & 0x08)
{
@@ -223,6 +222,6 @@ SCREEN_UPDATE_IND16( gomoku )
bitmap.fill(0x20);
}
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/gotcha.c b/src/mame/video/gotcha.c
index e6a5c44a22b..87db6ebd01a 100644
--- a/src/mame/video/gotcha.c
+++ b/src/mame/video/gotcha.c
@@ -99,11 +99,10 @@ WRITE16_MEMBER(gotcha_state::gotcha_scroll_w)
-SCREEN_UPDATE_IND16( gotcha )
+UINT32 gotcha_state::screen_update_gotcha(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- gotcha_state *state = screen.machine().driver_data<gotcha_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
- screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
return 0;
}
diff --git a/src/mame/video/gottlieb.c b/src/mame/video/gottlieb.c
index 39ab5989ed1..ac911e8285d 100644
--- a/src/mame/video/gottlieb.c
+++ b/src/mame/video/gottlieb.c
@@ -240,12 +240,11 @@ static void draw_sprites(running_machine &machine, bitmap_rgb32 &bitmap, const r
*
*************************************/
-SCREEN_UPDATE_RGB32( gottlieb )
+UINT32 gottlieb_state::screen_update_gottlieb(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- gottlieb_state *state = screen.machine().driver_data<gottlieb_state>();
/* if the background has lower priority, render it first, else clear the screen */
- if (!state->m_background_priority)
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ if (!m_background_priority)
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
else
bitmap.fill(screen.machine().pens[0], cliprect);
@@ -253,8 +252,8 @@ SCREEN_UPDATE_RGB32( gottlieb )
draw_sprites(screen.machine(), bitmap, cliprect);
/* if the background has higher priority, render it now */
- if (state->m_background_priority)
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (m_background_priority)
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/gotya.c b/src/mame/video/gotya.c
index f330dc2e17f..78985e5f1db 100644
--- a/src/mame/video/gotya.c
+++ b/src/mame/video/gotya.c
@@ -173,11 +173,10 @@ static void draw_status( running_machine &machine, bitmap_ind16 &bitmap, const r
draw_status_row(machine, bitmap, cliprect, 34, 15);
}
-SCREEN_UPDATE_IND16( gotya )
+UINT32 gotya_state::screen_update_gotya(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- gotya_state *state = screen.machine().driver_data<gotya_state>();
- state->m_bg_tilemap->set_scrollx(0, -(*state->m_scroll + (state->m_scroll_bit_8 * 256)) - 2 * 8);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->set_scrollx(0, -(*m_scroll + (m_scroll_bit_8 * 256)) - 2 * 8);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
draw_status(screen.machine(), bitmap, cliprect);
return 0;
diff --git a/src/mame/video/gradius3.c b/src/mame/video/gradius3.c
index 0d811ac0fe6..4678a2ade68 100644
--- a/src/mame/video/gradius3.c
+++ b/src/mame/video/gradius3.c
@@ -121,31 +121,30 @@ WRITE16_MEMBER(gradius3_state::gradius3_gfxram_w)
***************************************************************************/
-SCREEN_UPDATE_IND16( gradius3 )
+UINT32 gradius3_state::screen_update_gradius3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- gradius3_state *state = screen.machine().driver_data<gradius3_state>();
/* TODO: this kludge enforces the char banks. For some reason, they don't work otherwise. */
address_space &space = screen.machine().driver_data()->generic_space();
- k052109_w(state->m_k052109, space, 0x1d80, 0x10);
- k052109_w(state->m_k052109, space, 0x1f00, 0x32);
+ k052109_w(m_k052109, space, 0x1d80, 0x10);
+ k052109_w(m_k052109, space, 0x1f00, 0x32);
- k052109_tilemap_update(state->m_k052109);
+ k052109_tilemap_update(m_k052109);
screen.machine().priority_bitmap.fill(0, cliprect);
- if (state->m_priority == 0)
+ if (m_priority == 0)
{
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 2);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, 0, 4);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, 0, 1);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 2);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, 0, 4);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, 0, 1);
}
else
{
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 1);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, 0, 2);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, 0, 4);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 1);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, 0, 2);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, 0, 4);
}
- k051960_sprites_draw(state->m_k051960, bitmap, cliprect, -1, -1);
+ k051960_sprites_draw(m_k051960, bitmap, cliprect, -1, -1);
return 0;
}
diff --git a/src/mame/video/grchamp.c b/src/mame/video/grchamp.c
index 98bda17ee7e..8c2108eea82 100644
--- a/src/mame/video/grchamp.c
+++ b/src/mame/video/grchamp.c
@@ -343,7 +343,7 @@ static void draw_objects(running_machine &machine, grchamp_state *state, int y,
}
-SCREEN_UPDATE_RGB32( grchamp )
+UINT32 grchamp_state::screen_update_grchamp(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
static const rgb_t objpix_lookup[8] =
{
@@ -357,17 +357,16 @@ SCREEN_UPDATE_RGB32( grchamp )
MAKE_RGB(RGB_MAX,RGB_MAX,RGB_MAX)
};
- grchamp_state *state = screen.machine().driver_data<grchamp_state>();
const UINT8 *amedata = screen.machine().root_device().memregion("gfx5")->base();
const UINT8 *headdata = screen.machine().root_device().memregion("gfx6")->base();
- const UINT8 *pldata = state->memregion("gfx7")->base();
- bitmap_ind16 &lpixmap = state->m_left_tilemap->pixmap();
- bitmap_ind16 &rpixmap = state->m_right_tilemap->pixmap();
- bitmap_ind16 &cpixmap = state->m_center_tilemap->pixmap();
+ const UINT8 *pldata = memregion("gfx7")->base();
+ bitmap_ind16 &lpixmap = m_left_tilemap->pixmap();
+ bitmap_ind16 &rpixmap = m_right_tilemap->pixmap();
+ bitmap_ind16 &cpixmap = m_center_tilemap->pixmap();
int lrxscroll, cxscroll, lyscroll, ryscroll, cyscroll;
- int bgcolor = state->m_cpu1_out[3] & 0x10;
- int amebase = state->m_cpu0_out[4] >> 4;
- int plbase = state->m_cpu0_out[4] & 0x0f;
+ int bgcolor = m_cpu1_out[3] & 0x10;
+ int amebase = m_cpu0_out[4] >> 4;
+ int plbase = m_cpu0_out[4] & 0x0f;
int cxmask;
int x, y;
@@ -376,14 +375,14 @@ SCREEN_UPDATE_RGB32( grchamp )
assert(lpixmap.height() == rpixmap.height() && lpixmap.height() == cpixmap.height());
/* extract background scroll values; left and right share the same X scroll */
- lrxscroll = state->m_cpu1_out[0] + (state->m_cpu1_out[1] & 1) * 256;
- lyscroll = state->m_cpu1_out[2];
- ryscroll = state->m_cpu1_out[7];
- cxscroll = state->m_cpu1_out[9] + (state->m_cpu1_out[10] & 1) * 256;
- cyscroll = state->m_cpu1_out[11];
+ lrxscroll = m_cpu1_out[0] + (m_cpu1_out[1] & 1) * 256;
+ lyscroll = m_cpu1_out[2];
+ ryscroll = m_cpu1_out[7];
+ cxscroll = m_cpu1_out[9] + (m_cpu1_out[10] & 1) * 256;
+ cyscroll = m_cpu1_out[11];
/* determine the center background mask, controlled by attribute bit 0x20 */
- cxmask = (state->m_cpu1_out[3] & 0x20) ? 0xff : 0x1ff;
+ cxmask = (m_cpu1_out[3] & 0x20) ? 0xff : 0x1ff;
/* iterate over scanlines */
for (y = cliprect.min_y; y <= cliprect.max_y; y++)
@@ -400,7 +399,7 @@ SCREEN_UPDATE_RGB32( grchamp )
UINT8 objdata[256];
/* draw the objects for this scanline */
- draw_objects(screen.machine(), state, y, objdata);
+ draw_objects(screen.machine(), this, y, objdata);
/* iterate over columns */
for (x = cliprect.min_x; x <= cliprect.max_x; x++)
@@ -423,20 +422,20 @@ SCREEN_UPDATE_RGB32( grchamp )
objpix = objdata[x];
/* if the headlamp is visible, determine that now */
- mydh = (state->m_cpu0_out[2] - x) & 0xff;
- mydv = (state->m_cpu0_out[3] - (y - 16)) & 0xff;
- if ((state->m_cpu0_out[0] & 0x10) && (mydh & 0xc0) == 0xc0 && ((mydv ^ (mydv >> 1)) & 0x40) == 0)
+ mydh = (m_cpu0_out[2] - x) & 0xff;
+ mydv = (m_cpu0_out[3] - (y - 16)) & 0xff;
+ if ((m_cpu0_out[0] & 0x10) && (mydh & 0xc0) == 0xc0 && ((mydv ^ (mydv >> 1)) & 0x40) == 0)
{
int bits = headdata[((mydh & 0x38) >> 3) |
((mydv & 0x3f) << 3) |
((~mydv & 0x40) << 3) |
- ((state->m_cpu0_out[0] & 0x10) << 6)];
+ ((m_cpu0_out[0] & 0x10) << 6)];
headbit = (bits >> (~mydh & 0x07)) & 0x01;
}
/* if the headlamp is on and we're not in the headlamp area, */
/* and this isn't a character pixel, the /KILL switch is set */
- if ((state->m_cpu0_out[0] & 0x10) && !headbit && !(objpix & 0x10))
+ if ((m_cpu0_out[0] & 0x10) && !headbit && !(objpix & 0x10))
{
kill = 1;
objpix &= ~7;
@@ -454,17 +453,17 @@ SCREEN_UPDATE_RGB32( grchamp )
/* handle collision detection between MYCARRED and MVID/OBJECT */
/* skip if the state is being held clear, or if we already have a collision */
- if ((state->m_cpu0_out[0] & 0x02) && !(state->m_collide & 0x1000))
+ if ((m_cpu0_out[0] & 0x02) && !(m_collide & 0x1000))
{
if (objpix & 0x08)
{
mame_printf_debug("Collide car/object @ (%d,%d)\n", x, y);
- state->m_collide = 0x1000 | 0x2000/* guess */ | ((~y & 0x80) << 3) | ((~y & 0xf8) << 2) | ((~x & 0xf8) >> 3);
+ m_collide = 0x1000 | 0x2000/* guess */ | ((~y & 0x80) << 3) | ((~y & 0xf8) << 2) | ((~x & 0xf8) >> 3);
}
else if ((mvid & 0x0f) != 0)
{
mame_printf_debug("Collide car/bg @ (%d,%d)\n", x, y);
- state->m_collide = 0x1000 | 0x4000/* guess */ | ((~y & 0x80) << 3) | ((~y & 0xf8) << 2) | ((~x & 0xf8) >> 3);
+ m_collide = 0x1000 | 0x4000/* guess */ | ((~y & 0x80) << 3) | ((~y & 0xf8) << 2) | ((~x & 0xf8) >> 3);
}
}
}
@@ -475,24 +474,24 @@ SCREEN_UPDATE_RGB32( grchamp )
/* if rain is enabled, it ORs against the bits */
if (amebase != 0)
{
- int effx = (state->m_cpu0_out[8] + x) & 0x0f;
- int effy = (state->m_cpu0_out[7] - y) & 0x0f;
+ int effx = (m_cpu0_out[8] + x) & 0x0f;
+ int effy = (m_cpu0_out[7] - y) & 0x0f;
if ((amedata[(amebase << 5) | (effy << 1) | (effx >> 3)] >> (effx & 0x07)) & 0x01)
objpix |= 7;
}
/* if the radar is on, it ORs against the bits */
- if (y >= 192 && (state->m_cpu0_out[0] & 0x80))
+ if (y >= 192 && (m_cpu0_out[0] & 0x80))
{
- if ((state->m_radarram[((~y & 0x3e) << 4) | ((~x & 0xf8) >> 3)] >> (x & 0x07)) & 0x01)
+ if ((m_radarram[((~y & 0x3e) << 4) | ((~x & 0xf8) >> 3)] >> (x & 0x07)) & 0x01)
objpix |= 7;
}
/* handle collision detection between MVID and OBJECT */
- if (!(state->m_collide & 0x1000) && (objpix & 0x08) && (mvid & 0x0f) != 0)
+ if (!(m_collide & 0x1000) && (objpix & 0x08) && (mvid & 0x0f) != 0)
{
mame_printf_debug("Collide bg/object @ (%d,%d)\n", x, y);
- state->m_collide = 0x1000 | 0x8000 | ((~y & 0x80) << 3) | ((~y & 0xf8) << 2) | ((~x & 0xf8) >> 3);
+ m_collide = 0x1000 | 0x8000 | ((~y & 0x80) << 3) | ((~y & 0xf8) << 2) | ((~x & 0xf8) >> 3);
}
/*
@@ -521,7 +520,7 @@ mame_printf_debug("Collide bg/object @ (%d,%d)\n", x, y);
/* otherwise, it's the background, unless it's been KILL'ed */
else if (!kill)
- finalpix = state->m_bgcolor[mvid | bgcolor];
+ finalpix = m_bgcolor[mvid | bgcolor];
/* in which case it's black */
else
diff --git a/src/mame/video/gridlee.c b/src/mame/video/gridlee.c
index 06ea150c48a..a613e852bf0 100644
--- a/src/mame/video/gridlee.c
+++ b/src/mame/video/gridlee.c
@@ -129,10 +129,9 @@ WRITE8_MEMBER(gridlee_state::gridlee_palette_select_w)
/* all the GRIDLEE_VBEND adjustments are needed because the hardware has a separate counting chain
to address the video memory instead of using the video chain directly */
-SCREEN_UPDATE_IND16( gridlee )
+UINT32 gridlee_state::screen_update_gridlee(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- gridlee_state *state = screen.machine().driver_data<gridlee_state>();
- const pen_t *pens = &screen.machine().pens[state->m_palettebank_vis * 32];
+ const pen_t *pens = &screen.machine().pens[m_palettebank_vis * 32];
UINT8 *gfx;
int x, y, i;
@@ -140,8 +139,8 @@ SCREEN_UPDATE_IND16( gridlee )
for (y = cliprect.min_y; y <= cliprect.max_y; y++)
{
/* non-flipped: draw directly from the bitmap */
- if (!state->m_cocktail_flip)
- draw_scanline8(bitmap, 0, y, 256, &state->m_local_videoram[(y - GRIDLEE_VBEND) * 256], pens + 16);
+ if (!m_cocktail_flip)
+ draw_scanline8(bitmap, 0, y, 256, &m_local_videoram[(y - GRIDLEE_VBEND) * 256], pens + 16);
/* flipped: x-flip the scanline into a temp buffer and draw that */
else
@@ -151,7 +150,7 @@ SCREEN_UPDATE_IND16( gridlee )
int xx;
for (xx = 0; xx < 256; xx++)
- temp[xx] = state->m_local_videoram[srcy * 256 + 255 - xx];
+ temp[xx] = m_local_videoram[srcy * 256 + 255 - xx];
draw_scanline8(bitmap, 0, y, 256, temp, pens + 16);
}
}
@@ -160,7 +159,7 @@ SCREEN_UPDATE_IND16( gridlee )
gfx = screen.machine().root_device().memregion("gfx1")->base();
for (i = 0; i < 32; i++)
{
- UINT8 *sprite = state->m_spriteram + i * 4;
+ UINT8 *sprite = m_spriteram + i * 4;
UINT8 *src;
int image = sprite[0];
int ypos = sprite[2] + 17 + GRIDLEE_VBEND;
@@ -175,7 +174,7 @@ SCREEN_UPDATE_IND16( gridlee )
int currxor = 0;
/* adjust for flip */
- if (state->m_cocktail_flip)
+ if (m_cocktail_flip)
{
ypos = 271 - ypos;
currxor = 0xff;
@@ -207,7 +206,7 @@ SCREEN_UPDATE_IND16( gridlee )
src += 4;
/* de-adjust for flip */
- if (state->m_cocktail_flip)
+ if (m_cocktail_flip)
ypos = 271 - ypos;
}
}
diff --git a/src/mame/video/groundfx.c b/src/mame/video/groundfx.c
index fd103fc9ab9..ab5126348c2 100644
--- a/src/mame/video/groundfx.c
+++ b/src/mame/video/groundfx.c
@@ -195,9 +195,8 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re
SCREEN REFRESH
**************************************************************/
-SCREEN_UPDATE_IND16( groundfx )
+UINT32 groundfx_state::screen_update_groundfx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- groundfx_state *state = screen.machine().driver_data<groundfx_state>();
address_space &space = screen.machine().driver_data()->generic_space();
device_t *tc0100scn = screen.machine().device("tc0100scn");
device_t *tc0480scp = screen.machine().device("tc0480scp");
@@ -252,7 +251,7 @@ SCREEN_UPDATE_IND16( groundfx )
//tc0100scn_tilemap_draw(tc0100scn, bitmap, cliprect, 0, pivlayer[2], 0, 0);
if (tc0480scp_long_r(tc0480scp, space, 0x20 / 4, 0xffffffff) != 0x240866) /* Stupid hack for start of race */
- tc0480scp_tilemap_draw(tc0480scp, bitmap, state->m_hack_cliprect, layer[0], 0, 0);
+ tc0480scp_tilemap_draw(tc0480scp, bitmap, m_hack_cliprect, layer[0], 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 1, 44, -574);
}
else
diff --git a/src/mame/video/gstriker.c b/src/mame/video/gstriker.c
index 711a15204c2..b381973713f 100644
--- a/src/mame/video/gstriker.c
+++ b/src/mame/video/gstriker.c
@@ -525,9 +525,8 @@ WRITE16_MEMBER(gstriker_state::gsx_videoram3_w)
#endif
-SCREEN_UPDATE_IND16(gstriker)
+UINT32 gstriker_state::screen_update_gstriker(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- gstriker_state *state = screen.machine().driver_data<gstriker_state>();
bitmap.fill(get_black_pen(screen.machine()), cliprect);
// Sandwitched screen/sprite0/score/sprite1. Surely wrong, probably
@@ -536,14 +535,14 @@ SCREEN_UPDATE_IND16(gstriker)
CG10103_draw(screen.machine(), 0, bitmap, cliprect, 0);
- VS920A_draw(state, 0, bitmap, cliprect, 0);
+ VS920A_draw(this, 0, bitmap, cliprect, 0);
CG10103_draw(screen.machine(), 0, bitmap, cliprect, 1);
#if 0
popmessage("%04x %04x %04x %04x %04x %04x %04x %04x",
- (UINT16)state->m_MB60553[0].regs[0], (UINT16)state->m_MB60553[0].regs[1], (UINT16)state->m_MB60553[0].regs[2], (UINT16)state->m_MB60553[0].regs[3],
- (UINT16)state->m_MB60553[0].regs[4], (UINT16)state->m_MB60553[0].regs[5], (UINT16)state->m_MB60553[0].regs[6], (UINT16)state->m_MB60553[0].regs[7]
+ (UINT16)m_MB60553[0].regs[0], (UINT16)m_MB60553[0].regs[1], (UINT16)m_MB60553[0].regs[2], (UINT16)m_MB60553[0].regs[3],
+ (UINT16)m_MB60553[0].regs[4], (UINT16)m_MB60553[0].regs[5], (UINT16)m_MB60553[0].regs[6], (UINT16)m_MB60553[0].regs[7]
);
#endif
diff --git a/src/mame/video/gsword.c b/src/mame/video/gsword.c
index 5ca803b24e4..7513a28d112 100644
--- a/src/mame/video/gsword.c
+++ b/src/mame/video/gsword.c
@@ -202,10 +202,9 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( gsword )
+UINT32 gsword_state::screen_update_gsword(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- gsword_state *state = screen.machine().driver_data<gsword_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/gumbo.c b/src/mame/video/gumbo.c
index 6547e1193ff..9505b214fb3 100644
--- a/src/mame/video/gumbo.c
+++ b/src/mame/video/gumbo.c
@@ -37,10 +37,9 @@ void gumbo_state::video_start()
m_fg_tilemap->set_transparent_pen(0xff);
}
-SCREEN_UPDATE_IND16( gumbo )
+UINT32 gumbo_state::screen_update_gumbo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- gumbo_state *state = screen.machine().driver_data<gumbo_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/gunbustr.c b/src/mame/video/gunbustr.c
index 1f9f6f9afc2..16688ecb636 100644
--- a/src/mame/video/gunbustr.c
+++ b/src/mame/video/gunbustr.c
@@ -201,7 +201,7 @@ logerror("Sprite number %04x had %02x invalid chunks\n",tilenum,bad_chunks);
SCREEN REFRESH
**************************************************************/
-SCREEN_UPDATE_IND16( gunbustr )
+UINT32 gunbustr_state::screen_update_gunbustr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
device_t *tc0480scp = screen.machine().device("tc0480scp");
UINT8 layer[5];
diff --git a/src/mame/video/gundealr.c b/src/mame/video/gundealr.c
index 327086d35e1..00ee53ea7cf 100644
--- a/src/mame/video/gundealr.c
+++ b/src/mame/video/gundealr.c
@@ -123,10 +123,9 @@ WRITE8_MEMBER(gundealr_state::gundealr_flipscreen_w)
***************************************************************************/
-SCREEN_UPDATE_IND16( gundealr )
+UINT32 gundealr_state::screen_update_gundealr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- gundealr_state *state = screen.machine().driver_data<gundealr_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/gunsmoke.c b/src/mame/video/gunsmoke.c
index c986db23f5c..20a75c4cf80 100644
--- a/src/mame/video/gunsmoke.c
+++ b/src/mame/video/gunsmoke.c
@@ -169,22 +169,21 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( gunsmoke )
+UINT32 gunsmoke_state::screen_update_gunsmoke(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- gunsmoke_state *state = screen.machine().driver_data<gunsmoke_state>();
- state->m_bg_tilemap->set_scrollx(0, state->m_scrollx[0] + 256 * state->m_scrollx[1]);
- state->m_bg_tilemap->set_scrolly(0, state->m_scrolly[0]);
+ m_bg_tilemap->set_scrollx(0, m_scrollx[0] + 256 * m_scrollx[1]);
+ m_bg_tilemap->set_scrolly(0, m_scrolly[0]);
- if (state->m_bgon)
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (m_bgon)
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
else
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- if (state->m_objon)
+ if (m_objon)
draw_sprites(screen.machine(), bitmap, cliprect);
- if (state->m_chon)
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (m_chon)
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/gyruss.c b/src/mame/video/gyruss.c
index 485ee42cbac..9aabd2b8842 100644
--- a/src/mame/video/gyruss.c
+++ b/src/mame/video/gyruss.c
@@ -148,19 +148,18 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
-SCREEN_UPDATE_IND16( gyruss )
+UINT32 gyruss_state::screen_update_gyruss(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- gyruss_state *state = screen.machine().driver_data<gyruss_state>();
if (cliprect.min_y == screen.visible_area().min_y)
{
screen.machine().tilemap().mark_all_dirty();
- screen.machine().tilemap().set_flip_all((*state->m_flipscreen & 0x01) ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0);
+ screen.machine().tilemap().set_flip_all((*m_flipscreen & 0x01) ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0);
}
- state->m_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ m_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
draw_sprites(screen.machine(), bitmap, cliprect, screen.machine().gfx);
- state->m_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/hanaawas.c b/src/mame/video/hanaawas.c
index 93c9ccf4f92..8fac834b6ae 100644
--- a/src/mame/video/hanaawas.c
+++ b/src/mame/video/hanaawas.c
@@ -106,9 +106,8 @@ void hanaawas_state::video_start()
m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(hanaawas_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32);
}
-SCREEN_UPDATE_IND16( hanaawas )
+UINT32 hanaawas_state::screen_update_hanaawas(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- hanaawas_state *state = screen.machine().driver_data<hanaawas_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/hcastle.c b/src/mame/video/hcastle.c
index 42ffc993958..4259cf7534b 100644
--- a/src/mame/video/hcastle.c
+++ b/src/mame/video/hcastle.c
@@ -215,59 +215,58 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
/*****************************************************************************/
-SCREEN_UPDATE_IND16( hcastle )
+UINT32 hcastle_state::screen_update_hcastle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- hcastle_state *state = screen.machine().driver_data<hcastle_state>();
address_space &space = screen.machine().driver_data()->generic_space();
- UINT8 ctrl_1_0 = k007121_ctrlram_r(state->m_k007121_1, space, 0);
- UINT8 ctrl_1_1 = k007121_ctrlram_r(state->m_k007121_1, space, 1);
- UINT8 ctrl_1_2 = k007121_ctrlram_r(state->m_k007121_1, space, 2);
- UINT8 ctrl_1_3 = k007121_ctrlram_r(state->m_k007121_1, space, 3);
- UINT8 ctrl_2_0 = k007121_ctrlram_r(state->m_k007121_2, space, 0);
- UINT8 ctrl_2_1 = k007121_ctrlram_r(state->m_k007121_2, space, 1);
- UINT8 ctrl_2_2 = k007121_ctrlram_r(state->m_k007121_2, space, 2);
- UINT8 ctrl_2_3 = k007121_ctrlram_r(state->m_k007121_2, space, 3);
+ UINT8 ctrl_1_0 = k007121_ctrlram_r(m_k007121_1, space, 0);
+ UINT8 ctrl_1_1 = k007121_ctrlram_r(m_k007121_1, space, 1);
+ UINT8 ctrl_1_2 = k007121_ctrlram_r(m_k007121_1, space, 2);
+ UINT8 ctrl_1_3 = k007121_ctrlram_r(m_k007121_1, space, 3);
+ UINT8 ctrl_2_0 = k007121_ctrlram_r(m_k007121_2, space, 0);
+ UINT8 ctrl_2_1 = k007121_ctrlram_r(m_k007121_2, space, 1);
+ UINT8 ctrl_2_2 = k007121_ctrlram_r(m_k007121_2, space, 2);
+ UINT8 ctrl_2_3 = k007121_ctrlram_r(m_k007121_2, space, 3);
set_pens(screen.machine());
- state->m_pf1_bankbase = 0x0000;
- state->m_pf2_bankbase = 0x4000 * ((state->m_gfx_bank & 2) >> 1);
+ m_pf1_bankbase = 0x0000;
+ m_pf2_bankbase = 0x4000 * ((m_gfx_bank & 2) >> 1);
if (ctrl_1_3 & 0x01)
- state->m_pf1_bankbase += 0x2000;
+ m_pf1_bankbase += 0x2000;
if (ctrl_2_3 & 0x01)
- state->m_pf2_bankbase += 0x2000;
+ m_pf2_bankbase += 0x2000;
- if (state->m_pf1_bankbase != state->m_old_pf1)
- state->m_fg_tilemap->mark_all_dirty();
+ if (m_pf1_bankbase != m_old_pf1)
+ m_fg_tilemap->mark_all_dirty();
- if (state->m_pf2_bankbase != state->m_old_pf2)
- state->m_bg_tilemap->mark_all_dirty();
+ if (m_pf2_bankbase != m_old_pf2)
+ m_bg_tilemap->mark_all_dirty();
- state->m_old_pf1 = state->m_pf1_bankbase;
- state->m_old_pf2 = state->m_pf2_bankbase;
+ m_old_pf1 = m_pf1_bankbase;
+ m_old_pf2 = m_pf2_bankbase;
- state->m_bg_tilemap->set_scrolly(0, ctrl_2_2);
- state->m_bg_tilemap->set_scrollx(0, ((ctrl_2_1 << 8) + ctrl_2_0));
- state->m_fg_tilemap->set_scrolly(0, ctrl_1_2);
- state->m_fg_tilemap->set_scrollx(0, ((ctrl_1_1 << 8) + ctrl_1_0));
+ m_bg_tilemap->set_scrolly(0, ctrl_2_2);
+ m_bg_tilemap->set_scrollx(0, ((ctrl_2_1 << 8) + ctrl_2_0));
+ m_fg_tilemap->set_scrolly(0, ctrl_1_2);
+ m_fg_tilemap->set_scrollx(0, ((ctrl_1_1 << 8) + ctrl_1_0));
// /* Sprite priority */
// if (ctrl_1_3 & 0x20)
- if ((state->m_gfx_bank & 0x04) == 0)
+ if ((m_gfx_bank & 0x04) == 0)
{
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram->buffer(), 0);
- draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram2->buffer(), 1);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram->buffer(), 0);
+ draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram2->buffer(), 1);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
}
else
{
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
- draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram->buffer(), 0);
- draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram2->buffer(), 1);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram->buffer(), 0);
+ draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram2->buffer(), 1);
}
return 0;
}
diff --git a/src/mame/video/hexion.c b/src/mame/video/hexion.c
index 600aea90eac..23a7e0474bf 100644
--- a/src/mame/video/hexion.c
+++ b/src/mame/video/hexion.c
@@ -157,10 +157,9 @@ WRITE8_MEMBER(hexion_state::hexion_gfxrom_select_w)
***************************************************************************/
-SCREEN_UPDATE_IND16( hexion )
+UINT32 hexion_state::screen_update_hexion(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- hexion_state *state = screen.machine().driver_data<hexion_state>();
- state->m_bg_tilemap[1]->draw(bitmap, cliprect, 0,0);
- state->m_bg_tilemap[0]->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap[1]->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap[0]->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/video/higemaru.c b/src/mame/video/higemaru.c
index c53256a6380..d80a364ca1f 100644
--- a/src/mame/video/higemaru.c
+++ b/src/mame/video/higemaru.c
@@ -141,10 +141,9 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( higemaru )
+UINT32 higemaru_state::screen_update_higemaru(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- higemaru_state *state = screen.machine().driver_data<higemaru_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/himesiki.c b/src/mame/video/himesiki.c
index 76bed981fc7..14324996fda 100644
--- a/src/mame/video/himesiki.c
+++ b/src/mame/video/himesiki.c
@@ -112,13 +112,12 @@ static void himesiki_draw_sprites( running_machine &machine, bitmap_ind16 &bitma
}
}
-SCREEN_UPDATE_IND16( himesiki )
+UINT32 himesiki_state::screen_update_himesiki(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- himesiki_state *state = screen.machine().driver_data<himesiki_state>();
- int x = -(state->m_scrollx[0] << 8 | state->m_scrollx[1]) & 0x1ff;
- state->m_bg_tilemap->set_scrolldx(x, x);
+ int x = -(m_scrollx[0] << 8 | m_scrollx[1]) & 0x1ff;
+ m_bg_tilemap->set_scrolldx(x, x);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
himesiki_draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
diff --git a/src/mame/video/hnayayoi.c b/src/mame/video/hnayayoi.c
index bcb0193c465..2f351b44848 100644
--- a/src/mame/video/hnayayoi.c
+++ b/src/mame/video/hnayayoi.c
@@ -257,15 +257,14 @@ static void draw_layer_interleaved( running_machine &machine, bitmap_ind16 &bitm
}
-SCREEN_UPDATE_IND16( hnayayoi )
+UINT32 hnayayoi_state::screen_update_hnayayoi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- hnayayoi_state *state = screen.machine().driver_data<hnayayoi_state>();
- int col0 = (state->m_palbank >> 0) & 0x0f;
- int col1 = (state->m_palbank >> 4) & 0x0f;
- int col2 = (state->m_palbank >> 8) & 0x0f;
- int col3 = (state->m_palbank >> 12) & 0x0f;
+ int col0 = (m_palbank >> 0) & 0x0f;
+ int col1 = (m_palbank >> 4) & 0x0f;
+ int col2 = (m_palbank >> 8) & 0x0f;
+ int col3 = (m_palbank >> 12) & 0x0f;
- if (state->m_total_pixmaps == 4)
+ if (m_total_pixmaps == 4)
{
draw_layer_interleaved(screen.machine(), bitmap, cliprect, 3, 2, col1, 0);
draw_layer_interleaved(screen.machine(), bitmap, cliprect, 1, 0, col0, 1);
diff --git a/src/mame/video/hng64.c b/src/mame/video/hng64.c
index 835f32b2458..e9cc6aa1207 100644
--- a/src/mame/video/hng64.c
+++ b/src/mame/video/hng64.c
@@ -1430,12 +1430,11 @@ static void hng64_drawtilemap(running_machine& machine, bitmap_rgb32 &bitmap, co
#define IMPORTANT_DIRTY_TILEFLAG_MASK (0x0600)
-SCREEN_UPDATE_RGB32( hng64 )
+UINT32 hng64_state::screen_update_hng64(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- hng64_state *state = screen.machine().driver_data<hng64_state>();
- UINT32 *hng64_videoregs = state->m_videoregs;
- UINT32 *hng64_videoram = state->m_videoram;
- UINT32 *hng64_tcram = state->m_tcram;
+ UINT32 *hng64_videoregs = m_videoregs;
+ UINT32 *hng64_videoram = m_videoram;
+ UINT32 *hng64_tcram = m_tcram;
UINT32 animmask;
UINT32 animbits;
UINT16 tileflags0, tileflags1;
@@ -1455,7 +1454,7 @@ SCREEN_UPDATE_RGB32( hng64 )
bitmap.fill(hng64_tcram[0x50/4] & 0x10000 ? get_black_pen(screen.machine()) : screen.machine().pens[0], cliprect); //FIXME: Is the register correct? check with HW tests
screen.machine().priority_bitmap.fill(0x00, cliprect);
- if (state->m_screen_dis)
+ if (m_screen_dis)
return 0;
animmask = hng64_videoregs[0x0b];
@@ -1466,62 +1465,62 @@ SCREEN_UPDATE_RGB32( hng64 )
tileflags3 = hng64_videoregs[0x03]&0xffff;
/* if the auto-animation mask or bits have changed search for tiles using them and mark as dirty */
- if ((state->m_old_animmask != animmask) || (state->m_old_animbits != animbits))
+ if ((m_old_animmask != animmask) || (m_old_animbits != animbits))
{
int tile_index;
for (tile_index=0;tile_index<128*128;tile_index++)
{
if (hng64_videoram[tile_index+(0x00000/4)]&0x200000)
{
- hng64_mark_tile_dirty(state, 0, tile_index);
+ hng64_mark_tile_dirty(this, 0, tile_index);
}
if (hng64_videoram[tile_index+(0x10000/4)]&0x200000)
{
- hng64_mark_tile_dirty(state, 1, tile_index);
+ hng64_mark_tile_dirty(this, 1, tile_index);
}
if (hng64_videoram[tile_index+(0x20000/4)]&0x200000)
{
- hng64_mark_tile_dirty(state, 2, tile_index);
+ hng64_mark_tile_dirty(this, 2, tile_index);
}
if (hng64_videoram[tile_index+(0x30000/4)]&0x200000)
{
- hng64_mark_tile_dirty(state, 3, tile_index);
+ hng64_mark_tile_dirty(this, 3, tile_index);
}
}
- state->m_old_animmask = animmask;
- state->m_old_animbits = animbits;
+ m_old_animmask = animmask;
+ m_old_animbits = animbits;
}
- if ((state->m_old_tileflags0&IMPORTANT_DIRTY_TILEFLAG_MASK)!=(tileflags0&IMPORTANT_DIRTY_TILEFLAG_MASK))
+ if ((m_old_tileflags0&IMPORTANT_DIRTY_TILEFLAG_MASK)!=(tileflags0&IMPORTANT_DIRTY_TILEFLAG_MASK))
{
- hng64_mark_all_tiles_dirty(state, 0);
- state->m_old_tileflags0 = tileflags0;
+ hng64_mark_all_tiles_dirty(this, 0);
+ m_old_tileflags0 = tileflags0;
}
- if ((state->m_old_tileflags1&IMPORTANT_DIRTY_TILEFLAG_MASK)!=(tileflags1&IMPORTANT_DIRTY_TILEFLAG_MASK))
+ if ((m_old_tileflags1&IMPORTANT_DIRTY_TILEFLAG_MASK)!=(tileflags1&IMPORTANT_DIRTY_TILEFLAG_MASK))
{
- hng64_mark_all_tiles_dirty(state, 1);
- state->m_old_tileflags1 = tileflags1;
+ hng64_mark_all_tiles_dirty(this, 1);
+ m_old_tileflags1 = tileflags1;
}
- if ((state->m_old_tileflags2&IMPORTANT_DIRTY_TILEFLAG_MASK)!=(tileflags2&IMPORTANT_DIRTY_TILEFLAG_MASK))
+ if ((m_old_tileflags2&IMPORTANT_DIRTY_TILEFLAG_MASK)!=(tileflags2&IMPORTANT_DIRTY_TILEFLAG_MASK))
{
- hng64_mark_all_tiles_dirty(state, 2);
- state->m_old_tileflags2 = tileflags2;
+ hng64_mark_all_tiles_dirty(this, 2);
+ m_old_tileflags2 = tileflags2;
}
- if ((state->m_old_tileflags3&IMPORTANT_DIRTY_TILEFLAG_MASK)!=(tileflags3&IMPORTANT_DIRTY_TILEFLAG_MASK))
+ if ((m_old_tileflags3&IMPORTANT_DIRTY_TILEFLAG_MASK)!=(tileflags3&IMPORTANT_DIRTY_TILEFLAG_MASK))
{
- hng64_mark_all_tiles_dirty(state, 3);
- state->m_old_tileflags3 = tileflags3;
+ hng64_mark_all_tiles_dirty(this, 3);
+ m_old_tileflags3 = tileflags3;
}
// mark all frames as dirty if for some reason we don't trust the above code
- //hng64_mark_all_tiles_dirty(state, 0);
- //hng64_mark_all_tiles_dirty(state, 1);
- //hng64_mark_all_tiles_dirty(state, 2);
- //hng64_mark_all_tiles_dirty(state, 3);
+ //hng64_mark_all_tiles_dirty(this, 0);
+ //hng64_mark_all_tiles_dirty(this, 1);
+ //hng64_mark_all_tiles_dirty(this, 2);
+ //hng64_mark_all_tiles_dirty(this, 3);
hng64_drawtilemap(screen.machine(),bitmap,cliprect, 3);
hng64_drawtilemap(screen.machine(),bitmap,cliprect, 2);
@@ -1535,7 +1534,7 @@ SCREEN_UPDATE_RGB32( hng64 )
// Blit the color buffer into the primary bitmap
for (y = cliprect.min_y; y <= cliprect.max_y; y++)
{
- UINT32 *src = &state->m_colorBuffer3d[y * cliprect.max_x];
+ UINT32 *src = &m_colorBuffer3d[y * cliprect.max_x];
UINT32 *dst = &bitmap.pix32(y, cliprect.min_x);
for (x = cliprect.min_x; x <= cliprect.max_x; x++)
@@ -1556,7 +1555,7 @@ SCREEN_UPDATE_RGB32( hng64 )
transition_control(screen.machine(), bitmap, cliprect);
if (0)
- popmessage("%08x %08x %08x %08x %08x", state->m_spriteregs[0], state->m_spriteregs[1], state->m_spriteregs[2], state->m_spriteregs[3], state->m_spriteregs[4]);
+ popmessage("%08x %08x %08x %08x %08x", m_spriteregs[0], m_spriteregs[1], m_spriteregs[2], m_spriteregs[3], m_spriteregs[4]);
if (0)
popmessage("%08x %08x TR(%04x %04x %04x %04x) SB(%04x %04x %04x %04x) %08x %08x %08x %08x %08x AA(%08x %08x) %08x %08x",
@@ -1582,9 +1581,9 @@ SCREEN_UPDATE_RGB32( hng64 )
if (0)
popmessage("3D: %08x %08x %08x %08x : %08x %08x %08x %08x : %08x %08x %08x %08x",
- state->m_3dregs[0x00/4], state->m_3dregs[0x04/4], state->m_3dregs[0x08/4], state->m_3dregs[0x0c/4],
- state->m_3dregs[0x10/4], state->m_3dregs[0x14/4], state->m_3dregs[0x18/4], state->m_3dregs[0x1c/4],
- state->m_3dregs[0x20/4], state->m_3dregs[0x24/4], state->m_3dregs[0x28/4], state->m_3dregs[0x2c/4]);
+ m_3dregs[0x00/4], m_3dregs[0x04/4], m_3dregs[0x08/4], m_3dregs[0x0c/4],
+ m_3dregs[0x10/4], m_3dregs[0x14/4], m_3dregs[0x18/4], m_3dregs[0x1c/4],
+ m_3dregs[0x20/4], m_3dregs[0x24/4], m_3dregs[0x28/4], m_3dregs[0x2c/4]);
if (0)
popmessage("TC: %08x %08x %08x %08x : %08x %08x %08x %08x : %08x %08x %08x %08x : %08x %08x %08x %08x : %08x %08x %08x %08x : %08x %08x %08x %08x",
@@ -1615,32 +1614,32 @@ SCREEN_UPDATE_RGB32( hng64 )
if ( screen.machine().input().code_pressed_once(KEYCODE_T) )
{
- state->m_additive_tilemap_debug ^= 1;
- popmessage("blend changed %02x", state->m_additive_tilemap_debug);
+ m_additive_tilemap_debug ^= 1;
+ popmessage("blend changed %02x", m_additive_tilemap_debug);
}
if ( screen.machine().input().code_pressed_once(KEYCODE_Y) )
{
- state->m_additive_tilemap_debug ^= 2;
- popmessage("blend changed %02x", state->m_additive_tilemap_debug);
+ m_additive_tilemap_debug ^= 2;
+ popmessage("blend changed %02x", m_additive_tilemap_debug);
}
if ( screen.machine().input().code_pressed_once(KEYCODE_U) )
{
- state->m_additive_tilemap_debug ^= 4;
- popmessage("blend changed %02x", state->m_additive_tilemap_debug);
+ m_additive_tilemap_debug ^= 4;
+ popmessage("blend changed %02x", m_additive_tilemap_debug);
}
if ( screen.machine().input().code_pressed_once(KEYCODE_I) )
{
- state->m_additive_tilemap_debug ^= 8;
- popmessage("blend changed %02x", state->m_additive_tilemap_debug);
+ m_additive_tilemap_debug ^= 8;
+ popmessage("blend changed %02x", m_additive_tilemap_debug);
}
return 0;
}
-SCREEN_VBLANK( hng64 )
+void hng64_state::screen_eof_hng64(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
clear3d(screen.machine());
}
diff --git a/src/mame/video/holeland.c b/src/mame/video/holeland.c
index a9f6df7ae82..a40159c6502 100644
--- a/src/mame/video/holeland.c
+++ b/src/mame/video/holeland.c
@@ -180,20 +180,18 @@ static void crzrally_draw_sprites( running_machine &machine, bitmap_ind16 &bitma
}
}
-SCREEN_UPDATE_IND16( holeland )
+UINT32 holeland_state::screen_update_holeland(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- holeland_state *state = screen.machine().driver_data<holeland_state>();
-/*state->m_bg_tilemap->mark_all_dirty(); */
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
+/*m_bg_tilemap->mark_all_dirty(); */
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
holeland_draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( crzrally )
+UINT32 holeland_state::screen_update_crzrally(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- holeland_state *state = screen.machine().driver_data<holeland_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
crzrally_draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/homedata.c b/src/mame/video/homedata.c
index 486248881cd..71603a01301 100644
--- a/src/mame/video/homedata.c
+++ b/src/mame/video/homedata.c
@@ -801,54 +801,52 @@ WRITE8_MEMBER(homedata_state::pteacher_blitter_start_w)
***************************************************************************/
-SCREEN_UPDATE_IND16( mrokumei )
+UINT32 homedata_state::screen_update_mrokumei(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- homedata_state *state = screen.machine().driver_data<homedata_state>();
int flags,width;
/* blank screen */
- if (state->m_vreg[0x3] == 0xc1 && state->m_vreg[0x4] == 0xc0 && state->m_vreg[0x5] == 0xff)
+ if (m_vreg[0x3] == 0xc1 && m_vreg[0x4] == 0xc0 && m_vreg[0x5] == 0xff)
{
bitmap.fill(get_black_pen(screen.machine()), cliprect);
return 0;
}
- flags = (state->m_vreg[1] & 0x80) ? (TILE_FLIPX | TILE_FLIPY) : 0;
- if (flags != state->m_flipscreen)
+ flags = (m_vreg[1] & 0x80) ? (TILE_FLIPX | TILE_FLIPY) : 0;
+ if (flags != m_flipscreen)
{
- state->m_flipscreen = flags;
+ m_flipscreen = flags;
screen.machine().tilemap().mark_all_dirty();
}
- switch (state->m_vreg[0x3])
+ switch (m_vreg[0x3])
{
case 0xb7: width = 54; break; // mjclinic
case 0xae: width = 52; break; // mrokumei
case 0x9f: width = 49; break; // hourouki, mhgaiden, mjhokite
case 0x96: width = 49; break; // mjclinic
default:
- if (state->m_vreg[0x3])
+ if (m_vreg[0x3])
popmessage("unknown video control %02x %02x %02x %02x",
- state->m_vreg[0x3],
- state->m_vreg[0x4],
- state->m_vreg[0x5],
- state->m_vreg[0x6]);
+ m_vreg[0x3],
+ m_vreg[0x4],
+ m_vreg[0x5],
+ m_vreg[0x6]);
width = 54;
break;
}
screen.set_visible_area(0*8, width*8-1, 2*8, 30*8-1);
- state->m_bg_tilemap[state->m_visible_page][0]->set_scrollx(0, state->m_vreg[0xc] << 1);
+ m_bg_tilemap[m_visible_page][0]->set_scrollx(0, m_vreg[0xc] << 1);
- state->m_bg_tilemap[state->m_visible_page][0]->draw(bitmap, cliprect, 0, 0);
- state->m_bg_tilemap[state->m_visible_page][1]->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap[m_visible_page][0]->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap[m_visible_page][1]->draw(bitmap, cliprect, 0, 0);
return 0;
}
#ifdef UNUSED_FUNCTION
-SCREEN_UPDATE_IND16( reikaids )
+UINT32 homedata_state::screen_update_reikaids(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- homedata_state *state = screen.machine().driver_data<homedata_state>();
int flags;
static const int pritable[8][4] =
{
@@ -864,26 +862,25 @@ SCREEN_UPDATE_IND16( reikaids )
int pri, i;
- flags = (state->m_vreg[1] & 0x80) ? (TILE_FLIPX | TILE_FLIPY) : 0;
- if (flags != state->m_flipscreen)
+ flags = (m_vreg[1] & 0x80) ? (TILE_FLIPX | TILE_FLIPY) : 0;
+ if (flags != m_flipscreen)
{
- state->m_flipscreen = flags;
+ m_flipscreen = flags;
screen.machine().tilemap().mark_all_dirty();
}
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- pri = (state->m_bank & 0x70) >> 4;
+ pri = (m_bank & 0x70) >> 4;
for (i = 0; i < 4; i++)
- state->m_bg_tilemap[state->m_visible_page][pritable[pri][3 - i]]->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap[m_visible_page][pritable[pri][3 - i]]->draw(bitmap, cliprect, 0, 0);
return 0;
}
#endif
-SCREEN_UPDATE_IND16( reikaids )
+UINT32 homedata_state::screen_update_reikaids(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- homedata_state *state = screen.machine().driver_data<homedata_state>();
int flags;
static const int pritable[2][8][4] = /* table of priorities derived from the PROM */
{
@@ -911,40 +908,39 @@ SCREEN_UPDATE_IND16( reikaids )
int pri, i;
- flags = (state->m_vreg[1] & 0x80) ? (TILE_FLIPX | TILE_FLIPY) : 0;
- if (flags != state->m_flipscreen)
+ flags = (m_vreg[1] & 0x80) ? (TILE_FLIPX | TILE_FLIPY) : 0;
+ if (flags != m_flipscreen)
{
- state->m_flipscreen = flags;
+ m_flipscreen = flags;
screen.machine().tilemap().mark_all_dirty();
}
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- pri = (state->m_blitter_bank & 0x70) >> 4;
+ pri = (m_blitter_bank & 0x70) >> 4;
for (i = 0; i < 4; i++)
- state->m_bg_tilemap[state->m_visible_page][pritable[state->m_priority][pri][3 - i]]->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap[m_visible_page][pritable[m_priority][pri][3 - i]]->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( pteacher )
+UINT32 homedata_state::screen_update_pteacher(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- homedata_state *state = screen.machine().driver_data<homedata_state>();
int flags, scroll_low, scroll_high;
/* blank screen */
- if (state->m_vreg[0x3] == 0xc1 && state->m_vreg[0x4] == 0xc0 && state->m_vreg[0x5] == 0xff)
+ if (m_vreg[0x3] == 0xc1 && m_vreg[0x4] == 0xc0 && m_vreg[0x5] == 0xff)
{
bitmap.fill(get_black_pen(screen.machine()), cliprect);
return 0;
}
- flags = (state->m_vreg[1] & 0x80) ? (TILE_FLIPX | TILE_FLIPY) : 0;
- if (flags != state->m_flipscreen)
+ flags = (m_vreg[1] & 0x80) ? (TILE_FLIPX | TILE_FLIPY) : 0;
+ if (flags != m_flipscreen)
{
- state->m_flipscreen = flags;
+ m_flipscreen = flags;
screen.machine().tilemap().mark_all_dirty();
}
@@ -972,9 +968,9 @@ SCREEN_UPDATE_IND16( pteacher )
blanked = c1 c0 ff --
*/
- if (state->m_blitter_bank & 0x04)
+ if (m_blitter_bank & 0x04)
{
- if (state->m_vreg[0x4] == 0xae || state->m_vreg[0x4] == 0xb8)
+ if (m_vreg[0x4] == 0xae || m_vreg[0x4] == 0xb8)
{
/* kludge for mjkinjas */
screen.set_visible_area(0*8, 42*8-1, 2*8, 30*8-1);
@@ -982,43 +978,42 @@ SCREEN_UPDATE_IND16( pteacher )
}
else
{
- if (state->m_vreg[0x3] == 0xa6)
+ if (m_vreg[0x3] == 0xa6)
screen.set_visible_area(0*8, 33*8-1, 2*8, 30*8-1);
else
screen.set_visible_area(0*8, 35*8-1, 2*8, 30*8-1);
- scroll_low = (11 - (state->m_vreg[0x4] & 0x0f)) * 8 / 12;
+ scroll_low = (11 - (m_vreg[0x4] & 0x0f)) * 8 / 12;
}
}
else
{
- if (state->m_vreg[0x3] == 0xa6)
+ if (m_vreg[0x3] == 0xa6)
screen.set_visible_area(0*8, 51*8-1, 2*8, 30*8-1);
else
screen.set_visible_area(0*8, 54*8-1, 2*8, 30*8-1);
- scroll_low = 7 - (state->m_vreg[0x4] & 0x0f);
+ scroll_low = 7 - (m_vreg[0x4] & 0x0f);
}
- scroll_high = state->m_vreg[0xb] >> 2;
+ scroll_high = m_vreg[0xb] >> 2;
- state->m_bg_tilemap[state->m_visible_page][0]->set_scrollx(0, scroll_high * 8 + scroll_low);
- state->m_bg_tilemap[state->m_visible_page][1]->set_scrollx(0, scroll_high * 8 + scroll_low);
+ m_bg_tilemap[m_visible_page][0]->set_scrollx(0, scroll_high * 8 + scroll_low);
+ m_bg_tilemap[m_visible_page][1]->set_scrollx(0, scroll_high * 8 + scroll_low);
- state->m_bg_tilemap[state->m_visible_page][0]->draw(bitmap, cliprect, 0, 0);
- state->m_bg_tilemap[state->m_visible_page][1]->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap[m_visible_page][0]->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap[m_visible_page][1]->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( mirderby )
+UINT32 homedata_state::screen_update_mirderby(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
-SCREEN_VBLANK( homedata )
+void homedata_state::screen_eof_homedata(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- homedata_state *state = screen.machine().driver_data<homedata_state>();
- state->m_visible_page ^= 1;
+ m_visible_page ^= 1;
}
}
diff --git a/src/mame/video/homerun.c b/src/mame/video/homerun.c
index c1c4e1ce460..767310ae324 100644
--- a/src/mame/video/homerun.c
+++ b/src/mame/video/homerun.c
@@ -134,14 +134,13 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16(homerun)
+UINT32 homerun_state::screen_update_homerun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- homerun_state *state = screen.machine().driver_data<homerun_state>();
- state->m_tilemap->set_scrolly(0, state->m_scrolly);
- state->m_tilemap->set_scrollx(0, state->m_scrollx);
+ m_tilemap->set_scrolly(0, m_scrolly);
+ m_tilemap->set_scrollx(0, m_scrollx);
- state->m_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
diff --git a/src/mame/video/hyhoo.c b/src/mame/video/hyhoo.c
index 4d5df4f88cf..4cde61925f3 100644
--- a/src/mame/video/hyhoo.c
+++ b/src/mame/video/hyhoo.c
@@ -228,11 +228,10 @@ void hyhoo_state::video_start()
}
-SCREEN_UPDATE_RGB32( hyhoo )
+UINT32 hyhoo_state::screen_update_hyhoo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- hyhoo_state *state = screen.machine().driver_data<hyhoo_state>();
- if (state->m_dispflag)
- copybitmap(bitmap, state->m_tmpbitmap, state->m_flipscreen, state->m_flipscreen, 0, 0, cliprect);
+ if (m_dispflag)
+ copybitmap(bitmap, m_tmpbitmap, m_flipscreen, m_flipscreen, 0, 0, cliprect);
else
bitmap.fill(RGB_BLACK, cliprect);
diff --git a/src/mame/video/hyperspt.c b/src/mame/video/hyperspt.c
index c34a715d3bb..4b5f599a2e0 100644
--- a/src/mame/video/hyperspt.c
+++ b/src/mame/video/hyperspt.c
@@ -171,19 +171,18 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( hyperspt )
+UINT32 hyperspt_state::screen_update_hyperspt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- hyperspt_state *state = screen.machine().driver_data<hyperspt_state>();
int row;
for (row = 0; row < 32; row++)
{
- int scrollx = state->m_scroll[row * 2] + (state->m_scroll[(row * 2) + 1] & 0x01) * 256;
- if (state->flip_screen()) scrollx = -scrollx;
- state->m_bg_tilemap->set_scrollx(row, scrollx);
+ int scrollx = m_scroll[row * 2] + (m_scroll[(row * 2) + 1] & 0x01) * 256;
+ if (flip_screen()) scrollx = -scrollx;
+ m_bg_tilemap->set_scrollx(row, scrollx);
}
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/hyprduel.c b/src/mame/video/hyprduel.c
index 1bd8d097cf5..83f936d7f3f 100644
--- a/src/mame/video/hyprduel.c
+++ b/src/mame/video/hyprduel.c
@@ -670,43 +670,42 @@ static void dirty_tiles( running_machine &machine, int layer, UINT16 *vram )
}
-SCREEN_UPDATE_IND16( hyprduel )
+UINT32 hyprduel_state::screen_update_hyprduel(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- hyprduel_state *state = screen.machine().driver_data<hyprduel_state>();
int i, pri, layers_ctrl = -1;
- UINT16 screenctrl = *state->m_screenctrl;
+ UINT16 screenctrl = *m_screenctrl;
{
int dirty = 0;
- memset(state->m_dirtyindex, 0, state->m_tiletable.bytes() / 4);
- for (i = 0; i < state->m_tiletable.bytes() / 4; i++)
+ memset(m_dirtyindex, 0, m_tiletable.bytes() / 4);
+ for (i = 0; i < m_tiletable.bytes() / 4; i++)
{
- UINT32 tile_new = (state->m_tiletable[2 * i + 0] << 16 ) + state->m_tiletable[2 * i + 1];
- UINT32 tile_old = (state->m_tiletable_old[2 * i + 0] << 16 ) + state->m_tiletable_old[2 * i + 1];
+ UINT32 tile_new = (m_tiletable[2 * i + 0] << 16 ) + m_tiletable[2 * i + 1];
+ UINT32 tile_old = (m_tiletable_old[2 * i + 0] << 16 ) + m_tiletable_old[2 * i + 1];
if ((tile_new ^ tile_old) & 0x0fffffff)
{
- state->m_dirtyindex[i] = 1;
+ m_dirtyindex[i] = 1;
dirty = 1;
}
}
- memcpy(state->m_tiletable_old, state->m_tiletable, state->m_tiletable.bytes());
+ memcpy(m_tiletable_old, m_tiletable, m_tiletable.bytes());
if (dirty)
{
- dirty_tiles(screen.machine(), 0, state->m_vram_0);
- dirty_tiles(screen.machine(), 1, state->m_vram_1);
- dirty_tiles(screen.machine(), 2, state->m_vram_2);
+ dirty_tiles(screen.machine(), 0, m_vram_0);
+ dirty_tiles(screen.machine(), 1, m_vram_1);
+ dirty_tiles(screen.machine(), 2, m_vram_2);
}
}
- state->m_sprite_xoffs = state->m_videoregs[0x06 / 2] - screen.width() / 2;
- state->m_sprite_yoffs = state->m_videoregs[0x04 / 2] - screen.height() / 2 - state->m_sprite_yoffs_sub;
+ m_sprite_xoffs = m_videoregs[0x06 / 2] - screen.width() / 2;
+ m_sprite_yoffs = m_videoregs[0x04 / 2] - screen.height() / 2 - m_sprite_yoffs_sub;
/* The background color is selected by a register */
screen.machine().priority_bitmap.fill(0, cliprect);
- bitmap.fill((state->m_videoregs[0x12 / 2] & 0x0fff) + 0x1000, cliprect);
+ bitmap.fill((m_videoregs[0x12 / 2] & 0x0fff) + 0x1000, cliprect);
/* Screen Control Register:
@@ -721,7 +720,7 @@ SCREEN_UPDATE_IND16( hyprduel )
---- ---- ---- ---0 Flip Screen */
if (screenctrl & 2)
return 0;
- state->flip_screen_set(screenctrl & 1);
+ flip_screen_set(screenctrl & 1);
#if 0
if (screen.machine().input().code_pressed(KEYCODE_Z))
@@ -737,9 +736,9 @@ if (screen.machine().input().code_pressed(KEYCODE_Z))
}
popmessage("%x-%x-%x:%04x %04x %04x",
- state->m_videoregs[0x10/2]&3,(state->m_videoregs[0x10/2] & 0xc) >> 2, (state->m_videoregs[0x10/2] & 0x30) >> 4,
- state->m_videoregs[0x02/2], state->m_videoregs[0x08/2],
- *state->m_screenctrl);
+ m_videoregs[0x10/2]&3,(m_videoregs[0x10/2] & 0xc) >> 2, (m_videoregs[0x10/2] & 0x30) >> 4,
+ m_videoregs[0x02/2], m_videoregs[0x08/2],
+ *m_screenctrl);
}
#endif
diff --git a/src/mame/video/ikki.c b/src/mame/video/ikki.c
index ef951496898..f1800dd2667 100644
--- a/src/mame/video/ikki.c
+++ b/src/mame/video/ikki.c
@@ -122,15 +122,14 @@ void ikki_state::video_start()
}
-SCREEN_UPDATE_IND16( ikki )
+UINT32 ikki_state::screen_update_ikki(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ikki_state *state = screen.machine().driver_data<ikki_state>();
offs_t offs;
- UINT8 *VIDEOATTR = state->memregion("user1")->base();
+ UINT8 *VIDEOATTR = memregion("user1")->base();
/* draw bg layer */
- for (offs = 0; offs < (state->m_videoram.bytes() / 2); offs++)
+ for (offs = 0; offs < (m_videoram.bytes() / 2); offs++)
{
int color, bank;
@@ -144,10 +143,10 @@ SCREEN_UPDATE_IND16( ikki )
switch (d)
{
case 0x02: /* scroll area */
- x = sx * 8 - state->m_scroll[1];
+ x = sx * 8 - m_scroll[1];
if (x < 0)
x += 8 * 22;
- y = (sy * 8 + ~state->m_scroll[0]) & 0xff;
+ y = (sy * 8 + ~m_scroll[0]) & 0xff;
break;
case 0x03: /* non-scroll area */
@@ -166,20 +165,20 @@ SCREEN_UPDATE_IND16( ikki )
break;
}
- if (state->m_flipscreen)
+ if (m_flipscreen)
{
x = 248 - x;
y = 248 - y;
}
- color = state->m_videoram[offs * 2];
+ color = m_videoram[offs * 2];
bank = (color & 0xe0) << 3;
color = ((color & 0x1f)<<0) | ((color & 0x80) >> 2);
drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],
- state->m_videoram[offs * 2 + 1] + bank,
+ m_videoram[offs * 2 + 1] + bank,
color,
- state->m_flipscreen,state->m_flipscreen,
+ m_flipscreen,m_flipscreen,
x,y);
}
@@ -187,7 +186,7 @@ SCREEN_UPDATE_IND16( ikki )
/* mask sprites */
- for (offs = 0; offs < (state->m_videoram.bytes() / 2); offs++)
+ for (offs = 0; offs < (m_videoram.bytes() / 2); offs++)
{
int sx = offs / 32;
int sy = offs % 32;
@@ -201,20 +200,20 @@ SCREEN_UPDATE_IND16( ikki )
int y = sy * 8;
int x = sx * 8;
- if (state->m_flipscreen)
+ if (m_flipscreen)
{
x = 248 - x;
y = 248 - y;
}
- color = state->m_videoram[offs * 2];
+ color = m_videoram[offs * 2];
bank = (color & 0xe0) << 3;
color = ((color & 0x1f)<<0) | ((color & 0x80) >> 2);
drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],
- state->m_videoram[offs * 2 + 1] + bank,
+ m_videoram[offs * 2 + 1] + bank,
color,
- state->m_flipscreen,state->m_flipscreen,
+ m_flipscreen,m_flipscreen,
x,y);
}
}
diff --git a/src/mame/video/inufuku.c b/src/mame/video/inufuku.c
index 6f71b340e72..ca2ba986e7b 100644
--- a/src/mame/video/inufuku.c
+++ b/src/mame/video/inufuku.c
@@ -225,31 +225,30 @@ void inufuku_state::video_start()
******************************************************************************/
-SCREEN_UPDATE_IND16( inufuku )
+UINT32 inufuku_state::screen_update_inufuku(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- inufuku_state *state = screen.machine().driver_data<inufuku_state>();
int i;
bitmap.fill(get_black_pen(screen.machine()), cliprect);
screen.machine().priority_bitmap.fill(0);
- if (state->m_bg_raster)
+ if (m_bg_raster)
{
- state->m_bg_tilemap->set_scroll_rows(512);
+ m_bg_tilemap->set_scroll_rows(512);
for (i = 0; i < 256; i++)
- state->m_bg_tilemap->set_scrollx((state->m_bg_scrolly + i) & 0x1ff, state->m_bg_rasterram[i]);
+ m_bg_tilemap->set_scrollx((m_bg_scrolly + i) & 0x1ff, m_bg_rasterram[i]);
}
else
{
- state->m_bg_tilemap->set_scroll_rows(1);
- state->m_bg_tilemap->set_scrollx(0, state->m_bg_scrollx);
+ m_bg_tilemap->set_scroll_rows(1);
+ m_bg_tilemap->set_scrollx(0, m_bg_scrollx);
}
- state->m_bg_tilemap->set_scrolly(0, state->m_bg_scrolly);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->set_scrolly(0, m_bg_scrolly);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_tx_tilemap->set_scrollx(0, state->m_tx_scrollx);
- state->m_tx_tilemap->set_scrolly(0, state->m_tx_scrolly);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
+ m_tx_tilemap->set_scrollx(0, m_tx_scrollx);
+ m_tx_tilemap->set_scrolly(0, m_tx_scrolly);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
diff --git a/src/mame/video/iqblock.c b/src/mame/video/iqblock.c
index a510a83349c..6454ffd7789 100644
--- a/src/mame/video/iqblock.c
+++ b/src/mame/video/iqblock.c
@@ -83,12 +83,11 @@ WRITE8_MEMBER(iqblock_state::iqblock_fgscroll_w)
***************************************************************************/
-SCREEN_UPDATE_IND16( iqblock )
+UINT32 iqblock_state::screen_update_iqblock(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- iqblock_state *state = screen.machine().driver_data<iqblock_state>();
- if (!state->m_videoenable) return 0;
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ if (!m_videoenable) return 0;
+ m_fg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/video/irobot.c b/src/mame/video/irobot.c
index c5f1255d49e..865d6f5d1fe 100644
--- a/src/mame/video/irobot.c
+++ b/src/mame/video/irobot.c
@@ -346,11 +346,10 @@ void irobot_run_video(running_machine &machine)
-SCREEN_UPDATE_IND16( irobot )
+UINT32 irobot_state::screen_update_irobot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- irobot_state *state = screen.machine().driver_data<irobot_state>();
- UINT8 *videoram = state->m_videoram;
- UINT8 *bitmap_base = state->m_bufsel ? state->m_polybitmap1 : state->m_polybitmap2;
+ UINT8 *videoram = m_videoram;
+ UINT8 *bitmap_base = m_bufsel ? m_polybitmap1 : m_polybitmap2;
int x, y, offs;
/* copy the polygon bitmap */
@@ -362,7 +361,7 @@ SCREEN_UPDATE_IND16( irobot )
for (x = 0; x < 32; x++, offs++)
{
int code = videoram[offs] & 0x3f;
- int color = ((videoram[offs] & 0xc0) >> 6) | (state->m_alphamap >> 3);
+ int color = ((videoram[offs] & 0xc0) >> 6) | (m_alphamap >> 3);
drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0],
code, color,
diff --git a/src/mame/video/ironhors.c b/src/mame/video/ironhors.c
index 0356d444696..dc384af0367 100644
--- a/src/mame/video/ironhors.c
+++ b/src/mame/video/ironhors.c
@@ -234,15 +234,14 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( ironhors )
+UINT32 ironhors_state::screen_update_ironhors(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ironhors_state *state = screen.machine().driver_data<ironhors_state>();
int row;
for (row = 0; row < 32; row++)
- state->m_bg_tilemap->set_scrollx(row, state->m_scroll[row]);
+ m_bg_tilemap->set_scrollx(row, m_scroll[row]);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
@@ -345,15 +344,14 @@ static void farwest_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap
}
}
-SCREEN_UPDATE_IND16( farwest)
+UINT32 ironhors_state::screen_update_farwest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ironhors_state *state = screen.machine().driver_data<ironhors_state>();
int row;
for (row = 0; row < 32; row++)
- state->m_bg_tilemap->set_scrollx(row, state->m_scroll[row]);
+ m_bg_tilemap->set_scrollx(row, m_scroll[row]);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
farwest_draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/itech32.c b/src/mame/video/itech32.c
index 610ca2d409a..0f0a7889e35 100644
--- a/src/mame/video/itech32.c
+++ b/src/mame/video/itech32.c
@@ -1409,20 +1409,19 @@ READ32_MEMBER(itech32_state::itech020_video_r)
*
*************************************/
-SCREEN_UPDATE_IND16( itech32 )
+UINT32 itech32_state::screen_update_itech32(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- itech32_state *state = screen.machine().driver_data<itech32_state>();
int y;
/* loop over height */
for (y = cliprect.min_y; y <= cliprect.max_y; y++)
{
- UINT16 *src1 = &state->m_videoplane[0][compute_safe_address(state, state->VIDEO_DISPLAY_XORIGIN1, state->VIDEO_DISPLAY_YORIGIN1 + y)];
+ UINT16 *src1 = &m_videoplane[0][compute_safe_address(this, VIDEO_DISPLAY_XORIGIN1, VIDEO_DISPLAY_YORIGIN1 + y)];
/* handle multi-plane case */
- if (state->m_planes > 1)
+ if (m_planes > 1)
{
- UINT16 *src2 = &state->m_videoplane[1][compute_safe_address(state, state->VIDEO_DISPLAY_XORIGIN2 + state->VIDEO_DISPLAY_XSCROLL2, state->VIDEO_DISPLAY_YORIGIN2 + state->VIDEO_DISPLAY_YSCROLL2 + y)];
+ UINT16 *src2 = &m_videoplane[1][compute_safe_address(this, VIDEO_DISPLAY_XORIGIN2 + VIDEO_DISPLAY_XSCROLL2, VIDEO_DISPLAY_YORIGIN2 + VIDEO_DISPLAY_YSCROLL2 + y)];
UINT16 scanline[384];
int x;
diff --git a/src/mame/video/itech8.c b/src/mame/video/itech8.c
index d58f24ab1dc..8e5432b1371 100644
--- a/src/mame/video/itech8.c
+++ b/src/mame/video/itech8.c
@@ -602,10 +602,9 @@ TIMER_DEVICE_CALLBACK( grmatch_palette_update )
*
*************************************/
-SCREEN_UPDATE_RGB32( itech8_2layer )
+UINT32 itech8_state::screen_update_itech8_2layer(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- itech8_state *state = screen.machine().driver_data<itech8_state>();
- struct tms34061_display &tms_state = state->m_tms_state;
+ struct tms34061_display &tms_state = m_tms_state;
UINT32 page_offset;
int x, y;
const rgb_t *pens = tlc34076_get_pens(screen.machine().device("tlc34076"));
@@ -640,10 +639,9 @@ SCREEN_UPDATE_RGB32( itech8_2layer )
}
-SCREEN_UPDATE_RGB32( itech8_grmatch )
+UINT32 itech8_state::screen_update_itech8_grmatch(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- itech8_state *state = screen.machine().driver_data<itech8_state>();
- struct tms34061_display &tms_state = state->m_tms_state;
+ struct tms34061_display &tms_state = m_tms_state;
UINT32 page_offset;
int x, y;
@@ -662,7 +660,7 @@ SCREEN_UPDATE_RGB32( itech8_grmatch )
/* bottom layer @ 0x20000 is 4bpp, colors come from TMS34070, enabled via palette control */
/* 4bpp pixels are packed 2 to a byte */
/* xscroll is set via a separate register */
- page_offset = (tms_state.dispstart & 0x0ffff) | state->m_grmatch_xscroll;
+ page_offset = (tms_state.dispstart & 0x0ffff) | m_grmatch_xscroll;
for (y = cliprect.min_y; y <= cliprect.max_y; y++)
{
UINT8 *base0 = &tms_state.vram[0x00000 + ((page_offset + y * 256) & 0xffff)];
@@ -675,24 +673,23 @@ SCREEN_UPDATE_RGB32( itech8_grmatch )
UINT8 pix2 = base2[x / 2];
if ((pix0 & 0xf0) != 0)
- dest[x] = state->m_grmatch_palette[0][pix0 >> 4];
+ dest[x] = m_grmatch_palette[0][pix0 >> 4];
else
- dest[x] = state->m_grmatch_palette[1][pix2 >> 4];
+ dest[x] = m_grmatch_palette[1][pix2 >> 4];
if ((pix0 & 0x0f) != 0)
- dest[x + 1] = state->m_grmatch_palette[0][pix0 & 0x0f];
+ dest[x + 1] = m_grmatch_palette[0][pix0 & 0x0f];
else
- dest[x + 1] = state->m_grmatch_palette[1][pix2 & 0x0f];
+ dest[x + 1] = m_grmatch_palette[1][pix2 & 0x0f];
}
}
return 0;
}
-SCREEN_UPDATE_RGB32( itech8_2page )
+UINT32 itech8_state::screen_update_itech8_2page(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- itech8_state *state = screen.machine().driver_data<itech8_state>();
- struct tms34061_display &tms_state = state->m_tms_state;
+ struct tms34061_display &tms_state = m_tms_state;
UINT32 page_offset;
int x, y;
const rgb_t *pens = tlc34076_get_pens(screen.machine().device("tlc34076"));
@@ -709,7 +706,7 @@ SCREEN_UPDATE_RGB32( itech8_2page )
/* there are two pages, each of which is a full 8bpp */
/* page index is selected by the top bit of the page_select register */
- page_offset = ((state->m_page_select & 0x80) << 10) | (tms_state.dispstart & 0x0ffff);
+ page_offset = ((m_page_select & 0x80) << 10) | (tms_state.dispstart & 0x0ffff);
for (y = cliprect.min_y; y <= cliprect.max_y; y++)
{
UINT8 *base = &tms_state.vram[(page_offset + y * 256) & 0x3ffff];
@@ -722,10 +719,9 @@ SCREEN_UPDATE_RGB32( itech8_2page )
}
-SCREEN_UPDATE_RGB32( itech8_2page_large )
+UINT32 itech8_state::screen_update_itech8_2page_large(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- itech8_state *state = screen.machine().driver_data<itech8_state>();
- struct tms34061_display &tms_state = state->m_tms_state;
+ struct tms34061_display &tms_state = m_tms_state;
UINT32 page_offset;
int x, y;
const rgb_t *pens = tlc34076_get_pens(screen.machine().device("tlc34076"));
@@ -744,7 +740,7 @@ SCREEN_UPDATE_RGB32( itech8_2page_large )
/* the low 4 bits come from the bitmap directly */
/* the upper 4 bits were latched on each write into a separate bitmap */
/* page index is selected by the top bit of the page_select register */
- page_offset = ((~state->m_page_select & 0x80) << 10) | (tms_state.dispstart & 0x0ffff);
+ page_offset = ((~m_page_select & 0x80) << 10) | (tms_state.dispstart & 0x0ffff);
for (y = cliprect.min_y; y <= cliprect.max_y; y++)
{
UINT8 *base = &tms_state.vram[(page_offset + y * 256) & 0x3ffff];
diff --git a/src/mame/video/jack.c b/src/mame/video/jack.c
index d621273fef3..7284058511b 100644
--- a/src/mame/video/jack.c
+++ b/src/mame/video/jack.c
@@ -93,10 +93,9 @@ static void jack_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, c
}
}
-SCREEN_UPDATE_IND16( jack )
+UINT32 jack_state::screen_update_jack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- jack_state *state = screen.machine().driver_data<jack_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
jack_draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
@@ -177,10 +176,9 @@ static void joinem_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap,
}
}
-SCREEN_UPDATE_IND16( joinem )
+UINT32 jack_state::screen_update_joinem(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- jack_state *state = screen.machine().driver_data<jack_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
joinem_draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/jackal.c b/src/mame/video/jackal.c
index 3d5b343e703..83629267432 100644
--- a/src/mame/video/jackal.c
+++ b/src/mame/video/jackal.c
@@ -223,7 +223,7 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
draw_sprites_region(machine, bitmap, cliprect, sr, 0x500, 1);
}
-SCREEN_UPDATE_IND16( jackal )
+UINT32 jackal_state::screen_update_jackal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
set_pens(screen.machine());
draw_background(screen.machine(), bitmap, cliprect);
diff --git a/src/mame/video/jailbrek.c b/src/mame/video/jailbrek.c
index b139abc15f7..9f9721057d1 100644
--- a/src/mame/video/jailbrek.c
+++ b/src/mame/video/jailbrek.c
@@ -92,33 +92,32 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( jailbrek )
+UINT32 jailbrek_state::screen_update_jailbrek(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- jailbrek_state *state = screen.machine().driver_data<jailbrek_state>();
int i;
// added support for vertical scrolling (credits). 23/1/2002 -BR
// bit 2 appears to be horizontal/vertical scroll control
- if (state->m_scroll_dir[0] & 0x04)
+ if (m_scroll_dir[0] & 0x04)
{
- state->m_bg_tilemap->set_scroll_cols(32);
- state->m_bg_tilemap->set_scroll_rows(1);
- state->m_bg_tilemap->set_scrollx(0, 0);
+ m_bg_tilemap->set_scroll_cols(32);
+ m_bg_tilemap->set_scroll_rows(1);
+ m_bg_tilemap->set_scrollx(0, 0);
for (i = 0; i < 32; i++)
- state->m_bg_tilemap->set_scrolly(i, ((state->m_scroll_x[i + 32] << 8) + state->m_scroll_x[i]));
+ m_bg_tilemap->set_scrolly(i, ((m_scroll_x[i + 32] << 8) + m_scroll_x[i]));
}
else
{
- state->m_bg_tilemap->set_scroll_rows(32);
- state->m_bg_tilemap->set_scroll_cols(1);
- state->m_bg_tilemap->set_scrolly(0, 0);
+ m_bg_tilemap->set_scroll_rows(32);
+ m_bg_tilemap->set_scroll_cols(1);
+ m_bg_tilemap->set_scrolly(0, 0);
for (i = 0; i < 32; i++)
- state->m_bg_tilemap->set_scrollx(i, ((state->m_scroll_x[i + 32] << 8) + state->m_scroll_x[i]));
+ m_bg_tilemap->set_scrollx(i, ((m_scroll_x[i + 32] << 8) + m_scroll_x[i]));
}
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/jedi.c b/src/mame/video/jedi.c
index 73402c6a0bb..c73092c9acf 100644
--- a/src/mame/video/jedi.c
+++ b/src/mame/video/jedi.c
@@ -324,20 +324,19 @@ static void draw_sprites(running_machine &machine, jedi_state *state, bitmap_rgb
*
*************************************/
-static SCREEN_UPDATE_RGB32( jedi )
+UINT32 jedi_state::screen_update_jedi(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- jedi_state *state = screen.machine().driver_data<jedi_state>();
/* if no video, clear it all to black */
- if (*state->m_video_off & 0x01)
+ if (*m_video_off & 0x01)
bitmap.fill(RGB_BLACK, cliprect);
else
{
/* draw the background/text layers, followed by the sprites
- it needs to be done in this order*/
- draw_background_and_text(screen.machine(), state, bitmap, cliprect);
- draw_sprites(screen.machine(), state, bitmap, cliprect);
- do_pen_lookup(state, bitmap, cliprect);
+ draw_background_and_text(screen.machine(), this, bitmap, cliprect);
+ draw_sprites(screen.machine(), this, bitmap, cliprect);
+ do_pen_lookup(this, bitmap, cliprect);
}
return 0;
@@ -356,7 +355,7 @@ MACHINE_CONFIG_FRAGMENT( jedi_video )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(64*8, 262) /* verify vert size */
MCFG_SCREEN_VISIBLE_AREA(0*8, 37*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(jedi)
+ MCFG_SCREEN_UPDATE_DRIVER(jedi_state, screen_update_jedi)
MCFG_VIDEO_START_OVERRIDE(jedi_state,jedi)
MACHINE_CONFIG_END
diff --git a/src/mame/video/kan_panb.c b/src/mame/video/kan_panb.c
index 2ce7f5c3c56..dcd39cf8285 100644
--- a/src/mame/video/kan_panb.c
+++ b/src/mame/video/kan_panb.c
@@ -4,10 +4,9 @@
#include "kan_panb.h"
#include "includes/snowbros.h"
-SCREEN_UPDATE_IND16( honeydol )
+UINT32 snowbros_state::screen_update_honeydol(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- snowbros_state *state = screen.machine().driver_data<snowbros_state>();
- UINT16 *spriteram16 = state->m_bootleg_spriteram16;
+ UINT16 *spriteram16 = m_bootleg_spriteram16;
int sx=0, sy=0, x=0, y=0, offs;
/* sprites clip on left / right edges when scrolling, but it seems correct,
no extra sprite attribute bits are set during this time, the sprite co-ordinates
@@ -33,7 +32,7 @@ SCREEN_UPDATE_IND16( honeydol )
x = dx;
y = dy;
- if (state->flip_screen())
+ if (flip_screen())
{
sx = 240 - x;
sy = 240 - y;
@@ -64,7 +63,7 @@ SCREEN_UPDATE_IND16( honeydol )
x = dx;
y = dy;
- if (state->flip_screen())
+ if (flip_screen())
{
sx = 240 - x;
sy = 240 - y;
@@ -90,10 +89,9 @@ SCREEN_UPDATE_IND16( honeydol )
}
-SCREEN_UPDATE_IND16( twinadv )
+UINT32 snowbros_state::screen_update_twinadv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- snowbros_state *state = screen.machine().driver_data<snowbros_state>();
- UINT16 *spriteram16 = state->m_bootleg_spriteram16;
+ UINT16 *spriteram16 = m_bootleg_spriteram16;
int sx=0, sy=0, x=0, y=0, offs;
/* sprites clip on left / right edges when scrolling, but it seems correct,
no extra sprite attribute bits are set during this time, the sprite co-ordinates
@@ -120,7 +118,7 @@ SCREEN_UPDATE_IND16( twinadv )
x = dx;
y = dy;
- if (state->flip_screen())
+ if (flip_screen())
{
sx = 240 - x;
sy = 240 - y;
@@ -146,15 +144,14 @@ SCREEN_UPDATE_IND16( twinadv )
}
-SCREEN_UPDATE_IND16( wintbob )
+UINT32 snowbros_state::screen_update_wintbob(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- snowbros_state *state = screen.machine().driver_data<snowbros_state>();
- UINT16 *spriteram16 = state->m_bootleg_spriteram16;
+ UINT16 *spriteram16 = m_bootleg_spriteram16;
int offs;
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- for (offs = 0;offs < state->m_bootleg_spriteram16.bytes()/2;offs += 8)
+ for (offs = 0;offs < m_bootleg_spriteram16.bytes()/2;offs += 8)
{
int xpos = spriteram16[offs] & 0xff;
int ypos = spriteram16[offs+4] & 0xff;
@@ -169,7 +166,7 @@ SCREEN_UPDATE_IND16( wintbob )
if (wrapr == 8) xpos -= 256;
- if (state->flip_screen())
+ if (flip_screen())
{
xpos = 240 - xpos;
ypos = 240 - ypos;
@@ -190,10 +187,9 @@ SCREEN_UPDATE_IND16( wintbob )
}
-SCREEN_UPDATE_IND16( snowbro3 )
+UINT32 snowbros_state::screen_update_snowbro3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- snowbros_state *state = screen.machine().driver_data<snowbros_state>();
- UINT16 *spriteram16 = state->m_bootleg_spriteram16;
+ UINT16 *spriteram16 = m_bootleg_spriteram16;
int sx=0, sy=0, x=0, y=0, offs;
/*
@@ -222,7 +218,7 @@ SCREEN_UPDATE_IND16( snowbro3 )
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- for (offs = 0;offs < state->m_bootleg_spriteram16.bytes()/2;offs += 8)
+ for (offs = 0;offs < m_bootleg_spriteram16.bytes()/2;offs += 8)
{
gfx_element *gfx = screen.machine().gfx[0];
int dx = spriteram16[offs+4] & 0xff;
@@ -249,7 +245,7 @@ SCREEN_UPDATE_IND16( snowbro3 )
if (x > 511) x &= 0x1ff;
if (y > 511) y &= 0x1ff;
- if (state->flip_screen())
+ if (flip_screen())
{
sx = 240 - x;
sy = 240 - y;
diff --git a/src/mame/video/kaneko16.c b/src/mame/video/kaneko16.c
index 7433290d896..4df40e41d6f 100644
--- a/src/mame/video/kaneko16.c
+++ b/src/mame/video/kaneko16.c
@@ -44,20 +44,19 @@ static void kaneko16_fill_bitmap(running_machine &machine, bitmap_ind16 &bitmap,
}
-static SCREEN_UPDATE_IND16( common )
+UINT32 kaneko16_state::screen_update_common(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int i;
- kaneko16_state *state = screen.machine().driver_data<kaneko16_state>();
screen.machine().priority_bitmap.fill(0, cliprect);
- if (state->m_view2_0) state->m_view2_0->kaneko16_prepare(bitmap, cliprect);
- if (state->m_view2_1) state->m_view2_1->kaneko16_prepare(bitmap, cliprect);
+ if (m_view2_0) m_view2_0->kaneko16_prepare(bitmap, cliprect);
+ if (m_view2_1) m_view2_1->kaneko16_prepare(bitmap, cliprect);
for ( i = 0; i < 8; i++ )
{
- if (state->m_view2_0) state->m_view2_0->render_tilemap_chip(bitmap,cliprect,i);
- if (state->m_view2_1) state->m_view2_1->render_tilemap_chip_alt(bitmap,cliprect,i, state->VIEW2_2_pri);
+ if (m_view2_0) m_view2_0->render_tilemap_chip(bitmap,cliprect,i);
+ if (m_view2_1) m_view2_1->render_tilemap_chip_alt(bitmap,cliprect,i, VIEW2_2_pri);
}
return 0;
@@ -67,16 +66,15 @@ static SCREEN_UPDATE_IND16( common )
-SCREEN_UPDATE_IND16( kaneko16 )
+UINT32 kaneko16_state::screen_update_kaneko16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- kaneko16_state *state = screen.machine().driver_data<kaneko16_state>();
kaneko16_fill_bitmap(screen.machine(),bitmap,cliprect);
// if the display is disabled, do nothing?
- if (!state->m_disp_enable) return 0;
+ if (!m_disp_enable) return 0;
- SCREEN_UPDATE16_CALL(common);
- state->m_kaneko_spr->kaneko16_render_sprites(screen.machine(),bitmap,cliprect, state->m_spriteram, state->m_spriteram.bytes());
+ SCREEN_UPDATE16_CALL_MEMBER(common);
+ m_kaneko_spr->kaneko16_render_sprites(screen.machine(),bitmap,cliprect, m_spriteram, m_spriteram.bytes());
return 0;
}
@@ -191,16 +189,15 @@ static void kaneko16_render_15bpp_bitmap(running_machine &machine, bitmap_ind16
// flag = 0;
}
}
-SCREEN_UPDATE_IND16(berlwall)
+UINT32 kaneko16_berlwall_state::screen_update_berlwall(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- kaneko16_state *state = screen.machine().driver_data<kaneko16_state>();
// berlwall uses a 15bpp bitmap as a bg, not a solid fill
kaneko16_render_15bpp_bitmap(screen.machine(),bitmap,cliprect);
// if the display is disabled, do nothing?
- if (!state->m_disp_enable) return 0;
+ if (!m_disp_enable) return 0;
- SCREEN_UPDATE16_CALL(common);
- state->m_kaneko_spr->kaneko16_render_sprites(screen.machine(),bitmap,cliprect, state->m_spriteram, state->m_spriteram.bytes());
+ SCREEN_UPDATE16_CALL_MEMBER(common);
+ m_kaneko_spr->kaneko16_render_sprites(screen.machine(),bitmap,cliprect, m_spriteram, m_spriteram.bytes());
return 0;
}
diff --git a/src/mame/video/kangaroo.c b/src/mame/video/kangaroo.c
index 3b07f36b8e7..64425c68bac 100644
--- a/src/mame/video/kangaroo.c
+++ b/src/mame/video/kangaroo.c
@@ -133,19 +133,18 @@ static void blitter_execute( running_machine &machine )
*
*************************************/
-SCREEN_UPDATE_RGB32( kangaroo )
+UINT32 kangaroo_state::screen_update_kangaroo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- kangaroo_state *state = screen.machine().driver_data<kangaroo_state>();
- UINT8 scrolly = state->m_video_control[6];
- UINT8 scrollx = state->m_video_control[7];
- UINT8 maska = (state->m_video_control[10] & 0x28) >> 3;
- UINT8 maskb = (state->m_video_control[10] & 0x07) >> 0;
- UINT8 xora = (state->m_video_control[9] & 0x20) ? 0xff : 0x00;
- UINT8 xorb = (state->m_video_control[9] & 0x10) ? 0xff : 0x00;
- UINT8 enaa = (state->m_video_control[9] & 0x08);
- UINT8 enab = (state->m_video_control[9] & 0x04);
- UINT8 pria = (~state->m_video_control[9] & 0x02);
- UINT8 prib = (~state->m_video_control[9] & 0x01);
+ UINT8 scrolly = m_video_control[6];
+ UINT8 scrollx = m_video_control[7];
+ UINT8 maska = (m_video_control[10] & 0x28) >> 3;
+ UINT8 maskb = (m_video_control[10] & 0x07) >> 0;
+ UINT8 xora = (m_video_control[9] & 0x20) ? 0xff : 0x00;
+ UINT8 xorb = (m_video_control[9] & 0x10) ? 0xff : 0x00;
+ UINT8 enaa = (m_video_control[9] & 0x08);
+ UINT8 enab = (m_video_control[9] & 0x04);
+ UINT8 pria = (~m_video_control[9] & 0x02);
+ UINT8 prib = (~m_video_control[9] & 0x01);
rgb_t pens[8];
int x, y;
@@ -164,8 +163,8 @@ SCREEN_UPDATE_RGB32( kangaroo )
UINT8 effya = scrolly + (y ^ xora);
UINT8 effxb = (x / 2) ^ xorb;
UINT8 effyb = y ^ xorb;
- UINT8 pixa = (state->m_videoram[effya + 256 * (effxa / 4)] >> (8 * (effxa % 4) + 0)) & 0x0f;
- UINT8 pixb = (state->m_videoram[effyb + 256 * (effxb / 4)] >> (8 * (effxb % 4) + 4)) & 0x0f;
+ UINT8 pixa = (m_videoram[effya + 256 * (effxa / 4)] >> (8 * (effxa % 4) + 0)) & 0x0f;
+ UINT8 pixb = (m_videoram[effyb + 256 * (effxb / 4)] >> (8 * (effxb % 4) + 4)) & 0x0f;
UINT8 finalpens;
/* for each layer, contribute bits if (a) enabled, and (b) either has priority or the opposite plane is 0 */
diff --git a/src/mame/video/karnov.c b/src/mame/video/karnov.c
index ba8ee477c10..60332083a11 100644
--- a/src/mame/video/karnov.c
+++ b/src/mame/video/karnov.c
@@ -124,12 +124,11 @@ static void draw_background( running_machine &machine, bitmap_ind16 &bitmap, con
/******************************************************************************/
-SCREEN_UPDATE_IND16( karnov )
+UINT32 karnov_state::screen_update_karnov(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- karnov_state *state = screen.machine().driver_data<karnov_state>();
draw_background(screen.machine(), bitmap, cliprect);
- screen.machine().device<deco_karnovsprites_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram->buffer(), 0x800, 0);
- state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
+ screen.machine().device<deco_karnovsprites_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram->buffer(), 0x800, 0);
+ m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/kchamp.c b/src/mame/video/kchamp.c
index 2f3a73b8793..b6f0e4b23e3 100644
--- a/src/mame/video/kchamp.c
+++ b/src/mame/video/kchamp.c
@@ -124,20 +124,18 @@ static void kchampvs_draw_sprites( running_machine &machine, bitmap_ind16 &bitma
}
-SCREEN_UPDATE_IND16( kchamp )
+UINT32 kchamp_state::screen_update_kchamp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- kchamp_state *state = screen.machine().driver_data<kchamp_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
kchamp_draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
-SCREEN_UPDATE_IND16( kchampvs )
+UINT32 kchamp_state::screen_update_kchampvs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- kchamp_state *state = screen.machine().driver_data<kchamp_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
kchampvs_draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/kickgoal.c b/src/mame/video/kickgoal.c
index a5f69ddfe8a..4145e000156 100644
--- a/src/mame/video/kickgoal.c
+++ b/src/mame/video/kickgoal.c
@@ -160,25 +160,24 @@ VIDEO_START_MEMBER(kickgoal_state,actionhw)
-SCREEN_UPDATE_IND16( kickgoal )
+UINT32 kickgoal_state::screen_update_kickgoal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- kickgoal_state *state = screen.machine().driver_data<kickgoal_state>();
/* set scroll */
- state->m_fgtm->set_scrollx(0, state->m_scrram[0]);
- state->m_fgtm->set_scrolly(0, state->m_scrram[1]);
- state->m_bgtm->set_scrollx(0, state->m_scrram[2]);
- state->m_bgtm->set_scrolly(0, state->m_scrram[3]);
- state->m_bg2tm->set_scrollx(0, state->m_scrram[4]);
- state->m_bg2tm->set_scrolly(0, state->m_scrram[5]);
+ m_fgtm->set_scrollx(0, m_scrram[0]);
+ m_fgtm->set_scrolly(0, m_scrram[1]);
+ m_bgtm->set_scrollx(0, m_scrram[2]);
+ m_bgtm->set_scrolly(0, m_scrram[3]);
+ m_bg2tm->set_scrollx(0, m_scrram[4]);
+ m_bg2tm->set_scrolly(0, m_scrram[5]);
/* draw */
- state->m_bg2tm->draw(bitmap, cliprect, 0, 0);
- state->m_bgtm->draw(bitmap, cliprect, 0, 0);
+ m_bg2tm->draw(bitmap, cliprect, 0, 0);
+ m_bgtm->draw(bitmap, cliprect, 0, 0);
kickgoal_draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fgtm->draw(bitmap, cliprect, 0, 0);
+ m_fgtm->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/kingobox.c b/src/mame/video/kingobox.c
index 3cadd555456..6fc27ca2202 100644
--- a/src/mame/video/kingobox.c
+++ b/src/mame/video/kingobox.c
@@ -240,14 +240,13 @@ static void kingofb_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,
}
}
-SCREEN_UPDATE_IND16( kingofb )
+UINT32 kingofb_state::screen_update_kingofb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- kingofb_state *state = screen.machine().driver_data<kingofb_state>();
- state->m_bg_tilemap->set_scrolly(0, -(*state->m_scroll_y));
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->set_scrolly(0, -(*m_scroll_y));
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
kingofb_draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -300,13 +299,12 @@ static void ringking_draw_sprites( running_machine &machine, bitmap_ind16 &bitma
}
}
-SCREEN_UPDATE_IND16( ringking )
+UINT32 kingofb_state::screen_update_ringking(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- kingofb_state *state = screen.machine().driver_data<kingofb_state>();
- state->m_bg_tilemap->set_scrolly(0, -(*state->m_scroll_y));
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->set_scrolly(0, -(*m_scroll_y));
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
ringking_draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/klax.c b/src/mame/video/klax.c
index 72627b1455b..c1d134b774c 100644
--- a/src/mame/video/klax.c
+++ b/src/mame/video/klax.c
@@ -99,15 +99,14 @@ WRITE16_HANDLER( klax_latch_w )
*
*************************************/
-SCREEN_UPDATE_IND16( klax )
+UINT32 klax_state::screen_update_klax(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- klax_state *state = screen.machine().driver_data<klax_state>();
atarimo_rect_list rectlist;
bitmap_ind16 *mobitmap;
int x, y, r;
/* draw the playfield */
- state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
/* draw and merge the MO */
mobitmap = atarimo_render(0, cliprect, &rectlist);
diff --git a/src/mame/video/kncljoe.c b/src/mame/video/kncljoe.c
index d5922ba6515..9a6d2d67ce7 100644
--- a/src/mame/video/kncljoe.c
+++ b/src/mame/video/kncljoe.c
@@ -234,11 +234,10 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( kncljoe )
+UINT32 kncljoe_state::screen_update_kncljoe(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- kncljoe_state *state = screen.machine().driver_data<kncljoe_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/konamigx.c b/src/mame/video/konamigx.c
index 3b1be296883..407a2d82aa2 100644
--- a/src/mame/video/konamigx.c
+++ b/src/mame/video/konamigx.c
@@ -2370,7 +2370,7 @@ VIDEO_START_MEMBER(konamigx_state,racinfrc)
}
-SCREEN_UPDATE_RGB32(konamigx)
+UINT32 konamigx_state::screen_update_konamigx(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
int i, newbank, newbase, dirty, unchained;
@@ -2495,10 +2495,9 @@ SCREEN_UPDATE_RGB32(konamigx)
return 0;
}
-SCREEN_UPDATE_RGB32(konamigx_left)
+UINT32 konamigx_state::screen_update_konamigx_left(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
/* the video gets demuxed by a board which plugs into the jamma connector */
- konamigx_state *state = screen.machine().driver_data<konamigx_state>();
konamigx_current_frame^=1;
if (konamigx_current_frame==1)
@@ -2509,7 +2508,7 @@ SCREEN_UPDATE_RGB32(konamigx_left)
{
for (offset=0;offset<0x4000/4;offset++)
{
- UINT32 coldat = state->m_generic_paletteram_32[offset];
+ UINT32 coldat = m_generic_paletteram_32[offset];
set_color_555(screen.machine(), offset*2, 0, 5, 10,coldat >> 16);
set_color_555(screen.machine(), offset*2+1, 0, 5, 10,coldat & 0xffff);
@@ -2521,15 +2520,15 @@ SCREEN_UPDATE_RGB32(konamigx_left)
{
int r,g,b;
- r = (state->m_generic_paletteram_32[offset] >>16) & 0xff;
- g = (state->m_generic_paletteram_32[offset] >> 8) & 0xff;
- b = (state->m_generic_paletteram_32[offset] >> 0) & 0xff;
+ r = (m_generic_paletteram_32[offset] >>16) & 0xff;
+ g = (m_generic_paletteram_32[offset] >> 8) & 0xff;
+ b = (m_generic_paletteram_32[offset] >> 0) & 0xff;
palette_set_color(screen.machine(),offset,MAKE_RGB(r,g,b));
}
}
- SCREEN_UPDATE_NAME(konamigx)(NULL, screen, downcast<bitmap_rgb32 &>(*dualscreen_left_tempbitmap), cliprect);
+ screen_update_konamigx( screen, downcast<bitmap_rgb32 &>(*dualscreen_left_tempbitmap), cliprect);
copybitmap(bitmap, *dualscreen_left_tempbitmap, 0, 0, 0, 0, cliprect);
}
else
@@ -2540,9 +2539,8 @@ SCREEN_UPDATE_RGB32(konamigx_left)
return 0;
}
-SCREEN_UPDATE_RGB32(konamigx_right)
+UINT32 konamigx_state::screen_update_konamigx_right(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- konamigx_state *state = screen.machine().driver_data<konamigx_state>();
if (konamigx_current_frame==1)
{
@@ -2557,7 +2555,7 @@ SCREEN_UPDATE_RGB32(konamigx_right)
{
for (offset=0;offset<0x4000/4;offset++)
{
- UINT32 coldat = state->m_subpaletteram32[offset];
+ UINT32 coldat = m_subpaletteram32[offset];
set_color_555(screen.machine(), offset*2, 0, 5, 10,coldat >> 16);
set_color_555(screen.machine(), offset*2+1, 0, 5, 10,coldat & 0xffff);
@@ -2569,15 +2567,15 @@ SCREEN_UPDATE_RGB32(konamigx_right)
{
int r,g,b;
- r = (state->m_subpaletteram32[offset] >>16) & 0xff;
- g = (state->m_subpaletteram32[offset] >> 8) & 0xff;
- b = (state->m_subpaletteram32[offset] >> 0) & 0xff;
+ r = (m_subpaletteram32[offset] >>16) & 0xff;
+ g = (m_subpaletteram32[offset] >> 8) & 0xff;
+ b = (m_subpaletteram32[offset] >> 0) & 0xff;
palette_set_color(screen.machine(),offset,MAKE_RGB(r,g,b));
}
}
- SCREEN_UPDATE_NAME(konamigx)(NULL, screen, downcast<bitmap_rgb32 &>(*dualscreen_right_tempbitmap), cliprect);
+ screen_update_konamigx(screen, downcast<bitmap_rgb32 &>(*dualscreen_right_tempbitmap), cliprect);
copybitmap(bitmap, *dualscreen_right_tempbitmap, 0, 0, 0, 0, cliprect);
}
diff --git a/src/mame/video/kopunch.c b/src/mame/video/kopunch.c
index 235e5ef3170..5b9515966dc 100644
--- a/src/mame/video/kopunch.c
+++ b/src/mame/video/kopunch.c
@@ -90,12 +90,11 @@ void kopunch_state::video_start()
m_bg_tilemap->set_scrolldx(16, 16);
}
-SCREEN_UPDATE_IND16( kopunch )
+UINT32 kopunch_state::screen_update_kopunch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- kopunch_state *state = screen.machine().driver_data<kopunch_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/ksayakyu.c b/src/mame/video/ksayakyu.c
index 3cd5c8658ec..65eb2893346 100644
--- a/src/mame/video/ksayakyu.c
+++ b/src/mame/video/ksayakyu.c
@@ -120,16 +120,15 @@ void ksayakyu_state::video_start()
m_textmap->set_transparent_pen(0);
}
-SCREEN_UPDATE_IND16(ksayakyu)
+UINT32 ksayakyu_state::screen_update_ksayakyu(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ksayakyu_state *state = screen.machine().driver_data<ksayakyu_state>();
bitmap.fill(0, cliprect);
- if (state->m_video_ctrl & 1)
- state->m_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (m_video_ctrl & 1)
+ m_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_textmap->draw(bitmap, cliprect, 0, 0);
+ m_textmap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/kyugo.c b/src/mame/video/kyugo.c
index cbdb7e552d9..dda41eddc6a 100644
--- a/src/mame/video/kyugo.c
+++ b/src/mame/video/kyugo.c
@@ -209,19 +209,18 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
-SCREEN_UPDATE_IND16( kyugo )
+UINT32 kyugo_state::screen_update_kyugo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- kyugo_state *state = screen.machine().driver_data<kyugo_state>();
- if (state->m_flipscreen)
- state->m_bg_tilemap->set_scrollx(0, -(state->m_scroll_x_lo + (state->m_scroll_x_hi * 256)));
+ if (m_flipscreen)
+ m_bg_tilemap->set_scrollx(0, -(m_scroll_x_lo + (m_scroll_x_hi * 256)));
else
- state->m_bg_tilemap->set_scrollx(0, state->m_scroll_x_lo + (state->m_scroll_x_hi * 256));
+ m_bg_tilemap->set_scrollx(0, m_scroll_x_lo + (m_scroll_x_hi * 256));
- state->m_bg_tilemap->set_scrolly(0, state->m_scroll_y);
+ m_bg_tilemap->set_scrolly(0, m_scroll_y);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/labyrunr.c b/src/mame/video/labyrunr.c
index 1b1c3857f5b..a02f8b7deae 100644
--- a/src/mame/video/labyrunr.c
+++ b/src/mame/video/labyrunr.c
@@ -176,11 +176,10 @@ WRITE8_MEMBER(labyrunr_state::labyrunr_vram2_w)
***************************************************************************/
-SCREEN_UPDATE_IND16( labyrunr )
+UINT32 labyrunr_state::screen_update_labyrunr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- labyrunr_state *state = screen.machine().driver_data<labyrunr_state>();
address_space &space = screen.machine().driver_data()->generic_space();
- UINT8 ctrl_0 = k007121_ctrlram_r(state->m_k007121, space, 0);
+ UINT8 ctrl_0 = k007121_ctrlram_r(m_k007121, space, 0);
rectangle finalclip0, finalclip1;
set_pens(screen.machine());
@@ -188,32 +187,32 @@ SCREEN_UPDATE_IND16( labyrunr )
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- if (~k007121_ctrlram_r(state->m_k007121, space, 3) & 0x20)
+ if (~k007121_ctrlram_r(m_k007121, space, 3) & 0x20)
{
int i;
- finalclip0 = state->m_clip0;
- finalclip1 = state->m_clip1;
+ finalclip0 = m_clip0;
+ finalclip1 = m_clip1;
finalclip0 &= cliprect;
finalclip1 &= cliprect;
- state->m_layer0->set_scrollx(0, ctrl_0 - 40);
- state->m_layer1->set_scrollx(0, 0);
+ m_layer0->set_scrollx(0, ctrl_0 - 40);
+ m_layer1->set_scrollx(0, 0);
for(i = 0; i < 32; i++)
{
/* enable colscroll */
- if((k007121_ctrlram_r(state->m_k007121, space, 1) & 6) == 6) // it's probably just one bit, but it's only used once in the game so I don't know which it's
- state->m_layer0->set_scrolly((i + 2) & 0x1f, k007121_ctrlram_r(state->m_k007121, space, 2) + state->m_scrollram[i]);
+ if((k007121_ctrlram_r(m_k007121, space, 1) & 6) == 6) // it's probably just one bit, but it's only used once in the game so I don't know which it's
+ m_layer0->set_scrolly((i + 2) & 0x1f, k007121_ctrlram_r(m_k007121, space, 2) + m_scrollram[i]);
else
- state->m_layer0->set_scrolly((i + 2) & 0x1f, k007121_ctrlram_r(state->m_k007121, space, 2));
+ m_layer0->set_scrolly((i + 2) & 0x1f, k007121_ctrlram_r(m_k007121, space, 2));
}
- state->m_layer0->draw(bitmap, finalclip0, TILEMAP_DRAW_OPAQUE, 0);
- k007121_sprites_draw(state->m_k007121, bitmap, cliprect, screen.machine().gfx[0], screen.machine().colortable, state->m_spriteram,(k007121_ctrlram_r(state->m_k007121, space, 6) & 0x30) * 2, 40,0,(k007121_ctrlram_r(state->m_k007121, space, 3) & 0x40) >> 5);
+ m_layer0->draw(bitmap, finalclip0, TILEMAP_DRAW_OPAQUE, 0);
+ k007121_sprites_draw(m_k007121, bitmap, cliprect, screen.machine().gfx[0], screen.machine().colortable, m_spriteram,(k007121_ctrlram_r(m_k007121, space, 6) & 0x30) * 2, 40,0,(k007121_ctrlram_r(m_k007121, space, 3) & 0x40) >> 5);
/* we ignore the transparency because layer1 is drawn only at the top of the screen also covering sprites */
- state->m_layer1->draw(bitmap, finalclip1, TILEMAP_DRAW_OPAQUE, 0);
+ m_layer1->draw(bitmap, finalclip1, TILEMAP_DRAW_OPAQUE, 0);
}
else
{
@@ -224,7 +223,7 @@ SCREEN_UPDATE_IND16( labyrunr )
finalclip0.min_y = finalclip1.min_y = cliprect.min_y;
finalclip0.max_y = finalclip1.max_y = cliprect.max_y;
- if(k007121_ctrlram_r(state->m_k007121, space, 1) & 1)
+ if(k007121_ctrlram_r(m_k007121, space, 1) & 1)
{
finalclip0.min_x = cliprect.max_x - ctrl_0 + 8;
finalclip0.max_x = cliprect.max_x;
@@ -270,18 +269,18 @@ SCREEN_UPDATE_IND16( labyrunr )
finalclip3.max_x = 40 - ctrl_0 - 8;
}
- state->m_layer0->set_scrollx(0, ctrl_0 - 40);
- state->m_layer1->set_scrollx(0, ctrl_0 - 40);
+ m_layer0->set_scrollx(0, ctrl_0 - 40);
+ m_layer1->set_scrollx(0, ctrl_0 - 40);
- state->m_layer0->draw(bitmap, finalclip0, 0, 1);
+ m_layer0->draw(bitmap, finalclip0, 0, 1);
if(use_clip3[0])
- state->m_layer0->draw(bitmap, finalclip3, 0, 1);
+ m_layer0->draw(bitmap, finalclip3, 0, 1);
- state->m_layer1->draw(bitmap, finalclip1, 0, 1);
+ m_layer1->draw(bitmap, finalclip1, 0, 1);
if(use_clip3[1])
- state->m_layer1->draw(bitmap, finalclip3, 0, 1);
+ m_layer1->draw(bitmap, finalclip3, 0, 1);
- k007121_sprites_draw(state->m_k007121, bitmap, cliprect, screen.machine().gfx[0], screen.machine().colortable, state->m_spriteram, (k007121_ctrlram_r(state->m_k007121, space, 6) & 0x30) * 2,40,0,(k007121_ctrlram_r(state->m_k007121, space, 3) & 0x40) >> 5);
+ k007121_sprites_draw(m_k007121, bitmap, cliprect, screen.machine().gfx[0], screen.machine().colortable, m_spriteram, (k007121_ctrlram_r(m_k007121, space, 6) & 0x30) * 2,40,0,(k007121_ctrlram_r(m_k007121, space, 3) & 0x40) >> 5);
}
return 0;
}
diff --git a/src/mame/video/ladybug.c b/src/mame/video/ladybug.c
index 33878895fbf..1d8bf73e888 100644
--- a/src/mame/video/ladybug.c
+++ b/src/mame/video/ladybug.c
@@ -278,9 +278,8 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( ladybug )
+UINT32 ladybug_state::screen_update_ladybug(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ladybug_state *state = screen.machine().driver_data<ladybug_state>();
int offs;
// clear the bg bitmap
@@ -291,27 +290,26 @@ SCREEN_UPDATE_IND16( ladybug )
int sx = offs % 4;
int sy = offs / 4;
- if (state->flip_screen())
- state->m_bg_tilemap->set_scrollx(offs, -state->m_videoram[32 * sx + sy]);
+ if (flip_screen())
+ m_bg_tilemap->set_scrollx(offs, -m_videoram[32 * sx + sy]);
else
- state->m_bg_tilemap->set_scrollx(offs, state->m_videoram[32 * sx + sy]);
+ m_bg_tilemap->set_scrollx(offs, m_videoram[32 * sx + sy]);
}
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
-SCREEN_VBLANK( sraider ) /* update starfield position */
+void ladybug_state::screen_eof_sraider(screen_device &screen, bool state)/* update starfield position */
{
// falling edge
- if (!vblank_on)
+ if (!state)
redclash_update_stars_state(screen.machine());
}
-SCREEN_UPDATE_IND16( sraider )
+UINT32 ladybug_state::screen_update_sraider(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ladybug_state *state = screen.machine().driver_data<ladybug_state>();
// this part is boilerplate from ladybug, not sure if hardware does this,
// since it's not used
@@ -324,35 +322,35 @@ SCREEN_UPDATE_IND16( sraider )
int sx = offs % 4;
int sy = offs / 4;
- if (state->flip_screen())
- state->m_bg_tilemap->set_scrollx(offs, -state->m_videoram[32 * sx + sy]);
+ if (flip_screen())
+ m_bg_tilemap->set_scrollx(offs, -m_videoram[32 * sx + sy]);
else
- state->m_bg_tilemap->set_scrollx(offs, state->m_videoram[32 * sx + sy]);
+ m_bg_tilemap->set_scrollx(offs, m_videoram[32 * sx + sy]);
}
// clear the bg bitmap
bitmap.fill(0, cliprect);
// draw the stars
- if (state->flip_screen())
+ if (flip_screen())
redclash_draw_stars(screen.machine(), bitmap, cliprect, 0x60, 1, 0x27, 0xff);
else
redclash_draw_stars(screen.machine(), bitmap, cliprect, 0x60, 1, 0x00, 0xd8);
// draw the gridlines
- colortable_palette_set_color(screen.machine().colortable, 0x40, MAKE_RGB(state->m_grid_color & 0x40 ? 0xff : 0,
- state->m_grid_color & 0x20 ? 0xff : 0,
- state->m_grid_color & 0x10 ? 0xff : 0));
- state->m_grid_tilemap->draw(bitmap, cliprect, 0, state->flip_screen());
+ colortable_palette_set_color(screen.machine().colortable, 0x40, MAKE_RGB(m_grid_color & 0x40 ? 0xff : 0,
+ m_grid_color & 0x20 ? 0xff : 0,
+ m_grid_color & 0x10 ? 0xff : 0));
+ m_grid_tilemap->draw(bitmap, cliprect, 0, flip_screen());
for (i = 0; i < 0x100; i++)
{
- if (state->m_grid_data[i] != 0)
+ if (m_grid_data[i] != 0)
{
UINT8 x = i;
int height = cliprect.max_y - cliprect.min_y + 1;
- if (state->flip_screen())
+ if (flip_screen())
x = ~x;
bitmap.plot_box(x, cliprect.min_y, 1, height, 0x81);
@@ -360,7 +358,7 @@ SCREEN_UPDATE_IND16( sraider )
}
// now the chars
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, state->flip_screen());
+ m_bg_tilemap->draw(bitmap, cliprect, 0, flip_screen());
// now the sprites
draw_sprites(screen.machine(), bitmap, cliprect);
diff --git a/src/mame/video/ladyfrog.c b/src/mame/video/ladyfrog.c
index ff8e279d7c5..0bf49c4f50b 100644
--- a/src/mame/video/ladyfrog.c
+++ b/src/mame/video/ladyfrog.c
@@ -157,11 +157,10 @@ VIDEO_START_MEMBER(ladyfrog_state,toucheme)
}
-SCREEN_UPDATE_IND16( ladyfrog )
+UINT32 ladyfrog_state::screen_update_ladyfrog(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ladyfrog_state *state = screen.machine().driver_data<ladyfrog_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/lasso.c b/src/mame/video/lasso.c
index 879fa0d0cc5..f6dcf34c18e 100644
--- a/src/mame/video/lasso.c
+++ b/src/mame/video/lasso.c
@@ -359,48 +359,45 @@ static void draw_lasso( running_machine &machine, bitmap_ind16 &bitmap, const re
}
-SCREEN_UPDATE_IND16( lasso )
+UINT32 lasso_state::screen_update_lasso(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- lasso_state *state = screen.machine().driver_data<lasso_state>();
- palette_set_color(screen.machine(), 0, get_color(*state->m_back_color));
+ palette_set_color(screen.machine(), 0, get_color(*m_back_color));
bitmap.fill(0, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_lasso(screen.machine(), bitmap, cliprect);
draw_sprites(screen.machine(), bitmap, cliprect, 0);
return 0;
}
-SCREEN_UPDATE_IND16( chameleo )
+UINT32 lasso_state::screen_update_chameleo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- lasso_state *state = screen.machine().driver_data<lasso_state>();
- palette_set_color(screen.machine(), 0, get_color(*state->m_back_color));
+ palette_set_color(screen.machine(), 0, get_color(*m_back_color));
bitmap.fill(0, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 0);
return 0;
}
-SCREEN_UPDATE_IND16( wwjgtin )
+UINT32 lasso_state::screen_update_wwjgtin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- lasso_state *state = screen.machine().driver_data<lasso_state>();
- colortable_palette_set_color(screen.machine().colortable, 0, get_color(*state->m_back_color));
+ colortable_palette_set_color(screen.machine().colortable, 0, get_color(*m_back_color));
wwjgtin_set_last_four_colors(screen.machine(), screen.machine().colortable);
- state->m_track_tilemap->set_scrollx(0, state->m_track_scroll[0] + state->m_track_scroll[1] * 256);
- state->m_track_tilemap->set_scrolly(0, state->m_track_scroll[2] + state->m_track_scroll[3] * 256);
+ m_track_tilemap->set_scrollx(0, m_track_scroll[0] + m_track_scroll[1] * 256);
+ m_track_tilemap->set_scrolly(0, m_track_scroll[2] + m_track_scroll[3] * 256);
- if (state->m_track_enable)
- state->m_track_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (m_track_enable)
+ m_track_tilemap->draw(bitmap, cliprect, 0, 0);
else
bitmap.fill(get_black_pen(screen.machine()), cliprect);
draw_sprites(screen.machine(), bitmap, cliprect, 1); // reverse order
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/lastduel.c b/src/mame/video/lastduel.c
index 63675170351..7af80556dbd 100644
--- a/src/mame/video/lastduel.c
+++ b/src/mame/video/lastduel.c
@@ -255,39 +255,37 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( lastduel )
+UINT32 lastduel_state::screen_update_lastduel(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- lastduel_state *state = screen.machine().driver_data<lastduel_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 1);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( madgear )
+UINT32 lastduel_state::screen_update_madgear(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- lastduel_state *state = screen.machine().driver_data<lastduel_state>();
- if (state->m_tilemap_priority)
+ if (m_tilemap_priority)
{
- state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | TILEMAP_DRAW_OPAQUE, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | TILEMAP_DRAW_OPAQUE, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 1);
}
else
{
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 1);
}
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/lazercmd.c b/src/mame/video/lazercmd.c
index 34b2cf6738b..c9e99c5fe7d 100644
--- a/src/mame/video/lazercmd.c
+++ b/src/mame/video/lazercmd.c
@@ -50,9 +50,8 @@ static void plot_pattern( running_machine &machine, bitmap_ind16 &bitmap, int x,
}
-SCREEN_UPDATE_IND16( lazercmd )
+UINT32 lazercmd_state::screen_update_lazercmd(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- lazercmd_state *state = screen.machine().driver_data<lazercmd_state>();
int i, x, y;
int video_inverted = screen.machine().root_device().ioport("DSW")->read() & 0x20;
@@ -69,13 +68,13 @@ SCREEN_UPDATE_IND16( lazercmd )
sy *= VERT_CHR;
drawgfx_opaque(bitmap, cliprect,screen.machine().gfx[0],
- state->m_videoram[i], video_inverted ? 1 : 0,
+ m_videoram[i], video_inverted ? 1 : 0,
0,0,
sx,sy);
}
- x = state->m_marker_x - 1; /* normal video lags marker by 1 pixel */
- y = vert_scale(state->m_marker_y) - VERT_CHR; /* first line used as scratch pad */
+ x = m_marker_x - 1; /* normal video lags marker by 1 pixel */
+ y = vert_scale(m_marker_y) - VERT_CHR; /* first line used as scratch pad */
plot_pattern(screen.machine(), bitmap, x, y);
return 0;
diff --git a/src/mame/video/legionna.c b/src/mame/video/legionna.c
index 6c596913bcd..4ae69d68374 100644
--- a/src/mame/video/legionna.c
+++ b/src/mame/video/legionna.c
@@ -409,28 +409,27 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re
#define LAYER_DB 0
-SCREEN_UPDATE_IND16( legionna )
+UINT32 legionna_state::screen_update_legionna(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- legionna_state *state = screen.machine().driver_data<legionna_state>();
/* Setup the tilemaps */
- state->m_background_layer->set_scrollx(0, state->m_scrollram16[0] );
- state->m_background_layer->set_scrolly(0, state->m_scrollram16[1] );
- state->m_midground_layer->set_scrollx(0, state->m_scrollram16[2] );
- state->m_midground_layer->set_scrolly(0, state->m_scrollram16[3] );
- state->m_foreground_layer->set_scrollx(0, state->m_scrollram16[4] );
- state->m_foreground_layer->set_scrolly(0, state->m_scrollram16[5] );
- state->m_text_layer->set_scrollx(0, 0/*state->m_scrollram16[6]*/ );
- state->m_text_layer->set_scrolly(0, 0/*state->m_scrollram16[7]*/ );
+ m_background_layer->set_scrollx(0, m_scrollram16[0] );
+ m_background_layer->set_scrolly(0, m_scrollram16[1] );
+ m_midground_layer->set_scrollx(0, m_scrollram16[2] );
+ m_midground_layer->set_scrolly(0, m_scrollram16[3] );
+ m_foreground_layer->set_scrollx(0, m_scrollram16[4] );
+ m_foreground_layer->set_scrolly(0, m_scrollram16[5] );
+ m_text_layer->set_scrollx(0, 0/*m_scrollram16[6]*/ );
+ m_text_layer->set_scrolly(0, 0/*m_scrollram16[7]*/ );
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(get_black_pen(screen.machine()), cliprect); /* wrong color? */
- /* state->m_layer_disable is a guess based on 'stage 1' screen in heatbrl */
+ /* m_layer_disable is a guess based on 'stage 1' screen in heatbrl */
- if (!(state->m_layer_disable&0x0020)) state->m_foreground_layer->draw(bitmap, cliprect, 0, 0);
- if (!(state->m_layer_disable&0x0010)) state->m_midground_layer->draw(bitmap, cliprect, 0, 0);
- if (!(state->m_layer_disable&0x0002)) state->m_background_layer->draw(bitmap, cliprect, 0, 1);
- if (!(state->m_layer_disable&0x0001)) state->m_text_layer->draw(bitmap, cliprect, 0, 2);
+ if (!(m_layer_disable&0x0020)) m_foreground_layer->draw(bitmap, cliprect, 0, 0);
+ if (!(m_layer_disable&0x0010)) m_midground_layer->draw(bitmap, cliprect, 0, 0);
+ if (!(m_layer_disable&0x0002)) m_background_layer->draw(bitmap, cliprect, 0, 1);
+ if (!(m_layer_disable&0x0001)) m_text_layer->draw(bitmap, cliprect, 0, 2);
draw_sprites(screen.machine(),bitmap,cliprect);
@@ -439,62 +438,60 @@ SCREEN_UPDATE_IND16( legionna )
}
-SCREEN_UPDATE_IND16( godzilla )
+UINT32 legionna_state::screen_update_godzilla(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- legionna_state *state = screen.machine().driver_data<legionna_state>();
-// state->m_text_layer->set_scrollx(0, 0 );
-// state->m_text_layer->set_scrolly(0, 112 );
+// m_text_layer->set_scrollx(0, 0 );
+// m_text_layer->set_scrolly(0, 112 );
/* Setup the tilemaps */
- state->m_background_layer->set_scrollx(0, state->m_scrollram16[0] );
- state->m_background_layer->set_scrolly(0, state->m_scrollram16[1] );
- state->m_midground_layer->set_scrollx(0, state->m_scrollram16[2] );
- state->m_midground_layer->set_scrolly(0, state->m_scrollram16[3] );
- state->m_foreground_layer->set_scrollx(0, state->m_scrollram16[4] );
- state->m_foreground_layer->set_scrolly(0, state->m_scrollram16[5] );
- state->m_text_layer->set_scrollx(0, 0/*state->m_scrollram16[6]*/ );
- state->m_text_layer->set_scrolly(0, 0/*state->m_scrollram16[7]*/ );
+ m_background_layer->set_scrollx(0, m_scrollram16[0] );
+ m_background_layer->set_scrolly(0, m_scrollram16[1] );
+ m_midground_layer->set_scrollx(0, m_scrollram16[2] );
+ m_midground_layer->set_scrolly(0, m_scrollram16[3] );
+ m_foreground_layer->set_scrollx(0, m_scrollram16[4] );
+ m_foreground_layer->set_scrolly(0, m_scrollram16[5] );
+ m_text_layer->set_scrollx(0, 0/*m_scrollram16[6]*/ );
+ m_text_layer->set_scrolly(0, 0/*m_scrollram16[7]*/ );
bitmap.fill(0x0200, cliprect);
screen.machine().priority_bitmap.fill(0, cliprect);
- if (!(state->m_layer_disable&0x0001)) state->m_background_layer->draw(bitmap, cliprect, 0,0);
- if (!(state->m_layer_disable&0x0002)) state->m_midground_layer->draw(bitmap, cliprect, 0,0);
- if (!(state->m_layer_disable&0x0004)) state->m_foreground_layer->draw(bitmap, cliprect, 0,1);
- if (!(state->m_layer_disable&0x0008)) state->m_text_layer->draw(bitmap, cliprect, 0,2);
+ if (!(m_layer_disable&0x0001)) m_background_layer->draw(bitmap, cliprect, 0,0);
+ if (!(m_layer_disable&0x0002)) m_midground_layer->draw(bitmap, cliprect, 0,0);
+ if (!(m_layer_disable&0x0004)) m_foreground_layer->draw(bitmap, cliprect, 0,1);
+ if (!(m_layer_disable&0x0008)) m_text_layer->draw(bitmap, cliprect, 0,2);
draw_sprites(screen.machine(),bitmap,cliprect);
return 0;
}
-SCREEN_UPDATE_IND16( grainbow )
+UINT32 legionna_state::screen_update_grainbow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- legionna_state *state = screen.machine().driver_data<legionna_state>();
/* Setup the tilemaps */
- state->m_background_layer->set_scrollx(0, state->m_scrollram16[0] );
- state->m_background_layer->set_scrolly(0, state->m_scrollram16[1] );
- state->m_midground_layer->set_scrollx(0, state->m_scrollram16[2] );
- state->m_midground_layer->set_scrolly(0, state->m_scrollram16[3] );
- state->m_foreground_layer->set_scrollx(0, state->m_scrollram16[4] );
- state->m_foreground_layer->set_scrolly(0, state->m_scrollram16[5] );
- state->m_text_layer->set_scrollx(0, 0/*state->m_scrollram16[6]*/ );
- state->m_text_layer->set_scrolly(0, 0/*state->m_scrollram16[7]*/ );
+ m_background_layer->set_scrollx(0, m_scrollram16[0] );
+ m_background_layer->set_scrolly(0, m_scrollram16[1] );
+ m_midground_layer->set_scrollx(0, m_scrollram16[2] );
+ m_midground_layer->set_scrolly(0, m_scrollram16[3] );
+ m_foreground_layer->set_scrollx(0, m_scrollram16[4] );
+ m_foreground_layer->set_scrolly(0, m_scrollram16[5] );
+ m_text_layer->set_scrollx(0, 0/*m_scrollram16[6]*/ );
+ m_text_layer->set_scrolly(0, 0/*m_scrollram16[7]*/ );
bitmap.fill(get_black_pen(screen.machine()), cliprect);
screen.machine().priority_bitmap.fill(0, cliprect);
- if(!(state->m_layer_disable & 1))
- state->m_background_layer->draw(bitmap, cliprect, 0,1);
+ if(!(m_layer_disable & 1))
+ m_background_layer->draw(bitmap, cliprect, 0,1);
- if(!(state->m_layer_disable & 2))
- state->m_midground_layer->draw(bitmap, cliprect, 0,2);
+ if(!(m_layer_disable & 2))
+ m_midground_layer->draw(bitmap, cliprect, 0,2);
- if(!(state->m_layer_disable & 4))
- state->m_foreground_layer->draw(bitmap, cliprect, 0,4);
+ if(!(m_layer_disable & 4))
+ m_foreground_layer->draw(bitmap, cliprect, 0,4);
- if(!(state->m_layer_disable & 8))
- state->m_text_layer->draw(bitmap, cliprect, 0,8);
+ if(!(m_layer_disable & 8))
+ m_text_layer->draw(bitmap, cliprect, 0,8);
draw_sprites(screen.machine(),bitmap,cliprect);
diff --git a/src/mame/video/leland.c b/src/mame/video/leland.c
index 9dd2336843d..122902926d6 100644
--- a/src/mame/video/leland.c
+++ b/src/mame/video/leland.c
@@ -385,16 +385,15 @@ READ8_MEMBER(leland_state::ataxx_svram_port_r)
*
*************************************/
-static SCREEN_UPDATE_IND16( leland )
+UINT32 leland_state::screen_update_leland(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- leland_state *state = screen.machine().driver_data<leland_state>();
int y;
const UINT8 *bg_prom = screen.machine().root_device().memregion("user1")->base();
const UINT8 *bg_gfx = screen.machine().root_device().memregion("gfx1")->base();
- offs_t bg_gfx_bank_page_size = state->memregion("gfx1")->bytes() / 3;
- offs_t char_bank = (((state->m_gfxbank >> 4) & 0x03) * 0x2000) & (bg_gfx_bank_page_size - 1);
- offs_t prom_bank = ((state->m_gfxbank >> 3) & 0x01) * 0x2000;
+ offs_t bg_gfx_bank_page_size = memregion("gfx1")->bytes() / 3;
+ offs_t char_bank = (((m_gfxbank >> 4) & 0x03) * 0x2000) & (bg_gfx_bank_page_size - 1);
+ offs_t prom_bank = ((m_gfxbank >> 3) & 0x01) * 0x2000;
/* for each scanline in the visible region */
for (y = cliprect.min_y; y <= cliprect.max_y; y++)
@@ -403,14 +402,14 @@ static SCREEN_UPDATE_IND16( leland )
UINT8 fg_data = 0;
UINT16 *dst = &bitmap.pix16(y);
- UINT8 *fg_src = &state->m_video_ram[y << 8];
+ UINT8 *fg_src = &m_video_ram[y << 8];
/* for each pixel on the scanline */
for (x = 0; x < VIDEO_WIDTH; x++)
{
/* compute the effective scrolled pixel coordinates */
- UINT16 sx = (x + state->m_xscroll) & 0x07ff;
- UINT16 sy = (y + state->m_yscroll) & 0x07ff;
+ UINT16 sx = (x + m_xscroll) & 0x07ff;
+ UINT16 sy = (y + m_yscroll) & 0x07ff;
/* get the byte address this background pixel comes from */
offs_t bg_prom_offs = (sx >> 3) |
@@ -454,13 +453,12 @@ static SCREEN_UPDATE_IND16( leland )
*
*************************************/
-static SCREEN_UPDATE_IND16( ataxx )
+UINT32 leland_state::screen_update_ataxx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- leland_state *state = screen.machine().driver_data<leland_state>();
int y;
const UINT8 *bg_gfx = screen.machine().root_device().memregion("gfx1")->base();
- offs_t bg_gfx_bank_page_size = state->memregion("gfx1")->bytes() / 6;
+ offs_t bg_gfx_bank_page_size = memregion("gfx1")->bytes() / 6;
offs_t bg_gfx_offs_mask = bg_gfx_bank_page_size - 1;
/* for each scanline in the visible region */
@@ -470,14 +468,14 @@ static SCREEN_UPDATE_IND16( ataxx )
UINT8 fg_data = 0;
UINT16 *dst = &bitmap.pix16(y);
- UINT8 *fg_src = &state->m_video_ram[y << 8];
+ UINT8 *fg_src = &m_video_ram[y << 8];
/* for each pixel on the scanline */
for (x = 0; x < VIDEO_WIDTH; x++)
{
/* compute the effective scrolled pixel coordinates */
- UINT16 sx = (x + state->m_xscroll) & 0x07ff;
- UINT16 sy = (y + state->m_yscroll) & 0x07ff;
+ UINT16 sx = (x + m_xscroll) & 0x07ff;
+ UINT16 sy = (y + m_yscroll) & 0x07ff;
/* get the byte address this background pixel comes from */
offs_t qram_offs = (sx >> 3) |
@@ -485,8 +483,8 @@ static SCREEN_UPDATE_IND16( ataxx )
((sy << 6) & 0x8000);
offs_t bg_gfx_offs = ((sy & 0x07) |
- (state->m_ataxx_qram[qram_offs] << 3) |
- ((state->m_ataxx_qram[0x4000 | qram_offs] & 0x7f) << 11)) & bg_gfx_offs_mask;
+ (m_ataxx_qram[qram_offs] << 3) |
+ ((m_ataxx_qram[0x4000 | qram_offs] & 0x7f) << 11)) & bg_gfx_offs_mask;
/* build the pen, background is d0-d5 */
pen_t pen = (((bg_gfx[bg_gfx_offs + (0 * bg_gfx_bank_page_size)] << (sx & 0x07)) & 0x80) >> 7) | /* d0 */
@@ -531,12 +529,12 @@ MACHINE_CONFIG_FRAGMENT( leland_video )
MCFG_SCREEN_SIZE(40*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 40*8-1, 0*8, 30*8-1)
MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_UPDATE_STATIC(leland)
+ MCFG_SCREEN_UPDATE_DRIVER(leland_state, screen_update_leland)
MACHINE_CONFIG_END
MACHINE_CONFIG_DERIVED( ataxx_video, leland_video )
MCFG_VIDEO_START_OVERRIDE(leland_state,ataxx)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(ataxx)
+ MCFG_SCREEN_UPDATE_DRIVER(leland_state, screen_update_ataxx)
MACHINE_CONFIG_END
diff --git a/src/mame/video/lemmings.c b/src/mame/video/lemmings.c
index 9fd6e5349cd..01a801c9a09 100644
--- a/src/mame/video/lemmings.c
+++ b/src/mame/video/lemmings.c
@@ -47,14 +47,13 @@ void lemmings_state::video_start()
save_item(NAME(m_sprite_triple_buffer_1));
}
-SCREEN_VBLANK( lemmings )
+void lemmings_state::screen_eof_lemmings(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- lemmings_state *state = screen.machine().driver_data<lemmings_state>();
- memcpy(state->m_sprite_triple_buffer_0, state->m_spriteram->buffer(), 0x800);
- memcpy(state->m_sprite_triple_buffer_1, state->m_spriteram2->buffer(), 0x800);
+ memcpy(m_sprite_triple_buffer_0, m_spriteram->buffer(), 0x800);
+ memcpy(m_sprite_triple_buffer_1, m_spriteram2->buffer(), 0x800);
}
}
@@ -128,41 +127,40 @@ void lemmings_copy_bitmap(running_machine &machine, bitmap_rgb32& bitmap, bitmap
}
}
-SCREEN_UPDATE_RGB32( lemmings )
+UINT32 lemmings_state::screen_update_lemmings(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- lemmings_state *state = screen.machine().driver_data<lemmings_state>();
- int x1 = -state->m_control_data[0];
- int x0 = -state->m_control_data[2];
+ int x1 = -m_control_data[0];
+ int x0 = -m_control_data[2];
int y = 0;
rectangle rect;
rect.max_y = cliprect.max_y;
rect.min_y = cliprect.min_y;
- screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_sprite_triple_buffer_1, 0x400, true);
- screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, state->m_sprite_triple_buffer_0, 0x400, true);
+ screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_sprite_triple_buffer_1, 0x400, true);
+ screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, m_sprite_triple_buffer_0, 0x400, true);
bitmap.fill(get_black_pen(screen.machine()), cliprect);
screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 0x300, 0xff);
/* Pixel layer can be windowed in hardware (two player mode) */
- if ((state->m_control_data[6] & 2) == 0)
+ if ((m_control_data[6] & 2) == 0)
{
- lemmings_copy_bitmap(screen.machine(), bitmap, state->m_bitmap0, &x1, &y, cliprect);
+ lemmings_copy_bitmap(screen.machine(), bitmap, m_bitmap0, &x1, &y, cliprect);
}
else
{
rect.max_x = 159;
rect.min_x = 0;
- lemmings_copy_bitmap(screen.machine(), bitmap, state->m_bitmap0, &x0, &y, rect);
+ lemmings_copy_bitmap(screen.machine(), bitmap, m_bitmap0, &x0, &y, rect);
rect.max_x = 319;
rect.min_x = 160;
- lemmings_copy_bitmap(screen.machine(), bitmap, state->m_bitmap0, &x1, &y, rect);
+ lemmings_copy_bitmap(screen.machine(), bitmap, m_bitmap0, &x1, &y, rect);
}
screen.machine().device<decospr_device>("spritegen2")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0800, 0x0800, 0x200, 0xff);
screen.machine().device<decospr_device>("spritegen")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0800, 0x300, 0xff);
- state->m_vram_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_vram_tilemap->draw(bitmap, cliprect, 0, 0);
screen.machine().device<decospr_device>("spritegen2")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0800, 0x200, 0xff);
return 0;
}
diff --git a/src/mame/video/lethal.c b/src/mame/video/lethal.c
index 94728e70afc..fb5b36adf48 100644
--- a/src/mame/video/lethal.c
+++ b/src/mame/video/lethal.c
@@ -100,21 +100,20 @@ WRITE8_MEMBER(lethal_state::lethalen_palette_control)
}
}
-SCREEN_UPDATE_IND16(lethalen)
+UINT32 lethal_state::screen_update_lethalen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- lethal_state *state = screen.machine().driver_data<lethal_state>();
bitmap.fill(7168, cliprect);
screen.machine().priority_bitmap.fill(0, cliprect);
- k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, 3, K056832_DRAW_FLAG_MIRROR, 1);
- k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, 2, K056832_DRAW_FLAG_MIRROR, 2);
- k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, 1, K056832_DRAW_FLAG_MIRROR, 4);
+ k056832_tilemap_draw(m_k056832, bitmap, cliprect, 3, K056832_DRAW_FLAG_MIRROR, 1);
+ k056832_tilemap_draw(m_k056832, bitmap, cliprect, 2, K056832_DRAW_FLAG_MIRROR, 2);
+ k056832_tilemap_draw(m_k056832, bitmap, cliprect, 1, K056832_DRAW_FLAG_MIRROR, 4);
- k053245_sprites_draw_lethal(state->m_k053244, bitmap, cliprect);
+ k053245_sprites_draw_lethal(m_k053244, bitmap, cliprect);
// force "A" layer over top of everything
- k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, 0, K056832_DRAW_FLAG_MIRROR, 0);
+ k056832_tilemap_draw(m_k056832, bitmap, cliprect, 0, K056832_DRAW_FLAG_MIRROR, 0);
return 0;
}
diff --git a/src/mame/video/liberate.c b/src/mame/video/liberate.c
index 6f2b86ac68e..22bd68bd9a1 100644
--- a/src/mame/video/liberate.c
+++ b/src/mame/video/liberate.c
@@ -499,28 +499,26 @@ static void prosoccr_draw_sprites( running_machine &machine, bitmap_ind16 &bitma
/***************************************************************************/
-SCREEN_UPDATE_IND16( prosoccr )
+UINT32 liberate_state::screen_update_prosoccr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- liberate_state *state = screen.machine().driver_data<liberate_state>();
- state->m_back_tilemap->set_scrolly(0, state->m_io_ram[1]);
- state->m_back_tilemap->set_scrollx(0, -state->m_io_ram[0]);
+ m_back_tilemap->set_scrolly(0, m_io_ram[1]);
+ m_back_tilemap->set_scrollx(0, -m_io_ram[0]);
- if (state->m_background_disable)
+ if (m_background_disable)
bitmap.fill(32, cliprect);
else
- state->m_back_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_back_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
prosoccr_draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
-SCREEN_UPDATE_IND16( prosport )
+UINT32 liberate_state::screen_update_prosport(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- liberate_state *state = screen.machine().driver_data<liberate_state>();
- UINT8 *videoram = state->m_videoram;
- UINT8 *colorram = state->m_colorram;
+ UINT8 *videoram = m_videoram;
+ UINT8 *colorram = m_colorram;
int mx, my, tile, offs, gfx_region;
int scrollx, scrolly;
@@ -528,13 +526,13 @@ SCREEN_UPDATE_IND16( prosport )
offs = 0;
/* TODO: what's bits 0 and 2 for? Internal scrolling state? */
- scrolly = ((state->m_io_ram[0] & 0x8) << 5);
- scrollx = ((state->m_io_ram[0] & 0x2) << 7) | (state->m_io_ram[1]);
+ scrolly = ((m_io_ram[0] & 0x8) << 5);
+ scrollx = ((m_io_ram[0] & 0x2) << 7) | (m_io_ram[1]);
- state->m_back_tilemap->set_scrolly(0, scrolly);
- state->m_back_tilemap->set_scrollx(0, -scrollx);
+ m_back_tilemap->set_scrolly(0, scrolly);
+ m_back_tilemap->set_scrollx(0, -scrollx);
- state->m_back_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_back_tilemap->draw(bitmap, cliprect, 0, 0);
// popmessage("%d %02x %02x %02x %02x %02x %02x %02x %02x",scrollx,deco16_io_ram[0],deco16_io_ram[1],deco16_io_ram[2],deco16_io_ram[3]
// ,deco16_io_ram[4],deco16_io_ram[5],deco16_io_ram[6],deco16_io_ram[7]);
@@ -543,10 +541,10 @@ SCREEN_UPDATE_IND16( prosport )
{
tile = videoram[offs] + ((colorram[offs] & 0x3) << 8);
- if(state->m_io_ram[0] & 0x40) //dynamic ram-based gfxs for Pro Golf
+ if(m_io_ram[0] & 0x40) //dynamic ram-based gfxs for Pro Golf
gfx_region = 3;
else
- gfx_region = ((state->m_io_ram[0] & 0x30) >> 4);
+ gfx_region = ((m_io_ram[0] & 0x30) >> 4);
my = (offs) % 32;
mx = (offs) / 32;
@@ -560,38 +558,36 @@ SCREEN_UPDATE_IND16( prosport )
return 0;
}
-SCREEN_UPDATE_IND16( boomrang )
+UINT32 liberate_state::screen_update_boomrang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- liberate_state *state = screen.machine().driver_data<liberate_state>();
- state->m_back_tilemap->set_scrolly(0, state->m_io_ram[1]);
- state->m_back_tilemap->set_scrollx(0, -state->m_io_ram[0]);
+ m_back_tilemap->set_scrolly(0, m_io_ram[1]);
+ m_back_tilemap->set_scrollx(0, -m_io_ram[0]);
- if (state->m_background_disable)
+ if (m_background_disable)
bitmap.fill(32, cliprect);
else
- state->m_back_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
+ m_back_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
boomrang_draw_sprites(screen.machine(),bitmap,cliprect,8);
- if (!state->m_background_disable)
- state->m_back_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
+ if (!m_background_disable)
+ m_back_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
boomrang_draw_sprites(screen.machine(), bitmap, cliprect, 0);
- state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( liberate )
+UINT32 liberate_state::screen_update_liberate(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- liberate_state *state = screen.machine().driver_data<liberate_state>();
- state->m_back_tilemap->set_scrolly(0, state->m_io_ram[1]);
- state->m_back_tilemap->set_scrollx(0, -state->m_io_ram[0]);
+ m_back_tilemap->set_scrolly(0, m_io_ram[1]);
+ m_back_tilemap->set_scrollx(0, -m_io_ram[0]);
- if (state->m_background_disable)
+ if (m_background_disable)
bitmap.fill(32, cliprect);
else
- state->m_back_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_back_tilemap->draw(bitmap, cliprect, 0, 0);
liberate_draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fix_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/lkage.c b/src/mame/video/lkage.c
index ae31d2251b7..a0af65a4a0f 100644
--- a/src/mame/video/lkage.c
+++ b/src/mame/video/lkage.c
@@ -167,60 +167,59 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( lkage )
+UINT32 lkage_state::screen_update_lkage(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- lkage_state *state = screen.machine().driver_data<lkage_state>();
int bank;
- state->flip_screen_x_set(~state->m_vreg[2] & 0x01);
- state->flip_screen_y_set(~state->m_vreg[2] & 0x02);
+ flip_screen_x_set(~m_vreg[2] & 0x01);
+ flip_screen_y_set(~m_vreg[2] & 0x02);
- bank = state->m_vreg[1] & 0x08;
+ bank = m_vreg[1] & 0x08;
- if (state->m_bg_tile_bank != bank)
+ if (m_bg_tile_bank != bank)
{
- state->m_bg_tile_bank = bank;
- state->m_bg_tilemap->mark_all_dirty();
+ m_bg_tile_bank = bank;
+ m_bg_tilemap->mark_all_dirty();
}
- bank = state->m_vreg[0]&0x04;
- if (state->m_fg_tile_bank != bank)
+ bank = m_vreg[0]&0x04;
+ if (m_fg_tile_bank != bank)
{
- state->m_fg_tile_bank = bank;
- state->m_fg_tilemap->mark_all_dirty();
+ m_fg_tile_bank = bank;
+ m_fg_tilemap->mark_all_dirty();
}
- bank = state->m_vreg[0]&0x02;
- if (state->m_tx_tile_bank != bank)
+ bank = m_vreg[0]&0x02;
+ if (m_tx_tile_bank != bank)
{
- state->m_tx_tile_bank = bank;
- state->m_tx_tilemap->mark_all_dirty();
+ m_tx_tile_bank = bank;
+ m_tx_tilemap->mark_all_dirty();
}
- state->m_bg_tilemap->set_palette_offset(0x300 + (state->m_vreg[1] & 0xf0));
- state->m_fg_tilemap->set_palette_offset(0x200 + (state->m_vreg[1] & 0xf0));
- state->m_tx_tilemap->set_palette_offset(0x110);
+ m_bg_tilemap->set_palette_offset(0x300 + (m_vreg[1] & 0xf0));
+ m_fg_tilemap->set_palette_offset(0x200 + (m_vreg[1] & 0xf0));
+ m_tx_tilemap->set_palette_offset(0x110);
- state->m_tx_tilemap->set_scrollx(0, state->m_scroll[0]);
- state->m_tx_tilemap->set_scrolly(0, state->m_scroll[1]);
+ m_tx_tilemap->set_scrollx(0, m_scroll[0]);
+ m_tx_tilemap->set_scrolly(0, m_scroll[1]);
- state->m_fg_tilemap->set_scrollx(0, state->m_scroll[2]);
- state->m_fg_tilemap->set_scrolly(0, state->m_scroll[3]);
+ m_fg_tilemap->set_scrollx(0, m_scroll[2]);
+ m_fg_tilemap->set_scrolly(0, m_scroll[3]);
- state->m_bg_tilemap->set_scrollx(0, state->m_scroll[4]);
- state->m_bg_tilemap->set_scrolly(0, state->m_scroll[5]);
+ m_bg_tilemap->set_scrollx(0, m_scroll[4]);
+ m_bg_tilemap->set_scrolly(0, m_scroll[5]);
screen.machine().priority_bitmap.fill(0, cliprect);
- if ((state->m_vreg[2] & 0xf0) == 0xf0)
+ if ((m_vreg[2] & 0xf0) == 0xf0)
{
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, (state->m_vreg[1] & 2) ? 2 : 4);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, (m_vreg[1] & 2) ? 2 : 4);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
draw_sprites(screen.machine(), bitmap, cliprect);
}
else
{
- state->m_tx_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ m_tx_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
}
return 0;
diff --git a/src/mame/video/lockon.c b/src/mame/video/lockon.c
index e59dce1febf..cfe26d55002 100644
--- a/src/mame/video/lockon.c
+++ b/src/mame/video/lockon.c
@@ -920,12 +920,11 @@ void lockon_state::video_start()
save_pointer(NAME(m_obj_pal_ram), 2048);
}
-SCREEN_UPDATE_IND16( lockon )
+UINT32 lockon_state::screen_update_lockon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- lockon_state *state = screen.machine().driver_data<lockon_state>();
/* If screen output is disabled, fill with black */
- if (!BIT(state->m_ctrl_reg, 7))
+ if (!BIT(m_ctrl_reg, 7))
{
bitmap.fill(get_black_pen(screen.machine()), cliprect);
return 0;
@@ -935,7 +934,7 @@ SCREEN_UPDATE_IND16( lockon )
rotate_draw(screen.machine(), bitmap, cliprect);
/* Draw the character tilemap */
- state->m_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tilemap->draw(bitmap, cliprect, 0, 0);
/* Draw the HUD */
hud_draw(screen.machine(), bitmap, cliprect);
@@ -943,17 +942,16 @@ SCREEN_UPDATE_IND16( lockon )
return 0;
}
-SCREEN_VBLANK( lockon )
+void lockon_state::screen_eof_lockon(screen_device &screen, bool state)
{
// on falling edge
- if (!vblank_on)
+ if (!state)
{
- lockon_state *state = screen.machine().driver_data<lockon_state>();
/* Swap the frame buffers */
- bitmap_ind16 *tmp = state->m_front_buffer;
- state->m_front_buffer = state->m_back_buffer;
- state->m_back_buffer = tmp;
+ bitmap_ind16 *tmp = m_front_buffer;
+ m_front_buffer = m_back_buffer;
+ m_back_buffer = tmp;
/* Draw the frame buffer layers */
scene_draw(screen.machine());
diff --git a/src/mame/video/lordgun.c b/src/mame/video/lordgun.c
index 8c77ac898d9..d849b7eba71 100644
--- a/src/mame/video/lordgun.c
+++ b/src/mame/video/lordgun.c
@@ -317,9 +317,8 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
***************************************************************************/
-SCREEN_UPDATE_IND16( lordgun )
+UINT32 lordgun_state::screen_update_lordgun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- lordgun_state *state = screen.machine().driver_data<lordgun_state>();
int layers_ctrl = -1;
#ifdef MAME_DEBUG
@@ -336,7 +335,7 @@ SCREEN_UPDATE_IND16( lordgun )
}
#endif
- if (state->m_whitescreen)
+ if (m_whitescreen)
{
bitmap.fill(get_white_pen(screen.machine()), cliprect);
return 0;
@@ -346,18 +345,18 @@ SCREEN_UPDATE_IND16( lordgun )
int x, y;
- state->m_tilemap[0]->set_scrollx(0, *state->m_scroll_x[0] );
- state->m_tilemap[0]->set_scrolly(0, *state->m_scroll_y[0] );
+ m_tilemap[0]->set_scrollx(0, *m_scroll_x[0] );
+ m_tilemap[0]->set_scrolly(0, *m_scroll_y[0] );
for (y = 0; y < 0x200; y++)
- state->m_tilemap[1]->set_scrollx(y, (*state->m_scroll_x[1]) + state->m_scrollram[y * 4/2 + 2/2]);
- state->m_tilemap[1]->set_scrolly(0, *state->m_scroll_y[1] );
+ m_tilemap[1]->set_scrollx(y, (*m_scroll_x[1]) + m_scrollram[y * 4/2 + 2/2]);
+ m_tilemap[1]->set_scrolly(0, *m_scroll_y[1] );
- state->m_tilemap[2]->set_scrollx(0, *state->m_scroll_x[2] );
- state->m_tilemap[2]->set_scrolly(0, *state->m_scroll_y[2] );
+ m_tilemap[2]->set_scrollx(0, *m_scroll_x[2] );
+ m_tilemap[2]->set_scrolly(0, *m_scroll_y[2] );
- state->m_tilemap[3]->set_scrollx(0, *state->m_scroll_x[3] );
- state->m_tilemap[3]->set_scrolly(0, *state->m_scroll_y[3] );
+ m_tilemap[3]->set_scrollx(0, *m_scroll_x[3] );
+ m_tilemap[3]->set_scrolly(0, *m_scroll_y[3] );
// Rendering:
@@ -368,13 +367,13 @@ SCREEN_UPDATE_IND16( lordgun )
int l;
for (l = 0; l < 5; l++)
- state->m_bitmaps[l]->fill(trans_pen, cliprect);
+ m_bitmaps[l]->fill(trans_pen, cliprect);
- if (layers_ctrl & 1) state->m_tilemap[0]->draw(*state->m_bitmaps[0], cliprect, 0, 0);
- if (layers_ctrl & 2) state->m_tilemap[1]->draw(*state->m_bitmaps[1], cliprect, 0, 0);
- if (layers_ctrl & 4) state->m_tilemap[2]->draw(*state->m_bitmaps[2], cliprect, 0, 0);
- if (layers_ctrl & 8) state->m_tilemap[3]->draw(*state->m_bitmaps[3], cliprect, 0, 0);
- if (layers_ctrl & 16) draw_sprites(screen.machine(), *state->m_bitmaps[4], cliprect);
+ if (layers_ctrl & 1) m_tilemap[0]->draw(*m_bitmaps[0], cliprect, 0, 0);
+ if (layers_ctrl & 2) m_tilemap[1]->draw(*m_bitmaps[1], cliprect, 0, 0);
+ if (layers_ctrl & 4) m_tilemap[2]->draw(*m_bitmaps[2], cliprect, 0, 0);
+ if (layers_ctrl & 8) m_tilemap[3]->draw(*m_bitmaps[3], cliprect, 0, 0);
+ if (layers_ctrl & 16) draw_sprites(screen.machine(), *m_bitmaps[4], cliprect);
// copy to screen bitmap
@@ -394,7 +393,7 @@ SCREEN_UPDATE_IND16( lordgun )
// bits 0-4: layer transparency
for (l = 0; l < 5; l++)
{
- pens[l] = state->m_bitmaps[l]->pix16(y, x);
+ pens[l] = m_bitmaps[l]->pix16(y, x);
if (pens[l] == trans_pen)
pri_addr |= 1 << layer2bit[l];
}
@@ -410,7 +409,7 @@ SCREEN_UPDATE_IND16( lordgun )
pri_addr &= 0x7fff;
- l = pri2layer[state->m_priority_ram[pri_addr] & 7];
+ l = pri2layer[m_priority_ram[pri_addr] & 7];
bitmap.pix16(y, x) = pens[l];
}
diff --git a/src/mame/video/lsasquad.c b/src/mame/video/lsasquad.c
index d3df914b5a8..c875b95b584 100644
--- a/src/mame/video/lsasquad.c
+++ b/src/mame/video/lsasquad.c
@@ -198,20 +198,19 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( lsasquad )
+UINT32 lsasquad_state::screen_update_lsasquad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- lsasquad_state *state = screen.machine().driver_data<lsasquad_state>();
bitmap.fill(511, cliprect);
- draw_layer(screen.machine(), bitmap, cliprect, state->m_scrollram + 0x000);
- draw_layer(screen.machine(), bitmap, cliprect, state->m_scrollram + 0x080);
+ draw_layer(screen.machine(), bitmap, cliprect, m_scrollram + 0x000);
+ draw_layer(screen.machine(), bitmap, cliprect, m_scrollram + 0x080);
draw_sprites(screen.machine(), bitmap, cliprect);
- draw_layer(screen.machine(), bitmap, cliprect, state->m_scrollram + 0x100);
+ draw_layer(screen.machine(), bitmap, cliprect, m_scrollram + 0x100);
return 0;
}
-SCREEN_UPDATE_IND16( daikaiju )
+UINT32 lsasquad_state::screen_update_daikaiju(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(511, cliprect);
drawbg(screen.machine(), bitmap, cliprect, 0); // bottom
diff --git a/src/mame/video/lucky74.c b/src/mame/video/lucky74.c
index a104cafcd2e..8ab8fd521c9 100644
--- a/src/mame/video/lucky74.c
+++ b/src/mame/video/lucky74.c
@@ -235,11 +235,10 @@ void lucky74_state::video_start()
m_fg_tilemap->set_transparent_pen(0);
}
-SCREEN_UPDATE_IND16( lucky74 )
+UINT32 lucky74_state::screen_update_lucky74(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- lucky74_state *state = screen.machine().driver_data<lucky74_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/lvcards.c b/src/mame/video/lvcards.c
index be4eb04c730..fa51eba9b70 100644
--- a/src/mame/video/lvcards.c
+++ b/src/mame/video/lvcards.c
@@ -110,9 +110,8 @@ void lvcards_state::video_start()
8, 8, 32, 32);
}
-SCREEN_UPDATE_IND16( lvcards )
+UINT32 lvcards_state::screen_update_lvcards(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- lvcards_state *state = screen.machine().driver_data<lvcards_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/lwings.c b/src/mame/video/lwings.c
index 41cb67839fb..a8045206b88 100644
--- a/src/mame/video/lwings.c
+++ b/src/mame/video/lwings.c
@@ -257,24 +257,22 @@ static void trojan_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap,
}
}
-SCREEN_UPDATE_IND16( lwings )
+UINT32 lwings_state::screen_update_lwings(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- lwings_state *state = screen.machine().driver_data<lwings_state>();
- state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
lwings_draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( trojan )
+UINT32 lwings_state::screen_update_trojan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- lwings_state *state = screen.machine().driver_data<lwings_state>();
- state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
+ m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
trojan_draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/m10.c b/src/mame/video/m10.c
index f96cd1d6891..4eed90ddda5 100644
--- a/src/mame/video/m10.c
+++ b/src/mame/video/m10.c
@@ -130,9 +130,8 @@ VIDEO_START_MEMBER(m10_state,m15)
***************************************************************************/
-SCREEN_UPDATE_IND16( m10 )
+UINT32 m10_state::screen_update_m10(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- m10_state *state = screen.machine().driver_data<m10_state>();
int offs;
static const int color[4]= { 3, 3, 5, 5 };
static const int xpos[4] = { 4*8, 26*8, 7*8, 6*8};
@@ -141,12 +140,12 @@ SCREEN_UPDATE_IND16( m10 )
bitmap.fill(0, cliprect);
for (i = 0; i < 4; i++)
- if (state->m_flip)
- drawgfx_opaque(bitmap, cliprect, state->m_back_gfx, i, color[i], 1, 1, 31 * 8 - xpos[i], 6);
+ if (m_flip)
+ drawgfx_opaque(bitmap, cliprect, m_back_gfx, i, color[i], 1, 1, 31 * 8 - xpos[i], 6);
else
- drawgfx_opaque(bitmap, cliprect, state->m_back_gfx, i, color[i], 0, 0, xpos[i], 0);
+ drawgfx_opaque(bitmap, cliprect, m_back_gfx, i, color[i], 0, 0, xpos[i], 0);
- if (state->m_bottomline)
+ if (m_bottomline)
{
int y;
@@ -154,11 +153,11 @@ SCREEN_UPDATE_IND16( m10 )
plot_pixel_m10(screen.machine(), bitmap, 16, y, 1);
}
- for (offs = state->m_videoram.bytes() - 1; offs >= 0; offs--)
- state->m_tx_tilemap->mark_tile_dirty(offs);
+ for (offs = m_videoram.bytes() - 1; offs >= 0; offs--)
+ m_tx_tilemap->mark_tile_dirty(offs);
- state->m_tx_tilemap->set_flip(state->m_flip ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tx_tilemap->set_flip(m_flip ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -170,17 +169,16 @@ SCREEN_UPDATE_IND16( m10 )
***************************************************************************/
-SCREEN_UPDATE_IND16( m15 )
+UINT32 m10_state::screen_update_m15(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- m10_state *state = screen.machine().driver_data<m10_state>();
int offs;
- for (offs = state->m_videoram.bytes() - 1; offs >= 0; offs--)
- state->m_tx_tilemap->mark_tile_dirty(offs);
+ for (offs = m_videoram.bytes() - 1; offs >= 0; offs--)
+ m_tx_tilemap->mark_tile_dirty(offs);
- //state->m_tx_tilemap->mark_all_dirty();
- state->m_tx_tilemap->set_flip(state->m_flip ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ //m_tx_tilemap->mark_all_dirty();
+ m_tx_tilemap->set_flip(m_flip ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/m107.c b/src/mame/video/m107.c
index 196454dcdec..6a566225650 100644
--- a/src/mame/video/m107.c
+++ b/src/mame/video/m107.c
@@ -380,7 +380,7 @@ WRITE16_MEMBER(m107_state::m107_spritebuffer_w)
/*****************************************************************************/
-SCREEN_UPDATE_IND16( m107 )
+UINT32 m107_state::screen_update_m107(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
m107_update_scroll_positions(screen.machine());
m107_screenrefresh(screen.machine(), bitmap, cliprect);
diff --git a/src/mame/video/m52.c b/src/mame/video/m52.c
index b34f5a7934b..c4a49795470 100644
--- a/src/mame/video/m52.c
+++ b/src/mame/video/m52.c
@@ -351,38 +351,37 @@ static void draw_background(running_machine &machine, bitmap_ind16 &bitmap, cons
*
*************************************/
-SCREEN_UPDATE_IND16( m52 )
+UINT32 m52_state::screen_update_m52(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- m52_state *state = screen.machine().driver_data<m52_state>();
int offs;
bitmap.fill(0, cliprect);
- if (!(state->m_bgcontrol & 0x20))
+ if (!(m_bgcontrol & 0x20))
{
- if (!(state->m_bgcontrol & 0x10))
- draw_background(screen.machine(), bitmap, cliprect, state->m_bg2xpos, state->m_bg2ypos, 2); /* distant mountains */
+ if (!(m_bgcontrol & 0x10))
+ draw_background(screen.machine(), bitmap, cliprect, m_bg2xpos, m_bg2ypos, 2); /* distant mountains */
- if (!(state->m_bgcontrol & 0x02))
- draw_background(screen.machine(), bitmap, cliprect, state->m_bg1xpos, state->m_bg1ypos, 3); /* hills */
+ if (!(m_bgcontrol & 0x02))
+ draw_background(screen.machine(), bitmap, cliprect, m_bg1xpos, m_bg1ypos, 3); /* hills */
- if (!(state->m_bgcontrol & 0x04))
- draw_background(screen.machine(), bitmap, cliprect, state->m_bg1xpos, state->m_bg1ypos, 4); /* cityscape */
+ if (!(m_bgcontrol & 0x04))
+ draw_background(screen.machine(), bitmap, cliprect, m_bg1xpos, m_bg1ypos, 4); /* cityscape */
}
- state->m_bg_tilemap->set_flip(state->flip_screen() ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
+ m_bg_tilemap->set_flip(flip_screen() ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
/* draw the sprites */
for (offs = 0xfc; offs >= 0; offs -= 4)
{
- int sy = 257 - state->m_spriteram[offs];
- int color = state->m_spriteram[offs + 1] & 0x3f;
- int flipx = state->m_spriteram[offs + 1] & 0x40;
- int flipy = state->m_spriteram[offs + 1] & 0x80;
- int code = state->m_spriteram[offs + 2];
- int sx = state->m_spriteram[offs + 3];
+ int sy = 257 - m_spriteram[offs];
+ int color = m_spriteram[offs + 1] & 0x3f;
+ int flipx = m_spriteram[offs + 1] & 0x40;
+ int flipy = m_spriteram[offs + 1] & 0x80;
+ int code = m_spriteram[offs + 2];
+ int sx = m_spriteram[offs + 3];
rectangle clip;
/* sprites from offsets $00-$7F are processed in the upper half of the frame */
@@ -394,7 +393,7 @@ SCREEN_UPDATE_IND16( m52 )
clip.min_y = 128, clip.max_y = 255;
/* adjust for flipping */
- if (state->flip_screen())
+ if (flip_screen())
{
int temp = clip.min_y;
clip.min_y = 255 - clip.max_y;
diff --git a/src/mame/video/m57.c b/src/mame/video/m57.c
index 52592c4005d..a98e15f9df0 100644
--- a/src/mame/video/m57.c
+++ b/src/mame/video/m57.c
@@ -264,7 +264,7 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
*
*************************************/
-SCREEN_UPDATE_IND16( m57 )
+UINT32 m57_state::screen_update_m57(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
draw_background(screen.machine(), bitmap, cliprect);
draw_sprites(screen.machine(), bitmap, cliprect);
diff --git a/src/mame/video/m58.c b/src/mame/video/m58.c
index 68c407193e4..0146a792b1b 100644
--- a/src/mame/video/m58.c
+++ b/src/mame/video/m58.c
@@ -300,14 +300,13 @@ static void draw_panel( running_machine &machine, bitmap_ind16 &bitmap, const re
*
*************************************/
-SCREEN_UPDATE_IND16( yard )
+UINT32 m58_state::screen_update_yard(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- m58_state *state = screen.machine().driver_data<m58_state>();
- state->m_bg_tilemap->set_scrollx(0, (*state->m_yard_scroll_x_high * 0x100) + *state->m_yard_scroll_x_low);
- state->m_bg_tilemap->set_scrolly(0, *state->m_yard_scroll_y_low);
+ m_bg_tilemap->set_scrollx(0, (*m_yard_scroll_x_high * 0x100) + *m_yard_scroll_x_low);
+ m_bg_tilemap->set_scrolly(0, *m_yard_scroll_y_low);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
draw_panel(screen.machine(), bitmap, cliprect);
return 0;
diff --git a/src/mame/video/m62.c b/src/mame/video/m62.c
index 4bfbf2ee347..316ea167af2 100644
--- a/src/mame/video/m62.c
+++ b/src/mame/video/m62.c
@@ -463,21 +463,20 @@ VIDEO_START_MEMBER(m62_state,kungfum)
m62_start(machine(), tilemap_get_info_delegate(FUNC(m62_state::get_kungfum_bg_tile_info),this), 32, 0, 8, 8, 64, 32);
}
-SCREEN_UPDATE_IND16( kungfum )
+UINT32 m62_state::screen_update_kungfum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- m62_state *state = screen.machine().driver_data<m62_state>();
int i;
for (i = 0; i < 6; i++)
{
- state->m_bg_tilemap->set_scrollx(i, 0);
+ m_bg_tilemap->set_scrollx(i, 0);
}
for (i = 6; i < 32; i++)
{
- state->m_bg_tilemap->set_scrollx(i, state->m_m62_background_hscroll);
+ m_bg_tilemap->set_scrollx(i, m_m62_background_hscroll);
}
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 0x1f, 0x00, 0x00);
- state->m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
return 0;
}
@@ -510,15 +509,14 @@ void m62_state::video_start()
m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */
}
-SCREEN_UPDATE_IND16( ldrun )
+UINT32 m62_state::screen_update_ldrun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- m62_state *state = screen.machine().driver_data<m62_state>();
- state->m_bg_tilemap->set_scrollx(0, state->m_m62_background_hscroll);
- state->m_bg_tilemap->set_scrolly(0, state->m_m62_background_vscroll);
+ m_bg_tilemap->set_scrollx(0, m_m62_background_hscroll);
+ m_bg_tilemap->set_scrolly(0, m_m62_background_vscroll);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 0x0f, 0x10, 0x00);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 0x0f, 0x10, 0x10);
return 0;
}
@@ -555,12 +553,11 @@ WRITE8_MEMBER(m62_state::ldrun3_topbottom_mask_w)
m_ldrun3_topbottom_mask = data & 1;
}
-SCREEN_UPDATE_IND16( ldrun3 )
+UINT32 m62_state::screen_update_ldrun3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- m62_state *state = screen.machine().driver_data<m62_state>();
- SCREEN_UPDATE16_CALL(ldrun);
+ SCREEN_UPDATE16_CALL_MEMBER(ldrun);
- if (state->m_ldrun3_topbottom_mask)
+ if (m_ldrun3_topbottom_mask)
{
rectangle my_cliprect = cliprect;
@@ -613,20 +610,19 @@ VIDEO_START_MEMBER(m62_state,battroad)
m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */
}
-SCREEN_UPDATE_IND16( battroad )
+UINT32 m62_state::screen_update_battroad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- m62_state *state = screen.machine().driver_data<m62_state>();
- state->m_bg_tilemap->set_scrollx(0, state->m_m62_background_hscroll);
- state->m_bg_tilemap->set_scrolly(0, state->m_m62_background_vscroll);
- state->m_fg_tilemap->set_scrollx(0, 128);
- state->m_fg_tilemap->set_scrolly(0, 0);
- state->m_fg_tilemap->set_transparent_pen(0);
+ m_bg_tilemap->set_scrollx(0, m_m62_background_hscroll);
+ m_bg_tilemap->set_scrolly(0, m_m62_background_vscroll);
+ m_fg_tilemap->set_scrollx(0, 128);
+ m_fg_tilemap->set_scrolly(0, 0);
+ m_fg_tilemap->set_transparent_pen(0);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 0x0f, 0x10, 0x00);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 0x0f, 0x10, 0x10);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -647,12 +643,11 @@ VIDEO_START_MEMBER(m62_state,ldrun4)
m62_start(machine(), tilemap_get_info_delegate(FUNC(m62_state::get_ldrun4_bg_tile_info),this), 1, 0, 8, 8, 64, 32);
}
-SCREEN_UPDATE_IND16( ldrun4 )
+UINT32 m62_state::screen_update_ldrun4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- m62_state *state = screen.machine().driver_data<m62_state>();
- state->m_bg_tilemap->set_scrollx(0, state->m_m62_background_hscroll - 2);
+ m_bg_tilemap->set_scrollx(0, m_m62_background_hscroll - 2);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 0x1f, 0x00, 0x00);
return 0;
}
@@ -688,17 +683,16 @@ VIDEO_START_MEMBER(m62_state,lotlot)
m62_textlayer(machine(), tilemap_get_info_delegate(FUNC(m62_state::get_lotlot_fg_tile_info),this), 1, 1, 12, 10, 32, 64);
}
-SCREEN_UPDATE_IND16( lotlot )
+UINT32 m62_state::screen_update_lotlot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- m62_state *state = screen.machine().driver_data<m62_state>();
- state->m_bg_tilemap->set_scrollx(0, state->m_m62_background_hscroll - 64);
- state->m_bg_tilemap->set_scrolly(0, state->m_m62_background_vscroll + 32);
- state->m_fg_tilemap->set_scrollx(0, -64);
- state->m_fg_tilemap->set_scrolly(0, 32);
- state->m_fg_tilemap->set_transparent_pen(0);
+ m_bg_tilemap->set_scrollx(0, m_m62_background_hscroll - 64);
+ m_bg_tilemap->set_scrolly(0, m_m62_background_vscroll + 32);
+ m_fg_tilemap->set_scrollx(0, -64);
+ m_fg_tilemap->set_scrolly(0, 32);
+ m_fg_tilemap->set_transparent_pen(0);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 0x1f, 0x00, 0x00);
return 0;
}
@@ -754,18 +748,17 @@ VIDEO_START_MEMBER(m62_state,kidniki)
m62_textlayer(machine(), tilemap_get_info_delegate(FUNC(m62_state::get_kidniki_fg_tile_info),this), 1, 1, 12, 8, 32, 64);
}
-SCREEN_UPDATE_IND16( kidniki )
+UINT32 m62_state::screen_update_kidniki(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- m62_state *state = screen.machine().driver_data<m62_state>();
- state->m_bg_tilemap->set_scrollx(0, state->m_m62_background_hscroll);
- state->m_fg_tilemap->set_scrollx(0, -64);
- state->m_fg_tilemap->set_scrolly(0, state->m_kidniki_text_vscroll + 128);
- state->m_fg_tilemap->set_transparent_pen(0);
+ m_bg_tilemap->set_scrollx(0, m_m62_background_hscroll);
+ m_fg_tilemap->set_scrollx(0, -64);
+ m_fg_tilemap->set_scrolly(0, m_kidniki_text_vscroll + 128);
+ m_fg_tilemap->set_transparent_pen(0);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 0x1f, 0x00, 0x00);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -805,18 +798,17 @@ VIDEO_START_MEMBER(m62_state,spelunkr)
m62_textlayer(machine(), tilemap_get_info_delegate(FUNC(m62_state::get_spelunkr_fg_tile_info),this), 1, 1, 12, 8, 32, 32);
}
-SCREEN_UPDATE_IND16( spelunkr )
+UINT32 m62_state::screen_update_spelunkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- m62_state *state = screen.machine().driver_data<m62_state>();
- state->m_bg_tilemap->set_scrollx(0, state->m_m62_background_hscroll);
- state->m_bg_tilemap->set_scrolly(0, state->m_m62_background_vscroll + 128);
- state->m_fg_tilemap->set_scrollx(0, -64);
- state->m_fg_tilemap->set_scrolly(0, 0);
- state->m_fg_tilemap->set_transparent_pen(0);
+ m_bg_tilemap->set_scrollx(0, m_m62_background_hscroll);
+ m_bg_tilemap->set_scrolly(0, m_m62_background_vscroll + 128);
+ m_fg_tilemap->set_scrollx(0, -64);
+ m_fg_tilemap->set_scrolly(0, 0);
+ m_fg_tilemap->set_transparent_pen(0);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 0x1f, 0x00, 0x00);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -848,18 +840,17 @@ VIDEO_START_MEMBER(m62_state,spelunk2)
m62_textlayer(machine(), tilemap_get_info_delegate(FUNC(m62_state::get_spelunkr_fg_tile_info),this), 1, 1, 12, 8, 32, 32);
}
-SCREEN_UPDATE_IND16( spelunk2 )
+UINT32 m62_state::screen_update_spelunk2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- m62_state *state = screen.machine().driver_data<m62_state>();
- state->m_bg_tilemap->set_scrollx(0, state->m_m62_background_hscroll - 1);
- state->m_bg_tilemap->set_scrolly(0, state->m_m62_background_vscroll + 128);
- state->m_fg_tilemap->set_scrollx(0, -65);
- state->m_fg_tilemap->set_scrolly(0, 0);
- state->m_fg_tilemap->set_transparent_pen(0);
+ m_bg_tilemap->set_scrollx(0, m_m62_background_hscroll - 1);
+ m_bg_tilemap->set_scrolly(0, m_m62_background_vscroll + 128);
+ m_fg_tilemap->set_scrollx(0, -65);
+ m_fg_tilemap->set_scrolly(0, 0);
+ m_fg_tilemap->set_transparent_pen(0);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 0x1f, 0x00, 0x00);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -894,18 +885,17 @@ VIDEO_START_MEMBER(m62_state,youjyudn)
m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */
}
-SCREEN_UPDATE_IND16( youjyudn )
+UINT32 m62_state::screen_update_youjyudn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- m62_state *state = screen.machine().driver_data<m62_state>();
- state->m_bg_tilemap->set_scrollx(0, state->m_m62_background_hscroll);
- state->m_fg_tilemap->set_scrollx(0, -64);
- state->m_fg_tilemap->set_scrolly(0, 0);
- state->m_fg_tilemap->set_transparent_pen(0);
+ m_bg_tilemap->set_scrollx(0, m_m62_background_hscroll);
+ m_fg_tilemap->set_scrollx(0, -64);
+ m_fg_tilemap->set_scrolly(0, 0);
+ m_fg_tilemap->set_transparent_pen(0);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 0x1f, 0x00, 0x00);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -936,16 +926,15 @@ VIDEO_START_MEMBER(m62_state,horizon)
m_bg_tilemap->set_transmask(1, 0x0001, 0xfffe); /* split type 1 has pen 0 transparent in front half */
}
-SCREEN_UPDATE_IND16( horizon )
+UINT32 m62_state::screen_update_horizon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- m62_state *state = screen.machine().driver_data<m62_state>();
int i;
for (i = 0; i < 32; i++)
{
- state->m_bg_tilemap->set_scrollx(i, state->m_scrollram[i << 1] | (state->m_scrollram[(i << 1) | 1] << 8));
+ m_bg_tilemap->set_scrollx(i, m_scrollram[i << 1] | (m_scrollram[(i << 1) | 1] << 8));
}
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 0x1f, 0x00, 0x00);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
return 0;
}
diff --git a/src/mame/video/m72.c b/src/mame/video/m72.c
index 9f6be566fae..642e1d9e50d 100644
--- a/src/mame/video/m72.c
+++ b/src/mame/video/m72.c
@@ -515,63 +515,61 @@ static void majtitle_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap
}
}
-SCREEN_UPDATE_IND16( m72 )
+UINT32 m72_state::screen_update_m72(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- m72_state *state = screen.machine().driver_data<m72_state>();
- if (state->m_video_off)
+ if (m_video_off)
{
bitmap.fill(get_black_pen(screen.machine()), cliprect);
return 0;
}
- state->m_fg_tilemap->set_scrollx(0,state->m_scrollx1);
- state->m_fg_tilemap->set_scrolly(0,state->m_scrolly1);
+ m_fg_tilemap->set_scrollx(0,m_scrollx1);
+ m_fg_tilemap->set_scrolly(0,m_scrolly1);
- state->m_bg_tilemap->set_scrollx(0,state->m_scrollx2);
- state->m_bg_tilemap->set_scrolly(0,state->m_scrolly2);
+ m_bg_tilemap->set_scrollx(0,m_scrollx2);
+ m_bg_tilemap->set_scrolly(0,m_scrolly2);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1,0);
- state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1,0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1,0);
+ m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1,0);
m72_draw_sprites(screen.machine(), bitmap,cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0,0);
- state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0,0);
+ m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0,0);
return 0;
}
-SCREEN_UPDATE_IND16( majtitle )
+UINT32 m72_state::screen_update_majtitle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- m72_state *state = screen.machine().driver_data<m72_state>();
int i;
- if (state->m_video_off)
+ if (m_video_off)
{
bitmap.fill(get_black_pen(screen.machine()), cliprect);
return 0;
}
- state->m_fg_tilemap->set_scrollx(0,state->m_scrollx1);
- state->m_fg_tilemap->set_scrolly(0,state->m_scrolly1);
+ m_fg_tilemap->set_scrollx(0,m_scrollx1);
+ m_fg_tilemap->set_scrolly(0,m_scrolly1);
- if (state->m_majtitle_rowscroll)
+ if (m_majtitle_rowscroll)
{
- state->m_bg_tilemap->set_scroll_rows(512);
+ m_bg_tilemap->set_scroll_rows(512);
for (i = 0;i < 512;i++)
- state->m_bg_tilemap->set_scrollx((i+state->m_scrolly2)&0x1ff,
- 256 + state->m_majtitle_rowscrollram[i]);
+ m_bg_tilemap->set_scrollx((i+m_scrolly2)&0x1ff,
+ 256 + m_majtitle_rowscrollram[i]);
}
else
{
- state->m_bg_tilemap->set_scroll_rows(1);
- state->m_bg_tilemap->set_scrollx(0,256 + state->m_scrollx2);
+ m_bg_tilemap->set_scroll_rows(1);
+ m_bg_tilemap->set_scrollx(0,256 + m_scrollx2);
}
- state->m_bg_tilemap->set_scrolly(0,state->m_scrolly2);
+ m_bg_tilemap->set_scrolly(0,m_scrolly2);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1,0);
- state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1,0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1,0);
+ m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1,0);
majtitle_draw_sprites(screen.machine(), bitmap,cliprect);
m72_draw_sprites(screen.machine(), bitmap,cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0,0);
- state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0,0);
+ m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0,0);
return 0;
}
diff --git a/src/mame/video/m90.c b/src/mame/video/m90.c
index 8f7f29af75f..a64e33a2fba 100644
--- a/src/mame/video/m90.c
+++ b/src/mame/video/m90.c
@@ -292,70 +292,69 @@ WRITE16_MEMBER(m90_state::m90_video_w)
markdirty(m_pf2_wide_layer,m_video_control_data[6] & 0x2,offset);
}
-SCREEN_UPDATE_IND16( m90 )
+UINT32 m90_state::screen_update_m90(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- m90_state *state = screen.machine().driver_data<m90_state>();
- UINT8 pf1_base = state->m_video_control_data[5] & 0x3;
- UINT8 pf2_base = state->m_video_control_data[6] & 0x3;
+ UINT8 pf1_base = m_video_control_data[5] & 0x3;
+ UINT8 pf2_base = m_video_control_data[6] & 0x3;
int i,pf1_enable,pf2_enable, video_enable;
- if (state->m_video_control_data[7]&0x04) video_enable=0; else video_enable=1;
- if (state->m_video_control_data[5]&0x10) pf1_enable=0; else pf1_enable=1;
- if (state->m_video_control_data[6]&0x10) pf2_enable=0; else pf2_enable=1;
+ if (m_video_control_data[7]&0x04) video_enable=0; else video_enable=1;
+ if (m_video_control_data[5]&0x10) pf1_enable=0; else pf1_enable=1;
+ if (m_video_control_data[6]&0x10) pf2_enable=0; else pf2_enable=1;
-// state->m_pf1_layer->enable(pf1_enable);
-// state->m_pf2_layer->enable(pf2_enable);
-// state->m_pf1_wide_layer->enable(pf1_enable);
-// state->m_pf2_wide_layer->enable(pf2_enable);
+// m_pf1_layer->enable(pf1_enable);
+// m_pf2_layer->enable(pf2_enable);
+// m_pf1_wide_layer->enable(pf1_enable);
+// m_pf2_wide_layer->enable(pf2_enable);
/* Dirty tilemaps if VRAM base changes */
- if (pf1_base!=state->m_last_pf1)
+ if (pf1_base!=m_last_pf1)
{
- state->m_pf1_layer->mark_all_dirty();
- state->m_pf1_wide_layer->mark_all_dirty();
+ m_pf1_layer->mark_all_dirty();
+ m_pf1_wide_layer->mark_all_dirty();
}
- if (pf2_base!=state->m_last_pf2)
+ if (pf2_base!=m_last_pf2)
{
- state->m_pf2_layer->mark_all_dirty();
- state->m_pf2_wide_layer->mark_all_dirty();
+ m_pf2_layer->mark_all_dirty();
+ m_pf2_wide_layer->mark_all_dirty();
}
- state->m_last_pf1=pf1_base;
- state->m_last_pf2=pf2_base;
+ m_last_pf1=pf1_base;
+ m_last_pf2=pf2_base;
/* Setup scrolling */
- if (state->m_video_control_data[5]&0x20)
+ if (m_video_control_data[5]&0x20)
{
- state->m_pf1_layer->set_scroll_rows(512);
- state->m_pf1_wide_layer->set_scroll_rows(512);
+ m_pf1_layer->set_scroll_rows(512);
+ m_pf1_wide_layer->set_scroll_rows(512);
for (i=0; i<512; i++)
- state->m_pf1_layer->set_scrollx(i, state->m_video_data[0xf000/2+i]+2);
+ m_pf1_layer->set_scrollx(i, m_video_data[0xf000/2+i]+2);
for (i=0; i<512; i++)
- state->m_pf1_wide_layer->set_scrollx(i, state->m_video_data[0xf000/2+i]+256+2);
+ m_pf1_wide_layer->set_scrollx(i, m_video_data[0xf000/2+i]+256+2);
}
else
{
- state->m_pf1_layer->set_scroll_rows(1);
- state->m_pf1_wide_layer->set_scroll_rows(1);
- state->m_pf1_layer->set_scrollx(0, state->m_video_control_data[1]+2);
- state->m_pf1_wide_layer->set_scrollx(0, state->m_video_control_data[1]+256+2);
+ m_pf1_layer->set_scroll_rows(1);
+ m_pf1_wide_layer->set_scroll_rows(1);
+ m_pf1_layer->set_scrollx(0, m_video_control_data[1]+2);
+ m_pf1_wide_layer->set_scrollx(0, m_video_control_data[1]+256+2);
}
/* Setup scrolling */
- if (state->m_video_control_data[6]&0x20)
+ if (m_video_control_data[6]&0x20)
{
- state->m_pf2_layer->set_scroll_rows(512);
- state->m_pf2_wide_layer->set_scroll_rows(512);
+ m_pf2_layer->set_scroll_rows(512);
+ m_pf2_wide_layer->set_scroll_rows(512);
for (i=0; i<512; i++)
- state->m_pf2_layer->set_scrollx(i, state->m_video_data[0xf400/2+i]-2);
+ m_pf2_layer->set_scrollx(i, m_video_data[0xf400/2+i]-2);
for (i=0; i<512; i++)
- state->m_pf2_wide_layer->set_scrollx(i, state->m_video_data[0xf400/2+i]+256-2);
+ m_pf2_wide_layer->set_scrollx(i, m_video_data[0xf400/2+i]+256-2);
} else {
- state->m_pf2_layer->set_scroll_rows(1);
- state->m_pf2_wide_layer->set_scroll_rows(1);
- state->m_pf2_layer->set_scrollx(0, state->m_video_control_data[3]-2);
- state->m_pf2_wide_layer->set_scrollx(0, state->m_video_control_data[3]+256-2 );
+ m_pf2_layer->set_scroll_rows(1);
+ m_pf2_wide_layer->set_scroll_rows(1);
+ m_pf2_layer->set_scrollx(0, m_video_control_data[3]-2);
+ m_pf2_wide_layer->set_scrollx(0, m_video_control_data[3]+256-2 );
}
screen.machine().priority_bitmap.fill(0, cliprect);
@@ -366,7 +365,7 @@ SCREEN_UPDATE_IND16( m90 )
if (pf2_enable)
{
// use the playfield 2 y-offset table for each scanline
- if (state->m_video_control_data[6] & 0x40)
+ if (m_video_control_data[6] & 0x40)
{
int line;
rectangle clip;
@@ -377,29 +376,29 @@ SCREEN_UPDATE_IND16( m90 )
{
clip.min_y = clip.max_y = line;
- if (state->m_video_control_data[6] & 0x4)
+ if (m_video_control_data[6] & 0x4)
{
- state->m_pf2_wide_layer->set_scrolly(0, 0x200 + state->m_video_data[0xfc00/2 + line]);
- state->m_pf2_wide_layer->draw(bitmap, clip, 0,0);
- state->m_pf2_wide_layer->draw(bitmap, clip, 1,1);
+ m_pf2_wide_layer->set_scrolly(0, 0x200 + m_video_data[0xfc00/2 + line]);
+ m_pf2_wide_layer->draw(bitmap, clip, 0,0);
+ m_pf2_wide_layer->draw(bitmap, clip, 1,1);
} else {
- state->m_pf2_layer->set_scrolly(0, 0x200 + state->m_video_data[0xfc00/2 + line]);
- state->m_pf2_layer->draw(bitmap, clip, 0,0);
- state->m_pf2_layer->draw(bitmap, clip, 1,1);
+ m_pf2_layer->set_scrolly(0, 0x200 + m_video_data[0xfc00/2 + line]);
+ m_pf2_layer->draw(bitmap, clip, 0,0);
+ m_pf2_layer->draw(bitmap, clip, 1,1);
}
}
}
else
{
- if (state->m_video_control_data[6] & 0x4)
+ if (m_video_control_data[6] & 0x4)
{
- state->m_pf2_wide_layer->set_scrolly(0, state->m_video_control_data[2] );
- state->m_pf2_wide_layer->draw(bitmap, cliprect, 0,0);
- state->m_pf2_wide_layer->draw(bitmap, cliprect, 1,1);
+ m_pf2_wide_layer->set_scrolly(0, m_video_control_data[2] );
+ m_pf2_wide_layer->draw(bitmap, cliprect, 0,0);
+ m_pf2_wide_layer->draw(bitmap, cliprect, 1,1);
} else {
- state->m_pf2_layer->set_scrolly(0, state->m_video_control_data[2] );
- state->m_pf2_layer->draw(bitmap, cliprect, 0,0);
- state->m_pf2_layer->draw(bitmap, cliprect, 1,1);
+ m_pf2_layer->set_scrolly(0, m_video_control_data[2] );
+ m_pf2_layer->draw(bitmap, cliprect, 0,0);
+ m_pf2_layer->draw(bitmap, cliprect, 1,1);
}
}
}
@@ -411,7 +410,7 @@ SCREEN_UPDATE_IND16( m90 )
if (pf1_enable)
{
// use the playfield 1 y-offset table for each scanline
- if (state->m_video_control_data[5] & 0x40)
+ if (m_video_control_data[5] & 0x40)
{
int line;
rectangle clip;
@@ -422,29 +421,29 @@ SCREEN_UPDATE_IND16( m90 )
{
clip.min_y = clip.max_y = line;
- if (state->m_video_control_data[5] & 0x4)
+ if (m_video_control_data[5] & 0x4)
{
- state->m_pf1_wide_layer->set_scrolly(0, 0x200 + state->m_video_data[0xf800/2 + line]);
- state->m_pf1_wide_layer->draw(bitmap, clip, 0,0);
- state->m_pf1_wide_layer->draw(bitmap, clip, 1,1);
+ m_pf1_wide_layer->set_scrolly(0, 0x200 + m_video_data[0xf800/2 + line]);
+ m_pf1_wide_layer->draw(bitmap, clip, 0,0);
+ m_pf1_wide_layer->draw(bitmap, clip, 1,1);
} else {
- state->m_pf1_layer->set_scrolly(0, 0x200 + state->m_video_data[0xf800/2 + line]);
- state->m_pf1_layer->draw(bitmap, clip, 0,0);
- state->m_pf1_layer->draw(bitmap, clip, 1,1);
+ m_pf1_layer->set_scrolly(0, 0x200 + m_video_data[0xf800/2 + line]);
+ m_pf1_layer->draw(bitmap, clip, 0,0);
+ m_pf1_layer->draw(bitmap, clip, 1,1);
}
}
}
else
{
- if (state->m_video_control_data[5] & 0x4)
+ if (m_video_control_data[5] & 0x4)
{
- state->m_pf1_wide_layer->set_scrolly(0, state->m_video_control_data[0] );
- state->m_pf1_wide_layer->draw(bitmap, cliprect, 0,0);
- state->m_pf1_wide_layer->draw(bitmap, cliprect, 1,1);
+ m_pf1_wide_layer->set_scrolly(0, m_video_control_data[0] );
+ m_pf1_wide_layer->draw(bitmap, cliprect, 0,0);
+ m_pf1_wide_layer->draw(bitmap, cliprect, 1,1);
} else {
- state->m_pf1_layer->set_scrolly(0, state->m_video_control_data[0] );
- state->m_pf1_layer->draw(bitmap, cliprect, 0,0);
- state->m_pf1_layer->draw(bitmap, cliprect, 1,1);
+ m_pf1_layer->set_scrolly(0, m_video_control_data[0] );
+ m_pf1_layer->draw(bitmap, cliprect, 0,0);
+ m_pf1_layer->draw(bitmap, cliprect, 1,1);
}
}
}
@@ -458,52 +457,51 @@ SCREEN_UPDATE_IND16( m90 )
return 0;
}
-SCREEN_UPDATE_IND16( bomblord )
+UINT32 m90_state::screen_update_bomblord(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- m90_state *state = screen.machine().driver_data<m90_state>();
int i;
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(get_black_pen(screen.machine()), cliprect);
/* Setup scrolling */
- if (state->m_video_control_data[6]&0x20) {
- state->m_pf1_layer->set_scroll_rows(512);
- state->m_pf1_wide_layer->set_scroll_rows(512);
+ if (m_video_control_data[6]&0x20) {
+ m_pf1_layer->set_scroll_rows(512);
+ m_pf1_wide_layer->set_scroll_rows(512);
for (i=0; i<512; i++)
- state->m_pf1_layer->set_scrollx(i, state->m_video_data[0xf400/2+i]-12);
+ m_pf1_layer->set_scrollx(i, m_video_data[0xf400/2+i]-12);
for (i=0; i<512; i++)
- state->m_pf1_wide_layer->set_scrollx(i, state->m_video_data[0xf400/2+i]-12+256);
+ m_pf1_wide_layer->set_scrollx(i, m_video_data[0xf400/2+i]-12+256);
} else {
- state->m_pf1_layer->set_scroll_rows(1);
- state->m_pf1_wide_layer->set_scroll_rows(1);
- state->m_pf1_layer->set_scrollx(0, state->m_video_data[0xf004/2]-12);
- state->m_pf1_wide_layer->set_scrollx(0, state->m_video_data[0xf004/2]-12 );
+ m_pf1_layer->set_scroll_rows(1);
+ m_pf1_wide_layer->set_scroll_rows(1);
+ m_pf1_layer->set_scrollx(0, m_video_data[0xf004/2]-12);
+ m_pf1_wide_layer->set_scrollx(0, m_video_data[0xf004/2]-12 );
}
- if (state->m_video_control_data[6] & 0x02) {
- state->m_pf2_wide_layer->mark_all_dirty();
- state->m_pf2_wide_layer->set_scrollx(0, state->m_video_data[0xf000/2]-16 );
- state->m_pf2_wide_layer->set_scrolly(0, state->m_video_data[0xf008/2]+388 );
- state->m_pf2_wide_layer->draw(bitmap, cliprect, 0,0);
- state->m_pf2_wide_layer->draw(bitmap, cliprect, 1,1);
+ if (m_video_control_data[6] & 0x02) {
+ m_pf2_wide_layer->mark_all_dirty();
+ m_pf2_wide_layer->set_scrollx(0, m_video_data[0xf000/2]-16 );
+ m_pf2_wide_layer->set_scrolly(0, m_video_data[0xf008/2]+388 );
+ m_pf2_wide_layer->draw(bitmap, cliprect, 0,0);
+ m_pf2_wide_layer->draw(bitmap, cliprect, 1,1);
} else {
- state->m_pf2_layer->mark_all_dirty();
- state->m_pf2_layer->set_scrollx(0, state->m_video_data[0xf000/2]-16 );
- state->m_pf2_layer->set_scrolly(0, state->m_video_data[0xf008/2]-120 );
- state->m_pf2_layer->draw(bitmap, cliprect, 0,0);
- state->m_pf2_layer->draw(bitmap, cliprect, 1,1);
+ m_pf2_layer->mark_all_dirty();
+ m_pf2_layer->set_scrollx(0, m_video_data[0xf000/2]-16 );
+ m_pf2_layer->set_scrolly(0, m_video_data[0xf008/2]-120 );
+ m_pf2_layer->draw(bitmap, cliprect, 0,0);
+ m_pf2_layer->draw(bitmap, cliprect, 1,1);
}
- if (state->m_video_control_data[6] & 0x04) {
- state->m_pf1_wide_layer->mark_all_dirty();
- state->m_pf1_wide_layer->set_scrolly(0, state->m_video_data[0xf00c/2]+392 );
- state->m_pf1_wide_layer->draw(bitmap, cliprect, 0,0);
- state->m_pf1_wide_layer->draw(bitmap, cliprect, 1,1);
+ if (m_video_control_data[6] & 0x04) {
+ m_pf1_wide_layer->mark_all_dirty();
+ m_pf1_wide_layer->set_scrolly(0, m_video_data[0xf00c/2]+392 );
+ m_pf1_wide_layer->draw(bitmap, cliprect, 0,0);
+ m_pf1_wide_layer->draw(bitmap, cliprect, 1,1);
} else {
- state->m_pf1_layer->mark_all_dirty();
- state->m_pf1_layer->set_scrolly(0, state->m_video_data[0xf00c/2]-116 );
- state->m_pf1_layer->draw(bitmap, cliprect, 0,0);
- state->m_pf1_layer->draw(bitmap, cliprect, 1,1);
+ m_pf1_layer->mark_all_dirty();
+ m_pf1_layer->set_scrolly(0, m_video_data[0xf00c/2]-116 );
+ m_pf1_layer->draw(bitmap, cliprect, 0,0);
+ m_pf1_layer->draw(bitmap, cliprect, 1,1);
}
bomblord_draw_sprites(screen.machine(),bitmap,cliprect);
@@ -511,42 +509,41 @@ SCREEN_UPDATE_IND16( bomblord )
return 0;
}
-SCREEN_UPDATE_IND16( dynablsb )
+UINT32 m90_state::screen_update_dynablsb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- m90_state *state = screen.machine().driver_data<m90_state>();
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- if (!(state->m_video_data[0xf008/2] & 0x4000)) {
- state->m_pf1_wide_layer->mark_all_dirty();
- state->m_pf1_wide_layer->set_scroll_rows(1);
- state->m_pf1_wide_layer->set_scrollx(0, state->m_video_data[0xf004/2]+64);
- state->m_pf1_wide_layer->set_scrolly(0, state->m_video_data[0xf006/2]+512);
- state->m_pf1_wide_layer->draw(bitmap, cliprect, 0,0);
- state->m_pf1_wide_layer->draw(bitmap, cliprect, 1,1);
+ if (!(m_video_data[0xf008/2] & 0x4000)) {
+ m_pf1_wide_layer->mark_all_dirty();
+ m_pf1_wide_layer->set_scroll_rows(1);
+ m_pf1_wide_layer->set_scrollx(0, m_video_data[0xf004/2]+64);
+ m_pf1_wide_layer->set_scrolly(0, m_video_data[0xf006/2]+512);
+ m_pf1_wide_layer->draw(bitmap, cliprect, 0,0);
+ m_pf1_wide_layer->draw(bitmap, cliprect, 1,1);
} else {
- state->m_pf1_layer->mark_all_dirty();
- state->m_pf1_layer->set_scroll_rows(1);
- state->m_pf1_layer->set_scrollx(0, state->m_video_data[0xf004/2]+64);
- state->m_pf1_layer->set_scrolly(0, state->m_video_data[0xf006/2]+4);
- state->m_pf1_layer->draw(bitmap, cliprect, 0,0);
- state->m_pf1_layer->draw(bitmap, cliprect, 1,1);
+ m_pf1_layer->mark_all_dirty();
+ m_pf1_layer->set_scroll_rows(1);
+ m_pf1_layer->set_scrollx(0, m_video_data[0xf004/2]+64);
+ m_pf1_layer->set_scrolly(0, m_video_data[0xf006/2]+4);
+ m_pf1_layer->draw(bitmap, cliprect, 0,0);
+ m_pf1_layer->draw(bitmap, cliprect, 1,1);
}
- if (!(state->m_video_data[0xf008/2] & 0x8000)) {
- state->m_pf2_wide_layer->mark_all_dirty();
- state->m_pf2_wide_layer->set_scroll_rows(1);
- state->m_pf2_wide_layer->set_scrollx(0, state->m_video_data[0xf000/2]+68);
- state->m_pf2_wide_layer->set_scrolly(0, state->m_video_data[0xf002/2]+512);
- state->m_pf2_wide_layer->draw(bitmap, cliprect, 0,0);
- state->m_pf2_wide_layer->draw(bitmap, cliprect, 1,1);
+ if (!(m_video_data[0xf008/2] & 0x8000)) {
+ m_pf2_wide_layer->mark_all_dirty();
+ m_pf2_wide_layer->set_scroll_rows(1);
+ m_pf2_wide_layer->set_scrollx(0, m_video_data[0xf000/2]+68);
+ m_pf2_wide_layer->set_scrolly(0, m_video_data[0xf002/2]+512);
+ m_pf2_wide_layer->draw(bitmap, cliprect, 0,0);
+ m_pf2_wide_layer->draw(bitmap, cliprect, 1,1);
} else {
- state->m_pf2_layer->mark_all_dirty();
- state->m_pf2_layer->set_scroll_rows(1);
- state->m_pf2_layer->set_scrollx(0, state->m_video_data[0xf000/2]+68);
- state->m_pf2_layer->set_scrolly(0, state->m_video_data[0xf002/2]+4);
- state->m_pf2_layer->draw(bitmap, cliprect, 0,0);
- state->m_pf2_layer->draw(bitmap, cliprect, 1,1);
+ m_pf2_layer->mark_all_dirty();
+ m_pf2_layer->set_scroll_rows(1);
+ m_pf2_layer->set_scrollx(0, m_video_data[0xf000/2]+68);
+ m_pf2_layer->set_scrolly(0, m_video_data[0xf002/2]+4);
+ m_pf2_layer->draw(bitmap, cliprect, 0,0);
+ m_pf2_layer->draw(bitmap, cliprect, 1,1);
}
dynablsb_draw_sprites(screen.machine(),bitmap,cliprect);
diff --git a/src/mame/video/m92.c b/src/mame/video/m92.c
index 47da5f7972e..b2e2e9c8321 100644
--- a/src/mame/video/m92.c
+++ b/src/mame/video/m92.c
@@ -531,7 +531,7 @@ static void m92_draw_tiles(running_machine &machine, bitmap_ind16 &bitmap,const
}
-SCREEN_UPDATE_IND16( m92 )
+UINT32 m92_state::screen_update_m92(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(0, cliprect);
@@ -541,15 +541,14 @@ SCREEN_UPDATE_IND16( m92 )
draw_sprites(screen.machine(), bitmap, cliprect);
/* Flipscreen appears hardwired to the dipswitch - strange */
- m92_state *state = screen.machine().driver_data<m92_state>();
if (screen.machine().root_device().ioport("DSW")->read() & 0x100)
- state->flip_screen_set(0);
+ flip_screen_set(0);
else
- state->flip_screen_set(1);
+ flip_screen_set(1);
return 0;
}
-SCREEN_UPDATE_IND16( ppan )
+UINT32 m92_state::screen_update_ppan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(0, cliprect);
@@ -559,10 +558,9 @@ SCREEN_UPDATE_IND16( ppan )
ppan_draw_sprites(screen.machine(), bitmap, cliprect);
/* Flipscreen appears hardwired to the dipswitch - strange */
- m92_state *state = screen.machine().driver_data<m92_state>();
if (screen.machine().root_device().ioport("DSW")->read() & 0x100)
- state->flip_screen_set(0);
+ flip_screen_set(0);
else
- state->flip_screen_set(1);
+ flip_screen_set(1);
return 0;
}
diff --git a/src/mame/video/macrossp.c b/src/mame/video/macrossp.c
index e8f1bfa9e27..8d56725d87e 100644
--- a/src/mame/video/macrossp.c
+++ b/src/mame/video/macrossp.c
@@ -378,19 +378,18 @@ static void sortlayers(int *layer,int *pri)
SWAP(1,2)
}
-SCREEN_UPDATE_RGB32( macrossp )
+UINT32 macrossp_state::screen_update_macrossp(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- macrossp_state *state = screen.machine().driver_data<macrossp_state>();
int layers[3],layerpri[3];
bitmap.fill(get_black_pen(screen.machine()), cliprect);
layers[0] = 0;
- layerpri[0] = (state->m_scra_videoregs[0] & 0x0000c000) >> 14;
+ layerpri[0] = (m_scra_videoregs[0] & 0x0000c000) >> 14;
layers[1] = 1;
- layerpri[1] = (state->m_scrb_videoregs[0] & 0x0000c000) >> 14;
+ layerpri[1] = (m_scrb_videoregs[0] & 0x0000c000) >> 14;
layers[2] = 2;
- layerpri[2] = (state->m_scrc_videoregs[0] & 0x0000c000) >> 14;
+ layerpri[2] = (m_scrc_videoregs[0] & 0x0000c000) >> 14;
sortlayers(layers, layerpri);
@@ -401,34 +400,33 @@ SCREEN_UPDATE_RGB32( macrossp )
draw_layer(screen.machine(), bitmap, cliprect, layers[2]);
draw_sprites(screen.machine(), bitmap, cliprect, 2);
draw_sprites(screen.machine(), bitmap, cliprect, 3);
- state->m_text_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_text_tilemap->draw(bitmap, cliprect, 0, 0);
#if 0
popmessage ("scra - %08x %08x %08x\nscrb - %08x %08x %08x\nscrc - %08x %08x %08x",
-state->m_scra_videoregs[0]&0xffff33ff, // yyyyxxxx
-state->m_scra_videoregs[1], // ??? more scrolling?
-state->m_scra_videoregs[2], // 08 - 0b
+m_scra_videoregs[0]&0xffff33ff, // yyyyxxxx
+m_scra_videoregs[1], // ??? more scrolling?
+m_scra_videoregs[2], // 08 - 0b
-state->m_scrb_videoregs[0]&0xffff33ff, // 00 - 03
-state->m_scrb_videoregs[1], // 04 - 07
-state->m_scrb_videoregs[2], // 08 - 0b
+m_scrb_videoregs[0]&0xffff33ff, // 00 - 03
+m_scrb_videoregs[1], // 04 - 07
+m_scrb_videoregs[2], // 08 - 0b
-state->m_scrc_videoregs[0]&0xffff33ff, // 00 - 03
-state->m_scrc_videoregs[1], // 04 - 07
-state->m_scrc_videoregs[2]);// 08 - 0b
+m_scrc_videoregs[0]&0xffff33ff, // 00 - 03
+m_scrc_videoregs[1], // 04 - 07
+m_scrc_videoregs[2]);// 08 - 0b
#endif
return 0;
}
-SCREEN_VBLANK( macrossp )
+void macrossp_state::screen_eof_macrossp(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- macrossp_state *state = screen.machine().driver_data<macrossp_state>();
/* looks like sprites are *two* frames ahead, like nmk16 */
- memcpy(state->m_spriteram_old2, state->m_spriteram_old, state->m_spriteram.bytes());
- memcpy(state->m_spriteram_old, state->m_spriteram, state->m_spriteram.bytes());
+ memcpy(m_spriteram_old2, m_spriteram_old, m_spriteram.bytes());
+ memcpy(m_spriteram_old, m_spriteram, m_spriteram.bytes());
}
}
diff --git a/src/mame/video/madalien.c b/src/mame/video/madalien.c
index fc47557d7af..503be731ce2 100644
--- a/src/mame/video/madalien.c
+++ b/src/mame/video/madalien.c
@@ -249,10 +249,9 @@ WRITE8_MEMBER(madalien_state::madalien_charram_w)
}
-static SCREEN_UPDATE_IND16( madalien )
+UINT32 madalien_state::screen_update_madalien(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- madalien_state *state = screen.machine().driver_data<madalien_state>();
- int flip = BIT(screen.machine().root_device().ioport("DSW")->read(), 6) && BIT(*state->m_video_control, 0);
+ int flip = BIT(screen.machine().root_device().ioport("DSW")->read(), 6) && BIT(*m_video_control, 0);
// bits #0 and #1 define scrolling mode
//
@@ -261,7 +260,7 @@ static SCREEN_UPDATE_IND16( madalien )
//
// mode 2 - transition from B to A
// mode 3 - transition from A to B
- int scroll_mode = *state->m_scroll & 3;
+ int scroll_mode = *m_scroll & 3;
bitmap.fill(0, cliprect);
draw_edges(screen.machine(), bitmap, cliprect, flip, scroll_mode);
@@ -272,7 +271,7 @@ static SCREEN_UPDATE_IND16( madalien )
* combined with the headlight signal through NOR gate 1A,
* which is used to light up the tunnel when an alien explodes
*/
- if (scroll_mode != 1 || *state->m_video_flags & 2)
+ if (scroll_mode != 1 || *m_video_flags & 2)
{
int x;
int y;
@@ -280,10 +279,10 @@ static SCREEN_UPDATE_IND16( madalien )
int min_x = 0;
int max_x = 0xff;
- if (!(*state->m_video_flags & 2))
+ if (!(*m_video_flags & 2))
{
- if (scroll_mode == 2) min_x = (*state->m_scroll & 0xfc);
- else if (scroll_mode == 3) max_x = (*state->m_scroll & 0xfc) - 1;
+ if (scroll_mode == 2) min_x = (*m_scroll & 0xfc);
+ else if (scroll_mode == 3) max_x = (*m_scroll & 0xfc) - 1;
}
if (flip)
@@ -396,7 +395,7 @@ static const mc6845_interface mc6845_intf =
MACHINE_CONFIG_FRAGMENT( madalien_video )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, 336, 0, 256, 288, 0, 256)
- MCFG_SCREEN_UPDATE_STATIC(madalien)
+ MCFG_SCREEN_UPDATE_DRIVER(madalien_state, screen_update_madalien)
MCFG_GFXDECODE(madalien)
MCFG_PALETTE_LENGTH(0x30)
diff --git a/src/mame/video/madmotor.c b/src/mame/video/madmotor.c
index 1af35e9cff3..c083cfc2ee9 100644
--- a/src/mame/video/madmotor.c
+++ b/src/mame/video/madmotor.c
@@ -22,16 +22,15 @@ void madmotor_state::video_start()
/******************************************************************************/
-SCREEN_UPDATE_IND16( madmotor )
+UINT32 madmotor_state::screen_update_madmotor(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- madmotor_state *state = screen.machine().driver_data<madmotor_state>();
- state->flip_screen_set(screen.machine().device<deco_bac06_device>("tilegen1")->get_flip_state());
+ flip_screen_set(screen.machine().device<deco_bac06_device>("tilegen1")->get_flip_state());
// screen.machine().tilemap().set_flip_all(screen.machine().device<deco_bac06_device>("tilegen1")->get_flip_state() ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
screen.machine().device<deco_bac06_device>("tilegen3")->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
screen.machine().device<deco_bac06_device>("tilegen2")->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
- screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram, 0x00, 0x00, 0x0f);
+ screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram, 0x00, 0x00, 0x0f);
screen.machine().device<deco_bac06_device>("tilegen1")->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,0, 0x00, 0x00, 0x00, 0x00);
return 0;
}
diff --git a/src/mame/video/magmax.c b/src/mame/video/magmax.c
index 536221f8797..fda1b443996 100644
--- a/src/mame/video/magmax.c
+++ b/src/mame/video/magmax.c
@@ -84,28 +84,27 @@ void magmax_state::video_start()
-SCREEN_UPDATE_IND16( magmax )
+UINT32 magmax_state::screen_update_magmax(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- magmax_state *state = screen.machine().driver_data<magmax_state>();
- UINT16 *videoram = state->m_videoram;
- UINT16 *spriteram16 = state->m_spriteram;
+ UINT16 *videoram = m_videoram;
+ UINT16 *spriteram16 = m_spriteram;
int offs;
/* bit 2 flip screen */
- state->m_flipscreen = *state->m_vreg & 0x04;
+ m_flipscreen = *m_vreg & 0x04;
/* copy the background graphics */
- if (*state->m_vreg & 0x40) /* background disable */
+ if (*m_vreg & 0x40) /* background disable */
bitmap.fill(0, cliprect);
else
{
int v;
- UINT8 * rom18B = state->memregion("user1")->base();
- UINT32 scroll_h = (*state->m_scroll_x) & 0x3fff;
- UINT32 scroll_v = (*state->m_scroll_y) & 0xff;
+ UINT8 * rom18B = memregion("user1")->base();
+ UINT32 scroll_h = (*m_scroll_x) & 0x3fff;
+ UINT32 scroll_v = (*m_scroll_y) & 0xff;
/*clear background-over-sprites bitmap*/
- state->m_bitmap.fill(0);
+ m_bitmap.fill(0);
for (v = 2*8; v < 30*8; v++) /*only for visible area*/
{
@@ -136,7 +135,7 @@ SCREEN_UPDATE_IND16( magmax )
LS283 = LS283 + rom18B[ map_v_scr_1fe_6 + h ] + 0xff01;
}
- prom_data = state->m_prom_tab[ (LS283 >> 6) & 0xff ];
+ prom_data = m_prom_tab[ (LS283 >> 6) & 0xff ];
rom18D_addr &= 0x20f8;
rom18D_addr += (prom_data & 0x1f00) + ((LS283 & 0x38) >>3);
@@ -156,10 +155,10 @@ SCREEN_UPDATE_IND16( magmax )
/*priority: background over sprites*/
if (map_v_scr_100 && ((graph_data & 0x0c)==0x0c))
- state->m_bitmap.pix16(v, h) = line_data[h];
+ m_bitmap.pix16(v, h) = line_data[h];
}
- if (state->m_flipscreen)
+ if (m_flipscreen)
{
int i;
UINT16 line_data_flip_x[256];
@@ -173,7 +172,7 @@ SCREEN_UPDATE_IND16( magmax )
}
/* draw the sprites */
- for (offs = 0; offs < state->m_spriteram.bytes()/2; offs += 4)
+ for (offs = 0; offs < m_spriteram.bytes()/2; offs += 4)
{
int sx, sy;
@@ -190,7 +189,7 @@ SCREEN_UPDATE_IND16( magmax )
sx = (spriteram16[offs + 3] & 0xff) - 0x80 + 0x100 * (attr & 0x01);
sy = 239 - sy;
- if (state->m_flipscreen)
+ if (m_flipscreen)
{
sx = 255-16 - sx;
sy = 239 - sy;
@@ -199,7 +198,7 @@ SCREEN_UPDATE_IND16( magmax )
}
if (code & 0x80) /* sprite bankswitch */
- code += (*state->m_vreg & 0x30) * 0x8;
+ code += (*m_vreg & 0x30) * 0x8;
drawgfx_transmask(bitmap, cliprect, screen.machine().gfx[1],
code,
@@ -210,13 +209,13 @@ SCREEN_UPDATE_IND16( magmax )
}
}
- if (!(*state->m_vreg & 0x40)) /* background disable */
- copybitmap_trans(bitmap, state->m_bitmap, state->m_flipscreen,state->m_flipscreen,0,0, cliprect, 0);
+ if (!(*m_vreg & 0x40)) /* background disable */
+ copybitmap_trans(bitmap, m_bitmap, m_flipscreen,m_flipscreen,0,0, cliprect, 0);
/* draw the foreground characters */
for (offs = 32*32-1; offs >= 0; offs -= 1)
{
- //int page = (*state->m_vreg>>3) & 0x1;
+ //int page = (*m_vreg>>3) & 0x1;
int code;
code = videoram[offs /*+ page*/] & 0xff;
@@ -225,7 +224,7 @@ SCREEN_UPDATE_IND16( magmax )
int sx = (offs % 32);
int sy = (offs / 32);
- if (state->m_flipscreen)
+ if (m_flipscreen)
{
sx = 31 - sx;
sy = 31 - sy;
@@ -234,7 +233,7 @@ SCREEN_UPDATE_IND16( magmax )
drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0],
code,
0,
- state->m_flipscreen, state->m_flipscreen,
+ m_flipscreen, m_flipscreen,
8 * sx, 8 * sy, 0x0f);
}
}
diff --git a/src/mame/video/mainevt.c b/src/mame/video/mainevt.c
index 28c033f0e30..bc0479d766c 100644
--- a/src/mame/video/mainevt.c
+++ b/src/mame/video/mainevt.c
@@ -91,31 +91,29 @@ VIDEO_START_MEMBER(mainevt_state,dv)
/*****************************************************************************/
-SCREEN_UPDATE_IND16( mainevt )
+UINT32 mainevt_state::screen_update_mainevt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mainevt_state *state = screen.machine().driver_data<mainevt_state>();
- k052109_tilemap_update(state->m_k052109);
+ k052109_tilemap_update(m_k052109);
screen.machine().priority_bitmap.fill(0, cliprect);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 1);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, 1, 2); /* low priority part of layer */
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, 0, 4); /* high priority part of layer */
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, 0, 8);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 1);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, 1, 2); /* low priority part of layer */
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, 0, 4); /* high priority part of layer */
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, 0, 8);
- k051960_sprites_draw(state->m_k051960, bitmap, cliprect, -1, -1);
+ k051960_sprites_draw(m_k051960, bitmap, cliprect, -1, -1);
return 0;
}
-SCREEN_UPDATE_IND16( dv )
+UINT32 mainevt_state::screen_update_dv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mainevt_state *state = screen.machine().driver_data<mainevt_state>();
- k052109_tilemap_update(state->m_k052109);
+ k052109_tilemap_update(m_k052109);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 0);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, 0, 0);
- k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 0, 0);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, 0, 0);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 0);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, 0, 0);
+ k051960_sprites_draw(m_k051960, bitmap, cliprect, 0, 0);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, 0, 0);
return 0;
}
diff --git a/src/mame/video/mainsnk.c b/src/mame/video/mainsnk.c
index b3b3c9bdf47..a17e0011d61 100644
--- a/src/mame/video/mainsnk.c
+++ b/src/mame/video/mainsnk.c
@@ -163,13 +163,12 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
-SCREEN_UPDATE_IND16(mainsnk)
+UINT32 mainsnk_state::screen_update_mainsnk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mainsnk_state *state = screen.machine().driver_data<mainsnk_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 0, 0);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/malzak.c b/src/mame/video/malzak.c
index 2966c3725d2..2159d38fd78 100644
--- a/src/mame/video/malzak.c
+++ b/src/mame/video/malzak.c
@@ -17,35 +17,34 @@
#include "video/saa5050.h"
#include "includes/malzak.h"
-SCREEN_UPDATE_RGB32( malzak )
+UINT32 malzak_state::screen_update_malzak(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
const rgb_t *palette = palette_entry_list_raw(bitmap.palette());
- malzak_state *state = screen.machine().driver_data<malzak_state>();
int sx, sy;
int x,y;
bitmap.fill(RGB_BLACK);
- state->m_trom->screen_update(screen, bitmap, cliprect);
+ m_trom->screen_update(screen, bitmap, cliprect);
// playfield - not sure exactly how this works...
for (x = 0; x < 16; x++)
for (y = 0; y < 16; y++)
{
- sx = ((x * 16 - 48) - state->m_malzak_x) * 2;
- sy = ((y * 16) - state->m_malzak_y) * 2;
+ sx = ((x * 16 - 48) - m_malzak_x) * 2;
+ sy = ((y * 16) - m_malzak_y) * 2;
if (sx < -271*2)
sx += 512*2;
if (sx < -15*2)
sx += 256*2;
- drawgfxzoom_transpen(bitmap,cliprect, screen.machine().gfx[0], state->m_playfield_code[x * 16 + y], 2, 0, 0, sx, sy, 0x20000, 0x20000, 0);
+ drawgfxzoom_transpen(bitmap,cliprect, screen.machine().gfx[0], m_playfield_code[x * 16 + y], 2, 0, 0, sx, sy, 0x20000, 0x20000, 0);
}
/* update the S2636 chips */
- bitmap_ind16 &s2636_0_bitmap = s2636_update(state->m_s2636_0, cliprect);
- bitmap_ind16 &s2636_1_bitmap = s2636_update(state->m_s2636_1, cliprect);
+ bitmap_ind16 &s2636_0_bitmap = s2636_update(m_s2636_0, cliprect);
+ bitmap_ind16 &s2636_1_bitmap = s2636_update(m_s2636_1, cliprect);
/* copy the S2636 images into the main bitmap */
{
diff --git a/src/mame/video/mappy.c b/src/mame/video/mappy.c
index 574ac40a33c..9fb6df3260f 100644
--- a/src/mame/video/mappy.c
+++ b/src/mame/video/mappy.c
@@ -533,20 +533,19 @@ static void phozon_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,
}
-SCREEN_UPDATE_IND16( superpac )
+UINT32 mappy_state::screen_update_superpac(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mappy_state *state = screen.machine().driver_data<mappy_state>();
- bitmap_ind16 &sprite_bitmap = state->m_sprite_bitmap;
+ bitmap_ind16 &sprite_bitmap = m_sprite_bitmap;
int x,y;
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES,0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES,0);
sprite_bitmap.fill(15, cliprect);
- mappy_draw_sprites(screen.machine(),sprite_bitmap,cliprect,state->m_spriteram);
+ mappy_draw_sprites(screen.machine(),sprite_bitmap,cliprect,m_spriteram);
copybitmap_trans(bitmap,sprite_bitmap,0,0,0,0,cliprect,15);
/* Redraw the high priority characters */
- state->m_bg_tilemap->draw(bitmap, cliprect, 1,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 1,0);
/* sprite color 0/1 still has priority over that (ghost eyes in Pac 'n Pal) */
for (y = 0;y < sprite_bitmap.height();y++)
@@ -562,35 +561,33 @@ SCREEN_UPDATE_IND16( superpac )
return 0;
}
-SCREEN_UPDATE_IND16( phozon )
+UINT32 mappy_state::screen_update_phozon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mappy_state *state = screen.machine().driver_data<mappy_state>();
/* flip screen control is embedded in RAM */
- state->flip_screen_set(state->m_spriteram[0x1f7f-0x800] & 1);
+ flip_screen_set(m_spriteram[0x1f7f-0x800] & 1);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES,0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES,0);
- phozon_draw_sprites(screen.machine(),bitmap,cliprect,state->m_spriteram);
+ phozon_draw_sprites(screen.machine(),bitmap,cliprect,m_spriteram);
/* Redraw the high priority characters */
- state->m_bg_tilemap->draw(bitmap, cliprect, 1,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 1,0);
return 0;
}
-SCREEN_UPDATE_IND16( mappy )
+UINT32 mappy_state::screen_update_mappy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mappy_state *state = screen.machine().driver_data<mappy_state>();
int offs;
for (offs = 2;offs < 34;offs++)
- state->m_bg_tilemap->set_scrolly(offs,state->m_scroll);
+ m_bg_tilemap->set_scrolly(offs,m_scroll);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES,0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES,0);
- mappy_draw_sprites(screen.machine(),bitmap,cliprect,state->m_spriteram);
+ mappy_draw_sprites(screen.machine(),bitmap,cliprect,m_spriteram);
/* Redraw the high priority characters */
- state->m_bg_tilemap->draw(bitmap, cliprect, 1,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 1,0);
return 0;
}
diff --git a/src/mame/video/marineb.c b/src/mame/video/marineb.c
index 208bf333469..196320aee98 100644
--- a/src/mame/video/marineb.c
+++ b/src/mame/video/marineb.c
@@ -169,13 +169,12 @@ static void set_tilemap_scrolly( running_machine &machine, int cols )
}
-SCREEN_UPDATE_IND16( marineb )
+UINT32 marineb_state::screen_update_marineb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- marineb_state *state = screen.machine().driver_data<marineb_state>();
int offs;
set_tilemap_scrolly(screen.machine(), 24);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
/* draw the sprites */
for (offs = 0x0f; offs >= 0; offs--)
@@ -190,10 +189,10 @@ SCREEN_UPDATE_IND16( marineb )
else
offs2 = 0x03d8 - 8 + offs;
- code = state->m_videoram[offs2];
- sx = state->m_videoram[offs2 + 0x20];
- sy = state->m_colorram[offs2];
- col = (state->m_colorram[offs2 + 0x20] & 0x0f) + 16 * state->m_palette_bank;
+ code = m_videoram[offs2];
+ sx = m_videoram[offs2 + 0x20];
+ sy = m_colorram[offs2];
+ col = (m_colorram[offs2 + 0x20] & 0x0f) + 16 * m_palette_bank;
flipx = code & 0x02;
flipy = !(code & 0x01);
@@ -210,13 +209,13 @@ SCREEN_UPDATE_IND16( marineb )
code >>= 2;
}
- if (!state->m_flipscreen_y)
+ if (!m_flipscreen_y)
{
sy = 256 - screen.machine().gfx[gfx]->width() - sy;
flipy = !flipy;
}
- if (state->m_flipscreen_x)
+ if (m_flipscreen_x)
{
sx++;
}
@@ -231,13 +230,12 @@ SCREEN_UPDATE_IND16( marineb )
}
-SCREEN_UPDATE_IND16( changes )
+UINT32 marineb_state::screen_update_changes(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- marineb_state *state = screen.machine().driver_data<marineb_state>();
int offs, sx, sy, code, col, flipx, flipy;
set_tilemap_scrolly(screen.machine(), 26);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
/* draw the small sprites */
for (offs = 0x05; offs >= 0; offs--)
@@ -246,20 +244,20 @@ SCREEN_UPDATE_IND16( changes )
offs2 = 0x001a + offs;
- code = state->m_videoram[offs2];
- sx = state->m_videoram[offs2 + 0x20];
- sy = state->m_colorram[offs2];
- col = (state->m_colorram[offs2 + 0x20] & 0x0f) + 16 * state->m_palette_bank;
+ code = m_videoram[offs2];
+ sx = m_videoram[offs2 + 0x20];
+ sy = m_colorram[offs2];
+ col = (m_colorram[offs2 + 0x20] & 0x0f) + 16 * m_palette_bank;
flipx = code & 0x02;
flipy = !(code & 0x01);
- if (!state->m_flipscreen_y)
+ if (!m_flipscreen_y)
{
sy = 256 - screen.machine().gfx[1]->width() - sy;
flipy = !flipy;
}
- if (state->m_flipscreen_x)
+ if (m_flipscreen_x)
{
sx++;
}
@@ -273,20 +271,20 @@ SCREEN_UPDATE_IND16( changes )
/* draw the big sprite */
- code = state->m_videoram[0x3df];
- sx = state->m_videoram[0x3ff];
- sy = state->m_colorram[0x3df];
- col = state->m_colorram[0x3ff];
+ code = m_videoram[0x3df];
+ sx = m_videoram[0x3ff];
+ sy = m_colorram[0x3df];
+ col = m_colorram[0x3ff];
flipx = code & 0x02;
flipy = !(code & 0x01);
- if (!state->m_flipscreen_y)
+ if (!m_flipscreen_y)
{
sy = 256 - screen.machine().gfx[2]->width() - sy;
flipy = !flipy;
}
- if (state->m_flipscreen_x)
+ if (m_flipscreen_x)
{
sx++;
}
@@ -310,13 +308,12 @@ SCREEN_UPDATE_IND16( changes )
}
-SCREEN_UPDATE_IND16( springer )
+UINT32 marineb_state::screen_update_springer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- marineb_state *state = screen.machine().driver_data<marineb_state>();
int offs;
set_tilemap_scrolly(screen.machine(), 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
/* draw the sprites */
for (offs = 0x0f; offs >= 0; offs--)
@@ -328,10 +325,10 @@ SCREEN_UPDATE_IND16( springer )
offs2 = 0x0010 + offs;
- code = state->m_videoram[offs2];
- sx = 240 - state->m_videoram[offs2 + 0x20];
- sy = state->m_colorram[offs2];
- col = (state->m_colorram[offs2 + 0x20] & 0x0f) + 16 * state->m_palette_bank;
+ code = m_videoram[offs2];
+ sx = 240 - m_videoram[offs2 + 0x20];
+ sy = m_colorram[offs2];
+ col = (m_colorram[offs2 + 0x20] & 0x0f) + 16 * m_palette_bank;
flipx = !(code & 0x02);
flipy = !(code & 0x01);
@@ -349,13 +346,13 @@ SCREEN_UPDATE_IND16( springer )
code >>= 2;
}
- if (!state->m_flipscreen_y)
+ if (!m_flipscreen_y)
{
sy = 256 - screen.machine().gfx[gfx]->width() - sy;
flipy = !flipy;
}
- if (!state->m_flipscreen_x)
+ if (!m_flipscreen_x)
{
sx--;
}
@@ -370,13 +367,12 @@ SCREEN_UPDATE_IND16( springer )
}
-SCREEN_UPDATE_IND16( hoccer )
+UINT32 marineb_state::screen_update_hoccer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- marineb_state *state = screen.machine().driver_data<marineb_state>();
int offs;
set_tilemap_scrolly(screen.machine(), 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
/* draw the sprites */
for (offs = 0x07; offs >= 0; offs--)
@@ -385,20 +381,20 @@ SCREEN_UPDATE_IND16( hoccer )
offs2 = 0x0018 + offs;
- code = state->m_spriteram[offs2];
- sx = state->m_spriteram[offs2 + 0x20];
- sy = state->m_colorram[offs2];
- col = state->m_colorram[offs2 + 0x20];
+ code = m_spriteram[offs2];
+ sx = m_spriteram[offs2 + 0x20];
+ sy = m_colorram[offs2];
+ col = m_colorram[offs2 + 0x20];
flipx = code & 0x02;
flipy = !(code & 0x01);
- if (!state->m_flipscreen_y)
+ if (!m_flipscreen_y)
{
sy = 256 - screen.machine().gfx[1]->width() - sy;
flipy = !flipy;
}
- if (state->m_flipscreen_x)
+ if (m_flipscreen_x)
{
sx = 256 - screen.machine().gfx[1]->width() - sx;
flipx = !flipx;
@@ -414,13 +410,12 @@ SCREEN_UPDATE_IND16( hoccer )
}
-SCREEN_UPDATE_IND16( hopprobo )
+UINT32 marineb_state::screen_update_hopprobo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- marineb_state *state = screen.machine().driver_data<marineb_state>();
int offs;
set_tilemap_scrolly(screen.machine(), 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
/* draw the sprites */
for (offs = 0x0f; offs >= 0; offs--)
@@ -432,10 +427,10 @@ SCREEN_UPDATE_IND16( hopprobo )
offs2 = 0x0010 + offs;
- code = state->m_videoram[offs2];
- sx = state->m_videoram[offs2 + 0x20];
- sy = state->m_colorram[offs2];
- col = (state->m_colorram[offs2 + 0x20] & 0x0f) + 16 * state->m_palette_bank;
+ code = m_videoram[offs2];
+ sx = m_videoram[offs2 + 0x20];
+ sy = m_colorram[offs2];
+ col = (m_colorram[offs2 + 0x20] & 0x0f) + 16 * m_palette_bank;
flipx = code & 0x02;
flipy = !(code & 0x01);
@@ -452,13 +447,13 @@ SCREEN_UPDATE_IND16( hopprobo )
code >>= 2;
}
- if (!state->m_flipscreen_y)
+ if (!m_flipscreen_y)
{
sy = 256 - screen.machine().gfx[gfx]->width() - sy;
flipy = !flipy;
}
- if (!state->m_flipscreen_x)
+ if (!m_flipscreen_x)
{
sx--;
}
diff --git a/src/mame/video/mario.c b/src/mame/video/mario.c
index a592af7c0cb..ccc352e6073 100644
--- a/src/mame/video/mario.c
+++ b/src/mame/video/mario.c
@@ -202,22 +202,21 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( mario )
+UINT32 mario_state::screen_update_mario(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mario_state *state = screen.machine().driver_data<mario_state>();
int t;
t = screen.machine().root_device().ioport("MONITOR")->read();
- if (t != state->m_monitor)
+ if (t != m_monitor)
{
- state->m_monitor = t;
+ m_monitor = t;
screen.machine().tilemap().mark_all_dirty();
}
- state->m_bg_tilemap->set_scrollx(0, state->m_flip ? (HTOTAL-HBSTART) : 0);
- state->m_bg_tilemap->set_scrolly(0, state->m_gfx_scroll - (state->m_flip ? 8 : 0));
+ m_bg_tilemap->set_scrollx(0, m_flip ? (HTOTAL-HBSTART) : 0);
+ m_bg_tilemap->set_scrolly(0, m_gfx_scroll - (m_flip ? 8 : 0));
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
diff --git a/src/mame/video/markham.c b/src/mame/video/markham.c
index b2c6ebe6523..ce0927ecacf 100644
--- a/src/mame/video/markham.c
+++ b/src/mame/video/markham.c
@@ -115,20 +115,19 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( markham )
+UINT32 markham_state::screen_update_markham(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- markham_state *state = screen.machine().driver_data<markham_state>();
int i;
for (i = 0; i < 32; i++)
{
if ((i > 3) && (i < 16))
- state->m_bg_tilemap->set_scrollx(i, state->m_xscroll[0]);
+ m_bg_tilemap->set_scrollx(i, m_xscroll[0]);
if (i >= 16)
- state->m_bg_tilemap->set_scrollx(i, state->m_xscroll[1]);
+ m_bg_tilemap->set_scrollx(i, m_xscroll[1]);
}
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/matmania.c b/src/mame/video/matmania.c
index 0d9818e0cbe..759f94ba47a 100644
--- a/src/mame/video/matmania.c
+++ b/src/mame/video/matmania.c
@@ -125,51 +125,50 @@ void matmania_state::video_start()
-SCREEN_UPDATE_IND16( matmania )
+UINT32 matmania_state::screen_update_matmania(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- matmania_state *state = screen.machine().driver_data<matmania_state>();
- UINT8 *spriteram = state->m_spriteram;
+ UINT8 *spriteram = m_spriteram;
int offs;
/* Update the tiles in the left tile ram bank */
- for (offs = state->m_videoram.bytes() - 1; offs >= 0; offs--)
+ for (offs = m_videoram.bytes() - 1; offs >= 0; offs--)
{
int sx = 15 - offs / 32;
int sy = offs % 32;
- drawgfx_opaque(*state->m_tmpbitmap, state->m_tmpbitmap->cliprect(), screen.machine().gfx[1],
- state->m_videoram[offs] + ((state->m_colorram[offs] & 0x08) << 5),
- (state->m_colorram[offs] & 0x30) >> 4,
+ drawgfx_opaque(*m_tmpbitmap, m_tmpbitmap->cliprect(), screen.machine().gfx[1],
+ m_videoram[offs] + ((m_colorram[offs] & 0x08) << 5),
+ (m_colorram[offs] & 0x30) >> 4,
0,sy >= 16, /* flip horizontally tiles on the right half of the bitmap */
16 * sx, 16 * sy);
}
/* Update the tiles in the right tile ram bank */
- for (offs = state->m_videoram3.bytes() - 1; offs >= 0; offs--)
+ for (offs = m_videoram3.bytes() - 1; offs >= 0; offs--)
{
int sx = 15 - offs / 32;
int sy = offs % 32;
- drawgfx_opaque(*state->m_tmpbitmap2, state->m_tmpbitmap2->cliprect(), screen.machine().gfx[1],
- state->m_videoram3[offs] + ((state->m_colorram3[offs] & 0x08) << 5),
- (state->m_colorram3[offs] & 0x30) >> 4,
+ drawgfx_opaque(*m_tmpbitmap2, m_tmpbitmap2->cliprect(), screen.machine().gfx[1],
+ m_videoram3[offs] + ((m_colorram3[offs] & 0x08) << 5),
+ (m_colorram3[offs] & 0x30) >> 4,
0,sy >= 16, /* flip horizontally tiles on the right half of the bitmap */
16*sx,16*sy);
}
/* copy the temporary bitmap to the screen */
{
- int scrolly = -*state->m_scroll;
- if (state->m_pageselect[0] & 0x01) // maniach sets 0x20 sometimes, which must have a different meaning
- copyscrollbitmap(bitmap, *state->m_tmpbitmap2, 0, 0, 1, &scrolly, cliprect);
+ int scrolly = -*m_scroll;
+ if (m_pageselect[0] & 0x01) // maniach sets 0x20 sometimes, which must have a different meaning
+ copyscrollbitmap(bitmap, *m_tmpbitmap2, 0, 0, 1, &scrolly, cliprect);
else
- copyscrollbitmap(bitmap, *state->m_tmpbitmap, 0, 0, 1, &scrolly, cliprect);
+ copyscrollbitmap(bitmap, *m_tmpbitmap, 0, 0, 1, &scrolly, cliprect);
}
/* Draw the sprites */
- for (offs = 0; offs < state->m_spriteram.bytes(); offs += 4)
+ for (offs = 0; offs < m_spriteram.bytes(); offs += 4)
{
if (spriteram[offs] & 0x01)
{
@@ -183,49 +182,48 @@ SCREEN_UPDATE_IND16( matmania )
/* draw the frontmost playfield. They are characters, but draw them as sprites */
- for (offs = state->m_videoram2.bytes() - 1; offs >= 0; offs--)
+ for (offs = m_videoram2.bytes() - 1; offs >= 0; offs--)
{
int sx = 31 - offs / 32;
int sy = offs % 32;
drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0],
- state->m_videoram2[offs] + 256 * (state->m_colorram2[offs] & 0x07),
- (state->m_colorram2[offs] & 0x30) >> 4,
+ m_videoram2[offs] + 256 * (m_colorram2[offs] & 0x07),
+ (m_colorram2[offs] & 0x30) >> 4,
0,0,
8*sx,8*sy,0);
}
return 0;
}
-SCREEN_UPDATE_IND16( maniach )
+UINT32 matmania_state::screen_update_maniach(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- matmania_state *state = screen.machine().driver_data<matmania_state>();
- UINT8 *spriteram = state->m_spriteram;
+ UINT8 *spriteram = m_spriteram;
int offs;
/* Update the tiles in the left tile ram bank */
- for (offs = state->m_videoram.bytes() - 1; offs >= 0; offs--)
+ for (offs = m_videoram.bytes() - 1; offs >= 0; offs--)
{
int sx = 15 - offs / 32;
int sy = offs % 32;
- drawgfx_opaque(*state->m_tmpbitmap, state->m_tmpbitmap->cliprect(), screen.machine().gfx[1],
- state->m_videoram[offs] + ((state->m_colorram[offs] & 0x03) << 8),
- (state->m_colorram[offs] & 0x30) >> 4,
+ drawgfx_opaque(*m_tmpbitmap, m_tmpbitmap->cliprect(), screen.machine().gfx[1],
+ m_videoram[offs] + ((m_colorram[offs] & 0x03) << 8),
+ (m_colorram[offs] & 0x30) >> 4,
0,sy >= 16, /* flip horizontally tiles on the right half of the bitmap */
16*sx,16*sy);
}
/* Update the tiles in the right tile ram bank */
- for (offs = state->m_videoram3.bytes() - 1; offs >= 0; offs--)
+ for (offs = m_videoram3.bytes() - 1; offs >= 0; offs--)
{
int sx = 15 - offs / 32;
int sy = offs % 32;
- drawgfx_opaque(*state->m_tmpbitmap2, state->m_tmpbitmap2->cliprect(), screen.machine().gfx[1],
- state->m_videoram3[offs] + ((state->m_colorram3[offs] & 0x03) << 8),
- (state->m_colorram3[offs] & 0x30) >> 4,
+ drawgfx_opaque(*m_tmpbitmap2, m_tmpbitmap2->cliprect(), screen.machine().gfx[1],
+ m_videoram3[offs] + ((m_colorram3[offs] & 0x03) << 8),
+ (m_colorram3[offs] & 0x30) >> 4,
0,sy >= 16, /* flip horizontally tiles on the right half of the bitmap */
16*sx,16*sy);
}
@@ -233,17 +231,17 @@ SCREEN_UPDATE_IND16( maniach )
/* copy the temporary bitmap to the screen */
{
- int scrolly = -*state->m_scroll;
+ int scrolly = -*m_scroll;
- if (state->m_pageselect[0] & 0x01) // this sets 0x20 sometimes, which must have a different meaning
- copyscrollbitmap(bitmap, *state->m_tmpbitmap2, 0, 0, 1, &scrolly, cliprect);
+ if (m_pageselect[0] & 0x01) // this sets 0x20 sometimes, which must have a different meaning
+ copyscrollbitmap(bitmap, *m_tmpbitmap2, 0, 0, 1, &scrolly, cliprect);
else
- copyscrollbitmap(bitmap, *state->m_tmpbitmap, 0, 0, 1, &scrolly, cliprect);
+ copyscrollbitmap(bitmap, *m_tmpbitmap, 0, 0, 1, &scrolly, cliprect);
}
/* Draw the sprites */
- for (offs = 0; offs < state->m_spriteram.bytes(); offs += 4)
+ for (offs = 0; offs < m_spriteram.bytes(); offs += 4)
{
if (spriteram[offs] & 0x01)
{
@@ -257,14 +255,14 @@ SCREEN_UPDATE_IND16( maniach )
/* draw the frontmost playfield. They are characters, but draw them as sprites */
- for (offs = state->m_videoram2.bytes() - 1; offs >= 0; offs--)
+ for (offs = m_videoram2.bytes() - 1; offs >= 0; offs--)
{
int sx = 31 - offs / 32;
int sy = offs % 32;
drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0],
- state->m_videoram2[offs] + 256 * (state->m_colorram2[offs] & 0x07),
- (state->m_colorram2[offs] & 0x30) >> 4,
+ m_videoram2[offs] + 256 * (m_colorram2[offs] & 0x07),
+ (m_colorram2[offs] & 0x30) >> 4,
0,0,
8*sx,8*sy,0);
}
diff --git a/src/mame/video/mcatadv.c b/src/mame/video/mcatadv.c
index f183c26ac8c..c80c5691985 100644
--- a/src/mame/video/mcatadv.c
+++ b/src/mame/video/mcatadv.c
@@ -198,24 +198,23 @@ static void mcatadv_draw_tilemap_part( UINT16* current_scroll, UINT16* current_v
}
}
-SCREEN_UPDATE_IND16( mcatadv )
+UINT32 mcatadv_state::screen_update_mcatadv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mcatadv_state *state = screen.machine().driver_data<mcatadv_state>();
int i;
bitmap.fill(get_black_pen(screen.machine()), cliprect);
screen.machine().priority_bitmap.fill(0, cliprect);
- if (state->m_scroll1[2] != state->m_palette_bank1)
+ if (m_scroll1[2] != m_palette_bank1)
{
- state->m_palette_bank1 = state->m_scroll1[2];
- state->m_tilemap1->mark_all_dirty();
+ m_palette_bank1 = m_scroll1[2];
+ m_tilemap1->mark_all_dirty();
}
- if (state->m_scroll2[2] != state->m_palette_bank2)
+ if (m_scroll2[2] != m_palette_bank2)
{
- state->m_palette_bank2 = state->m_scroll2[2];
- state->m_tilemap2->mark_all_dirty();
+ m_palette_bank2 = m_scroll2[2];
+ m_tilemap2->mark_all_dirty();
}
/*
@@ -231,12 +230,12 @@ SCREEN_UPDATE_IND16( mcatadv )
#ifdef MAME_DEBUG
if (!screen.machine().input().code_pressed(KEYCODE_Q))
#endif
- mcatadv_draw_tilemap_part(state->m_scroll1, state->m_videoram1, i, state->m_tilemap1, bitmap, cliprect);
+ mcatadv_draw_tilemap_part(m_scroll1, m_videoram1, i, m_tilemap1, bitmap, cliprect);
#ifdef MAME_DEBUG
if (!screen.machine().input().code_pressed(KEYCODE_W))
#endif
- mcatadv_draw_tilemap_part(state->m_scroll2, state->m_videoram2, i, state->m_tilemap2, bitmap, cliprect);
+ mcatadv_draw_tilemap_part(m_scroll2, m_videoram2, i, m_tilemap2, bitmap, cliprect);
}
g_profiler.start(PROFILER_USER1);
@@ -266,13 +265,12 @@ void mcatadv_state::video_start()
save_pointer(NAME(m_vidregs_old), (0x0f + 1) / 2);
}
-SCREEN_VBLANK( mcatadv )
+void mcatadv_state::screen_eof_mcatadv(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- mcatadv_state *state = screen.machine().driver_data<mcatadv_state>();
- memcpy(state->m_spriteram_old, state->m_spriteram, state->m_spriteram.bytes());
- memcpy(state->m_vidregs_old, state->m_vidregs, 0xf);
+ memcpy(m_spriteram_old, m_spriteram, m_spriteram.bytes());
+ memcpy(m_vidregs_old, m_vidregs, 0xf);
}
}
diff --git a/src/mame/video/mcd212.c b/src/mame/video/mcd212.c
index 0775ea593b9..7a16764d9b5 100644
--- a/src/mame/video/mcd212.c
+++ b/src/mame/video/mcd212.c
@@ -1660,16 +1660,14 @@ void cdi_state::video_start()
screen->register_screen_bitmap(m_lcdbitmap);
}
-SCREEN_UPDATE_RGB32( cdimono1 )
+UINT32 cdi_state::screen_update_cdimono1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- cdi_state *state = screen.machine().driver_data<cdi_state>();
- copybitmap(bitmap, state->m_mcd212_regs.m_bitmap, 0, 0, 0, 0, cliprect);
+ copybitmap(bitmap, m_mcd212_regs.m_bitmap, 0, 0, 0, 0, cliprect);
return 0;
}
-SCREEN_UPDATE_RGB32( cdimono1_lcd )
+UINT32 cdi_state::screen_update_cdimono1_lcd(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- cdi_state *state = screen.machine().driver_data<cdi_state>();
- copybitmap(bitmap, state->m_lcdbitmap, 0, 0, 0, 0, cliprect);
+ copybitmap(bitmap, m_lcdbitmap, 0, 0, 0, 0, cliprect);
return 0;
}
diff --git a/src/mame/video/mcr.c b/src/mame/video/mcr.c
index 74a13ca8ab1..0ce4b2f56aa 100644
--- a/src/mame/video/mcr.c
+++ b/src/mame/video/mcr.c
@@ -395,7 +395,7 @@ static void render_sprites_91464(running_machine &machine, bitmap_ind16 &bitmap,
*
*************************************/
-SCREEN_UPDATE_IND16( mcr )
+UINT32 mcr_state::screen_update_mcr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
/* update the flip state */
bg_tilemap->set_flip(mcr_cocktail_flip ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0);
diff --git a/src/mame/video/mcr3.c b/src/mame/video/mcr3.c
index f527fda1122..5bee1f3ad5d 100644
--- a/src/mame/video/mcr3.c
+++ b/src/mame/video/mcr3.c
@@ -269,14 +269,13 @@ static void mcr3_update_sprites(running_machine &machine, bitmap_ind16 &bitmap,
*
*************************************/
-SCREEN_UPDATE_IND16( mcr3 )
+UINT32 mcr3_state::screen_update_mcr3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mcr3_state *state = screen.machine().driver_data<mcr3_state>();
/* update the flip state */
- state->m_bg_tilemap->set_flip(mcr_cocktail_flip ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0);
+ m_bg_tilemap->set_flip(mcr_cocktail_flip ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0);
/* draw the background */
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
/* draw the sprites */
mcr3_update_sprites(screen.machine(), bitmap, cliprect, 0x03, 0, 0, 0);
@@ -284,19 +283,18 @@ SCREEN_UPDATE_IND16( mcr3 )
}
-SCREEN_UPDATE_IND16( spyhunt )
+UINT32 mcr3_state::screen_update_spyhunt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mcr3_state *state = screen.machine().driver_data<mcr3_state>();
/* for every character in the Video RAM, check if it has been modified */
/* since last time and update it accordingly. */
- state->m_bg_tilemap->set_scrollx(0, state->m_spyhunt_scrollx * 2 + state->m_spyhunt_scroll_offset);
- state->m_bg_tilemap->set_scrolly(0, state->m_spyhunt_scrolly * 2);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->set_scrollx(0, m_spyhunt_scrollx * 2 + m_spyhunt_scroll_offset);
+ m_bg_tilemap->set_scrolly(0, m_spyhunt_scrolly * 2);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
/* draw the sprites */
- mcr3_update_sprites(screen.machine(), bitmap, cliprect, state->m_spyhunt_sprite_color_mask, 0, -12, 0);
+ mcr3_update_sprites(screen.machine(), bitmap, cliprect, m_spyhunt_sprite_color_mask, 0, -12, 0);
/* render any characters on top */
- state->m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/mcr68.c b/src/mame/video/mcr68.c
index 16a5d6bd075..26ad332f8c2 100644
--- a/src/mame/video/mcr68.c
+++ b/src/mame/video/mcr68.c
@@ -314,17 +314,16 @@ static void zwackery_update_sprites(running_machine &machine, bitmap_ind16 &bitm
*
*************************************/
-SCREEN_UPDATE_IND16( mcr68 )
+UINT32 mcr68_state::screen_update_mcr68(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mcr68_state *state = screen.machine().driver_data<mcr68_state>();
/* draw the background */
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES, 0);
/* draw the low-priority sprites */
mcr68_update_sprites(screen.machine(), bitmap, cliprect, 0);
/* redraw tiles with priority over sprites */
- state->m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
/* draw the high-priority sprites */
mcr68_update_sprites(screen.machine(), bitmap, cliprect, 1);
@@ -332,17 +331,16 @@ SCREEN_UPDATE_IND16( mcr68 )
}
-SCREEN_UPDATE_IND16( zwackery )
+UINT32 mcr68_state::screen_update_zwackery(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mcr68_state *state = screen.machine().driver_data<mcr68_state>();
/* draw the background */
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
/* draw the low-priority sprites */
zwackery_update_sprites(screen.machine(), bitmap, cliprect, 0);
/* redraw tiles with priority over sprites */
- state->m_fg_tilemap->draw(bitmap, cliprect, 1, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 1, 0);
/* draw the high-priority sprites */
zwackery_update_sprites(screen.machine(), bitmap, cliprect, 1);
diff --git a/src/mame/video/meadows.c b/src/mame/video/meadows.c
index 4c261dfcce3..b39785337bb 100644
--- a/src/mame/video/meadows.c
+++ b/src/mame/video/meadows.c
@@ -101,11 +101,10 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
*
*************************************/
-SCREEN_UPDATE_IND16( meadows )
+UINT32 meadows_state::screen_update_meadows(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- meadows_state *state = screen.machine().driver_data<meadows_state>();
/* draw the background */
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
/* draw the sprites */
if (screen.machine().gfx[1])
diff --git a/src/mame/video/megasys1.c b/src/mame/video/megasys1.c
index d3e46b01adb..f68d3356b09 100644
--- a/src/mame/video/megasys1.c
+++ b/src/mame/video/megasys1.c
@@ -917,13 +917,12 @@ PALETTE_INIT_MEMBER(megasys1_state,megasys1)
***************************************************************************/
-SCREEN_UPDATE_IND16( megasys1 )
+UINT32 megasys1_state::screen_update_megasys1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- megasys1_state *state = screen.machine().driver_data<megasys1_state>();
int i,flag,pri,primask;
int active_layers;
- if (state->m_hardware_type_z)
+ if (m_hardware_type_z)
{
/* no layer 2 and fixed layers order? */
active_layers = 0x000b;
@@ -934,12 +933,12 @@ SCREEN_UPDATE_IND16( megasys1 )
int reallyactive = 0;
/* get layers order */
- pri = state->m_layers_order[(state->m_active_layers & 0x0f0f) >> 8];
+ pri = m_layers_order[(m_active_layers & 0x0f0f) >> 8];
#ifdef MAME_DEBUG
if (pri == 0xfffff)
{
- popmessage("Pri: %04X - Flag: %04X", state->m_active_layers, state->m_sprite_flag);
+ popmessage("Pri: %04X - Flag: %04X", m_active_layers, m_sprite_flag);
}
#endif
@@ -949,20 +948,20 @@ SCREEN_UPDATE_IND16( megasys1 )
for (i = 0;i < 5;i++)
reallyactive |= 1 << ((pri >> (4*i)) & 0x0f);
- active_layers = state->m_active_layers & reallyactive;
+ active_layers = m_active_layers & reallyactive;
active_layers |= 1 << ((pri & 0xf0000) >> 16); // bottom layer can't be disabled
}
- screen.machine().tilemap().set_flip_all((state->m_screen_flag & 1) ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0 );
+ screen.machine().tilemap().set_flip_all((m_screen_flag & 1) ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0 );
for (i = 0;i < 3;i++)
{
- if (state->m_tmap[i])
+ if (m_tmap[i])
{
- state->m_tmap[i]->enable(active_layers & (1 << i));
+ m_tmap[i]->enable(active_layers & (1 << i));
- state->m_tmap[i]->set_scrollx(0,state->m_scrollx[i]);
- state->m_tmap[i]->set_scrolly(0,state->m_scrolly[i]);
+ m_tmap[i]->set_scrollx(0,m_scrollx[i]);
+ m_tmap[i]->set_scrolly(0,m_scrolly[i]);
}
}
@@ -981,9 +980,9 @@ SCREEN_UPDATE_IND16( megasys1 )
case 0:
case 1:
case 2:
- if ( (state->m_tmap[layer]) && (active_layers & (1 << layer) ) )
+ if ( (m_tmap[layer]) && (active_layers & (1 << layer) ) )
{
- state->m_tmap[layer]->draw(bitmap, cliprect, flag,primask);
+ m_tmap[layer]->draw(bitmap, cliprect, flag,primask);
flag = 0;
}
break;
@@ -995,7 +994,7 @@ SCREEN_UPDATE_IND16( megasys1 )
bitmap.fill(0, cliprect);
}
- if (state->m_sprite_flag & 0x100) /* sprites are split */
+ if (m_sprite_flag & 0x100) /* sprites are split */
{
/* following tilemaps will obscure this sprites layer */
primask |= 1 << (layer-3);
@@ -1013,19 +1012,18 @@ SCREEN_UPDATE_IND16( megasys1 )
return 0;
}
-SCREEN_VBLANK( megasys1 )
+void megasys1_state::screen_eof_megasys1(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- megasys1_state *state = screen.machine().driver_data<megasys1_state>();
/* Sprite are TWO frames ahead, like NMK16 HW. */
- //state->m_objectram
- memcpy(state->m_buffer2_objectram,state->m_buffer_objectram, 0x2000);
- memcpy(state->m_buffer_objectram, state->m_objectram, 0x2000);
+ //m_objectram
+ memcpy(m_buffer2_objectram,m_buffer_objectram, 0x2000);
+ memcpy(m_buffer_objectram, m_objectram, 0x2000);
//spriteram16
- memcpy(state->m_buffer2_spriteram16, state->m_buffer_spriteram16, 0x2000);
- memcpy(state->m_buffer_spriteram16, state->m_spriteram, 0x2000);
+ memcpy(m_buffer2_spriteram16, m_buffer_spriteram16, 0x2000);
+ memcpy(m_buffer_spriteram16, m_spriteram, 0x2000);
}
}
diff --git a/src/mame/video/megazone.c b/src/mame/video/megazone.c
index 94012039155..03fa8cc0771 100644
--- a/src/mame/video/megazone.c
+++ b/src/mame/video/megazone.c
@@ -110,23 +110,22 @@ void megazone_state::video_start()
}
-SCREEN_UPDATE_IND16( megazone )
+UINT32 megazone_state::screen_update_megazone(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- megazone_state *state = screen.machine().driver_data<megazone_state>();
int offs;
int x, y;
/* for every character in the Video RAM */
- for (offs = state->m_videoram.bytes() - 1; offs >= 0; offs--)
+ for (offs = m_videoram.bytes() - 1; offs >= 0; offs--)
{
int sx, sy, flipx, flipy;
sx = offs % 32;
sy = offs / 32;
- flipx = state->m_colorram[offs] & (1 << 6);
- flipy = state->m_colorram[offs] & (1 << 5);
+ flipx = m_colorram[offs] & (1 << 6);
+ flipy = m_colorram[offs] & (1 << 5);
- if (state->m_flipscreen)
+ if (m_flipscreen)
{
sx = 31 - sx;
sy = 31 - sy;
@@ -134,9 +133,9 @@ SCREEN_UPDATE_IND16( megazone )
flipy = !flipy;
}
- drawgfx_opaque(*state->m_tmpbitmap, state->m_tmpbitmap->cliprect(), screen.machine().gfx[1],
- ((int)state->m_videoram[offs]) + ((state->m_colorram[offs] & (1 << 7) ? 256 : 0) ),
- (state->m_colorram[offs] & 0x0f) + 0x10,
+ drawgfx_opaque(*m_tmpbitmap, m_tmpbitmap->cliprect(), screen.machine().gfx[1],
+ ((int)m_videoram[offs]) + ((m_colorram[offs] & (1 << 7) ? 256 : 0) ),
+ (m_colorram[offs] & 0x0f) + 0x10,
flipx,flipy,
8*sx,8*sy);
}
@@ -146,26 +145,26 @@ SCREEN_UPDATE_IND16( megazone )
int scrollx;
int scrolly;
- if (state->m_flipscreen)
+ if (m_flipscreen)
{
- scrollx = *state->m_scrolly;
- scrolly = *state->m_scrollx;
+ scrollx = *m_scrolly;
+ scrolly = *m_scrollx;
}
else
{
- scrollx = - *state->m_scrolly + 4 * 8; // leave space for credit&score overlay
- scrolly = - *state->m_scrollx;
+ scrollx = - *m_scrolly + 4 * 8; // leave space for credit&score overlay
+ scrolly = - *m_scrollx;
}
- copyscrollbitmap(bitmap, *state->m_tmpbitmap, 1, &scrollx, 1, &scrolly, cliprect);
+ copyscrollbitmap(bitmap, *m_tmpbitmap, 1, &scrollx, 1, &scrolly, cliprect);
}
/* Draw the sprites. */
{
- UINT8 *spriteram = state->m_spriteram;
- for (offs = state->m_spriteram.bytes() - 4; offs >= 0; offs -= 4)
+ UINT8 *spriteram = m_spriteram;
+ for (offs = m_spriteram.bytes() - 4; offs >= 0; offs -= 4)
{
int sx = spriteram[offs + 3];
int sy = 255 - ((spriteram[offs + 1] + 16) & 0xff);
@@ -173,7 +172,7 @@ SCREEN_UPDATE_IND16( megazone )
int flipx = ~spriteram[offs + 0] & 0x40;
int flipy = spriteram[offs + 0] & 0x80;
- if (state->m_flipscreen)
+ if (m_flipscreen)
{
sx = sx - 11;
sy = sy + 2;
@@ -200,10 +199,10 @@ SCREEN_UPDATE_IND16( megazone )
sx = x;
sy = y;
- flipx = state->m_colorram2[offs] & (1 << 6);
- flipy = state->m_colorram2[offs] & (1 << 5);
+ flipx = m_colorram2[offs] & (1 << 6);
+ flipy = m_colorram2[offs] & (1 << 5);
- if (state->m_flipscreen)
+ if (m_flipscreen)
{
sx = 35 - sx;
sy = 31 - sy;
@@ -215,8 +214,8 @@ SCREEN_UPDATE_IND16( megazone )
drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[1],
- ((int)state->m_videoram2[offs]) + ((state->m_colorram2[offs] & (1 << 7) ? 256 : 0) ),
- (state->m_colorram2[offs] & 0x0f) + 0x10,
+ ((int)m_videoram2[offs]) + ((m_colorram2[offs] & (1 << 7) ? 256 : 0) ),
+ (m_colorram2[offs] & 0x0f) + 0x10,
flipx,flipy,
8*sx,8*sy);
offs++;
diff --git a/src/mame/video/mermaid.c b/src/mame/video/mermaid.c
index d6e755aa8a3..350a3541949 100644
--- a/src/mame/video/mermaid.c
+++ b/src/mame/video/mermaid.c
@@ -221,12 +221,11 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( mermaid )
+UINT32 mermaid_state::screen_update_mermaid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mermaid_state *state = screen.machine().driver_data<mermaid_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
@@ -253,26 +252,25 @@ static UINT8 collision_check( running_machine &machine, rectangle& rect )
return data;
}
-SCREEN_VBLANK( mermaid )
+void mermaid_state::screen_eof_mermaid(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- mermaid_state *state = screen.machine().driver_data<mermaid_state>();
const rectangle &visarea = screen.machine().primary_screen->visible_area();
- UINT8 *spriteram = state->m_spriteram;
+ UINT8 *spriteram = m_spriteram;
int offs, offs2;
- state->m_coll_bit0 = 0;
- state->m_coll_bit1 = 0;
- state->m_coll_bit2 = 0;
- state->m_coll_bit3 = 0;
- state->m_coll_bit6 = 0;
+ m_coll_bit0 = 0;
+ m_coll_bit1 = 0;
+ m_coll_bit2 = 0;
+ m_coll_bit3 = 0;
+ m_coll_bit6 = 0;
// check for bit 0 (sprite-sprite), 1 (sprite-foreground), 2 (sprite-background)
- for (offs = state->m_spriteram.bytes() - 4; offs >= 0; offs -= 4)
+ for (offs = m_spriteram.bytes() - 4; offs >= 0; offs -= 4)
{
int attr = spriteram[offs + 2];
int bank = (attr & 0x30) >> 4;
@@ -287,16 +285,16 @@ SCREEN_VBLANK( mermaid )
if (coll != 1) continue;
- code |= state->m_rougien_gfxbank1 * 0x2800;
- code |= state->m_rougien_gfxbank2 * 0x2400;
+ code |= m_rougien_gfxbank1 * 0x2800;
+ code |= m_rougien_gfxbank2 * 0x2400;
- if (state->flip_screen_x())
+ if (flip_screen_x())
{
flipx = !flipx;
sx = 240 - sx;
}
- if (state->flip_screen_y())
+ if (flip_screen_y())
{
flipy = !flipy;
sy = 240 - sy;
@@ -311,32 +309,32 @@ SCREEN_VBLANK( mermaid )
// check collision sprite - background
- state->m_helper.fill(0, rect);
- state->m_helper2.fill(0, rect);
+ m_helper.fill(0, rect);
+ m_helper2.fill(0, rect);
- state->m_bg_tilemap->draw(state->m_helper, rect, 0, 0);
+ m_bg_tilemap->draw(m_helper, rect, 0, 0);
- drawgfx_transpen(state->m_helper2, rect, screen.machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0);
+ drawgfx_transpen(m_helper2, rect, screen.machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0);
- state->m_coll_bit2 |= collision_check(screen.machine(), rect);
+ m_coll_bit2 |= collision_check(screen.machine(), rect);
// check collision sprite - foreground
- state->m_helper.fill(0, rect);
- state->m_helper2.fill(0, rect);
+ m_helper.fill(0, rect);
+ m_helper2.fill(0, rect);
- state->m_fg_tilemap->draw(state->m_helper, rect, 0, 0);
+ m_fg_tilemap->draw(m_helper, rect, 0, 0);
- drawgfx_transpen(state->m_helper2, rect, screen.machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0);
+ drawgfx_transpen(m_helper2, rect, screen.machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0);
- state->m_coll_bit1 |= collision_check(screen.machine(), rect);
+ m_coll_bit1 |= collision_check(screen.machine(), rect);
// check collision sprite - sprite
- state->m_helper.fill(0, rect);
- state->m_helper2.fill(0, rect);
+ m_helper.fill(0, rect);
+ m_helper2.fill(0, rect);
- for (offs2 = state->m_spriteram.bytes() - 4; offs2 >= 0; offs2 -= 4)
+ for (offs2 = m_spriteram.bytes() - 4; offs2 >= 0; offs2 -= 4)
if (offs != offs2)
{
int attr2 = spriteram[offs2 + 2];
@@ -350,32 +348,32 @@ SCREEN_VBLANK( mermaid )
if (coll2 != 0) continue;
- code2 |= state->m_rougien_gfxbank1 * 0x2800;
- code2 |= state->m_rougien_gfxbank2 * 0x2400;
+ code2 |= m_rougien_gfxbank1 * 0x2800;
+ code2 |= m_rougien_gfxbank2 * 0x2400;
- if (state->flip_screen_x())
+ if (flip_screen_x())
{
flipx2 = !flipx2;
sx2 = 240 - sx2;
}
- if (state->flip_screen_y())
+ if (flip_screen_y())
{
flipy2 = !flipy2;
sy2 = 240 - sy2;
}
- drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1], code2, 0, flipx2, flipy2, sx2, sy2, 0);
+ drawgfx_transpen(m_helper, rect, screen.machine().gfx[1], code2, 0, flipx2, flipy2, sx2, sy2, 0);
}
- drawgfx_transpen(state->m_helper2, rect, screen.machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0);
+ drawgfx_transpen(m_helper2, rect, screen.machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0);
- state->m_coll_bit0 |= collision_check(screen.machine(), rect);
+ m_coll_bit0 |= collision_check(screen.machine(), rect);
}
// check for bit 3 (sprite-sprite)
- for (offs = state->m_spriteram.bytes() - 4; offs >= 0; offs -= 4)
+ for (offs = m_spriteram.bytes() - 4; offs >= 0; offs -= 4)
{
int attr = spriteram[offs + 2];
int bank = (attr & 0x30) >> 4;
@@ -390,16 +388,16 @@ SCREEN_VBLANK( mermaid )
if (coll != 2) continue;
- code |= state->m_rougien_gfxbank1 * 0x2800;
- code |= state->m_rougien_gfxbank2 * 0x2400;
+ code |= m_rougien_gfxbank1 * 0x2800;
+ code |= m_rougien_gfxbank2 * 0x2400;
- if (state->flip_screen_x())
+ if (flip_screen_x())
{
flipx = !flipx;
sx = 240 - sx;
}
- if (state->flip_screen_y())
+ if (flip_screen_y())
{
flipy = !flipy;
sy = 240 - sy;
@@ -414,10 +412,10 @@ SCREEN_VBLANK( mermaid )
// check collision sprite - sprite
- state->m_helper.fill(0, rect);
- state->m_helper2.fill(0, rect);
+ m_helper.fill(0, rect);
+ m_helper2.fill(0, rect);
- for (offs2 = state->m_spriteram.bytes() - 4; offs2 >= 0; offs2 -= 4)
+ for (offs2 = m_spriteram.bytes() - 4; offs2 >= 0; offs2 -= 4)
if (offs != offs2)
{
int attr2 = spriteram[offs2 + 2];
@@ -431,32 +429,32 @@ SCREEN_VBLANK( mermaid )
if (coll2 != 0) continue;
- code2 |= state->m_rougien_gfxbank1 * 0x2800;
- code2 |= state->m_rougien_gfxbank2 * 0x2400;
+ code2 |= m_rougien_gfxbank1 * 0x2800;
+ code2 |= m_rougien_gfxbank2 * 0x2400;
- if (state->flip_screen_x())
+ if (flip_screen_x())
{
flipx2 = !flipx2;
sx2 = 240 - sx2;
}
- if (state->flip_screen_y())
+ if (flip_screen_y())
{
flipy2 = !flipy2;
sy2 = 240 - sy2;
}
- drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1], code2, 0, flipx2, flipy2, sx2, sy2, 0);
+ drawgfx_transpen(m_helper, rect, screen.machine().gfx[1], code2, 0, flipx2, flipy2, sx2, sy2, 0);
}
- drawgfx_transpen(state->m_helper2, rect, screen.machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0);
+ drawgfx_transpen(m_helper2, rect, screen.machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0);
- state->m_coll_bit3 |= collision_check(screen.machine(), rect);
+ m_coll_bit3 |= collision_check(screen.machine(), rect);
}
// check for bit 6
- for (offs = state->m_spriteram.bytes() - 4; offs >= 0; offs -= 4)
+ for (offs = m_spriteram.bytes() - 4; offs >= 0; offs -= 4)
{
int attr = spriteram[offs + 2];
int bank = (attr & 0x30) >> 4;
@@ -471,16 +469,16 @@ SCREEN_VBLANK( mermaid )
if (coll != 1) continue;
- code |= state->m_rougien_gfxbank1 * 0x2800;
- code |= state->m_rougien_gfxbank2 * 0x2400;
+ code |= m_rougien_gfxbank1 * 0x2800;
+ code |= m_rougien_gfxbank2 * 0x2400;
- if (state->flip_screen_x())
+ if (flip_screen_x())
{
flipx = !flipx;
sx = 240 - sx;
}
- if (state->flip_screen_y())
+ if (flip_screen_y())
{
flipy = !flipy;
sy = 240 - sy;
@@ -495,10 +493,10 @@ SCREEN_VBLANK( mermaid )
// check collision sprite - sprite
- state->m_helper.fill(0, rect);
- state->m_helper2.fill(0, rect);
+ m_helper.fill(0, rect);
+ m_helper2.fill(0, rect);
- for (offs2 = state->m_spriteram.bytes() - 4; offs2 >= 0; offs2 -= 4)
+ for (offs2 = m_spriteram.bytes() - 4; offs2 >= 0; offs2 -= 4)
if (offs != offs2)
{
int attr2 = spriteram[offs2 + 2];
@@ -512,27 +510,27 @@ SCREEN_VBLANK( mermaid )
if (coll2 != 2) continue;
- code2 |= state->m_rougien_gfxbank1 * 0x2800;
- code2 |= state->m_rougien_gfxbank2 * 0x2400;
+ code2 |= m_rougien_gfxbank1 * 0x2800;
+ code2 |= m_rougien_gfxbank2 * 0x2400;
- if (state->flip_screen_x())
+ if (flip_screen_x())
{
flipx2 = !flipx2;
sx2 = 240 - sx2;
}
- if (state->flip_screen_y())
+ if (flip_screen_y())
{
flipy2 = !flipy2;
sy2 = 240 - sy2;
}
- drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1], code2, 0, flipx2, flipy2, sx2, sy2, 0);
+ drawgfx_transpen(m_helper, rect, screen.machine().gfx[1], code2, 0, flipx2, flipy2, sx2, sy2, 0);
}
- drawgfx_transpen(state->m_helper2, rect, screen.machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0);
+ drawgfx_transpen(m_helper2, rect, screen.machine().gfx[1], code, 0, flipx, flipy, sx, sy, 0);
- state->m_coll_bit6 |= collision_check(screen.machine(), rect);
+ m_coll_bit6 |= collision_check(screen.machine(), rect);
}
}
}
diff --git a/src/mame/video/metlclsh.c b/src/mame/video/metlclsh.c
index d51b0f19d86..3a71526fc14 100644
--- a/src/mame/video/metlclsh.c
+++ b/src/mame/video/metlclsh.c
@@ -235,25 +235,24 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
***************************************************************************/
-SCREEN_UPDATE_IND16( metlclsh )
+UINT32 metlclsh_state::screen_update_metlclsh(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- metlclsh_state *state = screen.machine().driver_data<metlclsh_state>();
bitmap.fill(0x10, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 1, 0); // low priority tiles of foreground
+ m_fg_tilemap->draw(bitmap, cliprect, 1, 0); // low priority tiles of foreground
- if (state->m_scrollx[0] & 0x08) // background (if enabled)
+ if (m_scrollx[0] & 0x08) // background (if enabled)
{
/* The background seems to be always flipped along x */
- state->m_bg_tilemap->set_flip((state->flip_screen() ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0) ^ TILEMAP_FLIPX);
- state->m_bg_tilemap->set_scrollx(0, state->m_scrollx[1] + ((state->m_scrollx[0] & 0x02) << 7) );
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->set_flip((flip_screen() ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0) ^ TILEMAP_FLIPX);
+ m_bg_tilemap->set_scrollx(0, m_scrollx[1] + ((m_scrollx[0] & 0x02) << 7) );
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
}
draw_sprites(screen.machine(), bitmap, cliprect); // sprites
- state->m_fg_tilemap->draw(bitmap, cliprect, 2, 0); // high priority tiles of foreground
+ m_fg_tilemap->draw(bitmap, cliprect, 2, 0); // high priority tiles of foreground
-// popmessage("%02X", state->m_scrollx[0]);
+// popmessage("%02X", m_scrollx[0]);
return 0;
}
diff --git a/src/mame/video/metro.c b/src/mame/video/metro.c
index a0a1a2e548f..fd8ff352a36 100644
--- a/src/mame/video/metro.c
+++ b/src/mame/video/metro.c
@@ -714,18 +714,17 @@ static void draw_layers( running_machine &machine, bitmap_ind16 &bitmap, const r
-SCREEN_UPDATE_IND16( metro )
+UINT32 metro_state::screen_update_metro(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- metro_state *state = screen.machine().driver_data<metro_state>();
int pri, layers_ctrl = -1;
- UINT16 screenctrl = *state->m_screenctrl;
+ UINT16 screenctrl = *m_screenctrl;
- state->m_sprite_xoffs = state->m_videoregs[0x06 / 2] - screen.width() / 2;
- state->m_sprite_yoffs = state->m_videoregs[0x04 / 2] - screen.height() / 2;
+ m_sprite_xoffs = m_videoregs[0x06 / 2] - screen.width() / 2;
+ m_sprite_yoffs = m_videoregs[0x04 / 2] - screen.height() / 2;
/* The background color is selected by a register */
screen.machine().priority_bitmap.fill(0, cliprect);
- bitmap.fill((state->m_videoregs[0x12/2] & 0x0fff) + 0x1000, cliprect);
+ bitmap.fill((m_videoregs[0x12/2] & 0x0fff) + 0x1000, cliprect);
/* Screen Control Register:
@@ -741,13 +740,13 @@ SCREEN_UPDATE_IND16( metro )
if (screenctrl & 2)
return 0;
- //state->flip_screen_set(screenctrl & 1);
- state->m_flip_screen = screenctrl & 1;
+ //flip_screen_set(screenctrl & 1);
+ m_flip_screen = screenctrl & 1;
/* If the game supports 16x16 tiles, make sure that the
16x16 and 8x8 tilemaps of a given layer are not simultaneously
enabled! */
- if (state->m_support_16x16)
+ if (m_support_16x16)
{
int layer;
@@ -755,8 +754,8 @@ SCREEN_UPDATE_IND16( metro )
{
int big = screenctrl & (0x0020 << layer);
- state->m_bg_tilemap_enable[layer] = !big;
- state->m_bg_tilemap_enable16[layer] = big;
+ m_bg_tilemap_enable[layer] = !big;
+ m_bg_tilemap_enable16[layer] = big;
}
}
@@ -776,14 +775,14 @@ if (screen.machine().input().code_pressed(KEYCODE_Z))
}
popmessage("l %x-%x-%x r %04x %04x %04x",
- (state->m_videoregs[0x10/2] & 0x30) >> 4, (state->m_videoregs[0x10/2] & 0xc) >> 2, state->m_videoregs[0x10/2] & 3,
- state->m_videoregs[0x02/2], state->m_videoregs[0x12/2],
- *state->m_screenctrl);
+ (m_videoregs[0x10/2] & 0x30) >> 4, (m_videoregs[0x10/2] & 0xc) >> 2, m_videoregs[0x10/2] & 3,
+ m_videoregs[0x02/2], m_videoregs[0x12/2],
+ *m_screenctrl);
}
#endif
- if (state->m_has_zoom)
- k053936_zoom_draw(state->m_k053936, bitmap, cliprect, state->m_k053936_tilemap, 0, 0, 1);
+ if (m_has_zoom)
+ k053936_zoom_draw(m_k053936, bitmap, cliprect, m_k053936_tilemap, 0, 0, 1);
for (pri = 3; pri >= 0; pri--)
draw_layers(screen.machine(), bitmap, cliprect, pri, layers_ctrl);
diff --git a/src/mame/video/mexico86.c b/src/mame/video/mexico86.c
index 897b1742b93..1a5967d54a8 100644
--- a/src/mame/video/mexico86.c
+++ b/src/mame/video/mexico86.c
@@ -15,9 +15,8 @@ WRITE8_MEMBER(mexico86_state::mexico86_bankswitch_w)
-SCREEN_UPDATE_IND16( mexico86 )
+UINT32 mexico86_state::screen_update_mexico86(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mexico86_state *state = screen.machine().driver_data<mexico86_state>();
int offs;
int sx, sy, xc, yc;
int gfx_num, gfx_attr, gfx_offs;
@@ -31,24 +30,24 @@ SCREEN_UPDATE_IND16( mexico86 )
sx = 0;
/* the score display seems to be outside of the main objectram. */
- for (offs = 0; offs < state->m_objectram.bytes() + 0x200; offs += 4)
+ for (offs = 0; offs < m_objectram.bytes() + 0x200; offs += 4)
{
int height;
- if (offs >= state->m_objectram.bytes() && offs < state->m_objectram.bytes() + 0x180)
+ if (offs >= m_objectram.bytes() && offs < m_objectram.bytes() + 0x180)
continue;
- if (offs >= state->m_objectram.bytes() + 0x1c0)
+ if (offs >= m_objectram.bytes() + 0x1c0)
continue;
/* skip empty sprites */
/* this is dword aligned so the UINT32 * cast shouldn't give problems */
/* on any architecture */
- if (*(UINT32 *)(&state->m_objectram[offs]) == 0)
+ if (*(UINT32 *)(&m_objectram[offs]) == 0)
continue;
- gfx_num = state->m_objectram[offs + 1];
- gfx_attr = state->m_objectram[offs + 3];
+ gfx_num = m_objectram[offs + 1];
+ gfx_attr = m_objectram[offs + 3];
if (!BIT(gfx_num, 7)) /* 16x16 sprites */
{
@@ -65,10 +64,10 @@ SCREEN_UPDATE_IND16( mexico86 )
sx += 16;
else
{
- sx = state->m_objectram[offs + 2];
+ sx = m_objectram[offs + 2];
//if (gfx_attr & 0x40) sx -= 256;
}
- sy = 256 - height * 8 - (state->m_objectram[offs + 0]);
+ sy = 256 - height * 8 - (m_objectram[offs + 0]);
for (xc = 0; xc < 2; xc++)
{
@@ -77,10 +76,10 @@ SCREEN_UPDATE_IND16( mexico86 )
int goffs, code, color, flipx, flipy, x, y;
goffs = gfx_offs + xc * 0x40 + yc * 0x02;
- code = state->m_videoram[goffs] + ((state->m_videoram[goffs + 1] & 0x07) << 8)
- + ((state->m_videoram[goffs + 1] & 0x80) << 4) + (state->m_charbank << 12);
- color = ((state->m_videoram[goffs + 1] & 0x38) >> 3) + ((gfx_attr & 0x02) << 2);
- flipx = state->m_videoram[goffs + 1] & 0x40;
+ code = m_videoram[goffs] + ((m_videoram[goffs + 1] & 0x07) << 8)
+ + ((m_videoram[goffs + 1] & 0x80) << 4) + (m_charbank << 12);
+ color = ((m_videoram[goffs + 1] & 0x38) >> 3) + ((gfx_attr & 0x02) << 2);
+ flipx = m_videoram[goffs + 1] & 0x40;
flipy = 0;
//x = sx + xc * 8;
@@ -98,9 +97,8 @@ SCREEN_UPDATE_IND16( mexico86 )
return 0;
}
-SCREEN_UPDATE_IND16( kikikai )
+UINT32 mexico86_state::screen_update_kikikai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mexico86_state *state = screen.machine().driver_data<mexico86_state>();
int offs;
int sx, sy, yc;
int gfx_num, /*gfx_attr,*/ gfx_offs;
@@ -110,15 +108,15 @@ SCREEN_UPDATE_IND16( kikikai )
bitmap.fill(get_black_pen(screen.machine()), cliprect);
sx = 0;
- for (offs = 0; offs < state->m_objectram.bytes(); offs += 4)
+ for (offs = 0; offs < m_objectram.bytes(); offs += 4)
{
- if (*(UINT32*)(state->m_objectram + offs) == 0)
+ if (*(UINT32*)(m_objectram + offs) == 0)
continue;
- ty = state->m_objectram[offs];
- gfx_num = state->m_objectram[offs + 1];
- tx = state->m_objectram[offs + 2];
- //gfx_attr = state->m_objectram[offs + 3];
+ ty = m_objectram[offs];
+ gfx_num = m_objectram[offs + 1];
+ tx = m_objectram[offs + 2];
+ //gfx_attr = m_objectram[offs + 3];
if (gfx_num & 0x80)
{
@@ -142,8 +140,8 @@ SCREEN_UPDATE_IND16( kikikai )
{
y = (sy + (yc << 2)) & 0xff;
goffs = gfx_offs + yc;
- code = state->m_videoram[goffs] + ((state->m_videoram[goffs + 1] & 0x1f) << 8);
- color = (state->m_videoram[goffs + 1] & 0xe0) >> 5;
+ code = m_videoram[goffs] + ((m_videoram[goffs + 1] & 0x1f) << 8);
+ color = (m_videoram[goffs + 1] & 0xe0) >> 5;
goffs += 0x40;
drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0],
@@ -152,8 +150,8 @@ SCREEN_UPDATE_IND16( kikikai )
0,0,
sx&0xff,y,15);
- code = state->m_videoram[goffs] + ((state->m_videoram[goffs + 1] & 0x1f) << 8);
- color = (state->m_videoram[goffs + 1] & 0xe0) >> 5;
+ code = m_videoram[goffs] + ((m_videoram[goffs + 1] & 0x1f) << 8);
+ color = (m_videoram[goffs + 1] & 0xe0) >> 5;
drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0],
code,
diff --git a/src/mame/video/midvunit.c b/src/mame/video/midvunit.c
index af60bec2d28..cde3fd53726 100644
--- a/src/mame/video/midvunit.c
+++ b/src/mame/video/midvunit.c
@@ -515,24 +515,23 @@ READ32_MEMBER(midvunit_state::midvunit_textureram_r)
*
*************************************/
-SCREEN_UPDATE_IND16( midvunit )
+UINT32 midvunit_state::screen_update_midvunit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- midvunit_state *state = screen.machine().driver_data<midvunit_state>();
int x, y, width, xoffs;
UINT32 offset;
- state->m_poly->wait("Refresh Time");
+ m_poly->wait("Refresh Time");
/* if the video didn't change, indicate as much */
- if (!state->m_video_changed)
+ if (!m_video_changed)
return UPDATE_HAS_NOT_CHANGED;
- state->m_video_changed = FALSE;
+ m_video_changed = FALSE;
/* determine the base of the videoram */
#if WATCH_RENDER
- offset = (state->m_page_control & 4) ? 0x40000 : 0x00000;
+ offset = (m_page_control & 4) ? 0x40000 : 0x00000;
#else
- offset = (state->m_page_control & 1) ? 0x40000 : 0x00000;
+ offset = (m_page_control & 1) ? 0x40000 : 0x00000;
#endif
/* determine how many pixels to copy */
@@ -548,7 +547,7 @@ SCREEN_UPDATE_IND16( midvunit )
{
UINT16 *dest = &bitmap.pix16(y, cliprect.min_x);
for (x = 0; x < width; x++)
- *dest++ = state->m_videoram[offset + x] & 0x7fff;
+ *dest++ = m_videoram[offset + x] & 0x7fff;
offset += 512;
}
return 0;
diff --git a/src/mame/video/midzeus.c b/src/mame/video/midzeus.c
index 6c0f3314550..559b5cfcb1b 100644
--- a/src/mame/video/midzeus.c
+++ b/src/mame/video/midzeus.c
@@ -329,7 +329,7 @@ static void exit_handler(running_machine &machine)
*
*************************************/
-SCREEN_UPDATE_IND16( midzeus )
+UINT32 midzeus_state::screen_update_midzeus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int x, y;
@@ -338,8 +338,7 @@ SCREEN_UPDATE_IND16( midzeus )
/* normal update case */
if (!screen.machine().input().code_pressed(KEYCODE_W))
{
- midzeus_state *state = screen.machine().driver_data<midzeus_state>();
- const void *base = waveram1_ptr_from_expanded_addr(state->m_zeusbase[0xcc]);
+ const void *base = waveram1_ptr_from_expanded_addr(m_zeusbase[0xcc]);
int xoffs = screen.visible_area().min_x;
for (y = cliprect.min_y; y <= cliprect.max_y; y++)
{
diff --git a/src/mame/video/midzeus2.c b/src/mame/video/midzeus2.c
index 769bf5a5a96..cbf00e56786 100644
--- a/src/mame/video/midzeus2.c
+++ b/src/mame/video/midzeus2.c
@@ -357,7 +357,7 @@ static void exit_handler(running_machine &machine)
*
*************************************/
-SCREEN_UPDATE_RGB32( midzeus2 )
+UINT32 midzeus_state::screen_update_midzeus2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
int x, y;
@@ -369,8 +369,7 @@ if (screen.machine().input().code_pressed(KEYCODE_DOWN)) { zbase -= 1.0f; popmes
/* normal update case */
if (!screen.machine().input().code_pressed(KEYCODE_W))
{
- midzeus_state *state = screen.machine().driver_data<midzeus_state>();
- const void *base = waveram1_ptr_from_expanded_addr(state->m_zeusbase[0x38]);
+ const void *base = waveram1_ptr_from_expanded_addr(m_zeusbase[0x38]);
int xoffs = screen.visible_area().min_x;
for (y = cliprect.min_y; y <= cliprect.max_y; y++)
{
diff --git a/src/mame/video/mikie.c b/src/mame/video/mikie.c
index f46e6fbac34..8a73204e905 100644
--- a/src/mame/video/mikie.c
+++ b/src/mame/video/mikie.c
@@ -171,11 +171,10 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( mikie )
+UINT32 mikie_state::screen_update_mikie(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mikie_state *state = screen.machine().driver_data<mikie_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0), 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0), 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1), 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1), 0);
return 0;
}
diff --git a/src/mame/video/mitchell.c b/src/mame/video/mitchell.c
index 5bf0acf2eb0..5528fa85e98 100644
--- a/src/mame/video/mitchell.c
+++ b/src/mame/video/mitchell.c
@@ -310,12 +310,11 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( pang )
+UINT32 mitchell_state::screen_update_pang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mitchell_state *state = screen.machine().driver_data<mitchell_state>();
bitmap.fill(0, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/mjkjidai.c b/src/mame/video/mjkjidai.c
index 428a6984109..99d5eb08ab4 100644
--- a/src/mame/video/mjkjidai.c
+++ b/src/mame/video/mjkjidai.c
@@ -125,14 +125,13 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re
-SCREEN_UPDATE_IND16( mjkjidai )
+UINT32 mjkjidai_state::screen_update_mjkjidai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mjkjidai_state *state = screen.machine().driver_data<mjkjidai_state>();
- if (!state->m_display_enable)
+ if (!m_display_enable)
bitmap.fill(get_black_pen(screen.machine()), cliprect);
else
{
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect);
}
return 0;
diff --git a/src/mame/video/model1.c b/src/mame/video/model1.c
index 3579b310acd..ffe5eba5a03 100644
--- a/src/mame/video/model1.c
+++ b/src/mame/video/model1.c
@@ -1465,10 +1465,9 @@ VIDEO_START_MEMBER(model1_state,model1)
state_save_register_global_array(machine(), m_listctl);
}
-SCREEN_UPDATE_RGB32(model1)
+UINT32 model1_state::screen_update_model1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- model1_state *state = screen.machine().driver_data<model1_state>();
- struct view *view = state->m_view;
+ struct view *view = m_view;
#if 0
{
int mod = 0;
@@ -1534,10 +1533,10 @@ SCREEN_UPDATE_RGB32(model1)
return 0;
}
-SCREEN_VBLANK(model1)
+void model1_state::screen_eof_model1(screen_device &screen, bool state)
{
// on rising edge
- if (vblank_on)
+ if (state)
{
tgp_scan(screen.machine());
end_frame(screen.machine());
diff --git a/src/mame/video/model2.c b/src/mame/video/model2.c
index 75fde2fd856..a4888b77f10 100644
--- a/src/mame/video/model2.c
+++ b/src/mame/video/model2.c
@@ -2717,38 +2717,37 @@ VIDEO_START_MEMBER(model2_state,model2)
geo_init( machine(), (UINT32*)memregion("user2")->base() );
}
-SCREEN_UPDATE_RGB32(model2)
+UINT32 model2_state::screen_update_model2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- model2_state *state = screen.machine().driver_data<model2_state>();
logerror("--- frame ---\n");
bitmap.fill(screen.machine().pens[0], cliprect);
- state->m_sys24_bitmap.fill(0, cliprect);
+ m_sys24_bitmap.fill(0, cliprect);
segas24_tile *tile = screen.machine().device<segas24_tile>("tile");
- tile->draw(state->m_sys24_bitmap, cliprect, 7, 0, 0);
- tile->draw(state->m_sys24_bitmap, cliprect, 6, 0, 0);
- tile->draw(state->m_sys24_bitmap, cliprect, 5, 0, 0);
- tile->draw(state->m_sys24_bitmap, cliprect, 4, 0, 0);
+ tile->draw(m_sys24_bitmap, cliprect, 7, 0, 0);
+ tile->draw(m_sys24_bitmap, cliprect, 6, 0, 0);
+ tile->draw(m_sys24_bitmap, cliprect, 5, 0, 0);
+ tile->draw(m_sys24_bitmap, cliprect, 4, 0, 0);
- copybitmap_trans(bitmap, state->m_sys24_bitmap, 0, 0, 0, 0, cliprect, 0);
+ copybitmap_trans(bitmap, m_sys24_bitmap, 0, 0, 0, 0, cliprect, 0);
/* tell the rasterizer we're starting a frame */
- model2_3d_frame_start(state);
+ model2_3d_frame_start(this);
/* let the geometry engine do it's thing */
- geo_parse(state);
+ geo_parse(this);
/* have the rasterizer output the frame */
- model2_3d_frame_end( state, bitmap, cliprect );
+ model2_3d_frame_end( this, bitmap, cliprect );
- state->m_sys24_bitmap.fill(0, cliprect);
- tile->draw(state->m_sys24_bitmap, cliprect, 3, 0, 0);
- tile->draw(state->m_sys24_bitmap, cliprect, 2, 0, 0);
- tile->draw(state->m_sys24_bitmap, cliprect, 1, 0, 0);
- tile->draw(state->m_sys24_bitmap, cliprect, 0, 0, 0);
+ m_sys24_bitmap.fill(0, cliprect);
+ tile->draw(m_sys24_bitmap, cliprect, 3, 0, 0);
+ tile->draw(m_sys24_bitmap, cliprect, 2, 0, 0);
+ tile->draw(m_sys24_bitmap, cliprect, 1, 0, 0);
+ tile->draw(m_sys24_bitmap, cliprect, 0, 0, 0);
- copybitmap_trans(bitmap, state->m_sys24_bitmap, 0, 0, 0, 0, cliprect, 0);
+ copybitmap_trans(bitmap, m_sys24_bitmap, 0, 0, 0, 0, cliprect, 0);
return 0;
}
diff --git a/src/mame/video/model3.c b/src/mame/video/model3.c
index a5d5b1122d4..21564b4406d 100644
--- a/src/mame/video/model3.c
+++ b/src/mame/video/model3.c
@@ -333,17 +333,16 @@ static void copy_screen(running_machine &machine, bitmap_ind16 &bitmap, const re
}
#endif
-SCREEN_UPDATE_IND16( model3 )
+UINT32 model3_state::screen_update_model3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- model3_state *state = screen.machine().driver_data<model3_state>();
#if 0
int layer_scroll_x[4], layer_scroll_y[4];
UINT32 layer_data[4];
- layer_data[0] = BYTE_REVERSE32((UINT32)(state->m_layer_scroll[0] >> 32));
- layer_data[1] = BYTE_REVERSE32((UINT32)(state->m_layer_scroll[0] >> 0));
- layer_data[2] = BYTE_REVERSE32((UINT32)(state->m_layer_scroll[1] >> 32));
- layer_data[3] = BYTE_REVERSE32((UINT32)(state->m_layer_scroll[1] >> 0));
+ layer_data[0] = BYTE_REVERSE32((UINT32)(m_layer_scroll[0] >> 32));
+ layer_data[1] = BYTE_REVERSE32((UINT32)(m_layer_scroll[0] >> 0));
+ layer_data[2] = BYTE_REVERSE32((UINT32)(m_layer_scroll[1] >> 32));
+ layer_data[3] = BYTE_REVERSE32((UINT32)(m_layer_scroll[1] >> 0));
layer_scroll_x[0] = (layer_data[0] & 0x8000) ? (layer_data[0] & 0x1ff) : -(layer_data[0] & 0x1ff);
layer_scroll_y[0] = (layer_data[0] & 0x8000) ? (layer_data[0] & 0x1ff) : -(layer_data[0] & 0x1ff);
layer_scroll_x[1] = (layer_data[1] & 0x8000) ? (layer_data[1] & 0x1ff) : -(layer_data[1] & 0x1ff);
@@ -353,58 +352,58 @@ SCREEN_UPDATE_IND16( model3 )
layer_scroll_x[3] = (layer_data[3] & 0x8000) ? (layer_data[3] & 0x1ff) : -(layer_data[3] & 0x1ff);
layer_scroll_y[3] = (layer_data[3] & 0x8000) ? (layer_data[3] & 0x1ff) : -(layer_data[3] & 0x1ff);
#endif
- state->m_screen_clip = (rectangle*)&cliprect;
+ m_screen_clip = (rectangle*)&cliprect;
- state->m_clip3d = cliprect;
+ m_clip3d = cliprect;
/* layer disable debug keys */
- state->m_tick++;
- if( state->m_tick >= 5 ) {
- state->m_tick = 0;
+ m_tick++;
+ if( m_tick >= 5 ) {
+ m_tick = 0;
if( screen.machine().input().code_pressed(KEYCODE_Y) )
- state->m_debug_layer_disable ^= 0x1;
+ m_debug_layer_disable ^= 0x1;
if( screen.machine().input().code_pressed(KEYCODE_U) )
- state->m_debug_layer_disable ^= 0x2;
+ m_debug_layer_disable ^= 0x2;
if( screen.machine().input().code_pressed(KEYCODE_I) )
- state->m_debug_layer_disable ^= 0x4;
+ m_debug_layer_disable ^= 0x4;
if( screen.machine().input().code_pressed(KEYCODE_O) )
- state->m_debug_layer_disable ^= 0x8;
+ m_debug_layer_disable ^= 0x8;
if( screen.machine().input().code_pressed(KEYCODE_T) )
- state->m_debug_layer_disable ^= 0x10;
+ m_debug_layer_disable ^= 0x10;
}
bitmap.fill(0, cliprect);
- if (!(state->m_debug_layer_disable & 0x8))
- draw_layer(screen.machine(), bitmap, cliprect, 3, (state->m_layer_enable >> 3) & 0x1);
+ if (!(m_debug_layer_disable & 0x8))
+ draw_layer(screen.machine(), bitmap, cliprect, 3, (m_layer_enable >> 3) & 0x1);
- if (!(state->m_debug_layer_disable & 0x4))
- draw_layer(screen.machine(), bitmap, cliprect, 2, (state->m_layer_enable >> 2) & 0x1);
+ if (!(m_debug_layer_disable & 0x4))
+ draw_layer(screen.machine(), bitmap, cliprect, 2, (m_layer_enable >> 2) & 0x1);
- if( !(state->m_debug_layer_disable & 0x10) )
+ if( !(m_debug_layer_disable & 0x10) )
{
#if 0
- if(state->m_real3d_display_list) {
- state->m_zbuffer.fill(0, cliprect);
- state->m_bitmap3d.fill(0x8000, cliprect);
+ if(m_real3d_display_list) {
+ m_zbuffer.fill(0, cliprect);
+ m_bitmap3d.fill(0x8000, cliprect);
real3d_traverse_display_list(screen.machine());
}
#endif
- copybitmap_trans(bitmap, state->m_bitmap3d, 0, 0, 0, 0, cliprect, 0x8000);
+ copybitmap_trans(bitmap, m_bitmap3d, 0, 0, 0, 0, cliprect, 0x8000);
}
- if (!(state->m_debug_layer_disable & 0x2))
- draw_layer(screen.machine(), bitmap, cliprect, 1, (state->m_layer_enable >> 1) & 0x1);
+ if (!(m_debug_layer_disable & 0x2))
+ draw_layer(screen.machine(), bitmap, cliprect, 1, (m_layer_enable >> 1) & 0x1);
- if (!(state->m_debug_layer_disable & 0x1))
- draw_layer(screen.machine(), bitmap, cliprect, 0, (state->m_layer_enable >> 0) & 0x1);
+ if (!(m_debug_layer_disable & 0x1))
+ draw_layer(screen.machine(), bitmap, cliprect, 0, (m_layer_enable >> 0) & 0x1);
//copy_screen(bitmap, cliprect);
//draw_texture_sheet(bitmap, cliprect);
- state->m_real3d_display_list = 0;
+ m_real3d_display_list = 0;
return 0;
}
diff --git a/src/mame/video/momoko.c b/src/mame/video/momoko.c
index 8d9947b3cf4..ac32d6d3f4f 100644
--- a/src/mame/video/momoko.c
+++ b/src/mame/video/momoko.c
@@ -101,27 +101,26 @@ static void momoko_draw_bg_pri( running_machine &machine, bitmap_ind16 &bitmap,
/****************************************************************************/
-SCREEN_UPDATE_IND16( momoko )
+UINT32 momoko_state::screen_update_momoko(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- momoko_state *state = screen.machine().driver_data<momoko_state>();
int x, y, dx, dy, rx, ry, radr, chr, sy, fx, fy, px, py, offs, col, pri, flip ;
- UINT8 *spriteram = state->m_spriteram;
+ UINT8 *spriteram = m_spriteram;
UINT8 *BG_MAP = screen.machine().root_device().memregion("user1")->base();
UINT8 *BG_COL_MAP = screen.machine().root_device().memregion("user2")->base();
UINT8 *FG_MAP = screen.machine().root_device().memregion("user3")->base();
- UINT8 *TEXT_COLOR = state->memregion("proms")->base();
+ UINT8 *TEXT_COLOR = memregion("proms")->base();
- flip = state->m_flipscreen ^ (screen.machine().root_device().ioport("FAKE")->read() & 0x01);
+ flip = m_flipscreen ^ (screen.machine().root_device().ioport("FAKE")->read() & 0x01);
/* draw BG layer */
- dx = (7 - state->m_bg_scrollx[0]) & 7;
- dy = (7 - state->m_bg_scrolly[0]) & 7;
- rx = (state->m_bg_scrollx[0] + state->m_bg_scrollx[1] * 256) >> 3;
- ry = (state->m_bg_scrolly[0] + state->m_bg_scrolly[1] * 256) >> 3;
+ dx = (7 - m_bg_scrollx[0]) & 7;
+ dy = (7 - m_bg_scrolly[0]) & 7;
+ rx = (m_bg_scrollx[0] + m_bg_scrollx[1] * 256) >> 3;
+ ry = (m_bg_scrolly[0] + m_bg_scrolly[1] * 256) >> 3;
- if (state->m_bg_mask == 0)
+ if (m_bg_mask == 0)
{
for (y = 0; y < 29; y++)
{
@@ -129,8 +128,8 @@ SCREEN_UPDATE_IND16( momoko )
{
radr = ((ry + y + 2) & 0x3ff) * 128 + ((rx + x) & 0x7f);
chr = BG_MAP[radr];
- col = BG_COL_MAP[chr + state->m_bg_select * 512 + state->m_bg_priority * 256] & 0x0f;
- chr = chr + state->m_bg_select * 512;
+ col = BG_COL_MAP[chr + m_bg_select * 512 + m_bg_priority * 256] & 0x0f;
+ chr = chr + m_bg_select * 512;
if (flip == 0)
{
@@ -186,7 +185,7 @@ SCREEN_UPDATE_IND16( momoko )
/* draw BG layer */
- if (state->m_bg_mask ==0)
+ if (m_bg_mask ==0)
{
for (y = 0; y < 29; y++)
{
@@ -194,7 +193,7 @@ SCREEN_UPDATE_IND16( momoko )
{
radr = ((ry + y + 2) & 0x3ff) * 128 + ((rx + x) & 0x7f) ;
chr = BG_MAP[radr] ;
- col = BG_COL_MAP[chr + state->m_bg_select * 512 + state->m_bg_priority * 256];
+ col = BG_COL_MAP[chr + m_bg_select * 512 + m_bg_priority * 256];
pri = (col & 0x10) >> 1;
if (flip == 0)
@@ -210,7 +209,7 @@ SCREEN_UPDATE_IND16( momoko )
if (pri != 0)
{
col = col & 0x0f;
- chr = chr + state->m_bg_select * 512;
+ chr = chr + m_bg_select * 512;
momoko_draw_bg_pri(screen.machine(), bitmap, chr, col, flip, flip, px, py, pri);
}
}
@@ -219,7 +218,7 @@ SCREEN_UPDATE_IND16( momoko )
/* draw sprites (others) */
- for (offs = 9 * 4; offs < state->m_spriteram.bytes(); offs += 4)
+ for (offs = 9 * 4; offs < m_spriteram.bytes(); offs += 4)
{
chr = spriteram[offs + 1] | ((spriteram[offs + 2] & 0x60) << 3);
chr = ((chr & 0x380) << 1) | (chr & 0x7f);
@@ -253,12 +252,12 @@ SCREEN_UPDATE_IND16( momoko )
for (x = 0; x < 32; x++)
{
sy = y;
- if (state->m_text_mode == 0)
+ if (m_text_mode == 0)
col = TEXT_COLOR[(sy >> 3) + 0x100] & 0x0f;
else
{
if (TEXT_COLOR[y] < 0x08)
- sy += state->m_text_scrolly;
+ sy += m_text_scrolly;
col = (TEXT_COLOR[y] & 0x07) + 0x10;
}
dy = sy & 7;
@@ -273,7 +272,7 @@ SCREEN_UPDATE_IND16( momoko )
py = 255 - y;
}
drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0],
- state->m_videoram[(sy >> 3) * 32 + x] * 8 + dy,
+ m_videoram[(sy >> 3) * 32 + x] * 8 + dy,
col,
flip,0,
px,py,0);
@@ -282,18 +281,18 @@ SCREEN_UPDATE_IND16( momoko )
/* draw FG layer */
- if (state->m_fg_mask == 0)
+ if (m_fg_mask == 0)
{
- dx = (7 - state->m_fg_scrollx) & 7;
- dy = (7 - state->m_fg_scrolly) & 7;
- rx = state->m_fg_scrollx >> 3;
- ry = state->m_fg_scrolly >> 3;
+ dx = (7 - m_fg_scrollx) & 7;
+ dy = (7 - m_fg_scrolly) & 7;
+ rx = m_fg_scrollx >> 3;
+ ry = m_fg_scrolly >> 3;
for (y = 0; y < 29; y++)
{
for (x = 0; x < 32; x++)
{
- radr = ((ry + y + 34) & 0x3f) * 0x20 + ((rx + x) & 0x1f) + (state->m_fg_select & 3) * 0x800;
+ radr = ((ry + y + 34) & 0x3f) * 0x20 + ((rx + x) & 0x1f) + (m_fg_select & 3) * 0x800;
chr = FG_MAP[radr] ;
if (flip == 0)
{
diff --git a/src/mame/video/moo.c b/src/mame/video/moo.c
index 459d61b2ca0..28e5a9e4f1a 100644
--- a/src/mame/video/moo.c
+++ b/src/mame/video/moo.c
@@ -62,25 +62,24 @@ VIDEO_START_MEMBER(moo_state,moo)
}
}
-SCREEN_UPDATE_RGB32(moo)
+UINT32 moo_state::screen_update_moo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- moo_state *state = screen.machine().driver_data<moo_state>();
static const int K053251_CI[4] = { K053251_CI1, K053251_CI2, K053251_CI3, K053251_CI4 };
int layers[3];
int new_colorbase, plane, dirty, alpha;
- state->m_sprite_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI0);
- state->m_layer_colorbase[0] = 0x70;
+ m_sprite_colorbase = k053251_get_palette_index(m_k053251, K053251_CI0);
+ m_layer_colorbase[0] = 0x70;
- if (k056832_get_layer_association(state->m_k056832))
+ if (k056832_get_layer_association(m_k056832))
{
for (plane = 1; plane < 4; plane++)
{
- new_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI[plane]);
- if (state->m_layer_colorbase[plane] != new_colorbase)
+ new_colorbase = k053251_get_palette_index(m_k053251, K053251_CI[plane]);
+ if (m_layer_colorbase[plane] != new_colorbase)
{
- state->m_layer_colorbase[plane] = new_colorbase;
- k056832_mark_plane_dirty(state->m_k056832, plane);
+ m_layer_colorbase[plane] = new_colorbase;
+ k056832_mark_plane_dirty(m_k056832, plane);
}
}
}
@@ -88,47 +87,47 @@ SCREEN_UPDATE_RGB32(moo)
{
for (dirty = 0, plane = 1; plane < 4; plane++)
{
- new_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI[plane]);
- if (state->m_layer_colorbase[plane] != new_colorbase)
+ new_colorbase = k053251_get_palette_index(m_k053251, K053251_CI[plane]);
+ if (m_layer_colorbase[plane] != new_colorbase)
{
- state->m_layer_colorbase[plane] = new_colorbase;
+ m_layer_colorbase[plane] = new_colorbase;
dirty = 1;
}
}
if (dirty)
- k056832_mark_all_tmaps_dirty(state->m_k056832);
+ k056832_mark_all_tmaps_dirty(m_k056832);
}
layers[0] = 1;
- state->m_layerpri[0] = k053251_get_priority(state->m_k053251, K053251_CI2);
+ m_layerpri[0] = k053251_get_priority(m_k053251, K053251_CI2);
layers[1] = 2;
- state->m_layerpri[1] = k053251_get_priority(state->m_k053251, K053251_CI3);
+ m_layerpri[1] = k053251_get_priority(m_k053251, K053251_CI3);
layers[2] = 3;
- state->m_layerpri[2] = k053251_get_priority(state->m_k053251, K053251_CI4);
+ m_layerpri[2] = k053251_get_priority(m_k053251, K053251_CI4);
- konami_sortlayers3(layers, state->m_layerpri);
+ konami_sortlayers3(layers, m_layerpri);
- k054338_update_all_shadows(state->m_k054338, 0);
- k054338_fill_backcolor(state->m_k054338, bitmap, 0);
+ k054338_update_all_shadows(m_k054338, 0);
+ k054338_fill_backcolor(m_k054338, bitmap, 0);
screen.machine().priority_bitmap.fill(0, cliprect);
- if (state->m_layerpri[0] < k053251_get_priority(state->m_k053251, K053251_CI1)) /* bucky hides back layer behind background */
- k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, layers[0], 0, 1);
+ if (m_layerpri[0] < k053251_get_priority(m_k053251, K053251_CI1)) /* bucky hides back layer behind background */
+ k056832_tilemap_draw(m_k056832, bitmap, cliprect, layers[0], 0, 1);
- k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, layers[1], 0, 2);
+ k056832_tilemap_draw(m_k056832, bitmap, cliprect, layers[1], 0, 2);
// Enabling alpha improves fog and fading in Moo but causes other things to disappear.
// There is probably a control bit somewhere to turn off alpha blending.
- state->m_alpha_enabled = k054338_register_r(state->m_k054338, K338_REG_CONTROL) & K338_CTL_MIXPRI; // DUMMY
+ m_alpha_enabled = k054338_register_r(m_k054338, K338_REG_CONTROL) & K338_CTL_MIXPRI; // DUMMY
- alpha = (state->m_alpha_enabled) ? k054338_set_alpha_level(state->m_k054338, 1) : 255;
+ alpha = (m_alpha_enabled) ? k054338_set_alpha_level(m_k054338, 1) : 255;
if (alpha > 0)
- k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, layers[2], TILEMAP_DRAW_ALPHA(alpha), 4);
+ k056832_tilemap_draw(m_k056832, bitmap, cliprect, layers[2], TILEMAP_DRAW_ALPHA(alpha), 4);
- k053247_sprites_draw(state->m_k053246, bitmap, cliprect);
+ k053247_sprites_draw(m_k053246, bitmap, cliprect);
- k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, 0, 0, 0);
+ k056832_tilemap_draw(m_k056832, bitmap, cliprect, 0, 0, 0);
return 0;
}
diff --git a/src/mame/video/mosaic.c b/src/mame/video/mosaic.c
index e3a6b81cd6f..465ebb42c1b 100644
--- a/src/mame/video/mosaic.c
+++ b/src/mame/video/mosaic.c
@@ -75,11 +75,10 @@ WRITE8_MEMBER(mosaic_state::mosaic_bgvideoram_w)
-SCREEN_UPDATE_IND16( mosaic )
+UINT32 mosaic_state::screen_update_mosaic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mosaic_state *state = screen.machine().driver_data<mosaic_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/mouser.c b/src/mame/video/mouser.c
index 853dab65e28..3f922930f27 100644
--- a/src/mame/video/mouser.c
+++ b/src/mame/video/mouser.c
@@ -55,10 +55,9 @@ WRITE8_MEMBER(mouser_state::mouser_flip_screen_y_w)
flip_screen_y_set(~data & 1);
}
-SCREEN_UPDATE_IND16( mouser )
+UINT32 mouser_state::screen_update_mouser(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mouser_state *state = screen.machine().driver_data<mouser_state>();
- UINT8 *spriteram = state->m_spriteram;
+ UINT8 *spriteram = m_spriteram;
int offs;
int sx, sy;
int flipx, flipy;
@@ -72,12 +71,12 @@ SCREEN_UPDATE_IND16( mouser )
sx = offs % 32;
sy = offs / 32;
- if (state->flip_screen_x())
+ if (flip_screen_x())
{
sx = 31 - sx;
}
- if (state->flip_screen_y())
+ if (flip_screen_y())
{
sy = 31 - sy;
}
@@ -92,9 +91,9 @@ SCREEN_UPDATE_IND16( mouser )
color_offs = offs % 32 + ((256 + 8 * (offs / 32) - spriteram[offs % 32] )% 256) / 8 * 32;
drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],
- state->m_videoram[offs] | (state->m_colorram[color_offs] >> 5) * 256 | ((state->m_colorram[color_offs] >> 4) & 1) * 512,
- state->m_colorram[color_offs]%16,
- state->flip_screen_x(),state->flip_screen_y(),
+ m_videoram[offs] | (m_colorram[color_offs] >> 5) * 256 | ((m_colorram[color_offs] >> 4) & 1) * 512,
+ m_colorram[color_offs]%16,
+ flip_screen_x(),flip_screen_y(),
8*sx,scrolled_y_position);
}
@@ -109,13 +108,13 @@ SCREEN_UPDATE_IND16( mouser )
flipx = BIT(spriteram[offs], 6);
flipy = BIT(spriteram[offs], 7);
- if (state->flip_screen_x())
+ if (flip_screen_x())
{
flipx = !flipx;
sx = 240 - sx;
}
- if (state->flip_screen_y())
+ if (flip_screen_y())
{
flipy = !flipy;
sy = 238 - sy;
@@ -138,13 +137,13 @@ SCREEN_UPDATE_IND16( mouser )
flipx = BIT(spriteram[offs], 6);
flipy = BIT(spriteram[offs], 7);
- if (state->flip_screen_x())
+ if (flip_screen_x())
{
flipx = !flipx;
sx = 240 - sx;
}
- if (state->flip_screen_y())
+ if (flip_screen_y())
{
flipy = !flipy;
sy = 238 - sy;
diff --git a/src/mame/video/mrdo.c b/src/mame/video/mrdo.c
index 9571144b4ac..5d92c287089 100644
--- a/src/mame/video/mrdo.c
+++ b/src/mame/video/mrdo.c
@@ -254,13 +254,12 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap,const r
}
}
-SCREEN_UPDATE_IND16( mrdo )
+UINT32 mrdo_state::screen_update_mrdo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mrdo_state *state = screen.machine().driver_data<mrdo_state>();
bitmap.fill(0, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/mrflea.c b/src/mame/video/mrflea.c
index fb19119bb1b..25ee3be4de6 100644
--- a/src/mame/video/mrflea.c
+++ b/src/mame/video/mrflea.c
@@ -101,7 +101,7 @@ static void draw_background( running_machine &machine, bitmap_ind16 &bitmap, con
}
}
-SCREEN_UPDATE_IND16( mrflea )
+UINT32 mrflea_state::screen_update_mrflea(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
draw_background(screen.machine(), bitmap, cliprect);
draw_sprites(screen.machine(), bitmap, cliprect);
diff --git a/src/mame/video/mrjong.c b/src/mame/video/mrjong.c
index 79d7aa15acf..93ac9d37f94 100644
--- a/src/mame/video/mrjong.c
+++ b/src/mame/video/mrjong.c
@@ -142,10 +142,9 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( mrjong )
+UINT32 mrjong_state::screen_update_mrjong(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mrjong_state *state = screen.machine().driver_data<mrjong_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/ms32.c b/src/mame/video/ms32.c
index f575e79ab17..02f65da6332 100644
--- a/src/mame/video/ms32.c
+++ b/src/mame/video/ms32.c
@@ -348,9 +348,8 @@ static void draw_roz(running_machine &machine, bitmap_ind16 &bitmap, const recta
-SCREEN_UPDATE_RGB32( ms32 )
+UINT32 ms32_state::screen_update_ms32(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- ms32_state *state = screen.machine().driver_data<ms32_state>();
int scrollx,scrolly;
int asc_pri;
int scr_pri;
@@ -369,17 +368,17 @@ SCREEN_UPDATE_RGB32( ms32 )
for (i = 0;i < 0x10000;i++) // colors 0x3000-0x3fff are not used
update_color(screen.machine(), i);
- scrollx = state->m_tx_scroll[0x00/4] + state->m_tx_scroll[0x08/4] + 0x18;
- scrolly = state->m_tx_scroll[0x0c/4] + state->m_tx_scroll[0x14/4];
- state->m_tx_tilemap->set_scrollx(0, scrollx);
- state->m_tx_tilemap->set_scrolly(0, scrolly);
+ scrollx = m_tx_scroll[0x00/4] + m_tx_scroll[0x08/4] + 0x18;
+ scrolly = m_tx_scroll[0x0c/4] + m_tx_scroll[0x14/4];
+ m_tx_tilemap->set_scrollx(0, scrollx);
+ m_tx_tilemap->set_scrolly(0, scrolly);
- scrollx = state->m_bg_scroll[0x00/4] + state->m_bg_scroll[0x08/4] + 0x10;
- scrolly = state->m_bg_scroll[0x0c/4] + state->m_bg_scroll[0x14/4];
- state->m_bg_tilemap->set_scrollx(0, scrollx);
- state->m_bg_tilemap->set_scrolly(0, scrolly);
- state->m_bg_tilemap_alt->set_scrollx(0, scrollx);
- state->m_bg_tilemap_alt->set_scrolly(0, scrolly);
+ scrollx = m_bg_scroll[0x00/4] + m_bg_scroll[0x08/4] + 0x10;
+ scrolly = m_bg_scroll[0x0c/4] + m_bg_scroll[0x14/4];
+ m_bg_tilemap->set_scrollx(0, scrollx);
+ m_bg_tilemap->set_scrolly(0, scrolly);
+ m_bg_tilemap_alt->set_scrollx(0, scrollx);
+ m_bg_tilemap_alt->set_scrolly(0, scrolly);
screen.machine().priority_bitmap.fill(0, cliprect);
@@ -388,75 +387,75 @@ SCREEN_UPDATE_RGB32( ms32 )
/* TODO: 0 is correct for gametngk, but break f1superb scrolling grid (text at
top and bottom of the screen becomes black on black) */
- state->m_temp_bitmap_tilemaps.fill(0, cliprect); /* bg color */
+ m_temp_bitmap_tilemaps.fill(0, cliprect); /* bg color */
/* clear our sprite bitmaps */
- state->m_temp_bitmap_sprites.fill(0, cliprect);
- state->m_temp_bitmap_sprites_pri.fill(0, cliprect);
+ m_temp_bitmap_sprites.fill(0, cliprect);
+ m_temp_bitmap_sprites_pri.fill(0, cliprect);
- draw_sprites(screen.machine(), state->m_temp_bitmap_sprites, state->m_temp_bitmap_sprites_pri, cliprect, state->m_sprram_16, 0x20000, 0, state->m_reverse_sprite_order);
+ draw_sprites(screen.machine(), m_temp_bitmap_sprites, m_temp_bitmap_sprites_pri, cliprect, m_sprram_16, 0x20000, 0, m_reverse_sprite_order);
asc_pri = scr_pri = rot_pri = 0;
- if((state->m_priram_8[0x2b00 / 2] & 0x00ff) == 0x0034)
+ if((m_priram_8[0x2b00 / 2] & 0x00ff) == 0x0034)
asc_pri++;
else
rot_pri++;
- if((state->m_priram_8[0x2e00 / 2] & 0x00ff) == 0x0034)
+ if((m_priram_8[0x2e00 / 2] & 0x00ff) == 0x0034)
asc_pri++;
else
scr_pri++;
- if((state->m_priram_8[0x3a00 / 2] & 0x00ff) == 0x000c)
+ if((m_priram_8[0x3a00 / 2] & 0x00ff) == 0x000c)
scr_pri++;
else
rot_pri++;
if (rot_pri == 0)
- draw_roz(screen.machine(), state->m_temp_bitmap_tilemaps, cliprect, 1 << 1);
+ draw_roz(screen.machine(), m_temp_bitmap_tilemaps, cliprect, 1 << 1);
else if (scr_pri == 0)
- if (state->m_tilemaplayoutcontrol&1)
+ if (m_tilemaplayoutcontrol&1)
{
- state->m_bg_tilemap_alt->draw(state->m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0);
+ m_bg_tilemap_alt->draw(m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0);
}
else
{
- state->m_bg_tilemap->draw(state->m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0);
+ m_bg_tilemap->draw(m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0);
}
else if (asc_pri == 0)
- state->m_tx_tilemap->draw(state->m_temp_bitmap_tilemaps, cliprect, 0, 1 << 2);
+ m_tx_tilemap->draw(m_temp_bitmap_tilemaps, cliprect, 0, 1 << 2);
if (rot_pri == 1)
- draw_roz(screen.machine(), state->m_temp_bitmap_tilemaps, cliprect, 1 << 1);
+ draw_roz(screen.machine(), m_temp_bitmap_tilemaps, cliprect, 1 << 1);
else if (scr_pri == 1)
- if (state->m_tilemaplayoutcontrol&1)
+ if (m_tilemaplayoutcontrol&1)
{
- state->m_bg_tilemap_alt->draw(state->m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0);
+ m_bg_tilemap_alt->draw(m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0);
}
else
{
- state->m_bg_tilemap->draw(state->m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0);
+ m_bg_tilemap->draw(m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0);
}
else if (asc_pri == 1)
- state->m_tx_tilemap->draw(state->m_temp_bitmap_tilemaps, cliprect, 0, 1 << 2);
+ m_tx_tilemap->draw(m_temp_bitmap_tilemaps, cliprect, 0, 1 << 2);
if (rot_pri == 2)
- draw_roz(screen.machine(), state->m_temp_bitmap_tilemaps, cliprect, 1 << 1);
+ draw_roz(screen.machine(), m_temp_bitmap_tilemaps, cliprect, 1 << 1);
else if (scr_pri == 2)
- if (state->m_tilemaplayoutcontrol&1)
+ if (m_tilemaplayoutcontrol&1)
{
- state->m_bg_tilemap_alt->draw(state->m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0);
+ m_bg_tilemap_alt->draw(m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0);
}
else
{
- state->m_bg_tilemap->draw(state->m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0);
+ m_bg_tilemap->draw(m_temp_bitmap_tilemaps, cliprect, 0, 1 << 0);
}
else if (asc_pri == 2)
- state->m_tx_tilemap->draw(state->m_temp_bitmap_tilemaps, cliprect, 0, 1 << 2);
+ m_tx_tilemap->draw(m_temp_bitmap_tilemaps, cliprect, 0, 1 << 2);
/* MIX it! */
/* this mixing isn't 100% accurate, it should be using ALL the data in
@@ -479,10 +478,10 @@ SCREEN_UPDATE_RGB32( ms32 )
for (yy=0;yy<height;yy++)
{
- srcptr_tile = &state->m_temp_bitmap_tilemaps.pix16(yy);
+ srcptr_tile = &m_temp_bitmap_tilemaps.pix16(yy);
srcptr_tilepri = &screen.machine().priority_bitmap.pix8(yy);
- srcptr_spri = &state->m_temp_bitmap_sprites.pix16(yy);
- //srcptr_spripri = &state->m_temp_bitmap_sprites_pri.pix8(yy);
+ srcptr_spri = &m_temp_bitmap_sprites.pix16(yy);
+ //srcptr_spripri = &m_temp_bitmap_sprites_pri.pix8(yy);
dstptr_bitmap = &bitmap.pix32(yy);
for (xx=0;xx<width;xx++)
{
@@ -495,14 +494,14 @@ SCREEN_UPDATE_RGB32( ms32 )
int primask = 0;
// get sprite priority value back out of bitmap/colour data (this is done in draw_sprite for standalone hw)
- if (state->m_priram_8[(spritepri | 0x0a00 | 0x1500) / 2] & 0x38) primask |= 1 << 0;
- if (state->m_priram_8[(spritepri | 0x0a00 | 0x1400) / 2] & 0x38) primask |= 1 << 1;
- if (state->m_priram_8[(spritepri | 0x0a00 | 0x1100) / 2] & 0x38) primask |= 1 << 2;
- if (state->m_priram_8[(spritepri | 0x0a00 | 0x1000) / 2] & 0x38) primask |= 1 << 3;
- if (state->m_priram_8[(spritepri | 0x0a00 | 0x0500) / 2] & 0x38) primask |= 1 << 4;
- if (state->m_priram_8[(spritepri | 0x0a00 | 0x0400) / 2] & 0x38) primask |= 1 << 5;
- if (state->m_priram_8[(spritepri | 0x0a00 | 0x0100) / 2] & 0x38) primask |= 1 << 6;
- if (state->m_priram_8[(spritepri | 0x0a00 | 0x0000) / 2] & 0x38) primask |= 1 << 7;
+ if (m_priram_8[(spritepri | 0x0a00 | 0x1500) / 2] & 0x38) primask |= 1 << 0;
+ if (m_priram_8[(spritepri | 0x0a00 | 0x1400) / 2] & 0x38) primask |= 1 << 1;
+ if (m_priram_8[(spritepri | 0x0a00 | 0x1100) / 2] & 0x38) primask |= 1 << 2;
+ if (m_priram_8[(spritepri | 0x0a00 | 0x1000) / 2] & 0x38) primask |= 1 << 3;
+ if (m_priram_8[(spritepri | 0x0a00 | 0x0500) / 2] & 0x38) primask |= 1 << 4;
+ if (m_priram_8[(spritepri | 0x0a00 | 0x0400) / 2] & 0x38) primask |= 1 << 5;
+ if (m_priram_8[(spritepri | 0x0a00 | 0x0100) / 2] & 0x38) primask |= 1 << 6;
+ if (m_priram_8[(spritepri | 0x0a00 | 0x0000) / 2] & 0x38) primask |= 1 << 7;
if (primask == 0x00)
diff --git a/src/mame/video/msisaac.c b/src/mame/video/msisaac.c
index a942a2bcee5..961f97b202e 100644
--- a/src/mame/video/msisaac.c
+++ b/src/mame/video/msisaac.c
@@ -230,12 +230,11 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( msisaac )
+UINT32 msisaac_state::screen_update_msisaac(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- msisaac_state *state = screen.machine().driver_data<msisaac_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/mugsmash.c b/src/mame/video/mugsmash.c
index 556d3a2a785..c7d9afd0bb1 100644
--- a/src/mame/video/mugsmash.c
+++ b/src/mame/video/mugsmash.c
@@ -145,12 +145,11 @@ void mugsmash_state::video_start()
m_tilemap2 = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(mugsmash_state::get_mugsmash_tile_info2),this), TILEMAP_SCAN_ROWS, 16, 16, 32, 32);
}
-SCREEN_UPDATE_IND16( mugsmash )
+UINT32 mugsmash_state::screen_update_mugsmash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mugsmash_state *state = screen.machine().driver_data<mugsmash_state>();
- state->m_tilemap2->draw(bitmap, cliprect, 0, 0);
- state->m_tilemap1->draw(bitmap, cliprect, 0, 0);
+ m_tilemap2->draw(bitmap, cliprect, 0, 0);
+ m_tilemap1->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/munchmo.c b/src/mame/video/munchmo.c
index 70931efb84b..86f3ad211a3 100644
--- a/src/mame/video/munchmo.c
+++ b/src/mame/video/munchmo.c
@@ -148,7 +148,7 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( mnchmobl )
+UINT32 munchmo_state::screen_update_mnchmobl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
draw_background(screen.machine(), bitmap, cliprect);
draw_sprites(screen.machine(), bitmap, cliprect);
diff --git a/src/mame/video/mustache.c b/src/mame/video/mustache.c
index 579243c565e..3a22690799a 100644
--- a/src/mame/video/mustache.c
+++ b/src/mame/video/mustache.c
@@ -139,10 +139,9 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( mustache )
+UINT32 mustache_state::screen_update_mustache(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mustache_state *state = screen.machine().driver_data<mustache_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/mw8080bw.c b/src/mame/video/mw8080bw.c
index 088d8ba3d8a..c4e8696219e 100644
--- a/src/mame/video/mw8080bw.c
+++ b/src/mame/video/mw8080bw.c
@@ -8,9 +8,8 @@
#include "includes/mw8080bw.h"
-SCREEN_UPDATE_RGB32( mw8080bw )
+UINT32 mw8080bw_state::screen_update_mw8080bw(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- mw8080bw_state *state = screen.machine().driver_data<mw8080bw_state>();
UINT8 x = 0;
UINT8 y = MW8080BW_VCOUNTER_START_NO_VBLANK;
UINT8 video_data = 0;
@@ -51,7 +50,7 @@ SCREEN_UPDATE_RGB32( mw8080bw )
else if ((x & 0x07) == 0x04)
{
offs_t offs = ((offs_t)y << 5) | (x >> 3);
- video_data = state->m_main_ram[offs];
+ video_data = m_main_ram[offs];
}
}
@@ -75,9 +74,8 @@ SCREEN_UPDATE_RGB32( mw8080bw )
#define PHANTOM2_SIDE_TRENCH_LIGHT_RGB32_PEN MAKE_RGB(0x72, 0x72, 0x72)
-SCREEN_UPDATE_RGB32( spcenctr )
+UINT32 mw8080bw_state::screen_update_spcenctr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- mw8080bw_state *state = screen.machine().driver_data<mw8080bw_state>();
UINT8 line_buf[256]; /* 256x1 bit RAM */
UINT8 x = 0;
@@ -86,9 +84,9 @@ SCREEN_UPDATE_RGB32( spcenctr )
UINT8 draw_line = 0;
UINT8 draw_trench = 0;
UINT8 draw_floor = 0;
- UINT8 width = state->m_spcenctr_trench_width;
+ UINT8 width = m_spcenctr_trench_width;
UINT8 floor_width = width;
- UINT8 center = state->m_spcenctr_trench_center;
+ UINT8 center = m_spcenctr_trench_center;
memset(line_buf, 0, 256);
@@ -150,7 +148,7 @@ SCREEN_UPDATE_RGB32( spcenctr )
/* update the trench control for the next line */
offs = ((offs_t)y << 5) | 0x1f;
- trench_control = state->m_main_ram[offs];
+ trench_control = m_main_ram[offs];
if (trench_control & 0x40)
draw_trench = 1;
@@ -168,11 +166,11 @@ SCREEN_UPDATE_RGB32( spcenctr )
/* add the lower 2 bits stored in the slope array to width */
if (draw_trench)
- width = width + (state->m_spcenctr_trench_slope[y & 0x0f] & 0x03);
+ width = width + (m_spcenctr_trench_slope[y & 0x0f] & 0x03);
/* add the higher 2 bits stored in the slope array to floor width */
if (draw_floor)
- floor_width = floor_width + ((state->m_spcenctr_trench_slope[y & 0x0f] & 0x0c) >> 2);
+ floor_width = floor_width + ((m_spcenctr_trench_slope[y & 0x0f] & 0x0c) >> 2);
/* next row, video_data is now 0, so the next line will start
with 4 blank pixels */
@@ -186,7 +184,7 @@ SCREEN_UPDATE_RGB32( spcenctr )
else if ((x & 0x07) == 0x04)
{
offs_t offs = ((offs_t)y << 5) | (x >> 3);
- video_data = state->m_main_ram[offs];
+ video_data = m_main_ram[offs];
}
}
@@ -219,17 +217,16 @@ SCREEN_UPDATE_RGB32( spcenctr )
#define PHANTOM2_RGB32_CLOUD_PEN MAKE_RGB(0xc0, 0xc0, 0xc0)
-SCREEN_UPDATE_RGB32( phantom2 )
+UINT32 mw8080bw_state::screen_update_phantom2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- mw8080bw_state *state = screen.machine().driver_data<mw8080bw_state>();
UINT8 x = 0;
UINT8 y = MW8080BW_VCOUNTER_START_NO_VBLANK;
UINT8 video_data = 0;
UINT8 cloud_data = 0;
- UINT16 cloud_counter = state->m_phantom2_cloud_counter;
+ UINT16 cloud_counter = m_phantom2_cloud_counter;
- UINT8 *cloud_region = state->memregion("proms")->base();
+ UINT8 *cloud_region = memregion("proms")->base();
while (1)
{
@@ -303,7 +300,7 @@ SCREEN_UPDATE_RGB32( phantom2 )
else if ((x & 0x07) == 0x04)
{
offs_t offs = ((offs_t)y << 5) | (x >> 3);
- video_data = state->m_main_ram[offs];
+ video_data = m_main_ram[offs];
}
}
@@ -311,17 +308,16 @@ SCREEN_UPDATE_RGB32( phantom2 )
}
-SCREEN_VBLANK( phantom2 )
+void mw8080bw_state::screen_eof_phantom2(screen_device &screen, bool state)
{
// falling edge
- if (!vblank_on)
+ if (!state)
{
- mw8080bw_state *state = screen.machine().driver_data<mw8080bw_state>();
- state->m_phantom2_cloud_counter += MW8080BW_VTOTAL;
+ m_phantom2_cloud_counter += MW8080BW_VTOTAL;
- if (state->m_phantom2_cloud_counter >= PHANTOM2_CLOUD_COUNTER_END)
- state->m_phantom2_cloud_counter = PHANTOM2_CLOUD_COUNTER_START + (state->m_phantom2_cloud_counter - PHANTOM2_CLOUD_COUNTER_END);
+ if (m_phantom2_cloud_counter >= PHANTOM2_CLOUD_COUNTER_END)
+ m_phantom2_cloud_counter = PHANTOM2_CLOUD_COUNTER_START + (m_phantom2_cloud_counter - PHANTOM2_CLOUD_COUNTER_END);
}
}
@@ -335,13 +331,12 @@ SCREEN_VBLANK( phantom2 )
/* the flip screen circuit is just a couple of relays on the monitor PCB */
-SCREEN_UPDATE_RGB32( invaders )
+UINT32 mw8080bw_state::screen_update_invaders(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- mw8080bw_state *state = screen.machine().driver_data<mw8080bw_state>();
UINT8 x = 0;
UINT8 y = MW8080BW_VCOUNTER_START_NO_VBLANK;
UINT8 video_data = 0;
- UINT8 flip = state->m_invaders_flip_screen;
+ UINT8 flip = m_invaders_flip_screen;
while (1)
{
@@ -387,7 +382,7 @@ SCREEN_UPDATE_RGB32( invaders )
else if ((x & 0x07) == 0x04)
{
offs_t offs = ((offs_t)y << 5) | (x >> 3);
- video_data = state->m_main_ram[offs];
+ video_data = m_main_ram[offs];
}
}
diff --git a/src/mame/video/mystston.c b/src/mame/video/mystston.c
index fcc5727ba58..1c0a4cdc1e8 100644
--- a/src/mame/video/mystston.c
+++ b/src/mame/video/mystston.c
@@ -249,21 +249,20 @@ VIDEO_RESET_MEMBER(mystston_state,mystston)
*
*************************************/
-static SCREEN_UPDATE_IND16( mystston )
+UINT32 mystston_state::screen_update_mystston(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mystston_state *state = screen.machine().driver_data<mystston_state>();
- int flip = (*state->m_video_control & 0x80) ^ ((screen.machine().root_device().ioport("DSW1")->read() & 0x20) << 2);
+ int flip = (*m_video_control & 0x80) ^ ((screen.machine().root_device().ioport("DSW1")->read() & 0x20) << 2);
- set_palette(screen.machine(), state);
+ set_palette(screen.machine(), this);
screen.machine().tilemap().mark_all_dirty();
- state->m_bg_tilemap->set_scrolly(0, *state->m_scroll);
+ m_bg_tilemap->set_scrolly(0, *m_scroll);
screen.machine().tilemap().set_flip_all(flip ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(bitmap, cliprect, screen.machine().gfx[2], flip);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -325,5 +324,5 @@ MACHINE_CONFIG_FRAGMENT( mystston_video )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(mystston)
+ MCFG_SCREEN_UPDATE_DRIVER(mystston_state, screen_update_mystston)
MACHINE_CONFIG_END
diff --git a/src/mame/video/mystwarr.c b/src/mame/video/mystwarr.c
index 93234ff27de..57d9294dc20 100644
--- a/src/mame/video/mystwarr.c
+++ b/src/mame/video/mystwarr.c
@@ -321,63 +321,60 @@ VIDEO_START_MEMBER(mystwarr_state,martchmp)
-SCREEN_UPDATE_RGB32(mystwarr)
+UINT32 mystwarr_state::screen_update_mystwarr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- mystwarr_state *state = screen.machine().driver_data<mystwarr_state>();
int i, old, blendmode=0;
- if (state->m_cbparam<0) state->m_cbparam=0; else if (state->m_cbparam>=32) blendmode=(1<<16|GXMIX_BLEND_FORCE)<<2; //* water hack (TEMPORARY)
+ if (m_cbparam<0) m_cbparam=0; else if (m_cbparam>=32) blendmode=(1<<16|GXMIX_BLEND_FORCE)<<2; //* water hack (TEMPORARY)
for (i = 0; i < 4; i++)
{
- old = state->m_layer_colorbase[i];
- state->m_layer_colorbase[i] = K055555_get_palette_index(i)<<4;
- if( old != state->m_layer_colorbase[i] ) K056832_mark_plane_dirty(i);
+ old = m_layer_colorbase[i];
+ m_layer_colorbase[i] = K055555_get_palette_index(i)<<4;
+ if( old != m_layer_colorbase[i] ) K056832_mark_plane_dirty(i);
}
- state->m_sprite_colorbase = K055555_get_palette_index(4)<<5;
+ m_sprite_colorbase = K055555_get_palette_index(4)<<5;
konamigx_mixer(screen.machine(), bitmap, cliprect, 0, 0, 0, 0, blendmode, 0, 0);
return 0;
}
-SCREEN_UPDATE_RGB32(metamrph)
+UINT32 mystwarr_state::screen_update_metamrph(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- mystwarr_state *state = screen.machine().driver_data<mystwarr_state>();
int i, old;
for (i = 0; i < 4; i++)
{
- old = state->m_layer_colorbase[i];
- state->m_layer_colorbase[i] = K055555_get_palette_index(i)<<4;
- if (old != state->m_layer_colorbase[i]) K056832_mark_plane_dirty(i);
+ old = m_layer_colorbase[i];
+ m_layer_colorbase[i] = K055555_get_palette_index(i)<<4;
+ if (old != m_layer_colorbase[i]) K056832_mark_plane_dirty(i);
}
- state->m_sprite_colorbase = K055555_get_palette_index(4)<<4;
+ m_sprite_colorbase = K055555_get_palette_index(4)<<4;
konamigx_mixer(screen.machine(), bitmap, cliprect, 0, GXSUB_K053250 | GXSUB_4BPP, 0, 0, 0, 0, 0);
return 0;
}
-SCREEN_UPDATE_RGB32(martchmp)
+UINT32 mystwarr_state::screen_update_martchmp(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- mystwarr_state *state = screen.machine().driver_data<mystwarr_state>();
int i, old, blendmode;
for (i = 0; i < 4; i++)
{
- old = state->m_layer_colorbase[i];
- state->m_layer_colorbase[i] = K055555_get_palette_index(i)<<4;
- if (old != state->m_layer_colorbase[i]) K056832_mark_plane_dirty(i);
+ old = m_layer_colorbase[i];
+ m_layer_colorbase[i] = K055555_get_palette_index(i)<<4;
+ if (old != m_layer_colorbase[i]) K056832_mark_plane_dirty(i);
}
- state->m_sprite_colorbase = K055555_get_palette_index(4)<<5;
+ m_sprite_colorbase = K055555_get_palette_index(4)<<5;
- state->m_cbparam = K055555_read_register(K55_PRIINP_8);
- state->m_oinprion = K055555_read_register(K55_OINPRI_ON);
+ m_cbparam = K055555_read_register(K55_PRIINP_8);
+ m_oinprion = K055555_read_register(K55_OINPRI_ON);
// not quite right
- blendmode = (state->m_oinprion==0xef && K054338_read_register(K338_REG_PBLEND)) ? ((1<<16|GXMIX_BLEND_FORCE)<<2) : 0;
+ blendmode = (m_oinprion==0xef && K054338_read_register(K338_REG_PBLEND)) ? ((1<<16|GXMIX_BLEND_FORCE)<<2) : 0;
konamigx_mixer(screen.machine(), bitmap, cliprect, 0, 0, 0, 0, blendmode, 0, 0);
return 0;
@@ -487,19 +484,18 @@ READ16_MEMBER(mystwarr_state::ddd_053936_tilerom_2_r)
return ROM[offset]<<8;
}
-SCREEN_UPDATE_RGB32(dadandrn) /* and gaiapols */
+UINT32 mystwarr_state::screen_update_dadandrn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)/* and gaiapols */
{
- mystwarr_state *state = screen.machine().driver_data<mystwarr_state>();
int i, newbase, dirty, rozmode;
- if (state->m_gametype == 0)
+ if (m_gametype == 0)
{
- state->m_sprite_colorbase = (K055555_get_palette_index(4)<<4)&0x7f;
+ m_sprite_colorbase = (K055555_get_palette_index(4)<<4)&0x7f;
rozmode = GXSUB_4BPP;
}
else
{
- state->m_sprite_colorbase = (K055555_get_palette_index(4)<<3)&0x7f;
+ m_sprite_colorbase = (K055555_get_palette_index(4)<<3)&0x7f;
rozmode = GXSUB_8BPP;
}
@@ -508,9 +504,9 @@ SCREEN_UPDATE_RGB32(dadandrn) /* and gaiapols */
for (i=0; i<4; i++)
{
newbase = K055555_get_palette_index(i)<<4;
- if (state->m_layer_colorbase[i] != newbase)
+ if (m_layer_colorbase[i] != newbase)
{
- state->m_layer_colorbase[i] = newbase;
+ m_layer_colorbase[i] = newbase;
K056832_mark_plane_dirty(i);
}
}
@@ -520,9 +516,9 @@ SCREEN_UPDATE_RGB32(dadandrn) /* and gaiapols */
for (dirty=0, i=0; i<4; i++)
{
newbase = K055555_get_palette_index(i)<<4;
- if (state->m_layer_colorbase[i] != newbase)
+ if (m_layer_colorbase[i] != newbase)
{
- state->m_layer_colorbase[i] = newbase;
+ m_layer_colorbase[i] = newbase;
dirty = 1;
}
}
@@ -530,17 +526,17 @@ SCREEN_UPDATE_RGB32(dadandrn) /* and gaiapols */
}
- state->m_last_psac_colorbase = state->m_sub1_colorbase;
- state->m_sub1_colorbase = K055555_get_palette_index(5);
+ m_last_psac_colorbase = m_sub1_colorbase;
+ m_sub1_colorbase = K055555_get_palette_index(5);
- if (state->m_last_psac_colorbase != state->m_sub1_colorbase)
+ if (m_last_psac_colorbase != m_sub1_colorbase)
{
- state->m_ult_936_tilemap->mark_all_dirty();
+ m_ult_936_tilemap->mark_all_dirty();
if (MW_VERBOSE)
popmessage("K053936: PSAC colorbase changed");
}
- konamigx_mixer(screen.machine(), bitmap, cliprect, (state->m_roz_enable) ? state->m_ult_936_tilemap : 0, rozmode, 0, 0, 0, 0, 0);
+ konamigx_mixer(screen.machine(), bitmap, cliprect, (m_roz_enable) ? m_ult_936_tilemap : 0, rozmode, 0, 0, 0, 0, 0);
return 0;
}
diff --git a/src/mame/video/n64.c b/src/mame/video/n64.c
index f66ee4d9820..6ad01389eb8 100644
--- a/src/mame/video/n64.c
+++ b/src/mame/video/n64.c
@@ -3847,14 +3847,13 @@ void n64_state::video_start()
}
}
-SCREEN_UPDATE_RGB32(n64)
+UINT32 n64_state::screen_update_n64(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- n64_state *state = screen.machine().driver_data<n64_state>();
n64_periphs *n64 = screen.machine().device<n64_periphs>("rcp");
- state->m_rdp->visarea = screen.visible_area();
+ m_rdp->visarea = screen.visible_area();
//UINT16 *frame_buffer = (UINT16*)&rdram[(n64->vi_origin & 0xffffff) >> 2];
- //UINT8 *cvg_buffer = &state->m_rdp.HiddenBits[((n64->vi_origin & 0xffffff) >> 2) >> 1];
+ //UINT8 *cvg_buffer = &m_rdp.HiddenBits[((n64->vi_origin & 0xffffff) >> 2) >> 1];
//int vibuffering = ((n64->vi_control & 2) && fsaa && divot);
//vibuffering = 0; // Disabled for now
@@ -3891,16 +3890,16 @@ SCREEN_UPDATE_RGB32(n64)
}
*/
- state->m_rdp->wait();
- state->m_rdp->AuxBufPtr = 0;
+ m_rdp->wait();
+ m_rdp->AuxBufPtr = 0;
if (n64->vi_blank)
{
- bitmap.fill(0, state->m_rdp->visarea);
+ bitmap.fill(0, m_rdp->visarea);
return 0;
}
- state->m_rdp->VideoUpdate(n64, bitmap);
+ m_rdp->VideoUpdate(n64, bitmap);
return 0;
}
diff --git a/src/mame/video/n8080.c b/src/mame/video/n8080.c
index 92d8e068595..dfbbe93f875 100644
--- a/src/mame/video/n8080.c
+++ b/src/mame/video/n8080.c
@@ -135,16 +135,15 @@ VIDEO_START_MEMBER(n8080_state,helifire)
}
-SCREEN_UPDATE_IND16( spacefev )
+UINT32 n8080_state::screen_update_spacefev(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- n8080_state *state = screen.machine().driver_data<n8080_state>();
- UINT8 mask = state->flip_screen() ? 0xff : 0x00;
+ UINT8 mask = flip_screen() ? 0xff : 0x00;
int x;
int y;
- const UINT8* pRAM = state->m_videoram;
- const UINT8* pPROM = state->memregion("proms")->base();
+ const UINT8* pRAM = m_videoram;
+ const UINT8* pPROM = memregion("proms")->base();
for (y = 0; y < 256; y++)
{
@@ -156,7 +155,7 @@ SCREEN_UPDATE_IND16( spacefev )
UINT8 color = 0;
- if (state->m_spacefev_red_screen)
+ if (m_spacefev_red_screen)
color = 1;
else
{
@@ -164,7 +163,7 @@ SCREEN_UPDATE_IND16( spacefev )
if ((x >> 3) == 0x06)
{
- color = state->m_spacefev_red_cannon ? 1 : 7;
+ color = m_spacefev_red_cannon ? 1 : 7;
}
if ((x >> 3) == 0x1b)
@@ -205,17 +204,16 @@ SCREEN_UPDATE_IND16( spacefev )
}
-SCREEN_UPDATE_IND16( sheriff )
+UINT32 n8080_state::screen_update_sheriff(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- n8080_state *state = screen.machine().driver_data<n8080_state>();
- UINT8 mask = state->flip_screen() ? 0xff : 0x00;
+ UINT8 mask = flip_screen() ? 0xff : 0x00;
- const UINT8* pPROM = state->memregion("proms")->base();
+ const UINT8* pPROM = memregion("proms")->base();
int x;
int y;
- const UINT8* pRAM = state->m_videoram;
+ const UINT8* pRAM = m_videoram;
for (y = 0; y < 256; y++)
{
@@ -227,13 +225,13 @@ SCREEN_UPDATE_IND16( sheriff )
UINT8 color = pPROM[32 * (y >> 3) + (x >> 3)];
- if (state->m_sheriff_color_mode == 1 && !(color & 8))
- color = state->m_sheriff_color_data ^ 7;
+ if (m_sheriff_color_mode == 1 && !(color & 8))
+ color = m_sheriff_color_data ^ 7;
- if (state->m_sheriff_color_mode == 2)
- color = state->m_sheriff_color_data ^ 7;
+ if (m_sheriff_color_mode == 2)
+ color = m_sheriff_color_data ^ 7;
- if (state->m_sheriff_color_mode == 3)
+ if (m_sheriff_color_mode == 3)
color = 7;
for (n = 0; n < 8; n++)
@@ -248,16 +246,15 @@ SCREEN_UPDATE_IND16( sheriff )
}
-SCREEN_UPDATE_IND16( helifire )
+UINT32 n8080_state::screen_update_helifire(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- n8080_state *state = screen.machine().driver_data<n8080_state>();
int SUN_BRIGHTNESS = screen.machine().root_device().ioport("POT0")->read();
int SEA_BRIGHTNESS = screen.machine().root_device().ioport("POT1")->read();
static const int wave[8] = { 0, 1, 2, 2, 2, 1, 0, 0 };
- unsigned saved_mv = state->m_helifire_mv;
- unsigned saved_sc = state->m_helifire_sc;
+ unsigned saved_mv = m_helifire_mv;
+ unsigned saved_sc = m_helifire_sc;
int x;
int y;
@@ -266,7 +263,7 @@ SCREEN_UPDATE_IND16( helifire )
{
UINT16* pLine = &bitmap.pix16(y);
- int level = 120 + wave[state->m_helifire_mv & 7];
+ int level = 120 + wave[m_helifire_mv & 7];
/* draw sky */
@@ -277,28 +274,28 @@ SCREEN_UPDATE_IND16( helifire )
/* draw stars */
- if (state->m_helifire_mv % 8 == 4) /* upper half */
+ if (m_helifire_mv % 8 == 4) /* upper half */
{
- int step = (320 * (state->m_helifire_mv - 0)) % sizeof state->m_helifire_LSFR;
+ int step = (320 * (m_helifire_mv - 0)) % sizeof m_helifire_LSFR;
int data =
- ((state->m_helifire_LSFR[step] & 1) << 6) |
- ((state->m_helifire_LSFR[step] & 2) << 4) |
- ((state->m_helifire_LSFR[step] & 4) << 2) |
- ((state->m_helifire_LSFR[step] & 8) << 0);
+ ((m_helifire_LSFR[step] & 1) << 6) |
+ ((m_helifire_LSFR[step] & 2) << 4) |
+ ((m_helifire_LSFR[step] & 4) << 2) |
+ ((m_helifire_LSFR[step] & 8) << 0);
pLine[0x80 + data] |= 0x100;
}
- if (state->m_helifire_mv % 8 == 5) /* lower half */
+ if (m_helifire_mv % 8 == 5) /* lower half */
{
- int step = (320 * (state->m_helifire_mv - 1)) % sizeof state->m_helifire_LSFR;
+ int step = (320 * (m_helifire_mv - 1)) % sizeof m_helifire_LSFR;
int data =
- ((state->m_helifire_LSFR[step] & 1) << 6) |
- ((state->m_helifire_LSFR[step] & 2) << 4) |
- ((state->m_helifire_LSFR[step] & 4) << 2) |
- ((state->m_helifire_LSFR[step] & 8) << 0);
+ ((m_helifire_LSFR[step] & 1) << 6) |
+ ((m_helifire_LSFR[step] & 2) << 4) |
+ ((m_helifire_LSFR[step] & 4) << 2) |
+ ((m_helifire_LSFR[step] & 8) << 0);
pLine[0x00 + data] |= 0x100;
}
@@ -320,18 +317,18 @@ SCREEN_UPDATE_IND16( helifire )
for (n = 0; n < 8; n++)
{
- if (state->flip_screen())
+ if (flip_screen())
{
- if ((state->m_videoram[offset ^ 0x1fff] << n) & 0x80)
+ if ((m_videoram[offset ^ 0x1fff] << n) & 0x80)
{
- pLine[x + n] = state->m_colorram[offset ^ 0x1fff] & 7;
+ pLine[x + n] = m_colorram[offset ^ 0x1fff] & 7;
}
}
else
{
- if ((state->m_videoram[offset] >> n) & 1)
+ if ((m_videoram[offset] >> n) & 1)
{
- pLine[x + n] = state->m_colorram[offset] & 7;
+ pLine[x + n] = m_colorram[offset] & 7;
}
}
}
@@ -342,19 +339,18 @@ SCREEN_UPDATE_IND16( helifire )
helifire_next_line(screen.machine());
}
- state->m_helifire_mv = saved_mv;
- state->m_helifire_sc = saved_sc;
+ m_helifire_mv = saved_mv;
+ m_helifire_sc = saved_sc;
return 0;
}
-SCREEN_VBLANK( helifire )
+void n8080_state::screen_eof_helifire(screen_device &screen, bool state)
{
// falling edge
- if (!vblank_on)
+ if (!state)
{
- n8080_state *state = screen.machine().driver_data<n8080_state>();
- int n = (screen.machine().primary_screen->frame_number() >> 1) % sizeof state->m_helifire_LSFR;
+ int n = (screen.machine().primary_screen->frame_number() >> 1) % sizeof m_helifire_LSFR;
int i;
@@ -364,9 +360,9 @@ SCREEN_VBLANK( helifire )
int G = (i & 2);
int B = (i & 4);
- if (state->m_helifire_flash)
+ if (m_helifire_flash)
{
- if (state->m_helifire_LSFR[n] & 0x20)
+ if (m_helifire_LSFR[n] & 0x20)
{
G |= B;
}
diff --git a/src/mame/video/namcofl.c b/src/mame/video/namcofl.c
index 3db44a24ddf..cd9280f35a7 100644
--- a/src/mame/video/namcofl.c
+++ b/src/mame/video/namcofl.c
@@ -80,9 +80,8 @@ static void TilemapCB(running_machine &machine, UINT16 code, int *tile, int *mas
}
-SCREEN_UPDATE_IND16( namcofl )
+UINT32 namcofl_state::screen_update_namcofl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- namcofl_state *state = screen.machine().driver_data<namcofl_state>();
int pri;
namcofl_install_palette(screen.machine());
@@ -91,10 +90,10 @@ SCREEN_UPDATE_IND16( namcofl )
for( pri=0; pri<16; pri++ )
{
- state->c169_roz_draw(bitmap, cliprect, pri);
+ c169_roz_draw(bitmap, cliprect, pri);
if((pri&1)==0)
namco_tilemap_draw( bitmap, cliprect, pri>>1 );
- state->c355_obj_draw(bitmap, cliprect, pri );
+ c355_obj_draw(bitmap, cliprect, pri );
}
return 0;
diff --git a/src/mame/video/namcona1.c b/src/mame/video/namcona1.c
index f3945109fe8..93e8ec48135 100644
--- a/src/mame/video/namcona1.c
+++ b/src/mame/video/namcona1.c
@@ -630,42 +630,41 @@ static void draw_background(running_machine &machine, bitmap_ind16 &bitmap, cons
}
} /* draw_background */
-SCREEN_UPDATE_IND16( namcona1 )
+UINT32 namcona1_state::screen_update_namcona1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- namcona1_state *state = screen.machine().driver_data<namcona1_state>();
int which;
int priority;
- /* int flipscreen = state->m_vreg[0x98/2]; (TBA) */
+ /* int flipscreen = m_vreg[0x98/2]; (TBA) */
- if( state->m_vreg[0x8e/2] )
+ if( m_vreg[0x8e/2] )
{ /* gfx enabled */
- if( state->m_palette_is_dirty )
+ if( m_palette_is_dirty )
{
/* palette updates are delayed when graphics are disabled */
for( which=0; which<0x1000; which++ )
{
UpdatePalette(screen.machine(), which );
}
- state->m_palette_is_dirty = 0;
+ m_palette_is_dirty = 0;
}
UpdateGfx(screen.machine());
for( which=0; which<NAMCONA1_NUM_TILEMAPS; which++ )
{
- int tilemap_color = state->m_vreg[0xb0/2+(which&3)]&0xf;
- if( tilemap_color!=state->m_tilemap_palette_bank[which] )
+ int tilemap_color = m_vreg[0xb0/2+(which&3)]&0xf;
+ if( tilemap_color!=m_tilemap_palette_bank[which] )
{
- state->m_bg_tilemap[which] ->mark_all_dirty();
- state->m_tilemap_palette_bank[which] = tilemap_color;
+ m_bg_tilemap[which] ->mark_all_dirty();
+ m_tilemap_palette_bank[which] = tilemap_color;
}
} /* next tilemap */
{ /* ROZ tilemap */
- int color = state->m_vreg[0xba/2]&0xf;
- if( color != state->m_roz_palette )
+ int color = m_vreg[0xba/2]&0xf;
+ if( color != m_roz_palette )
{
- state->m_roz_tilemap ->mark_all_dirty();
- state->m_roz_palette = color;
+ m_roz_tilemap ->mark_all_dirty();
+ m_roz_palette = color;
}
}
@@ -680,11 +679,11 @@ SCREEN_UPDATE_IND16( namcona1 )
int pri;
if( which==4 )
{
- pri = state->m_vreg[0xa0/2+5]&0x7;
+ pri = m_vreg[0xa0/2+5]&0x7;
}
else
{
- pri = state->m_vreg[0xa0/2+which]&0x7;
+ pri = m_vreg[0xa0/2+which]&0x7;
}
if( pri == priority )
{
diff --git a/src/mame/video/namconb1.c b/src/mame/video/namconb1.c
index e6c0ec09533..db0463d0c48 100644
--- a/src/mame/video/namconb1.c
+++ b/src/mame/video/namconb1.c
@@ -132,14 +132,13 @@ video_update_common(running_machine &machine, bitmap_ind16 &bitmap, const rectan
/************************************************************************************************/
-SCREEN_UPDATE_IND16( namconb1 )
+UINT32 namconb1_state::screen_update_namconb1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
/* compute window for custom screen blanking */
rectangle clip;
//004a 016a 0021 0101 0144 0020 (nebulas ray)
- namconb1_state *state = screen.machine().driver_data<namconb1_state>();
- UINT32 xclip = state->m_generic_paletteram_32[0x1800/4];
- UINT32 yclip = state->m_generic_paletteram_32[0x1804/4];
+ UINT32 xclip = m_generic_paletteram_32[0x1800/4];
+ UINT32 yclip = m_generic_paletteram_32[0x1804/4];
clip.min_x = (xclip>>16) - 0x4a;
clip.max_x = (xclip&0xffff) - 0x4a - 1;
clip.min_y = (yclip>>16) - 0x21;
@@ -170,14 +169,13 @@ VIDEO_START_MEMBER(namconb1_state,namconb1)
/****************************************************************************************************/
-SCREEN_UPDATE_IND16( namconb2 )
+UINT32 namconb1_state::screen_update_namconb2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- namconb1_state *state = screen.machine().driver_data<namconb1_state>();
/* compute window for custom screen blanking */
rectangle clip;
//004a016a 00210101 01440020
- UINT32 xclip = state->m_generic_paletteram_32[0x1800/4];
- UINT32 yclip = state->m_generic_paletteram_32[0x1804/4];
+ UINT32 xclip = m_generic_paletteram_32[0x1800/4];
+ UINT32 yclip = m_generic_paletteram_32[0x1804/4];
clip.min_x = (xclip>>16) - 0x4b;
clip.max_x = (xclip&0xffff) - 0x4b - 1;
clip.min_y = (yclip>>16) - 0x21;
@@ -187,10 +185,10 @@ SCREEN_UPDATE_IND16( namconb2 )
bitmap.fill(get_black_pen(screen.machine()), cliprect );
- if( memcmp(state->m_tilemap_tile_bank,state->m_tilebank32,sizeof(state->m_tilemap_tile_bank))!=0 )
+ if( memcmp(m_tilemap_tile_bank,m_tilebank32,sizeof(m_tilemap_tile_bank))!=0 )
{
namco_tilemap_invalidate();
- memcpy(state->m_tilemap_tile_bank,state->m_tilebank32,sizeof(state->m_tilemap_tile_bank));
+ memcpy(m_tilemap_tile_bank,m_tilebank32,sizeof(m_tilemap_tile_bank));
}
video_update_common( screen.machine(), bitmap, clip, 1 );
return 0;
diff --git a/src/mame/video/namcos1.c b/src/mame/video/namcos1.c
index cacd9636b63..dd3d3eb5016 100644
--- a/src/mame/video/namcos1.c
+++ b/src/mame/video/namcos1.c
@@ -363,29 +363,28 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
-SCREEN_UPDATE_IND16( namcos1 )
+UINT32 namcos1_state::screen_update_namcos1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- namcos1_state *state = screen.machine().driver_data<namcos1_state>();
int i, j, scrollx, scrolly, priority;
rectangle new_clip = cliprect;
/* flip screen is embedded in the sprite control registers */
- /* can't use state->flip_screen_set() because the visible area is asymmetrical */
- state->flip_screen_set_no_update(state->m_spriteram[0x0ff6] & 1);
- screen.machine().tilemap().set_flip_all(state->flip_screen() ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
+ /* can't use flip_screen_set() because the visible area is asymmetrical */
+ flip_screen_set_no_update(m_spriteram[0x0ff6] & 1);
+ screen.machine().tilemap().set_flip_all(flip_screen() ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
/* background color */
bitmap.fill(get_black_pen(screen.machine()), cliprect);
/* berabohm uses asymmetrical visibility windows to iris on the character */
- i = ((state->m_cus116[0] << 8) | state->m_cus116[1]) - 1; // min x
+ i = ((m_cus116[0] << 8) | m_cus116[1]) - 1; // min x
if (new_clip.min_x < i) new_clip.min_x = i;
- i = ((state->m_cus116[2] << 8) | state->m_cus116[3]) - 1 - 1; // max x
+ i = ((m_cus116[2] << 8) | m_cus116[3]) - 1 - 1; // max x
if (new_clip.max_x > i) new_clip.max_x = i;
- i = ((state->m_cus116[4] << 8) | state->m_cus116[5]) - 0x11; // min y
+ i = ((m_cus116[4] << 8) | m_cus116[5]) - 0x11; // min y
if (new_clip.min_y < i) new_clip.min_y = i;
- i = ((state->m_cus116[6] << 8) | state->m_cus116[7]) - 0x11 - 1; // max y
+ i = ((m_cus116[6] << 8) | m_cus116[7]) - 0x11 - 1; // max y
if (new_clip.max_y > i) new_clip.max_y = i;
if (new_clip.empty())
@@ -394,24 +393,24 @@ SCREEN_UPDATE_IND16( namcos1 )
/* set palette base */
for (i = 0;i < 6;i++)
- state->m_bg_tilemap[i]->set_palette_offset((state->m_playfield_control[i + 24] & 7) * 256);
+ m_bg_tilemap[i]->set_palette_offset((m_playfield_control[i + 24] & 7) * 256);
for (i = 0;i < 4;i++)
{
static const int disp_x[] = { 25, 27, 28, 29 };
j = i << 2;
- scrollx = ( state->m_playfield_control[j+1] + (state->m_playfield_control[j+0]<<8) ) - disp_x[i];
- scrolly = ( state->m_playfield_control[j+3] + (state->m_playfield_control[j+2]<<8) ) + 8;
+ scrollx = ( m_playfield_control[j+1] + (m_playfield_control[j+0]<<8) ) - disp_x[i];
+ scrolly = ( m_playfield_control[j+3] + (m_playfield_control[j+2]<<8) ) + 8;
- if (state->flip_screen())
+ if (flip_screen())
{
scrollx = -scrollx;
scrolly = -scrolly;
}
- state->m_bg_tilemap[i]->set_scrollx(0,scrollx);
- state->m_bg_tilemap[i]->set_scrolly(0,scrolly);
+ m_bg_tilemap[i]->set_scrollx(0,scrollx);
+ m_bg_tilemap[i]->set_scrolly(0,scrolly);
}
@@ -423,8 +422,8 @@ SCREEN_UPDATE_IND16( namcos1 )
{
for (i = 0;i < 6;i++)
{
- if (state->m_playfield_control[16 + i] == priority)
- state->m_bg_tilemap[i]->draw(bitmap, new_clip, 0,priority,0);
+ if (m_playfield_control[16 + i] == priority)
+ m_bg_tilemap[i]->draw(bitmap, new_clip, 0,priority,0);
}
}
@@ -433,15 +432,14 @@ SCREEN_UPDATE_IND16( namcos1 )
}
-SCREEN_VBLANK( namcos1 )
+void namcos1_state::screen_eof_namcos1(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- namcos1_state *state = screen.machine().driver_data<namcos1_state>();
- if (state->m_copy_sprites)
+ if (m_copy_sprites)
{
- UINT8 *spriteram = state->m_spriteram + 0x800;
+ UINT8 *spriteram = m_spriteram + 0x800;
int i,j;
for (i = 0;i < 0x800;i += 16)
@@ -450,7 +448,7 @@ SCREEN_VBLANK( namcos1 )
spriteram[i+j] = spriteram[i+j - 6];
}
- state->m_copy_sprites = 0;
+ m_copy_sprites = 0;
}
}
}
diff --git a/src/mame/video/namcos21.c b/src/mame/video/namcos21.c
index 81a734cef16..b101c39dd5d 100644
--- a/src/mame/video/namcos21.c
+++ b/src/mame/video/namcos21.c
@@ -165,44 +165,43 @@ update_palette( running_machine &machine )
} /* update_palette */
-SCREEN_UPDATE_IND16( namcos21 )
+UINT32 namcos21_state::screen_update_namcos21(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- namcos21_state *state = screen.machine().driver_data<namcos21_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
int pivot = 3;
int pri;
update_palette(screen.machine());
bitmap.fill(0xff, cliprect );
- if( state->m_gametype != NAMCOS21_WINRUN91 )
+ if( m_gametype != NAMCOS21_WINRUN91 )
{ /* draw low priority 2d sprites */
- state->c355_obj_draw(bitmap, cliprect, 2 );
- state->c355_obj_draw(bitmap, cliprect, 14 ); //driver's eyes
+ c355_obj_draw(bitmap, cliprect, 2 );
+ c355_obj_draw(bitmap, cliprect, 14 ); //driver's eyes
}
CopyVisiblePolyFrameBuffer( screen.machine(), bitmap, cliprect, 0x7fc0, 0x7ffe );
- if( state->m_gametype != NAMCOS21_WINRUN91 )
+ if( m_gametype != NAMCOS21_WINRUN91 )
{ /* draw low priority 2d sprites */
- state->c355_obj_draw(bitmap, cliprect, 0 );
- state->c355_obj_draw(bitmap, cliprect, 1 );
+ c355_obj_draw(bitmap, cliprect, 0 );
+ c355_obj_draw(bitmap, cliprect, 1 );
}
CopyVisiblePolyFrameBuffer( screen.machine(), bitmap, cliprect, 0, 0x7fbf );
- if( state->m_gametype != NAMCOS21_WINRUN91 )
+ if( m_gametype != NAMCOS21_WINRUN91 )
{ /* draw high priority 2d sprites */
for( pri=pivot; pri<8; pri++ )
{
- state->c355_obj_draw(bitmap, cliprect, pri );
+ c355_obj_draw(bitmap, cliprect, pri );
}
- state->c355_obj_draw(bitmap, cliprect, 15 ); //driver's eyes
+ c355_obj_draw(bitmap, cliprect, 15 ); //driver's eyes
}
else
{ /* winrun bitmap layer */
- int yscroll = -cliprect.min_y+(INT16)state->m_winrun_gpu_register[0x2/2];
- int base = 0x1000+0x100*(state->m_winrun_color&0xf);
+ int yscroll = -cliprect.min_y+(INT16)m_winrun_gpu_register[0x2/2];
+ int base = 0x1000+0x100*(m_winrun_color&0xf);
int sx,sy;
for( sy=cliprect.min_y; sy<=cliprect.max_y; sy++ )
{
diff --git a/src/mame/video/namcos22.c b/src/mame/video/namcos22.c
index 1362c7a4945..446addd95fd 100644
--- a/src/mame/video/namcos22.c
+++ b/src/mame/video/namcos22.c
@@ -2779,9 +2779,8 @@ VIDEO_START_MEMBER(namcos22_state,namcos22s)
VIDEO_START_CALL_MEMBER(common);
}
-SCREEN_UPDATE_RGB32( namcos22s )
+UINT32 namcos22_state::screen_update_namcos22s(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- namcos22_state *state = screen.machine().driver_data<namcos22_state>();
UpdateVideoMixer(screen.machine());
UpdatePalette(screen.machine());
namcos22s_recalc_czram(screen.machine());
@@ -2789,7 +2788,7 @@ SCREEN_UPDATE_RGB32( namcos22s )
// background color
rgbint bg_color;
- rgb_comp_to_rgbint(&bg_color, nthbyte(state->m_gamma,0x08), nthbyte(state->m_gamma,0x09), nthbyte(state->m_gamma,0x0a));
+ rgb_comp_to_rgbint(&bg_color, nthbyte(m_gamma,0x08), nthbyte(m_gamma,0x09), nthbyte(m_gamma,0x0a));
if (mixer.flags&1 && mixer.fadeFactor)
{
rgbint fade_color;
@@ -2799,7 +2798,7 @@ SCREEN_UPDATE_RGB32( namcos22s )
bitmap.fill(rgbint_to_rgb(&bg_color), cliprect);
// layers
- UINT8 layer = nthbyte(state->m_gamma,0x1f);
+ UINT8 layer = nthbyte(m_gamma,0x1f);
if (layer&4) DrawCharacterLayer(screen.machine(), bitmap, cliprect);
if (layer&2) DrawSprites(screen.machine(), bitmap, cliprect);
if (layer&1) DrawPolygons(screen.machine(), bitmap);
@@ -2814,7 +2813,7 @@ SCREEN_UPDATE_RGB32( namcos22s )
FILE *f = fopen( "dump.txt", "wb" );
if( f )
{
- address_space &space = *state->m_maincpu->space(AS_PROGRAM);
+ address_space &space = *m_maincpu->space(AS_PROGRAM);
if (1) // czram
{
@@ -2824,7 +2823,7 @@ SCREEN_UPDATE_RGB32( namcos22s )
fprintf( f, "czram[%d] =", bank );
for( i=0; i<256; i++ )
{
- fprintf( f, " %04x", state->m_banked_czram[bank][i] );
+ fprintf( f, " %04x", m_banked_czram[bank][i] );
}
fprintf( f, "\n" );
}
@@ -2837,7 +2836,7 @@ SCREEN_UPDATE_RGB32( namcos22s )
fprintf(f, "spotram:\n");
for (i=0; i<256; i++)
{
- fprintf(f, "%02X: %04X %04X %04X %04X\n", i, state->m_spotram[i*4+0], state->m_spotram[i*4+1], state->m_spotram[i*4+2], state->m_spotram[i*4+3]);
+ fprintf(f, "%02X: %04X %04X %04X %04X\n", i, m_spotram[i*4+0], m_spotram[i*4+1], m_spotram[i*4+2], m_spotram[i*4+3]);
}
fprintf(f, "\n");
}
@@ -2857,12 +2856,12 @@ SCREEN_UPDATE_RGB32( namcos22s )
}
#endif
-// popmessage("%08X %08X %08X %08X",state->m_czattr[0],state->m_czattr[1],state->m_czattr[2],state->m_czattr[3]);
+// popmessage("%08X %08X %08X %08X",m_czattr[0],m_czattr[1],m_czattr[2],m_czattr[3]);
return 0;
}
-SCREEN_UPDATE_RGB32( namcos22 )
+UINT32 namcos22_state::screen_update_namcos22(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
UpdateVideoMixer(screen.machine());
UpdatePalette(screen.machine());
@@ -2879,7 +2878,7 @@ SCREEN_UPDATE_RGB32( namcos22 )
FILE *f = fopen( "dump.txt", "wb" );
if( f )
{
- address_space &space = *state->m_maincpu->space(AS_PROGRAM);
+ address_space &space = *m_maincpu->space(AS_PROGRAM);
//Dump(space, f,0x90000000, 0x90000003, "led?" );
Dump(space, f,0x90010000, 0x90017fff, "cz_ram");
diff --git a/src/mame/video/namcos86.c b/src/mame/video/namcos86.c
index a822984ed0b..96a7a523c53 100644
--- a/src/mame/video/namcos86.c
+++ b/src/mame/video/namcos86.c
@@ -349,15 +349,14 @@ static void set_scroll(running_machine &machine, int layer)
}
-SCREEN_UPDATE_IND16( namcos86 )
+UINT32 namcos86_state::screen_update_namcos86(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- namcos86_state *state = screen.machine().driver_data<namcos86_state>();
int layer;
/* flip screen is embedded in the sprite control registers */
- /* can't use state->flip_screen_set() because the visible area is asymmetrical */
- state->flip_screen_set_no_update(state->m_spriteram[0x07f6] & 1);
- screen.machine().tilemap().set_flip_all(state->flip_screen() ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
+ /* can't use flip_screen_set() because the visible area is asymmetrical */
+ flip_screen_set_no_update(m_spriteram[0x07f6] & 1);
+ screen.machine().tilemap().set_flip_all(flip_screen() ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
set_scroll(screen.machine(), 0);
set_scroll(screen.machine(), 1);
set_scroll(screen.machine(), 2);
@@ -365,7 +364,7 @@ SCREEN_UPDATE_IND16( namcos86 )
screen.machine().priority_bitmap.fill(0, cliprect);
- bitmap.fill(screen.machine().gfx[0]->colorbase() + 8*state->m_backcolor+7, cliprect);
+ bitmap.fill(screen.machine().gfx[0]->colorbase() + 8*m_backcolor+7, cliprect);
for (layer = 0;layer < 8;layer++)
{
@@ -373,8 +372,8 @@ SCREEN_UPDATE_IND16( namcos86 )
for (i = 3;i >= 0;i--)
{
- if (((state->m_xscroll[i] & 0x0e00) >> 9) == layer)
- state->m_bg_tilemap[i]->draw(bitmap, cliprect, 0,layer,0);
+ if (((m_xscroll[i] & 0x0e00) >> 9) == layer)
+ m_bg_tilemap[i]->draw(bitmap, cliprect, 0,layer,0);
}
}
@@ -383,15 +382,14 @@ SCREEN_UPDATE_IND16( namcos86 )
}
-SCREEN_VBLANK( namcos86 )
+void namcos86_state::screen_eof_namcos86(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- namcos86_state *state = screen.machine().driver_data<namcos86_state>();
- if (state->m_copy_sprites)
+ if (m_copy_sprites)
{
- UINT8 *spriteram = state->m_spriteram;
+ UINT8 *spriteram = m_spriteram;
int i,j;
for (i = 0;i < 0x800;i += 16)
@@ -400,7 +398,7 @@ SCREEN_VBLANK( namcos86 )
spriteram[i+j] = spriteram[i+j - 6];
}
- state->m_copy_sprites = 0;
+ m_copy_sprites = 0;
}
}
}
diff --git a/src/mame/video/naughtyb.c b/src/mame/video/naughtyb.c
index 1972b73a2da..d30928deb66 100644
--- a/src/mame/video/naughtyb.c
+++ b/src/mame/video/naughtyb.c
@@ -180,15 +180,14 @@ WRITE8_MEMBER(naughtyb_state::popflame_videoreg_w)
***************************************************************************/
-SCREEN_UPDATE_IND16( naughtyb )
+UINT32 naughtyb_state::screen_update_naughtyb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
const rectangle scrollvisiblearea(2*8, 34*8-1, 0*8, 28*8-1);
const rectangle leftvisiblearea(0*8, 2*8-1, 0*8, 28*8-1);
const rectangle rightvisiblearea(34*8, 36*8-1, 0*8, 28*8-1);
- naughtyb_state *state = screen.machine().driver_data<naughtyb_state>();
- UINT8 *videoram = state->m_videoram;
- bitmap_ind16 &tmpbitmap = state->m_tmpbitmap;
+ UINT8 *videoram = m_videoram;
+ bitmap_ind16 &tmpbitmap = m_tmpbitmap;
int offs;
// for every character in the Video RAM
@@ -197,7 +196,7 @@ SCREEN_UPDATE_IND16( naughtyb )
{
int sx,sy;
- if ( state->m_cocktail )
+ if ( m_cocktail )
{
if (offs < 0x700)
{
@@ -225,15 +224,15 @@ SCREEN_UPDATE_IND16( naughtyb )
}
drawgfx_opaque(tmpbitmap,tmpbitmap.cliprect(),screen.machine().gfx[0],
- state->m_videoram2[offs] + 256 * state->m_bankreg,
- (state->m_videoram2[offs] >> 5) + 8 * state->m_palreg,
- state->m_cocktail,state->m_cocktail,
+ m_videoram2[offs] + 256 * m_bankreg,
+ (m_videoram2[offs] >> 5) + 8 * m_palreg,
+ m_cocktail,m_cocktail,
8*sx,8*sy);
drawgfx_transpen(tmpbitmap,tmpbitmap.cliprect(),screen.machine().gfx[1],
- videoram[offs] + 256*state->m_bankreg,
- (videoram[offs] >> 5) + 8 * state->m_palreg,
- state->m_cocktail,state->m_cocktail,
+ videoram[offs] + 256*m_bankreg,
+ (videoram[offs] >> 5) + 8 * m_palreg,
+ m_cocktail,m_cocktail,
8*sx,8*sy,0);
}
@@ -244,7 +243,7 @@ SCREEN_UPDATE_IND16( naughtyb )
copybitmap(bitmap,tmpbitmap,0,0,-66*8,0,leftvisiblearea);
copybitmap(bitmap,tmpbitmap,0,0,-30*8,0,rightvisiblearea);
- scrollx = ( state->m_cocktail ) ? *state->m_scrollreg - 239 : -*state->m_scrollreg + 16;
+ scrollx = ( m_cocktail ) ? *m_scrollreg - 239 : -*m_scrollreg + 16;
copyscrollbitmap(bitmap,tmpbitmap,1,&scrollx,0,0,scrollvisiblearea);
}
return 0;
diff --git a/src/mame/video/nbmj8688.c b/src/mame/video/nbmj8688.c
index 8b667bb8709..2b7f9fb1e6f 100644
--- a/src/mame/video/nbmj8688.c
+++ b/src/mame/video/nbmj8688.c
@@ -660,31 +660,30 @@ WRITE8_MEMBER(nbmj8688_state::nbmj8688_HD61830B_both_data_w)
******************************************************************************/
-SCREEN_UPDATE_IND16( mbmj8688 )
+UINT32 nbmj8688_state::screen_update_mbmj8688(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- nbmj8688_state *state = screen.machine().driver_data<nbmj8688_state>();
int x, y;
- if (state->m_mjsikaku_screen_refresh)
+ if (m_mjsikaku_screen_refresh)
{
- state->m_mjsikaku_screen_refresh = 0;
+ m_mjsikaku_screen_refresh = 0;
for (y = 0; y < 256; y++)
{
for (x = 0; x < 512; x++)
{
- update_pixel(state, x, y);
+ update_pixel(this, x, y);
}
}
}
- if (state->m_mjsikaku_dispflag)
+ if (m_mjsikaku_dispflag)
{
int scrolly;
- if (state->m_mjsikaku_flipscreen) scrolly = state->m_mjsikaku_scrolly;
- else scrolly = (-state->m_mjsikaku_scrolly) & 0xff;
+ if (m_mjsikaku_flipscreen) scrolly = m_mjsikaku_scrolly;
+ else scrolly = (-m_mjsikaku_scrolly) & 0xff;
- copybitmap(bitmap, *state->m_mjsikaku_tmpbitmap, 0, 0, 0, scrolly, cliprect);
- copybitmap(bitmap, *state->m_mjsikaku_tmpbitmap, 0, 0, 0, scrolly - 256, cliprect);
+ copybitmap(bitmap, *m_mjsikaku_tmpbitmap, 0, 0, 0, scrolly, cliprect);
+ copybitmap(bitmap, *m_mjsikaku_tmpbitmap, 0, 0, 0, scrolly - 256, cliprect);
}
else
bitmap.fill(0);
@@ -694,15 +693,14 @@ SCREEN_UPDATE_IND16( mbmj8688 )
-SCREEN_UPDATE_IND16( mbmj8688_lcd0 )
+UINT32 nbmj8688_state::screen_update_mbmj8688_lcd0(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- nbmj8688_state *state = screen.machine().driver_data<nbmj8688_state>();
int x, y, b;
for (y = 0;y < 64;y++)
for (x = 0;x < 60;x++)
{
- int data = state->m_HD61830B_ram[0][y * 60 + x];
+ int data = m_HD61830B_ram[0][y * 60 + x];
for (b = 0;b < 8;b++)
bitmap.pix16(y, (8*x+b)) = (data & (1<<b)) ? 0x0000 : 0x18ff;
@@ -710,15 +708,14 @@ SCREEN_UPDATE_IND16( mbmj8688_lcd0 )
return 0;
}
-SCREEN_UPDATE_IND16( mbmj8688_lcd1 )
+UINT32 nbmj8688_state::screen_update_mbmj8688_lcd1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- nbmj8688_state *state = screen.machine().driver_data<nbmj8688_state>();
int x, y, b;
for (y = 0;y < 64;y++)
for (x = 0;x < 60;x++)
{
- int data = state->m_HD61830B_ram[1][y * 60 + x];
+ int data = m_HD61830B_ram[1][y * 60 + x];
for (b = 0;b < 8;b++)
bitmap.pix16(y, (8*x+b)) = (data & (1<<b)) ? 0x0000 : 0x18ff;
diff --git a/src/mame/video/nbmj8891.c b/src/mame/video/nbmj8891.c
index 2712109cedf..1ebf7ccd069 100644
--- a/src/mame/video/nbmj8891.c
+++ b/src/mame/video/nbmj8891.c
@@ -507,40 +507,39 @@ void nbmj8891_state::video_start()
******************************************************************************/
-SCREEN_UPDATE_IND16( nbmj8891 )
+UINT32 nbmj8891_state::screen_update_nbmj8891(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- nbmj8891_state *state = screen.machine().driver_data<nbmj8891_state>();
int x, y;
- if (state->m_screen_refresh)
+ if (m_screen_refresh)
{
int width = screen.width();
int height = screen.height();
- state->m_screen_refresh = 0;
+ m_screen_refresh = 0;
for (y = 0; y < height; y++)
for (x = 0; x < width; x++)
update_pixel0(screen.machine(), x, y);
- if (state->m_gfxdraw_mode)
+ if (m_gfxdraw_mode)
for (y = 0; y < height; y++)
for (x = 0; x < width; x++)
update_pixel1(screen.machine(), x, y);
}
- if (state->m_dispflag)
+ if (m_dispflag)
{
int scrolly;
- if (!state->m_flipscreen) scrolly = state->m_scrolly;
- else scrolly = (-state->m_scrolly) & 0xff;
+ if (!m_flipscreen) scrolly = m_scrolly;
+ else scrolly = (-m_scrolly) & 0xff;
- if (state->m_gfxdraw_mode)
+ if (m_gfxdraw_mode)
{
- copyscrollbitmap (bitmap, state->m_tmpbitmap0, 0, 0, 0, 0, cliprect);
- copyscrollbitmap_trans(bitmap, state->m_tmpbitmap1, 0, 0, 1, &scrolly, cliprect, 0xff);
+ copyscrollbitmap (bitmap, m_tmpbitmap0, 0, 0, 0, 0, cliprect);
+ copyscrollbitmap_trans(bitmap, m_tmpbitmap1, 0, 0, 1, &scrolly, cliprect, 0xff);
}
else
- copyscrollbitmap(bitmap, state->m_tmpbitmap0, 0, 0, 1, &scrolly, cliprect);
+ copyscrollbitmap(bitmap, m_tmpbitmap0, 0, 0, 1, &scrolly, cliprect);
}
else
bitmap.fill(0xff);
diff --git a/src/mame/video/nbmj8900.c b/src/mame/video/nbmj8900.c
index 9eb15312349..0d4358d9592 100644
--- a/src/mame/video/nbmj8900.c
+++ b/src/mame/video/nbmj8900.c
@@ -385,26 +385,25 @@ void nbmj8900_state::video_start()
******************************************************************************/
-SCREEN_UPDATE_IND16( nbmj8900 )
+UINT32 nbmj8900_state::screen_update_nbmj8900(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- nbmj8900_state *state = screen.machine().driver_data<nbmj8900_state>();
int x, y;
- if (state->m_screen_refresh)
+ if (m_screen_refresh)
{
- state->m_screen_refresh = 0;
- for (y = 0; y < state->m_screen_height; y++)
+ m_screen_refresh = 0;
+ for (y = 0; y < m_screen_height; y++)
{
- for (x = 0; x < state->m_screen_width; x++)
+ for (x = 0; x < m_screen_width; x++)
{
update_pixel0(screen.machine(), x, y);
}
}
- if (state->m_gfxdraw_mode)
+ if (m_gfxdraw_mode)
{
- for (y = 0; y < state->m_screen_height; y++)
+ for (y = 0; y < m_screen_height; y++)
{
- for (x = 0; x < state->m_screen_width; x++)
+ for (x = 0; x < m_screen_width; x++)
{
update_pixel1(screen.machine(), x, y);
}
@@ -412,20 +411,20 @@ SCREEN_UPDATE_IND16( nbmj8900 )
}
}
- if (state->m_dispflag)
+ if (m_dispflag)
{
int scrolly;
- if (!state->m_flipscreen) scrolly = state->m_scrolly;
- else scrolly = (-state->m_scrolly) & 0xff;
+ if (!m_flipscreen) scrolly = m_scrolly;
+ else scrolly = (-m_scrolly) & 0xff;
- if (state->m_gfxdraw_mode)
+ if (m_gfxdraw_mode)
{
- copyscrollbitmap(bitmap, state->m_tmpbitmap0, 0, 0, 0, 0, cliprect);
- copyscrollbitmap_trans(bitmap, state->m_tmpbitmap1, 0, 0, 1, &scrolly, cliprect, 0xff);
+ copyscrollbitmap(bitmap, m_tmpbitmap0, 0, 0, 0, 0, cliprect);
+ copyscrollbitmap_trans(bitmap, m_tmpbitmap1, 0, 0, 1, &scrolly, cliprect, 0xff);
}
else
{
- copyscrollbitmap(bitmap, state->m_tmpbitmap0, 0, 0, 1, &scrolly, cliprect);
+ copyscrollbitmap(bitmap, m_tmpbitmap0, 0, 0, 1, &scrolly, cliprect);
}
}
else
diff --git a/src/mame/video/nbmj8991.c b/src/mame/video/nbmj8991.c
index 190c65d0d64..f0993254781 100644
--- a/src/mame/video/nbmj8991.c
+++ b/src/mame/video/nbmj8991.c
@@ -298,39 +298,38 @@ void nbmj8991_state::video_start()
memset(m_videoram, 0x00, (width * height * sizeof(UINT8)));
}
-SCREEN_UPDATE_IND16( nbmj8991_type1 )
+UINT32 nbmj8991_state::screen_update_nbmj8991_type1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- nbmj8991_state *state = screen.machine().driver_data<nbmj8991_state>();
int x, y;
- if (state->m_screen_refresh)
+ if (m_screen_refresh)
{
int width = screen.machine().primary_screen->width();
int height = screen.machine().primary_screen->height();
- state->m_screen_refresh = 0;
+ m_screen_refresh = 0;
for (y = 0; y < height; y++)
for (x = 0; x < width; x++)
update_pixel(screen.machine(), x, y);
}
- if (state->m_dispflag)
+ if (m_dispflag)
{
int scrollx, scrolly;
- if (state->m_flipscreen)
+ if (m_flipscreen)
{
- scrollx = (((-state->m_scrollx) + 0x000) & 0x1ff) * 2;
- scrolly = ((-state->m_scrolly) - 0x00f) & 0x1ff;
+ scrollx = (((-m_scrollx) + 0x000) & 0x1ff) * 2;
+ scrolly = ((-m_scrolly) - 0x00f) & 0x1ff;
}
else
{
- scrollx = (((-state->m_scrollx) - 0x100) & 0x1ff) * 2;
- scrolly = (( state->m_scrolly) + 0x0f1) & 0x1ff;
+ scrollx = (((-m_scrollx) - 0x100) & 0x1ff) * 2;
+ scrolly = (( m_scrolly) + 0x0f1) & 0x1ff;
}
- copyscrollbitmap(bitmap, state->m_tmpbitmap, 1, &scrollx, 1, &scrolly, cliprect);
+ copyscrollbitmap(bitmap, m_tmpbitmap, 1, &scrollx, 1, &scrolly, cliprect);
}
else
bitmap.fill(0);
@@ -338,17 +337,16 @@ SCREEN_UPDATE_IND16( nbmj8991_type1 )
return 0;
}
-SCREEN_UPDATE_IND16( nbmj8991_type2 )
+UINT32 nbmj8991_state::screen_update_nbmj8991_type2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- nbmj8991_state *state = screen.machine().driver_data<nbmj8991_state>();
int x, y;
- if (state->m_screen_refresh)
+ if (m_screen_refresh)
{
int width = screen.width();
int height = screen.height();
- state->m_screen_refresh = 0;
+ m_screen_refresh = 0;
for (y = 0; y < height; y++)
for (x = 0; x < width; x++)
@@ -359,18 +357,18 @@ SCREEN_UPDATE_IND16( nbmj8991_type2 )
{
int scrollx, scrolly;
- if (state->m_flipscreen)
+ if (m_flipscreen)
{
- scrollx = (((-state->m_scrollx) + 0x000) & 0x1ff) * 2;
- scrolly = ((-state->m_scrolly) - 0x00f) & 0x1ff;
+ scrollx = (((-m_scrollx) + 0x000) & 0x1ff) * 2;
+ scrolly = ((-m_scrolly) - 0x00f) & 0x1ff;
}
else
{
- scrollx = (((-state->m_scrollx) - 0x100) & 0x1ff) * 2;
- scrolly = (( state->m_scrolly) + 0x0f1) & 0x1ff;
+ scrollx = (((-m_scrollx) - 0x100) & 0x1ff) * 2;
+ scrolly = (( m_scrolly) + 0x0f1) & 0x1ff;
}
- copyscrollbitmap(bitmap, state->m_tmpbitmap, 1, &scrollx, 1, &scrolly, cliprect);
+ copyscrollbitmap(bitmap, m_tmpbitmap, 1, &scrollx, 1, &scrolly, cliprect);
}
else
bitmap.fill(0);
diff --git a/src/mame/video/nbmj9195.c b/src/mame/video/nbmj9195.c
index f4058442c40..23358e54232 100644
--- a/src/mame/video/nbmj9195.c
+++ b/src/mame/video/nbmj9195.c
@@ -438,66 +438,65 @@ VIDEO_START_MEMBER(nbmj9195_state,nbmj9195_nb22090)
******************************************************************************/
-SCREEN_UPDATE_IND16( nbmj9195 )
+UINT32 nbmj9195_state::screen_update_nbmj9195(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- nbmj9195_state *state = screen.machine().driver_data<nbmj9195_state>();
int i;
int x, y;
int scrolly[2];
- if (state->m_screen_refresh)
+ if (m_screen_refresh)
{
int width = screen.width();
int height = screen.height();
- state->m_screen_refresh = 0;
+ m_screen_refresh = 0;
for (y = 0; y < height; y++)
for (x = 0; x < width; x++)
{
update_pixel(screen.machine(), 0, x, y);
- if (state->m_gfxdraw_mode)
+ if (m_gfxdraw_mode)
update_pixel(screen.machine(), 1, x, y);
}
}
for (i = 0; i < 2; i++)
{
- if (state->m_flipscreen[i])
+ if (m_flipscreen[i])
{
- for ( ; state->m_scanline[i] < SCANLINE_MAX; state->m_scanline[i]++)
+ for ( ; m_scanline[i] < SCANLINE_MAX; m_scanline[i]++)
{
- state->m_scrollx_raster[i][state->m_scanline[i]] = (((-state->m_scrollx[i]) - 0x4e) & 0x1ff) << 1;
+ m_scrollx_raster[i][m_scanline[i]] = (((-m_scrollx[i]) - 0x4e) & 0x1ff) << 1;
}
- scrolly[i] = (-state->m_scrolly[i]) & 0x1ff;
+ scrolly[i] = (-m_scrolly[i]) & 0x1ff;
}
else
{
- for ( ; state->m_scanline[i] < SCANLINE_MAX; state->m_scanline[i]++)
+ for ( ; m_scanline[i] < SCANLINE_MAX; m_scanline[i]++)
{
- state->m_scrollx_raster[i][(state->m_scanline[i] ^ 0x1ff)] = (((-state->m_scrollx[i]) - 0x4e) & 0x1ff) << 1;
+ m_scrollx_raster[i][(m_scanline[i] ^ 0x1ff)] = (((-m_scrollx[i]) - 0x4e) & 0x1ff) << 1;
}
- scrolly[i] = state->m_scrolly[i] & 0x1ff;
+ scrolly[i] = m_scrolly[i] & 0x1ff;
}
- state->m_scanline[i] = SCANLINE_MIN;
+ m_scanline[i] = SCANLINE_MIN;
}
- if (state->m_dispflag[0])
+ if (m_dispflag[0])
// nbmj9195 1layer
- copyscrollbitmap(bitmap, state->m_tmpbitmap[0], SCANLINE_MAX, state->m_scrollx_raster[0], 1, &scrolly[0], cliprect);
+ copyscrollbitmap(bitmap, m_tmpbitmap[0], SCANLINE_MAX, m_scrollx_raster[0], 1, &scrolly[0], cliprect);
else
bitmap.fill(0x0ff);
- if (state->m_dispflag[1])
+ if (m_dispflag[1])
{
- if (state->m_gfxdraw_mode == 1)
+ if (m_gfxdraw_mode == 1)
// nbmj9195 2layer
- copyscrollbitmap_trans(bitmap, state->m_tmpbitmap[1], SCANLINE_MAX, state->m_scrollx_raster[1], 1, &scrolly[1], cliprect, 0x0ff);
+ copyscrollbitmap_trans(bitmap, m_tmpbitmap[1], SCANLINE_MAX, m_scrollx_raster[1], 1, &scrolly[1], cliprect, 0x0ff);
- if (state->m_gfxdraw_mode == 2)
+ if (m_gfxdraw_mode == 2)
// nbmj9195 nb22090 2layer
- copyscrollbitmap_trans(bitmap, state->m_tmpbitmap[1], SCANLINE_MAX, state->m_scrollx_raster[1], 1, &scrolly[1], cliprect, 0x1ff);
+ copyscrollbitmap_trans(bitmap, m_tmpbitmap[1], SCANLINE_MAX, m_scrollx_raster[1], 1, &scrolly[1], cliprect, 0x1ff);
}
return 0;
}
diff --git a/src/mame/video/nemesis.c b/src/mame/video/nemesis.c
index 34f7da7511e..db59b055c06 100644
--- a/src/mame/video/nemesis.c
+++ b/src/mame/video/nemesis.c
@@ -412,9 +412,8 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
/******************************************************************************/
-SCREEN_UPDATE_IND16( nemesis )
+UINT32 nemesis_state::screen_update_nemesis(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- nemesis_state *state = screen.machine().driver_data<nemesis_state>();
int offs;
rectangle clip;
@@ -424,20 +423,20 @@ SCREEN_UPDATE_IND16( nemesis )
clip.min_x = 0;
clip.max_x = 255;
- state->m_background->set_scroll_cols(64);
- state->m_foreground->set_scroll_cols(64);
- state->m_background->set_scroll_rows(1);
- state->m_foreground->set_scroll_rows(1);
+ m_background->set_scroll_cols(64);
+ m_foreground->set_scroll_cols(64);
+ m_background->set_scroll_rows(1);
+ m_foreground->set_scroll_rows(1);
for (offs = 0; offs < 64; offs++)
{
int offset_x = offs;
- if (state->m_flipscreen)
+ if (m_flipscreen)
offset_x = (offs + 0x20) & 0x3f;
- state->m_background->set_scrolly(offs, state->m_yscroll2[offset_x]);
- state->m_foreground->set_scrolly(offs, state->m_yscroll1[offset_x]);
+ m_background->set_scrolly(offs, m_yscroll2[offset_x]);
+ m_foreground->set_scrolly(offs, m_yscroll1[offset_x]);
}
for (offs = cliprect.min_y; offs <= cliprect.max_y; offs++)
@@ -448,18 +447,18 @@ SCREEN_UPDATE_IND16( nemesis )
clip.min_y = offs;
clip.max_y = offs;
- if (state->m_flipscreen)
+ if (m_flipscreen)
offset_y = 255 - offs;
- state->m_background->set_scrollx(0, (state->m_xscroll2[offset_y] & 0xff) + ((state->m_xscroll2[0x100 + offset_y] & 0x01) << 8) - (state->m_flipscreen ? 0x107 : 0));
- state->m_foreground->set_scrollx(0, (state->m_xscroll1[offset_y] & 0xff) + ((state->m_xscroll1[0x100 + offset_y] & 0x01) << 8) - (state->m_flipscreen ? 0x107 : 0));
+ m_background->set_scrollx(0, (m_xscroll2[offset_y] & 0xff) + ((m_xscroll2[0x100 + offset_y] & 0x01) << 8) - (m_flipscreen ? 0x107 : 0));
+ m_foreground->set_scrollx(0, (m_xscroll1[offset_y] & 0xff) + ((m_xscroll1[0x100 + offset_y] & 0x01) << 8) - (m_flipscreen ? 0x107 : 0));
for (i = 0; i < 4; i += 2)
{
- state->m_background->draw(bitmap, clip, TILEMAP_DRAW_CATEGORY(i + 0), 1);
- state->m_background->draw(bitmap, clip, TILEMAP_DRAW_CATEGORY(i + 1), 2);
- state->m_foreground->draw(bitmap, clip, TILEMAP_DRAW_CATEGORY(i + 0), 1);
- state->m_foreground->draw(bitmap, clip, TILEMAP_DRAW_CATEGORY(i + 1), 2);
+ m_background->draw(bitmap, clip, TILEMAP_DRAW_CATEGORY(i + 0), 1);
+ m_background->draw(bitmap, clip, TILEMAP_DRAW_CATEGORY(i + 1), 2);
+ m_foreground->draw(bitmap, clip, TILEMAP_DRAW_CATEGORY(i + 0), 1);
+ m_foreground->draw(bitmap, clip, TILEMAP_DRAW_CATEGORY(i + 1), 2);
}
}
diff --git a/src/mame/video/neogeo.c b/src/mame/video/neogeo.c
index e236b4d88b9..7f0346bb44d 100644
--- a/src/mame/video/neogeo.c
+++ b/src/mame/video/neogeo.c
@@ -917,12 +917,11 @@ void neogeo_state::video_reset()
*
*************************************/
-SCREEN_UPDATE_RGB32( neogeo )
+UINT32 neogeo_state::screen_update_neogeo(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- neogeo_state *state = screen.machine().driver_data<neogeo_state>();
/* fill with background color first */
- bitmap.fill(state->m_pens[0x0fff], cliprect);
+ bitmap.fill(m_pens[0x0fff], cliprect);
draw_sprites(screen.machine(), bitmap, cliprect.min_y);
diff --git a/src/mame/video/news.c b/src/mame/video/news.c
index 5305556723a..f8df3bec725 100644
--- a/src/mame/video/news.c
+++ b/src/mame/video/news.c
@@ -91,10 +91,9 @@ WRITE8_MEMBER(news_state::news_bgpic_w)
***************************************************************************/
-SCREEN_UPDATE_IND16( news )
+UINT32 news_state::screen_update_news(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- news_state *state = screen.machine().driver_data<news_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/ninjakd2.c b/src/mame/video/ninjakd2.c
index 44b434315c3..ff0989fe18c 100644
--- a/src/mame/video/ninjakd2.c
+++ b/src/mame/video/ninjakd2.c
@@ -457,77 +457,73 @@ static void update_sprites(running_machine& machine)
////// The glitch is correct behavior.
-SCREEN_UPDATE_IND16( ninjakd2 )
+UINT32 ninjakd2_state::screen_update_ninjakd2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ninjakd2_state *state = screen.machine().driver_data<ninjakd2_state>();
// updating sprites here instead than in screen_eof avoids a palette glitch
// at the end of the "rainbow sky" screens.
update_sprites(screen.machine());
- state->m_sprites_updated = 1;
+ m_sprites_updated = 1;
bitmap.fill(0, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- copybitmap_trans(bitmap, state->m_sp_bitmap, 0, 0, 0, 0, cliprect, TRANSPARENTCODE);
+ copybitmap_trans(bitmap, m_sp_bitmap, 0, 0, 0, 0, cliprect, TRANSPARENTCODE);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( robokid )
+UINT32 ninjakd2_state::screen_update_robokid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ninjakd2_state *state = screen.machine().driver_data<ninjakd2_state>();
update_sprites(screen.machine());
- state->m_sprites_updated = 1;
+ m_sprites_updated = 1;
bitmap.fill(0, cliprect);
- state->m_bg0_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg0_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
- copybitmap_trans(bitmap, state->m_sp_bitmap, 0, 0, 0, 0, cliprect, TRANSPARENTCODE);
+ copybitmap_trans(bitmap, m_sp_bitmap, 0, 0, 0, 0, cliprect, TRANSPARENTCODE);
- state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( omegaf )
+UINT32 ninjakd2_state::screen_update_omegaf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ninjakd2_state *state = screen.machine().driver_data<ninjakd2_state>();
update_sprites(screen.machine());
- state->m_sprites_updated = 1;
+ m_sprites_updated = 1;
bitmap.fill(0, cliprect);
- state->m_bg0_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg0_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
- copybitmap_trans(bitmap, state->m_sp_bitmap, 0, 0, 0, 0, cliprect, TRANSPARENTCODE);
+ copybitmap_trans(bitmap, m_sp_bitmap, 0, 0, 0, 0, cliprect, TRANSPARENTCODE);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_VBLANK( ninjakd2 )
+void ninjakd2_state::screen_eof_ninjakd2(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- ninjakd2_state *state = screen.machine().driver_data<ninjakd2_state>();
- if (!state->m_sprites_updated)
+ if (!m_sprites_updated)
update_sprites(screen.machine());
- state->m_sprites_updated = 0;
+ m_sprites_updated = 0;
}
}
diff --git a/src/mame/video/ninjaw.c b/src/mame/video/ninjaw.c
index 8d62af1b405..6aeb0eebce6 100644
--- a/src/mame/video/ninjaw.c
+++ b/src/mame/video/ninjaw.c
@@ -127,6 +127,6 @@ static UINT32 update_screen(screen_device &screen, bitmap_ind16 &bitmap, const r
return 0;
}
-SCREEN_UPDATE_IND16( ninjaw_left ) { return update_screen(screen, bitmap, cliprect, 36 * 8 * 0, screen.machine().driver_data<ninjaw_state>()->m_tc0100scn_1); }
-SCREEN_UPDATE_IND16( ninjaw_middle ) { return update_screen(screen, bitmap, cliprect, 36 * 8 * 1, screen.machine().driver_data<ninjaw_state>()->m_tc0100scn_2); }
-SCREEN_UPDATE_IND16( ninjaw_right ) { return update_screen(screen, bitmap, cliprect, 36 * 8 * 2, screen.machine().driver_data<ninjaw_state>()->m_tc0100scn_3); }
+UINT32 ninjaw_state::screen_update_ninjaw_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8 * 0, screen.machine().driver_data<ninjaw_state>()->m_tc0100scn_1); }
+UINT32 ninjaw_state::screen_update_ninjaw_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8 * 1, screen.machine().driver_data<ninjaw_state>()->m_tc0100scn_2); }
+UINT32 ninjaw_state::screen_update_ninjaw_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 36 * 8 * 2, screen.machine().driver_data<ninjaw_state>()->m_tc0100scn_3); }
diff --git a/src/mame/video/nitedrvr.c b/src/mame/video/nitedrvr.c
index bec96cc9d2a..b5aa33b0a48 100644
--- a/src/mame/video/nitedrvr.c
+++ b/src/mame/video/nitedrvr.c
@@ -69,11 +69,10 @@ static void draw_roadway( running_machine &machine, bitmap_ind16 &bitmap )
}
}
-SCREEN_UPDATE_IND16( nitedrvr )
+UINT32 nitedrvr_state::screen_update_nitedrvr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- nitedrvr_state *state = screen.machine().driver_data<nitedrvr_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_roadway(screen.machine(), bitmap);
return 0;
}
diff --git a/src/mame/video/niyanpai.c b/src/mame/video/niyanpai.c
index 44d50a79a64..08ae48f963f 100644
--- a/src/mame/video/niyanpai.c
+++ b/src/mame/video/niyanpai.c
@@ -382,19 +382,18 @@ void niyanpai_state::video_start()
******************************************************************************/
-SCREEN_UPDATE_IND16( niyanpai )
+UINT32 niyanpai_state::screen_update_niyanpai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- niyanpai_state *state = screen.machine().driver_data<niyanpai_state>();
int i;
int x, y;
int scrollx[3], scrolly[3];
- if (state->m_screen_refresh)
+ if (m_screen_refresh)
{
int width = screen.width();
int height = screen.height();
- state->m_screen_refresh = 0;
+ m_screen_refresh = 0;
for (y = 0; y < height; y++)
for (x = 0; x < width; x++)
@@ -407,28 +406,28 @@ SCREEN_UPDATE_IND16( niyanpai )
for (i = 0; i < 3; i++)
{
- if (state->m_flipscreen[i])
+ if (m_flipscreen[i])
{
- scrollx[i] = (((-state->m_scrollx[i]) - 0x4e) & 0x1ff) << 1;
- scrolly[i] = (-state->m_scrolly[i]) & 0x1ff;
+ scrollx[i] = (((-m_scrollx[i]) - 0x4e) & 0x1ff) << 1;
+ scrolly[i] = (-m_scrolly[i]) & 0x1ff;
}
else
{
- scrollx[i] = (((-state->m_scrollx[i]) - 0x4e) & 0x1ff) << 1;
- scrolly[i] = state->m_scrolly[i] & 0x1ff;
+ scrollx[i] = (((-m_scrollx[i]) - 0x4e) & 0x1ff) << 1;
+ scrolly[i] = m_scrolly[i] & 0x1ff;
}
}
- if (state->m_dispflag[0])
- copyscrollbitmap(bitmap, state->m_tmpbitmap[0], 1, &scrollx[0], 1, &scrolly[0], cliprect);
+ if (m_dispflag[0])
+ copyscrollbitmap(bitmap, m_tmpbitmap[0], 1, &scrollx[0], 1, &scrolly[0], cliprect);
else
bitmap.fill(0x00ff);
- if (state->m_dispflag[1])
- copyscrollbitmap_trans(bitmap, state->m_tmpbitmap[1], 1, &scrollx[1], 1, &scrolly[1], cliprect, 0x01ff);
+ if (m_dispflag[1])
+ copyscrollbitmap_trans(bitmap, m_tmpbitmap[1], 1, &scrollx[1], 1, &scrolly[1], cliprect, 0x01ff);
- if (state->m_dispflag[2])
- copyscrollbitmap_trans(bitmap, state->m_tmpbitmap[2], 1, &scrollx[2], 1, &scrolly[2], cliprect, 0x02ff);
+ if (m_dispflag[2])
+ copyscrollbitmap_trans(bitmap, m_tmpbitmap[2], 1, &scrollx[2], 1, &scrolly[2], cliprect, 0x02ff);
return 0;
}
diff --git a/src/mame/video/nmk16.c b/src/mame/video/nmk16.c
index 8841b5caee5..15088105d4c 100644
--- a/src/mame/video/nmk16.c
+++ b/src/mame/video/nmk16.c
@@ -782,28 +782,27 @@ int nmk16_complexbg_sprswap_tx_update(screen_device &screen, bitmap_ind16 &bitma
***************************************************************************/
-SCREEN_UPDATE_IND16( macross )
+UINT32 nmk16_state::screen_update_macross(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return nmk16_bg_spr_tx_update(screen, bitmap, cliprect);
}
-SCREEN_UPDATE_IND16( manybloc )
+UINT32 nmk16_state::screen_update_manybloc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return nmk16_bg_sprflip_tx_update(screen, bitmap, cliprect);
}
-SCREEN_UPDATE_IND16( tharrier )
+UINT32 nmk16_state::screen_update_tharrier(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- nmk16_state *state = screen.machine().driver_data<nmk16_state>();
/* I think the protection device probably copies this to the regs... */
- UINT16 tharrier_scroll = state->m_mainram[0x9f00/2];
+ UINT16 tharrier_scroll = m_mainram[0x9f00/2];
- state->m_bg_tilemap0->set_scrollx(0,tharrier_scroll);
+ m_bg_tilemap0->set_scrollx(0,tharrier_scroll);
return nmk16_bg_sprflip_tx_update(screen, bitmap, cliprect);
}
-SCREEN_UPDATE_IND16( tdragon2 )
+UINT32 nmk16_state::screen_update_tdragon2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
static int bittbl[8] = {
4, 6, 5, 7, 3, 2, 1, 0
@@ -812,7 +811,7 @@ SCREEN_UPDATE_IND16( tdragon2 )
return nmk16_complexbg_sprswap_tx_update(screen, bitmap, cliprect, bittbl);
}
-SCREEN_UPDATE_IND16( gunnail )
+UINT32 nmk16_state::screen_update_gunnail(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
static int bittbl[8] = {
7, 6, 5, 4, 3, 2, 1, 0
@@ -821,44 +820,42 @@ SCREEN_UPDATE_IND16( gunnail )
return nmk16_complexbg_sprswap_tx_update(screen, bitmap, cliprect, bittbl);
}
-SCREEN_UPDATE_IND16( bioship )
+UINT32 nmk16_state::screen_update_bioship(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return nmk16_bioshipbg_sprflip_tx_update(screen, bitmap, cliprect);
}
-SCREEN_UPDATE_IND16( strahl )
+UINT32 nmk16_state::screen_update_strahl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return nmk16_bg_fg_spr_tx_update(screen, bitmap, cliprect);
}
-SCREEN_UPDATE_IND16( bjtwin )
+UINT32 nmk16_state::screen_update_bjtwin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return nmk16_bg_spr_update(screen, bitmap, cliprect);
}
-SCREEN_VBLANK( nmk )
+void nmk16_state::screen_eof_nmk(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- nmk16_state *state = screen.machine().driver_data<nmk16_state>();
/* sprites are DMA'd from Main RAM to a private buffer automatically
(or at least this is how I interpret the datasheet) */
/* -- I actually see little evidence to support this, sprite lag
in some games should be checked on real boards */
- // memcpy(state->m_spriteram_old2,state->m_spriteram_old,0x1000);
- memcpy(state->m_spriteram_old2,state->m_mainram+0x8000/2,0x1000);
+ // memcpy(m_spriteram_old2,m_spriteram_old,0x1000);
+ memcpy(m_spriteram_old2,m_mainram+0x8000/2,0x1000);
}
}
-SCREEN_VBLANK( strahl )
+void nmk16_state::screen_eof_strahl(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- nmk16_state *state = screen.machine().driver_data<nmk16_state>();
/* sprites are DMA'd from Main RAM to a private buffer automatically
(or at least this is how I interpret the datasheet) */
@@ -867,7 +864,7 @@ SCREEN_VBLANK( strahl )
/* strahl sprites are allocated in memory range FF000-FFFFF */
- memcpy(state->m_spriteram_old2,state->m_mainram+0xF000/2,0x1000);
+ memcpy(m_spriteram_old2,m_mainram+0xF000/2,0x1000);
}
}
@@ -993,25 +990,24 @@ static void redhawki_video_update(running_machine &machine, bitmap_ind16 &bitmap
nmk16_draw_sprites_flipsupported(machine, bitmap,cliprect,0);
}
-SCREEN_UPDATE_IND16( afega ) { video_update(screen.machine(),bitmap,cliprect, 1, -0x100,+0x000, 0x0001); return 0; }
-SCREEN_UPDATE_IND16( bubl2000 ) { video_update(screen.machine(),bitmap,cliprect, 0, -0x100,+0x000, 0x0001); return 0; } // no flipscreen support, I really would confirmation from the schematics
-SCREEN_UPDATE_IND16( redhawkb ) { video_update(screen.machine(),bitmap,cliprect, 0, +0x000,+0x100, 0x0001); return 0; }
-SCREEN_UPDATE_IND16( redhawki ) { redhawki_video_update(screen.machine(),bitmap,cliprect); return 0;} // strange scroll regs
+UINT32 nmk16_state::screen_update_afega(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ video_update(screen.machine(),bitmap,cliprect, 1, -0x100,+0x000, 0x0001); return 0; }
+UINT32 nmk16_state::screen_update_bubl2000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ video_update(screen.machine(),bitmap,cliprect, 0, -0x100,+0x000, 0x0001); return 0; } // no flipscreen support, I really would confirmation from the schematics
+UINT32 nmk16_state::screen_update_redhawkb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ video_update(screen.machine(),bitmap,cliprect, 0, +0x000,+0x100, 0x0001); return 0; }
+UINT32 nmk16_state::screen_update_redhawki(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ redhawki_video_update(screen.machine(),bitmap,cliprect); return 0;} // strange scroll regs
-SCREEN_UPDATE_IND16( firehawk )
+UINT32 nmk16_state::screen_update_firehawk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- nmk16_state *state = screen.machine().driver_data<nmk16_state>();
- state->m_bg_tilemap0->set_scrolly(0, state->m_afega_scroll_1[1] + 0x100);
- state->m_bg_tilemap0->set_scrollx(0, state->m_afega_scroll_1[0]);
+ m_bg_tilemap0->set_scrolly(0, m_afega_scroll_1[1] + 0x100);
+ m_bg_tilemap0->set_scrollx(0, m_afega_scroll_1[0]);
- state->m_bg_tilemap0->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap0->draw(bitmap, cliprect, 0,0);
nmk16_draw_sprites_flipsupported(screen.machine(), bitmap,cliprect,3);
nmk16_draw_sprites_flipsupported(screen.machine(), bitmap,cliprect,2);
nmk16_draw_sprites_flipsupported(screen.machine(), bitmap,cliprect,1);
nmk16_draw_sprites_flipsupported(screen.machine(), bitmap,cliprect,0);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/video/nova2001.c b/src/mame/video/nova2001.c
index af5c1576a48..bbd6eee64c6 100644
--- a/src/mame/video/nova2001.c
+++ b/src/mame/video/nova2001.c
@@ -339,55 +339,51 @@ static void pkunwar_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,
-SCREEN_UPDATE_IND16( nova2001 )
+UINT32 nova2001_state::screen_update_nova2001(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- nova2001_state *state = screen.machine().driver_data<nova2001_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
nova2001_draw_sprites(screen.machine(), bitmap, cliprect);
// according to the schematics, fg category 0 should be drawn behind sprites,
// but it doesn't look right that way
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 1, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 1, 0);
return 0;
}
-SCREEN_UPDATE_IND16( pkunwar )
+UINT32 nova2001_state::screen_update_pkunwar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- nova2001_state *state = screen.machine().driver_data<nova2001_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | TILEMAP_DRAW_ALL_CATEGORIES, 0);
pkunwar_draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
return 0;
}
-SCREEN_UPDATE_IND16( ninjakun )
+UINT32 nova2001_state::screen_update_ninjakun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- nova2001_state *state = screen.machine().driver_data<nova2001_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 1, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 1, 0);
nova2001_draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( raiders5 )
+UINT32 nova2001_state::screen_update_raiders5(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- nova2001_state *state = screen.machine().driver_data<nova2001_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
pkunwar_draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/nycaptor.c b/src/mame/video/nycaptor.c
index e4f02d4893b..c7d1825a175 100644
--- a/src/mame/video/nycaptor.c
+++ b/src/mame/video/nycaptor.c
@@ -237,22 +237,21 @@ static void nycaptor_setmask( running_machine &machine )
}
#endif
-SCREEN_UPDATE_IND16( nycaptor )
+UINT32 nycaptor_state::screen_update_nycaptor(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- nycaptor_state *state = screen.machine().driver_data<nycaptor_state>();
#if NYCAPTOR_DEBUG
nycaptor_setmask(screen.machine());
- if (state->m_mask & 0x1000)
+ if (m_mask & 0x1000)
{
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 1);
draw_sprites(screen.machine(), bitmap, cliprect, 2);
@@ -267,56 +266,56 @@ SCREEN_UPDATE_IND16( nycaptor )
switch (nycaptor_spot(screen.machine()) & 3)
{
case 0:
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 6);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 3);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 2);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 1);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0);
break;
case 1:
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 3);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 2);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 1);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0);
break;
case 2:
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 1);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0);
break;
case 3:
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 1);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0, 0);
break;
}
diff --git a/src/mame/video/offtwall.c b/src/mame/video/offtwall.c
index 054dc352867..a611d6fa2b8 100644
--- a/src/mame/video/offtwall.c
+++ b/src/mame/video/offtwall.c
@@ -87,15 +87,14 @@ VIDEO_START_MEMBER(offtwall_state,offtwall)
*
*************************************/
-SCREEN_UPDATE_IND16( offtwall )
+UINT32 offtwall_state::screen_update_offtwall(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- offtwall_state *state = screen.machine().driver_data<offtwall_state>();
atarimo_rect_list rectlist;
bitmap_ind16 *mobitmap;
int x, y, r;
/* draw the playfield */
- state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
/* draw and merge the MO */
mobitmap = atarimo_render(0, cliprect, &rectlist);
diff --git a/src/mame/video/ohmygod.c b/src/mame/video/ohmygod.c
index b7ccaefdb40..487c55ac23c 100644
--- a/src/mame/video/ohmygod.c
+++ b/src/mame/video/ohmygod.c
@@ -99,11 +99,10 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( ohmygod )
+UINT32 ohmygod_state::screen_update_ohmygod(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ohmygod_state *state = screen.machine().driver_data<ohmygod_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/ojankohs.c b/src/mame/video/ojankohs.c
index 6e87d1204f1..f435932af20 100644
--- a/src/mame/video/ojankohs.c
+++ b/src/mame/video/ojankohs.c
@@ -291,34 +291,32 @@ VIDEO_START_MEMBER(ojankohs_state,ojankoc)
******************************************************************************/
-SCREEN_UPDATE_IND16( ojankohs )
+UINT32 ojankohs_state::screen_update_ojankohs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ojankohs_state *state = screen.machine().driver_data<ojankohs_state>();
- state->m_tilemap->set_scrollx(0, state->m_scrollx);
- state->m_tilemap->set_scrolly(0, state->m_scrolly);
+ m_tilemap->set_scrollx(0, m_scrollx);
+ m_tilemap->set_scrolly(0, m_scrolly);
- state->m_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( ojankoc )
+UINT32 ojankohs_state::screen_update_ojankoc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ojankohs_state *state = screen.machine().driver_data<ojankohs_state>();
int offs;
- if (state->m_screen_refresh)
+ if (m_screen_refresh)
{
address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
/* redraw bitmap */
for (offs = 0; offs < 0x8000; offs++)
{
- state->ojankoc_videoram_w(space, offs, state->m_videoram[offs]);
+ ojankoc_videoram_w(space, offs, m_videoram[offs]);
}
- state->m_screen_refresh = 0;
+ m_screen_refresh = 0;
}
- copybitmap(bitmap, state->m_tmpbitmap, 0, 0, 0, 0, cliprect);
+ copybitmap(bitmap, m_tmpbitmap, 0, 0, 0, 0, cliprect);
return 0;
}
diff --git a/src/mame/video/oneshot.c b/src/mame/video/oneshot.c
index fd2dea76aa4..12f01f05c86 100644
--- a/src/mame/video/oneshot.c
+++ b/src/mame/video/oneshot.c
@@ -149,36 +149,34 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
-SCREEN_UPDATE_IND16( oneshot )
+UINT32 oneshot_state::screen_update_oneshot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- oneshot_state *state = screen.machine().driver_data<oneshot_state>();
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- state->m_mid_tilemap->set_scrollx(0, state->m_scroll[0] - 0x1f5);
- state->m_mid_tilemap->set_scrolly(0, state->m_scroll[1]);
+ m_mid_tilemap->set_scrollx(0, m_scroll[0] - 0x1f5);
+ m_mid_tilemap->set_scrolly(0, m_scroll[1]);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_mid_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_mid_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_crosshairs(screen.machine(), bitmap, cliprect);
return 0;
}
-SCREEN_UPDATE_IND16( maddonna )
+UINT32 oneshot_state::screen_update_maddonna(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- oneshot_state *state = screen.machine().driver_data<oneshot_state>();
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- state->m_mid_tilemap->set_scrolly(0, state->m_scroll[1]); // other registers aren't used so we don't know which layers they relate to
+ m_mid_tilemap->set_scrolly(0, m_scroll[1]); // other registers aren't used so we don't know which layers they relate to
- state->m_mid_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_mid_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
-// popmessage ("%04x %04x %04x %04x %04x %04x %04x %04x", state->m_scroll[0], state->m_scroll[1], state->m_scroll[2], state->m_scroll[3], state->m_scroll[4], state->m_scroll[5], state->m_scroll[6], state->m_scroll[7]);
+// popmessage ("%04x %04x %04x %04x %04x %04x %04x %04x", m_scroll[0], m_scroll[1], m_scroll[2], m_scroll[3], m_scroll[4], m_scroll[5], m_scroll[6], m_scroll[7]);
return 0;
}
diff --git a/src/mame/video/opwolf.c b/src/mame/video/opwolf.c
index 28ab3452ffe..e94b0891138 100644
--- a/src/mame/video/opwolf.c
+++ b/src/mame/video/opwolf.c
@@ -35,25 +35,24 @@ WRITE16_MEMBER(opwolf_state::opwolf_spritectrl_w)
/***************************************************************************/
-SCREEN_UPDATE_IND16( opwolf )
+UINT32 opwolf_state::screen_update_opwolf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- opwolf_state *state = screen.machine().driver_data<opwolf_state>();
int layer[2];
- pc080sn_tilemap_update(state->m_pc080sn);
+ pc080sn_tilemap_update(m_pc080sn);
layer[0] = 0;
layer[1] = 1;
screen.machine().priority_bitmap.fill(0, cliprect);
- pc080sn_tilemap_draw(state->m_pc080sn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
- pc080sn_tilemap_draw(state->m_pc080sn, bitmap, cliprect, layer[1], 0, 2);
+ pc080sn_tilemap_draw(m_pc080sn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
+ pc080sn_tilemap_draw(m_pc080sn, bitmap, cliprect, layer[1], 0, 2);
- pc090oj_draw_sprites(state->m_pc090oj, bitmap, cliprect, 1);
+ pc090oj_draw_sprites(m_pc090oj, bitmap, cliprect, 1);
-// if (state->ioport("P1X")->read())
-// popmessage("%d %d", machine, "P1X"), state->ioport("P1Y")->read());
+// if (ioport("P1X")->read())
+// popmessage("%d %d", machine(), "P1X"), ioport("P1Y")->read());
return 0;
}
diff --git a/src/mame/video/orbit.c b/src/mame/video/orbit.c
index bf0dc8252b4..016d2d4362a 100644
--- a/src/mame/video/orbit.c
+++ b/src/mame/video/orbit.c
@@ -76,13 +76,12 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
-SCREEN_UPDATE_IND16( orbit )
+UINT32 orbit_state::screen_update_orbit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- orbit_state *state = screen.machine().driver_data<orbit_state>();
- state->m_flip_screen = screen.machine().root_device().ioport("DSW2")->read() & 8;
+ m_flip_screen = screen.machine().root_device().ioport("DSW2")->read() & 8;
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
diff --git a/src/mame/video/othldrby.c b/src/mame/video/othldrby.c
index d0a9b887d52..d34f861594b 100644
--- a/src/mame/video/othldrby.c
+++ b/src/mame/video/othldrby.c
@@ -174,24 +174,23 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( othldrby )
+UINT32 othldrby_state::screen_update_othldrby(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- othldrby_state *state = screen.machine().driver_data<othldrby_state>();
int layer;
- state->flip_screen_set(state->m_vreg[0x0f] & 0x80);
+ flip_screen_set(m_vreg[0x0f] & 0x80);
for (layer = 0; layer < 3; layer++)
{
- if (state->flip_screen())
+ if (flip_screen())
{
- state->m_bg_tilemap[layer]->set_scrollx(0, state->m_vreg[2 * layer] + 59);
- state->m_bg_tilemap[layer]->set_scrolly(0, state->m_vreg[2 * layer + 1] + 248);
+ m_bg_tilemap[layer]->set_scrollx(0, m_vreg[2 * layer] + 59);
+ m_bg_tilemap[layer]->set_scrolly(0, m_vreg[2 * layer + 1] + 248);
}
else
{
- state->m_bg_tilemap[layer]->set_scrollx(0, state->m_vreg[2 * layer] - 58);
- state->m_bg_tilemap[layer]->set_scrolly(0, state->m_vreg[2 * layer+1] + 9);
+ m_bg_tilemap[layer]->set_scrollx(0, m_vreg[2 * layer] - 58);
+ m_bg_tilemap[layer]->set_scrolly(0, m_vreg[2 * layer+1] + 9);
}
}
@@ -200,33 +199,32 @@ SCREEN_UPDATE_IND16( othldrby )
bitmap.fill(0, cliprect);
for (layer = 0; layer < 3; layer++)
- state->m_bg_tilemap[layer]->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap[layer]->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 0);
for (layer = 0; layer < 3; layer++)
- state->m_bg_tilemap[layer]->draw(bitmap, cliprect, 1, 0);
+ m_bg_tilemap[layer]->draw(bitmap, cliprect, 1, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 1);
for (layer = 0; layer < 3; layer++)
- state->m_bg_tilemap[layer]->draw(bitmap, cliprect, 2, 0);
+ m_bg_tilemap[layer]->draw(bitmap, cliprect, 2, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 2);
for (layer = 0; layer < 3; layer++)
- state->m_bg_tilemap[layer]->draw(bitmap, cliprect, 3, 0);
+ m_bg_tilemap[layer]->draw(bitmap, cliprect, 3, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 3);
return 0;
}
-SCREEN_VBLANK( othldrby )
+void othldrby_state::screen_eof_othldrby(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- othldrby_state *state = screen.machine().driver_data<othldrby_state>();
/* sprites need to be delayed two frames */
- memcpy(state->m_buf_spriteram, state->m_buf_spriteram2, SPRITERAM_SIZE * sizeof(state->m_buf_spriteram[0]));
- memcpy(state->m_buf_spriteram2, &state->m_vram[SPRITERAM_START], SPRITERAM_SIZE * sizeof(state->m_buf_spriteram[0]));
+ memcpy(m_buf_spriteram, m_buf_spriteram2, SPRITERAM_SIZE * sizeof(m_buf_spriteram[0]));
+ memcpy(m_buf_spriteram2, &m_vram[SPRITERAM_START], SPRITERAM_SIZE * sizeof(m_buf_spriteram[0]));
}
}
diff --git a/src/mame/video/othunder.c b/src/mame/video/othunder.c
index 08aaabff766..19fa65b1765 100644
--- a/src/mame/video/othunder.c
+++ b/src/mame/video/othunder.c
@@ -199,14 +199,13 @@ logerror("Sprite number %04x had %02x invalid chunks\n",tilenum,bad_chunks);
SCREEN REFRESH
**************************************************************/
-SCREEN_UPDATE_IND16( othunder )
+UINT32 othunder_state::screen_update_othunder(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- othunder_state *state = screen.machine().driver_data<othunder_state>();
int layer[3];
- tc0100scn_tilemap_update(state->m_tc0100scn);
+ tc0100scn_tilemap_update(m_tc0100scn);
- layer[0] = tc0100scn_bottomlayer(state->m_tc0100scn);
+ layer[0] = tc0100scn_bottomlayer(m_tc0100scn);
layer[1] = layer[0] ^ 1;
layer[2] = 2;
@@ -215,9 +214,9 @@ SCREEN_UPDATE_IND16( othunder )
/* Ensure screen blanked even when bottom layer not drawn due to disable bit */
bitmap.fill(0, cliprect);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[1], 0, 2);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[1], 0, 2);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
/* Sprites can be under/over the layer below text layer */
{
diff --git a/src/mame/video/overdriv.c b/src/mame/video/overdriv.c
index 572bfe9ef72..6319b8c3180 100644
--- a/src/mame/video/overdriv.c
+++ b/src/mame/video/overdriv.c
@@ -50,21 +50,20 @@ void overdriv_zoom_callback_1( running_machine &machine, int *code, int *color,
***************************************************************************/
-SCREEN_UPDATE_IND16( overdriv )
+UINT32 overdriv_state::screen_update_overdriv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- overdriv_state *state = screen.machine().driver_data<overdriv_state>();
- state->m_sprite_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI0);
- state->m_road_colorbase[1] = k053251_get_palette_index(state->m_k053251, K053251_CI1);
- state->m_road_colorbase[0] = k053251_get_palette_index(state->m_k053251, K053251_CI2);
- state->m_zoom_colorbase[1] = k053251_get_palette_index(state->m_k053251, K053251_CI3);
- state->m_zoom_colorbase[0] = k053251_get_palette_index(state->m_k053251, K053251_CI4);
+ m_sprite_colorbase = k053251_get_palette_index(m_k053251, K053251_CI0);
+ m_road_colorbase[1] = k053251_get_palette_index(m_k053251, K053251_CI1);
+ m_road_colorbase[0] = k053251_get_palette_index(m_k053251, K053251_CI2);
+ m_zoom_colorbase[1] = k053251_get_palette_index(m_k053251, K053251_CI3);
+ m_zoom_colorbase[0] = k053251_get_palette_index(m_k053251, K053251_CI4);
screen.machine().priority_bitmap.fill(0, cliprect);
- k051316_zoom_draw(state->m_k051316_1, bitmap, cliprect, 0, 0);
- k051316_zoom_draw(state->m_k051316_2, bitmap, cliprect, 0, 1);
+ k051316_zoom_draw(m_k051316_1, bitmap, cliprect, 0, 0);
+ k051316_zoom_draw(m_k051316_2, bitmap, cliprect, 0, 1);
- k053247_sprites_draw(state->m_k053246, bitmap,cliprect);
+ k053247_sprites_draw(m_k053246, bitmap,cliprect);
return 0;
}
diff --git a/src/mame/video/pacland.c b/src/mame/video/pacland.c
index d7ccd16a1e8..e9d5631ee1a 100644
--- a/src/mame/video/pacland.c
+++ b/src/mame/video/pacland.c
@@ -365,14 +365,13 @@ static void draw_fg(running_machine &machine, bitmap_ind16 &bitmap, const rectan
}
-SCREEN_UPDATE_IND16( pacland )
+UINT32 pacland_state::screen_update_pacland(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pacland_state *state = screen.machine().driver_data<pacland_state>();
int row;
for (row = 5; row < 29; row++)
- state->m_fg_tilemap->set_scrollx(row, state->flip_screen() ? state->m_scroll0-7 : state->m_scroll0);
- state->m_bg_tilemap->set_scrollx(0, state->flip_screen() ? state->m_scroll1-4 : state->m_scroll1-3);
+ m_fg_tilemap->set_scrollx(row, flip_screen() ? m_scroll0-7 : m_scroll0);
+ m_bg_tilemap->set_scrollx(0, flip_screen() ? m_scroll1-4 : m_scroll1-3);
/* draw high priority sprite pixels, setting priority bitmap to non-zero
wherever there is a high-priority pixel; note that we draw to the bitmap
@@ -381,7 +380,7 @@ SCREEN_UPDATE_IND16( pacland )
draw_sprites(screen.machine(), bitmap, cliprect, 0);
/* draw background */
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
/* draw low priority fg tiles */
draw_fg(screen.machine(), bitmap, cliprect, 0);
diff --git a/src/mame/video/pacman.c b/src/mame/video/pacman.c
index 3edba7c7c28..8600806a655 100644
--- a/src/mame/video/pacman.c
+++ b/src/mame/video/pacman.c
@@ -208,18 +208,17 @@ WRITE8_MEMBER(pacman_state::pacman_flipscreen_w)
}
-SCREEN_UPDATE_IND16( pacman )
+UINT32 pacman_state::screen_update_pacman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pacman_state *state = screen.machine().driver_data<pacman_state>();
- if (state->m_bgpriority != 0)
+ if (m_bgpriority != 0)
bitmap.fill(0, cliprect);
else
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
- if( state->m_spriteram != NULL )
+ if( m_spriteram != NULL )
{
- UINT8 *spriteram = state->m_spriteram;
- UINT8 *spriteram_2 = state->m_spriteram2;
+ UINT8 *spriteram = m_spriteram;
+ UINT8 *spriteram_2 = m_spriteram2;
int offs;
rectangle spriteclip(2*8, 34*8-1, 0*8, 28*8-1);
@@ -227,13 +226,13 @@ SCREEN_UPDATE_IND16( pacman )
/* Draw the sprites. Note that it is important to draw them exactly in this */
/* order, to have the correct priorities. */
- for (offs = state->m_spriteram.bytes() - 2;offs > 2*2;offs -= 2)
+ for (offs = m_spriteram.bytes() - 2;offs > 2*2;offs -= 2)
{
int color;
int sx,sy;
UINT8 fx,fy;
- if(state->m_inv_spr)
+ if(m_inv_spr)
{
sx = spriteram_2[offs + 1];
sy = 240 - (spriteram_2[offs]);
@@ -244,13 +243,13 @@ SCREEN_UPDATE_IND16( pacman )
sy = spriteram_2[offs] - 31;
}
- fx = (spriteram[offs] & 1) ^ state->m_inv_spr;
- fy = (spriteram[offs] & 2) ^ ((state->m_inv_spr) << 1);
+ fx = (spriteram[offs] & 1) ^ m_inv_spr;
+ fy = (spriteram[offs] & 2) ^ ((m_inv_spr) << 1);
- color = ( spriteram[offs + 1] & 0x1f ) | (state->m_colortablebank << 5) | (state->m_palettebank << 6 );
+ color = ( spriteram[offs + 1] & 0x1f ) | (m_colortablebank << 5) | (m_palettebank << 6 );
drawgfx_transmask(bitmap,spriteclip,screen.machine().gfx[1],
- ( spriteram[offs] >> 2 ) | (state->m_spritebank << 6),
+ ( spriteram[offs] >> 2 ) | (m_spritebank << 6),
color,
fx,fy,
sx,sy,
@@ -258,7 +257,7 @@ SCREEN_UPDATE_IND16( pacman )
/* also plot the sprite with wraparound (tunnel in Crush Roller) */
drawgfx_transmask(bitmap,spriteclip,screen.machine().gfx[1],
- ( spriteram[offs] >> 2 ) | (state->m_spritebank << 6),
+ ( spriteram[offs] >> 2 ) | (m_spritebank << 6),
color,
fx,fy,
sx - 256,sy,
@@ -272,7 +271,7 @@ SCREEN_UPDATE_IND16( pacman )
int sx,sy;
UINT8 fx,fy;
- if(state->m_inv_spr)
+ if(m_inv_spr)
{
sx = spriteram_2[offs + 1];
sy = 240 - (spriteram_2[offs]);
@@ -282,30 +281,30 @@ SCREEN_UPDATE_IND16( pacman )
sx = 272 - spriteram_2[offs + 1];
sy = spriteram_2[offs] - 31;
}
- color = ( spriteram[offs + 1] & 0x1f ) | (state->m_colortablebank << 5) | (state->m_palettebank << 6 );
+ color = ( spriteram[offs + 1] & 0x1f ) | (m_colortablebank << 5) | (m_palettebank << 6 );
- fx = (spriteram[offs] & 1) ^ state->m_inv_spr;
- fy = (spriteram[offs] & 2) ^ ((state->m_inv_spr) << 1);
+ fx = (spriteram[offs] & 1) ^ m_inv_spr;
+ fy = (spriteram[offs] & 2) ^ ((m_inv_spr) << 1);
drawgfx_transmask(bitmap,spriteclip,screen.machine().gfx[1],
- ( spriteram[offs] >> 2 ) | (state->m_spritebank << 6),
+ ( spriteram[offs] >> 2 ) | (m_spritebank << 6),
color,
fx,fy,
- sx,sy + state->m_xoffsethack,
+ sx,sy + m_xoffsethack,
colortable_get_transpen_mask(screen.machine().colortable, screen.machine().gfx[1], color & 0x3f, 0));
/* also plot the sprite with wraparound (tunnel in Crush Roller) */
drawgfx_transmask(bitmap,spriteclip,screen.machine().gfx[1],
- ( spriteram[offs] >> 2 ) | (state->m_spritebank << 6),
+ ( spriteram[offs] >> 2 ) | (m_spritebank << 6),
color,
fy,fx, //FIXME: flipping bits are really supposed to be inverted here?
- sx - 256,sy + state->m_xoffsethack,
+ sx - 256,sy + m_xoffsethack,
colortable_get_transpen_mask(screen.machine().colortable, screen.machine().gfx[1], color & 0x3f, 0));
}
}
- if (state->m_bgpriority != 0)
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ if (m_bgpriority != 0)
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
@@ -400,16 +399,15 @@ VIDEO_START_MEMBER(pacman_state,s2650games)
m_bg_tilemap->set_scroll_cols(32);
}
-SCREEN_UPDATE_IND16( s2650games )
+UINT32 pacman_state::screen_update_s2650games(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pacman_state *state = screen.machine().driver_data<pacman_state>();
- UINT8 *spriteram = state->m_spriteram;
- UINT8 *spriteram_2 = state->m_spriteram2;
+ UINT8 *spriteram = m_spriteram;
+ UINT8 *spriteram_2 = m_spriteram2;
int offs;
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
- for (offs = state->m_spriteram.bytes() - 2;offs > 2*2;offs -= 2)
+ for (offs = m_spriteram.bytes() - 2;offs > 2*2;offs -= 2)
{
int color;
int sx,sy;
@@ -421,7 +419,7 @@ SCREEN_UPDATE_IND16( s2650games )
/* TODO: ?? */
drawgfx_transmask(bitmap,cliprect,screen.machine().gfx[1],
- (spriteram[offs] >> 2) | ((state->m_s2650_spriteram[offs] & 3) << 6),
+ (spriteram[offs] >> 2) | ((m_s2650_spriteram[offs] & 3) << 6),
color,
spriteram[offs] & 1,spriteram[offs] & 2,
sx,sy,
@@ -441,10 +439,10 @@ SCREEN_UPDATE_IND16( s2650games )
/* TODO: ?? */
drawgfx_transmask(bitmap,cliprect,screen.machine().gfx[1],
- (spriteram[offs] >> 2) | ((state->m_s2650_spriteram[offs] & 3)<<6),
+ (spriteram[offs] >> 2) | ((m_s2650_spriteram[offs] & 3)<<6),
color,
spriteram[offs] & 1,spriteram[offs] & 2,
- sx,sy + state->m_xoffsethack,
+ sx,sy + m_xoffsethack,
colortable_get_transpen_mask(screen.machine().colortable, screen.machine().gfx[1], color & 0x3f, 0));
}
return 0;
diff --git a/src/mame/video/pandoras.c b/src/mame/video/pandoras.c
index 7c7b37e0ac8..38ce5ea66ef 100644
--- a/src/mame/video/pandoras.c
+++ b/src/mame/video/pandoras.c
@@ -172,11 +172,10 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( pandoras )
+UINT32 pandoras_state::screen_update_pandoras(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pandoras_state *state = screen.machine().driver_data<pandoras_state>();
- state->m_layer0->draw(bitmap, cliprect, 1 ,0);
- draw_sprites(screen.machine(), bitmap, cliprect, &state->m_spriteram[0x800] );
- state->m_layer0->draw(bitmap, cliprect, 0 ,0);
+ m_layer0->draw(bitmap, cliprect, 1 ,0);
+ draw_sprites(screen.machine(), bitmap, cliprect, &m_spriteram[0x800] );
+ m_layer0->draw(bitmap, cliprect, 0 ,0);
return 0;
}
diff --git a/src/mame/video/paradise.c b/src/mame/video/paradise.c
index a23dab648a2..9ff14d902c8 100644
--- a/src/mame/video/paradise.c
+++ b/src/mame/video/paradise.c
@@ -230,9 +230,8 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
***************************************************************************/
-SCREEN_UPDATE_IND16( paradise )
+UINT32 paradise_state::screen_update_paradise(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- paradise_state *state = screen.machine().driver_data<paradise_state>();
int layers_ctrl = -1;
#ifdef MAME_DEBUG
@@ -250,30 +249,30 @@ if (screen.machine().input().code_pressed(KEYCODE_Z))
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- if (!(state->m_priority & 4)) /* Screen blanking */
+ if (!(m_priority & 4)) /* Screen blanking */
return 0;
- if (state->m_priority & 1)
+ if (m_priority & 1)
if (layers_ctrl & 16)
draw_sprites(screen.machine(), bitmap, cliprect);
- if (layers_ctrl & 1) state->m_tilemap_0->draw(bitmap, cliprect, 0, 0);
- if (layers_ctrl & 2) state->m_tilemap_1->draw(bitmap, cliprect, 0, 0);
- if (layers_ctrl & 4) copybitmap_trans(bitmap, state->m_tmpbitmap, state->flip_screen(), state->flip_screen(), 0, 0, cliprect, 0x80f);
+ if (layers_ctrl & 1) m_tilemap_0->draw(bitmap, cliprect, 0, 0);
+ if (layers_ctrl & 2) m_tilemap_1->draw(bitmap, cliprect, 0, 0);
+ if (layers_ctrl & 4) copybitmap_trans(bitmap, m_tmpbitmap, flip_screen(), flip_screen(), 0, 0, cliprect, 0x80f);
- if (state->m_priority & 2)
+ if (m_priority & 2)
{
- if (!(state->m_priority & 1))
+ if (!(m_priority & 1))
if (layers_ctrl & 16)
draw_sprites(screen.machine(), bitmap, cliprect);
if (layers_ctrl & 8)
- state->m_tilemap_2->draw(bitmap, cliprect, 0, 0);
+ m_tilemap_2->draw(bitmap, cliprect, 0, 0);
}
else
{
if (layers_ctrl & 8)
- state->m_tilemap_2->draw(bitmap, cliprect, 0, 0);
- if (!(state->m_priority & 1))
+ m_tilemap_2->draw(bitmap, cliprect, 0, 0);
+ if (!(m_priority & 1))
if (layers_ctrl & 16)
draw_sprites(screen.machine(), bitmap, cliprect);
}
@@ -281,46 +280,44 @@ if (screen.machine().input().code_pressed(KEYCODE_Z))
}
/* no pix layer, no tilemap_0, different priority bits */
-SCREEN_UPDATE_IND16( torus )
+UINT32 paradise_state::screen_update_torus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- paradise_state *state = screen.machine().driver_data<paradise_state>();
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- if (!(state->m_priority & 2)) /* Screen blanking */
+ if (!(m_priority & 2)) /* Screen blanking */
return 0;
- if (state->m_priority & 1)
+ if (m_priority & 1)
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_tilemap_1->draw(bitmap, cliprect, 0,0);
+ m_tilemap_1->draw(bitmap, cliprect, 0,0);
- if (state->m_priority & 4)
+ if (m_priority & 4)
{
- if (!(state->m_priority & 1))
+ if (!(m_priority & 1))
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_tilemap_2->draw(bitmap, cliprect, 0, 0);
+ m_tilemap_2->draw(bitmap, cliprect, 0, 0);
}
else
{
- state->m_tilemap_2->draw(bitmap, cliprect, 0, 0);
+ m_tilemap_2->draw(bitmap, cliprect, 0, 0);
- if (!(state->m_priority & 1))
+ if (!(m_priority & 1))
draw_sprites(screen.machine(), bitmap,cliprect);
}
return 0;
}
/* I don't know how the priority bits work on this one */
-SCREEN_UPDATE_IND16( madball )
+UINT32 paradise_state::screen_update_madball(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- paradise_state *state = screen.machine().driver_data<paradise_state>();
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- state->m_tilemap_0->draw(bitmap, cliprect, 0, 0);
- state->m_tilemap_1->draw(bitmap, cliprect, 0, 0);
- state->m_tilemap_2->draw(bitmap, cliprect, 0, 0);
+ m_tilemap_0->draw(bitmap, cliprect, 0, 0);
+ m_tilemap_1->draw(bitmap, cliprect, 0, 0);
+ m_tilemap_2->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/parodius.c b/src/mame/video/parodius.c
index c8b7483040f..dddcb0b49b1 100644
--- a/src/mame/video/parodius.c
+++ b/src/mame/video/parodius.c
@@ -45,34 +45,33 @@ void parodius_sprite_callback( running_machine &machine, int *code, int *color,
***************************************************************************/
-SCREEN_UPDATE_IND16( parodius )
+UINT32 parodius_state::screen_update_parodius(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- parodius_state *state = screen.machine().driver_data<parodius_state>();
int layer[3], bg_colorbase;
- bg_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI0);
- state->m_sprite_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI1);
- state->m_layer_colorbase[0] = k053251_get_palette_index(state->m_k053251, K053251_CI2);
- state->m_layer_colorbase[1] = k053251_get_palette_index(state->m_k053251, K053251_CI4);
- state->m_layer_colorbase[2] = k053251_get_palette_index(state->m_k053251, K053251_CI3);
+ bg_colorbase = k053251_get_palette_index(m_k053251, K053251_CI0);
+ m_sprite_colorbase = k053251_get_palette_index(m_k053251, K053251_CI1);
+ m_layer_colorbase[0] = k053251_get_palette_index(m_k053251, K053251_CI2);
+ m_layer_colorbase[1] = k053251_get_palette_index(m_k053251, K053251_CI4);
+ m_layer_colorbase[2] = k053251_get_palette_index(m_k053251, K053251_CI3);
- k052109_tilemap_update(state->m_k052109);
+ k052109_tilemap_update(m_k052109);
layer[0] = 0;
- state->m_layerpri[0] = k053251_get_priority(state->m_k053251, K053251_CI2);
+ m_layerpri[0] = k053251_get_priority(m_k053251, K053251_CI2);
layer[1] = 1;
- state->m_layerpri[1] = k053251_get_priority(state->m_k053251, K053251_CI4);
+ m_layerpri[1] = k053251_get_priority(m_k053251, K053251_CI4);
layer[2] = 2;
- state->m_layerpri[2] = k053251_get_priority(state->m_k053251, K053251_CI3);
+ m_layerpri[2] = k053251_get_priority(m_k053251, K053251_CI3);
- konami_sortlayers3(layer, state->m_layerpri);
+ konami_sortlayers3(layer, m_layerpri);
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(16 * bg_colorbase, cliprect);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, layer[0], 0,1);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, layer[1], 0,2);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, layer[2], 0,4);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, layer[0], 0,1);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, layer[1], 0,2);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, layer[2], 0,4);
- k053245_sprites_draw(state->m_k053245, bitmap, cliprect);
+ k053245_sprites_draw(m_k053245, bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/pass.c b/src/mame/video/pass.c
index 27a243ad2a3..7d8d7845879 100644
--- a/src/mame/video/pass.c
+++ b/src/mame/video/pass.c
@@ -52,12 +52,11 @@ void pass_state::video_start()
m_fg_tilemap->set_transparent_pen(255);
}
-SCREEN_UPDATE_IND16( pass )
+UINT32 pass_state::screen_update_pass(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pass_state *state = screen.machine().driver_data<pass_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/pastelg.c b/src/mame/video/pastelg.c
index b26ea5a0838..dfbea56cbfa 100644
--- a/src/mame/video/pastelg.c
+++ b/src/mame/video/pastelg.c
@@ -296,10 +296,9 @@ void pastelg_state::video_start()
******************************************************************************/
-SCREEN_UPDATE_IND16( pastelg )
+UINT32 pastelg_state::screen_update_pastelg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pastelg_state *state = screen.machine().driver_data<pastelg_state>();
- if (state->m_dispflag)
+ if (m_dispflag)
{
int x, y;
int width = screen.width();
@@ -307,7 +306,7 @@ SCREEN_UPDATE_IND16( pastelg )
for (y = 0; y < height; y++)
for (x = 0; x < width; x++)
- bitmap.pix16(y, x) = state->m_videoram[(y * width) + x];
+ bitmap.pix16(y, x) = m_videoram[(y * width) + x];
}
else
bitmap.fill(0, cliprect);
diff --git a/src/mame/video/pbaction.c b/src/mame/video/pbaction.c
index ef351649808..6ece827729b 100644
--- a/src/mame/video/pbaction.c
+++ b/src/mame/video/pbaction.c
@@ -124,12 +124,11 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( pbaction )
+UINT32 pbaction_state::screen_update_pbaction(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pbaction_state *state = screen.machine().driver_data<pbaction_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/pcktgal.c b/src/mame/video/pcktgal.c
index d143cca2d13..29b598939b1 100644
--- a/src/mame/video/pcktgal.c
+++ b/src/mame/video/pcktgal.c
@@ -65,15 +65,15 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( pcktgal )
+UINT32 pcktgal_state::screen_update_pcktgal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
-// state->flip_screen_set(screen.machine().device<deco_bac06_device>("tilegen1")->get_flip_state());
+// flip_screen_set(screen.machine().device<deco_bac06_device>("tilegen1")->get_flip_state());
screen.machine().device<deco_bac06_device>("tilegen1")->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
-SCREEN_UPDATE_IND16( pcktgalb )
+UINT32 pcktgal_state::screen_update_pcktgalb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
// the bootleg doesn't properly set the tilemap registers, because it's on non-original hardware, which probably doesn't have the flexible tilemaps.
screen.machine().device<deco_bac06_device>("tilegen1")->deco_bac06_pf_draw_bootleg(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0, 2);
diff --git a/src/mame/video/pgm.c b/src/mame/video/pgm.c
index 47db2d3caac..79090e3b509 100644
--- a/src/mame/video/pgm.c
+++ b/src/mame/video/pgm.c
@@ -637,44 +637,42 @@ VIDEO_START_MEMBER(pgm_state,pgm)
save_pointer(NAME(m_spritebufferram), 0xa00/2);
}
-SCREEN_UPDATE_IND16( pgm )
+UINT32 pgm_state::screen_update_pgm(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pgm_state *state = screen.machine().driver_data<pgm_state>();
int y;
bitmap.fill(0x3ff, cliprect); // ddp2 igs logo needs 0x3ff
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_bg_tilemap->set_scrolly(0, state->m_videoregs[0x2000/2]);
+ m_bg_tilemap->set_scrolly(0, m_videoregs[0x2000/2]);
for (y = 0; y < 224; y++)
- state->m_bg_tilemap->set_scrollx((y + state->m_videoregs[0x2000 / 2]) & 0x1ff, state->m_videoregs[0x3000 / 2] + state->m_rowscrollram[y]);
+ m_bg_tilemap->set_scrollx((y + m_videoregs[0x2000 / 2]) & 0x1ff, m_videoregs[0x3000 / 2] + m_rowscrollram[y]);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 2);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 2);
- draw_sprites(state, screen.machine(), bitmap, state->m_spritebufferram, screen.machine().priority_bitmap);
+ draw_sprites(this, screen.machine(), bitmap, m_spritebufferram, screen.machine().priority_bitmap);
- state->m_tx_tilemap->set_scrolly(0, state->m_videoregs[0x5000/2]);
- state->m_tx_tilemap->set_scrollx(0, state->m_videoregs[0x6000/2]); // Check
+ m_tx_tilemap->set_scrolly(0, m_videoregs[0x5000/2]);
+ m_tx_tilemap->set_scrollx(0, m_videoregs[0x6000/2]); // Check
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_VBLANK( pgm )
+void pgm_state::screen_eof_pgm(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- pgm_state *state = screen.machine().driver_data<pgm_state>();
/* first 0xa00 of main ram = sprites, seems to be buffered, DMA? */
- memcpy(state->m_spritebufferram, state->m_mainram, 0xa00);
+ memcpy(m_spritebufferram, m_mainram, 0xa00);
}
}
diff --git a/src/mame/video/phoenix.c b/src/mame/video/phoenix.c
index ceb03d8d893..90c1f2c3455 100644
--- a/src/mame/video/phoenix.c
+++ b/src/mame/video/phoenix.c
@@ -443,10 +443,9 @@ READ_LINE_DEVICE_HANDLER( survival_sid_callback )
***************************************************************************/
-SCREEN_UPDATE_IND16( phoenix )
+UINT32 phoenix_state::screen_update_phoenix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- phoenix_state *state = screen.machine().driver_data<phoenix_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/video/pingpong.c b/src/mame/video/pingpong.c
index 977168e7ae7..54c474f0cf6 100644
--- a/src/mame/video/pingpong.c
+++ b/src/mame/video/pingpong.c
@@ -143,10 +143,9 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( pingpong )
+UINT32 pingpong_state::screen_update_pingpong(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pingpong_state *state = screen.machine().driver_data<pingpong_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/pirates.c b/src/mame/video/pirates.c
index dc8de290b17..ffc4dcd562e 100644
--- a/src/mame/video/pirates.c
+++ b/src/mame/video/pirates.c
@@ -100,14 +100,13 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16(pirates)
+UINT32 pirates_state::screen_update_pirates(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pirates_state *state = screen.machine().driver_data<pirates_state>();
- state->m_bg_tilemap->set_scrollx(0,state->m_scroll[0]);
- state->m_fg_tilemap->set_scrollx(0,state->m_scroll[0]);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->set_scrollx(0,m_scroll[0]);
+ m_fg_tilemap->set_scrollx(0,m_scroll[0]);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(),bitmap,cliprect);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/video/pitnrun.c b/src/mame/video/pitnrun.c
index 8a825e425eb..6f343c84f5e 100644
--- a/src/mame/video/pitnrun.c
+++ b/src/mame/video/pitnrun.c
@@ -207,16 +207,15 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( pitnrun )
+UINT32 pitnrun_state::screen_update_pitnrun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pitnrun_state *state = screen.machine().driver_data<pitnrun_state>();
int dx=0,dy=0;
rectangle myclip=cliprect;
#ifdef MAME_DEBUG
if (screen.machine().input().code_pressed_once(KEYCODE_Q))
{
- UINT8 *ROM = state->memregion("maincpu")->base();
+ UINT8 *ROM = memregion("maincpu")->base();
ROM[0x84f6]=0; /* lap 0 - normal */
}
@@ -236,30 +235,30 @@ SCREEN_UPDATE_IND16( pitnrun )
bitmap.fill(0, cliprect);
- if(!(state->m_ha&4))
- state->m_bg->draw(bitmap, cliprect, 0,0);
+ if(!(m_ha&4))
+ m_bg->draw(bitmap, cliprect, 0,0);
else
{
- dx=128-state->m_h_heed+((state->m_ha&8)<<5)+3;
- dy=128-state->m_v_heed+((state->m_ha&0x10)<<4);
+ dx=128-m_h_heed+((m_ha&8)<<5)+3;
+ dy=128-m_v_heed+((m_ha&0x10)<<4);
- if (state->flip_screen_x())
+ if (flip_screen_x())
dx=128-dx+16;
- if (state->flip_screen_y())
+ if (flip_screen_y())
dy=128-dy;
myclip.set(dx, dx+127, dy, dy+127);
myclip &= cliprect;
- state->m_bg->draw(bitmap, myclip, 0,0);
+ m_bg->draw(bitmap, myclip, 0,0);
}
draw_sprites(screen.machine(),bitmap,myclip);
- if(state->m_ha&4)
- copybitmap_trans(bitmap,*state->m_tmp_bitmap[state->m_ha&3],state->flip_screen_x(),state->flip_screen_y(),dx,dy,myclip, 1);
- state->m_fg->draw(bitmap, cliprect, 0,0);
+ if(m_ha&4)
+ copybitmap_trans(bitmap,*m_tmp_bitmap[m_ha&3],flip_screen_x(),flip_screen_y(),dx,dy,myclip, 1);
+ m_fg->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/video/pktgaldx.c b/src/mame/video/pktgaldx.c
index 3ed5d1f8c64..d71a0e5eb6e 100644
--- a/src/mame/video/pktgaldx.c
+++ b/src/mame/video/pktgaldx.c
@@ -5,29 +5,27 @@
/* Video on the orginal */
-SCREEN_UPDATE_IND16( pktgaldx )
+UINT32 pktgaldx_state::screen_update_pktgaldx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pktgaldx_state *state = screen.machine().driver_data<pktgaldx_state>();
address_space &space = screen.machine().driver_data()->generic_space();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
+ UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
- state->flip_screen_set(BIT(flip, 7));
- deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
+ flip_screen_set(BIT(flip, 7));
+ deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
bitmap.fill(0, cliprect); /* not Confirmed */
screen.machine().priority_bitmap.fill(0);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
- screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400, true);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400, true);
+ deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
return 0;
}
/* Video for the bootleg */
-SCREEN_UPDATE_IND16( pktgaldb )
+UINT32 pktgaldx_state::screen_update_pktgaldb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pktgaldx_state *state = screen.machine().driver_data<pktgaldx_state>();
int x, y;
int offset = 0;
int tileno;
@@ -38,10 +36,10 @@ SCREEN_UPDATE_IND16( pktgaldb )
/* the bootleg seems to treat the tilemaps as sprites */
for (offset = 0; offset < 0x1600 / 2; offset += 8)
{
- tileno = state->m_pktgaldb_sprites[offset + 3] | (state->m_pktgaldb_sprites[offset + 2] << 16);
- colour = state->m_pktgaldb_sprites[offset + 1] >> 1;
- x = state->m_pktgaldb_sprites[offset + 0];
- y = state->m_pktgaldb_sprites[offset + 4];
+ tileno = m_pktgaldb_sprites[offset + 3] | (m_pktgaldb_sprites[offset + 2] << 16);
+ colour = m_pktgaldb_sprites[offset + 1] >> 1;
+ x = m_pktgaldb_sprites[offset + 0];
+ y = m_pktgaldb_sprites[offset + 4];
x -= 0xc2;
y &= 0x1ff;
@@ -52,10 +50,10 @@ SCREEN_UPDATE_IND16( pktgaldb )
for (offset = 0x1600/2; offset < 0x2000 / 2; offset += 8)
{
- tileno = state->m_pktgaldb_sprites[offset + 3] | (state->m_pktgaldb_sprites[offset + 2] << 16);
- colour = state->m_pktgaldb_sprites[offset + 1] >> 1;
- x = state->m_pktgaldb_sprites[offset + 0] & 0x1ff;
- y = state->m_pktgaldb_sprites[offset + 4] & 0x0ff;
+ tileno = m_pktgaldb_sprites[offset + 3] | (m_pktgaldb_sprites[offset + 2] << 16);
+ colour = m_pktgaldb_sprites[offset + 1] >> 1;
+ x = m_pktgaldb_sprites[offset + 0] & 0x1ff;
+ y = m_pktgaldb_sprites[offset + 4] & 0x0ff;
x -= 0xc2;
y &= 0x1ff;
@@ -66,10 +64,10 @@ SCREEN_UPDATE_IND16( pktgaldb )
for (offset = 0x2000/2; offset < 0x4000 / 2; offset += 8)
{
- tileno = state->m_pktgaldb_sprites[offset + 3] | (state->m_pktgaldb_sprites[offset + 2] << 16);
- colour = state->m_pktgaldb_sprites[offset + 1] >> 1;
- x = state->m_pktgaldb_sprites[offset + 0] & 0x1ff;
- y = state->m_pktgaldb_sprites[offset + 4] & 0x0ff;
+ tileno = m_pktgaldb_sprites[offset + 3] | (m_pktgaldb_sprites[offset + 2] << 16);
+ colour = m_pktgaldb_sprites[offset + 1] >> 1;
+ x = m_pktgaldb_sprites[offset + 0] & 0x1ff;
+ y = m_pktgaldb_sprites[offset + 4] & 0x0ff;
x -= 0xc2;
y &= 0x1ff;
diff --git a/src/mame/video/playch10.c b/src/mame/video/playch10.c
index ac6d84f6c3f..41c380fe08f 100644
--- a/src/mame/video/playch10.c
+++ b/src/mame/video/playch10.c
@@ -113,45 +113,43 @@ VIDEO_START_MEMBER(playch10_state,playch10_hboard)
***************************************************************************/
-SCREEN_UPDATE_IND16( playch10_single )
+UINT32 playch10_state::screen_update_playch10_single(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- playch10_state *state = screen.machine().driver_data<playch10_state>();
ppu2c0x_device *ppu = screen.machine().device<ppu2c0x_device>("ppu");
rectangle top_monitor = screen.visible_area();
top_monitor.max_y = ( top_monitor.max_y - top_monitor.min_y ) / 2;
- if(state->m_pc10_dispmask_old != state->m_pc10_dispmask)
+ if(m_pc10_dispmask_old != m_pc10_dispmask)
{
- state->m_pc10_dispmask_old = state->m_pc10_dispmask;
+ m_pc10_dispmask_old = m_pc10_dispmask;
- if(state->m_pc10_dispmask)
- state->m_pc10_game_mode ^= 1;
+ if(m_pc10_dispmask)
+ m_pc10_game_mode ^= 1;
}
- if ( state->m_pc10_game_mode )
+ if ( m_pc10_game_mode )
/* render the ppu */
ppu->render(bitmap, 0, 0, 0, 0 );
else
{
/* When the bios is accessing vram, the video circuitry can't access it */
- if ( !state->m_pc10_sdcs )
- state->m_bg_tilemap->draw(bitmap, top_monitor, 0, 0);
+ if ( !m_pc10_sdcs )
+ m_bg_tilemap->draw(bitmap, top_monitor, 0, 0);
}
return 0;
}
-SCREEN_UPDATE_IND16( playch10_top )
+UINT32 playch10_state::screen_update_playch10_top(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- playch10_state *state = screen.machine().driver_data<playch10_state>();
ppu2c0x_device *ppu = screen.machine().device<ppu2c0x_device>("ppu");
/* Single Monitor version */
- if (state->m_pc10_bios != 1)
- return SCREEN_UPDATE16_CALL(playch10_single);
+ if (m_pc10_bios != 1)
+ return SCREEN_UPDATE16_CALL_MEMBER(playch10_single);
- if (!state->m_pc10_dispmask)
+ if (!m_pc10_dispmask)
/* render the ppu */
ppu->render(bitmap, 0, 0, 0, 0);
else
@@ -160,18 +158,17 @@ SCREEN_UPDATE_IND16( playch10_top )
return 0;
}
-SCREEN_UPDATE_IND16( playch10_bottom )
+UINT32 playch10_state::screen_update_playch10_bottom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- playch10_state *state = screen.machine().driver_data<playch10_state>();
/* Single Monitor version */
- if (state->m_pc10_bios != 1)
- return SCREEN_UPDATE16_CALL(playch10_single);
+ if (m_pc10_bios != 1)
+ return SCREEN_UPDATE16_CALL_MEMBER(playch10_single);
/* When the bios is accessing vram, the video circuitry can't access it */
- if ( !state->m_pc10_sdcs )
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ if ( !m_pc10_sdcs )
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
else
bitmap.fill(0, cliprect);
diff --git a/src/mame/video/playmark.c b/src/mame/video/playmark.c
index f1ee9f26ac5..5f41eb551d8 100644
--- a/src/mame/video/playmark.c
+++ b/src/mame/video/playmark.c
@@ -493,92 +493,87 @@ static void draw_bitmap( running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( bigtwin )
+UINT32 playmark_state::screen_update_bigtwin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- playmark_state *state = screen.machine().driver_data<playmark_state>();
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
- if (state->m_bg_enable)
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (m_bg_enable)
draw_bitmap(screen.machine(), bitmap, cliprect);
draw_sprites(screen.machine(), bitmap, cliprect, 4);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( bigtwinb )
+UINT32 playmark_state::screen_update_bigtwinb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- playmark_state *state = screen.machine().driver_data<playmark_state>();
// video enabled
- if (state->m_scroll[6] & 1)
+ if (m_scroll[6] & 1)
{
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
bigtwinb_draw_sprites(screen.machine(), bitmap, cliprect, 4);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
}
else
bitmap.fill(get_black_pen(screen.machine()), cliprect);
return 0;
}
-SCREEN_UPDATE_IND16( excelsr )
+UINT32 playmark_state::screen_update_excelsr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- playmark_state *state = screen.machine().driver_data<playmark_state>();
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 1);
- if (state->m_bg_enable)
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 1);
+ if (m_bg_enable)
draw_bitmap(screen.machine(), bitmap, cliprect);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 4);
draw_sprites(screen.machine(), bitmap, cliprect, 2);
return 0;
}
-SCREEN_UPDATE_IND16( wbeachvl )
+UINT32 playmark_state::screen_update_wbeachvl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- playmark_state *state = screen.machine().driver_data<playmark_state>();
- if (state->m_fg_rowscroll_enable)
+ if (m_fg_rowscroll_enable)
{
int i;
- state->m_fg_tilemap->set_scroll_rows(512);
+ m_fg_tilemap->set_scroll_rows(512);
for (i = 0; i < 256; i++)
- state->m_fg_tilemap->set_scrollx(i + 1, state->m_rowscroll[8 * i]);
+ m_fg_tilemap->set_scrollx(i + 1, m_rowscroll[8 * i]);
}
else
{
- state->m_fg_tilemap->set_scroll_rows(1);
- state->m_fg_tilemap->set_scrollx(0, state->m_fgscrollx);
+ m_fg_tilemap->set_scroll_rows(1);
+ m_fg_tilemap->set_scrollx(0, m_fgscrollx);
}
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
draw_sprites(screen.machine(), bitmap, cliprect, 0);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( hrdtimes )
+UINT32 playmark_state::screen_update_hrdtimes(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- playmark_state *state = screen.machine().driver_data<playmark_state>();
screen.machine().priority_bitmap.fill(0, cliprect);
// video enabled
- if (state->m_scroll[6] & 1)
+ if (m_scroll[6] & 1)
{
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 1);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
draw_sprites(screen.machine(), bitmap, cliprect, 2);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
}
else
bitmap.fill(get_black_pen(screen.machine()), cliprect);
diff --git a/src/mame/video/plygonet.c b/src/mame/video/plygonet.c
index cd2f91be9ac..72d222b0938 100644
--- a/src/mame/video/plygonet.c
+++ b/src/mame/video/plygonet.c
@@ -116,16 +116,15 @@ void polygonet_state::video_start()
save_item(NAME(m_roz_vram));
}
-SCREEN_UPDATE_IND16( polygonet )
+UINT32 polygonet_state::screen_update_polygonet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- polygonet_state *state = screen.machine().driver_data<polygonet_state>();
device_t *k053936 = screen.machine().device("k053936");
screen.machine().priority_bitmap.fill(0);
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- k053936_zoom_draw(k053936, bitmap, cliprect, state->m_roz_tilemap, 0, 0, 0);
+ k053936_zoom_draw(k053936, bitmap, cliprect, m_roz_tilemap, 0, 0, 0);
- state->m_ttl_tilemap->draw(bitmap, cliprect, 0, 1<<0);
+ m_ttl_tilemap->draw(bitmap, cliprect, 0, 1<<0);
return 0;
}
diff --git a/src/mame/video/pokechmp.c b/src/mame/video/pokechmp.c
index 32bad75dd1e..c2a0ae00754 100644
--- a/src/mame/video/pokechmp.c
+++ b/src/mame/video/pokechmp.c
@@ -72,10 +72,9 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( pokechmp )
+UINT32 pokechmp_state::screen_update_pokechmp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pokechmp_state *state = screen.machine().driver_data<pokechmp_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/polepos.c b/src/mame/video/polepos.c
index 43323bbd409..11159d5ade6 100644
--- a/src/mame/video/polepos.c
+++ b/src/mame/video/polepos.c
@@ -498,14 +498,13 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
-SCREEN_UPDATE_IND16( polepos )
+UINT32 polepos_state::screen_update_polepos(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- polepos_state *state = screen.machine().driver_data<polepos_state>();
rectangle clip = cliprect;
clip.max_y = 127;
- state->m_bg_tilemap->draw(bitmap, clip, 0,0);
+ m_bg_tilemap->draw(bitmap, clip, 0,0);
draw_road(screen.machine(), bitmap);
draw_sprites(screen.machine(), bitmap,cliprect);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/video/policetr.c b/src/mame/video/policetr.c
index 5f91cba831e..a45fc8ce3fc 100644
--- a/src/mame/video/policetr.c
+++ b/src/mame/video/policetr.c
@@ -343,15 +343,14 @@ WRITE32_MEMBER(policetr_state::policetr_palette_data_w)
*
*************************************/
-SCREEN_UPDATE_IND16( policetr )
+UINT32 policetr_state::screen_update_policetr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- policetr_state *state = screen.machine().driver_data<policetr_state>();
int width = cliprect.width();
int y;
/* render all the scanlines from the dstbitmap to MAME's bitmap */
for (y = cliprect.min_y; y <= cliprect.max_y; y++)
- draw_scanline8(bitmap, cliprect.min_x, y, width, &state->m_dstbitmap[DSTBITMAP_WIDTH * y + cliprect.min_x], NULL);
+ draw_scanline8(bitmap, cliprect.min_x, y, width, &m_dstbitmap[DSTBITMAP_WIDTH * y + cliprect.min_x], NULL);
return 0;
}
diff --git a/src/mame/video/polyplay.c b/src/mame/video/polyplay.c
index 918fa18dab3..5e01d144057 100644
--- a/src/mame/video/polyplay.c
+++ b/src/mame/video/polyplay.c
@@ -45,10 +45,9 @@ void polyplay_state::video_start()
}
-SCREEN_UPDATE_IND16( polyplay )
+UINT32 polyplay_state::screen_update_polyplay(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- polyplay_state *state = screen.machine().driver_data<polyplay_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
offs_t offs;
diff --git a/src/mame/video/poolshrk.c b/src/mame/video/poolshrk.c
index 4a368cfdf02..0c2574a9101 100644
--- a/src/mame/video/poolshrk.c
+++ b/src/mame/video/poolshrk.c
@@ -25,12 +25,11 @@ void poolshrk_state::video_start()
}
-SCREEN_UPDATE_IND16( poolshrk )
+UINT32 poolshrk_state::screen_update_poolshrk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- poolshrk_state *state = screen.machine().driver_data<poolshrk_state>();
int i;
- state->m_bg_tilemap->mark_all_dirty();
+ m_bg_tilemap->mark_all_dirty();
bitmap.fill(0, cliprect);
@@ -38,8 +37,8 @@ SCREEN_UPDATE_IND16( poolshrk )
for (i = 0; i < 16; i++)
{
- int hpos = state->m_hpos_ram[i];
- int vpos = state->m_vpos_ram[i];
+ int hpos = m_hpos_ram[i];
+ int vpos = m_vpos_ram[i];
drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[0], i, (i == 0) ? 0 : 1, 0, 0,
248 - hpos, vpos - 15, 0);
@@ -47,6 +46,6 @@ SCREEN_UPDATE_IND16( poolshrk )
/* draw playfield */
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/pooyan.c b/src/mame/video/pooyan.c
index 722575ec839..74714daae6e 100644
--- a/src/mame/video/pooyan.c
+++ b/src/mame/video/pooyan.c
@@ -189,11 +189,10 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
*
*************************************/
-SCREEN_UPDATE_IND16( pooyan )
+UINT32 pooyan_state::screen_update_pooyan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pooyan_state *state = screen.machine().driver_data<pooyan_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/popeye.c b/src/mame/video/popeye.c
index d81bf8cf600..01b4ec53a7d 100644
--- a/src/mame/video/popeye.c
+++ b/src/mame/video/popeye.c
@@ -365,11 +365,10 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( popeye )
+UINT32 popeye_state::screen_update_popeye(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- popeye_state *state = screen.machine().driver_data<popeye_state>();
draw_background(screen.machine(), bitmap, cliprect);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/popper.c b/src/mame/video/popper.c
index 9445e57e1e4..2c378bdf0ea 100644
--- a/src/mame/video/popper.c
+++ b/src/mame/video/popper.c
@@ -235,10 +235,9 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap,const r
}
}
-SCREEN_UPDATE_IND16( popper )
+UINT32 popper_state::screen_update_popper(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- popper_state *state = screen.machine().driver_data<popper_state>();
- rectangle finalclip = state->m_tilemap_clip;
+ rectangle finalclip = m_tilemap_clip;
finalclip &= cliprect;
//attribram
@@ -247,16 +246,16 @@ SCREEN_UPDATE_IND16( popper )
//-xxx---- colour for pen 0 (from second prom?)
//----xxxx colour for pens 1,2,3
- state->m_p123_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
- state->m_p0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
- state->m_ol_p123_tilemap->draw(bitmap, finalclip, TILEMAP_DRAW_LAYER1, 0);
- state->m_ol_p0_tilemap->draw(bitmap, finalclip, TILEMAP_DRAW_LAYER1, 0);
+ m_p123_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
+ m_p0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
+ m_ol_p123_tilemap->draw(bitmap, finalclip, TILEMAP_DRAW_LAYER1, 0);
+ m_ol_p0_tilemap->draw(bitmap, finalclip, TILEMAP_DRAW_LAYER1, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_p123_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
- state->m_p0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
- state->m_ol_p123_tilemap->draw(bitmap, finalclip, TILEMAP_DRAW_LAYER0, 0);
- state->m_ol_p0_tilemap->draw(bitmap, finalclip, TILEMAP_DRAW_LAYER0, 0);
+ m_p123_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
+ m_p0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
+ m_ol_p123_tilemap->draw(bitmap, finalclip, TILEMAP_DRAW_LAYER0, 0);
+ m_ol_p0_tilemap->draw(bitmap, finalclip, TILEMAP_DRAW_LAYER0, 0);
return 0;
}
diff --git a/src/mame/video/portrait.c b/src/mame/video/portrait.c
index d175ec01e35..4eac99b2009 100644
--- a/src/mame/video/portrait.c
+++ b/src/mame/video/portrait.c
@@ -184,9 +184,8 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( portrait )
+UINT32 portrait_state::screen_update_portrait(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- portrait_state *state = screen.machine().driver_data<portrait_state>();
rectangle cliprect_scroll, cliprect_no_scroll;
cliprect_scroll = cliprect_no_scroll = cliprect;
@@ -194,15 +193,15 @@ SCREEN_UPDATE_IND16( portrait )
cliprect_no_scroll.min_x = cliprect_no_scroll.max_x - 111;
cliprect_scroll.max_x = cliprect_scroll.min_x + 319;
- state->m_background->set_scrolly(0, 0);
- state->m_foreground->set_scrolly(0, 0);
- state->m_background->draw(bitmap, cliprect_no_scroll, 0, 0);
- state->m_foreground->draw(bitmap, cliprect_no_scroll, 0, 0);
+ m_background->set_scrolly(0, 0);
+ m_foreground->set_scrolly(0, 0);
+ m_background->draw(bitmap, cliprect_no_scroll, 0, 0);
+ m_foreground->draw(bitmap, cliprect_no_scroll, 0, 0);
- state->m_background->set_scrolly(0, state->m_scroll);
- state->m_foreground->set_scrolly(0, state->m_scroll);
- state->m_background->draw(bitmap, cliprect_scroll, 0, 0);
- state->m_foreground->draw(bitmap, cliprect_scroll, 0, 0);
+ m_background->set_scrolly(0, m_scroll);
+ m_foreground->set_scrolly(0, m_scroll);
+ m_background->draw(bitmap, cliprect_scroll, 0, 0);
+ m_foreground->draw(bitmap, cliprect_scroll, 0, 0);
draw_sprites(screen.machine(), bitmap,cliprect);
return 0;
diff --git a/src/mame/video/powerins.c b/src/mame/video/powerins.c
index b2dd54814d8..b99c6bde14f 100644
--- a/src/mame/video/powerins.c
+++ b/src/mame/video/powerins.c
@@ -325,19 +325,18 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re
***************************************************************************/
-SCREEN_UPDATE_IND16( powerins )
+UINT32 powerins_state::screen_update_powerins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- powerins_state *state = screen.machine().driver_data<powerins_state>();
int layers_ctrl = -1;
- int scrollx = (state->m_vctrl_0[2/2]&0xff) + (state->m_vctrl_0[0/2]&0xff)*256;
- int scrolly = (state->m_vctrl_0[6/2]&0xff) + (state->m_vctrl_0[4/2]&0xff)*256;
+ int scrollx = (m_vctrl_0[2/2]&0xff) + (m_vctrl_0[0/2]&0xff)*256;
+ int scrolly = (m_vctrl_0[6/2]&0xff) + (m_vctrl_0[4/2]&0xff)*256;
- state->m_tilemap_0->set_scrollx(0, scrollx - 0x20);
- state->m_tilemap_0->set_scrolly(0, scrolly );
+ m_tilemap_0->set_scrollx(0, scrollx - 0x20);
+ m_tilemap_0->set_scrolly(0, scrolly );
- state->m_tilemap_1->set_scrollx(0, -0x20); // fixed offset
- state->m_tilemap_1->set_scrolly(0, 0x00);
+ m_tilemap_1->set_scrollx(0, -0x20); // fixed offset
+ m_tilemap_1->set_scrolly(0, 0x00);
#ifdef MAME_DEBUG
if (screen.machine().input().code_pressed(KEYCODE_Z))
@@ -352,9 +351,9 @@ if (screen.machine().input().code_pressed(KEYCODE_Z))
}
#endif
- if (layers_ctrl&1) state->m_tilemap_0->draw(bitmap, cliprect, 0, 0);
+ if (layers_ctrl&1) m_tilemap_0->draw(bitmap, cliprect, 0, 0);
else bitmap.fill(0, cliprect);
if (layers_ctrl&8) draw_sprites(screen.machine(),bitmap,cliprect);
- if (layers_ctrl&2) state->m_tilemap_1->draw(bitmap, cliprect, 0, 0);
+ if (layers_ctrl&2) m_tilemap_1->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/prehisle.c b/src/mame/video/prehisle.c
index e07945ebf67..c3aee1d58e6 100644
--- a/src/mame/video/prehisle.c
+++ b/src/mame/video/prehisle.c
@@ -157,14 +157,13 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( prehisle )
+UINT32 prehisle_state::screen_update_prehisle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- prehisle_state *state = screen.machine().driver_data<prehisle_state>();
- state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 1);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/psikyo.c b/src/mame/video/psikyo.c
index a6d9038dd98..b66dc304d83 100644
--- a/src/mame/video/psikyo.c
+++ b/src/mame/video/psikyo.c
@@ -515,22 +515,21 @@ static int tilemap_width( int size )
return 0x10 * 16;
}
-SCREEN_UPDATE_IND16( psikyo )
+UINT32 psikyo_state::screen_update_psikyo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- psikyo_state *state = screen.machine().driver_data<psikyo_state>();
int i, layers_ctrl = -1;
UINT32 tm0size, tm1size;
UINT32 layer0_scrollx, layer0_scrolly;
UINT32 layer1_scrollx, layer1_scrolly;
- UINT32 layer0_ctrl = state->m_vregs[0x412 / 4];
- UINT32 layer1_ctrl = state->m_vregs[0x416 / 4];
- UINT32 spr_ctrl = state->m_spritebuf2[0x1ffe / 4];
+ UINT32 layer0_ctrl = m_vregs[0x412 / 4];
+ UINT32 layer1_ctrl = m_vregs[0x416 / 4];
+ UINT32 spr_ctrl = m_spritebuf2[0x1ffe / 4];
tilemap_t *tmptilemap0, *tmptilemap1;
- state->flip_screen_set(~screen.machine().root_device().ioport("DSW")->read() & 0x00010000); // hardwired to a DSW bit
+ flip_screen_set(~screen.machine().root_device().ioport("DSW")->read() & 0x00010000); // hardwired to a DSW bit
/* Layers enable (not quite right) */
@@ -563,7 +562,7 @@ SCREEN_UPDATE_IND16( psikyo )
*/
/* For gfx banking for s1945jn/gunbird/btlkroad */
- if (state->m_ka302c_banking)
+ if (m_ka302c_banking)
{
psikyo_switch_banks(screen.machine(), 0, (layer0_ctrl & 0x400) >> 10);
psikyo_switch_banks(screen.machine(), 1, (layer1_ctrl & 0x400) >> 10);
@@ -586,32 +585,32 @@ SCREEN_UPDATE_IND16( psikyo )
}
if (tm0size == 0)
- tmptilemap0 = state->m_tilemap_0_size0;
+ tmptilemap0 = m_tilemap_0_size0;
else if (tm0size == 1)
- tmptilemap0 = state->m_tilemap_0_size1;
+ tmptilemap0 = m_tilemap_0_size1;
else if (tm0size == 2)
- tmptilemap0 = state->m_tilemap_0_size2;
+ tmptilemap0 = m_tilemap_0_size2;
else
- tmptilemap0 = state->m_tilemap_0_size3;
+ tmptilemap0 = m_tilemap_0_size3;
if (tm1size == 0)
- tmptilemap1 = state->m_tilemap_1_size0;
+ tmptilemap1 = m_tilemap_1_size0;
else if (tm1size == 1)
- tmptilemap1 = state->m_tilemap_1_size1;
+ tmptilemap1 = m_tilemap_1_size1;
else if (tm1size == 2)
- tmptilemap1 = state->m_tilemap_1_size2;
+ tmptilemap1 = m_tilemap_1_size2;
else
- tmptilemap1 = state->m_tilemap_1_size3;
+ tmptilemap1 = m_tilemap_1_size3;
tmptilemap0->enable(~layer0_ctrl & 1);
tmptilemap1->enable(~layer1_ctrl & 1);
/* Layers scrolling */
- layer0_scrolly = state->m_vregs[0x402 / 4];
- layer0_scrollx = state->m_vregs[0x406 / 4];
- layer1_scrolly = state->m_vregs[0x40a / 4];
- layer1_scrollx = state->m_vregs[0x40e / 4];
+ layer0_scrolly = m_vregs[0x402 / 4];
+ layer0_scrollx = m_vregs[0x406 / 4];
+ layer1_scrolly = m_vregs[0x40a / 4];
+ layer1_scrollx = m_vregs[0x40e / 4];
tmptilemap0->set_scrolly(0, layer0_scrolly);
@@ -626,10 +625,10 @@ SCREEN_UPDATE_IND16( psikyo )
{
if (layer0_ctrl & 0x0200)
/* per-tile rowscroll */
- x0 = ((UINT16 *)state->m_vregs.target())[BYTE_XOR_BE(0x000/2 + i/16)];
+ x0 = ((UINT16 *)m_vregs.target())[BYTE_XOR_BE(0x000/2 + i/16)];
else
/* per-line rowscroll */
- x0 = ((UINT16 *)state->m_vregs.target())[BYTE_XOR_BE(0x000/2 + i)];
+ x0 = ((UINT16 *)m_vregs.target())[BYTE_XOR_BE(0x000/2 + i)];
}
@@ -643,10 +642,10 @@ SCREEN_UPDATE_IND16( psikyo )
{
if (layer1_ctrl & 0x0200)
/* per-tile rowscroll */
- x1 = ((UINT16 *)state->m_vregs.target())[BYTE_XOR_BE(0x200/2 + i/16)];
+ x1 = ((UINT16 *)m_vregs.target())[BYTE_XOR_BE(0x200/2 + i/16)];
else
/* per-line rowscroll */
- x1 = ((UINT16 *)state->m_vregs.target())[BYTE_XOR_BE(0x200/2 + i)];
+ x1 = ((UINT16 *)m_vregs.target())[BYTE_XOR_BE(0x200/2 + i)];
}
@@ -655,15 +654,15 @@ SCREEN_UPDATE_IND16( psikyo )
layer1_scrollx + x1 );
}
- state->m_tilemap_0_size0->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
- state->m_tilemap_0_size1->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
- state->m_tilemap_0_size2->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
- state->m_tilemap_0_size3->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
+ m_tilemap_0_size0->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
+ m_tilemap_0_size1->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
+ m_tilemap_0_size2->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
+ m_tilemap_0_size3->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
- state->m_tilemap_1_size0->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
- state->m_tilemap_1_size1->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
- state->m_tilemap_1_size2->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
- state->m_tilemap_1_size3->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
+ m_tilemap_1_size0->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
+ m_tilemap_1_size1->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
+ m_tilemap_1_size2->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
+ m_tilemap_1_size3->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
bitmap.fill(get_black_pen(screen.machine()), cliprect);
@@ -689,22 +688,21 @@ SCREEN_UPDATE_IND16( psikyo )
*/
-SCREEN_UPDATE_IND16( psikyo_bootleg )
+UINT32 psikyo_state::screen_update_psikyo_bootleg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- psikyo_state *state = screen.machine().driver_data<psikyo_state>();
int i, layers_ctrl = -1;
UINT32 tm0size, tm1size;
UINT32 layer0_scrollx, layer0_scrolly;
UINT32 layer1_scrollx, layer1_scrolly;
- UINT32 layer0_ctrl = state->m_vregs[0x412 / 4];
- UINT32 layer1_ctrl = state->m_vregs[0x416 / 4];
- UINT32 spr_ctrl = state->m_spritebuf2[0x1ffe / 4];
+ UINT32 layer0_ctrl = m_vregs[0x412 / 4];
+ UINT32 layer1_ctrl = m_vregs[0x416 / 4];
+ UINT32 spr_ctrl = m_spritebuf2[0x1ffe / 4];
tilemap_t *tmptilemap0, *tmptilemap1;
- state->flip_screen_set(~screen.machine().root_device().ioport("DSW")->read() & 0x00010000); // hardwired to a DSW bit
+ flip_screen_set(~screen.machine().root_device().ioport("DSW")->read() & 0x00010000); // hardwired to a DSW bit
/* Layers enable (not quite right) */
@@ -737,7 +735,7 @@ SCREEN_UPDATE_IND16( psikyo_bootleg )
*/
/* For gfx banking for s1945jn/gunbird/btlkroad */
- if (state->m_ka302c_banking)
+ if (m_ka302c_banking)
{
psikyo_switch_banks(screen.machine(), 0, (layer0_ctrl & 0x400) >> 10);
psikyo_switch_banks(screen.machine(), 1, (layer1_ctrl & 0x400) >> 10);
@@ -760,32 +758,32 @@ SCREEN_UPDATE_IND16( psikyo_bootleg )
}
if (tm0size == 0)
- tmptilemap0 = state->m_tilemap_0_size0;
+ tmptilemap0 = m_tilemap_0_size0;
else if (tm0size == 1)
- tmptilemap0 = state->m_tilemap_0_size1;
+ tmptilemap0 = m_tilemap_0_size1;
else if (tm0size == 2)
- tmptilemap0 = state->m_tilemap_0_size2;
+ tmptilemap0 = m_tilemap_0_size2;
else
- tmptilemap0 = state->m_tilemap_0_size3;
+ tmptilemap0 = m_tilemap_0_size3;
if (tm1size == 0)
- tmptilemap1 = state->m_tilemap_1_size0;
+ tmptilemap1 = m_tilemap_1_size0;
else if (tm1size == 1)
- tmptilemap1 = state->m_tilemap_1_size1;
+ tmptilemap1 = m_tilemap_1_size1;
else if (tm1size == 2)
- tmptilemap1 = state->m_tilemap_1_size2;
+ tmptilemap1 = m_tilemap_1_size2;
else
- tmptilemap1 = state->m_tilemap_1_size3;
+ tmptilemap1 = m_tilemap_1_size3;
tmptilemap0->enable(~layer0_ctrl & 1);
tmptilemap1->enable(~layer1_ctrl & 1);
/* Layers scrolling */
- layer0_scrolly = state->m_vregs[0x402 / 4];
- layer0_scrollx = state->m_vregs[0x406 / 4];
- layer1_scrolly = state->m_vregs[0x40a / 4];
- layer1_scrollx = state->m_vregs[0x40e / 4];
+ layer0_scrolly = m_vregs[0x402 / 4];
+ layer0_scrollx = m_vregs[0x406 / 4];
+ layer1_scrolly = m_vregs[0x40a / 4];
+ layer1_scrollx = m_vregs[0x40e / 4];
tmptilemap0->set_scrolly(0, layer0_scrolly);
@@ -800,10 +798,10 @@ SCREEN_UPDATE_IND16( psikyo_bootleg )
{
if (layer0_ctrl & 0x0200)
/* per-tile rowscroll */
- x0 = ((UINT16 *)state->m_vregs.target())[BYTE_XOR_BE(0x000/2 + i/16)];
+ x0 = ((UINT16 *)m_vregs.target())[BYTE_XOR_BE(0x000/2 + i/16)];
else
/* per-line rowscroll */
- x0 = ((UINT16 *)state->m_vregs.target())[BYTE_XOR_BE(0x000/2 + i)];
+ x0 = ((UINT16 *)m_vregs.target())[BYTE_XOR_BE(0x000/2 + i)];
}
@@ -817,10 +815,10 @@ SCREEN_UPDATE_IND16( psikyo_bootleg )
{
if (layer1_ctrl & 0x0200)
/* per-tile rowscroll */
- x1 = ((UINT16 *)state->m_vregs.target())[BYTE_XOR_BE(0x200/2 + i/16)];
+ x1 = ((UINT16 *)m_vregs.target())[BYTE_XOR_BE(0x200/2 + i/16)];
else
/* per-line rowscroll */
- x1 = ((UINT16 *)state->m_vregs.target())[BYTE_XOR_BE(0x200/2 + i)];
+ x1 = ((UINT16 *)m_vregs.target())[BYTE_XOR_BE(0x200/2 + i)];
}
@@ -829,15 +827,15 @@ SCREEN_UPDATE_IND16( psikyo_bootleg )
layer1_scrollx + x1 );
}
- state->m_tilemap_0_size0->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
- state->m_tilemap_0_size1->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
- state->m_tilemap_0_size2->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
- state->m_tilemap_0_size3->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
+ m_tilemap_0_size0->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
+ m_tilemap_0_size1->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
+ m_tilemap_0_size2->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
+ m_tilemap_0_size3->set_transparent_pen((layer0_ctrl & 8 ? 0 : 15));
- state->m_tilemap_1_size0->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
- state->m_tilemap_1_size1->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
- state->m_tilemap_1_size2->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
- state->m_tilemap_1_size3->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
+ m_tilemap_1_size0->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
+ m_tilemap_1_size1->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
+ m_tilemap_1_size2->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
+ m_tilemap_1_size3->set_transparent_pen((layer1_ctrl & 8 ? 0 : 15));
bitmap.fill(get_black_pen(screen.machine()), cliprect);
@@ -856,13 +854,12 @@ SCREEN_UPDATE_IND16( psikyo_bootleg )
}
-SCREEN_VBLANK( psikyo )
+void psikyo_state::screen_eof_psikyo(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- psikyo_state *state = screen.machine().driver_data<psikyo_state>();
- memcpy(state->m_spritebuf2, state->m_spritebuf1, 0x2000);
- memcpy(state->m_spritebuf1, state->m_spriteram, 0x2000);
+ memcpy(m_spritebuf2, m_spritebuf1, 0x2000);
+ memcpy(m_spritebuf1, m_spriteram, 0x2000);
}
}
diff --git a/src/mame/video/psikyo4.c b/src/mame/video/psikyo4.c
index 3e4c13ff1bd..a341b75770f 100644
--- a/src/mame/video/psikyo4.c
+++ b/src/mame/video/psikyo4.c
@@ -127,14 +127,14 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( psikyo4_left )
+UINT32 psikyo4_state::screen_update_psikyo4_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(0x1000, cliprect);
draw_sprites(screen.machine(), bitmap, cliprect, 0x0000);
return 0;
}
-SCREEN_UPDATE_IND16( psikyo4_right )
+UINT32 psikyo4_state::screen_update_psikyo4_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(0x1001, cliprect);
draw_sprites(screen.machine(), bitmap, cliprect, 0x2000);
diff --git a/src/mame/video/psikyosh.c b/src/mame/video/psikyosh.c
index 550157969c6..dda41603c07 100644
--- a/src/mame/video/psikyosh.c
+++ b/src/mame/video/psikyosh.c
@@ -1254,10 +1254,9 @@ void psikyosh_state::video_start()
}
-SCREEN_UPDATE_RGB32( psikyosh ) /* Note the z-buffer on each sprite to get correct priority */
+UINT32 psikyosh_state::screen_update_psikyosh(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)/* Note the z-buffer on each sprite to get correct priority */
{
int i;
- psikyosh_state *state = screen.machine().driver_data<psikyosh_state>();
// show only the priority associated with a given keypress(s) and/or hide sprites/tilemaps
int pri_debug = false;
@@ -1281,13 +1280,13 @@ SCREEN_UPDATE_RGB32( psikyosh ) /* Note the z-buffer on each sprite to get corre
#ifdef DEBUG_MESSAGE
popmessage ("%08x %08x %08x %08x\n%08x %08x %08x %08x",
- state->m_vidregs[0], state->m_vidregs[1],
- state->m_vidregs[2], state->m_vidregs[3],
- state->m_vidregs[4], state->m_vidregs[5],
- state->m_vidregs[6], state->m_vidregs[7]);
+ m_vidregs[0], m_vidregs[1],
+ m_vidregs[2], m_vidregs[3],
+ m_vidregs[4], m_vidregs[5],
+ m_vidregs[6], m_vidregs[7]);
#endif
- state->m_z_bitmap.fill(0, cliprect); /* z-buffer */
+ m_z_bitmap.fill(0, cliprect); /* z-buffer */
psikyosh_prelineblend(screen.machine(), bitmap, cliprect); // fills screen
for (i = 0; i <= 7; i++)
diff --git a/src/mame/video/psychic5.c b/src/mame/video/psychic5.c
index ca5bc859aa6..d4406235c58 100644
--- a/src/mame/video/psychic5.c
+++ b/src/mame/video/psychic5.c
@@ -409,26 +409,24 @@ static void draw_background(running_machine &machine, bitmap_rgb32 &bitmap, cons
state->m_bg_tilemap->draw(bitmap, clip, 0, 0);
}
-SCREEN_UPDATE_RGB32( psychic5 )
+UINT32 psychic5_state::screen_update_psychic5(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- psychic5_state *state = screen.machine().driver_data<psychic5_state>();
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- if (state->m_bg_status & 1) /* Backgound enable */
+ if (m_bg_status & 1) /* Backgound enable */
draw_background(screen.machine(), bitmap, cliprect);
- if (!(state->m_title_screen & 1))
+ if (!(m_title_screen & 1))
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_RGB32( bombsa )
+UINT32 psychic5_state::screen_update_bombsa(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- psychic5_state *state = screen.machine().driver_data<psychic5_state>();
- if (state->m_bg_status & 1) /* Backgound enable */
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (m_bg_status & 1) /* Backgound enable */
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
else
bitmap.fill(screen.machine().pens[0x0ff], cliprect);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/punchout.c b/src/mame/video/punchout.c
index 8a5ee38882b..4a7da7c3939 100644
--- a/src/mame/video/punchout.c
+++ b/src/mame/video/punchout.c
@@ -351,34 +351,32 @@ static void punchout_copy_bot_palette(running_machine &machine, int bank)
}
-SCREEN_UPDATE_IND16( punchout_top )
+UINT32 punchout_state::screen_update_punchout_top(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- punchout_state *state = screen.machine().driver_data<punchout_state>();
- punchout_copy_top_palette(screen.machine(), BIT(*state->m_palettebank,1));
+ punchout_copy_top_palette(screen.machine(), BIT(*m_palettebank,1));
- state->m_bg_top_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_top_tilemap->draw(bitmap, cliprect, 0, 0);
- if (state->m_spr1_ctrlram[7] & 1) /* display in top monitor */
+ if (m_spr1_ctrlram[7] & 1) /* display in top monitor */
draw_big_sprite(screen.machine(), bitmap, cliprect, 0);
return 0;
}
-SCREEN_UPDATE_IND16( punchout_bottom )
+UINT32 punchout_state::screen_update_punchout_bottom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- punchout_state *state = screen.machine().driver_data<punchout_state>();
int offs;
- punchout_copy_bot_palette(screen.machine(), BIT(*state->m_palettebank,0));
+ punchout_copy_bot_palette(screen.machine(), BIT(*m_palettebank,0));
/* copy the character mapped graphics */
for (offs = 0;offs < 32;offs++)
- state->m_bg_bot_tilemap->set_scrollx(offs, 58 + state->m_bg_bot_videoram[2*offs] + 256 * (state->m_bg_bot_videoram[2*offs + 1] & 0x01));
+ m_bg_bot_tilemap->set_scrollx(offs, 58 + m_bg_bot_videoram[2*offs] + 256 * (m_bg_bot_videoram[2*offs + 1] & 0x01));
- state->m_bg_bot_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_bot_tilemap->draw(bitmap, cliprect, 0, 0);
- if (state->m_spr1_ctrlram[7] & 2) /* display in bottom monitor */
+ if (m_spr1_ctrlram[7] & 2) /* display in bottom monitor */
draw_big_sprite(screen.machine(), bitmap, cliprect, 1);
drawbs2(screen.machine(), bitmap, cliprect);
@@ -386,33 +384,31 @@ SCREEN_UPDATE_IND16( punchout_bottom )
}
-SCREEN_UPDATE_IND16( armwrest_top )
+UINT32 punchout_state::screen_update_armwrest_top(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- punchout_state *state = screen.machine().driver_data<punchout_state>();
- punchout_copy_top_palette(screen.machine(), BIT(*state->m_palettebank,1));
+ punchout_copy_top_palette(screen.machine(), BIT(*m_palettebank,1));
- state->m_bg_top_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_top_tilemap->draw(bitmap, cliprect, 0, 0);
- if (state->m_spr1_ctrlram[7] & 1) /* display in top monitor */
+ if (m_spr1_ctrlram[7] & 1) /* display in top monitor */
armwrest_draw_big_sprite(screen.machine(), bitmap, cliprect, 0);
return 0;
}
-SCREEN_UPDATE_IND16( armwrest_bottom )
+UINT32 punchout_state::screen_update_armwrest_bottom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- punchout_state *state = screen.machine().driver_data<punchout_state>();
- punchout_copy_bot_palette(screen.machine(), BIT(*state->m_palettebank,0));
+ punchout_copy_bot_palette(screen.machine(), BIT(*m_palettebank,0));
- state->m_bg_bot_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_bot_tilemap->draw(bitmap, cliprect, 0, 0);
- if (state->m_spr1_ctrlram[7] & 2) /* display in bottom monitor */
+ if (m_spr1_ctrlram[7] & 2) /* display in bottom monitor */
armwrest_draw_big_sprite(screen.machine(), bitmap, cliprect, 1);
drawbs2(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/pushman.c b/src/mame/video/pushman.c
index a94da84f119..7713bb42a18 100644
--- a/src/mame/video/pushman.c
+++ b/src/mame/video/pushman.c
@@ -116,16 +116,15 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( pushman )
+UINT32 pushman_state::screen_update_pushman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pushman_state *state = screen.machine().driver_data<pushman_state>();
/* Setup the tilemaps */
- state->m_bg_tilemap->set_scrollx(0, state->m_control[0]);
- state->m_bg_tilemap->set_scrolly(0, 0xf00 - state->m_control[1]);
+ m_bg_tilemap->set_scrollx(0, m_control[0]);
+ m_bg_tilemap->set_scrolly(0, 0xf00 - m_control[1]);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/qdrmfgp.c b/src/mame/video/qdrmfgp.c
index 9325f59007d..f83d7dd202a 100644
--- a/src/mame/video/qdrmfgp.c
+++ b/src/mame/video/qdrmfgp.c
@@ -57,7 +57,7 @@ VIDEO_START_MEMBER(qdrmfgp_state,qdrmfgp2)
***************************************************************************/
-SCREEN_UPDATE_IND16( qdrmfgp )
+UINT32 qdrmfgp_state::screen_update_qdrmfgp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
device_t *k056832 = screen.machine().device("k056832");
bitmap.fill(get_black_pen(screen.machine()), cliprect);
diff --git a/src/mame/video/quasar.c b/src/mame/video/quasar.c
index e6d99a4b225..4870d609deb 100644
--- a/src/mame/video/quasar.c
+++ b/src/mame/video/quasar.c
@@ -103,23 +103,22 @@ VIDEO_START_MEMBER(quasar_state,quasar)
save_pointer(NAME(m_effectram), 0x400);
}
-SCREEN_UPDATE_IND16( quasar )
+UINT32 quasar_state::screen_update_quasar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- quasar_state *state = screen.machine().driver_data<quasar_state>();
int offs;
/* for every character in the video RAM */
for (offs = 0; offs < 0x0400; offs++)
{
int ox, oy;
- UINT8 code = state->m_video_ram[offs];
+ UINT8 code = m_video_ram[offs];
UINT8 x = (offs & 0x1f) << 3;
UINT8 y = (offs >> 5) << 3;
// While we have the current character code, draw the effects layer
// intensity / on and off controlled by latch
- int forecolor = 0x208 + state->m_effectram[offs] + (256 * (((state->m_effectcontrol >> 4) ^ 3) & 3));
+ int forecolor = 0x208 + m_effectram[offs] + (256 * (((m_effectcontrol >> 4) ^ 3) & 3));
for (ox = 0; ox < 8; ox++)
for (oy = 0; oy < 8; oy++)
@@ -128,15 +127,15 @@ SCREEN_UPDATE_IND16( quasar )
/* Main Screen */
drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0],
code,
- state->m_color_ram[offs] & 0x3f,
+ m_color_ram[offs] & 0x3f,
0,0,
x,y,0);
/* background for Collision Detection (it can only hit certain items) */
- if((state->m_color_ram[offs] & 7) == 0)
+ if((m_color_ram[offs] & 7) == 0)
{
- drawgfx_opaque(state->m_collision_background,cliprect,screen.machine().gfx[0],
+ drawgfx_opaque(m_collision_background,cliprect,screen.machine().gfx[0],
code,
64,
0,0,
@@ -145,23 +144,23 @@ SCREEN_UPDATE_IND16( quasar )
}
/* update the S2636 chips */
- bitmap_ind16 &s2636_0_bitmap = s2636_update(state->m_s2636_0, cliprect);
- bitmap_ind16 &s2636_1_bitmap = s2636_update(state->m_s2636_1, cliprect);
- bitmap_ind16 &s2636_2_bitmap = s2636_update(state->m_s2636_2, cliprect);
+ bitmap_ind16 &s2636_0_bitmap = s2636_update(m_s2636_0, cliprect);
+ bitmap_ind16 &s2636_1_bitmap = s2636_update(m_s2636_1, cliprect);
+ bitmap_ind16 &s2636_2_bitmap = s2636_update(m_s2636_2, cliprect);
/* Bullet Hardware */
for (offs = 8; offs < 256; offs++ )
{
- if(state->m_bullet_ram[offs] != 0)
+ if(m_bullet_ram[offs] != 0)
{
int ct;
for (ct = 0; ct < 1; ct++)
{
- int bx = 255 - 9 - state->m_bullet_ram[offs] - ct;
+ int bx = 255 - 9 - m_bullet_ram[offs] - ct;
/* bullet/object Collision */
- if (s2636_0_bitmap.pix16(offs, bx) != 0) state->m_collision_register |= 0x04;
- if (s2636_2_bitmap.pix16(offs, bx) != 0) state->m_collision_register |= 0x08;
+ if (s2636_0_bitmap.pix16(offs, bx) != 0) m_collision_register |= 0x04;
+ if (s2636_2_bitmap.pix16(offs, bx) != 0) m_collision_register |= 0x08;
bitmap.pix16(offs, bx) = 7;
}
@@ -190,10 +189,10 @@ SCREEN_UPDATE_IND16( quasar )
bitmap.pix16(y, x) = S2636_PIXEL_COLOR(pixel);
/* S2636 vs. background collision detection */
- if (colortable_entry_get_value(screen.machine().colortable, state->m_collision_background.pix16(y, x)))
+ if (colortable_entry_get_value(screen.machine().colortable, m_collision_background.pix16(y, x)))
{
- if (S2636_IS_PIXEL_DRAWN(pixel0)) state->m_collision_register |= 0x01;
- if (S2636_IS_PIXEL_DRAWN(pixel2)) state->m_collision_register |= 0x02;
+ if (S2636_IS_PIXEL_DRAWN(pixel0)) m_collision_register |= 0x01;
+ if (S2636_IS_PIXEL_DRAWN(pixel2)) m_collision_register |= 0x02;
}
}
}
diff --git a/src/mame/video/quizdna.c b/src/mame/video/quizdna.c
index 08d7a88839b..4c6f80f828f 100644
--- a/src/mame/video/quizdna.c
+++ b/src/mame/video/quizdna.c
@@ -184,14 +184,13 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( quizdna )
+UINT32 quizdna_state::screen_update_quizdna(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- quizdna_state *state = screen.machine().driver_data<quizdna_state>();
- if (state->m_video_enable)
+ if (m_video_enable)
{
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
}
else
bitmap.fill(get_black_pen(screen.machine()), cliprect);
diff --git a/src/mame/video/quizpani.c b/src/mame/video/quizpani.c
index 15b6640efca..95f2ebf3829 100644
--- a/src/mame/video/quizpani.c
+++ b/src/mame/video/quizpani.c
@@ -73,15 +73,14 @@ void quizpani_state::video_start()
m_txt_tilemap->set_transparent_pen(15);
}
-SCREEN_UPDATE_IND16( quizpani )
+UINT32 quizpani_state::screen_update_quizpani(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- quizpani_state *state = screen.machine().driver_data<quizpani_state>();
- state->m_bg_tilemap->set_scrollx(0, state->m_scrollreg[0] - 64);
- state->m_bg_tilemap->set_scrolly(0, state->m_scrollreg[1] + 16);
- state->m_txt_tilemap->set_scrollx(0, state->m_scrollreg[2] - 64);
- state->m_txt_tilemap->set_scrolly(0, state->m_scrollreg[3] + 16);
-
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_txt_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->set_scrollx(0, m_scrollreg[0] - 64);
+ m_bg_tilemap->set_scrolly(0, m_scrollreg[1] + 16);
+ m_txt_tilemap->set_scrollx(0, m_scrollreg[2] - 64);
+ m_txt_tilemap->set_scrolly(0, m_scrollreg[3] + 16);
+
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_txt_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/video/raiden.c b/src/mame/video/raiden.c
index faaa255e890..bf7a9360ffe 100644
--- a/src/mame/video/raiden.c
+++ b/src/mame/video/raiden.c
@@ -143,33 +143,32 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re
}
}
-SCREEN_UPDATE_IND16( raiden )
+UINT32 raiden_state::screen_update_raiden(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- raiden_state *state = screen.machine().driver_data<raiden_state>();
/* Setup the tilemaps, alternate version has different scroll positions */
- if (!state->m_alternate) {
- state->m_bg_layer->set_scrollx(0, state->m_scroll_ram[0]);
- state->m_bg_layer->set_scrolly(0, state->m_scroll_ram[1]);
- state->m_fg_layer->set_scrollx(0, state->m_scroll_ram[2]);
- state->m_fg_layer->set_scrolly(0, state->m_scroll_ram[3]);
+ if (!m_alternate) {
+ m_bg_layer->set_scrollx(0, m_scroll_ram[0]);
+ m_bg_layer->set_scrolly(0, m_scroll_ram[1]);
+ m_fg_layer->set_scrollx(0, m_scroll_ram[2]);
+ m_fg_layer->set_scrolly(0, m_scroll_ram[3]);
}
else {
- state->m_bg_layer->set_scrolly(0, ((state->m_scroll_ram[0x01]&0x30)<<4)+((state->m_scroll_ram[0x02]&0x7f)<<1)+((state->m_scroll_ram[0x02]&0x80)>>7) );
- state->m_bg_layer->set_scrollx(0, ((state->m_scroll_ram[0x09]&0x30)<<4)+((state->m_scroll_ram[0x0a]&0x7f)<<1)+((state->m_scroll_ram[0x0a]&0x80)>>7) );
- state->m_fg_layer->set_scrolly(0, ((state->m_scroll_ram[0x11]&0x30)<<4)+((state->m_scroll_ram[0x12]&0x7f)<<1)+((state->m_scroll_ram[0x12]&0x80)>>7) );
- state->m_fg_layer->set_scrollx(0, ((state->m_scroll_ram[0x19]&0x30)<<4)+((state->m_scroll_ram[0x1a]&0x7f)<<1)+((state->m_scroll_ram[0x1a]&0x80)>>7) );
+ m_bg_layer->set_scrolly(0, ((m_scroll_ram[0x01]&0x30)<<4)+((m_scroll_ram[0x02]&0x7f)<<1)+((m_scroll_ram[0x02]&0x80)>>7) );
+ m_bg_layer->set_scrollx(0, ((m_scroll_ram[0x09]&0x30)<<4)+((m_scroll_ram[0x0a]&0x7f)<<1)+((m_scroll_ram[0x0a]&0x80)>>7) );
+ m_fg_layer->set_scrolly(0, ((m_scroll_ram[0x11]&0x30)<<4)+((m_scroll_ram[0x12]&0x7f)<<1)+((m_scroll_ram[0x12]&0x80)>>7) );
+ m_fg_layer->set_scrollx(0, ((m_scroll_ram[0x19]&0x30)<<4)+((m_scroll_ram[0x1a]&0x7f)<<1)+((m_scroll_ram[0x1a]&0x80)>>7) );
}
- state->m_bg_layer->draw(bitmap, cliprect, 0,0);
+ m_bg_layer->draw(bitmap, cliprect, 0,0);
/* Draw sprites underneath foreground */
draw_sprites(screen.machine(),bitmap,cliprect,0x40);
- state->m_fg_layer->draw(bitmap, cliprect, 0,0);
+ m_fg_layer->draw(bitmap, cliprect, 0,0);
/* Rest of sprites */
draw_sprites(screen.machine(),bitmap,cliprect,0x80);
/* Text layer */
- state->m_tx_layer->draw(bitmap, cliprect, 0,0);
+ m_tx_layer->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/video/rainbow.c b/src/mame/video/rainbow.c
index 05fdb30fb31..6f9ea464237 100644
--- a/src/mame/video/rainbow.c
+++ b/src/mame/video/rainbow.c
@@ -40,22 +40,21 @@ WRITE16_MEMBER(rbisland_state::jumping_spritectrl_w)
/***************************************************************************/
-SCREEN_UPDATE_IND16( rainbow )
+UINT32 rbisland_state::screen_update_rainbow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- rbisland_state *state = screen.machine().driver_data<rbisland_state>();
int layer[2];
- pc080sn_tilemap_update(state->m_pc080sn);
+ pc080sn_tilemap_update(m_pc080sn);
layer[0] = 0;
layer[1] = 1;
screen.machine().priority_bitmap.fill(0, cliprect);
- pc080sn_tilemap_draw(state->m_pc080sn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
- pc080sn_tilemap_draw(state->m_pc080sn, bitmap, cliprect, layer[1], 0, 2);
+ pc080sn_tilemap_draw(m_pc080sn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
+ pc080sn_tilemap_draw(m_pc080sn, bitmap, cliprect, layer[1], 0, 2);
- pc090oj_draw_sprites(state->m_pc090oj, bitmap, cliprect, 1);
+ pc090oj_draw_sprites(m_pc090oj, bitmap, cliprect, 1);
return 0;
}
@@ -84,27 +83,26 @@ VIDEO_START_MEMBER(rbisland_state,jumping)
}
-SCREEN_UPDATE_IND16( jumping )
+UINT32 rbisland_state::screen_update_jumping(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- rbisland_state *state = screen.machine().driver_data<rbisland_state>();
- UINT16 *spriteram = state->m_spriteram;
+ UINT16 *spriteram = m_spriteram;
int offs, layer[2];
- int sprite_colbank = (state->m_sprite_ctrl & 0xe0) >> 1;
+ int sprite_colbank = (m_sprite_ctrl & 0xe0) >> 1;
- pc080sn_tilemap_update(state->m_pc080sn);
+ pc080sn_tilemap_update(m_pc080sn);
/* Override values, or foreground layer is in wrong position */
- pc080sn_set_scroll(state->m_pc080sn, 1, 16, 0);
+ pc080sn_set_scroll(m_pc080sn, 1, 16, 0);
layer[0] = 0;
layer[1] = 1;
screen.machine().priority_bitmap.fill(0, cliprect);
- pc080sn_tilemap_draw(state->m_pc080sn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0);
+ pc080sn_tilemap_draw(m_pc080sn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0);
/* Draw the sprites. 128 sprites in total */
- for (offs = state->m_spriteram.bytes() / 2 - 8; offs >= 0; offs -= 8)
+ for (offs = m_spriteram.bytes() / 2 - 8; offs >= 0; offs -= 8)
{
int tile = spriteram[offs];
if (tile < screen.machine().gfx[1]->elements())
@@ -127,12 +125,12 @@ SCREEN_UPDATE_IND16( jumping )
}
}
- pc080sn_tilemap_draw(state->m_pc080sn, bitmap, cliprect, layer[1], 0, 0);
+ pc080sn_tilemap_draw(m_pc080sn, bitmap, cliprect, layer[1], 0, 0);
#if 0
{
char buf[80];
- sprintf(buf,"sprite_ctrl: %04x", state->m_sprite_ctrl);
+ sprintf(buf,"sprite_ctrl: %04x", m_sprite_ctrl);
popmessage(buf);
}
#endif
diff --git a/src/mame/video/rallyx.c b/src/mame/video/rallyx.c
index 9905b9f7287..7fda080ed35 100644
--- a/src/mame/video/rallyx.c
+++ b/src/mame/video/rallyx.c
@@ -621,15 +621,14 @@ static void locomotn_draw_bullets( running_machine &machine, bitmap_ind16 &bitma
}
-SCREEN_UPDATE_IND16( rallyx )
+UINT32 rallyx_state::screen_update_rallyx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- rallyx_state *state = screen.machine().driver_data<rallyx_state>();
/* the radar tilemap is just 8x32. We rely on the tilemap code to repeat it across
the screen, and clip it to only the position where it is supposed to be shown */
rectangle fg_clip = cliprect;
rectangle bg_clip = cliprect;
- if (state->flip_screen())
+ if (flip_screen())
{
bg_clip.min_x = 8 * 8;
fg_clip.max_x = 8 * 8 - 1;
@@ -642,10 +641,10 @@ SCREEN_UPDATE_IND16( rallyx )
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_bg_tilemap->draw(bitmap, bg_clip, 0, 0);
- state->m_fg_tilemap->draw(bitmap, fg_clip, 0, 0);
- state->m_bg_tilemap->draw(bitmap, bg_clip, 1, 1);
- state->m_fg_tilemap->draw(bitmap, fg_clip, 1, 1);
+ m_bg_tilemap->draw(bitmap, bg_clip, 0, 0);
+ m_fg_tilemap->draw(bitmap, fg_clip, 0, 0);
+ m_bg_tilemap->draw(bitmap, bg_clip, 1, 1);
+ m_fg_tilemap->draw(bitmap, fg_clip, 1, 1);
rallyx_draw_bullets(screen.machine(), bitmap, cliprect, TRUE);
rallyx_draw_sprites(screen.machine(), bitmap, cliprect, 1);
@@ -655,15 +654,14 @@ SCREEN_UPDATE_IND16( rallyx )
}
-SCREEN_UPDATE_IND16( jungler )
+UINT32 rallyx_state::screen_update_jungler(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- rallyx_state *state = screen.machine().driver_data<rallyx_state>();
/* the radar tilemap is just 8x32. We rely on the tilemap code to repeat it across
the screen, and clip it to only the position where it is supposed to be shown */
rectangle fg_clip = cliprect;
rectangle bg_clip = cliprect;
- if (state->flip_screen())
+ if (flip_screen())
{
bg_clip.min_x = 8 * 8;
fg_clip.max_x = 8 * 8 - 1;
@@ -677,31 +675,30 @@ SCREEN_UPDATE_IND16( jungler )
screen.machine().priority_bitmap.fill(0, cliprect);
/* tile priority doesn't seem to be supported in Jungler */
- state->m_bg_tilemap->draw(bitmap, bg_clip, 0, 0);
- state->m_fg_tilemap->draw(bitmap, fg_clip, 0, 0);
- state->m_bg_tilemap->draw(bitmap, bg_clip, 1, 0);
- state->m_fg_tilemap->draw(bitmap, fg_clip, 1, 0);
+ m_bg_tilemap->draw(bitmap, bg_clip, 0, 0);
+ m_fg_tilemap->draw(bitmap, fg_clip, 0, 0);
+ m_bg_tilemap->draw(bitmap, bg_clip, 1, 0);
+ m_fg_tilemap->draw(bitmap, fg_clip, 1, 0);
jungler_draw_bullets(screen.machine(), bitmap, cliprect, TRUE);
rallyx_draw_sprites(screen.machine(), bitmap, cliprect, 0);
jungler_draw_bullets(screen.machine(), bitmap, cliprect, FALSE);
- if (state->m_stars_enable)
+ if (m_stars_enable)
draw_stars(screen.machine(), bitmap, cliprect);
return 0;
}
-SCREEN_UPDATE_IND16( locomotn )
+UINT32 rallyx_state::screen_update_locomotn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- rallyx_state *state = screen.machine().driver_data<rallyx_state>();
/* the radar tilemap is just 8x32. We rely on the tilemap code to repeat it across
the screen, and clip it to only the position where it is supposed to be shown */
rectangle fg_clip = cliprect;
rectangle bg_clip = cliprect;
- if (state->flip_screen())
+ if (flip_screen())
{
/* handle reduced visible area in some games */
if (screen.visible_area().max_x == 32 * 8 - 1)
@@ -723,16 +720,16 @@ SCREEN_UPDATE_IND16( locomotn )
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_bg_tilemap->draw(bitmap, bg_clip, 0, 0);
- state->m_fg_tilemap->draw(bitmap, fg_clip, 0, 0);
- state->m_bg_tilemap->draw(bitmap, bg_clip, 1, 1);
- state->m_fg_tilemap->draw(bitmap, fg_clip, 1, 1);
+ m_bg_tilemap->draw(bitmap, bg_clip, 0, 0);
+ m_fg_tilemap->draw(bitmap, fg_clip, 0, 0);
+ m_bg_tilemap->draw(bitmap, bg_clip, 1, 1);
+ m_fg_tilemap->draw(bitmap, fg_clip, 1, 1);
locomotn_draw_bullets(screen.machine(), bitmap, cliprect, TRUE);
locomotn_draw_sprites(screen.machine(), bitmap, cliprect, 0);
locomotn_draw_bullets(screen.machine(), bitmap, cliprect, FALSE);
- if (state->m_stars_enable)
+ if (m_stars_enable)
draw_stars(screen.machine(), bitmap, cliprect);
return 0;
diff --git a/src/mame/video/rampart.c b/src/mame/video/rampart.c
index ba48f956917..e5923de45d0 100644
--- a/src/mame/video/rampart.c
+++ b/src/mame/video/rampart.c
@@ -72,7 +72,7 @@ VIDEO_START_MEMBER(rampart_state,rampart)
*
*************************************/
-SCREEN_UPDATE_IND16( rampart )
+UINT32 rampart_state::screen_update_rampart(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
atarimo_rect_list rectlist;
bitmap_ind16 *mobitmap;
diff --git a/src/mame/video/rastan.c b/src/mame/video/rastan.c
index c7371f5afff..eee7d4f27d8 100644
--- a/src/mame/video/rastan.c
+++ b/src/mame/video/rastan.c
@@ -30,21 +30,20 @@ WRITE16_MEMBER(rastan_state::rastan_spritectrl_w)
/***************************************************************************/
-SCREEN_UPDATE_IND16( rastan )
+UINT32 rastan_state::screen_update_rastan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- rastan_state *state = screen.machine().driver_data<rastan_state>();
int layer[2];
- pc080sn_tilemap_update(state->m_pc080sn);
+ pc080sn_tilemap_update(m_pc080sn);
layer[0] = 0;
layer[1] = 1;
screen.machine().priority_bitmap.fill(0, cliprect);
- pc080sn_tilemap_draw(state->m_pc080sn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
- pc080sn_tilemap_draw(state->m_pc080sn, bitmap, cliprect, layer[1], 0, 2);
+ pc080sn_tilemap_draw(m_pc080sn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
+ pc080sn_tilemap_draw(m_pc080sn, bitmap, cliprect, layer[1], 0, 2);
- pc090oj_draw_sprites(state->m_pc090oj, bitmap, cliprect, 0);
+ pc090oj_draw_sprites(m_pc090oj, bitmap, cliprect, 0);
return 0;
}
diff --git a/src/mame/video/realbrk.c b/src/mame/video/realbrk.c
index cc22f5c3cfa..d2ae857f251 100644
--- a/src/mame/video/realbrk.c
+++ b/src/mame/video/realbrk.c
@@ -483,16 +483,15 @@ WRITE16_MEMBER(realbrk_state::realbrk_vregs_w)
}
}
-SCREEN_UPDATE_IND16(realbrk)
+UINT32 realbrk_state::screen_update_realbrk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- realbrk_state *state = screen.machine().driver_data<realbrk_state>();
int layers_ctrl = -1;
- state->m_tilemap_0->set_scrolly(0, state->m_vregs[0x0/2]);
- state->m_tilemap_0->set_scrollx(0, state->m_vregs[0x2/2]);
+ m_tilemap_0->set_scrolly(0, m_vregs[0x0/2]);
+ m_tilemap_0->set_scrollx(0, m_vregs[0x2/2]);
- state->m_tilemap_1->set_scrolly(0, state->m_vregs[0x4/2]);
- state->m_tilemap_1->set_scrollx(0, state->m_vregs[0x6/2]);
+ m_tilemap_1->set_scrolly(0, m_vregs[0x4/2]);
+ m_tilemap_1->set_scrollx(0, m_vregs[0x6/2]);
#ifdef MAME_DEBUG
if ( screen.machine().input().code_pressed(KEYCODE_Z) )
@@ -506,64 +505,63 @@ if ( screen.machine().input().code_pressed(KEYCODE_Z) )
}
#endif
- if (state->m_disable_video)
+ if (m_disable_video)
{
bitmap.fill(get_black_pen(screen.machine()), cliprect);
return 0;
}
else
- bitmap.fill(state->m_vregs[0xc/2] & 0x7fff, cliprect);
+ bitmap.fill(m_vregs[0xc/2] & 0x7fff, cliprect);
- if (layers_ctrl & 2) state->m_tilemap_1->draw(bitmap, cliprect, 0,0);
- if (layers_ctrl & 1) state->m_tilemap_0->draw(bitmap, cliprect, 0,0);
+ if (layers_ctrl & 2) m_tilemap_1->draw(bitmap, cliprect, 0,0);
+ if (layers_ctrl & 1) m_tilemap_0->draw(bitmap, cliprect, 0,0);
if (layers_ctrl & 8) draw_sprites(screen.machine(),bitmap,cliprect);
- if (layers_ctrl & 4) state->m_tilemap_2->draw(bitmap, cliprect, 0,0);
+ if (layers_ctrl & 4) m_tilemap_2->draw(bitmap, cliprect, 0,0);
-// popmessage("%04x",state->m_vregs[0x8/2]);
+// popmessage("%04x",m_vregs[0x8/2]);
return 0;
}
/* DaiDaiKakumei */
-SCREEN_UPDATE_IND16(dai2kaku)
+UINT32 realbrk_state::screen_update_dai2kaku(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- realbrk_state *state = screen.machine().driver_data<realbrk_state>();
int layers_ctrl = -1;
int offs, bgx0, bgy0, bgx1, bgy1;
- bgy0 = state->m_vregs[0x0/2];
- bgx0 = state->m_vregs[0x2/2];
- bgy1 = state->m_vregs[0x4/2];
- bgx1 = state->m_vregs[0x6/2];
+ bgy0 = m_vregs[0x0/2];
+ bgx0 = m_vregs[0x2/2];
+ bgy1 = m_vregs[0x4/2];
+ bgx1 = m_vregs[0x6/2];
// bg0
- state->m_tilemap_0->set_scroll_rows(512);
- state->m_tilemap_0->set_scroll_cols(1);
- if( state->m_vregs[8/2] & (0x0100)){
+ m_tilemap_0->set_scroll_rows(512);
+ m_tilemap_0->set_scroll_cols(1);
+ if( m_vregs[8/2] & (0x0100)){
for(offs=0; offs<(512); offs++) {
- state->m_tilemap_0->set_scrollx(offs, bgx0 - (state->m_vram_1ras[offs]&0x3ff) );
+ m_tilemap_0->set_scrollx(offs, bgx0 - (m_vram_1ras[offs]&0x3ff) );
}
} else {
for(offs=0; offs<(512); offs++) {
- state->m_tilemap_0->set_scrollx(offs, bgx0 );
+ m_tilemap_0->set_scrollx(offs, bgx0 );
}
}
- state->m_tilemap_0->set_scrolly(0, bgy0 );
+ m_tilemap_0->set_scrolly(0, bgy0 );
// bg1
- state->m_tilemap_1->set_scroll_rows(512);
- state->m_tilemap_1->set_scroll_cols(1);
- if( state->m_vregs[8/2] & (0x0001)){
+ m_tilemap_1->set_scroll_rows(512);
+ m_tilemap_1->set_scroll_cols(1);
+ if( m_vregs[8/2] & (0x0001)){
for(offs=0; offs<(512); offs++) {
- state->m_tilemap_1->set_scrollx(offs, bgx1 - (state->m_vram_1ras[offs]&0x3ff) );
+ m_tilemap_1->set_scrollx(offs, bgx1 - (m_vram_1ras[offs]&0x3ff) );
}
} else {
for(offs=0; offs<(512); offs++) {
- state->m_tilemap_1->set_scrollx(offs, bgx1 );
+ m_tilemap_1->set_scrollx(offs, bgx1 );
}
}
- state->m_tilemap_1->set_scrolly(0, bgy1 );
+ m_tilemap_1->set_scrolly(0, bgy1 );
#ifdef MAME_DEBUG
if ( screen.machine().input().code_pressed(KEYCODE_Z) )
@@ -577,13 +575,13 @@ if ( screen.machine().input().code_pressed(KEYCODE_Z) )
}
#endif
- if (state->m_disable_video)
+ if (m_disable_video)
{
bitmap.fill(get_black_pen(screen.machine()), cliprect);
return 0;
}
else
- bitmap.fill(state->m_vregs[0xc/2] & 0x7fff, cliprect);
+ bitmap.fill(m_vregs[0xc/2] & 0x7fff, cliprect);
@@ -591,28 +589,28 @@ if ( screen.machine().input().code_pressed(KEYCODE_Z) )
if (layers_ctrl & 8) dai2kaku_draw_sprites(screen.machine(),bitmap,cliprect,2);
// bglow
- if( state->m_vregs[8/2] & (0x8000)){
- if (layers_ctrl & 1) state->m_tilemap_0->draw(bitmap, cliprect, 0,0);
+ if( m_vregs[8/2] & (0x8000)){
+ if (layers_ctrl & 1) m_tilemap_0->draw(bitmap, cliprect, 0,0);
} else {
- if (layers_ctrl & 2) state->m_tilemap_1->draw(bitmap, cliprect, 0,0);
+ if (layers_ctrl & 2) m_tilemap_1->draw(bitmap, cliprect, 0,0);
}
// spr 1
if (layers_ctrl & 8) dai2kaku_draw_sprites(screen.machine(),bitmap,cliprect,1);
// bghigh
- if( state->m_vregs[8/2] & (0x8000)){
- if (layers_ctrl & 2) state->m_tilemap_1->draw(bitmap, cliprect, 0,0);
+ if( m_vregs[8/2] & (0x8000)){
+ if (layers_ctrl & 2) m_tilemap_1->draw(bitmap, cliprect, 0,0);
} else {
- if (layers_ctrl & 1) state->m_tilemap_0->draw(bitmap, cliprect, 0,0);
+ if (layers_ctrl & 1) m_tilemap_0->draw(bitmap, cliprect, 0,0);
}
// spr 2
if (layers_ctrl & 8) dai2kaku_draw_sprites(screen.machine(),bitmap,cliprect,0);
// fix
- if (layers_ctrl & 4) state->m_tilemap_2->draw(bitmap, cliprect, 0,0);
+ if (layers_ctrl & 4) m_tilemap_2->draw(bitmap, cliprect, 0,0);
-// usrintf_showmessage("%04x",state->m_vregs[0x8/2]);
+// usrintf_showmessage("%04x",m_vregs[0x8/2]);
return 0;
}
diff --git a/src/mame/video/redalert.c b/src/mame/video/redalert.c
index 8726bc767b7..5eec7f5a7ff 100644
--- a/src/mame/video/redalert.c
+++ b/src/mame/video/redalert.c
@@ -183,9 +183,8 @@ VIDEO_START_MEMBER(redalert_state,ww3)
*
*************************************/
-static SCREEN_UPDATE_RGB32( redalert )
+UINT32 redalert_state::screen_update_redalert(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- redalert_state *state = screen.machine().driver_data<redalert_state>();
pen_t pens[NUM_CHARMAP_PENS + NUM_BITMAP_PENS + 1];
offs_t offs;
@@ -200,22 +199,22 @@ static SCREEN_UPDATE_RGB32( redalert )
UINT8 y = offs & 0xff;
UINT8 x = (~offs >> 8) << 3;
- UINT8 bitmap_data = state->m_bitmap_videoram[offs];
- UINT8 bitmap_color = state->m_bitmap_colorram[offs >> 3];
+ UINT8 bitmap_data = m_bitmap_videoram[offs];
+ UINT8 bitmap_color = m_bitmap_colorram[offs >> 3];
- UINT8 charmap_code = state->m_charmap_videoram[0x0000 | (offs >> 3)];
+ UINT8 charmap_code = m_charmap_videoram[0x0000 | (offs >> 3)];
offs_t charmap_data_base = ((charmap_code & 0x7f) << 3) | (offs & 0x07);
/* D7 of the char code selects the char set to use */
if (charmap_code & 0x80)
{
- charmap_data_1 = state->m_charmap_videoram[0x0400 | charmap_data_base];
- charmap_data_2 = state->m_charmap_videoram[0x0c00 | charmap_data_base];
+ charmap_data_1 = m_charmap_videoram[0x0400 | charmap_data_base];
+ charmap_data_2 = m_charmap_videoram[0x0c00 | charmap_data_base];
}
else
{
charmap_data_1 = 0; /* effectively disables A0 of the color PROM */
- charmap_data_2 = state->m_charmap_videoram[0x0800 | charmap_data_base];
+ charmap_data_2 = m_charmap_videoram[0x0800 | charmap_data_base];
}
for (i = 0; i < 8; i++)
@@ -231,7 +230,7 @@ static SCREEN_UPDATE_RGB32( redalert )
else
pen = pens[((charmap_code & 0xfe) << 1) | color_prom_a0_a1];
- if ((*state->m_video_control ^ state->m_control_xor) & 0x04)
+ if ((*m_video_control ^ m_control_xor) & 0x04)
bitmap.pix32(y, x) = pen;
else
bitmap.pix32(y ^ 0xff, x ^ 0xff) = pen;
@@ -256,9 +255,8 @@ static SCREEN_UPDATE_RGB32( redalert )
*
*************************************/
-static SCREEN_UPDATE_RGB32( demoneye )
+UINT32 redalert_state::screen_update_demoneye(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- redalert_state *state = screen.machine().driver_data<redalert_state>();
pen_t pens[NUM_CHARMAP_PENS + NUM_BITMAP_PENS + 1];
offs_t offs;
@@ -273,27 +271,27 @@ static SCREEN_UPDATE_RGB32( demoneye )
UINT8 y = offs & 0xff;
UINT8 x = (~offs >> 8) << 3;
- UINT8 bitmap_data = state->m_bitmap_videoram[offs];
- UINT8 bitmap_color = state->m_bitmap_colorram[offs >> 3];
+ UINT8 bitmap_data = m_bitmap_videoram[offs];
+ UINT8 bitmap_color = m_bitmap_colorram[offs >> 3];
- UINT8 charmap_code = state->m_charmap_videoram[0x1000 | (offs >> 3)];
+ UINT8 charmap_code = m_charmap_videoram[0x1000 | (offs >> 3)];
offs_t charmap_data_base = ((charmap_code & 0x7f) << 3) | (offs & 0x07);
/* D7 of the char code selects the char set to use */
if (charmap_code & 0x80)
{
- charmap_data_1 = state->m_charmap_videoram[0x0400 | charmap_data_base];
- charmap_data_2 = state->m_charmap_videoram[0x0c00 | charmap_data_base];
+ charmap_data_1 = m_charmap_videoram[0x0400 | charmap_data_base];
+ charmap_data_2 = m_charmap_videoram[0x0c00 | charmap_data_base];
}
else
{
- charmap_data_1 = state->m_charmap_videoram[0x0000 | charmap_data_base];
- charmap_data_2 = state->m_charmap_videoram[0x0800 | charmap_data_base];
+ charmap_data_1 = m_charmap_videoram[0x0000 | charmap_data_base];
+ charmap_data_2 = m_charmap_videoram[0x0800 | charmap_data_base];
}
/* this is the mapping of the 3rd char set */
- //charmap_data_1 = state->m_charmap_videoram[0x1400 | charmap_data_base];
- //charmap_data_2 = state->m_charmap_videoram[0x1c00 | charmap_data_base];
+ //charmap_data_1 = m_charmap_videoram[0x1400 | charmap_data_base];
+ //charmap_data_2 = m_charmap_videoram[0x1c00 | charmap_data_base];
for (i = 0; i < 8; i++)
{
@@ -308,7 +306,7 @@ static SCREEN_UPDATE_RGB32( demoneye )
else
pen = pens[((charmap_code & 0xfe) << 1) | color_prom_a0_a1];
- if (*state->m_video_control & 0x04)
+ if (*m_video_control & 0x04)
bitmap.pix32(y ^ 0xff, x ^ 0xff) = pen;
else
bitmap.pix32(y, x) = pen;
@@ -331,9 +329,8 @@ static SCREEN_UPDATE_RGB32( demoneye )
*
*************************************/
-static SCREEN_UPDATE_RGB32( panther )
+UINT32 redalert_state::screen_update_panther(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- redalert_state *state = screen.machine().driver_data<redalert_state>();
pen_t pens[NUM_CHARMAP_PENS + NUM_BITMAP_PENS + 1];
offs_t offs;
@@ -348,22 +345,22 @@ static SCREEN_UPDATE_RGB32( panther )
UINT8 y = offs & 0xff;
UINT8 x = (~offs >> 8) << 3;
- UINT8 bitmap_data = state->m_bitmap_videoram[offs];
- UINT8 bitmap_color = state->m_bitmap_colorram[offs >> 3];
+ UINT8 bitmap_data = m_bitmap_videoram[offs];
+ UINT8 bitmap_color = m_bitmap_colorram[offs >> 3];
- UINT8 charmap_code = state->m_charmap_videoram[0x0000 | (offs >> 3)];
+ UINT8 charmap_code = m_charmap_videoram[0x0000 | (offs >> 3)];
offs_t charmap_data_base = ((charmap_code & 0x7f) << 3) | (offs & 0x07);
/* D7 of the char code selects the char set to use */
if (charmap_code & 0x80)
{
- charmap_data_1 = state->m_charmap_videoram[0x0400 | charmap_data_base];
- charmap_data_2 = state->m_charmap_videoram[0x0c00 | charmap_data_base];
+ charmap_data_1 = m_charmap_videoram[0x0400 | charmap_data_base];
+ charmap_data_2 = m_charmap_videoram[0x0c00 | charmap_data_base];
}
else
{
charmap_data_1 = 0; /* effectively disables A0 of the color PROM */
- charmap_data_2 = state->m_charmap_videoram[0x0800 | charmap_data_base];
+ charmap_data_2 = m_charmap_videoram[0x0800 | charmap_data_base];
}
for (i = 0; i < 8; i++)
@@ -379,7 +376,7 @@ static SCREEN_UPDATE_RGB32( panther )
else
pen = pens[((charmap_code & 0xfe) << 1) | color_prom_a0_a1];
- if ((*state->m_video_control ^ state->m_control_xor) & 0x04)
+ if ((*m_video_control ^ m_control_xor) & 0x04)
bitmap.pix32(y, x) = pen;
else
bitmap.pix32(y ^ 0xff, x ^ 0xff) = pen;
@@ -409,7 +406,7 @@ static MACHINE_CONFIG_FRAGMENT( redalert_video_common )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(redalert)
+ MCFG_SCREEN_UPDATE_DRIVER(redalert_state, screen_update_redalert)
MACHINE_CONFIG_END
MACHINE_CONFIG_FRAGMENT( redalert_video )
@@ -441,7 +438,7 @@ MACHINE_CONFIG_FRAGMENT( demoneye_video )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(demoneye)
+ MCFG_SCREEN_UPDATE_DRIVER(redalert_state, screen_update_demoneye)
MACHINE_CONFIG_END
@@ -454,6 +451,6 @@ MACHINE_CONFIG_FRAGMENT( panther_video )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 1*8, 31*8-1)
- MCFG_SCREEN_UPDATE_STATIC(panther)
+ MCFG_SCREEN_UPDATE_DRIVER(redalert_state, screen_update_panther)
MACHINE_CONFIG_END
diff --git a/src/mame/video/redclash.c b/src/mame/video/redclash.c
index a91af14fa61..b977fa755f2 100644
--- a/src/mame/video/redclash.c
+++ b/src/mame/video/redclash.c
@@ -417,21 +417,20 @@ void redclash_draw_stars( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_VBLANK( redclash )
+void ladybug_state::screen_eof_redclash(screen_device &screen, bool state)
{
// falling edge
- if (!vblank_on)
+ if (!state)
redclash_update_stars_state(screen.machine());
}
-SCREEN_UPDATE_IND16( redclash )
+UINT32 ladybug_state::screen_update_redclash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ladybug_state *state = screen.machine().driver_data<ladybug_state>();
bitmap.fill(get_black_pen(screen.machine()), cliprect);
redclash_draw_stars(screen.machine(), bitmap, cliprect, 0x60, 0, 0x00, 0xff);
draw_sprites(screen.machine(), bitmap, cliprect);
draw_bullets(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/relief.c b/src/mame/video/relief.c
index aee00c0a21e..26a8affd20e 100644
--- a/src/mame/video/relief.c
+++ b/src/mame/video/relief.c
@@ -105,9 +105,8 @@ VIDEO_START_MEMBER(relief_state,relief)
*
*************************************/
-SCREEN_UPDATE_IND16( relief )
+UINT32 relief_state::screen_update_relief(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- relief_state *state = screen.machine().driver_data<relief_state>();
bitmap_ind8 &priority_bitmap = screen.machine().priority_bitmap;
atarimo_rect_list rectlist;
bitmap_ind16 *mobitmap;
@@ -115,8 +114,8 @@ SCREEN_UPDATE_IND16( relief )
/* draw the playfield */
priority_bitmap.fill(0, cliprect);
- state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_playfield2_tilemap->draw(bitmap, cliprect, 0, 1);
+ m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_playfield2_tilemap->draw(bitmap, cliprect, 0, 1);
/* draw and merge the MO */
mobitmap = atarimo_render(0, cliprect, &rectlist);
diff --git a/src/mame/video/renegade.c b/src/mame/video/renegade.c
index 51340d0fe45..1b9521b48eb 100644
--- a/src/mame/video/renegade.c
+++ b/src/mame/video/renegade.c
@@ -124,12 +124,11 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( renegade )
+UINT32 renegade_state::screen_update_renegade(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- renegade_state *state = screen.machine().driver_data<renegade_state>();
- state->m_bg_tilemap->set_scrollx(0, state->m_scrollx);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0 , 0);
+ m_bg_tilemap->set_scrollx(0, m_scrollx);
+ m_bg_tilemap->draw(bitmap, cliprect, 0 , 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0 , 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0 , 0);
return 0;
}
diff --git a/src/mame/video/retofinv.c b/src/mame/video/retofinv.c
index b333f3eac31..9fb63fc9b83 100644
--- a/src/mame/video/retofinv.c
+++ b/src/mame/video/retofinv.c
@@ -220,11 +220,10 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap)
-SCREEN_UPDATE_IND16( retofinv )
+UINT32 retofinv_state::screen_update_retofinv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- retofinv_state *state = screen.machine().driver_data<retofinv_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/video/rltennis.c b/src/mame/video/rltennis.c
index f50bf00f9be..88ace8762c9 100644
--- a/src/mame/video/rltennis.c
+++ b/src/mame/video/rltennis.c
@@ -228,10 +228,9 @@ void rltennis_state::video_start()
m_tmp_bitmap[BITMAP_FG_DISPLAY] = auto_bitmap_ind16_alloc(machine(), 512, 256);
}
-SCREEN_UPDATE_IND16( rltennis )
+UINT32 rltennis_state::screen_update_rltennis(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- rltennis_state *state = screen.machine().driver_data<rltennis_state>();
- copybitmap(bitmap, *state->m_tmp_bitmap[BITMAP_BG], 0, 0, 0, 0, cliprect);
- copybitmap_trans(bitmap, *state->m_tmp_bitmap[BITMAP_FG_DISPLAY], 0, 0, 0, 0, cliprect, 0);
+ copybitmap(bitmap, *m_tmp_bitmap[BITMAP_BG], 0, 0, 0, 0, cliprect);
+ copybitmap_trans(bitmap, *m_tmp_bitmap[BITMAP_FG_DISPLAY], 0, 0, 0, 0, cliprect, 0);
return 0;
}
diff --git a/src/mame/video/rockrage.c b/src/mame/video/rockrage.c
index b48ea7765fd..87237740135 100644
--- a/src/mame/video/rockrage.c
+++ b/src/mame/video/rockrage.c
@@ -96,18 +96,17 @@ WRITE8_MEMBER(rockrage_state::rockrage_vreg_w)
***************************************************************************/
-SCREEN_UPDATE_IND16( rockrage )
+UINT32 rockrage_state::screen_update_rockrage(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- rockrage_state *state = screen.machine().driver_data<rockrage_state>();
set_pens(screen.machine());
- k007342_tilemap_update(state->m_k007342);
+ k007342_tilemap_update(m_k007342);
- k007342_tilemap_draw(state->m_k007342, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0);
- k007420_sprites_draw(state->m_k007420, bitmap, cliprect, screen.machine().gfx[1]);
- k007342_tilemap_draw(state->m_k007342, bitmap, cliprect, 0, 1 | TILEMAP_DRAW_OPAQUE, 0);
- k007342_tilemap_draw(state->m_k007342, bitmap, cliprect, 1, 0, 0);
- k007342_tilemap_draw(state->m_k007342, bitmap, cliprect, 1, 1, 0);
+ k007342_tilemap_draw(m_k007342, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0);
+ k007420_sprites_draw(m_k007420, bitmap, cliprect, screen.machine().gfx[1]);
+ k007342_tilemap_draw(m_k007342, bitmap, cliprect, 0, 1 | TILEMAP_DRAW_OPAQUE, 0);
+ k007342_tilemap_draw(m_k007342, bitmap, cliprect, 1, 0, 0);
+ k007342_tilemap_draw(m_k007342, bitmap, cliprect, 1, 1, 0);
return 0;
}
diff --git a/src/mame/video/rocnrope.c b/src/mame/video/rocnrope.c
index 6f4e6a84726..113e876e9d8 100644
--- a/src/mame/video/rocnrope.c
+++ b/src/mame/video/rocnrope.c
@@ -139,10 +139,9 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( rocnrope )
+UINT32 rocnrope_state::screen_update_rocnrope(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- rocnrope_state *state = screen.machine().driver_data<rocnrope_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/rohga.c b/src/mame/video/rohga.c
index 63e75ac7651..b6bc4ae2ebb 100644
--- a/src/mame/video/rohga.c
+++ b/src/mame/video/rohga.c
@@ -61,17 +61,16 @@ UINT16 rohga_col_callback(UINT16 x)
/******************************************************************************/
-SCREEN_UPDATE_IND16( rohga )
+UINT32 rohga_state::screen_update_rohga(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- rohga_state *state = screen.machine().driver_data<rohga_state>();
address_space &space = screen.machine().driver_data()->generic_space();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
- UINT16 priority = decocomn_priority_r(state->m_decocomn, space, 0, 0xffff);
+ UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
+ UINT16 priority = decocomn_priority_r(m_decocomn, space, 0, 0xffff);
/* Update playfields */
- state->flip_screen_set(BIT(flip, 7));
- deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
- deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
+ flip_screen_set(BIT(flip, 7));
+ deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
+ deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
/* Draw playfields */
screen.machine().priority_bitmap.fill(0, cliprect);
@@ -83,30 +82,30 @@ SCREEN_UPDATE_IND16( rohga )
if (priority & 4)
{
// Draw as 1 8BPP layer
- deco16ic_tilemap_12_combine_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 3);
+ deco16ic_tilemap_12_combine_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 3);
}
else
{
// Draw as 2 4BPP layers
- deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 2);
+ deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 2);
}
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 4);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 4);
break;
case 1:
- deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 2);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 4);
+ deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2);
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 4);
break;
case 2:
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 2);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 4);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 1);
+ deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, 0, 2);
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 4);
break;
}
- screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, state->m_spriteram->buffer(), 0x400, true);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400, true);
+ deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
return 0;
}
@@ -165,74 +164,72 @@ static void mixwizdfirelayer(running_machine &machine, bitmap_rgb32 &bitmap, con
}
}
-SCREEN_UPDATE_RGB32( wizdfire )
+UINT32 rohga_state::screen_update_wizdfire(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- rohga_state *state = screen.machine().driver_data<rohga_state>();
address_space &space = screen.machine().driver_data()->generic_space();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
- UINT16 priority = decocomn_priority_r(state->m_decocomn, space, 0, 0xffff);
+ UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
+ UINT16 priority = decocomn_priority_r(m_decocomn, space, 0, 0xffff);
/* draw sprite gfx to temp bitmaps */
- screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, state->m_spriteram2->buffer(), 0x400, true);
- screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, state->m_spriteram->buffer(), 0x400, true);
+ screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, m_spriteram2->buffer(), 0x400, true);
+ screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400, true);
/* Update playfields */
- state->flip_screen_set(BIT(flip, 7));
- deco16ic_pf_update(state->m_deco_tilegen1, 0, 0);
- deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
+ flip_screen_set(BIT(flip, 7));
+ deco16ic_pf_update(m_deco_tilegen1, 0, 0);
+ deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
/* Draw playfields - Palette of 2nd playfield chip visible if playfields turned off */
bitmap.fill(screen.machine().pens[512], cliprect);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
screen.machine().device<decospr_device>("spritegen1")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0600, 0x0600, 0x400, 0x1ff);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
screen.machine().device<decospr_device>("spritegen1")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0400, 0x0600, 0x400, 0x1ff);
if ((priority & 0x1f) == 0x1f) /* Wizdfire has bit 0x40 always set, Dark Seal 2 doesn't?! */
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_ALPHA(0x80), 0);
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_ALPHA(0x80), 0);
else
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 0);
screen.machine().device<decospr_device>("spritegen1")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0400, 0x400, 0x1ff); // 0x000 and 0x200 of 0x600
mixwizdfirelayer(screen.machine(), bitmap, cliprect, 4, 0x000, 0x000);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_RGB32( nitrobal )
+UINT32 rohga_state::screen_update_nitrobal(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- rohga_state *state = screen.machine().driver_data<rohga_state>();
address_space &space = screen.machine().driver_data()->generic_space();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
+ UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
/* draw sprite gfx to temp bitmaps */
screen.machine().device<decospr_device>("spritegen1")->set_alt_format(true);
screen.machine().device<decospr_device>("spritegen2")->set_alt_format(true);
- screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, state->m_spriteram2->buffer(), 0x400, false);
- screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, state->m_spriteram->buffer(), 0x400, false);
+ screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, m_spriteram2->buffer(), 0x400, false);
+ screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, m_spriteram->buffer(), 0x400, false);
/* Update playfields */
- state->flip_screen_set(BIT(flip, 7));
- deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
- deco16ic_pf_update(state->m_deco_tilegen2, state->m_pf3_rowscroll, state->m_pf4_rowscroll);
+ flip_screen_set(BIT(flip, 7));
+ deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
+ deco16ic_pf_update(m_deco_tilegen2, m_pf3_rowscroll, m_pf4_rowscroll);
/* Draw playfields - Palette of 2nd playfield chip visible if playfields turned off */
bitmap.fill(screen.machine().pens[512], cliprect);
screen.machine().priority_bitmap.fill(0);
/* pf3 and pf4 are combined into a single 8bpp bitmap */
- deco16ic_tilemap_12_combine_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ deco16ic_tilemap_12_combine_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 16);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 16);
/* ToDo reimplement priorities + mixing / alpha, it was busted worse than this before anyway, so no big loss that we don't do it for now ;-) */
screen.machine().device<decospr_device>("spritegen2")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0000, 0x600, 0xff);
screen.machine().device<decospr_device>("spritegen1")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0000, 0x400, 0x1ff);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/rollerg.c b/src/mame/video/rollerg.c
index 9bb13fd3ff1..e27d603780d 100644
--- a/src/mame/video/rollerg.c
+++ b/src/mame/video/rollerg.c
@@ -58,14 +58,13 @@ void rollerg_state::video_start()
***************************************************************************/
-SCREEN_UPDATE_IND16( rollerg )
+UINT32 rollerg_state::screen_update_rollerg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- rollerg_state *state = screen.machine().driver_data<rollerg_state>();
int bg_colorbase = 16;
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(16 * bg_colorbase, cliprect);
- k051316_zoom_draw(state->m_k051316, bitmap, cliprect, 0, 1);
- k053245_sprites_draw(state->m_k053244, bitmap, cliprect);
+ k051316_zoom_draw(m_k051316, bitmap, cliprect, 0, 1);
+ k053245_sprites_draw(m_k053244, bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/rollrace.c b/src/mame/video/rollrace.c
index 161bba25783..9fc14f29a3b 100644
--- a/src/mame/video/rollrace.c
+++ b/src/mame/video/rollrace.c
@@ -95,23 +95,22 @@ WRITE8_MEMBER(rollrace_state::rollrace_flipx_w)
m_ra_flipx = data & 0x01;
}
-SCREEN_UPDATE_IND16( rollrace )
+UINT32 rollrace_state::screen_update_rollrace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- rollrace_state *state = screen.machine().driver_data<rollrace_state>();
- UINT8 *spriteram = state->m_spriteram;
+ UINT8 *spriteram = m_spriteram;
int offs;
int sx, sy;
int scroll;
int col;
- const UINT8 *mem = state->memregion("user1")->base();
+ const UINT8 *mem = memregion("user1")->base();
/* fill in background colour*/
- bitmap.fill(state->m_ra_bkgpen, cliprect);
+ bitmap.fill(m_ra_bkgpen, cliprect);
/* draw road */
for (offs = 0x3ff; offs >= 0; offs--)
{
- if(!(state->m_ra_bkgflip))
+ if(!(m_ra_bkgflip))
{
sy = ( 31 - offs / 32 ) ;
}
@@ -120,18 +119,18 @@ SCREEN_UPDATE_IND16( rollrace )
sx = ( offs%32 ) ;
- if(state->m_ra_flipx)
+ if(m_ra_flipx)
sx = 31-sx ;
- if(state->m_ra_flipy)
+ if(m_ra_flipy)
sy = 31-sy ;
drawgfx_transpen(bitmap,
cliprect,screen.machine().gfx[RA_BGCHAR_BASE],
- mem[offs + ( state->m_ra_bkgpage * 1024 )]
- + ((( mem[offs + 0x4000 + ( state->m_ra_bkgpage * 1024 )] & 0xc0 ) >> 6 ) * 256 ) ,
- state->m_ra_bkgcol,
- state->m_ra_flipx,(state->m_ra_bkgflip^state->m_ra_flipy),
+ mem[offs + ( m_ra_bkgpage * 1024 )]
+ + ((( mem[offs + 0x4000 + ( m_ra_bkgpage * 1024 )] & 0xc0 ) >> 6 ) * 256 ) ,
+ m_ra_bkgcol,
+ m_ra_flipx,(m_ra_bkgflip^m_ra_flipy),
sx*8,sy*8,0);
@@ -152,9 +151,9 @@ SCREEN_UPDATE_IND16( rollrace )
if(sx && sy)
{
- if(state->m_ra_flipx)
+ if(m_ra_flipx)
sx = 224 - sx;
- if(state->m_ra_flipy)
+ if(m_ra_flipy)
sy = 224 - sy;
if(spriteram[offs+1] & 0x80)
@@ -163,12 +162,12 @@ SCREEN_UPDATE_IND16( rollrace )
bank = (( spriteram[offs+1] & 0x40 ) >> 6 ) ;
if(bank)
- bank += state->m_ra_spritebank;
+ bank += m_ra_spritebank;
drawgfx_transpen(bitmap, cliprect,screen.machine().gfx[ RA_SP_BASE + bank ],
spriteram[offs+1] & 0x3f ,
spriteram[offs+2] & 0x1f,
- state->m_ra_flipx,!(s_flipy^state->m_ra_flipy),
+ m_ra_flipx,!(s_flipy^m_ra_flipy),
sx,sy,0);
}
}
@@ -183,20 +182,20 @@ SCREEN_UPDATE_IND16( rollrace )
sx = offs % 32;
sy = offs / 32;
- scroll = ( 8 * sy + state->m_colorram[2 * sx] ) % 256;
- col = state->m_colorram[ sx * 2 + 1 ]&0x1f;
+ scroll = ( 8 * sy + m_colorram[2 * sx] ) % 256;
+ col = m_colorram[ sx * 2 + 1 ]&0x1f;
- if (!state->m_ra_flipy)
+ if (!m_ra_flipy)
{
scroll = (248 - scroll) % 256;
}
- if (state->m_ra_flipx) sx = 31 - sx;
+ if (m_ra_flipx) sx = 31 - sx;
- drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[RA_FGCHAR_BASE + state->m_ra_chrbank] ,
- state->m_videoram[ offs ] ,
+ drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[RA_FGCHAR_BASE + m_ra_chrbank] ,
+ m_videoram[ offs ] ,
col,
- state->m_ra_flipx,state->m_ra_flipy,
+ m_ra_flipx,m_ra_flipy,
8*sx,scroll,0);
}
diff --git a/src/mame/video/route16.c b/src/mame/video/route16.c
index 86b222e99ff..420dbd7df57 100644
--- a/src/mame/video/route16.c
+++ b/src/mame/video/route16.c
@@ -68,34 +68,33 @@ static pen_t ttmajng_make_pen(UINT8 color)
* a black output.
*/
-SCREEN_UPDATE_RGB32( route16 )
+UINT32 route16_state::screen_update_route16(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- route16_state *state = screen.machine().driver_data<route16_state>();
offs_t offs;
UINT8 *color_prom1 = &screen.machine().root_device().memregion("proms")->base()[0x000];
- UINT8 *color_prom2 = &state->memregion("proms")->base()[0x100];
+ UINT8 *color_prom2 = &memregion("proms")->base()[0x100];
- for (offs = 0; offs < state->m_videoram1.bytes(); offs++)
+ for (offs = 0; offs < m_videoram1.bytes(); offs++)
{
int i;
UINT8 y = offs >> 6;
UINT8 x = offs << 2;
- UINT8 data1 = state->m_videoram1[offs];
- UINT8 data2 = state->m_videoram2[offs];
+ UINT8 data1 = m_videoram1[offs];
+ UINT8 data2 = m_videoram2[offs];
for (i = 0; i < 4; i++)
{
- UINT8 color1 = color_prom1[((state->m_palette_1 << 6) & 0x80) |
- (state->m_palette_1 << 2) |
+ UINT8 color1 = color_prom1[((m_palette_1 << 6) & 0x80) |
+ (m_palette_1 << 2) |
((data1 >> 3) & 0x02) |
((data1 >> 0) & 0x01)];
/* bit 7 of the 2nd color is the OR of the 1st color bits 0 and 1 - this is a guess */
- UINT8 color2 = color_prom2[((state->m_palette_2 << 6) & 0x80) | (((color1 << 6) & 0x80) | ((color1 << 7) & 0x80)) |
- (state->m_palette_2 << 2) |
+ UINT8 color2 = color_prom2[((m_palette_2 << 6) & 0x80) | (((color1 << 6) & 0x80) | ((color1 << 7) & 0x80)) |
+ (m_palette_2 << 2) |
((data2 >> 3) & 0x02) |
((data2 >> 0) & 0x01)];
@@ -104,7 +103,7 @@ SCREEN_UPDATE_RGB32( route16 )
pen_t pen = route16_make_pen(final_color);
- if (state->m_flipscreen)
+ if (m_flipscreen)
bitmap.pix32(255 - y, 255 - x) = pen;
else
bitmap.pix32(y, x) = pen;
@@ -175,13 +174,13 @@ static int video_update_stratvox_ttmahjng(running_machine &machine, bitmap_rgb32
}
-SCREEN_UPDATE_RGB32( stratvox )
+UINT32 route16_state::screen_update_stratvox(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
return video_update_stratvox_ttmahjng(screen.machine(), bitmap, cliprect, route16_make_pen);
}
-SCREEN_UPDATE_RGB32( ttmahjng )
+UINT32 route16_state::screen_update_ttmahjng(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
return video_update_stratvox_ttmahjng(screen.machine(), bitmap, cliprect, ttmajng_make_pen);
}
diff --git a/src/mame/video/rpunch.c b/src/mame/video/rpunch.c
index 6aa1e775a00..98d94933b1e 100644
--- a/src/mame/video/rpunch.c
+++ b/src/mame/video/rpunch.c
@@ -263,19 +263,18 @@ static void draw_bitmap(running_machine &machine, bitmap_ind16 &bitmap, const re
*
*************************************/
-SCREEN_UPDATE_IND16( rpunch )
+UINT32 rpunch_state::screen_update_rpunch(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- rpunch_state *state = screen.machine().driver_data<rpunch_state>();
int effbins;
/* this seems like the most plausible explanation */
- effbins = (state->m_bins > state->m_gins) ? state->m_gins : state->m_bins;
+ effbins = (m_bins > m_gins) ? m_gins : m_bins;
- state->m_background[0]->draw(bitmap, cliprect, 0,0);
+ m_background[0]->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap, cliprect, 0, effbins);
- state->m_background[1]->draw(bitmap, cliprect, 0,0);
- draw_sprites(screen.machine(), bitmap, cliprect, effbins, state->m_gins);
- if (state->m_bitmapram)
+ m_background[1]->draw(bitmap, cliprect, 0,0);
+ draw_sprites(screen.machine(), bitmap, cliprect, effbins, m_gins);
+ if (m_bitmapram)
draw_bitmap(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/runaway.c b/src/mame/video/runaway.c
index bae40598bcb..e57f064b386 100644
--- a/src/mame/video/runaway.c
+++ b/src/mame/video/runaway.c
@@ -83,24 +83,23 @@ VIDEO_START_MEMBER(runaway_state,qwak)
-SCREEN_UPDATE_IND16( runaway )
+UINT32 runaway_state::screen_update_runaway(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- runaway_state *state = screen.machine().driver_data<runaway_state>();
int i;
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
for (i = 0; i < 16; i++)
{
- unsigned code = state->m_sprite_ram[i] & 0x3f;
+ unsigned code = m_sprite_ram[i] & 0x3f;
- int x = state->m_sprite_ram[i + 0x20];
- int y = state->m_sprite_ram[i + 0x10];
+ int x = m_sprite_ram[i + 0x20];
+ int y = m_sprite_ram[i + 0x10];
- int flipx = state->m_sprite_ram[i] & 0x40;
- int flipy = state->m_sprite_ram[i] & 0x80;
+ int flipx = m_sprite_ram[i] & 0x40;
+ int flipy = m_sprite_ram[i] & 0x80;
- code |= (state->m_sprite_ram[i + 0x30] << 2) & 0x1c0;
+ code |= (m_sprite_ram[i + 0x30] << 2) & 0x1c0;
drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1],
code,
@@ -118,24 +117,23 @@ SCREEN_UPDATE_IND16( runaway )
}
-SCREEN_UPDATE_IND16( qwak )
+UINT32 runaway_state::screen_update_qwak(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- runaway_state *state = screen.machine().driver_data<runaway_state>();
int i;
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
for (i = 0; i < 16; i++)
{
- unsigned code = state->m_sprite_ram[i] & 0x7f;
+ unsigned code = m_sprite_ram[i] & 0x7f;
- int x = state->m_sprite_ram[i + 0x20];
- int y = state->m_sprite_ram[i + 0x10];
+ int x = m_sprite_ram[i + 0x20];
+ int y = m_sprite_ram[i + 0x10];
int flipx = 0;
- int flipy = state->m_sprite_ram[i] & 0x80;
+ int flipy = m_sprite_ram[i] & 0x80;
- code |= (state->m_sprite_ram[i + 0x30] << 2) & 0x1c0;
+ code |= (m_sprite_ram[i + 0x30] << 2) & 0x1c0;
drawgfx_transpen(bitmap, cliprect, screen.machine().gfx[1],
code,
diff --git a/src/mame/video/rungun.c b/src/mame/video/rungun.c
index 48cb19345a9..e5787446441 100644
--- a/src/mame/video/rungun.c
+++ b/src/mame/video/rungun.c
@@ -97,18 +97,17 @@ void rungun_state::video_start()
m_sprite_colorbase = 0x20;
}
-SCREEN_UPDATE_IND16(rng)
+UINT32 rungun_state::screen_update_rng(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- rungun_state *state = screen.machine().driver_data<rungun_state>();
bitmap.fill(get_black_pen(screen.machine()), cliprect);
screen.machine().priority_bitmap.fill(0, cliprect);
- k053936_zoom_draw(state->m_k053936, bitmap, cliprect, state->m_936_tilemap, 0, 0, 1);
+ k053936_zoom_draw(m_k053936, bitmap, cliprect, m_936_tilemap, 0, 0, 1);
- k053247_sprites_draw(state->m_k055673, bitmap, cliprect);
+ k053247_sprites_draw(m_k055673, bitmap, cliprect);
- state->m_ttl_tilemap->mark_all_dirty();
- state->m_ttl_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_ttl_tilemap->mark_all_dirty();
+ m_ttl_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/sauro.c b/src/mame/video/sauro.c
index 557fa5233be..0ae3f29d30a 100644
--- a/src/mame/video/sauro.c
+++ b/src/mame/video/sauro.c
@@ -144,12 +144,11 @@ static void sauro_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, c
}
}
-SCREEN_UPDATE_IND16( sauro )
+UINT32 sauro_state::screen_update_sauro(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- sauro_state *state = screen.machine().driver_data<sauro_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
sauro_draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
@@ -219,10 +218,9 @@ static void trckydoc_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap
}
}
-SCREEN_UPDATE_IND16( trckydoc )
+UINT32 sauro_state::screen_update_trckydoc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- sauro_state *state = screen.machine().driver_data<sauro_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
trckydoc_draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/sbasketb.c b/src/mame/video/sbasketb.c
index 97f3c9fe130..609c6b41142 100644
--- a/src/mame/video/sbasketb.c
+++ b/src/mame/video/sbasketb.c
@@ -168,15 +168,14 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( sbasketb )
+UINT32 sbasketb_state::screen_update_sbasketb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- sbasketb_state *state = screen.machine().driver_data<sbasketb_state>();
int col;
for (col = 6; col < 32; col++)
- state->m_bg_tilemap->set_scrolly(col, *state->m_scroll);
+ m_bg_tilemap->set_scrolly(col, *m_scroll);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/sbugger.c b/src/mame/video/sbugger.c
index ea5773a864e..69aa5ea83d3 100644
--- a/src/mame/video/sbugger.c
+++ b/src/mame/video/sbugger.c
@@ -32,10 +32,9 @@ void sbugger_state::video_start()
m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(sbugger_state::get_sbugger_tile_info),this), TILEMAP_SCAN_ROWS, 8, 16, 64, 16);
}
-SCREEN_UPDATE_IND16(sbugger)
+UINT32 sbugger_state::screen_update_sbugger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- sbugger_state *state = screen.machine().driver_data<sbugger_state>();
- state->m_tilemap->draw(bitmap, cliprect, 0,0);
+ m_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/video/scotrsht.c b/src/mame/video/scotrsht.c
index e1e209978aa..9c3fd5866fc 100644
--- a/src/mame/video/scotrsht.c
+++ b/src/mame/video/scotrsht.c
@@ -133,15 +133,14 @@ void scotrsht_state::video_start()
m_bg_tilemap->set_scroll_cols(64);
}
-SCREEN_UPDATE_IND16( scotrsht )
+UINT32 scotrsht_state::screen_update_scotrsht(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- scotrsht_state *state = screen.machine().driver_data<scotrsht_state>();
int col;
for (col = 0; col < 32; col++)
- state->m_bg_tilemap->set_scrolly(col, state->m_scroll[col]);
+ m_bg_tilemap->set_scrolly(col, m_scroll[col]);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/sderby.c b/src/mame/video/sderby.c
index 1a33d1b7323..05b84c36546 100644
--- a/src/mame/video/sderby.c
+++ b/src/mame/video/sderby.c
@@ -101,25 +101,23 @@ void sderby_state::video_start()
m_fg_tilemap->set_transparent_pen(0);
}
-SCREEN_UPDATE_IND16( sderby )
+UINT32 sderby_state::screen_update_sderby(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- sderby_state *state = screen.machine().driver_data<sderby_state>();
- state->m_tilemap->draw(bitmap, cliprect, 0,0);
+ m_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect,0);
- state->m_md_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_md_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
-SCREEN_UPDATE_IND16( pmroulet )
+UINT32 sderby_state::screen_update_pmroulet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- sderby_state *state = screen.machine().driver_data<sderby_state>();
- state->m_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_md_tilemap->draw(bitmap, cliprect, 0,0);
+ m_tilemap->draw(bitmap, cliprect, 0,0);
+ m_md_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect,0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/video/segag80r.c b/src/mame/video/segag80r.c
index 2ca2f5558c7..79bc4a8bae3 100644
--- a/src/mame/video/segag80r.c
+++ b/src/mame/video/segag80r.c
@@ -792,12 +792,11 @@ static void draw_background_full_scroll(running_machine &machine, bitmap_ind16 &
*
*************************************/
-SCREEN_UPDATE_IND16( segag80r )
+UINT32 segag80r_state::screen_update_segag80r(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- segag80r_state *state = screen.machine().driver_data<segag80r_state>();
UINT8 transparent_pens[16];
- switch (state->m_background_pcb)
+ switch (m_background_pcb)
{
/* foreground: opaque */
/* background: none */
diff --git a/src/mame/video/segag80v.c b/src/mame/video/segag80v.c
index 6fce742c7da..a3feaaf657e 100644
--- a/src/mame/video/segag80v.c
+++ b/src/mame/video/segag80v.c
@@ -334,7 +334,7 @@ void segag80v_state::video_start()
}
-SCREEN_UPDATE_RGB32( segag80v )
+UINT32 segag80v_state::screen_update_segag80v(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
sega_generate_vector_list(screen.machine());
SCREEN_UPDATE32_CALL(vector);
diff --git a/src/mame/video/segas24.c b/src/mame/video/segas24.c
index 02e798ac7c8..2dfcb06ee85 100644
--- a/src/mame/video/segas24.c
+++ b/src/mame/video/segas24.c
@@ -23,11 +23,10 @@ namespace {
};
};
-SCREEN_UPDATE_IND16(system24)
+UINT32 segas24_state::screen_update_system24(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- segas24_state *state = screen.machine().driver_data<segas24_state>();
- if(state->vmixer->get_reg(13) & 1) {
+ if(vmixer->get_reg(13) & 1) {
bitmap.fill(get_black_pen(screen.machine()));
return 0;
}
@@ -40,18 +39,18 @@ SCREEN_UPDATE_IND16(system24)
for(int i=0; i<12; i++)
order[i] = i;
- std::sort(order.begin(), order.end(), layer_sort(state->vmixer));
+ std::sort(order.begin(), order.end(), layer_sort(vmixer));
int spri[4];
int level = 0;
for(int i=0; i<12; i++)
if(order[i] < 8)
- state->vtile->draw(bitmap, cliprect, order[i], level, 0);
+ vtile->draw(bitmap, cliprect, order[i], level, 0);
else {
spri[order[i]-8] = level;
level++;
}
- state->vsprite->draw(bitmap, cliprect, spri);
+ vsprite->draw(bitmap, cliprect, spri);
return 0;
}
diff --git a/src/mame/video/segas32.c b/src/mame/video/segas32.c
index 1842dd2e898..24e97096866 100644
--- a/src/mame/video/segas32.c
+++ b/src/mame/video/segas32.c
@@ -2404,19 +2404,18 @@ static void print_mixer_data(segas32_state *state, int which)
}
}
-SCREEN_UPDATE_RGB32( system32 )
+UINT32 segas32_state::screen_update_system32(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- segas32_state *state = screen.machine().driver_data<segas32_state>();
UINT8 enablemask;
/* update the visible area */
- if (state->m_system32_videoram[0x1ff00/2] & 0x8000)
+ if (m_system32_videoram[0x1ff00/2] & 0x8000)
screen.set_visible_area(0, 52*8-1, 0, 28*8-1);
else
screen.set_visible_area(0, 40*8-1, 0, 28*8-1);
/* if the display is off, punt */
- if (!state->m_system32_displayenable[0])
+ if (!m_system32_displayenable[0])
{
bitmap.fill(get_black_pen(screen.machine()), cliprect);
return 0;
@@ -2439,7 +2438,7 @@ SCREEN_UPDATE_RGB32( system32 )
/* do the mixing */
g_profiler.start(PROFILER_USER3);
- mix_all_layers(state, 0, 0, bitmap, cliprect, enablemask);
+ mix_all_layers(this, 0, 0, bitmap, cliprect, enablemask);
g_profiler.stop();
if (LOG_SPRITES && screen.machine().input().code_pressed(KEYCODE_L))
@@ -2450,7 +2449,7 @@ SCREEN_UPDATE_RGB32( system32 )
for (y = visarea.min_y; y <= visarea.max_y; y++)
{
- UINT16 *src = get_layer_scanline(state, MIXER_LAYER_SPRITES, y);
+ UINT16 *src = get_layer_scanline(this, MIXER_LAYER_SPRITES, y);
for (x = visarea.min_x; x <= visarea.max_x; x++)
fprintf(f, "%04X ", *src++);
fprintf(f, "\n");
@@ -2460,7 +2459,7 @@ SCREEN_UPDATE_RGB32( system32 )
f = fopen("nbg0.txt", "w");
for (y = visarea.min_y; y <= visarea.max_y; y++)
{
- UINT16 *src = get_layer_scanline(state, MIXER_LAYER_NBG0, y);
+ UINT16 *src = get_layer_scanline(this, MIXER_LAYER_NBG0, y);
for (x = visarea.min_x; x <= visarea.max_x; x++)
fprintf(f, "%04X ", *src++);
fprintf(f, "\n");
@@ -2470,7 +2469,7 @@ SCREEN_UPDATE_RGB32( system32 )
f = fopen("nbg1.txt", "w");
for (y = visarea.min_y; y <= visarea.max_y; y++)
{
- UINT16 *src = get_layer_scanline(state, MIXER_LAYER_NBG1, y);
+ UINT16 *src = get_layer_scanline(this, MIXER_LAYER_NBG1, y);
for (x = visarea.min_x; x <= visarea.max_x; x++)
fprintf(f, "%04X ", *src++);
fprintf(f, "\n");
@@ -2480,7 +2479,7 @@ SCREEN_UPDATE_RGB32( system32 )
f = fopen("nbg2.txt", "w");
for (y = visarea.min_y; y <= visarea.max_y; y++)
{
- UINT16 *src = get_layer_scanline(state, MIXER_LAYER_NBG2, y);
+ UINT16 *src = get_layer_scanline(this, MIXER_LAYER_NBG2, y);
for (x = visarea.min_x; x <= visarea.max_x; x++)
fprintf(f, "%04X ", *src++);
fprintf(f, "\n");
@@ -2490,7 +2489,7 @@ SCREEN_UPDATE_RGB32( system32 )
f = fopen("nbg3.txt", "w");
for (y = visarea.min_y; y <= visarea.max_y; y++)
{
- UINT16 *src = get_layer_scanline(state, MIXER_LAYER_NBG3, y);
+ UINT16 *src = get_layer_scanline(this, MIXER_LAYER_NBG3, y);
for (x = visarea.min_x; x <= visarea.max_x; x++)
fprintf(f, "%04X ", *src++);
fprintf(f, "\n");
@@ -2503,10 +2502,10 @@ SCREEN_UPDATE_RGB32( system32 )
static const char *const layername[] = { "TEXT ", "NBG0 ", "NBG1 ", "NBG2 ", "NBG3 ", "BITMAP " };
char temp[100];
int count = 0, i;
- sprintf(temp, "ALPHA(%d):", (state->m_mixer_control[which][0x4e/2] >> 8) & 7);
+ sprintf(temp, "ALPHA(%d):", (m_mixer_control[which][0x4e/2] >> 8) & 7);
for (i = 0; i < 6; i++)
if (enablemask & (1 << i))
- if ((state->m_mixer_control[which][0x30/2 + i] & 0x1010) == 0x1010)
+ if ((m_mixer_control[which][0x30/2 + i] & 0x1010) == 0x1010)
{
count++;
strcat(temp, layername[i]);
@@ -2578,7 +2577,7 @@ for (showclip = 0; showclip < 4; showclip++)
}
#endif
- if (PRINTF_MIXER_DATA) print_mixer_data(state, 0);
+ if (PRINTF_MIXER_DATA) print_mixer_data(this, 0);
return 0;
}
@@ -2645,8 +2644,8 @@ if (PRINTF_MIXER_DATA)
return 0;
}
-SCREEN_UPDATE_RGB32( multi32_left ) { return multi32_update(screen, bitmap, cliprect, 0); }
-SCREEN_UPDATE_RGB32( multi32_right ) { return multi32_update(screen, bitmap, cliprect, 1); }
+UINT32 segas32_state::screen_update_multi32_left(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect){ return multi32_update(screen, bitmap, cliprect, 0); }
+UINT32 segas32_state::screen_update_multi32_right(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect){ return multi32_update(screen, bitmap, cliprect, 1); }
/*
diff --git a/src/mame/video/seibuspi.c b/src/mame/video/seibuspi.c
index 16ef0ca15e4..823362bde76 100644
--- a/src/mame/video/seibuspi.c
+++ b/src/mame/video/seibuspi.c
@@ -591,47 +591,46 @@ static void combine_tilemap(running_machine &machine, bitmap_rgb32 &bitmap, cons
-SCREEN_UPDATE_RGB32( spi )
+UINT32 seibuspi_state::screen_update_spi(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- seibuspi_state *state = screen.machine().driver_data<seibuspi_state>();
INT16 *back_rowscroll, *mid_rowscroll, *fore_rowscroll;
- if( state->m_layer_bank & 0x80000000 ) {
- back_rowscroll = (INT16*)&state->m_tilemap_ram[0x200];
- mid_rowscroll = (INT16*)&state->m_tilemap_ram[0x600];
- fore_rowscroll = (INT16*)&state->m_tilemap_ram[0xa00];
+ if( m_layer_bank & 0x80000000 ) {
+ back_rowscroll = (INT16*)&m_tilemap_ram[0x200];
+ mid_rowscroll = (INT16*)&m_tilemap_ram[0x600];
+ fore_rowscroll = (INT16*)&m_tilemap_ram[0xa00];
} else {
back_rowscroll = NULL;
mid_rowscroll = NULL;
fore_rowscroll = NULL;
}
- if( state->m_layer_enable & 0x1 )
+ if( m_layer_enable & 0x1 )
bitmap.fill(0, cliprect);
- if (!(state->m_layer_enable & 0x1))
- combine_tilemap(screen.machine(), bitmap, cliprect, state->m_back_layer, state->m_spi_scrollram[0] & 0xffff, (state->m_spi_scrollram[0] >> 16) & 0xffff, 1, back_rowscroll);
+ if (!(m_layer_enable & 0x1))
+ combine_tilemap(screen.machine(), bitmap, cliprect, m_back_layer, m_spi_scrollram[0] & 0xffff, (m_spi_scrollram[0] >> 16) & 0xffff, 1, back_rowscroll);
draw_sprites(screen.machine(), bitmap, cliprect, 0);
// if fore layer is enabled, draw priority 1 sprites behind mid layer
- if (!(state->m_layer_enable & 0x4))
+ if (!(m_layer_enable & 0x4))
draw_sprites(screen.machine(), bitmap, cliprect, 1);
- if (!(state->m_layer_enable & 0x2))
- combine_tilemap(screen.machine(), bitmap, cliprect, state->m_mid_layer, state->m_spi_scrollram[1] & 0xffff, (state->m_spi_scrollram[1] >> 16) & 0xffff, 0, mid_rowscroll);
+ if (!(m_layer_enable & 0x2))
+ combine_tilemap(screen.machine(), bitmap, cliprect, m_mid_layer, m_spi_scrollram[1] & 0xffff, (m_spi_scrollram[1] >> 16) & 0xffff, 0, mid_rowscroll);
// if fore layer is disabled, draw priority 1 sprites above mid layer
- if ((state->m_layer_enable & 0x4))
+ if ((m_layer_enable & 0x4))
draw_sprites(screen.machine(), bitmap, cliprect, 1);
draw_sprites(screen.machine(), bitmap, cliprect, 2);
- if (!(state->m_layer_enable & 0x4))
- combine_tilemap(screen.machine(), bitmap, cliprect, state->m_fore_layer, state->m_spi_scrollram[2] & 0xffff, (state->m_spi_scrollram[2] >> 16) & 0xffff, 0, fore_rowscroll);
+ if (!(m_layer_enable & 0x4))
+ combine_tilemap(screen.machine(), bitmap, cliprect, m_fore_layer, m_spi_scrollram[2] & 0xffff, (m_spi_scrollram[2] >> 16) & 0xffff, 0, fore_rowscroll);
draw_sprites(screen.machine(), bitmap, cliprect, 3);
- combine_tilemap(screen.machine(), bitmap, cliprect, state->m_text_layer, 0, 0, 0, NULL);
+ combine_tilemap(screen.machine(), bitmap, cliprect, m_text_layer, 0, 0, 0, NULL);
return 0;
}
@@ -653,7 +652,7 @@ VIDEO_START_MEMBER(seibuspi_state,sys386f2)
memset(m_alpha_table, 0, 8192 * sizeof(UINT8));
}
-SCREEN_UPDATE_RGB32( sys386f2 )
+UINT32 seibuspi_state::screen_update_sys386f2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
bitmap.fill(0, cliprect);
draw_sprites(screen.machine(), bitmap, cliprect, 0);
diff --git a/src/mame/video/seicross.c b/src/mame/video/seicross.c
index 2a3745d824d..e0c9086c0d1 100644
--- a/src/mame/video/seicross.c
+++ b/src/mame/video/seicross.c
@@ -134,15 +134,14 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( seicross )
+UINT32 seicross_state::screen_update_seicross(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- seicross_state *state = screen.machine().driver_data<seicross_state>();
int col;
for (col = 0; col < 32; col++)
- state->m_bg_tilemap->set_scrolly(col, state->m_row_scroll[col]);
+ m_bg_tilemap->set_scrolly(col, m_row_scroll[col]);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/senjyo.c b/src/mame/video/senjyo.c
index 3df0927c5b1..3cc728d9df1 100644
--- a/src/mame/video/senjyo.c
+++ b/src/mame/video/senjyo.c
@@ -276,9 +276,8 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re
}
}
-SCREEN_UPDATE_IND16( senjyo )
+UINT32 senjyo_state::screen_update_senjyo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- senjyo_state *state = screen.machine().driver_data<senjyo_state>();
int i;
@@ -287,54 +286,54 @@ SCREEN_UPDATE_IND16( senjyo )
palette_set_color(screen.machine(),513,MAKE_RGB(0xff,0xff,0x00)); /* yellow for player */
{
- int flip = state->flip_screen();
+ int flip = flip_screen();
int scrollx,scrolly;
for (i = 0;i < 32;i++)
- state->m_fg_tilemap->set_scrolly(i, state->m_fgscroll[i]);
+ m_fg_tilemap->set_scrolly(i, m_fgscroll[i]);
- scrollx = state->m_scrollx1[0];
- scrolly = state->m_scrolly1[0] + 256 * state->m_scrolly1[1];
+ scrollx = m_scrollx1[0];
+ scrolly = m_scrolly1[0] + 256 * m_scrolly1[1];
if (flip)
scrollx = -scrollx;
- state->m_bg1_tilemap->set_scrollx(0, scrollx);
- state->m_bg1_tilemap->set_scrolly(0, scrolly);
+ m_bg1_tilemap->set_scrollx(0, scrollx);
+ m_bg1_tilemap->set_scrolly(0, scrolly);
- scrollx = state->m_scrollx2[0];
- scrolly = state->m_scrolly2[0] + 256 * state->m_scrolly2[1];
- if (state->m_scrollhack) /* Star Force, but NOT the encrypted version */
+ scrollx = m_scrollx2[0];
+ scrolly = m_scrolly2[0] + 256 * m_scrolly2[1];
+ if (m_scrollhack) /* Star Force, but NOT the encrypted version */
{
- scrollx = state->m_scrollx1[0];
- scrolly = state->m_scrolly1[0] + 256 * state->m_scrolly1[1];
+ scrollx = m_scrollx1[0];
+ scrolly = m_scrolly1[0] + 256 * m_scrolly1[1];
}
if (flip)
scrollx = -scrollx;
- state->m_bg2_tilemap->set_scrollx(0, scrollx);
- state->m_bg2_tilemap->set_scrolly(0, scrolly);
+ m_bg2_tilemap->set_scrollx(0, scrollx);
+ m_bg2_tilemap->set_scrolly(0, scrolly);
- scrollx = state->m_scrollx3[0];
- scrolly = state->m_scrolly3[0] + 256 * state->m_scrolly3[1];
+ scrollx = m_scrollx3[0];
+ scrolly = m_scrolly3[0] + 256 * m_scrolly3[1];
if (flip)
scrollx = -scrollx;
- state->m_bg3_tilemap->set_scrollx(0, scrollx);
- state->m_bg3_tilemap->set_scrolly(0, scrolly);
+ m_bg3_tilemap->set_scrollx(0, scrollx);
+ m_bg3_tilemap->set_scrolly(0, scrolly);
}
draw_bgbitmap(screen.machine(), bitmap, cliprect);
draw_sprites(screen.machine(), bitmap, cliprect, 0);
- state->m_bg3_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg3_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 1);
- state->m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg2_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 2);
- state->m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg1_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 3);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_radar(screen.machine(), bitmap, cliprect);
#if 0
{
char baf[80];
- UINT8 *senjyo_scrolly3 = state->m_scrolly3;
+ UINT8 *senjyo_scrolly3 = m_scrolly3;
sprintf(baf,"%02x %02x %02x %02x %02x %02x %02x %02x",
senjyo_scrolly3[0x00],
diff --git a/src/mame/video/seta.c b/src/mame/video/seta.c
index fdf1c66f39a..ead2316c464 100644
--- a/src/mame/video/seta.c
+++ b/src/mame/video/seta.c
@@ -824,7 +824,7 @@ static void draw_tilemap_palette_effect(running_machine &machine, bitmap_ind16 &
/* For games without tilemaps */
-SCREEN_UPDATE_IND16( seta_no_layers )
+UINT32 seta_state::screen_update_seta_no_layers(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
set_pens(screen.machine());
bitmap.fill(0x1f0, cliprect);
@@ -1042,14 +1042,14 @@ if (screen.machine().input().code_pressed(KEYCODE_Z))
}
-static SCREEN_UPDATE_IND16( seta_layers )
+UINT32 seta_state::screen_update_seta_layers(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
seta_layers_update(screen, bitmap, cliprect, 0x1000, 1 );
return 0;
}
-SCREEN_UPDATE_IND16( setaroul )
+UINT32 seta_state::screen_update_setaroul(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(0x0, cliprect);
@@ -1061,31 +1061,31 @@ SCREEN_UPDATE_IND16( setaroul )
return 0;
}
-SCREEN_VBLANK( setaroul )
+void seta_state::screen_eof_setaroul(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
screen.machine().device<seta001_device>("spritegen")->tnzs_eof();
}
-SCREEN_UPDATE_IND16( seta )
+UINT32 seta_state::screen_update_seta(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
set_pens(screen.machine());
- return SCREEN_UPDATE16_CALL(seta_layers);
+ return SCREEN_UPDATE16_CALL_MEMBER(seta_layers);
}
-SCREEN_UPDATE_IND16( usclssic )
+UINT32 seta_state::screen_update_usclssic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
usclssic_set_pens(screen.machine());
- return SCREEN_UPDATE16_CALL(seta_layers);
+ return SCREEN_UPDATE16_CALL_MEMBER(seta_layers);
}
-SCREEN_UPDATE_IND16( inttoote )
+UINT32 seta_state::screen_update_inttoote(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
/* no palette to set */
- return SCREEN_UPDATE16_CALL(seta_layers);
+ return SCREEN_UPDATE16_CALL_MEMBER(seta_layers);
}
diff --git a/src/mame/video/seta2.c b/src/mame/video/seta2.c
index 7e65cdea147..0716f819494 100644
--- a/src/mame/video/seta2.c
+++ b/src/mame/video/seta2.c
@@ -475,27 +475,25 @@ VIDEO_START_MEMBER(seta2_state,seta2_yoffset)
m_yoffset = 0x10;
}
-SCREEN_UPDATE_IND16( seta2 )
+UINT32 seta2_state::screen_update_seta2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- seta2_state *state = screen.machine().driver_data<seta2_state>();
// Black or pen 0?
bitmap.fill(screen.machine().pens[0], cliprect);
- if ( (state->m_vregs[0x30/2] & 1) == 0 ) // 1 = BLANK SCREEN
+ if ( (m_vregs[0x30/2] & 1) == 0 ) // 1 = BLANK SCREEN
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
-SCREEN_VBLANK( seta2 )
+void seta2_state::screen_eof_seta2(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- seta2_state *state = screen.machine().driver_data<seta2_state>();
// Buffer sprites by 1 frame
- memcpy(state->m_buffered_spriteram, state->m_spriteram, state->m_spriteram.bytes());
+ memcpy(m_buffered_spriteram, m_spriteram, m_spriteram.bytes());
}
}
diff --git a/src/mame/video/sf.c b/src/mame/video/sf.c
index 68241ba0662..588b46dd34d 100644
--- a/src/mame/video/sf.c
+++ b/src/mame/video/sf.c
@@ -212,20 +212,19 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap,const r
}
-SCREEN_UPDATE_IND16( sf )
+UINT32 sf_state::screen_update_sf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- sf_state *state = screen.machine().driver_data<sf_state>();
- if (state->m_sf_active & 0x20)
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (m_sf_active & 0x20)
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
else
bitmap.fill(0, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
- if (state->m_sf_active & 0x80)
+ if (m_sf_active & 0x80)
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/shadfrce.c b/src/mame/video/shadfrce.c
index b6732fc9ae0..88330761c01 100644
--- a/src/mame/video/shadfrce.c
+++ b/src/mame/video/shadfrce.c
@@ -151,17 +151,16 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( shadfrce )
+UINT32 shadfrce_state::screen_update_shadfrce(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- shadfrce_state *state = screen.machine().driver_data<shadfrce_state>();
screen.machine().priority_bitmap.fill(0, cliprect);
- if (state->m_video_enable)
+ if (m_video_enable)
{
- state->m_bg1tilemap->draw(bitmap, cliprect, 0,0);
- state->m_bg0tilemap->draw(bitmap, cliprect, 0,1);
+ m_bg1tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg0tilemap->draw(bitmap, cliprect, 0,1);
draw_sprites(screen.machine(), bitmap,cliprect);
- state->m_fgtilemap->draw(bitmap, cliprect, 0,0);
+ m_fgtilemap->draw(bitmap, cliprect, 0,0);
}
else
{
@@ -171,14 +170,13 @@ SCREEN_UPDATE_IND16( shadfrce )
return 0;
}
-SCREEN_VBLANK( shadfrce )
+void shadfrce_state::screen_eof_shadfrce(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- shadfrce_state *state = screen.machine().driver_data<shadfrce_state>();
/* looks like sprites are *two* frames ahead */
- memcpy(state->m_spvideoram_old, state->m_spvideoram, state->m_spvideoram.bytes());
+ memcpy(m_spvideoram_old, m_spvideoram, m_spvideoram.bytes());
}
}
diff --git a/src/mame/video/shangha3.c b/src/mame/video/shangha3.c
index d8ceef60d08..641e23c69b2 100644
--- a/src/mame/video/shangha3.c
+++ b/src/mame/video/shangha3.c
@@ -254,10 +254,9 @@ else
}
-SCREEN_UPDATE_IND16( shangha3 )
+UINT32 shangha3_state::screen_update_shangha3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- shangha3_state *state = screen.machine().driver_data<shangha3_state>();
- copybitmap(bitmap, state->m_rawbitmap, 0, 0, 0, 0, cliprect);
+ copybitmap(bitmap, m_rawbitmap, 0, 0, 0, 0, cliprect);
return 0;
}
diff --git a/src/mame/video/shangkid.c b/src/mame/video/shangkid.c
index 1741510dc42..51d16b3e298 100644
--- a/src/mame/video/shangkid.c
+++ b/src/mame/video/shangkid.c
@@ -182,17 +182,16 @@ static void shangkid_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap
}
}
-SCREEN_UPDATE_IND16( shangkid )
+UINT32 shangkid_state::screen_update_shangkid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- shangkid_state *state = screen.machine().driver_data<shangkid_state>();
- int flipscreen = state->m_videoreg[1]&0x80;
- state->m_background->set_flip(flipscreen?(TILEMAP_FLIPX|TILEMAP_FLIPY):0 );
- state->m_background->set_scrollx(0,state->m_videoreg[0]-40 );
- state->m_background->set_scrolly(0,state->m_videoreg[2]+0x10 );
+ int flipscreen = m_videoreg[1]&0x80;
+ m_background->set_flip(flipscreen?(TILEMAP_FLIPX|TILEMAP_FLIPY):0 );
+ m_background->set_scrollx(0,m_videoreg[0]-40 );
+ m_background->set_scrolly(0,m_videoreg[2]+0x10 );
- state->m_background->draw(bitmap, cliprect, 0,0 );
+ m_background->draw(bitmap, cliprect, 0,0 );
shangkid_draw_sprites(screen.machine(), bitmap,cliprect );
- state->m_background->draw(bitmap, cliprect, 1,0 ); /* high priority tiles */
+ m_background->draw(bitmap, cliprect, 1,0 ); /* high priority tiles */
return 0;
}
@@ -319,7 +318,7 @@ static void dynamski_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap
}
}
-SCREEN_UPDATE_IND16( dynamski )
+UINT32 shangkid_state::screen_update_dynamski(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
dynamski_draw_background(screen.machine(), bitmap,cliprect, 0 );
dynamski_draw_sprites(screen.machine(), bitmap,cliprect );
diff --git a/src/mame/video/shaolins.c b/src/mame/video/shaolins.c
index 33eaf9c3ef9..2686e676066 100644
--- a/src/mame/video/shaolins.c
+++ b/src/mame/video/shaolins.c
@@ -186,11 +186,10 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( shaolins )
+UINT32 shaolins_state::screen_update_shaolins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- shaolins_state *state = screen.machine().driver_data<shaolins_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/shisen.c b/src/mame/video/shisen.c
index 2969e8c13c5..a20be13ac29 100644
--- a/src/mame/video/shisen.c
+++ b/src/mame/video/shisen.c
@@ -57,16 +57,15 @@ void shisen_state::video_start()
8, 8, 64, 32);
}
-SCREEN_UPDATE_IND16( sichuan2 )
+UINT32 shisen_state::screen_update_sichuan2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- shisen_state *state = screen.machine().driver_data<shisen_state>();
// on Irem boards, screen flip is handled in both hardware and software.
// this game doesn't have cocktail mode so if there's software control we don't
// know where it is mapped.
- state->flip_screen_set(~screen.machine().root_device().ioport("DSW2")->read() & 1);
+ flip_screen_set(~screen.machine().root_device().ioport("DSW2")->read() & 1);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/shootout.c b/src/mame/video/shootout.c
index 8e66d9c90f9..8e95d11eccc 100644
--- a/src/mame/video/shootout.c
+++ b/src/mame/video/shootout.c
@@ -167,26 +167,24 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( shootout )
+UINT32 shootout_state::screen_update_shootout(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- shootout_state *state = screen.machine().driver_data<shootout_state>();
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_background->draw(bitmap, cliprect, 0,0);
- state->m_foreground->draw(bitmap, cliprect, 0,1);
+ m_background->draw(bitmap, cliprect, 0,0);
+ m_foreground->draw(bitmap, cliprect, 0,1);
draw_sprites(screen.machine(), bitmap,cliprect,3/*bank bits */);
return 0;
}
-SCREEN_UPDATE_IND16( shootouj )
+UINT32 shootout_state::screen_update_shootouj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- shootout_state *state = screen.machine().driver_data<shootout_state>();
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_background->draw(bitmap, cliprect, 0,0);
- state->m_foreground->draw(bitmap, cliprect, 0,1);
+ m_background->draw(bitmap, cliprect, 0,0);
+ m_foreground->draw(bitmap, cliprect, 0,1);
draw_sprites(screen.machine(), bitmap,cliprect,2/*bank bits*/);
return 0;
}
diff --git a/src/mame/video/shuuz.c b/src/mame/video/shuuz.c
index c635a8ea579..59714d1d911 100644
--- a/src/mame/video/shuuz.c
+++ b/src/mame/video/shuuz.c
@@ -87,15 +87,14 @@ VIDEO_START_MEMBER(shuuz_state,shuuz)
*
*************************************/
-SCREEN_UPDATE_IND16( shuuz )
+UINT32 shuuz_state::screen_update_shuuz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- shuuz_state *state = screen.machine().driver_data<shuuz_state>();
atarimo_rect_list rectlist;
bitmap_ind16 *mobitmap;
int x, y, r;
/* draw the playfield */
- state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
/* draw and merge the MO */
mobitmap = atarimo_render(0, cliprect, &rectlist);
diff --git a/src/mame/video/sidearms.c b/src/mame/video/sidearms.c
index cd6a5942fba..df07d702483 100644
--- a/src/mame/video/sidearms.c
+++ b/src/mame/video/sidearms.c
@@ -336,22 +336,21 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( sidearms )
+UINT32 sidearms_state::screen_update_sidearms(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- sidearms_state *state = screen.machine().driver_data<sidearms_state>();
sidearms_draw_starfield(screen.machine(), bitmap);
- state->m_bg_tilemap->set_scrollx(0, state->m_bg_scrollx[0] + (state->m_bg_scrollx[1] << 8 & 0xf00));
- state->m_bg_tilemap->set_scrolly(0, state->m_bg_scrolly[0] + (state->m_bg_scrolly[1] << 8 & 0xf00));
+ m_bg_tilemap->set_scrollx(0, m_bg_scrollx[0] + (m_bg_scrollx[1] << 8 & 0xf00));
+ m_bg_tilemap->set_scrolly(0, m_bg_scrolly[0] + (m_bg_scrolly[1] << 8 & 0xf00));
- if (state->m_bgon)
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (m_bgon)
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- if (state->m_objon)
+ if (m_objon)
draw_sprites(screen.machine(), bitmap, cliprect);
- if (state->m_charon)
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (m_charon)
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/sidepckt.c b/src/mame/video/sidepckt.c
index b5dac7f1586..cee7119b1fe 100644
--- a/src/mame/video/sidepckt.c
+++ b/src/mame/video/sidepckt.c
@@ -138,11 +138,10 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re
}
-SCREEN_UPDATE_IND16( sidepckt )
+UINT32 sidepckt_state::screen_update_sidepckt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- sidepckt_state *state = screen.machine().driver_data<sidepckt_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1,0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1,0);
draw_sprites(screen.machine(), bitmap,cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0,0);
return 0;
}
diff --git a/src/mame/video/silkroad.c b/src/mame/video/silkroad.c
index 6a3a6cd6937..f3e5db723d0 100644
--- a/src/mame/video/silkroad.c
+++ b/src/mame/video/silkroad.c
@@ -134,34 +134,33 @@ void silkroad_state::video_start()
m_fg3_tilemap->set_transparent_pen(0);
}
-SCREEN_UPDATE_IND16(silkroad)
+UINT32 silkroad_state::screen_update_silkroad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- silkroad_state *state = screen.machine().driver_data<silkroad_state>();
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(0x7c0, cliprect);
- state->m_fg_tilemap->set_scrollx(0, ((state->m_regs[0] & 0xffff0000) >> 16) );
- state->m_fg_tilemap->set_scrolly(0, (state->m_regs[0] & 0x0000ffff) >> 0 );
+ m_fg_tilemap->set_scrollx(0, ((m_regs[0] & 0xffff0000) >> 16) );
+ m_fg_tilemap->set_scrolly(0, (m_regs[0] & 0x0000ffff) >> 0 );
- state->m_fg3_tilemap->set_scrolly(0, (state->m_regs[1] & 0xffff0000) >> 16 );
- state->m_fg3_tilemap->set_scrollx(0, (state->m_regs[2] & 0xffff0000) >> 16 );
+ m_fg3_tilemap->set_scrolly(0, (m_regs[1] & 0xffff0000) >> 16 );
+ m_fg3_tilemap->set_scrollx(0, (m_regs[2] & 0xffff0000) >> 16 );
- state->m_fg2_tilemap->set_scrolly(0, ((state->m_regs[5] & 0xffff0000) >> 16));
- state->m_fg2_tilemap->set_scrollx(0, (state->m_regs[2] & 0x0000ffff) >> 0 );
+ m_fg2_tilemap->set_scrolly(0, ((m_regs[5] & 0xffff0000) >> 16));
+ m_fg2_tilemap->set_scrollx(0, (m_regs[2] & 0x0000ffff) >> 0 );
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_fg2_tilemap->draw(bitmap, cliprect, 0,1);
- state->m_fg3_tilemap->draw(bitmap, cliprect, 0,2);
+ m_fg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg2_tilemap->draw(bitmap, cliprect, 0,1);
+ m_fg3_tilemap->draw(bitmap, cliprect, 0,2);
draw_sprites(screen.machine(),bitmap,cliprect);
if (0)
{
popmessage ("Regs %08x %08x %08x %08x %08x",
- state->m_regs[0],
- state->m_regs[1],
- state->m_regs[2],
- state->m_regs[4],
- state->m_regs[5]);
+ m_regs[0],
+ m_regs[1],
+ m_regs[2],
+ m_regs[4],
+ m_regs[5]);
}
return 0;
diff --git a/src/mame/video/simpl156.c b/src/mame/video/simpl156.c
index 0b03304530b..847a428c6f0 100644
--- a/src/mame/video/simpl156.c
+++ b/src/mame/video/simpl156.c
@@ -25,22 +25,21 @@ void simpl156_state::video_start()
save_pointer(NAME(m_spriteram), 0x2000/2);
}
-SCREEN_UPDATE_IND16( simpl156 )
+UINT32 simpl156_state::screen_update_simpl156(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- simpl156_state *state = screen.machine().driver_data<simpl156_state>();
screen.machine().priority_bitmap.fill(0);
- deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
+ deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
bitmap.fill(256, cliprect);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 2);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 4);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 2);
+ deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 4);
//FIXME: flip_screen_x should not be written!
- state->flip_screen_set_no_update(1);
+ flip_screen_set_no_update(1);
- screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x1400/4); // 0x1400/4 seems right for charlien (doesn't initialize any more RAM, so will draw a garbage 0 with more)
+ screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x1400/4); // 0x1400/4 seems right for charlien (doesn't initialize any more RAM, so will draw a garbage 0 with more)
return 0;
}
diff --git a/src/mame/video/simpsons.c b/src/mame/video/simpsons.c
index 3fb0fa71e1e..54db49adf4a 100644
--- a/src/mame/video/simpsons.c
+++ b/src/mame/video/simpsons.c
@@ -118,34 +118,33 @@ void simpsons_video_banking( running_machine &machine, int bank )
***************************************************************************/
-SCREEN_UPDATE_IND16( simpsons )
+UINT32 simpsons_state::screen_update_simpsons(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- simpsons_state *state = screen.machine().driver_data<simpsons_state>();
int layer[3], bg_colorbase;
- bg_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI0);
- state->m_sprite_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI1);
- state->m_layer_colorbase[0] = k053251_get_palette_index(state->m_k053251, K053251_CI2);
- state->m_layer_colorbase[1] = k053251_get_palette_index(state->m_k053251, K053251_CI3);
- state->m_layer_colorbase[2] = k053251_get_palette_index(state->m_k053251, K053251_CI4);
+ bg_colorbase = k053251_get_palette_index(m_k053251, K053251_CI0);
+ m_sprite_colorbase = k053251_get_palette_index(m_k053251, K053251_CI1);
+ m_layer_colorbase[0] = k053251_get_palette_index(m_k053251, K053251_CI2);
+ m_layer_colorbase[1] = k053251_get_palette_index(m_k053251, K053251_CI3);
+ m_layer_colorbase[2] = k053251_get_palette_index(m_k053251, K053251_CI4);
- k052109_tilemap_update(state->m_k052109);
+ k052109_tilemap_update(m_k052109);
layer[0] = 0;
- state->m_layerpri[0] = k053251_get_priority(state->m_k053251, K053251_CI2);
+ m_layerpri[0] = k053251_get_priority(m_k053251, K053251_CI2);
layer[1] = 1;
- state->m_layerpri[1] = k053251_get_priority(state->m_k053251, K053251_CI3);
+ m_layerpri[1] = k053251_get_priority(m_k053251, K053251_CI3);
layer[2] = 2;
- state->m_layerpri[2] = k053251_get_priority(state->m_k053251, K053251_CI4);
+ m_layerpri[2] = k053251_get_priority(m_k053251, K053251_CI4);
- konami_sortlayers3(layer, state->m_layerpri);
+ konami_sortlayers3(layer, m_layerpri);
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(16 * bg_colorbase, cliprect);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, layer[0], 0, 1);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, layer[1], 0, 2);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, layer[2], 0, 4);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, layer[0], 0, 1);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, layer[1], 0, 2);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, layer[2], 0, 4);
- k053247_sprites_draw(state->m_k053246, bitmap, cliprect);
+ k053247_sprites_draw(m_k053246, bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/skullxbo.c b/src/mame/video/skullxbo.c
index e20521e172c..0bff8f2a1f6 100644
--- a/src/mame/video/skullxbo.c
+++ b/src/mame/video/skullxbo.c
@@ -240,15 +240,14 @@ void skullxbo_scanline_update(running_machine &machine, int scanline)
*
*************************************/
-SCREEN_UPDATE_IND16( skullxbo )
+UINT32 skullxbo_state::screen_update_skullxbo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- skullxbo_state *state = screen.machine().driver_data<skullxbo_state>();
atarimo_rect_list rectlist;
bitmap_ind16 *mobitmap;
int x, y, r;
/* draw the playfield */
- state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
/* draw and merge the MO */
mobitmap = atarimo_render(0, cliprect, &rectlist);
@@ -312,6 +311,6 @@ SCREEN_UPDATE_IND16( skullxbo )
}
/* add the alpha on top */
- state->m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/skydiver.c b/src/mame/video/skydiver.c
index 3e93c27c780..5953081eae0 100644
--- a/src/mame/video/skydiver.c
+++ b/src/mame/video/skydiver.c
@@ -200,10 +200,9 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
-SCREEN_UPDATE_IND16( skydiver )
+UINT32 skydiver_state::screen_update_skydiver(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- skydiver_state *state = screen.machine().driver_data<skydiver_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
diff --git a/src/mame/video/skyfox.c b/src/mame/video/skyfox.c
index e59539a0d19..357c518fa29 100644
--- a/src/mame/video/skyfox.c
+++ b/src/mame/video/skyfox.c
@@ -280,7 +280,7 @@ static void draw_background(running_machine &machine, bitmap_ind16 &bitmap, cons
***************************************************************************/
-SCREEN_UPDATE_IND16( skyfox )
+UINT32 skyfox_state::screen_update_skyfox(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(255, cliprect); // the bg is black
draw_background(screen.machine(), bitmap, cliprect);
diff --git a/src/mame/video/skykid.c b/src/mame/video/skykid.c
index c818bc703d5..e9bf27a50ea 100644
--- a/src/mame/video/skykid.c
+++ b/src/mame/video/skykid.c
@@ -229,40 +229,39 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re
}
-SCREEN_UPDATE_IND16( skykid )
+UINT32 skykid_state::screen_update_skykid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- skykid_state *state = screen.machine().driver_data<skykid_state>();
- if (state->flip_screen())
+ if (flip_screen())
{
- state->m_bg_tilemap->set_scrollx(0, 189 - (state->m_scroll_x ^ 1));
- state->m_bg_tilemap->set_scrolly(0, 7 - state->m_scroll_y);
+ m_bg_tilemap->set_scrollx(0, 189 - (m_scroll_x ^ 1));
+ m_bg_tilemap->set_scrolly(0, 7 - m_scroll_y);
}
else
{
- state->m_bg_tilemap->set_scrollx(0, state->m_scroll_x + 35);
- state->m_bg_tilemap->set_scrolly(0, state->m_scroll_y + 25);
+ m_bg_tilemap->set_scrollx(0, m_scroll_x + 35);
+ m_bg_tilemap->set_scrolly(0, m_scroll_y + 25);
}
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
- if (state->m_priority & 0x04)
+ if (m_priority & 0x04)
{
// textlayer priority enabled?
- int cat, pri = state->m_priority >> 4;
+ int cat, pri = m_priority >> 4;
// draw low priority tiles
- state->m_tx_tilemap->draw(bitmap, cliprect, pri, 0);
+ m_tx_tilemap->draw(bitmap, cliprect, pri, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
// draw the other tiles
for (cat = 0; cat < 0xf; cat++)
- if (cat != pri) state->m_tx_tilemap->draw(bitmap, cliprect, cat, 0);
+ if (cat != pri) m_tx_tilemap->draw(bitmap, cliprect, cat, 0);
}
else
{
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_tx_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_ALL_CATEGORIES, 0);
+ m_tx_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_ALL_CATEGORIES, 0);
}
return 0;
diff --git a/src/mame/video/skyraid.c b/src/mame/video/skyraid.c
index 7085e6b508b..45d0a91b07e 100644
--- a/src/mame/video/skyraid.c
+++ b/src/mame/video/skyraid.c
@@ -132,19 +132,18 @@ static void draw_trapezoid(running_machine &machine, bitmap_ind16& dst, bitmap_i
}
-SCREEN_UPDATE_IND16( skyraid )
+UINT32 skyraid_state::screen_update_skyraid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- skyraid_state *state = screen.machine().driver_data<skyraid_state>();
bitmap.fill(0, cliprect);
rectangle helper_clip = cliprect;
- helper_clip &= state->m_helper.cliprect();
+ helper_clip &= m_helper.cliprect();
- draw_terrain(screen.machine(), state->m_helper, helper_clip);
- draw_sprites(screen.machine(), state->m_helper, helper_clip);
- draw_missiles(screen.machine(), state->m_helper, helper_clip);
- draw_trapezoid(screen.machine(), bitmap, state->m_helper);
+ draw_terrain(screen.machine(), m_helper, helper_clip);
+ draw_sprites(screen.machine(), m_helper, helper_clip);
+ draw_missiles(screen.machine(), m_helper, helper_clip);
+ draw_trapezoid(screen.machine(), bitmap, m_helper);
draw_text(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/slapfght.c b/src/mame/video/slapfght.c
index 421f968c40b..c3909a3fd5b 100644
--- a/src/mame/video/slapfght.c
+++ b/src/mame/video/slapfght.c
@@ -176,21 +176,20 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
-SCREEN_UPDATE_IND16( perfrman )
+UINT32 slapfght_state::screen_update_perfrman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- slapfght_state *state = screen.machine().driver_data<slapfght_state>();
- state->m_pf1_tilemap->set_flip(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
- state->m_pf1_tilemap ->set_scrolly(0 , 0 );
- if (state->m_flipscreen) {
- state->m_pf1_tilemap ->set_scrollx(0 , 264 );
+ m_pf1_tilemap->set_flip(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
+ m_pf1_tilemap ->set_scrolly(0 , 0 );
+ if (m_flipscreen) {
+ m_pf1_tilemap ->set_scrollx(0 , 264 );
}
else {
- state->m_pf1_tilemap ->set_scrollx(0 , -16 );
+ m_pf1_tilemap ->set_scrollx(0 , -16 );
}
- state->m_pf1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
+ m_pf1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
draw_sprites(screen.machine(), bitmap,cliprect,0);
- state->m_pf1_tilemap->draw(bitmap, cliprect, 0,0);
+ m_pf1_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect,0x80);
slapfght_log_vram(screen.machine());
@@ -198,32 +197,31 @@ SCREEN_UPDATE_IND16( perfrman )
}
-SCREEN_UPDATE_IND16( slapfight )
+UINT32 slapfght_state::screen_update_slapfight(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- slapfght_state *state = screen.machine().driver_data<slapfght_state>();
- UINT8 *buffered_spriteram = state->m_spriteram->buffer();
+ UINT8 *buffered_spriteram = m_spriteram->buffer();
int offs;
- screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
- if (state->m_flipscreen) {
- state->m_fix_tilemap->set_scrollx(0,296);
- state->m_pf1_tilemap->set_scrollx(0,(*state->m_slapfight_scrollx_lo + 256 * *state->m_slapfight_scrollx_hi)+296 );
- state->m_pf1_tilemap->set_scrolly(0, (*state->m_slapfight_scrolly)+15 );
- state->m_fix_tilemap->set_scrolly(0, -1 ); /* Glitch in Tiger Heli otherwise */
+ screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
+ if (m_flipscreen) {
+ m_fix_tilemap->set_scrollx(0,296);
+ m_pf1_tilemap->set_scrollx(0,(*m_slapfight_scrollx_lo + 256 * *m_slapfight_scrollx_hi)+296 );
+ m_pf1_tilemap->set_scrolly(0, (*m_slapfight_scrolly)+15 );
+ m_fix_tilemap->set_scrolly(0, -1 ); /* Glitch in Tiger Heli otherwise */
}
else {
- state->m_fix_tilemap->set_scrollx(0,0);
- state->m_pf1_tilemap->set_scrollx(0,(*state->m_slapfight_scrollx_lo + 256 * *state->m_slapfight_scrollx_hi) );
- state->m_pf1_tilemap->set_scrolly(0, (*state->m_slapfight_scrolly)-1 );
- state->m_fix_tilemap->set_scrolly(0, -1 ); /* Glitch in Tiger Heli otherwise */
+ m_fix_tilemap->set_scrollx(0,0);
+ m_pf1_tilemap->set_scrollx(0,(*m_slapfight_scrollx_lo + 256 * *m_slapfight_scrollx_hi) );
+ m_pf1_tilemap->set_scrolly(0, (*m_slapfight_scrolly)-1 );
+ m_fix_tilemap->set_scrolly(0, -1 ); /* Glitch in Tiger Heli otherwise */
}
- state->m_pf1_tilemap->draw(bitmap, cliprect, 0,0);
+ m_pf1_tilemap->draw(bitmap, cliprect, 0,0);
/* Draw the sprites */
- for (offs = 0;offs < state->m_spriteram->bytes();offs += 4)
+ for (offs = 0;offs < m_spriteram->bytes();offs += 4)
{
- if (state->m_flipscreen)
+ if (m_flipscreen)
drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[2],
buffered_spriteram[offs] + ((buffered_spriteram[offs+2] & 0xc0) << 2),
(buffered_spriteram[offs+2] & 0x1e) >> 1,
@@ -237,7 +235,7 @@ SCREEN_UPDATE_IND16( slapfight )
(buffered_spriteram[offs+1] + ((buffered_spriteram[offs+2] & 0x01) << 8)) - 13,buffered_spriteram[offs+3],0);
}
- state->m_fix_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fix_tilemap->draw(bitmap, cliprect, 0,0);
slapfght_log_vram(screen.machine());
return 0;
diff --git a/src/mame/video/slapshot.c b/src/mame/video/slapshot.c
index a13269b99af..ebd0ca1a721 100644
--- a/src/mame/video/slapshot.c
+++ b/src/mame/video/slapshot.c
@@ -427,16 +427,15 @@ static void taito_update_sprites_active_area( running_machine &machine )
}
}
-SCREEN_VBLANK( taito_no_buffer )
+void slapshot_state::screen_eof_taito_no_buffer(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- slapshot_state *state = screen.machine().driver_data<slapshot_state>();
taito_update_sprites_active_area(screen.machine());
- state->m_prepare_sprites = 1;
+ m_prepare_sprites = 1;
}
}
@@ -457,9 +456,8 @@ One exception is the "puck" in early attract which is
a bg layer given priority over some sprites.
********************************************************************/
-SCREEN_UPDATE_IND16( slapshot )
+UINT32 slapshot_state::screen_update_slapshot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- slapshot_state *state = screen.machine().driver_data<slapshot_state>();
address_space &space = screen.machine().driver_data()->generic_space();
UINT8 layer[5];
UINT8 tilepri[5];
@@ -469,40 +467,40 @@ SCREEN_UPDATE_IND16( slapshot )
#ifdef MAME_DEBUG
if (screen.machine().input().code_pressed_once (KEYCODE_Z))
{
- state->m_dislayer[0] ^= 1;
- popmessage("bg0: %01x",state->m_dislayer[0]);
+ m_dislayer[0] ^= 1;
+ popmessage("bg0: %01x",m_dislayer[0]);
}
if (screen.machine().input().code_pressed_once (KEYCODE_X))
{
- state->m_dislayer[1] ^= 1;
- popmessage("bg1: %01x",state->m_dislayer[1]);
+ m_dislayer[1] ^= 1;
+ popmessage("bg1: %01x",m_dislayer[1]);
}
if (screen.machine().input().code_pressed_once (KEYCODE_C))
{
- state->m_dislayer[2] ^= 1;
- popmessage("bg2: %01x",state->m_dislayer[2]);
+ m_dislayer[2] ^= 1;
+ popmessage("bg2: %01x",m_dislayer[2]);
}
if (screen.machine().input().code_pressed_once (KEYCODE_V))
{
- state->m_dislayer[3] ^= 1;
- popmessage("bg3: %01x",state->m_dislayer[3]);
+ m_dislayer[3] ^= 1;
+ popmessage("bg3: %01x",m_dislayer[3]);
}
if (screen.machine().input().code_pressed_once (KEYCODE_B))
{
- state->m_dislayer[4] ^= 1;
- popmessage("text: %01x",state->m_dislayer[4]);
+ m_dislayer[4] ^= 1;
+ popmessage("text: %01x",m_dislayer[4]);
}
#endif
taito_handle_sprite_buffering(screen.machine());
- tc0480scp_tilemap_update(state->m_tc0480scp);
+ tc0480scp_tilemap_update(m_tc0480scp);
- priority = tc0480scp_get_bg_priority(state->m_tc0480scp);
+ priority = tc0480scp_get_bg_priority(m_tc0480scp);
layer[0] = (priority & 0xf000) >> 12; /* tells us which bg layer is bottom */
layer[1] = (priority & 0x0f00) >> 8;
@@ -510,41 +508,41 @@ SCREEN_UPDATE_IND16( slapshot )
layer[3] = (priority & 0x000f) >> 0; /* tells us which is top */
layer[4] = 4; /* text layer always over bg layers */
- tilepri[0] = tc0360pri_r(state->m_tc0360pri, space, 4) & 0x0f; /* bg0 */
- tilepri[1] = tc0360pri_r(state->m_tc0360pri, space, 4) >> 4; /* bg1 */
- tilepri[2] = tc0360pri_r(state->m_tc0360pri, space, 5) & 0x0f; /* bg2 */
- tilepri[3] = tc0360pri_r(state->m_tc0360pri, space, 5) >> 4; /* bg3 */
+ tilepri[0] = tc0360pri_r(m_tc0360pri, space, 4) & 0x0f; /* bg0 */
+ tilepri[1] = tc0360pri_r(m_tc0360pri, space, 4) >> 4; /* bg1 */
+ tilepri[2] = tc0360pri_r(m_tc0360pri, space, 5) & 0x0f; /* bg2 */
+ tilepri[3] = tc0360pri_r(m_tc0360pri, space, 5) >> 4; /* bg3 */
/* we actually assume text layer is on top of everything anyway, but FWIW... */
- tilepri[layer[4]] = tc0360pri_r(state->m_tc0360pri, space, 7) & 0x0f; /* fg (text layer) */
+ tilepri[layer[4]] = tc0360pri_r(m_tc0360pri, space, 7) & 0x0f; /* fg (text layer) */
- spritepri[0] = tc0360pri_r(state->m_tc0360pri, space, 6) & 0x0f;
- spritepri[1] = tc0360pri_r(state->m_tc0360pri, space, 6) >> 4;
- spritepri[2] = tc0360pri_r(state->m_tc0360pri, space, 7) & 0x0f;
- spritepri[3] = tc0360pri_r(state->m_tc0360pri, space, 7) >> 4;
+ spritepri[0] = tc0360pri_r(m_tc0360pri, space, 6) & 0x0f;
+ spritepri[1] = tc0360pri_r(m_tc0360pri, space, 6) >> 4;
+ spritepri[2] = tc0360pri_r(m_tc0360pri, space, 7) & 0x0f;
+ spritepri[3] = tc0360pri_r(m_tc0360pri, space, 7) >> 4;
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(0, cliprect);
#ifdef MAME_DEBUG
- if (state->m_dislayer[layer[0]] == 0)
+ if (m_dislayer[layer[0]] == 0)
#endif
- tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[0], 0, 1);
+ tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[0], 0, 1);
#ifdef MAME_DEBUG
- if (state->m_dislayer[layer[1]] == 0)
+ if (m_dislayer[layer[1]] == 0)
#endif
- tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[1], 0, 2);
+ tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[1], 0, 2);
#ifdef MAME_DEBUG
- if (state->m_dislayer[layer[2]] == 0)
+ if (m_dislayer[layer[2]] == 0)
#endif
- tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[2], 0, 4);
+ tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[2], 0, 4);
#ifdef MAME_DEBUG
- if (state->m_dislayer[layer[3]] == 0)
+ if (m_dislayer[layer[3]] == 0)
#endif
- tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[3], 0, 8);
+ tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[3], 0, 8);
{
int primasks[4] = {0,0,0,0};
@@ -568,9 +566,9 @@ SCREEN_UPDATE_IND16( slapshot )
*/
#ifdef MAME_DEBUG
- if (state->m_dislayer[layer[4]] == 0)
+ if (m_dislayer[layer[4]] == 0)
#endif
- tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[4], 0, 0);
+ tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[4], 0, 0);
return 0;
}
diff --git a/src/mame/video/snk.c b/src/mame/video/snk.c
index 93b112b7fa5..e145c06595e 100644
--- a/src/mame/video/snk.c
+++ b/src/mame/video/snk.c
@@ -940,89 +940,84 @@ static void tdfever_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,
/**************************************************************/
-SCREEN_UPDATE_IND16( marvins )
+UINT32 snk_state::screen_update_marvins(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- snk_state *state = screen.machine().driver_data<snk_state>();
- state->m_bg_tilemap->set_scrollx(0, state->m_bg_scrollx);
- state->m_bg_tilemap->set_scrolly(0, state->m_bg_scrolly);
- state->m_fg_tilemap->set_scrollx(0, state->m_fg_scrollx);
- state->m_fg_tilemap->set_scrolly(0, state->m_fg_scrolly);
+ m_bg_tilemap->set_scrollx(0, m_bg_scrollx);
+ m_bg_tilemap->set_scrolly(0, m_bg_scrolly);
+ m_fg_tilemap->set_scrollx(0, m_fg_scrollx);
+ m_fg_tilemap->set_scrolly(0, m_fg_scrolly);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- marvins_draw_sprites(screen.machine(), bitmap, cliprect, state->m_sp16_scrollx, state->m_sp16_scrolly, 0, state->m_sprite_split_point>>2);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
- marvins_draw_sprites(screen.machine(), bitmap, cliprect, state->m_sp16_scrollx, state->m_sp16_scrolly, state->m_sprite_split_point>>2, 25);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ marvins_draw_sprites(screen.machine(), bitmap, cliprect, m_sp16_scrollx, m_sp16_scrolly, 0, m_sprite_split_point>>2);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ marvins_draw_sprites(screen.machine(), bitmap, cliprect, m_sp16_scrollx, m_sp16_scrolly, m_sprite_split_point>>2, 25);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( tnk3 )
+UINT32 snk_state::screen_update_tnk3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- snk_state *state = screen.machine().driver_data<snk_state>();
- state->m_bg_tilemap->set_scrollx(0, state->m_bg_scrollx);
- state->m_bg_tilemap->set_scrolly(0, state->m_bg_scrolly);
+ m_bg_tilemap->set_scrollx(0, m_bg_scrollx);
+ m_bg_tilemap->set_scrolly(0, m_bg_scrolly);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- tnk3_draw_sprites(screen.machine(), bitmap, cliprect, state->m_sp16_scrollx, state->m_sp16_scrolly);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ tnk3_draw_sprites(screen.machine(), bitmap, cliprect, m_sp16_scrollx, m_sp16_scrolly);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( ikari )
+UINT32 snk_state::screen_update_ikari(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- snk_state *state = screen.machine().driver_data<snk_state>();
- state->m_bg_tilemap->set_scrollx(0, state->m_bg_scrollx);
- state->m_bg_tilemap->set_scrolly(0, state->m_bg_scrolly);
+ m_bg_tilemap->set_scrollx(0, m_bg_scrollx);
+ m_bg_tilemap->set_scrolly(0, m_bg_scrolly);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- ikari_draw_sprites(screen.machine(), bitmap, cliprect, 0, state->m_sp16_scrollx, state->m_sp16_scrolly, state->m_spriteram + 0x800, 2 );
- ikari_draw_sprites(screen.machine(), bitmap, cliprect, 0, state->m_sp32_scrollx, state->m_sp32_scrolly, state->m_spriteram, 3 );
- ikari_draw_sprites(screen.machine(), bitmap, cliprect, 25, state->m_sp16_scrollx, state->m_sp16_scrolly, state->m_spriteram + 0x800, 2 );
+ ikari_draw_sprites(screen.machine(), bitmap, cliprect, 0, m_sp16_scrollx, m_sp16_scrolly, m_spriteram + 0x800, 2 );
+ ikari_draw_sprites(screen.machine(), bitmap, cliprect, 0, m_sp32_scrollx, m_sp32_scrolly, m_spriteram, 3 );
+ ikari_draw_sprites(screen.machine(), bitmap, cliprect, 25, m_sp16_scrollx, m_sp16_scrolly, m_spriteram + 0x800, 2 );
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( gwar )
+UINT32 snk_state::screen_update_gwar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- snk_state *state = screen.machine().driver_data<snk_state>();
- state->m_bg_tilemap->set_scrollx(0, state->m_bg_scrollx);
- state->m_bg_tilemap->set_scrolly(0, state->m_bg_scrolly);
+ m_bg_tilemap->set_scrollx(0, m_bg_scrollx);
+ m_bg_tilemap->set_scrolly(0, m_bg_scrolly);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- tdfever_draw_sprites(screen.machine(), bitmap, cliprect, state->m_sp16_scrollx, state->m_sp16_scrolly, state->m_spriteram + 0x800, 2, 0, 0, state->m_sprite_split_point );
- tdfever_draw_sprites(screen.machine(), bitmap, cliprect, state->m_sp32_scrollx, state->m_sp32_scrolly, state->m_spriteram, 3, 0, 0, 32 );
- tdfever_draw_sprites(screen.machine(), bitmap, cliprect, state->m_sp16_scrollx, state->m_sp16_scrolly, state->m_spriteram + 0x800, 2, 0, state->m_sprite_split_point, 64 );
+ tdfever_draw_sprites(screen.machine(), bitmap, cliprect, m_sp16_scrollx, m_sp16_scrolly, m_spriteram + 0x800, 2, 0, 0, m_sprite_split_point );
+ tdfever_draw_sprites(screen.machine(), bitmap, cliprect, m_sp32_scrollx, m_sp32_scrolly, m_spriteram, 3, 0, 0, 32 );
+ tdfever_draw_sprites(screen.machine(), bitmap, cliprect, m_sp16_scrollx, m_sp16_scrolly, m_spriteram + 0x800, 2, 0, m_sprite_split_point, 64 );
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( tdfever )
+UINT32 snk_state::screen_update_tdfever(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- snk_state *state = screen.machine().driver_data<snk_state>();
- state->m_bg_tilemap->set_scrollx(0, state->m_bg_scrollx);
- state->m_bg_tilemap->set_scrolly(0, state->m_bg_scrolly);
+ m_bg_tilemap->set_scrollx(0, m_bg_scrollx);
+ m_bg_tilemap->set_scrolly(0, m_bg_scrolly);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- tdfever_draw_sprites(screen.machine(), bitmap, cliprect, state->m_sp32_scrollx, state->m_sp32_scrolly, state->m_spriteram, 2, 1, 0, 32 );
+ tdfever_draw_sprites(screen.machine(), bitmap, cliprect, m_sp32_scrollx, m_sp32_scrolly, m_spriteram, 2, 1, 0, 32 );
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/snk6502.c b/src/mame/video/snk6502.c
index 50648fc4329..61de77a021a 100644
--- a/src/mame/video/snk6502.c
+++ b/src/mame/video/snk6502.c
@@ -192,12 +192,11 @@ VIDEO_START_MEMBER(snk6502_state,pballoon)
}
-SCREEN_UPDATE_IND16( snk6502 )
+UINT32 snk6502_state::screen_update_snk6502(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- snk6502_state *state = screen.machine().driver_data<snk6502_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/snk68.c b/src/mame/video/snk68.c
index 38dc0b4558f..971584301cc 100644
--- a/src/mame/video/snk68.c
+++ b/src/mame/video/snk68.c
@@ -276,9 +276,8 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
-SCREEN_UPDATE_IND16( pow )
+UINT32 snk68_state::screen_update_pow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- snk68_state *state = screen.machine().driver_data<snk68_state>();
bitmap.fill(0x7ff, cliprect);
@@ -287,6 +286,6 @@ SCREEN_UPDATE_IND16( pow )
draw_sprites(screen.machine(), bitmap, cliprect, 3);
draw_sprites(screen.machine(), bitmap, cliprect, 1);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/snookr10.c b/src/mame/video/snookr10.c
index b11d2dc7ded..e7632adfd1a 100644
--- a/src/mame/video/snookr10.c
+++ b/src/mame/video/snookr10.c
@@ -183,9 +183,8 @@ VIDEO_START_MEMBER(snookr10_state,apple10)
m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(snookr10_state::apple10_get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 4, 8, 128, 30);
}
-SCREEN_UPDATE_IND16( snookr10 )
+UINT32 snookr10_state::screen_update_snookr10(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- snookr10_state *state = screen.machine().driver_data<snookr10_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/solomon.c b/src/mame/video/solomon.c
index 2197ff3b137..5e973ea7470 100644
--- a/src/mame/video/solomon.c
+++ b/src/mame/video/solomon.c
@@ -100,11 +100,10 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( solomon )
+UINT32 solomon_state::screen_update_solomon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- solomon_state *state = screen.machine().driver_data<solomon_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/sonson.c b/src/mame/video/sonson.c
index cb528bbb32d..faa6608cfc0 100644
--- a/src/mame/video/sonson.c
+++ b/src/mame/video/sonson.c
@@ -171,10 +171,9 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( sonson )
+UINT32 sonson_state::screen_update_sonson(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- sonson_state *state = screen.machine().driver_data<sonson_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/spacefb.c b/src/mame/video/spacefb.c
index 559310c88ec..c7d4cdc72c6 100644
--- a/src/mame/video/spacefb.c
+++ b/src/mame/video/spacefb.c
@@ -394,7 +394,7 @@ static void draw_objects(running_machine &machine, bitmap_rgb32 &bitmap, const r
*
*************************************/
-SCREEN_UPDATE_RGB32( spacefb )
+UINT32 spacefb_state::screen_update_spacefb(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
draw_objects(screen.machine(), bitmap, cliprect);
draw_starfield(screen, bitmap, cliprect);
diff --git a/src/mame/video/spbactn.c b/src/mame/video/spbactn.c
index 26852ade003..3790a7ce130 100644
--- a/src/mame/video/spbactn.c
+++ b/src/mame/video/spbactn.c
@@ -114,24 +114,23 @@ void spbactn_state::video_start()
machine().primary_screen->register_screen_bitmap(m_tile_bitmap_fg);
}
-SCREEN_UPDATE_RGB32( spbactn )
+UINT32 spbactn_state::screen_update_spbactn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- spbactn_state *state = screen.machine().driver_data<spbactn_state>();
int offs, sx, sy;
- state->m_tile_bitmap_fg.fill(0, cliprect);
+ m_tile_bitmap_fg.fill(0, cliprect);
/* draw table bg gfx */
for (sx = sy = offs = 0; offs < 0x4000 / 2; offs++)
{
int attr, code, color;
- code = state->m_bgvideoram[offs + 0x4000 / 2];
- attr = state->m_bgvideoram[offs + 0x0000 / 2];
+ code = m_bgvideoram[offs + 0x4000 / 2];
+ attr = m_bgvideoram[offs + 0x0000 / 2];
color = ((attr & 0x00f0) >> 4) | 0x80;
- drawgfx_transpen_raw(state->m_tile_bitmap_bg, cliprect, screen.machine().gfx[1],
+ drawgfx_transpen_raw(m_tile_bitmap_bg, cliprect, screen.machine().gfx[1],
code,
screen.machine().gfx[1]->colorbase() + color * screen.machine().gfx[1]->granularity(),
0, 0,
@@ -146,19 +145,19 @@ SCREEN_UPDATE_RGB32( spbactn )
}
}
- if (draw_sprites(screen.machine(), state->m_tile_bitmap_bg, cliprect, 0))
+ if (draw_sprites(screen.machine(), m_tile_bitmap_bg, cliprect, 0))
{
/* kludge: draw table bg gfx again if priority 0 sprites are enabled */
for (sx = sy = offs = 0; offs < 0x4000 / 2; offs++)
{
int attr, code, color;
- code = state->m_bgvideoram[offs + 0x4000 / 2];
- attr = state->m_bgvideoram[offs + 0x0000 / 2];
+ code = m_bgvideoram[offs + 0x4000 / 2];
+ attr = m_bgvideoram[offs + 0x0000 / 2];
color = ((attr & 0x00f0) >> 4) | 0x80;
- drawgfx_transpen_raw(state->m_tile_bitmap_bg, cliprect, screen.machine().gfx[1],
+ drawgfx_transpen_raw(m_tile_bitmap_bg, cliprect, screen.machine().gfx[1],
code,
screen.machine().gfx[1]->colorbase() + color * screen.machine().gfx[1]->granularity(),
0, 0,
@@ -174,15 +173,15 @@ SCREEN_UPDATE_RGB32( spbactn )
}
}
- draw_sprites(screen.machine(), state->m_tile_bitmap_bg, cliprect, 1);
+ draw_sprites(screen.machine(), m_tile_bitmap_bg, cliprect, 1);
/* draw table fg gfx */
for (sx = sy = offs = 0; offs < 0x4000 / 2; offs++)
{
int attr, code, color;
- code = state->m_fgvideoram[offs + 0x4000 / 2];
- attr = state->m_fgvideoram[offs + 0x0000 / 2];
+ code = m_fgvideoram[offs + 0x4000 / 2];
+ attr = m_fgvideoram[offs + 0x0000 / 2];
color = ((attr & 0x00f0) >> 4);
@@ -192,7 +191,7 @@ SCREEN_UPDATE_RGB32( spbactn )
else
color |= 0x0080;
- drawgfx_transpen_raw(state->m_tile_bitmap_fg, cliprect, screen.machine().gfx[0],
+ drawgfx_transpen_raw(m_tile_bitmap_fg, cliprect, screen.machine().gfx[0],
code,
screen.machine().gfx[0]->colorbase() + color * screen.machine().gfx[0]->granularity(),
0, 0,
@@ -207,10 +206,10 @@ SCREEN_UPDATE_RGB32( spbactn )
}
}
- draw_sprites(screen.machine(), state->m_tile_bitmap_fg, cliprect, 2);
- draw_sprites(screen.machine(), state->m_tile_bitmap_fg, cliprect, 3);
+ draw_sprites(screen.machine(), m_tile_bitmap_fg, cliprect, 2);
+ draw_sprites(screen.machine(), m_tile_bitmap_fg, cliprect, 3);
/* mix & blend the tilemaps and sprites into a 32-bit bitmap */
- blendbitmaps(screen.machine(), bitmap, state->m_tile_bitmap_bg, state->m_tile_bitmap_fg, cliprect);
+ blendbitmaps(screen.machine(), bitmap, m_tile_bitmap_bg, m_tile_bitmap_fg, cliprect);
return 0;
}
diff --git a/src/mame/video/spcforce.c b/src/mame/video/spcforce.c
index 17833416fd6..4421ef81fb9 100644
--- a/src/mame/video/spcforce.c
+++ b/src/mame/video/spcforce.c
@@ -16,11 +16,10 @@ WRITE8_MEMBER(spcforce_state::spcforce_flip_screen_w)
}
-SCREEN_UPDATE_IND16( spcforce )
+UINT32 spcforce_state::screen_update_spcforce(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- spcforce_state *state = screen.machine().driver_data<spcforce_state>();
int offs;
- int flip = state->flip_screen();
+ int flip = flip_screen();
/* draw the characters as sprites because they could be overlapping */
bitmap.fill(0, cliprect);
@@ -28,11 +27,11 @@ SCREEN_UPDATE_IND16( spcforce )
{
int code,sx,sy,col;
- sy = 8 * (offs / 32) - (state->m_scrollram[offs] & 0x0f);
- sx = 8 * (offs % 32) + ((state->m_scrollram[offs] >> 4) & 0x0f);
+ sy = 8 * (offs / 32) - (m_scrollram[offs] & 0x0f);
+ sx = 8 * (offs % 32) + ((m_scrollram[offs] >> 4) & 0x0f);
- code = state->m_videoram[offs] + ((state->m_colorram[offs] & 0x01) << 8);
- col = (~state->m_colorram[offs] >> 4) & 0x07;
+ code = m_videoram[offs] + ((m_colorram[offs] & 0x01) << 8);
+ col = (~m_colorram[offs] >> 4) & 0x07;
if (flip)
{
diff --git a/src/mame/video/spdodgeb.c b/src/mame/video/spdodgeb.c
index 90668196c26..baf5c44afa8 100644
--- a/src/mame/video/spdodgeb.c
+++ b/src/mame/video/spdodgeb.c
@@ -204,11 +204,10 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
#undef DRAW_SPRITE
-SCREEN_UPDATE_IND16( spdodgeb )
+UINT32 spdodgeb_state::screen_update_spdodgeb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- spdodgeb_state *state = screen.machine().driver_data<spdodgeb_state>();
- state->m_bg_tilemap->set_scrollx(0,state->m_lastscroll+5);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->set_scrollx(0,m_lastscroll+5);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect);
return 0;
}
diff --git a/src/mame/video/speedatk.c b/src/mame/video/speedatk.c
index ac4529b52bb..af7b4ee1054 100644
--- a/src/mame/video/speedatk.c
+++ b/src/mame/video/speedatk.c
@@ -85,9 +85,8 @@ WRITE8_MEMBER(speedatk_state::speedatk_6845_w)
}
}
-SCREEN_UPDATE_IND16( speedatk )
+UINT32 speedatk_state::screen_update_speedatk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- speedatk_state *state = screen.machine().driver_data<speedatk_state>();
int x,y;
int count;
UINT16 tile;
@@ -95,21 +94,21 @@ SCREEN_UPDATE_IND16( speedatk )
bitmap.fill(0, cliprect);
- count = (state->m_crtc_vreg[0x0c]<<8)|(state->m_crtc_vreg[0x0d] & 0xff);
+ count = (m_crtc_vreg[0x0c]<<8)|(m_crtc_vreg[0x0d] & 0xff);
- if(state->m_flip_scr) { count = 0x3ff - count; }
+ if(m_flip_scr) { count = 0x3ff - count; }
- for(y=0;y<state->m_crtc_vreg[6];y++)
+ for(y=0;y<m_crtc_vreg[6];y++)
{
- for(x=0;x<state->m_crtc_vreg[1];x++)
+ for(x=0;x<m_crtc_vreg[1];x++)
{
- tile = state->m_videoram[count] + ((state->m_colorram[count] & 0xe0) << 3);
- color = state->m_colorram[count] & 0x1f;
- region = (state->m_colorram[count] & 0x10) >> 4;
+ tile = m_videoram[count] + ((m_colorram[count] & 0xe0) << 3);
+ color = m_colorram[count] & 0x1f;
+ region = (m_colorram[count] & 0x10) >> 4;
- drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[region],tile,color,state->m_flip_scr,state->m_flip_scr,x*8,y*8);
+ drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[region],tile,color,m_flip_scr,m_flip_scr,x*8,y*8);
- count = (state->m_flip_scr) ? count-1 : count+1;
+ count = (m_flip_scr) ? count-1 : count+1;
count&=0x3ff;
}
}
diff --git a/src/mame/video/speedbal.c b/src/mame/video/speedbal.c
index ca110a1781d..3335723a7c2 100644
--- a/src/mame/video/speedbal.c
+++ b/src/mame/video/speedbal.c
@@ -122,13 +122,12 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
* *
*************************************/
-SCREEN_UPDATE_IND16( speedbal )
+UINT32 speedbal_state::screen_update_speedbal(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- speedbal_state *state = screen.machine().driver_data<speedbal_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
return 0;
}
diff --git a/src/mame/video/speedspn.c b/src/mame/video/speedspn.c
index 0ff4501e245..5f99475d895 100644
--- a/src/mame/video/speedspn.c
+++ b/src/mame/video/speedspn.c
@@ -86,10 +86,9 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
-SCREEN_UPDATE_IND16(speedspn)
+UINT32 speedspn_state::screen_update_speedspn(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- speedspn_state *state = screen.machine().driver_data<speedspn_state>();
- if (state->m_display_disable)
+ if (m_display_disable)
{
bitmap.fill(get_black_pen(screen.machine()), cliprect);
return 0;
@@ -99,12 +98,12 @@ SCREEN_UPDATE_IND16(speedspn)
{
FILE* f;
f = fopen("vidram.bin","wb");
- fwrite(state->m_vidram, 1, 0x1000 * 2, f);
+ fwrite(m_vidram, 1, 0x1000 * 2, f);
fclose(f);
}
#endif
- state->m_tilemap->set_scrollx(0, 0x100); // verify
- state->m_tilemap->draw(bitmap, cliprect, 0,0);
+ m_tilemap->set_scrollx(0, 0x100); // verify
+ m_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect);
return 0;
}
diff --git a/src/mame/video/splash.c b/src/mame/video/splash.c
index 5aa25d7bf5b..a1049be24e2 100644
--- a/src/mame/video/splash.c
+++ b/src/mame/video/splash.c
@@ -254,35 +254,33 @@ static void funystrp_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap
***************************************************************************/
-SCREEN_UPDATE_IND16( splash )
+UINT32 splash_state::screen_update_splash(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- splash_state *state = screen.machine().driver_data<splash_state>();
/* set scroll registers */
- state->m_bg_tilemap[0]->set_scrolly(0, state->m_vregs[0]);
- state->m_bg_tilemap[1]->set_scrolly(0, state->m_vregs[1]);
+ m_bg_tilemap[0]->set_scrolly(0, m_vregs[0]);
+ m_bg_tilemap[1]->set_scrolly(0, m_vregs[1]);
draw_bitmap(screen.machine(), bitmap, cliprect);
- state->m_bg_tilemap[1]->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap[1]->draw(bitmap, cliprect, 0, 0);
splash_draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_bg_tilemap[0]->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap[0]->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( funystrp )
+UINT32 splash_state::screen_update_funystrp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- splash_state *state = screen.machine().driver_data<splash_state>();
/* set scroll registers */
- state->m_bg_tilemap[0]->set_scrolly(0, state->m_vregs[0]);
- state->m_bg_tilemap[1]->set_scrolly(0, state->m_vregs[1]);
+ m_bg_tilemap[0]->set_scrolly(0, m_vregs[0]);
+ m_bg_tilemap[1]->set_scrolly(0, m_vregs[1]);
draw_bitmap(screen.machine(), bitmap, cliprect);
- state->m_bg_tilemap[1]->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap[1]->draw(bitmap, cliprect, 0, 0);
/*Sprite chip is similar but not the same*/
funystrp_draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_bg_tilemap[0]->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap[0]->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/sprcros2.c b/src/mame/video/sprcros2.c
index 5e579981f42..5c3bda86a66 100644
--- a/src/mame/video/sprcros2.c
+++ b/src/mame/video/sprcros2.c
@@ -188,12 +188,11 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re
}
}
-SCREEN_UPDATE_IND16( sprcros2 )
+UINT32 sprcros2_state::screen_update_sprcros2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- sprcros2_state *state = screen.machine().driver_data<sprcros2_state>();
- state->m_bgtilemap->draw(bitmap, cliprect, 0, 0);
+ m_bgtilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fgtilemap->draw(bitmap, cliprect, 0, 0);
+ m_fgtilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/sprint2.c b/src/mame/video/sprint2.c
index 1c3885742f7..a26d5f67adf 100644
--- a/src/mame/video/sprint2.c
+++ b/src/mame/video/sprint2.c
@@ -114,13 +114,12 @@ INLINE int get_sprite_y(UINT8 *video_ram, int n)
}
-SCREEN_UPDATE_IND16( sprint2 )
+UINT32 sprint2_state::screen_update_sprint2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- sprint2_state *state = screen.machine().driver_data<sprint2_state>();
- UINT8 *video_ram = state->m_video_ram;
+ UINT8 *video_ram = m_video_ram;
int i;
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
/* draw the sprites */
@@ -137,13 +136,12 @@ SCREEN_UPDATE_IND16( sprint2 )
}
-SCREEN_VBLANK( sprint2 )
+void sprint2_state::screen_eof_sprint2(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- sprint2_state *state = screen.machine().driver_data<sprint2_state>();
- UINT8 *video_ram = state->m_video_ram;
+ UINT8 *video_ram = m_video_ram;
int i;
int j;
const rectangle &visarea = screen.machine().primary_screen->visible_area();
@@ -151,8 +149,8 @@ SCREEN_VBLANK( sprint2 )
/*
* Collisions are detected for both player cars:
*
- * D7 => state->m_collision w/ white playfield
- * D6 => state->m_collision w/ black playfield or another car
+ * D7 => m_collision w/ white playfield
+ * D6 => m_collision w/ black playfield or another car
*
*/
@@ -169,23 +167,23 @@ SCREEN_VBLANK( sprint2 )
/* check for sprite-tilemap collisions */
- state->m_bg_tilemap->draw(state->m_helper, rect, 0, 0);
+ m_bg_tilemap->draw(m_helper, rect, 0, 0);
- drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1],
+ drawgfx_transpen(m_helper, rect, screen.machine().gfx[1],
get_sprite_code(video_ram, i),
0,
0, 0,
get_sprite_x(video_ram, i),
get_sprite_y(video_ram, i), 1);
- state->m_collision[i] |= collision_check(state, screen.machine().colortable, rect);
+ m_collision[i] |= collision_check(this, screen.machine().colortable, rect);
/* check for sprite-sprite collisions */
for (j = 0; j < 4; j++)
if (j != i)
{
- drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1],
+ drawgfx_transpen(m_helper, rect, screen.machine().gfx[1],
get_sprite_code(video_ram, j),
1,
0, 0,
@@ -193,14 +191,14 @@ SCREEN_VBLANK( sprint2 )
get_sprite_y(video_ram, j), 0);
}
- drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1],
+ drawgfx_transpen(m_helper, rect, screen.machine().gfx[1],
get_sprite_code(video_ram, i),
0,
0, 0,
get_sprite_x(video_ram, i),
get_sprite_y(video_ram, i), 1);
- state->m_collision[i] |= collision_check(state, screen.machine().colortable, rect);
+ m_collision[i] |= collision_check(this, screen.machine().colortable, rect);
}
}
}
diff --git a/src/mame/video/sprint4.c b/src/mame/video/sprint4.c
index fe9d98a8999..368f26cc670 100644
--- a/src/mame/video/sprint4.c
+++ b/src/mame/video/sprint4.c
@@ -55,13 +55,12 @@ void sprint4_state::video_start()
}
-SCREEN_UPDATE_IND16( sprint4 )
+UINT32 sprint4_state::screen_update_sprint4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- sprint4_state *state = screen.machine().driver_data<sprint4_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
int i;
- state->m_playfield->draw(bitmap, cliprect, 0, 0);
+ m_playfield->draw(bitmap, cliprect, 0, 0);
for (i = 0; i < 4; i++)
{
@@ -86,13 +85,12 @@ SCREEN_UPDATE_IND16( sprint4 )
}
-SCREEN_VBLANK( sprint4 )
+void sprint4_state::screen_eof_sprint4(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- sprint4_state *state = screen.machine().driver_data<sprint4_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
int i;
/* check for sprite-playfield collisions */
@@ -119,12 +117,12 @@ SCREEN_VBLANK( sprint4 )
rect &= screen.machine().primary_screen->visible_area();
- state->m_playfield->draw(state->m_helper, rect, 0, 0);
+ m_playfield->draw(m_helper, rect, 0, 0);
if (i & 1)
bank = 32;
- drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1],
+ drawgfx_transpen(m_helper, rect, screen.machine().gfx[1],
(code >> 3) | bank,
4,
0, 0,
@@ -133,8 +131,8 @@ SCREEN_VBLANK( sprint4 )
for (y = rect.min_y; y <= rect.max_y; y++)
for (x = rect.min_x; x <= rect.max_x; x++)
- if (colortable_entry_get_value(screen.machine().colortable, state->m_helper.pix16(y, x)) != 0)
- state->m_collision[i] = 1;
+ if (colortable_entry_get_value(screen.machine().colortable, m_helper.pix16(y, x)) != 0)
+ m_collision[i] = 1;
}
/* update sound status */
diff --git a/src/mame/video/sprint8.c b/src/mame/video/sprint8.c
index a5a31392637..7d826305695 100644
--- a/src/mame/video/sprint8.c
+++ b/src/mame/video/sprint8.c
@@ -154,36 +154,34 @@ static TIMER_CALLBACK( sprint8_collision_callback )
}
-SCREEN_UPDATE_IND16( sprint8 )
+UINT32 sprint8_state::screen_update_sprint8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- sprint8_state *state = screen.machine().driver_data<sprint8_state>();
- set_pens(state, screen.machine().colortable);
- state->m_tilemap1->draw(bitmap, cliprect, 0, 0);
+ set_pens(this, screen.machine().colortable);
+ m_tilemap1->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
-SCREEN_VBLANK( sprint8 )
+void sprint8_state::screen_eof_sprint8(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- sprint8_state *state = screen.machine().driver_data<sprint8_state>();
int x;
int y;
const rectangle &visarea = screen.machine().primary_screen->visible_area();
- state->m_tilemap2->draw(state->m_helper2, visarea, 0, 0);
+ m_tilemap2->draw(m_helper2, visarea, 0, 0);
- state->m_helper1.fill(0x20, visarea);
+ m_helper1.fill(0x20, visarea);
- draw_sprites(screen.machine(), state->m_helper1, visarea);
+ draw_sprites(screen.machine(), m_helper1, visarea);
for (y = visarea.min_y; y <= visarea.max_y; y++)
{
- const UINT16* p1 = &state->m_helper1.pix16(y);
- const UINT16* p2 = &state->m_helper2.pix16(y);
+ const UINT16* p1 = &m_helper1.pix16(y);
+ const UINT16* p2 = &m_helper2.pix16(y);
for (x = visarea.min_x; x <= visarea.max_x; x++)
if (p1[x] != 0x20 && p2[x] == 0x23)
diff --git a/src/mame/video/spy.c b/src/mame/video/spy.c
index 2fa4792046d..d20931d27bf 100644
--- a/src/mame/video/spy.c
+++ b/src/mame/video/spy.c
@@ -61,22 +61,21 @@ void spy_state::video_start()
***************************************************************************/
-SCREEN_UPDATE_IND16( spy )
+UINT32 spy_state::screen_update_spy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- spy_state *state = screen.machine().driver_data<spy_state>();
- k052109_tilemap_update(state->m_k052109);
+ k052109_tilemap_update(m_k052109);
screen.machine().priority_bitmap.fill(0, cliprect);
- if (!state->m_video_enable)
- bitmap.fill(16 * state->m_layer_colorbase[0], cliprect);
+ if (!m_video_enable)
+ bitmap.fill(16 * m_layer_colorbase[0], cliprect);
else
{
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 1);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, 0, 2);
- k051960_sprites_draw(state->m_k051960, bitmap, cliprect, -1, -1);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, 0, 0);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 1);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, 0, 2);
+ k051960_sprites_draw(m_k051960, bitmap, cliprect, -1, -1);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, 0, 0);
}
return 0;
diff --git a/src/mame/video/srmp2.c b/src/mame/video/srmp2.c
index a6dfb346604..d8edeee4681 100644
--- a/src/mame/video/srmp2.c
+++ b/src/mame/video/srmp2.c
@@ -52,14 +52,13 @@ int srmp3_gfxbank_callback( running_machine &machine, UINT16 code, UINT8 color )
}
-SCREEN_UPDATE_IND16( srmp2 )
+UINT32 srmp2_state::screen_update_srmp2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- srmp2_state *state = screen.machine().driver_data<srmp2_state>();
bitmap.fill(0x1ff, cliprect);
screen.machine().device<seta001_device>("spritegen")->set_transpen(15);
- screen.machine().device<seta001_device>("spritegen")->set_colorbase((state->m_color_bank)?0x20:0x00);
+ screen.machine().device<seta001_device>("spritegen")->set_colorbase((m_color_bank)?0x20:0x00);
screen.machine().device<seta001_device>("spritegen")->set_fg_xoffsets( 0x10, 0x10 );
screen.machine().device<seta001_device>("spritegen")->set_fg_yoffsets( 0x05, 0x07 );
@@ -70,9 +69,8 @@ SCREEN_UPDATE_IND16( srmp2 )
return 0;
}
-SCREEN_UPDATE_IND16( srmp3 )
+UINT32 srmp2_state::screen_update_srmp3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- //srmp2_state *state = screen.machine().driver_data<srmp2_state>();
bitmap.fill(0x1f0, cliprect);
screen.machine().device<seta001_device>("spritegen")->set_fg_xoffsets( 0x10, 0x10 );
@@ -86,9 +84,8 @@ SCREEN_UPDATE_IND16( srmp3 )
return 0;
}
-SCREEN_UPDATE_IND16( mjyuugi )
+UINT32 srmp2_state::screen_update_mjyuugi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- //srmp2_state *state = screen.machine().driver_data<srmp2_state>();
bitmap.fill(0x1f0, cliprect);
screen.machine().device<seta001_device>("spritegen")->set_fg_xoffsets( 0x10, 0x10 );
diff --git a/src/mame/video/srumbler.c b/src/mame/video/srumbler.c
index 567bb417912..5c49a6083ef 100644
--- a/src/mame/video/srumbler.c
+++ b/src/mame/video/srumbler.c
@@ -155,12 +155,11 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
-SCREEN_UPDATE_IND16( srumbler )
+UINT32 srumbler_state::screen_update_srumbler(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- srumbler_state *state = screen.machine().driver_data<srumbler_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1,0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1,0);
draw_sprites(screen.machine(), bitmap,cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0,0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0,0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/video/sshangha.c b/src/mame/video/sshangha.c
index 0782b2e933a..cac4abb913a 100644
--- a/src/mame/video/sshangha.c
+++ b/src/mame/video/sshangha.c
@@ -28,35 +28,34 @@ void sshangha_state::video_start()
/******************************************************************************/
-SCREEN_UPDATE_RGB32( sshangha )
+UINT32 sshangha_state::screen_update_sshangha(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- sshangha_state *state = screen.machine().driver_data<sshangha_state>();
- screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x800, true);
+ screen.machine().device<decospr_device>("spritegen1")->draw_sprites(bitmap, cliprect, m_spriteram, 0x800, true);
// I'm pretty sure only the original has the 2nd spriteram, used for the Japanese text on the 2nd scene (non-scrolling text) in the intro of the quest (3rd in JPN) mode
- if (state->m_spriteram2 != NULL)
- screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, state->m_spriteram2, 0x800, true);
+ if (m_spriteram2 != NULL)
+ screen.machine().device<decospr_device>("spritegen2")->draw_sprites(bitmap, cliprect, m_spriteram2, 0x800, true);
- screen.machine().tilemap().set_flip_all(state->flip_screen_x() ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
+ screen.machine().tilemap().set_flip_all(flip_screen_x() ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
+ deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
/* the tilemap 4bpp + 4bpp = 8bpp mixing actually seems external to the tilemap, note video_control is not part of the tilemap chip */
- if ((state->m_video_control&4)==0) {
- deco16ic_tilemap_12_combine_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0, 1);
+ if ((m_video_control&4)==0) {
+ deco16ic_tilemap_12_combine_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0, 1);
screen.machine().device<decospr_device>("spritegen1")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0200, 0x0200, 0x100, 0x1ff);
}
else {
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
screen.machine().device<decospr_device>("spritegen1")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0200, 0x0200, 0x100, 0x1ff);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
}
- if (state->m_spriteram2 != NULL)
+ if (m_spriteram2 != NULL)
screen.machine().device<decospr_device>("spritegen2")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0000, 0, 0x1ff);
screen.machine().device<decospr_device>("spritegen1")->inefficient_copy_sprite_bitmap(bitmap, cliprect, 0x0000, 0x0200, 0, 0x1ff);
diff --git a/src/mame/video/sslam.c b/src/mame/video/sslam.c
index 865ebb6a9a7..2771bb372f3 100644
--- a/src/mame/video/sslam.c
+++ b/src/mame/video/sslam.c
@@ -181,60 +181,58 @@ VIDEO_START_MEMBER(sslam_state,powerbls)
save_item(NAME(m_sprites_x_offset));
}
-SCREEN_UPDATE_IND16(sslam)
+UINT32 sslam_state::screen_update_sslam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- sslam_state *state = screen.machine().driver_data<sslam_state>();
- if (!(state->m_regs[6] & 1))
+ if (!(m_regs[6] & 1))
{
bitmap.fill(get_black_pen(screen.machine()), cliprect);
return 0;
}
- state->m_tx_tilemap->set_scrollx(0, state->m_regs[0]+1); /* +0 looks better, but the real board has the left most pixel at the left edge shifted off screen */
- state->m_tx_tilemap->set_scrolly(0, (state->m_regs[1] & 0xff)+8);
- state->m_md_tilemap->set_scrollx(0, state->m_regs[2]+2);
- state->m_md_tilemap->set_scrolly(0, state->m_regs[3]+8);
- state->m_bg_tilemap->set_scrollx(0, state->m_regs[4]+4);
- state->m_bg_tilemap->set_scrolly(0, state->m_regs[5]+8);
+ m_tx_tilemap->set_scrollx(0, m_regs[0]+1); /* +0 looks better, but the real board has the left most pixel at the left edge shifted off screen */
+ m_tx_tilemap->set_scrolly(0, (m_regs[1] & 0xff)+8);
+ m_md_tilemap->set_scrollx(0, m_regs[2]+2);
+ m_md_tilemap->set_scrolly(0, m_regs[3]+8);
+ m_bg_tilemap->set_scrollx(0, m_regs[4]+4);
+ m_bg_tilemap->set_scrolly(0, m_regs[5]+8);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
/* remove wraparound from the tilemap (used on title screen) */
- if (state->m_regs[2]+2 > 0x8c8)
+ if (m_regs[2]+2 > 0x8c8)
{
rectangle md_clip;
md_clip.min_x = cliprect.min_x;
- md_clip.max_x = cliprect.max_x - (state->m_regs[2]+2 - 0x8c8);
+ md_clip.max_x = cliprect.max_x - (m_regs[2]+2 - 0x8c8);
md_clip.min_y = cliprect.min_y;
md_clip.max_y = cliprect.max_y;
- state->m_md_tilemap->draw(bitmap, md_clip, 0,0);
+ m_md_tilemap->draw(bitmap, md_clip, 0,0);
}
else
{
- state->m_md_tilemap->draw(bitmap, cliprect, 0,0);
+ m_md_tilemap->draw(bitmap, cliprect, 0,0);
}
draw_sprites(screen.machine(), bitmap,cliprect);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
-SCREEN_UPDATE_IND16(powerbls)
+UINT32 sslam_state::screen_update_powerbls(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- sslam_state *state = screen.machine().driver_data<sslam_state>();
- if (!(state->m_regs[6] & 1))
+ if (!(m_regs[6] & 1))
{
bitmap.fill(get_black_pen(screen.machine()), cliprect);
return 0;
}
- state->m_bg_tilemap->set_scrollx(0, state->m_regs[0]+21);
- state->m_bg_tilemap->set_scrolly(0, state->m_regs[1]-240);
+ m_bg_tilemap->set_scrollx(0, m_regs[0]+21);
+ m_bg_tilemap->set_scrolly(0, m_regs[1]-240);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect);
return 0;
}
diff --git a/src/mame/video/ssozumo.c b/src/mame/video/ssozumo.c
index 1401d09fa5e..22260c6e62f 100644
--- a/src/mame/video/ssozumo.c
+++ b/src/mame/video/ssozumo.c
@@ -176,12 +176,11 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( ssozumo )
+UINT32 ssozumo_state::screen_update_ssozumo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ssozumo_state *state = screen.machine().driver_data<ssozumo_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/sspeedr.c b/src/mame/video/sspeedr.c
index 24c784dcf8a..df9fdd4370c 100644
--- a/src/mame/video/sspeedr.c
+++ b/src/mame/video/sspeedr.c
@@ -245,7 +245,7 @@ void sspeedr_state::video_start()
}
-SCREEN_UPDATE_IND16( sspeedr )
+UINT32 sspeedr_state::screen_update_sspeedr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
draw_track(screen.machine(), bitmap);
draw_drones(screen.machine(), bitmap, cliprect);
@@ -254,12 +254,11 @@ SCREEN_UPDATE_IND16( sspeedr )
}
-SCREEN_VBLANK( sspeedr )
+void sspeedr_state::screen_eof_sspeedr(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- sspeedr_state *state = screen.machine().driver_data<sspeedr_state>();
- state->m_toggle ^= 1;
+ m_toggle ^= 1;
}
}
diff --git a/src/mame/video/ssrj.c b/src/mame/video/ssrj.c
index 4b58d3daa4c..040f1bb8652 100644
--- a/src/mame/video/ssrj.c
+++ b/src/mame/video/ssrj.c
@@ -273,27 +273,25 @@ void ssrj_state::palette_init()
palette_set_color_rgb(machine(), i*8+j, fakecols[i][j][0], fakecols[i][j][1], fakecols[i][j][2]);
}
-SCREEN_UPDATE_IND16( ssrj )
+UINT32 ssrj_state::screen_update_ssrj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ssrj_state *state = screen.machine().driver_data<ssrj_state>();
- state->m_tilemap1->set_scrollx(0, 0xff-state->m_scrollram[2] );
- state->m_tilemap1->set_scrolly(0, state->m_scrollram[0] );
- state->m_tilemap1->draw(bitmap, cliprect, 0, 0);
+ m_tilemap1->set_scrollx(0, 0xff-m_scrollram[2] );
+ m_tilemap1->set_scrolly(0, m_scrollram[0] );
+ m_tilemap1->draw(bitmap, cliprect, 0, 0);
draw_objects(screen.machine(), bitmap, cliprect);
- state->m_tilemap2->draw(bitmap, cliprect, 0, 0);
+ m_tilemap2->draw(bitmap, cliprect, 0, 0);
- if (state->m_scrollram[0x101] == 0xb) state->m_tilemap4->draw(bitmap, cliprect, 0, 0);/* hack to display 4th tilemap */
+ if (m_scrollram[0x101] == 0xb) m_tilemap4->draw(bitmap, cliprect, 0, 0);/* hack to display 4th tilemap */
return 0;
}
-SCREEN_VBLANK( ssrj )
+void ssrj_state::screen_eof_ssrj(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- ssrj_state *state = screen.machine().driver_data<ssrj_state>();
- memcpy(state->m_buffer_spriteram, state->m_scrollram, 0x800);
+ memcpy(m_buffer_spriteram, m_scrollram, 0x800);
}
}
diff --git a/src/mame/video/ssv.c b/src/mame/video/ssv.c
index 7425e999920..2015c87e0a9 100644
--- a/src/mame/video/ssv.c
+++ b/src/mame/video/ssv.c
@@ -970,23 +970,22 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
***************************************************************************/
-SCREEN_UPDATE_IND16( eaglshot )
+UINT32 ssv_state::screen_update_eaglshot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- return SCREEN_UPDATE16_CALL(ssv);
+ return SCREEN_UPDATE16_CALL_MEMBER(ssv);
}
-SCREEN_UPDATE_IND16( gdfs )
+UINT32 ssv_state::screen_update_gdfs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ssv_state *state = screen.machine().driver_data<ssv_state>();
- SCREEN_UPDATE16_CALL(ssv);
+ SCREEN_UPDATE16_CALL_MEMBER(ssv);
// draw zooming sprites
- state->m_gdfs_st0020->st0020_draw_all(screen.machine(), bitmap, cliprect);
+ m_gdfs_st0020->st0020_draw_all(screen.machine(), bitmap, cliprect);
- state->m_gdfs_tmap->set_scrollx(0, state->m_gdfs_tmapscroll[0x0c/2]);
- state->m_gdfs_tmap->set_scrolly(0, state->m_gdfs_tmapscroll[0x10/2]);
- state->m_gdfs_tmap->draw(bitmap, cliprect, 0, 0);
+ m_gdfs_tmap->set_scrollx(0, m_gdfs_tmapscroll[0x0c/2]);
+ m_gdfs_tmap->set_scrolly(0, m_gdfs_tmapscroll[0x10/2]);
+ m_gdfs_tmap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -998,33 +997,32 @@ void ssv_enable_video(running_machine &machine, int enable)
state->m_enable_video = enable;
}
-SCREEN_UPDATE_IND16( ssv )
+UINT32 ssv_state::screen_update_ssv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
rectangle clip;
- ssv_state *state = screen.machine().driver_data<ssv_state>();
// Shadow
- if (state->m_scroll[0x76/2] & 0x0080)
+ if (m_scroll[0x76/2] & 0x0080)
{
// 4 bit shadows (mslider, stmblade)
- state->m_shadow_pen_shift = 15-4;
+ m_shadow_pen_shift = 15-4;
}
else
{
// 2 bit shadows
- state->m_shadow_pen_shift = 15-2;
+ m_shadow_pen_shift = 15-2;
}
- state->m_shadow_pen_mask = (1 << state->m_shadow_pen_shift) - 1;
+ m_shadow_pen_mask = (1 << m_shadow_pen_shift) - 1;
/* The background color is the first one in the palette */
bitmap.fill(0, cliprect);
// used by twineag2 and ultrax
- clip.min_x = (cliprect.max_x / 2 + state->m_scroll[0x62/2]) * 2 - state->m_scroll[0x64/2] * 2 + 2;
- clip.max_x = (cliprect.max_x / 2 + state->m_scroll[0x62/2]) * 2 - state->m_scroll[0x62/2] * 2 + 1;
- clip.min_y = (cliprect.max_y + state->m_scroll[0x6a/2]) - state->m_scroll[0x6c/2] + 1;
- clip.max_y = (cliprect.max_y + state->m_scroll[0x6a/2]) - state->m_scroll[0x6a/2] ;
+ clip.min_x = (cliprect.max_x / 2 + m_scroll[0x62/2]) * 2 - m_scroll[0x64/2] * 2 + 2;
+ clip.max_x = (cliprect.max_x / 2 + m_scroll[0x62/2]) * 2 - m_scroll[0x62/2] * 2 + 1;
+ clip.min_y = (cliprect.max_y + m_scroll[0x6a/2]) - m_scroll[0x6c/2] + 1;
+ clip.max_y = (cliprect.max_y + m_scroll[0x6a/2]) - m_scroll[0x6a/2] ;
// printf("%04x %04x %04x %04x\n",clip.min_x, clip.max_x, clip.min_y, clip.max_y);
@@ -1038,7 +1036,7 @@ SCREEN_UPDATE_IND16( ssv )
if (clip.min_y > clip.max_y)
clip.min_y = clip.max_y;
- if (!state->m_enable_video)
+ if (!m_enable_video)
return 0;
draw_layer(screen.machine(), bitmap, clip, 0); // "background layer"
diff --git a/src/mame/video/st0016.c b/src/mame/video/st0016.c
index e4400c5ae81..3f6dcc0b895 100644
--- a/src/mame/video/st0016.c
+++ b/src/mame/video/st0016.c
@@ -584,14 +584,14 @@ static void draw_bgmap(running_machine &machine, bitmap_ind16 &bitmap,const rect
}
-void st0016_draw_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
+void st0016_state::st0016_draw_screen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
draw_bgmap(screen.machine(), bitmap,cliprect,0);
draw_sprites(screen.machine(), bitmap,cliprect);
draw_bgmap(screen.machine(), bitmap,cliprect,1);
}
-SCREEN_UPDATE_IND16( st0016 )
+UINT32 st0016_state::screen_update_st0016(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
#ifdef MAME_DEBUG
diff --git a/src/mame/video/stactics.c b/src/mame/video/stactics.c
index 38dca203948..70a733298f7 100644
--- a/src/mame/video/stactics.c
+++ b/src/mame/video/stactics.c
@@ -381,15 +381,14 @@ VIDEO_START_MEMBER(stactics_state,stactics)
*
*************************************/
-static SCREEN_UPDATE_IND16( stactics )
+UINT32 stactics_state::screen_update_stactics(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- stactics_state *state = screen.machine().driver_data<stactics_state>();
- update_beam(state);
- draw_background(state, bitmap, cliprect);
- update_artwork(screen.machine(), state);
+ update_beam(this);
+ draw_background(this, bitmap, cliprect);
+ update_artwork(screen.machine(), this);
- state->m_frame_count = (state->m_frame_count + 1) & 0x0f;
+ m_frame_count = (m_frame_count + 1) & 0x0f;
return 0;
}
@@ -411,7 +410,7 @@ MACHINE_CONFIG_FRAGMENT( stactics_video )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(stactics)
+ MCFG_SCREEN_UPDATE_DRIVER(stactics_state, screen_update_stactics)
MCFG_PALETTE_LENGTH(0x400)
diff --git a/src/mame/video/stadhero.c b/src/mame/video/stadhero.c
index ed7144d1f63..c06807795bc 100644
--- a/src/mame/video/stadhero.c
+++ b/src/mame/video/stadhero.c
@@ -19,15 +19,14 @@
/******************************************************************************/
-SCREEN_UPDATE_IND16( stadhero )
+UINT32 stadhero_state::screen_update_stadhero(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- stadhero_state *state = screen.machine().driver_data<stadhero_state>();
-// screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
+// screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
screen.machine().device<deco_bac06_device>("tilegen1")->set_bppmultmask(0x8, 0x7);
screen.machine().device<deco_bac06_device>("tilegen1")->deco_bac06_pf_draw(screen.machine(),bitmap,cliprect,TILEMAP_DRAW_OPAQUE, 0x00, 0x00, 0x00, 0x00);
- screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram, 0x00, 0x00, 0x0f);
- state->m_pf1_tilemap->draw(bitmap, cliprect, 0,0);
+ screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram, 0x00, 0x00, 0x0f);
+ m_pf1_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/video/starcrus.c b/src/mame/video/starcrus.c
index 94c06a49d56..c3ad051bfbc 100644
--- a/src/mame/video/starcrus.c
+++ b/src/mame/video/starcrus.c
@@ -400,77 +400,76 @@ static int collision_check_s2p1p2(running_machine &machine)
return 0;
}
-SCREEN_UPDATE_IND16( starcrus )
+UINT32 starcrus_state::screen_update_starcrus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- starcrus_state *state = screen.machine().driver_data<starcrus_state>();
bitmap.fill(0, cliprect);
/* Draw ship 1 */
drawgfx_transpen(bitmap,
cliprect,
- screen.machine().gfx[8+((state->m_s1_sprite&0x04)>>2)],
- (state->m_s1_sprite&0x03)^0x03,
+ screen.machine().gfx[8+((m_s1_sprite&0x04)>>2)],
+ (m_s1_sprite&0x03)^0x03,
0,
- (state->m_s1_sprite&0x08)>>3, (state->m_s1_sprite&0x10)>>4,
- state->m_s1_x, state->m_s1_y,
+ (m_s1_sprite&0x08)>>3, (m_s1_sprite&0x10)>>4,
+ m_s1_x, m_s1_y,
0);
/* Draw ship 2 */
drawgfx_transpen(bitmap,
cliprect,
- screen.machine().gfx[10+((state->m_s2_sprite&0x04)>>2)],
- (state->m_s2_sprite&0x03)^0x03,
+ screen.machine().gfx[10+((m_s2_sprite&0x04)>>2)],
+ (m_s2_sprite&0x03)^0x03,
0,
- (state->m_s2_sprite&0x08)>>3, (state->m_s2_sprite&0x10)>>4,
- state->m_s2_x, state->m_s2_y,
+ (m_s2_sprite&0x08)>>3, (m_s2_sprite&0x10)>>4,
+ m_s2_x, m_s2_y,
0);
/* Draw score/projectile 1 */
drawgfx_transpen(bitmap,
cliprect,
- screen.machine().gfx[(state->m_p1_sprite&0x0c)>>2],
- (state->m_p1_sprite&0x03)^0x03,
+ screen.machine().gfx[(m_p1_sprite&0x0c)>>2],
+ (m_p1_sprite&0x03)^0x03,
0,
0,0,
- state->m_p1_x, state->m_p1_y,
+ m_p1_x, m_p1_y,
0);
/* Draw score/projectile 2 */
drawgfx_transpen(bitmap,
cliprect,
- screen.machine().gfx[4+((state->m_p2_sprite&0x0c)>>2)],
- (state->m_p2_sprite&0x03)^0x03,
+ screen.machine().gfx[4+((m_p2_sprite&0x0c)>>2)],
+ (m_p2_sprite&0x03)^0x03,
0,
0,0,
- state->m_p2_x, state->m_p2_y,
+ m_p2_x, m_p2_y,
0);
/* Collision detection */
if (cliprect.max_y == screen.visible_area().max_y)
{
- state->m_collision_reg = 0x00;
+ m_collision_reg = 0x00;
/* Check for collisions between ship1 and ship2 */
if (collision_check_s1s2(screen.machine()))
{
- state->m_collision_reg |= 0x08;
+ m_collision_reg |= 0x08;
}
/* Check for collisions between ship1 and projectiles */
if (collision_check_s1p1p2(screen.machine()))
{
- state->m_collision_reg |= 0x02;
+ m_collision_reg |= 0x02;
}
/* Check for collisions between ship1 and projectiles */
if (collision_check_s2p1p2(screen.machine()))
{
- state->m_collision_reg |= 0x01;
+ m_collision_reg |= 0x01;
}
/* Check for collisions between ship1 and projectiles */
/* Note: I don't think this is used by the game */
if (collision_check_p1p2(screen.machine()))
{
- state->m_collision_reg |= 0x04;
+ m_collision_reg |= 0x04;
}
}
diff --git a/src/mame/video/starfire.c b/src/mame/video/starfire.c
index 7f0c67fee95..6366d361464 100644
--- a/src/mame/video/starfire.c
+++ b/src/mame/video/starfire.c
@@ -263,10 +263,9 @@ static TIMER_CALLBACK( starfire_scanline_callback )
state->m_scanline_timer->adjust(machine.primary_screen->time_until_pos(y), y);
}
-SCREEN_UPDATE_RGB32( starfire )
+UINT32 starfire_state::screen_update_starfire(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- starfire_state *state = screen.machine().driver_data<starfire_state>();
- copybitmap(bitmap, state->m_starfire_screen, 0, 0, 0, 0, cliprect);
+ copybitmap(bitmap, m_starfire_screen, 0, 0, 0, 0, cliprect);
return 0;
}
diff --git a/src/mame/video/starshp1.c b/src/mame/video/starshp1.c
index e3e21201cf5..fdb35ba1c69 100644
--- a/src/mame/video/starshp1.c
+++ b/src/mame/video/starshp1.c
@@ -350,67 +350,65 @@ static int circle_collision(starshp1_state *state, const rectangle &rect)
}
-SCREEN_UPDATE_IND16( starshp1 )
+UINT32 starshp1_state::screen_update_starshp1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- starshp1_state *state = screen.machine().driver_data<starshp1_state>();
- set_pens(state, screen.machine().colortable);
+ set_pens(this, screen.machine().colortable);
bitmap.fill(0, cliprect);
- if (state->m_starfield_kill == 0)
- draw_starfield(state, bitmap);
+ if (m_starfield_kill == 0)
+ draw_starfield(this, bitmap);
draw_sprites(screen.machine(), bitmap, cliprect);
- if (state->m_circle_kill == 0 && state->m_circle_mod != 0)
+ if (m_circle_kill == 0 && m_circle_mod != 0)
draw_circle(screen.machine(), bitmap);
- if (state->m_attract == 0)
+ if (m_attract == 0)
draw_spaceship(screen.machine(), bitmap, cliprect);
- if (state->m_circle_kill == 0 && state->m_circle_mod == 0)
+ if (m_circle_kill == 0 && m_circle_mod == 0)
draw_circle(screen.machine(), bitmap);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- if (state->m_phasor != 0)
- draw_phasor(state, bitmap);
+ if (m_phasor != 0)
+ draw_phasor(this, bitmap);
return 0;
}
-SCREEN_VBLANK( starshp1 )
+void starshp1_state::screen_eof_starshp1(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- starshp1_state *state = screen.machine().driver_data<starshp1_state>();
rectangle rect;
const rectangle &visarea = screen.machine().primary_screen->visible_area();
- rect.min_x = get_sprite_hpos(state, 13);
- rect.min_y = get_sprite_vpos(state, 13);
+ rect.min_x = get_sprite_hpos(this, 13);
+ rect.min_y = get_sprite_vpos(this, 13);
rect.max_x = rect.min_x + screen.machine().gfx[1]->width() - 1;
rect.max_y = rect.min_y + screen.machine().gfx[1]->height() - 1;
- rect &= state->m_helper.cliprect();
+ rect &= m_helper.cliprect();
- state->m_helper.fill(0, visarea);
+ m_helper.fill(0, visarea);
- if (state->m_attract == 0)
- draw_spaceship(screen.machine(), state->m_helper, visarea);
+ if (m_attract == 0)
+ draw_spaceship(screen.machine(), m_helper, visarea);
- if (circle_collision(state, visarea))
- state->m_collision_latch |= 1;
+ if (circle_collision(this, visarea))
+ m_collision_latch |= 1;
- if (circle_collision(state, rect))
- state->m_collision_latch |= 2;
+ if (circle_collision(this, rect))
+ m_collision_latch |= 2;
- if (spaceship_collision(screen.machine(), state->m_helper, rect))
- state->m_collision_latch |= 4;
+ if (spaceship_collision(screen.machine(), m_helper, rect))
+ m_collision_latch |= 4;
- if (spaceship_collision(screen.machine(), state->m_helper, visarea))
- state->m_collision_latch |= 8;
+ if (spaceship_collision(screen.machine(), m_helper, visarea))
+ m_collision_latch |= 8;
}
}
diff --git a/src/mame/video/stfight.c b/src/mame/video/stfight.c
index e9d91595806..79b5d022258 100644
--- a/src/mame/video/stfight.c
+++ b/src/mame/video/stfight.c
@@ -288,21 +288,20 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
-SCREEN_UPDATE_IND16( stfight )
+UINT32 stfight_state::screen_update_stfight(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- stfight_state *state = screen.machine().driver_data<stfight_state>();
set_pens(screen.machine());
screen.machine().priority_bitmap.fill(0, cliprect);
- bitmap.fill(0, cliprect); /* in case state->m_bg_tilemap is disabled */
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,1);
+ bitmap.fill(0, cliprect); /* in case m_bg_tilemap is disabled */
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0,1);
/* Draw sprites (may be obscured by foreground layer) */
- if (state->m_vh_latch_ram[0x07] & 0x40)
+ if (m_vh_latch_ram[0x07] & 0x40)
draw_sprites(screen.machine(), bitmap,cliprect);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/video/stlforce.c b/src/mame/video/stlforce.c
index febac73db54..6cfd6bc0605 100644
--- a/src/mame/video/stlforce.c
+++ b/src/mame/video/stlforce.c
@@ -123,56 +123,55 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( stlforce )
+UINT32 stlforce_state::screen_update_stlforce(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- stlforce_state *state = screen.machine().driver_data<stlforce_state>();
int i;
- if (state->m_vidattrram[6] & 1)
+ if (m_vidattrram[6] & 1)
{
for(i=0;i<256;i++)
- state->m_bg_tilemap->set_scrollx(i, state->m_bg_scrollram[i]+9); //+9 for twinbrat
+ m_bg_tilemap->set_scrollx(i, m_bg_scrollram[i]+9); //+9 for twinbrat
}
else
{
for(i=0;i<256;i++)
- state->m_bg_tilemap->set_scrollx(i, state->m_bg_scrollram[0]+9); //+9 for twinbrat
+ m_bg_tilemap->set_scrollx(i, m_bg_scrollram[0]+9); //+9 for twinbrat
}
- if (state->m_vidattrram[6] & 4)
+ if (m_vidattrram[6] & 4)
{
for(i=0;i<256;i++)
- state->m_mlow_tilemap->set_scrollx(i, state->m_mlow_scrollram[i]+8);
+ m_mlow_tilemap->set_scrollx(i, m_mlow_scrollram[i]+8);
}
else
{
for(i=0;i<256;i++)
- state->m_mlow_tilemap->set_scrollx(i, state->m_mlow_scrollram[0]+8);
+ m_mlow_tilemap->set_scrollx(i, m_mlow_scrollram[0]+8);
}
- if (state->m_vidattrram[6] & 0x10)
+ if (m_vidattrram[6] & 0x10)
{
for(i=0;i<256;i++)
- state->m_mhigh_tilemap->set_scrollx(i, state->m_mhigh_scrollram[i]+8);
+ m_mhigh_tilemap->set_scrollx(i, m_mhigh_scrollram[i]+8);
}
else
{
for(i=0;i<256;i++)
- state->m_mhigh_tilemap->set_scrollx(i, state->m_mhigh_scrollram[0]+8);
+ m_mhigh_tilemap->set_scrollx(i, m_mhigh_scrollram[0]+8);
}
- state->m_bg_tilemap->set_scrolly(0, state->m_vidattrram[1]);
- state->m_mlow_tilemap->set_scrolly(0, state->m_vidattrram[2]);
- state->m_mhigh_tilemap->set_scrolly(0, state->m_vidattrram[3]);
+ m_bg_tilemap->set_scrolly(0, m_vidattrram[1]);
+ m_mlow_tilemap->set_scrolly(0, m_vidattrram[2]);
+ m_mhigh_tilemap->set_scrolly(0, m_vidattrram[3]);
- state->m_tx_tilemap->set_scrollx(0, state->m_vidattrram[0]+8);
- state->m_tx_tilemap->set_scrolly(0,state->m_vidattrram[4]);
+ m_tx_tilemap->set_scrollx(0, m_vidattrram[0]+8);
+ m_tx_tilemap->set_scrolly(0,m_vidattrram[4]);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_mlow_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_mhigh_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_mlow_tilemap->draw(bitmap, cliprect, 0,0);
+ m_mhigh_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/video/strnskil.c b/src/mame/video/strnskil.c
index 4d1fe13bd11..13fbf5d6b31 100644
--- a/src/mame/video/strnskil.c
+++ b/src/mame/video/strnskil.c
@@ -120,29 +120,28 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( strnskil )
+UINT32 strnskil_state::screen_update_strnskil(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- strnskil_state *state = screen.machine().driver_data<strnskil_state>();
int row;
- const UINT8 *usr1 = state->memregion("user1")->base();
+ const UINT8 *usr1 = memregion("user1")->base();
for (row = 0; row < 32; row++)
{
- if (state->m_scrl_ctrl != 0x07)
+ if (m_scrl_ctrl != 0x07)
{
- switch (usr1[state->m_scrl_ctrl * 32 + row])
+ switch (usr1[m_scrl_ctrl * 32 + row])
{
case 2:
- state->m_bg_tilemap->set_scrollx(row, -~state->m_xscroll[1]);
+ m_bg_tilemap->set_scrollx(row, -~m_xscroll[1]);
break;
case 4:
- state->m_bg_tilemap->set_scrollx(row, -~state->m_xscroll[0]);
+ m_bg_tilemap->set_scrollx(row, -~m_xscroll[0]);
break;
}
}
}
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/stvvdp2.c b/src/mame/video/stvvdp2.c
index 7f02561d88e..33590f99fea 100644
--- a/src/mame/video/stvvdp2.c
+++ b/src/mame/video/stvvdp2.c
@@ -6636,13 +6636,13 @@ static void draw_sprites(running_machine &machine, bitmap_rgb32 &bitmap, const r
stv_sprite_priorities_usage_valid = 1;
}
-SCREEN_UPDATE_RGB32( stv_vdp2 )
+UINT32 saturn_state::screen_update_stv_vdp2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
saturn_state *state = screen.machine().driver_data<saturn_state>();
stv_vdp2_fade_effects(screen.machine());
- stv_vdp2_draw_back(screen.machine(), state->m_tmpbitmap,cliprect);
+ stv_vdp2_draw_back(screen.machine(), m_tmpbitmap,cliprect);
#if DEBUG_MODE
if(screen.machine().input().code_pressed_once(KEYCODE_T))
@@ -6688,12 +6688,12 @@ SCREEN_UPDATE_RGB32( stv_vdp2 )
/*If a plane has a priority value of zero it isn't shown at all.*/
for(pri=1;pri<8;pri++)
{
- if (vdpdebug.l_en & 1) { if(pri==STV_VDP2_N3PRIN) stv_vdp2_draw_NBG3(screen.machine(), state->m_tmpbitmap,cliprect); }
- if (vdpdebug.l_en & 2) { if(pri==STV_VDP2_N2PRIN) stv_vdp2_draw_NBG2(screen.machine(), state->m_tmpbitmap,cliprect); }
- if (vdpdebug.l_en & 4) { if(pri==STV_VDP2_N1PRIN) stv_vdp2_draw_NBG1(screen.machine(), state->m_tmpbitmap,cliprect); }
- if (vdpdebug.l_en & 8) { if(pri==STV_VDP2_N0PRIN) stv_vdp2_draw_NBG0(screen.machine(), state->m_tmpbitmap,cliprect); }
- if (vdpdebug.l_en & 0x10) { if(pri==STV_VDP2_R0PRIN) stv_vdp2_draw_RBG0(screen.machine(), state->m_tmpbitmap,cliprect); }
- if (vdpdebug.l_en & 0x20) { draw_sprites(screen.machine(),state->m_tmpbitmap,cliprect,pri); }
+ if (vdpdebug.l_en & 1) { if(pri==STV_VDP2_N3PRIN) stv_vdp2_draw_NBG3(screen.machine(), m_tmpbitmap,cliprect); }
+ if (vdpdebug.l_en & 2) { if(pri==STV_VDP2_N2PRIN) stv_vdp2_draw_NBG2(screen.machine(), m_tmpbitmap,cliprect); }
+ if (vdpdebug.l_en & 4) { if(pri==STV_VDP2_N1PRIN) stv_vdp2_draw_NBG1(screen.machine(), m_tmpbitmap,cliprect); }
+ if (vdpdebug.l_en & 8) { if(pri==STV_VDP2_N0PRIN) stv_vdp2_draw_NBG0(screen.machine(), m_tmpbitmap,cliprect); }
+ if (vdpdebug.l_en & 0x10) { if(pri==STV_VDP2_R0PRIN) stv_vdp2_draw_RBG0(screen.machine(), m_tmpbitmap,cliprect); }
+ if (vdpdebug.l_en & 0x20) { draw_sprites(screen.machine(),m_tmpbitmap,cliprect,pri); }
}
}
@@ -6755,7 +6755,7 @@ SCREEN_UPDATE_RGB32( stv_vdp2 )
fp=fopen("mamevdp1", "w+b");
if (fp)
{
- fwrite(state->m_vdp1_vram, 0x80000, 1, fp);
+ fwrite(m_vdp1_vram, 0x80000, 1, fp);
fclose(fp);
}
}
@@ -6767,14 +6767,14 @@ SCREEN_UPDATE_RGB32( stv_vdp2 )
fp=fopen("vdp1_vram.bin", "r+b");
if (fp)
{
- fread(state->m_vdp1_vram, 0x80000, 1, fp);
+ fread(m_vdp1_vram, 0x80000, 1, fp);
fclose(fp);
}
}
#endif
- copybitmap(bitmap, state->m_tmpbitmap, 0, 0, 0, 0, cliprect);
+ copybitmap(bitmap, m_tmpbitmap, 0, 0, 0, 0, cliprect);
return 0;
}
@@ -7188,7 +7188,7 @@ static void vdp2_palette_entry(running_machine &machine, int *r, int *g, int *b,
}
}
-SCREEN_UPDATE_RGB32( saturn )
+UINT32 saturn_state::screen_update_saturn(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
saturn_state *state = screen.machine().driver_data<saturn_state>();
static UINT8 disclaimer;
diff --git a/src/mame/video/subs.c b/src/mame/video/subs.c
index 37b37f657cf..9220b4e8ba2 100644
--- a/src/mame/video/subs.c
+++ b/src/mame/video/subs.c
@@ -37,11 +37,10 @@ WRITE8_MEMBER(subs_state::subs_invert2_w)
}
-SCREEN_UPDATE_IND16( subs_left )
+UINT32 subs_state::screen_update_subs_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- subs_state *state = screen.machine().driver_data<subs_state>();
- UINT8 *videoram = state->m_videoram;
- UINT8 *spriteram = state->m_spriteram;
+ UINT8 *videoram = m_videoram;
+ UINT8 *spriteram = m_spriteram;
int offs;
device_t *discrete = screen.machine().device("discrete");
@@ -120,11 +119,10 @@ SCREEN_UPDATE_IND16( subs_left )
return 0;
}
-SCREEN_UPDATE_IND16( subs_right )
+UINT32 subs_state::screen_update_subs_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- subs_state *state = screen.machine().driver_data<subs_state>();
- UINT8 *videoram = state->m_videoram;
- UINT8 *spriteram = state->m_spriteram;
+ UINT8 *videoram = m_videoram;
+ UINT8 *spriteram = m_spriteram;
int offs;
/* for every character in the Video RAM, check if it has been modified */
diff --git a/src/mame/video/suna16.c b/src/mame/video/suna16.c
index be42e0b7018..26a44b87ab0 100644
--- a/src/mame/video/suna16.c
+++ b/src/mame/video/suna16.c
@@ -217,19 +217,17 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
***************************************************************************/
-SCREEN_UPDATE_IND16( suna16 )
+UINT32 suna16_state::screen_update_suna16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- suna16_state *state = screen.machine().driver_data<suna16_state>();
/* Suna Quiz indicates the background is the last pen */
bitmap.fill(0xff, cliprect);
- draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram, 0);
+ draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram, 0);
return 0;
}
-SCREEN_UPDATE_IND16( bestbest )
+UINT32 suna16_state::screen_update_bestbest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- suna16_state *state = screen.machine().driver_data<suna16_state>();
int layers_ctrl = -1;
#ifdef MAME_DEBUG
@@ -243,7 +241,7 @@ if (screen.machine().input().code_pressed(KEYCODE_Z))
/* Suna Quiz indicates the background is the last pen */
bitmap.fill(0xff, cliprect);
- if (layers_ctrl & 1) draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram, 0);
- if (layers_ctrl & 2) draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram2, 1);
+ if (layers_ctrl & 1) draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram, 0);
+ if (layers_ctrl & 2) draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram2, 1);
return 0;
}
diff --git a/src/mame/video/suna8.c b/src/mame/video/suna8.c
index 9f62694ea61..c54c17a988a 100644
--- a/src/mame/video/suna8.c
+++ b/src/mame/video/suna8.c
@@ -427,7 +427,7 @@ static void draw_text_sprites(running_machine &machine, bitmap_ind16 &bitmap,con
***************************************************************************/
-SCREEN_UPDATE_IND16( suna8 )
+UINT32 suna8_state::screen_update_suna8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
/* see hardhead, hardhea2 test mode (press button 2 for both players) */
bitmap.fill(0xff, cliprect);
@@ -436,28 +436,27 @@ SCREEN_UPDATE_IND16( suna8 )
#if TILEMAPS
if (screen.machine().input().code_pressed(KEYCODE_Z) || screen.machine().input().code_pressed(KEYCODE_X))
{
- suna8_state *state = screen.machine().driver_data<suna8_state>();
- int max_tiles = state->memregion("gfx1")->bytes() / (0x400 * 0x20);
-
- if (screen.machine().input().code_pressed_once(KEYCODE_Q)) { state->m_page--; screen.machine().tilemap().mark_all_dirty(); }
- if (screen.machine().input().code_pressed_once(KEYCODE_W)) { state->m_page++; screen.machine().tilemap().mark_all_dirty(); }
- if (screen.machine().input().code_pressed_once(KEYCODE_E)) { state->m_tiles--; screen.machine().tilemap().mark_all_dirty(); }
- if (screen.machine().input().code_pressed_once(KEYCODE_R)) { state->m_tiles++; screen.machine().tilemap().mark_all_dirty(); }
- if (screen.machine().input().code_pressed_once(KEYCODE_A)) { state->m_trombank--; screen.machine().tilemap().mark_all_dirty(); }
- if (screen.machine().input().code_pressed_once(KEYCODE_S)) { state->m_trombank++; screen.machine().tilemap().mark_all_dirty(); }
-
- state->m_rombank &= 0xf;
- state->m_page &= (state->m_text_dim > 0)?3:7;
- state->m_tiles %= max_tiles;
- if (state->m_tiles < 0) state->m_tiles += max_tiles;
-
- state->m_bg_tilemap->set_scrollx(0, 0x100 * state->m_page);
- state->m_bg_tilemap->set_scrolly(0, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ int max_tiles = memregion("gfx1")->bytes() / (0x400 * 0x20);
+
+ if (screen.machine().input().code_pressed_once(KEYCODE_Q)) { m_page--; screen.machine().tilemap().mark_all_dirty(); }
+ if (screen.machine().input().code_pressed_once(KEYCODE_W)) { m_page++; screen.machine().tilemap().mark_all_dirty(); }
+ if (screen.machine().input().code_pressed_once(KEYCODE_E)) { m_tiles--; screen.machine().tilemap().mark_all_dirty(); }
+ if (screen.machine().input().code_pressed_once(KEYCODE_R)) { m_tiles++; screen.machine().tilemap().mark_all_dirty(); }
+ if (screen.machine().input().code_pressed_once(KEYCODE_A)) { m_trombank--; screen.machine().tilemap().mark_all_dirty(); }
+ if (screen.machine().input().code_pressed_once(KEYCODE_S)) { m_trombank++; screen.machine().tilemap().mark_all_dirty(); }
+
+ m_rombank &= 0xf;
+ m_page &= (m_text_dim > 0)?3:7;
+ m_tiles %= max_tiles;
+ if (m_tiles < 0) m_tiles += max_tiles;
+
+ m_bg_tilemap->set_scrollx(0, 0x100 * m_page);
+ m_bg_tilemap->set_scrolly(0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
#if 1
popmessage("%02X %02X %02X - p%2X g%02X r%02X",
- state->m_rombank, state->m_palettebank, state->m_spritebank,
- state->m_page, state->m_tiles, state->m_trombank);
+ m_rombank, m_palettebank, m_spritebank,
+ m_page, m_tiles, m_trombank);
#endif
}
else
diff --git a/src/mame/video/supbtime.c b/src/mame/video/supbtime.c
index ce425717ca3..bca89067024 100644
--- a/src/mame/video/supbtime.c
+++ b/src/mame/video/supbtime.c
@@ -21,19 +21,18 @@ End sequence uses rowscroll '98 c0' on pf1 (jmp to 1d61a on supbtimj)
/******************************************************************************/
-SCREEN_UPDATE_IND16(supbtime)
+UINT32 supbtime_state::screen_update_supbtime(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- supbtime_state *state = screen.machine().driver_data<supbtime_state>();
address_space &space = screen.machine().driver_data()->generic_space();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
+ UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
- state->flip_screen_set(BIT(flip, 7));
- deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
+ flip_screen_set(BIT(flip, 7));
+ deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
bitmap.fill(768, cliprect);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
- screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
+ deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/superchs.c b/src/mame/video/superchs.c
index 0173c78779e..4824e4730bd 100644
--- a/src/mame/video/superchs.c
+++ b/src/mame/video/superchs.c
@@ -198,7 +198,7 @@ logerror("Sprite number %04x had %02x invalid chunks\n",tilenum,bad_chunks);
SCREEN REFRESH
**************************************************************/
-SCREEN_UPDATE_IND16( superchs )
+UINT32 superchs_state::screen_update_superchs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
device_t *tc0480scp = screen.machine().device("tc0480scp");
UINT8 layer[5];
diff --git a/src/mame/video/superqix.c b/src/mame/video/superqix.c
index 992004c2381..9b83a89b10f 100644
--- a/src/mame/video/superqix.c
+++ b/src/mame/video/superqix.c
@@ -216,21 +216,19 @@ static void superqix_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap
}
}
-SCREEN_UPDATE_IND16( pbillian )
+UINT32 superqix_state::screen_update_pbillian(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- superqix_state *state = screen.machine().driver_data<superqix_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
pbillian_draw_sprites(screen.machine(), bitmap,cliprect);
return 0;
}
-SCREEN_UPDATE_IND16( superqix )
+UINT32 superqix_state::screen_update_superqix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- superqix_state *state = screen.machine().driver_data<superqix_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
- copybitmap_trans(bitmap,*state->m_fg_bitmap[state->m_show_bitmap],state->flip_screen(),state->flip_screen(),0,0,cliprect,0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
+ copybitmap_trans(bitmap,*m_fg_bitmap[m_show_bitmap],flip_screen(),flip_screen(),0,0,cliprect,0);
superqix_draw_sprites(screen.machine(), bitmap,cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
return 0;
}
diff --git a/src/mame/video/suprloco.c b/src/mame/video/suprloco.c
index f5b12ac10ea..85191895b87 100644
--- a/src/mame/video/suprloco.c
+++ b/src/mame/video/suprloco.c
@@ -259,11 +259,10 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( suprloco )
+UINT32 suprloco_state::screen_update_suprloco(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- suprloco_state *state = screen.machine().driver_data<suprloco_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(),bitmap,cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 1,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 1,0);
return 0;
}
diff --git a/src/mame/video/suprnova.c b/src/mame/video/suprnova.c
index 24ba6d8a651..fb81c0d6cba 100644
--- a/src/mame/video/suprnova.c
+++ b/src/mame/video/suprnova.c
@@ -444,31 +444,30 @@ static void supernova_draw_b( running_machine &machine, bitmap_ind16 &bitmap, bi
}
}
-SCREEN_UPDATE_RGB32(skns)
+UINT32 skns_state::screen_update_skns(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- skns_state *state = screen.machine().driver_data<skns_state>();
palette_update(screen.machine());
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- state->m_tilemap_bitmap_lower.fill(0);
- state->m_tilemap_bitmapflags_lower.fill(0);
- state->m_tilemap_bitmap_higher.fill(0);
- state->m_tilemap_bitmapflags_higher.fill(0);
+ m_tilemap_bitmap_lower.fill(0);
+ m_tilemap_bitmapflags_lower.fill(0);
+ m_tilemap_bitmap_higher.fill(0);
+ m_tilemap_bitmapflags_higher.fill(0);
{
int supernova_pri_a;
int supernova_pri_b;
int tran = 0;
- supernova_pri_a = (state->m_v3_regs[0x10/4] & 0x0002)>>1;
- supernova_pri_b = (state->m_v3_regs[0x34/4] & 0x0002)>>1;
+ supernova_pri_a = (m_v3_regs[0x10/4] & 0x0002)>>1;
+ supernova_pri_b = (m_v3_regs[0x34/4] & 0x0002)>>1;
//popmessage("pri %d %d\n", supernova_pri_a, supernova_pri_b);
/*if (!supernova_pri_b) { */
- supernova_draw_b(screen.machine(), state->m_tilemap_bitmap_lower, state->m_tilemap_bitmapflags_lower, cliprect,tran);// tran = 1;
- supernova_draw_a(screen.machine(), state->m_tilemap_bitmap_higher,state->m_tilemap_bitmapflags_higher,cliprect,tran);// tran = 1;
+ supernova_draw_b(screen.machine(), m_tilemap_bitmap_lower, m_tilemap_bitmapflags_lower, cliprect,tran);// tran = 1;
+ supernova_draw_a(screen.machine(), m_tilemap_bitmap_higher,m_tilemap_bitmapflags_higher,cliprect,tran);// tran = 1;
{
int x,y;
@@ -483,13 +482,13 @@ SCREEN_UPDATE_RGB32(skns)
for (y=0;y<240;y++)
{
- src = &state->m_tilemap_bitmap_lower.pix16(y);
- srcflags = &state->m_tilemap_bitmapflags_lower.pix8(y);
+ src = &m_tilemap_bitmap_lower.pix16(y);
+ srcflags = &m_tilemap_bitmapflags_lower.pix8(y);
- src2 = &state->m_tilemap_bitmap_higher.pix16(y);
- src2flags = &state->m_tilemap_bitmapflags_higher.pix8(y);
+ src2 = &m_tilemap_bitmap_higher.pix16(y);
+ src2flags = &m_tilemap_bitmapflags_higher.pix8(y);
- src3 = &state->m_sprite_bitmap.pix16(y);
+ src3 = &m_sprite_bitmap.pix16(y);
dst = &bitmap.pix32(y);
@@ -558,7 +557,7 @@ SCREEN_UPDATE_RGB32(skns)
if (pendata3&0xff)
{
- UINT16 palvalue = state->m_palette_ram[pendata3];
+ UINT16 palvalue = m_palette_ram[pendata3];
coldat = clut[pendata3];
@@ -578,9 +577,9 @@ SCREEN_UPDATE_RGB32(skns)
g2 = (dstcolour & 0x0000ff00)>> 8;
b2 = (dstcolour & 0x00ff0000)>> 16;
- r2 = (r2 * state->m_bright_spc_r_trans) >> 8;
- g2 = (g2 * state->m_bright_spc_g_trans) >> 8;
- b2 = (b2 * state->m_bright_spc_b_trans) >> 8;
+ r2 = (r2 * m_bright_spc_r_trans) >> 8;
+ g2 = (g2 * m_bright_spc_g_trans) >> 8;
+ b2 = (b2 * m_bright_spc_b_trans) >> 8;
r = (r+r2);
if (r>255) r = 255;
@@ -619,16 +618,16 @@ SCREEN_UPDATE_RGB32(skns)
}
}
- state->m_sprite_bitmap.fill(0x0000, cliprect);
+ m_sprite_bitmap.fill(0x0000, cliprect);
- if (state->m_alt_enable_sprites)
- state->m_spritegen->skns_draw_sprites(screen.machine(), state->m_sprite_bitmap, cliprect, state->m_spriteram, state->m_spriteram.bytes(), screen.machine().root_device().memregion("gfx1")->base(), screen.machine().root_device().memregion ("gfx1")->bytes(), state->m_spc_regs );
+ if (m_alt_enable_sprites)
+ m_spritegen->skns_draw_sprites(screen.machine(), m_sprite_bitmap, cliprect, m_spriteram, m_spriteram.bytes(), screen.machine().root_device().memregion("gfx1")->base(), screen.machine().root_device().memregion ("gfx1")->bytes(), m_spc_regs );
return 0;
}
-SCREEN_VBLANK(skns)
+void skns_state::screen_eof_skns(screen_device &screen, bool state)
{
}
diff --git a/src/mame/video/suprridr.c b/src/mame/video/suprridr.c
index 3e1793c6c30..f400156657d 100644
--- a/src/mame/video/suprridr.c
+++ b/src/mame/video/suprridr.c
@@ -157,35 +157,34 @@ WRITE8_MEMBER(suprridr_state::suprridr_fgram_w)
*
*************************************/
-SCREEN_UPDATE_IND16( suprridr )
+UINT32 suprridr_state::screen_update_suprridr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- suprridr_state *state = screen.machine().driver_data<suprridr_state>();
- UINT8 *spriteram = state->m_spriteram;
+ UINT8 *spriteram = m_spriteram;
rectangle subclip;
int i;
const rectangle &visarea = screen.visible_area();
/* render left 4 columns with no scroll */
subclip = visarea;;
- subclip.max_x = subclip.min_x + (state->m_flipx ? 1*8 : 4*8) - 1;
+ subclip.max_x = subclip.min_x + (m_flipx ? 1*8 : 4*8) - 1;
subclip &= cliprect;
- state->m_bg_tilemap_noscroll->draw(bitmap, subclip, 0, 0);
+ m_bg_tilemap_noscroll->draw(bitmap, subclip, 0, 0);
/* render right 1 column with no scroll */
subclip = visarea;;
- subclip.min_x = subclip.max_x - (state->m_flipx ? 4*8 : 1*8) + 1;
+ subclip.min_x = subclip.max_x - (m_flipx ? 4*8 : 1*8) + 1;
subclip &= cliprect;
- state->m_bg_tilemap_noscroll->draw(bitmap, subclip, 0, 0);
+ m_bg_tilemap_noscroll->draw(bitmap, subclip, 0, 0);
/* render the middle columns normally */
subclip = visarea;;
- subclip.min_x += state->m_flipx ? 1*8 : 4*8;
- subclip.max_x -= state->m_flipx ? 4*8 : 1*8;
+ subclip.min_x += m_flipx ? 1*8 : 4*8;
+ subclip.max_x -= m_flipx ? 4*8 : 1*8;
subclip &= cliprect;
- state->m_bg_tilemap->draw(bitmap, subclip, 0, 0);
+ m_bg_tilemap->draw(bitmap, subclip, 0, 0);
/* render the top layer */
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
/* draw the sprites */
for (i = 0; i < 48; i++)
@@ -197,12 +196,12 @@ SCREEN_UPDATE_IND16( suprridr )
int x = spriteram[i*4+3];
int y = 240 - spriteram[i*4+0];
- if (state->m_flipx)
+ if (m_flipx)
{
fx = !fx;
x = 240 - x;
}
- if (state->m_flipy)
+ if (m_flipy)
{
fy = !fy;
y = 240 - y;
diff --git a/src/mame/video/suprslam.c b/src/mame/video/suprslam.c
index 66d7511e020..3f1d1a8c7cb 100644
--- a/src/mame/video/suprslam.c
+++ b/src/mame/video/suprslam.c
@@ -147,17 +147,16 @@ void suprslam_state::video_start()
m_screen_tilemap->set_transparent_pen(15);
}
-SCREEN_UPDATE_IND16( suprslam )
+UINT32 suprslam_state::screen_update_suprslam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- suprslam_state *state = screen.machine().driver_data<suprslam_state>();
- state->m_screen_tilemap->set_scrollx(0, state->m_screen_vregs[0x04/2] );
+ m_screen_tilemap->set_scrollx(0, m_screen_vregs[0x04/2] );
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- k053936_zoom_draw(state->m_k053936, bitmap, cliprect, state->m_bg_tilemap, 0, 0, 1);
- if(!(state->m_spr_ctrl[0] & 8))
+ k053936_zoom_draw(m_k053936, bitmap, cliprect, m_bg_tilemap, 0, 0, 1);
+ if(!(m_spr_ctrl[0] & 8))
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_screen_tilemap->draw(bitmap, cliprect, 0, 0);
- if(state->m_spr_ctrl[0] & 8)
+ m_screen_tilemap->draw(bitmap, cliprect, 0, 0);
+ if(m_spr_ctrl[0] & 8)
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/surpratk.c b/src/mame/video/surpratk.c
index 076605edb43..0f66510e9df 100644
--- a/src/mame/video/surpratk.c
+++ b/src/mame/video/surpratk.c
@@ -46,34 +46,33 @@ void surpratk_sprite_callback( running_machine &machine, int *code, int *color,
***************************************************************************/
-SCREEN_UPDATE_IND16( surpratk )
+UINT32 surpratk_state::screen_update_surpratk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- surpratk_state *state = screen.machine().driver_data<surpratk_state>();
int layer[3], bg_colorbase;
- bg_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI0);
- state->m_sprite_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI1);
- state->m_layer_colorbase[0] = k053251_get_palette_index(state->m_k053251, K053251_CI2);
- state->m_layer_colorbase[1] = k053251_get_palette_index(state->m_k053251, K053251_CI4);
- state->m_layer_colorbase[2] = k053251_get_palette_index(state->m_k053251, K053251_CI3);
+ bg_colorbase = k053251_get_palette_index(m_k053251, K053251_CI0);
+ m_sprite_colorbase = k053251_get_palette_index(m_k053251, K053251_CI1);
+ m_layer_colorbase[0] = k053251_get_palette_index(m_k053251, K053251_CI2);
+ m_layer_colorbase[1] = k053251_get_palette_index(m_k053251, K053251_CI4);
+ m_layer_colorbase[2] = k053251_get_palette_index(m_k053251, K053251_CI3);
- k052109_tilemap_update(state->m_k052109);
+ k052109_tilemap_update(m_k052109);
layer[0] = 0;
- state->m_layerpri[0] = k053251_get_priority(state->m_k053251, K053251_CI2);
+ m_layerpri[0] = k053251_get_priority(m_k053251, K053251_CI2);
layer[1] = 1;
- state->m_layerpri[1] = k053251_get_priority(state->m_k053251, K053251_CI4);
+ m_layerpri[1] = k053251_get_priority(m_k053251, K053251_CI4);
layer[2] = 2;
- state->m_layerpri[2] = k053251_get_priority(state->m_k053251, K053251_CI3);
+ m_layerpri[2] = k053251_get_priority(m_k053251, K053251_CI3);
- konami_sortlayers3(layer, state->m_layerpri);
+ konami_sortlayers3(layer, m_layerpri);
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(16 * bg_colorbase, cliprect);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, layer[0], 0, 1);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, layer[1], 0, 2);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, layer[2], 0, 4);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, layer[0], 0, 1);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, layer[1], 0, 2);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, layer[2], 0, 4);
- k053245_sprites_draw(state->m_k053244, bitmap, cliprect);
+ k053245_sprites_draw(m_k053244, bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/system1.c b/src/mame/video/system1.c
index 0e1427c41ed..4565f3f591f 100644
--- a/src/mame/video/system1.c
+++ b/src/mame/video/system1.c
@@ -558,27 +558,26 @@ static void video_update_common(screen_device &screen, bitmap_ind16 &bitmap, con
*
*************************************/
-SCREEN_UPDATE_IND16( system1 )
+UINT32 system1_state::screen_update_system1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- system1_state *state = screen.machine().driver_data<system1_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
bitmap_ind16 *bgpixmaps[4];
int bgrowscroll[32];
int xscroll, yscroll;
int y;
/* all 4 background pages are the same, fixed to page 0 */
- bgpixmaps[0] = bgpixmaps[1] = bgpixmaps[2] = bgpixmaps[3] = &state->m_tilemap_page[0]->pixmap();
+ bgpixmaps[0] = bgpixmaps[1] = bgpixmaps[2] = bgpixmaps[3] = &m_tilemap_page[0]->pixmap();
/* foreground is fixed to page 1 */
- bitmap_ind16 &fgpixmap = state->m_tilemap_page[1]->pixmap();
+ bitmap_ind16 &fgpixmap = m_tilemap_page[1]->pixmap();
/* get fixed scroll offsets */
xscroll = (INT16)((videoram[0xffc] | (videoram[0xffd] << 8)) + 28);
yscroll = videoram[0xfbd];
/* adjust for flipping */
- if (state->flip_screen())
+ if (flip_screen())
{
xscroll = 640 - (xscroll & 0x1ff);
yscroll = 764 - (yscroll & 0x1ff);
@@ -594,10 +593,9 @@ SCREEN_UPDATE_IND16( system1 )
}
-SCREEN_UPDATE_IND16( system2 )
+UINT32 system1_state::screen_update_system2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- system1_state *state = screen.machine().driver_data<system1_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
bitmap_ind16 *bgpixmaps[4];
int rowscroll[32];
int xscroll, yscroll;
@@ -605,16 +603,16 @@ SCREEN_UPDATE_IND16( system2 )
int y;
/* 4 independent background pages */
- bgpixmaps[0] = &state->m_tilemap_page[videoram[0x740] & 7]->pixmap();
- bgpixmaps[1] = &state->m_tilemap_page[videoram[0x742] & 7]->pixmap();
- bgpixmaps[2] = &state->m_tilemap_page[videoram[0x744] & 7]->pixmap();
- bgpixmaps[3] = &state->m_tilemap_page[videoram[0x746] & 7]->pixmap();
+ bgpixmaps[0] = &m_tilemap_page[videoram[0x740] & 7]->pixmap();
+ bgpixmaps[1] = &m_tilemap_page[videoram[0x742] & 7]->pixmap();
+ bgpixmaps[2] = &m_tilemap_page[videoram[0x744] & 7]->pixmap();
+ bgpixmaps[3] = &m_tilemap_page[videoram[0x746] & 7]->pixmap();
/* foreground is fixed to page 0 */
- bitmap_ind16 &fgpixmap = state->m_tilemap_page[0]->pixmap();
+ bitmap_ind16 &fgpixmap = m_tilemap_page[0]->pixmap();
/* get scroll offsets */
- if (!state->flip_screen())
+ if (!flip_screen())
{
xscroll = ((videoram[0x7c0] | (videoram[0x7c1] << 8)) & 0x1ff) - 512 + 10;
yscroll = videoram[0x7ba];
@@ -637,10 +635,9 @@ SCREEN_UPDATE_IND16( system2 )
}
-SCREEN_UPDATE_IND16( system2_rowscroll )
+UINT32 system1_state::screen_update_system2_rowscroll(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- system1_state *state = screen.machine().driver_data<system1_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
bitmap_ind16 *bgpixmaps[4];
int rowscroll[32];
int yscroll;
@@ -648,16 +645,16 @@ SCREEN_UPDATE_IND16( system2_rowscroll )
int y;
/* 4 independent background pages */
- bgpixmaps[0] = &state->m_tilemap_page[videoram[0x740] & 7]->pixmap();
- bgpixmaps[1] = &state->m_tilemap_page[videoram[0x742] & 7]->pixmap();
- bgpixmaps[2] = &state->m_tilemap_page[videoram[0x744] & 7]->pixmap();
- bgpixmaps[3] = &state->m_tilemap_page[videoram[0x746] & 7]->pixmap();
+ bgpixmaps[0] = &m_tilemap_page[videoram[0x740] & 7]->pixmap();
+ bgpixmaps[1] = &m_tilemap_page[videoram[0x742] & 7]->pixmap();
+ bgpixmaps[2] = &m_tilemap_page[videoram[0x744] & 7]->pixmap();
+ bgpixmaps[3] = &m_tilemap_page[videoram[0x746] & 7]->pixmap();
/* foreground is fixed to page 0 */
- bitmap_ind16 &fgpixmap = state->m_tilemap_page[0]->pixmap();
+ bitmap_ind16 &fgpixmap = m_tilemap_page[0]->pixmap();
/* get scroll offsets */
- if (!state->flip_screen())
+ if (!flip_screen())
{
for (y = 0; y < 32; y++)
rowscroll[y] = ((videoram[0x7c0 + y * 2] | (videoram[0x7c1 + y * 2] << 8)) & 0x1ff) - 512 + 10;
diff --git a/src/mame/video/system16.c b/src/mame/video/system16.c
index 2ef891a9d23..46881fe9e4e 100644
--- a/src/mame/video/system16.c
+++ b/src/mame/video/system16.c
@@ -604,9 +604,8 @@ VIDEO_START_MEMBER(segas1x_bootleg_state,s16a_bootleg_passsht)
}
// Passing Shot (2 player), Shinobi (Datsu), Wonderboy 3
-SCREEN_UPDATE_IND16( s16a_bootleg )
+UINT32 segas1x_bootleg_state::screen_update_s16a_bootleg(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- segas1x_bootleg_state *state = screen.machine().driver_data<segas1x_bootleg_state>();
// passing shot
int offset_txtx = 192;
@@ -619,48 +618,48 @@ SCREEN_UPDATE_IND16( s16a_bootleg )
bitmap.fill(get_black_pen(screen.machine()), cliprect);
// start the sprites drawing
- state->m_sprites->draw_async(cliprect);
+ m_sprites->draw_async(cliprect);
// I can't bring myself to care about dirty tile marking on something which runs at a bazillion % speed anyway, clean code is better
- state->m_bg_tilemaps[0]->mark_all_dirty();
- state->m_bg_tilemaps[1]->mark_all_dirty();
- state->m_text_tilemap->mark_all_dirty();
+ m_bg_tilemaps[0]->mark_all_dirty();
+ m_bg_tilemaps[1]->mark_all_dirty();
+ m_text_tilemap->mark_all_dirty();
- state->m_text_tilemap->set_scrollx(0, offset_txtx);
- state->m_text_tilemap->set_scrolly(0, offset_txty);
+ m_text_tilemap->set_scrollx(0, offset_txtx);
+ m_text_tilemap->set_scrolly(0, offset_txty);
- if ((state->m_tilemapselect & 0xff) == 0x12)
+ if ((m_tilemapselect & 0xff) == 0x12)
{
- state->m_bg_tilemaps[1]->set_scrollx(0, state->m_bg_scrollx + offset_bg1x);
- state->m_bg_tilemaps[1]->set_scrolly(0, state->m_bg_scrolly + offset_bg1y + state->m_back_yscroll);
- state->m_bg_tilemaps[0]->set_scrollx(0, state->m_fg_scrollx + offset_bg0x);
- state->m_bg_tilemaps[0]->set_scrolly(0, state->m_fg_scrolly + offset_bg0y + state->m_fore_yscroll);
+ m_bg_tilemaps[1]->set_scrollx(0, m_bg_scrollx + offset_bg1x);
+ m_bg_tilemaps[1]->set_scrolly(0, m_bg_scrolly + offset_bg1y + m_back_yscroll);
+ m_bg_tilemaps[0]->set_scrollx(0, m_fg_scrollx + offset_bg0x);
+ m_bg_tilemaps[0]->set_scrolly(0, m_fg_scrolly + offset_bg0y + m_fore_yscroll);
- state->m_bg_tilemaps[0]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- state->m_bg_tilemaps[1]->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemaps[0]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ m_bg_tilemaps[1]->draw(bitmap, cliprect, 0, 0);
- state->m_text_tilemap->set_scrolly(0, state->m_text_yscroll);
+ m_text_tilemap->set_scrolly(0, m_text_yscroll);
- state->m_text_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_text_tilemap->draw(bitmap, cliprect, 0, 0);
}
- else if ((state->m_tilemapselect & 0xff) == 0x21)
+ else if ((m_tilemapselect & 0xff) == 0x21)
{
- state->m_bg_tilemaps[0]->set_scrollx(0, state->m_bg_scrollx + 187 );
- state->m_bg_tilemaps[0]->set_scrolly(0, state->m_bg_scrolly + state->m_back_yscroll );
- state->m_bg_tilemaps[1]->set_scrollx(0, state->m_fg_scrollx + 187 );
- state->m_bg_tilemaps[1]->set_scrolly(0, state->m_fg_scrolly + 1 + state->m_fore_yscroll );
+ m_bg_tilemaps[0]->set_scrollx(0, m_bg_scrollx + 187 );
+ m_bg_tilemaps[0]->set_scrolly(0, m_bg_scrolly + m_back_yscroll );
+ m_bg_tilemaps[1]->set_scrollx(0, m_fg_scrollx + 187 );
+ m_bg_tilemaps[1]->set_scrolly(0, m_fg_scrolly + 1 + m_fore_yscroll );
- state->m_bg_tilemaps[1]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- state->m_bg_tilemaps[0]->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemaps[1]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ m_bg_tilemaps[0]->draw(bitmap, cliprect, 0, 0);
- state->m_text_tilemap->set_scrolly(0, state->m_text_yscroll);
+ m_text_tilemap->set_scrolly(0, m_text_yscroll);
- state->m_text_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_text_tilemap->draw(bitmap, cliprect, 0, 0);
}
// mix in sprites
- bitmap_ind16 &sprites = state->m_sprites->bitmap();
- for (const sparse_dirty_rect *rect = state->m_sprites->first_dirty_rect(cliprect); rect != NULL; rect = rect->next())
+ bitmap_ind16 &sprites = m_sprites->bitmap();
+ for (const sparse_dirty_rect *rect = m_sprites->first_dirty_rect(cliprect); rect != NULL; rect = rect->next())
for (int y = rect->min_y; y <= rect->max_y; y++)
{
UINT16 *dest = &bitmap.pix(y);
@@ -678,7 +677,7 @@ SCREEN_UPDATE_IND16( s16a_bootleg )
{
// if the color is set to maximum, shadow pixels underneath us
if ((pix & 0x03f0) == 0x03f0)
- dest[x] += (state->m_paletteram[dest[x]] & 0x8000) ? screen.machine().total_colors()*2 : screen.machine().total_colors();
+ dest[x] += (m_paletteram[dest[x]] & 0x8000) ? screen.machine().total_colors()*2 : screen.machine().total_colors();
// otherwise, just add in sprite palette base
else
@@ -693,9 +692,8 @@ SCREEN_UPDATE_IND16( s16a_bootleg )
}
/* The Passing Shot 4 Player bootleg has weird scroll registers (different offsets, ^0x7 xor) */
-SCREEN_UPDATE_IND16( s16a_bootleg_passht4b )
+UINT32 segas1x_bootleg_state::screen_update_s16a_bootleg_passht4b(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- segas1x_bootleg_state *state = screen.machine().driver_data<segas1x_bootleg_state>();
// passing shot
int offset_txtx = 192;
@@ -708,31 +706,31 @@ SCREEN_UPDATE_IND16( s16a_bootleg_passht4b )
bitmap.fill(get_black_pen(screen.machine()), cliprect);
// start the sprites drawing
- state->m_sprites->draw_async(cliprect);
+ m_sprites->draw_async(cliprect);
// I can't bring myself to care about dirty tile marking on something which runs at a bazillion % speed anyway, clean code is better
- state->m_bg_tilemaps[0]->mark_all_dirty();
- state->m_bg_tilemaps[1]->mark_all_dirty();
- state->m_text_tilemap->mark_all_dirty();
+ m_bg_tilemaps[0]->mark_all_dirty();
+ m_bg_tilemaps[1]->mark_all_dirty();
+ m_text_tilemap->mark_all_dirty();
- state->m_text_tilemap->set_scrollx(0, offset_txtx);
- state->m_text_tilemap->set_scrolly(0, offset_txty);
+ m_text_tilemap->set_scrollx(0, offset_txtx);
+ m_text_tilemap->set_scrolly(0, offset_txty);
- if ((state->m_tilemapselect & 0xff) == 0x12)
+ if ((m_tilemapselect & 0xff) == 0x12)
{
- state->m_bg_tilemaps[1]->set_scrollx(0, (state->m_bg_scrollx ^ 0x7) + offset_bg1x);
- state->m_bg_tilemaps[1]->set_scrolly(0, state->m_bg_scrolly + offset_bg1y);
- state->m_bg_tilemaps[0]->set_scrollx(0, (state->m_fg_scrollx ^ 0x7) + offset_bg0x);
- state->m_bg_tilemaps[0]->set_scrolly(0, state->m_fg_scrolly + offset_bg0y);
-
- state->m_bg_tilemaps[0]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- state->m_bg_tilemaps[1]->draw(bitmap, cliprect, 0, 0);
- state->m_text_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemaps[1]->set_scrollx(0, (m_bg_scrollx ^ 0x7) + offset_bg1x);
+ m_bg_tilemaps[1]->set_scrolly(0, m_bg_scrolly + offset_bg1y);
+ m_bg_tilemaps[0]->set_scrollx(0, (m_fg_scrollx ^ 0x7) + offset_bg0x);
+ m_bg_tilemaps[0]->set_scrolly(0, m_fg_scrolly + offset_bg0y);
+
+ m_bg_tilemaps[0]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ m_bg_tilemaps[1]->draw(bitmap, cliprect, 0, 0);
+ m_text_tilemap->draw(bitmap, cliprect, 0, 0);
}
// mix in sprites
- bitmap_ind16 &sprites = state->m_sprites->bitmap();
- for (const sparse_dirty_rect *rect = state->m_sprites->first_dirty_rect(cliprect); rect != NULL; rect = rect->next())
+ bitmap_ind16 &sprites = m_sprites->bitmap();
+ for (const sparse_dirty_rect *rect = m_sprites->first_dirty_rect(cliprect); rect != NULL; rect = rect->next())
for (int y = rect->min_y; y <= rect->max_y; y++)
{
UINT16 *dest = &bitmap.pix(y);
@@ -750,7 +748,7 @@ SCREEN_UPDATE_IND16( s16a_bootleg_passht4b )
{
// if the color is set to maximum, shadow pixels underneath us
if ((pix & 0x03f0) == 0x03f0)
- dest[x] += (state->m_paletteram[dest[x]] & 0x8000) ? screen.machine().total_colors()*2 : screen.machine().total_colors();
+ dest[x] += (m_paletteram[dest[x]] & 0x8000) ? screen.machine().total_colors()*2 : screen.machine().total_colors();
// otherwise, just add in sprite palette base
else
@@ -767,53 +765,52 @@ SCREEN_UPDATE_IND16( s16a_bootleg_passht4b )
/***************************************************************************/
-SCREEN_UPDATE_IND16( system16 )
+UINT32 segas1x_bootleg_state::screen_update_system16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- segas1x_bootleg_state *state = screen.machine().driver_data<segas1x_bootleg_state>();
- if (!state->m_refreshenable)
+ if (!m_refreshenable)
{
bitmap.fill(0, cliprect);
return 0;
}
// start the sprites drawing
- state->m_sprites->draw_async(cliprect);
+ m_sprites->draw_async(cliprect);
update_page(screen.machine());
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_background->set_scrollx(0, -320 - state->m_bg_scrollx);
- state->m_background->set_scrolly(0, -256 + state->m_bg_scrolly + state->m_back_yscroll);
- state->m_foreground->set_scrollx(0, -320 - state->m_fg_scrollx);
- state->m_foreground->set_scrolly(0, -256 + state->m_fg_scrolly + state->m_fore_yscroll);
+ m_background->set_scrollx(0, -320 - m_bg_scrollx);
+ m_background->set_scrolly(0, -256 + m_bg_scrolly + m_back_yscroll);
+ m_foreground->set_scrollx(0, -320 - m_fg_scrollx);
+ m_foreground->set_scrolly(0, -256 + m_fg_scrolly + m_fore_yscroll);
- state->m_text_layer->set_scrollx(0, 0);
- state->m_text_layer->set_scrolly(0, 0 + state->m_text_yscroll);
+ m_text_layer->set_scrollx(0, 0);
+ m_text_layer->set_scrolly(0, 0 + m_text_yscroll);
/* Background */
- state->m_background->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0x00);
+ m_background->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0x00);
/* Foreground */
- state->m_foreground->draw(bitmap, cliprect, 0, 0x03);
- state->m_foreground->draw(bitmap, cliprect, 1, 0x07);
+ m_foreground->draw(bitmap, cliprect, 0, 0x03);
+ m_foreground->draw(bitmap, cliprect, 1, 0x07);
/* Text Layer */
- if (state->m_textlayer_lo_max != 0)
+ if (m_textlayer_lo_max != 0)
{
- state->m_text_layer->draw(bitmap, cliprect, 1, 7);// needed for Body Slam
+ m_text_layer->draw(bitmap, cliprect, 1, 7);// needed for Body Slam
}
- state->m_text_layer->draw(bitmap, cliprect, 0, 0xf);
+ m_text_layer->draw(bitmap, cliprect, 0, 0xf);
//draw_sprites(screen.machine(), bitmap, cliprect,0);
// mix in sprites
- bitmap_ind16 &sprites = state->m_sprites->bitmap();
- for (const sparse_dirty_rect *rect = state->m_sprites->first_dirty_rect(cliprect); rect != NULL; rect = rect->next())
+ bitmap_ind16 &sprites = m_sprites->bitmap();
+ for (const sparse_dirty_rect *rect = m_sprites->first_dirty_rect(cliprect); rect != NULL; rect = rect->next())
for (int y = rect->min_y; y <= rect->max_y; y++)
{
UINT16 *dest = &bitmap.pix(y);
@@ -831,7 +828,7 @@ SCREEN_UPDATE_IND16( system16 )
{
// if the color is set to maximum, shadow pixels underneath us
if ((pix & 0x03f0) == 0x03f0)
- dest[x] += (state->m_paletteram[dest[x]] & 0x8000) ? screen.machine().total_colors()*2 : screen.machine().total_colors();
+ dest[x] += (m_paletteram[dest[x]] & 0x8000) ? screen.machine().total_colors()*2 : screen.machine().total_colors();
// otherwise, just add in sprite palette base
else
@@ -845,18 +842,17 @@ SCREEN_UPDATE_IND16( system16 )
}
-SCREEN_UPDATE_IND16( system18old )
+UINT32 segas1x_bootleg_state::screen_update_system18old(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- segas1x_bootleg_state *state = screen.machine().driver_data<segas1x_bootleg_state>();
- if (!state->m_refreshenable)
+ if (!m_refreshenable)
{
bitmap.fill(get_black_pen(screen.machine()), cliprect);
return 0;
}
// start the sprites drawing
- state->m_sprites->draw_async(cliprect);
+ m_sprites->draw_async(cliprect);
update_page(screen.machine());
@@ -864,21 +860,21 @@ SCREEN_UPDATE_IND16( system18old )
bitmap.fill(0, cliprect);
- state->m_background->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- state->m_background->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 1, 0); //??
- state->m_background->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 2, 0); //??
- state->m_background->draw(bitmap, cliprect, 1, 0x1);
- state->m_background->draw(bitmap, cliprect, 2, 0x3);
+ m_background->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ m_background->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 1, 0); //??
+ m_background->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 2, 0); //??
+ m_background->draw(bitmap, cliprect, 1, 0x1);
+ m_background->draw(bitmap, cliprect, 2, 0x3);
- state->m_foreground->draw(bitmap, cliprect, 0, 0x3);
- state->m_foreground->draw(bitmap, cliprect, 1, 0x7);
+ m_foreground->draw(bitmap, cliprect, 0, 0x3);
+ m_foreground->draw(bitmap, cliprect, 1, 0x7);
- state->m_text_layer->draw(bitmap, cliprect, 1, 0x7);
- state->m_text_layer->draw(bitmap, cliprect, 0, 0xf);
+ m_text_layer->draw(bitmap, cliprect, 1, 0x7);
+ m_text_layer->draw(bitmap, cliprect, 0, 0xf);
// mix in sprites
- bitmap_ind16 &sprites = state->m_sprites->bitmap();
- for (const sparse_dirty_rect *rect = state->m_sprites->first_dirty_rect(cliprect); rect != NULL; rect = rect->next())
+ bitmap_ind16 &sprites = m_sprites->bitmap();
+ for (const sparse_dirty_rect *rect = m_sprites->first_dirty_rect(cliprect); rect != NULL; rect = rect->next())
for (int y = rect->min_y; y <= rect->max_y; y++)
{
UINT16 *dest = &bitmap.pix(y);
@@ -896,7 +892,7 @@ SCREEN_UPDATE_IND16( system18old )
{
// if the color is set to maximum, shadow pixels underneath us
if ((pix & 0x03f0) == 0x03f0)
- dest[x] += (state->m_paletteram[dest[x]] & 0x8000) ? screen.machine().total_colors()*2 : screen.machine().total_colors();
+ dest[x] += (m_paletteram[dest[x]] & 0x8000) ? screen.machine().total_colors()*2 : screen.machine().total_colors();
// otherwise, just add in sprite palette base
else
diff --git a/src/mame/video/tagteam.c b/src/mame/video/tagteam.c
index 4fc79c9b3b0..c45bec62206 100644
--- a/src/mame/video/tagteam.c
+++ b/src/mame/video/tagteam.c
@@ -186,10 +186,9 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( tagteam )
+UINT32 tagteam_state::screen_update_tagteam(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tagteam_state *state = screen.machine().driver_data<tagteam_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/tail2nos.c b/src/mame/video/tail2nos.c
index 165b0f43999..54f70a284c4 100644
--- a/src/mame/video/tail2nos.c
+++ b/src/mame/video/tail2nos.c
@@ -171,15 +171,14 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( tail2nos )
+UINT32 tail2nos_state::screen_update_tail2nos(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tail2nos_state *state = screen.machine().driver_data<tail2nos_state>();
- if (state->m_video_enable)
+ if (m_video_enable)
{
- k051316_zoom_draw(state->m_k051316, bitmap, cliprect, 0, 0);
+ k051316_zoom_draw(m_k051316, bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
}
else
bitmap.fill(0, cliprect);
diff --git a/src/mame/video/taito_b.c b/src/mame/video/taito_b.c
index 81b8298ef13..eff867f2892 100644
--- a/src/mame/video/taito_b.c
+++ b/src/mame/video/taito_b.c
@@ -365,11 +365,10 @@ g_profiler.start(PROFILER_USER1);
g_profiler.stop();
}
-SCREEN_UPDATE_IND16( taitob )
+UINT32 taitob_state::screen_update_taitob(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- taitob_state *state = screen.machine().driver_data<taitob_state>();
address_space &space = screen.machine().driver_data()->generic_space();
- UINT8 video_control = tc0180vcu_get_videoctrl(state->m_tc0180vcu, space, 0);
+ UINT8 video_control = tc0180vcu_get_videoctrl(m_tc0180vcu, space, 0);
if ((video_control & 0x20) == 0)
{
@@ -378,36 +377,35 @@ SCREEN_UPDATE_IND16( taitob )
}
/* Draw playfields */
- tc0180vcu_tilemap_draw(state->m_tc0180vcu, bitmap, cliprect, 0, 1);
+ tc0180vcu_tilemap_draw(m_tc0180vcu, bitmap, cliprect, 0, 1);
draw_framebuffer(screen.machine(), bitmap, cliprect, 1);
- tc0180vcu_tilemap_draw(state->m_tc0180vcu, bitmap, cliprect, 1, 0);
+ tc0180vcu_tilemap_draw(m_tc0180vcu, bitmap, cliprect, 1, 0);
- if (state->m_pixel_bitmap) /* hitice only */
+ if (m_pixel_bitmap) /* hitice only */
{
- int scrollx = -2 * state->m_pixel_scroll[0]; //+320;
- int scrolly = - state->m_pixel_scroll[1]; //+240;
+ int scrollx = -2 * m_pixel_scroll[0]; //+320;
+ int scrolly = - m_pixel_scroll[1]; //+240;
/* bit 15 of pixel_scroll[0] is probably flip screen */
- copyscrollbitmap_trans(bitmap, *state->m_pixel_bitmap, 1, &scrollx, 1, &scrolly, cliprect, state->m_b_fg_color_base * 16);
+ copyscrollbitmap_trans(bitmap, *m_pixel_bitmap, 1, &scrollx, 1, &scrolly, cliprect, m_b_fg_color_base * 16);
}
draw_framebuffer(screen.machine(), bitmap, cliprect, 0);
- tc0180vcu_tilemap_draw(state->m_tc0180vcu, bitmap, cliprect, 2, 0);
+ tc0180vcu_tilemap_draw(m_tc0180vcu, bitmap, cliprect, 2, 0);
return 0;
}
-SCREEN_UPDATE_RGB32( realpunc )
+UINT32 taitob_state::screen_update_realpunc(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- taitob_state *state = screen.machine().driver_data<taitob_state>();
address_space &space = screen.machine().driver_data()->generic_space();
const rgb_t *palette = palette_entry_list_adjusted(screen.machine().palette);
- UINT8 video_control = tc0180vcu_get_videoctrl(state->m_tc0180vcu, space, 0);
+ UINT8 video_control = tc0180vcu_get_videoctrl(m_tc0180vcu, space, 0);
int x, y;
/* Video blanked? */
@@ -418,22 +416,22 @@ SCREEN_UPDATE_RGB32( realpunc )
}
/* Draw the palettized playfields to an indexed bitmap */
- tc0180vcu_tilemap_draw(state->m_tc0180vcu, *state->m_realpunc_bitmap, cliprect, 0, 1);
+ tc0180vcu_tilemap_draw(m_tc0180vcu, *m_realpunc_bitmap, cliprect, 0, 1);
- draw_framebuffer(screen.machine(), *state->m_realpunc_bitmap, cliprect, 1);
+ draw_framebuffer(screen.machine(), *m_realpunc_bitmap, cliprect, 1);
- tc0180vcu_tilemap_draw(state->m_tc0180vcu, *state->m_realpunc_bitmap, cliprect, 1, 0);
+ tc0180vcu_tilemap_draw(m_tc0180vcu, *m_realpunc_bitmap, cliprect, 1, 0);
- if (state->m_realpunc_video_ctrl & 0x0001)
- draw_framebuffer(screen.machine(), *state->m_realpunc_bitmap, cliprect, 0);
+ if (m_realpunc_video_ctrl & 0x0001)
+ draw_framebuffer(screen.machine(), *m_realpunc_bitmap, cliprect, 0);
/* Copy the intermediate bitmap to the output bitmap, applying the palette */
for (y = 0; y <= cliprect.max_y; y++)
for (x = 0; x <= cliprect.max_x; x++)
- bitmap.pix32(y, x) = palette[state->m_realpunc_bitmap->pix16(y, x)];
+ bitmap.pix32(y, x) = palette[m_realpunc_bitmap->pix16(y, x)];
/* Draw the 15bpp raw CRTC frame buffer directly to the output bitmap */
- if (state->m_realpunc_video_ctrl & 0x0002)
+ if (m_realpunc_video_ctrl & 0x0002)
{
device_t *hd63484 = screen.machine().device("hd63484");
@@ -463,7 +461,7 @@ SCREEN_UPDATE_RGB32( realpunc )
}
}
/* Draw the 15bpp raw output of the camera ADCs (TODO) */
- else if (state->m_realpunc_video_ctrl & 0x0004)
+ else if (m_realpunc_video_ctrl & 0x0004)
{
for (y = 0; y <= cliprect.max_y; y++)
{
@@ -473,20 +471,20 @@ SCREEN_UPDATE_RGB32( realpunc )
}
/* Clear the indexed bitmap and draw the final indexed layers */
- state->m_realpunc_bitmap->fill(0, cliprect);
+ m_realpunc_bitmap->fill(0, cliprect);
- if (!(state->m_realpunc_video_ctrl & 0x0001))
- draw_framebuffer(screen.machine(), *state->m_realpunc_bitmap, cliprect, 0);
+ if (!(m_realpunc_video_ctrl & 0x0001))
+ draw_framebuffer(screen.machine(), *m_realpunc_bitmap, cliprect, 0);
- tc0180vcu_tilemap_draw(state->m_tc0180vcu, *state->m_realpunc_bitmap, cliprect, 2, 0);
+ tc0180vcu_tilemap_draw(m_tc0180vcu, *m_realpunc_bitmap, cliprect, 2, 0);
/* Merge the indexed layers with the output bitmap */
for (y = 0; y <= cliprect.max_y; y++)
{
for (x = 0; x <= cliprect.max_x; x++)
{
- if (state->m_realpunc_bitmap->pix16(y, x))
- bitmap.pix32(y, x) = palette[state->m_realpunc_bitmap->pix16(y, x)];
+ if (m_realpunc_bitmap->pix16(y, x))
+ bitmap.pix32(y, x) = palette[m_realpunc_bitmap->pix16(y, x)];
}
}
@@ -495,25 +493,24 @@ SCREEN_UPDATE_RGB32( realpunc )
-SCREEN_VBLANK( taitob )
+void taitob_state::screen_eof_taitob(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- taitob_state *state = screen.machine().driver_data<taitob_state>();
address_space &space = screen.machine().driver_data()->generic_space();
- UINT8 video_control = tc0180vcu_get_videoctrl(state->m_tc0180vcu, space, 0);
- UINT8 framebuffer_page = tc0180vcu_get_fb_page(state->m_tc0180vcu, space, 0);
+ UINT8 video_control = tc0180vcu_get_videoctrl(m_tc0180vcu, space, 0);
+ UINT8 framebuffer_page = tc0180vcu_get_fb_page(m_tc0180vcu, space, 0);
if (~video_control & 0x01)
- state->m_framebuffer[framebuffer_page]->fill(0, screen.machine().primary_screen->visible_area());
+ m_framebuffer[framebuffer_page]->fill(0, screen.machine().primary_screen->visible_area());
if (~video_control & 0x80)
{
framebuffer_page ^= 1;
- tc0180vcu_set_fb_page(state->m_tc0180vcu, space, 0, framebuffer_page);
+ tc0180vcu_set_fb_page(m_tc0180vcu, space, 0, framebuffer_page);
}
- draw_sprites(screen.machine(), *state->m_framebuffer[framebuffer_page], screen.machine().primary_screen->visible_area());
+ draw_sprites(screen.machine(), *m_framebuffer[framebuffer_page], screen.machine().primary_screen->visible_area());
}
}
diff --git a/src/mame/video/taito_f2.c b/src/mame/video/taito_f2.c
index cbb3e71b7cc..a31ea3beae2 100644
--- a/src/mame/video/taito_f2.c
+++ b/src/mame/video/taito_f2.c
@@ -882,112 +882,107 @@ static void taitof2_update_sprites_active_area( running_machine &machine )
}
-SCREEN_VBLANK( taitof2_no_buffer )
+void taitof2_state::screen_eof_taitof2_no_buffer(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- taitof2_state *state = screen.machine().driver_data<taitof2_state>();
taitof2_update_sprites_active_area(screen.machine());
- state->m_prepare_sprites = 1;
+ m_prepare_sprites = 1;
}
}
-SCREEN_VBLANK( taitof2_full_buffer_delayed )
+void taitof2_state::screen_eof_taitof2_full_buffer_delayed(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- taitof2_state *state = screen.machine().driver_data<taitof2_state>();
- UINT16 *spriteram = state->m_spriteram;
+ UINT16 *spriteram = m_spriteram;
int i;
taitof2_update_sprites_active_area(screen.machine());
- state->m_prepare_sprites = 0;
- memcpy(state->m_spriteram_buffered, state->m_spriteram_delayed, state->m_spriteram.bytes());
- for (i = 0; i < state->m_spriteram.bytes() / 2; i++)
- state->m_spriteram_buffered[i] = spriteram[i];
- memcpy(state->m_spriteram_delayed, spriteram, state->m_spriteram.bytes());
+ m_prepare_sprites = 0;
+ memcpy(m_spriteram_buffered, m_spriteram_delayed, m_spriteram.bytes());
+ for (i = 0; i < m_spriteram.bytes() / 2; i++)
+ m_spriteram_buffered[i] = spriteram[i];
+ memcpy(m_spriteram_delayed, spriteram, m_spriteram.bytes());
}
}
-SCREEN_VBLANK( taitof2_partial_buffer_delayed )
+void taitof2_state::screen_eof_taitof2_partial_buffer_delayed(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- taitof2_state *state = screen.machine().driver_data<taitof2_state>();
- UINT16 *spriteram = state->m_spriteram;
+ UINT16 *spriteram = m_spriteram;
int i;
taitof2_update_sprites_active_area(screen.machine());
- state->m_prepare_sprites = 0;
- memcpy(state->m_spriteram_buffered, state->m_spriteram_delayed, state->m_spriteram.bytes());
- for (i = 0;i < state->m_spriteram.bytes() / 2; i += 4)
- state->m_spriteram_buffered[i] = spriteram[i];
- memcpy(state->m_spriteram_delayed, spriteram, state->m_spriteram.bytes());
+ m_prepare_sprites = 0;
+ memcpy(m_spriteram_buffered, m_spriteram_delayed, m_spriteram.bytes());
+ for (i = 0;i < m_spriteram.bytes() / 2; i += 4)
+ m_spriteram_buffered[i] = spriteram[i];
+ memcpy(m_spriteram_delayed, spriteram, m_spriteram.bytes());
}
}
-SCREEN_VBLANK( taitof2_partial_buffer_delayed_thundfox )
+void taitof2_state::screen_eof_taitof2_partial_buffer_delayed_thundfox(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- taitof2_state *state = screen.machine().driver_data<taitof2_state>();
- UINT16 *spriteram = state->m_spriteram;
+ UINT16 *spriteram = m_spriteram;
int i;
taitof2_update_sprites_active_area(screen.machine());
- state->m_prepare_sprites = 0;
- memcpy(state->m_spriteram_buffered, state->m_spriteram_delayed, state->m_spriteram.bytes());
- for (i = 0; i < state->m_spriteram.bytes() / 2; i += 8)
+ m_prepare_sprites = 0;
+ memcpy(m_spriteram_buffered, m_spriteram_delayed, m_spriteram.bytes());
+ for (i = 0; i < m_spriteram.bytes() / 2; i += 8)
{
- state->m_spriteram_buffered[i] = spriteram[i];
- state->m_spriteram_buffered[i + 1] = spriteram[i + 1];
- state->m_spriteram_buffered[i + 4] = spriteram[i + 4];
+ m_spriteram_buffered[i] = spriteram[i];
+ m_spriteram_buffered[i + 1] = spriteram[i + 1];
+ m_spriteram_buffered[i + 4] = spriteram[i + 4];
}
- memcpy(state->m_spriteram_delayed, spriteram, state->m_spriteram.bytes());
+ memcpy(m_spriteram_delayed, spriteram, m_spriteram.bytes());
}
}
-SCREEN_VBLANK( taitof2_partial_buffer_delayed_qzchikyu )
+void taitof2_state::screen_eof_taitof2_partial_buffer_delayed_qzchikyu(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
/* spriteram[2] and [3] are 1 frame behind...
probably thundfox_eof_callback would work fine */
- taitof2_state *state = screen.machine().driver_data<taitof2_state>();
- UINT16 *spriteram = state->m_spriteram;
+ UINT16 *spriteram = m_spriteram;
int i;
taitof2_update_sprites_active_area(screen.machine());
- state->m_prepare_sprites = 0;
- memcpy(state->m_spriteram_buffered, state->m_spriteram_delayed, state->m_spriteram.bytes());
- for (i = 0; i < state->m_spriteram.bytes() / 2; i += 8)
+ m_prepare_sprites = 0;
+ memcpy(m_spriteram_buffered, m_spriteram_delayed, m_spriteram.bytes());
+ for (i = 0; i < m_spriteram.bytes() / 2; i += 8)
{
- state->m_spriteram_buffered[i] = spriteram[i];
- state->m_spriteram_buffered[i + 1] = spriteram[i + 1];
- state->m_spriteram_buffered[i + 4] = spriteram[i + 4];
- state->m_spriteram_buffered[i + 5] = spriteram[i + 5]; // not needed?
- state->m_spriteram_buffered[i + 6] = spriteram[i + 6]; // not needed?
- state->m_spriteram_buffered[i + 7] = spriteram[i + 7]; // not needed?
+ m_spriteram_buffered[i] = spriteram[i];
+ m_spriteram_buffered[i + 1] = spriteram[i + 1];
+ m_spriteram_buffered[i + 4] = spriteram[i + 4];
+ m_spriteram_buffered[i + 5] = spriteram[i + 5]; // not needed?
+ m_spriteram_buffered[i + 6] = spriteram[i + 6]; // not needed?
+ m_spriteram_buffered[i + 7] = spriteram[i + 7]; // not needed?
}
- memcpy(state->m_spriteram_delayed, spriteram, state->m_spriteram.bytes());
+ memcpy(m_spriteram_delayed, spriteram, m_spriteram.bytes());
}
}
/* SSI */
-SCREEN_UPDATE_IND16( taitof2_ssi )
+UINT32 taitof2_state::screen_update_taitof2_ssi(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
taitof2_handle_sprite_buffering(screen.machine());
@@ -1000,72 +995,69 @@ SCREEN_UPDATE_IND16( taitof2_ssi )
}
-SCREEN_UPDATE_IND16( taitof2_yesnoj )
+UINT32 taitof2_state::screen_update_taitof2_yesnoj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- taitof2_state *state = screen.machine().driver_data<taitof2_state>();
taitof2_handle_sprite_buffering(screen.machine());
- tc0100scn_tilemap_update(state->m_tc0100scn);
+ tc0100scn_tilemap_update(m_tc0100scn);
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(0, cliprect); /* wrong color? */
draw_sprites(screen.machine(), bitmap, cliprect, NULL, 0);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, tc0100scn_bottomlayer(state->m_tc0100scn), 0, 0);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, tc0100scn_bottomlayer(state->m_tc0100scn) ^ 1, 0, 0);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, 2, 0, 0);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, tc0100scn_bottomlayer(m_tc0100scn), 0, 0);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, tc0100scn_bottomlayer(m_tc0100scn) ^ 1, 0, 0);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, 2, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( taitof2 )
+UINT32 taitof2_state::screen_update_taitof2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- taitof2_state *state = screen.machine().driver_data<taitof2_state>();
taitof2_handle_sprite_buffering(screen.machine());
- tc0100scn_tilemap_update(state->m_tc0100scn);
+ tc0100scn_tilemap_update(m_tc0100scn);
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(0, cliprect); /* wrong color? */
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, tc0100scn_bottomlayer(state->m_tc0100scn), 0, 0);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, tc0100scn_bottomlayer(state->m_tc0100scn) ^ 1, 0, 0);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, tc0100scn_bottomlayer(m_tc0100scn), 0, 0);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, tc0100scn_bottomlayer(m_tc0100scn) ^ 1, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect, NULL, 0);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, 2, 0, 0);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, 2, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( taitof2_pri )
+UINT32 taitof2_state::screen_update_taitof2_pri(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- taitof2_state *state = screen.machine().driver_data<taitof2_state>();
address_space &space = screen.machine().driver_data()->generic_space();
int layer[3];
taitof2_handle_sprite_buffering(screen.machine());
- tc0100scn_tilemap_update(state->m_tc0100scn);
+ tc0100scn_tilemap_update(m_tc0100scn);
- layer[0] = tc0100scn_bottomlayer(state->m_tc0100scn);
+ layer[0] = tc0100scn_bottomlayer(m_tc0100scn);
layer[1] = layer[0] ^ 1;
layer[2] = 2;
- state->m_tilepri[layer[0]] = tc0360pri_r(state->m_tc0360pri, space, 5) & 0x0f;
- state->m_tilepri[layer[1]] = tc0360pri_r(state->m_tc0360pri, space, 5) >> 4;
- state->m_tilepri[layer[2]] = tc0360pri_r(state->m_tc0360pri, space, 4) >> 4;
+ m_tilepri[layer[0]] = tc0360pri_r(m_tc0360pri, space, 5) & 0x0f;
+ m_tilepri[layer[1]] = tc0360pri_r(m_tc0360pri, space, 5) >> 4;
+ m_tilepri[layer[2]] = tc0360pri_r(m_tc0360pri, space, 4) >> 4;
- state->m_spritepri[0] = tc0360pri_r(state->m_tc0360pri, space, 6) & 0x0f;
- state->m_spritepri[1] = tc0360pri_r(state->m_tc0360pri, space, 6) >> 4;
- state->m_spritepri[2] = tc0360pri_r(state->m_tc0360pri, space, 7) & 0x0f;
- state->m_spritepri[3] = tc0360pri_r(state->m_tc0360pri, space, 7) >> 4;
+ m_spritepri[0] = tc0360pri_r(m_tc0360pri, space, 6) & 0x0f;
+ m_spritepri[1] = tc0360pri_r(m_tc0360pri, space, 6) >> 4;
+ m_spritepri[2] = tc0360pri_r(m_tc0360pri, space, 7) & 0x0f;
+ m_spritepri[3] = tc0360pri_r(m_tc0360pri, space, 7) >> 4;
- state->m_spriteblendmode = tc0360pri_r(state->m_tc0360pri, space, 0) & 0xc0;
+ m_spriteblendmode = tc0360pri_r(m_tc0360pri, space, 0) & 0xc0;
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(0, cliprect); /* wrong color? */
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[0], 0, 1);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[1], 0, 2);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[0], 0, 1);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[1], 0, 2);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
draw_sprites(screen.machine(), bitmap, cliprect, NULL, 1);
return 0;
@@ -1084,44 +1076,43 @@ static void draw_roz_layer( running_machine &machine, bitmap_ind16 &bitmap, cons
tc0430grw_zoom_draw(state->m_tc0430grw, bitmap, cliprect, state->m_pivot_xdisp, state->m_pivot_ydisp, priority);
}
-SCREEN_UPDATE_IND16( taitof2_pri_roz )
+UINT32 taitof2_state::screen_update_taitof2_pri_roz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- taitof2_state *state = screen.machine().driver_data<taitof2_state>();
address_space &space = screen.machine().driver_data()->generic_space();
int tilepri[3];
int rozpri;
int layer[3];
int drawn;
int i,j;
- int roz_base_color = (tc0360pri_r(state->m_tc0360pri, space, 1) & 0x3f) << 2;
+ int roz_base_color = (tc0360pri_r(m_tc0360pri, space, 1) & 0x3f) << 2;
taitof2_handle_sprite_buffering(screen.machine());
- if (state->m_tc0280grd != NULL)
- tc0280grd_tilemap_update(state->m_tc0280grd, roz_base_color);
+ if (m_tc0280grd != NULL)
+ tc0280grd_tilemap_update(m_tc0280grd, roz_base_color);
- if (state->m_tc0430grw != NULL)
- tc0430grw_tilemap_update(state->m_tc0430grw, roz_base_color);
+ if (m_tc0430grw != NULL)
+ tc0430grw_tilemap_update(m_tc0430grw, roz_base_color);
- tc0100scn_tilemap_update(state->m_tc0100scn);
+ tc0100scn_tilemap_update(m_tc0100scn);
- rozpri = (tc0360pri_r(state->m_tc0360pri, space, 1) & 0xc0) >> 6;
- rozpri = (tc0360pri_r(state->m_tc0360pri, space, 8 + rozpri / 2) >> 4 * (rozpri & 1)) & 0x0f;
+ rozpri = (tc0360pri_r(m_tc0360pri, space, 1) & 0xc0) >> 6;
+ rozpri = (tc0360pri_r(m_tc0360pri, space, 8 + rozpri / 2) >> 4 * (rozpri & 1)) & 0x0f;
- layer[0] = tc0100scn_bottomlayer(state->m_tc0100scn);
+ layer[0] = tc0100scn_bottomlayer(m_tc0100scn);
layer[1] = layer[0] ^ 1;
layer[2] = 2;
- tilepri[layer[0]] = tc0360pri_r(state->m_tc0360pri, space, 5) & 0x0f;
- tilepri[layer[1]] = tc0360pri_r(state->m_tc0360pri, space, 5) >> 4;
- tilepri[layer[2]] = tc0360pri_r(state->m_tc0360pri, space, 4) >> 4;
+ tilepri[layer[0]] = tc0360pri_r(m_tc0360pri, space, 5) & 0x0f;
+ tilepri[layer[1]] = tc0360pri_r(m_tc0360pri, space, 5) >> 4;
+ tilepri[layer[2]] = tc0360pri_r(m_tc0360pri, space, 4) >> 4;
- state->m_spritepri[0] = tc0360pri_r(state->m_tc0360pri, space, 6) & 0x0f;
- state->m_spritepri[1] = tc0360pri_r(state->m_tc0360pri, space, 6) >> 4;
- state->m_spritepri[2] = tc0360pri_r(state->m_tc0360pri, space, 7) & 0x0f;
- state->m_spritepri[3] = tc0360pri_r(state->m_tc0360pri, space, 7) >> 4;
+ m_spritepri[0] = tc0360pri_r(m_tc0360pri, space, 6) & 0x0f;
+ m_spritepri[1] = tc0360pri_r(m_tc0360pri, space, 6) >> 4;
+ m_spritepri[2] = tc0360pri_r(m_tc0360pri, space, 7) & 0x0f;
+ m_spritepri[3] = tc0360pri_r(m_tc0360pri, space, 7) >> 4;
- state->m_spriteblendmode = tc0360pri_r(state->m_tc0360pri, space, 0) & 0xc0;
+ m_spriteblendmode = tc0360pri_r(m_tc0360pri, space, 0) & 0xc0;
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(0, cliprect); /* wrong color? */
@@ -1132,7 +1123,7 @@ SCREEN_UPDATE_IND16( taitof2_pri_roz )
if (rozpri == i)
{
draw_roz_layer(screen.machine(), bitmap, cliprect, 1 << drawn);
- state->m_tilepri[drawn] = i;
+ m_tilepri[drawn] = i;
drawn++;
}
@@ -1140,8 +1131,8 @@ SCREEN_UPDATE_IND16( taitof2_pri_roz )
{
if (tilepri[layer[j]] == i)
{
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[j], 0, 1 << drawn);
- state->m_tilepri[drawn] = i;
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[j], 0, 1 << drawn);
+ m_tilepri[drawn] = i;
drawn++;
}
}
@@ -1154,9 +1145,8 @@ SCREEN_UPDATE_IND16( taitof2_pri_roz )
/* Thunderfox */
-SCREEN_UPDATE_IND16( taitof2_thundfox )
+UINT32 taitof2_state::screen_update_taitof2_thundfox(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- taitof2_state *state = screen.machine().driver_data<taitof2_state>();
address_space &space = screen.machine().driver_data()->generic_space();
int tilepri[2][3];
int spritepri[4];
@@ -1165,27 +1155,27 @@ SCREEN_UPDATE_IND16( taitof2_thundfox )
taitof2_handle_sprite_buffering(screen.machine());
- tc0100scn_tilemap_update(state->m_tc0100scn_1);
- tc0100scn_tilemap_update(state->m_tc0100scn_2);
+ tc0100scn_tilemap_update(m_tc0100scn_1);
+ tc0100scn_tilemap_update(m_tc0100scn_2);
- layer[0][0] = tc0100scn_bottomlayer(state->m_tc0100scn_1);
+ layer[0][0] = tc0100scn_bottomlayer(m_tc0100scn_1);
layer[0][1] = layer[0][0] ^ 1;
layer[0][2] = 2;
- tilepri[0][layer[0][0]] = tc0360pri_r(state->m_tc0360pri, space, 5) & 0x0f;
- tilepri[0][layer[0][1]] = tc0360pri_r(state->m_tc0360pri, space, 5) >> 4;
- tilepri[0][layer[0][2]] = tc0360pri_r(state->m_tc0360pri, space, 4) >> 4;
+ tilepri[0][layer[0][0]] = tc0360pri_r(m_tc0360pri, space, 5) & 0x0f;
+ tilepri[0][layer[0][1]] = tc0360pri_r(m_tc0360pri, space, 5) >> 4;
+ tilepri[0][layer[0][2]] = tc0360pri_r(m_tc0360pri, space, 4) >> 4;
- layer[1][0] = tc0100scn_bottomlayer(state->m_tc0100scn_2);
+ layer[1][0] = tc0100scn_bottomlayer(m_tc0100scn_2);
layer[1][1] = layer[1][0] ^ 1;
layer[1][2] = 2;
- tilepri[1][layer[1][0]] = tc0360pri_r(state->m_tc0360pri, space, 9) & 0x0f;
- tilepri[1][layer[1][1]] = tc0360pri_r(state->m_tc0360pri, space, 9) >> 4;
- tilepri[1][layer[1][2]] = tc0360pri_r(state->m_tc0360pri, space, 8) >> 4;
+ tilepri[1][layer[1][0]] = tc0360pri_r(m_tc0360pri, space, 9) & 0x0f;
+ tilepri[1][layer[1][1]] = tc0360pri_r(m_tc0360pri, space, 9) >> 4;
+ tilepri[1][layer[1][2]] = tc0360pri_r(m_tc0360pri, space, 8) >> 4;
- spritepri[0] = tc0360pri_r(state->m_tc0360pri, space, 6) & 0x0f;
- spritepri[1] = tc0360pri_r(state->m_tc0360pri, space, 6) >> 4;
- spritepri[2] = tc0360pri_r(state->m_tc0360pri, space, 7) & 0x0f;
- spritepri[3] = tc0360pri_r(state->m_tc0360pri, space, 7) >> 4;
+ spritepri[0] = tc0360pri_r(m_tc0360pri, space, 6) & 0x0f;
+ spritepri[1] = tc0360pri_r(m_tc0360pri, space, 6) >> 4;
+ spritepri[2] = tc0360pri_r(m_tc0360pri, space, 7) & 0x0f;
+ spritepri[3] = tc0360pri_r(m_tc0360pri, space, 7) >> 4;
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(0, cliprect); /* wrong color? */
@@ -1205,12 +1195,12 @@ SCREEN_UPDATE_IND16( taitof2_thundfox )
if (tilepri[0][drawn[0]] < tilepri[1][drawn[1]])
{
pick = 0;
- tc0100scn = state->m_tc0100scn_1;
+ tc0100scn = m_tc0100scn_1;
}
else
{
pick = 1;
- tc0100scn = state->m_tc0100scn_2;
+ tc0100scn = m_tc0100scn_2;
}
tc0100scn_tilemap_draw(tc0100scn , bitmap, cliprect, layer[pick][drawn[pick]], 0, 1 << (drawn[pick] + 2 * pick));
@@ -1218,12 +1208,12 @@ SCREEN_UPDATE_IND16( taitof2_thundfox )
}
while (drawn[0] < 2)
{
- tc0100scn_tilemap_draw(state->m_tc0100scn_1, bitmap, cliprect, layer[0][drawn[0]], 0, 1 << drawn[0]);
+ tc0100scn_tilemap_draw(m_tc0100scn_1, bitmap, cliprect, layer[0][drawn[0]], 0, 1 << drawn[0]);
drawn[0]++;
}
while (drawn[1] < 2)
{
- tc0100scn_tilemap_draw(state->m_tc0100scn_2, bitmap, cliprect, layer[1][drawn[1]], 0, 1 << (drawn[1] + 2));
+ tc0100scn_tilemap_draw(m_tc0100scn_2, bitmap, cliprect, layer[1][drawn[1]], 0, 1 << (drawn[1] + 2));
drawn[1]++;
}
@@ -1251,13 +1241,13 @@ SCREEN_UPDATE_IND16( taitof2_thundfox )
if (tilepri[0][2] < tilepri[1][2])
{
- tc0100scn_tilemap_draw(state->m_tc0100scn_1, bitmap, cliprect, layer[0][2], 0, 0);
- tc0100scn_tilemap_draw(state->m_tc0100scn_2, bitmap, cliprect, layer[1][2], 0, 0);
+ tc0100scn_tilemap_draw(m_tc0100scn_1, bitmap, cliprect, layer[0][2], 0, 0);
+ tc0100scn_tilemap_draw(m_tc0100scn_2, bitmap, cliprect, layer[1][2], 0, 0);
}
else
{
- tc0100scn_tilemap_draw(state->m_tc0100scn_2, bitmap, cliprect, layer[1][2], 0, 0);
- tc0100scn_tilemap_draw(state->m_tc0100scn_1, bitmap, cliprect, layer[0][2], 0, 0);
+ tc0100scn_tilemap_draw(m_tc0100scn_2, bitmap, cliprect, layer[1][2], 0, 0);
+ tc0100scn_tilemap_draw(m_tc0100scn_1, bitmap, cliprect, layer[0][2], 0, 0);
}
return 0;
}
@@ -1292,18 +1282,17 @@ and it changes these (and the sprite pri settings) a lot.
********************************************************************/
-SCREEN_UPDATE_IND16( taitof2_metalb )
+UINT32 taitof2_state::screen_update_taitof2_metalb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- taitof2_state *state = screen.machine().driver_data<taitof2_state>();
address_space &space = screen.machine().driver_data()->generic_space();
UINT8 layer[5], invlayer[4];
UINT16 priority;
taitof2_handle_sprite_buffering(screen.machine());
- tc0480scp_tilemap_update(state->m_tc0480scp);
+ tc0480scp_tilemap_update(m_tc0480scp);
- priority = tc0480scp_get_bg_priority(state->m_tc0480scp);
+ priority = tc0480scp_get_bg_priority(m_tc0480scp);
layer[0] = (priority & 0xf000) >> 12; /* tells us which bg layer is bottom */
layer[1] = (priority & 0x0f00) >> 8;
@@ -1316,27 +1305,27 @@ SCREEN_UPDATE_IND16( taitof2_metalb )
invlayer[layer[2]] = 2;
invlayer[layer[3]] = 3;
- state->m_tilepri[invlayer[0]] = tc0360pri_r(state->m_tc0360pri, space, 4) & 0x0f; /* bg0 */
- state->m_tilepri[invlayer[1]] = tc0360pri_r(state->m_tc0360pri, space, 4) >> 4; /* bg1 */
- state->m_tilepri[invlayer[2]] = tc0360pri_r(state->m_tc0360pri, space, 5) & 0x0f; /* bg2 */
- state->m_tilepri[invlayer[3]] = tc0360pri_r(state->m_tc0360pri, space, 5) >> 4; /* bg3 */
- state->m_tilepri[4] = tc0360pri_r(state->m_tc0360pri, space, 9) & 0x0f; /* fg (text layer) */
+ m_tilepri[invlayer[0]] = tc0360pri_r(m_tc0360pri, space, 4) & 0x0f; /* bg0 */
+ m_tilepri[invlayer[1]] = tc0360pri_r(m_tc0360pri, space, 4) >> 4; /* bg1 */
+ m_tilepri[invlayer[2]] = tc0360pri_r(m_tc0360pri, space, 5) & 0x0f; /* bg2 */
+ m_tilepri[invlayer[3]] = tc0360pri_r(m_tc0360pri, space, 5) >> 4; /* bg3 */
+ m_tilepri[4] = tc0360pri_r(m_tc0360pri, space, 9) & 0x0f; /* fg (text layer) */
- state->m_spritepri[0] = tc0360pri_r(state->m_tc0360pri, space, 6) & 0x0f;
- state->m_spritepri[1] = tc0360pri_r(state->m_tc0360pri, space, 6) >> 4;
- state->m_spritepri[2] = tc0360pri_r(state->m_tc0360pri, space, 7) & 0x0f;
- state->m_spritepri[3] = tc0360pri_r(state->m_tc0360pri, space, 7) >> 4;
+ m_spritepri[0] = tc0360pri_r(m_tc0360pri, space, 6) & 0x0f;
+ m_spritepri[1] = tc0360pri_r(m_tc0360pri, space, 6) >> 4;
+ m_spritepri[2] = tc0360pri_r(m_tc0360pri, space, 7) & 0x0f;
+ m_spritepri[3] = tc0360pri_r(m_tc0360pri, space, 7) >> 4;
- state->m_spriteblendmode = tc0360pri_r(state->m_tc0360pri, space, 0) & 0xc0;
+ m_spriteblendmode = tc0360pri_r(m_tc0360pri, space, 0) & 0xc0;
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(0, cliprect);
- tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[0], 0 ,1);
- tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[1], 0, 2);
- tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[2], 0, 4);
- tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[3], 0, 8);
- tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[4], 0, 16);
+ tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[0], 0 ,1);
+ tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[1], 0, 2);
+ tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[2], 0, 4);
+ tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[3], 0, 8);
+ tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[4], 0, 16);
draw_sprites(screen.machine(), bitmap, cliprect, NULL, 1);
return 0;
@@ -1344,9 +1333,8 @@ SCREEN_UPDATE_IND16( taitof2_metalb )
/* Deadconx, Footchmp */
-SCREEN_UPDATE_IND16( taitof2_deadconx )
+UINT32 taitof2_state::screen_update_taitof2_deadconx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- taitof2_state *state = screen.machine().driver_data<taitof2_state>();
address_space &space = screen.machine().driver_data()->generic_space();
UINT8 layer[5];
UINT8 tilepri[5];
@@ -1355,9 +1343,9 @@ SCREEN_UPDATE_IND16( taitof2_deadconx )
taitof2_handle_sprite_buffering(screen.machine());
- tc0480scp_tilemap_update(state->m_tc0480scp);
+ tc0480scp_tilemap_update(m_tc0480scp);
- priority = tc0480scp_get_bg_priority(state->m_tc0480scp);
+ priority = tc0480scp_get_bg_priority(m_tc0480scp);
layer[0] = (priority & 0xf000) >> 12; /* tells us which bg layer is bottom */
layer[1] = (priority & 0x0f00) >> 8;
@@ -1365,26 +1353,26 @@ SCREEN_UPDATE_IND16( taitof2_deadconx )
layer[3] = (priority & 0x000f) >> 0; /* tells us which is top */
layer[4] = 4; /* text layer always over bg layers */
- tilepri[0] = tc0360pri_r(state->m_tc0360pri, space, 4) >> 4; /* bg0 */
- tilepri[1] = tc0360pri_r(state->m_tc0360pri, space, 5) & 0x0f; /* bg1 */
- tilepri[2] = tc0360pri_r(state->m_tc0360pri, space, 5) >> 4; /* bg2 */
- tilepri[3] = tc0360pri_r(state->m_tc0360pri, space, 4) & 0x0f; /* bg3 */
+ tilepri[0] = tc0360pri_r(m_tc0360pri, space, 4) >> 4; /* bg0 */
+ tilepri[1] = tc0360pri_r(m_tc0360pri, space, 5) & 0x0f; /* bg1 */
+ tilepri[2] = tc0360pri_r(m_tc0360pri, space, 5) >> 4; /* bg2 */
+ tilepri[3] = tc0360pri_r(m_tc0360pri, space, 4) & 0x0f; /* bg3 */
/* we actually assume text layer is on top of everything anyway, but FWIW... */
- tilepri[layer[4]] = tc0360pri_r(state->m_tc0360pri, space, 7) >> 4; /* fg (text layer) */
+ tilepri[layer[4]] = tc0360pri_r(m_tc0360pri, space, 7) >> 4; /* fg (text layer) */
- spritepri[0] = tc0360pri_r(state->m_tc0360pri, space, 6) & 0x0f;
- spritepri[1] = tc0360pri_r(state->m_tc0360pri, space, 6) >> 4;
- spritepri[2] = tc0360pri_r(state->m_tc0360pri, space, 7) & 0x0f;
- spritepri[3] = tc0360pri_r(state->m_tc0360pri, space, 7) >> 4;
+ spritepri[0] = tc0360pri_r(m_tc0360pri, space, 6) & 0x0f;
+ spritepri[1] = tc0360pri_r(m_tc0360pri, space, 6) >> 4;
+ spritepri[2] = tc0360pri_r(m_tc0360pri, space, 7) & 0x0f;
+ spritepri[3] = tc0360pri_r(m_tc0360pri, space, 7) >> 4;
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(0, cliprect);
- tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[0], 0 ,1);
- tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[1], 0, 2);
- tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[2], 0, 4);
- tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[3], 0, 8);
+ tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[0], 0 ,1);
+ tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[1], 0, 2);
+ tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[2], 0, 4);
+ tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[3], 0, 8);
{
int primasks[4] = {0,0,0,0};
@@ -1407,6 +1395,6 @@ SCREEN_UPDATE_IND16( taitof2_deadconx )
that the FG layer is always on top of sprites.
*/
- tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[4], 0, 0);
+ tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[4], 0, 0);
return 0;
}
diff --git a/src/mame/video/taito_f3.c b/src/mame/video/taito_f3.c
index d6ed5fe0c5c..0c7c068e602 100644
--- a/src/mame/video/taito_f3.c
+++ b/src/mame/video/taito_f3.c
@@ -505,25 +505,24 @@ TILE_GET_INFO_MEMBER(taito_f3_state::get_tile_info_pixel)
/******************************************************************************/
-SCREEN_VBLANK( f3 )
+void taito_f3_state::screen_eof_f3(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- taito_f3_state *state = screen.machine().driver_data<taito_f3_state>();
- if (state->m_sprite_lag==2)
+ if (m_sprite_lag==2)
{
if (screen.machine().video().skip_this_frame() == 0)
{
- get_sprite_info(screen.machine(), state->m_spriteram16_buffered);
+ get_sprite_info(screen.machine(), m_spriteram16_buffered);
}
- memcpy(state->m_spriteram16_buffered,state->m_spriteram,0x10000);
+ memcpy(m_spriteram16_buffered,m_spriteram,0x10000);
}
- else if (state->m_sprite_lag==1)
+ else if (m_sprite_lag==1)
{
if (screen.machine().video().skip_this_frame() == 0)
{
- get_sprite_info(screen.machine(), state->m_spriteram);
+ get_sprite_info(screen.machine(), m_spriteram);
}
}
}
@@ -3149,32 +3148,31 @@ static void draw_sprites(running_machine &machine, bitmap_rgb32 &bitmap, const r
/******************************************************************************/
-SCREEN_UPDATE_RGB32( f3 )
+UINT32 taito_f3_state::screen_update_f3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- taito_f3_state *state = screen.machine().driver_data<taito_f3_state>();
UINT32 sy_fix[5],sx_fix[5];
- state->m_f3_skip_this_frame=0;
- screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
+ m_f3_skip_this_frame=0;
+ screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
/* Setup scroll */
- sy_fix[0]=((state->m_f3_control_0[4]&0xffff)<< 9) + (1<<16);
- sy_fix[1]=((state->m_f3_control_0[5]&0xffff)<< 9) + (1<<16);
- sy_fix[2]=((state->m_f3_control_0[6]&0xffff)<< 9) + (1<<16);
- sy_fix[3]=((state->m_f3_control_0[7]&0xffff)<< 9) + (1<<16);
- sx_fix[0]=((state->m_f3_control_0[0]&0xffc0)<<10) - (6<<16);
- sx_fix[1]=((state->m_f3_control_0[1]&0xffc0)<<10) - (10<<16);
- sx_fix[2]=((state->m_f3_control_0[2]&0xffc0)<<10) - (14<<16);
- sx_fix[3]=((state->m_f3_control_0[3]&0xffc0)<<10) - (18<<16);
- sx_fix[4]=-(state->m_f3_control_1[4])+41;
- sy_fix[4]=-(state->m_f3_control_1[5]&0x1ff);
-
- sx_fix[0]-=((state->m_f3_control_0[0]&0x003f)<<10)+0x0400-0x10000;
- sx_fix[1]-=((state->m_f3_control_0[1]&0x003f)<<10)+0x0400-0x10000;
- sx_fix[2]-=((state->m_f3_control_0[2]&0x003f)<<10)+0x0400-0x10000;
- sx_fix[3]-=((state->m_f3_control_0[3]&0x003f)<<10)+0x0400-0x10000;
-
- if (state->m_flipscreen)
+ sy_fix[0]=((m_f3_control_0[4]&0xffff)<< 9) + (1<<16);
+ sy_fix[1]=((m_f3_control_0[5]&0xffff)<< 9) + (1<<16);
+ sy_fix[2]=((m_f3_control_0[6]&0xffff)<< 9) + (1<<16);
+ sy_fix[3]=((m_f3_control_0[7]&0xffff)<< 9) + (1<<16);
+ sx_fix[0]=((m_f3_control_0[0]&0xffc0)<<10) - (6<<16);
+ sx_fix[1]=((m_f3_control_0[1]&0xffc0)<<10) - (10<<16);
+ sx_fix[2]=((m_f3_control_0[2]&0xffc0)<<10) - (14<<16);
+ sx_fix[3]=((m_f3_control_0[3]&0xffc0)<<10) - (18<<16);
+ sx_fix[4]=-(m_f3_control_1[4])+41;
+ sy_fix[4]=-(m_f3_control_1[5]&0x1ff);
+
+ sx_fix[0]-=((m_f3_control_0[0]&0x003f)<<10)+0x0400-0x10000;
+ sx_fix[1]-=((m_f3_control_0[1]&0x003f)<<10)+0x0400-0x10000;
+ sx_fix[2]-=((m_f3_control_0[2]&0x003f)<<10)+0x0400-0x10000;
+ sx_fix[3]-=((m_f3_control_0[3]&0x003f)<<10)+0x0400-0x10000;
+
+ if (m_flipscreen)
{
sy_fix[0]= 0x3000000-sy_fix[0];
sy_fix[1]= 0x3000000-sy_fix[1];
@@ -3188,24 +3186,24 @@ SCREEN_UPDATE_RGB32( f3 )
sy_fix[4]=-sy_fix[4];
}
- state->m_pri_alp_bitmap.fill(0, cliprect);
+ m_pri_alp_bitmap.fill(0, cliprect);
/* sprites */
- if (state->m_sprite_lag==0)
- get_sprite_info(screen.machine(), state->m_spriteram);
+ if (m_sprite_lag==0)
+ get_sprite_info(screen.machine(), m_spriteram);
/* Update sprite buffer */
draw_sprites(screen.machine(), bitmap,cliprect);
/* Parse sprite, alpha & clipping parts of lineram */
- get_spritealphaclip_info(state);
+ get_spritealphaclip_info(this);
/* Parse playfield effects */
- get_line_ram_info(screen.machine(), state->m_pf1_tilemap,sx_fix[0],sy_fix[0],0,state->m_f3_pf_data_1);
- get_line_ram_info(screen.machine(), state->m_pf2_tilemap,sx_fix[1],sy_fix[1],1,state->m_f3_pf_data_2);
- get_line_ram_info(screen.machine(), state->m_pf3_tilemap,sx_fix[2],sy_fix[2],2,state->m_f3_pf_data_3);
- get_line_ram_info(screen.machine(), state->m_pf4_tilemap,sx_fix[3],sy_fix[3],3,state->m_f3_pf_data_4);
- get_vram_info(screen.machine(), state->m_vram_layer,state->m_pixel_layer,sx_fix[4],sy_fix[4]);
+ get_line_ram_info(screen.machine(), m_pf1_tilemap,sx_fix[0],sy_fix[0],0,m_f3_pf_data_1);
+ get_line_ram_info(screen.machine(), m_pf2_tilemap,sx_fix[1],sy_fix[1],1,m_f3_pf_data_2);
+ get_line_ram_info(screen.machine(), m_pf3_tilemap,sx_fix[2],sy_fix[2],2,m_f3_pf_data_3);
+ get_line_ram_info(screen.machine(), m_pf4_tilemap,sx_fix[3],sy_fix[3],3,m_f3_pf_data_4);
+ get_vram_info(screen.machine(), m_vram_layer,m_pixel_layer,sx_fix[4],sy_fix[4]);
/* Draw final framebuffer */
scanline_draw(screen.machine(), bitmap,cliprect);
diff --git a/src/mame/video/taito_h.c b/src/mame/video/taito_h.c
index 5473cad3212..f2808eeaf91 100644
--- a/src/mame/video/taito_h.c
+++ b/src/mame/video/taito_h.c
@@ -394,30 +394,28 @@ static void taitoh_log_vram(running_machine &machine)
/**************************************************************************/
-SCREEN_UPDATE_IND16( syvalion )
+UINT32 taitoh_state::screen_update_syvalion(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- taitoh_state *state = screen.machine().driver_data<taitoh_state>();
- tc0080vco_tilemap_update(state->m_tc0080vco);
+ tc0080vco_tilemap_update(m_tc0080vco);
taitoh_log_vram(screen.machine());
bitmap.fill(0, cliprect);
- tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0);
- tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 1, 0, 0);
+ tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0);
+ tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 1, 0, 0);
syvalion_draw_sprites(screen.machine(), bitmap,cliprect);
- tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 2, 0, 0);
+ tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 2, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( recordbr )
+UINT32 taitoh_state::screen_update_recordbr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- taitoh_state *state = screen.machine().driver_data<taitoh_state>();
- tc0080vco_tilemap_update(state->m_tc0080vco);
+ tc0080vco_tilemap_update(m_tc0080vco);
taitoh_log_vram(screen.machine());
@@ -425,30 +423,29 @@ SCREEN_UPDATE_IND16( recordbr )
#ifdef MAME_DEBUG
if (!screen.machine().input().code_pressed(KEYCODE_A))
- tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0);
+ tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0);
if (!screen.machine().input().code_pressed(KEYCODE_S))
recordbr_draw_sprites(screen.machine(), bitmap, cliprect, 0);
if (!screen.machine().input().code_pressed(KEYCODE_D))
- tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 1, 0, 0);
+ tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 1, 0, 0);
if (!screen.machine().input().code_pressed(KEYCODE_F))
recordbr_draw_sprites(screen.machine(), bitmap, cliprect, 1);
#else
- tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0);
+ tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0);
recordbr_draw_sprites(screen.machine(), bitmap, cliprect, 0);
- tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 1, 0, 0);
+ tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 1, 0, 0);
recordbr_draw_sprites(screen.machine(), bitmap, cliprect, 1);
#endif
- tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 2, 0, 0);
+ tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 2, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( dleague )
+UINT32 taitoh_state::screen_update_dleague(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- taitoh_state *state = screen.machine().driver_data<taitoh_state>();
- tc0080vco_tilemap_update(state->m_tc0080vco);
+ tc0080vco_tilemap_update(m_tc0080vco);
taitoh_log_vram(screen.machine());
@@ -456,21 +453,21 @@ SCREEN_UPDATE_IND16( dleague )
#ifdef MAME_DEBUG
if (!screen.machine().input().code_pressed(KEYCODE_A))
- tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0);
+ tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0);
if (!screen.machine().input().code_pressed(KEYCODE_S))
dleague_draw_sprites(screen.machine(), bitmap, cliprect, 0);
if (!screen.machine().input().code_pressed(KEYCODE_D))
- tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 1, 0, 0);
+ tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 1, 0, 0);
if (!screen.machine().input().code_pressed(KEYCODE_F))
dleague_draw_sprites(screen.machine(), bitmap, cliprect, 1);
#else
- tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0);
+ tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0);
dleague_draw_sprites (screen.machine(), bitmap, cliprect, 0);
- tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 1, 0, 0);
+ tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 1, 0, 0);
dleague_draw_sprites (screen.machine(), bitmap, cliprect, 1);
#endif
- tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 2, 0, 0);
+ tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 2, 0, 0);
return 0;
}
diff --git a/src/mame/video/taito_l.c b/src/mame/video/taito_l.c
index a2f50d2948d..f398c73829f 100644
--- a/src/mame/video/taito_l.c
+++ b/src/mame/video/taito_l.c
@@ -275,41 +275,40 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
-SCREEN_UPDATE_IND16( taitol )
+UINT32 taitol_state::screen_update_taitol(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- taitol_state *state = screen.machine().driver_data<taitol_state>();
int dx, dy;
- dx = state->m_rambanks[0xb3f4] | (state->m_rambanks[0xb3f5] << 8);
- if (state->m_flipscreen)
+ dx = m_rambanks[0xb3f4] | (m_rambanks[0xb3f5] << 8);
+ if (m_flipscreen)
dx = ((dx & 0xfffc) | ((dx - 3) & 0x0003)) ^ 0xf;
- dy = state->m_rambanks[0xb3f6];
+ dy = m_rambanks[0xb3f6];
- state->m_bg18_tilemap->set_scrollx(0, -dx);
- state->m_bg18_tilemap->set_scrolly(0, -dy);
+ m_bg18_tilemap->set_scrollx(0, -dx);
+ m_bg18_tilemap->set_scrolly(0, -dy);
- dx = state->m_rambanks[0xb3fc] | (state->m_rambanks[0xb3fd] << 8);
- if (state->m_flipscreen)
+ dx = m_rambanks[0xb3fc] | (m_rambanks[0xb3fd] << 8);
+ if (m_flipscreen)
dx = ((dx & 0xfffc) | ((dx - 3) & 0x0003)) ^ 0xf;
- dy = state->m_rambanks[0xb3fe];
+ dy = m_rambanks[0xb3fe];
- state->m_bg19_tilemap->set_scrollx(0, -dx);
- state->m_bg19_tilemap->set_scrolly(0, -dy);
+ m_bg19_tilemap->set_scrollx(0, -dx);
+ m_bg19_tilemap->set_scrolly(0, -dy);
- if (state->m_cur_ctrl & 0x20) /* display enable */
+ if (m_cur_ctrl & 0x20) /* display enable */
{
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_bg19_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg19_tilemap->draw(bitmap, cliprect, 0, 0);
- if (state->m_cur_ctrl & 0x08) /* sprites always over BG1 */
- state->m_bg18_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (m_cur_ctrl & 0x08) /* sprites always over BG1 */
+ m_bg18_tilemap->draw(bitmap, cliprect, 0, 0);
else /* split priority */
- state->m_bg18_tilemap->draw(bitmap, cliprect, 0,1);
+ m_bg18_tilemap->draw(bitmap, cliprect, 0,1);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_ch1a_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_ch1a_tilemap->draw(bitmap, cliprect, 0, 0);
}
else
bitmap.fill(screen.machine().pens[0], cliprect);
@@ -318,14 +317,13 @@ SCREEN_UPDATE_IND16( taitol )
-SCREEN_VBLANK( taitol )
+void taitol_state::screen_eof_taitol(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- taitol_state *state = screen.machine().driver_data<taitol_state>();
- UINT8 *spriteram = state->m_rambanks + 0xb000;
+ UINT8 *spriteram = m_rambanks + 0xb000;
- memcpy(state->m_buff_spriteram, spriteram, TAITOL_SPRITERAM_SIZE);
+ memcpy(m_buff_spriteram, spriteram, TAITOL_SPRITERAM_SIZE);
}
}
diff --git a/src/mame/video/taito_o.c b/src/mame/video/taito_o.c
index 6ccc626faa5..47b4cba4898 100644
--- a/src/mame/video/taito_o.c
+++ b/src/mame/video/taito_o.c
@@ -139,21 +139,20 @@ static void parentj_draw_sprites( running_machine &machine, bitmap_ind16 &bitmap
}
-SCREEN_UPDATE_IND16( parentj )
+UINT32 taitoo_state::screen_update_parentj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- taitoo_state *state = screen.machine().driver_data<taitoo_state>();
- tc0080vco_tilemap_update(state->m_tc0080vco);
+ tc0080vco_tilemap_update(m_tc0080vco);
bitmap.fill(0, cliprect);
- tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0);
+ tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 0, TILEMAP_DRAW_OPAQUE, 0);
parentj_draw_sprites(screen.machine(), bitmap, cliprect, 0);
parentj_draw_sprites(screen.machine(), bitmap, cliprect, 1);
- tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 1, 0, 0);
- tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 2, 0, 0);
+ tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 1, 0, 0);
+ tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 2, 0, 0);
return 0;
}
diff --git a/src/mame/video/taito_z.c b/src/mame/video/taito_z.c
index 17942d9ffaa..1a9c85d79dd 100644
--- a/src/mame/video/taito_z.c
+++ b/src/mame/video/taito_z.c
@@ -837,14 +837,13 @@ WRITE16_MEMBER(taitoz_state::contcirc_out_w)
}
-SCREEN_UPDATE_IND16( contcirc )
+UINT32 taitoz_state::screen_update_contcirc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- taitoz_state *state = screen.machine().driver_data<taitoz_state>();
UINT8 layer[3];
- tc0100scn_tilemap_update(state->m_tc0100scn);
+ tc0100scn_tilemap_update(m_tc0100scn);
- layer[0] = tc0100scn_bottomlayer(state->m_tc0100scn);
+ layer[0] = tc0100scn_bottomlayer(m_tc0100scn);
layer[1] = layer[0] ^ 1;
layer[2] = 2;
@@ -852,10 +851,10 @@ SCREEN_UPDATE_IND16( contcirc )
bitmap.fill(0, cliprect);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[0], 0, 0);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[1], 0, 1);
- tc0150rod_draw(state->m_tc0150rod, bitmap, cliprect, -3, state->m_road_palbank << 6, 1, 0, 1, 2); // -6
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[0], 0, 0);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[1], 0, 1);
+ tc0150rod_draw(m_tc0150rod, bitmap, cliprect, -3, m_road_palbank << 6, 1, 0, 1, 2); // -6
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
contcirc_draw_sprites_16x8(screen.machine(), bitmap, cliprect, 5); // 7
return 0;
@@ -864,14 +863,13 @@ SCREEN_UPDATE_IND16( contcirc )
/* Nightstr and ChaseHQ */
-SCREEN_UPDATE_IND16( chasehq )
+UINT32 taitoz_state::screen_update_chasehq(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- taitoz_state *state = screen.machine().driver_data<taitoz_state>();
UINT8 layer[3];
- tc0100scn_tilemap_update(state->m_tc0100scn);
+ tc0100scn_tilemap_update(m_tc0100scn);
- layer[0] = tc0100scn_bottomlayer(state->m_tc0100scn);
+ layer[0] = tc0100scn_bottomlayer(m_tc0100scn);
layer[1] = layer[0] ^ 1;
layer[2] = 2;
@@ -880,24 +878,23 @@ SCREEN_UPDATE_IND16( chasehq )
/* Ensure screen blanked even when bottom layer not drawn due to disable bit */
bitmap.fill(0, cliprect);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[1], 0, 1);
- tc0150rod_draw(state->m_tc0150rod, bitmap, cliprect, -1, 0xc0, 0, 0, 1, 2);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[1], 0, 1);
+ tc0150rod_draw(m_tc0150rod, bitmap, cliprect, -1, 0xc0, 0, 0, 1, 2);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
chasehq_draw_sprites_16x16(screen.machine(), bitmap, cliprect, 7);
return 0;
}
-SCREEN_UPDATE_IND16( bshark )
+UINT32 taitoz_state::screen_update_bshark(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- taitoz_state *state = screen.machine().driver_data<taitoz_state>();
UINT8 layer[3];
- tc0100scn_tilemap_update(state->m_tc0100scn);
+ tc0100scn_tilemap_update(m_tc0100scn);
- layer[0] = tc0100scn_bottomlayer(state->m_tc0100scn);
+ layer[0] = tc0100scn_bottomlayer(m_tc0100scn);
layer[1] = layer[0] ^ 1;
layer[2] = 2;
@@ -906,24 +903,23 @@ SCREEN_UPDATE_IND16( bshark )
/* Ensure screen blanked even when bottom layer not drawn due to disable bit */
bitmap.fill(0, cliprect);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[1], 0, 1);
- tc0150rod_draw(state->m_tc0150rod, bitmap, cliprect, -1, 0xc0, 0, 1, 1, 2);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[1], 0, 1);
+ tc0150rod_draw(m_tc0150rod, bitmap, cliprect, -1, 0xc0, 0, 1, 1, 2);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
bshark_draw_sprites_16x8(screen.machine(), bitmap, cliprect, 8);
return 0;
}
-SCREEN_UPDATE_IND16( sci )
+UINT32 taitoz_state::screen_update_sci(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- taitoz_state *state = screen.machine().driver_data<taitoz_state>();
UINT8 layer[3];
- tc0100scn_tilemap_update(state->m_tc0100scn);
+ tc0100scn_tilemap_update(m_tc0100scn);
- layer[0] = tc0100scn_bottomlayer(state->m_tc0100scn);
+ layer[0] = tc0100scn_bottomlayer(m_tc0100scn);
layer[1] = layer[0] ^ 1;
layer[2] = 2;
@@ -932,24 +928,23 @@ SCREEN_UPDATE_IND16( sci )
/* Ensure screen blanked even when bottom layer not drawn due to disable bit */
bitmap.fill(0, cliprect);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[1], 0, 1);
- tc0150rod_draw(state->m_tc0150rod, bitmap, cliprect, -1, 0xc0, 0, 0, 1, 2);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[1], 0, 1);
+ tc0150rod_draw(m_tc0150rod, bitmap, cliprect, -1, 0xc0, 0, 0, 1, 2);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
sci_draw_sprites_16x8(screen.machine(), bitmap, cliprect, 6);
return 0;
}
-SCREEN_UPDATE_IND16( aquajack )
+UINT32 taitoz_state::screen_update_aquajack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- taitoz_state *state = screen.machine().driver_data<taitoz_state>();
UINT8 layer[3];
- tc0100scn_tilemap_update(state->m_tc0100scn);
+ tc0100scn_tilemap_update(m_tc0100scn);
- layer[0] = tc0100scn_bottomlayer(state->m_tc0100scn);
+ layer[0] = tc0100scn_bottomlayer(m_tc0100scn);
layer[1] = layer[0] ^ 1;
layer[2] = 2;
@@ -958,24 +953,23 @@ SCREEN_UPDATE_IND16( aquajack )
/* Ensure screen blanked even when bottom layer not drawn due to disable bit */
bitmap.fill(0, cliprect);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[1], 0, 1);
- tc0150rod_draw(state->m_tc0150rod, bitmap, cliprect, -1, 0, 2, 1, 1, 2);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[1], 0, 1);
+ tc0150rod_draw(m_tc0150rod, bitmap, cliprect, -1, 0, 2, 1, 1, 2);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
aquajack_draw_sprites_16x8(screen.machine(), bitmap, cliprect, 3);
return 0;
}
-SCREEN_UPDATE_IND16( spacegun )
+UINT32 taitoz_state::screen_update_spacegun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- taitoz_state *state = screen.machine().driver_data<taitoz_state>();
UINT8 layer[3];
- tc0100scn_tilemap_update(state->m_tc0100scn);
+ tc0100scn_tilemap_update(m_tc0100scn);
- layer[0] = tc0100scn_bottomlayer(state->m_tc0100scn);
+ layer[0] = tc0100scn_bottomlayer(m_tc0100scn);
layer[1] = layer[0] ^ 1;
layer[2] = 2;
@@ -984,9 +978,9 @@ SCREEN_UPDATE_IND16( spacegun )
/* Ensure screen blanked even when bottom layer not drawn due to disable bit */
bitmap.fill(0, cliprect);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[1], 0, 2);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[1], 0, 2);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[2], 0, 4);
spacegun_draw_sprites_16x8(screen.machine(), bitmap, cliprect, 4);
@@ -994,15 +988,14 @@ SCREEN_UPDATE_IND16( spacegun )
}
-SCREEN_UPDATE_IND16( dblaxle )
+UINT32 taitoz_state::screen_update_dblaxle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- taitoz_state *state = screen.machine().driver_data<taitoz_state>();
UINT8 layer[5];
UINT16 priority;
- tc0480scp_tilemap_update(state->m_tc0480scp);
+ tc0480scp_tilemap_update(m_tc0480scp);
- priority = tc0480scp_get_bg_priority(state->m_tc0480scp);
+ priority = tc0480scp_get_bg_priority(m_tc0480scp);
layer[0] = (priority & 0xf000) >> 12; /* tells us which bg layer is bottom */
layer[1] = (priority & 0x0f00) >> 8;
@@ -1015,30 +1008,29 @@ SCREEN_UPDATE_IND16( dblaxle )
/* Ensure screen blanked - this shouldn't be necessary! */
bitmap.fill(0, cliprect);
- tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0);
- tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[1], 0, 0);
- tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[2], 0, 1);
+ tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0);
+ tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[1], 0, 0);
+ tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[2], 0, 1);
- tc0150rod_draw(state->m_tc0150rod, bitmap, cliprect, -1, 0xc0, 0, 0, 1, 2);
+ tc0150rod_draw(m_tc0150rod, bitmap, cliprect, -1, 0xc0, 0, 0, 1, 2);
bshark_draw_sprites_16x8(screen.machine(), bitmap, cliprect, 7);
/* This layer used for the big numeric displays */
- tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[3], 0, 4);
+ tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[3], 0, 4);
- tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[4], 0, 0); /* Text layer */
+ tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[4], 0, 0); /* Text layer */
return 0;
}
-SCREEN_UPDATE_IND16( racingb )
+UINT32 taitoz_state::screen_update_racingb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- taitoz_state *state = screen.machine().driver_data<taitoz_state>();
UINT8 layer[5];
UINT16 priority;
- tc0480scp_tilemap_update(state->m_tc0480scp);
+ tc0480scp_tilemap_update(m_tc0480scp);
- priority = tc0480scp_get_bg_priority(state->m_tc0480scp);
+ priority = tc0480scp_get_bg_priority(m_tc0480scp);
layer[0] = (priority & 0xf000) >> 12; /* tells us which bg layer is bottom */
layer[1] = (priority & 0x0f00) >> 8;
@@ -1051,14 +1043,14 @@ SCREEN_UPDATE_IND16( racingb )
/* Ensure screen blanked - this shouldn't be necessary! */
bitmap.fill(0, cliprect);
- tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0);
- tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[1], 0, 0);
- tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[2], 0, 2);
- tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[3], 0, 2);
+ tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 0);
+ tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[1], 0, 0);
+ tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[2], 0, 2);
+ tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[3], 0, 2);
- tc0150rod_draw(state->m_tc0150rod, bitmap, cliprect, -1, 0xc0, 0, 0, 1, 2);
+ tc0150rod_draw(m_tc0150rod, bitmap, cliprect, -1, 0xc0, 0, 0, 1, 2);
sci_draw_sprites_16x8(screen.machine(), bitmap, cliprect, 7);
- tc0480scp_tilemap_draw(state->m_tc0480scp, bitmap, cliprect, layer[4], 0, 4);
+ tc0480scp_tilemap_draw(m_tc0480scp, bitmap, cliprect, layer[4], 0, 4);
return 0;
}
diff --git a/src/mame/video/taitoair.c b/src/mame/video/taitoair.c
index a9f1671da0f..76c453439a9 100644
--- a/src/mame/video/taitoair.c
+++ b/src/mame/video/taitoair.c
@@ -563,11 +563,10 @@ void taitoair_state::video_start()
//m_buffer3d = auto_bitmap_ind16_alloc(machine(), width, height);
}
-SCREEN_UPDATE_IND16( taitoair )
+UINT32 taitoair_state::screen_update_taitoair(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- taitoair_state *state = screen.machine().driver_data<taitoair_state>();
- tc0080vco_tilemap_update(state->m_tc0080vco);
+ tc0080vco_tilemap_update(m_tc0080vco);
bitmap.fill(0, cliprect);
@@ -600,21 +599,21 @@ SCREEN_UPDATE_IND16( taitoair )
#endif
}
- tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 0, 0, 0);
+ tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 0, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 0);
- copybitmap_trans(bitmap, *state->m_framebuffer[1], 0, 0, 0, 0, cliprect, 0);
+ copybitmap_trans(bitmap, *m_framebuffer[1], 0, 0, 0, 0, cliprect, 0);
- tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 1, 0, 0);
+ tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 1, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 1);
- tc0080vco_tilemap_draw(state->m_tc0080vco, bitmap, cliprect, 2, 0, 0);
+ tc0080vco_tilemap_draw(m_tc0080vco, bitmap, cliprect, 2, 0, 0);
/* Hacky 3d bitmap */
- //copybitmap_trans(bitmap, state->m_buffer3d, 0, 0, 0, 0, cliprect, 0);
- //state->m_buffer3d->fill(0, cliprect);
+ //copybitmap_trans(bitmap, m_buffer3d, 0, 0, 0, 0, cliprect, 0);
+ //m_buffer3d->fill(0, cliprect);
return 0;
}
diff --git a/src/mame/video/taitojc.c b/src/mame/video/taitojc.c
index a3e6b8a3ba0..1025c513ee4 100644
--- a/src/mame/video/taitojc.c
+++ b/src/mame/video/taitojc.c
@@ -329,9 +329,8 @@ void taitojc_state::video_start()
m_renderer = auto_alloc(machine(), taitojc_renderer(machine(), &m_framebuffer, &m_zbuffer, m_texture));
}
-SCREEN_UPDATE_IND16( taitojc )
+UINT32 taitojc_state::screen_update_taitojc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- taitojc_state *state = screen.machine().driver_data<taitojc_state>();
bitmap.fill(0, cliprect);
@@ -341,7 +340,7 @@ SCREEN_UPDATE_IND16( taitojc )
draw_object_bank(screen.machine(), bitmap, cliprect, 2, 0);
// 3D layer
- copybitmap_trans(bitmap, state->m_framebuffer, 0, 0, 0, 0, cliprect, 0);
+ copybitmap_trans(bitmap, m_framebuffer, 0, 0, 0, 0, cliprect, 0);
// high priority objects
draw_object_bank(screen.machine(), bitmap, cliprect, 0, 1);
@@ -349,18 +348,17 @@ SCREEN_UPDATE_IND16( taitojc )
draw_object_bank(screen.machine(), bitmap, cliprect, 2, 1);
// text layer
- if (state->m_objlist[0xfc4/4] & 0x10000)
- state->m_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (m_objlist[0xfc4/4] & 0x10000)
+ m_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( dendego )
+UINT32 taitojc_state::screen_update_dendego(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- taitojc_state *state = screen.machine().driver_data<taitojc_state>();
// update controller state in artwork
- UINT8 btn = (state->ioport("BUTTONS")->read() & 0x77);
+ UINT8 btn = (ioport("BUTTONS")->read() & 0x77);
int level;
for (level = 5; level > 0; level--)
if (btn == dendego_mascon_table[level]) break;
@@ -368,14 +366,14 @@ SCREEN_UPDATE_IND16( dendego )
if (level != output_get_value("counter0"))
output_set_value("counter0", level);
- btn = (state->ioport("ANALOG1")->read() & 0xff);
+ btn = (ioport("ANALOG1")->read() & 0xff);
for (level = 10; level > 0; level--)
if (btn >= dendego_brake_table[level]) break;
if (level != output_get_value("counter1"))
output_set_value("counter1", level);
- return SCREEN_UPDATE16_CALL(taitojc);
+ return SCREEN_UPDATE16_CALL_MEMBER(taitojc);
}
diff --git a/src/mame/video/taitosj.c b/src/mame/video/taitosj.c
index c5bb9be7a10..3616b52bf1c 100644
--- a/src/mame/video/taitosj.c
+++ b/src/mame/video/taitosj.c
@@ -742,13 +742,13 @@ static int video_update_common(running_machine &machine, bitmap_ind16 &bitmap,
}
-SCREEN_UPDATE_IND16( taitosj )
+UINT32 taitosj_state::screen_update_taitosj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return video_update_common(screen.machine(), bitmap, cliprect, taitosj_copy_layer);
}
-SCREEN_UPDATE_IND16( kikstart )
+UINT32 taitosj_state::screen_update_kikstart(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return video_update_common(screen.machine(), bitmap, cliprect, kikstart_copy_layer);
}
diff --git a/src/mame/video/tank8.c b/src/mame/video/tank8.c
index a5ead4dfa5e..86d85fdf57f 100644
--- a/src/mame/video/tank8.c
+++ b/src/mame/video/tank8.c
@@ -174,11 +174,10 @@ static TIMER_CALLBACK( tank8_collision_callback )
}
-SCREEN_UPDATE_IND16( tank8 )
+UINT32 tank8_state::screen_update_tank8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tank8_state *state = screen.machine().driver_data<tank8_state>();
- set_pens(state, screen.machine().colortable);
- state->m_tilemap->draw(bitmap, cliprect, 0, 0);
+ set_pens(this, screen.machine().colortable);
+ m_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
draw_bullets(screen.machine(), bitmap, cliprect);
@@ -186,31 +185,30 @@ SCREEN_UPDATE_IND16( tank8 )
}
-SCREEN_VBLANK( tank8 )
+void tank8_state::screen_eof_tank8(screen_device &screen, bool state)
{
// on falling edge
- if (!vblank_on)
+ if (!state)
{
- tank8_state *state = screen.machine().driver_data<tank8_state>();
int x;
int y;
const rectangle &visarea = screen.machine().primary_screen->visible_area();
- state->m_tilemap->draw(state->m_helper1, visarea, 0, 0);
+ m_tilemap->draw(m_helper1, visarea, 0, 0);
- state->m_helper2.fill(8, visarea);
- state->m_helper3.fill(8, visarea);
+ m_helper2.fill(8, visarea);
+ m_helper3.fill(8, visarea);
- draw_sprites(screen.machine(), state->m_helper2, visarea);
- draw_bullets(screen.machine(), state->m_helper3, visarea);
+ draw_sprites(screen.machine(), m_helper2, visarea);
+ draw_bullets(screen.machine(), m_helper3, visarea);
for (y = visarea.min_y; y <= visarea.max_y; y++)
{
int _state = 0;
- const UINT16* p1 = &state->m_helper1.pix16(y);
- const UINT16* p2 = &state->m_helper2.pix16(y);
- const UINT16* p3 = &state->m_helper3.pix16(y);
+ const UINT16* p1 = &m_helper1.pix16(y);
+ const UINT16* p2 = &m_helper2.pix16(y);
+ const UINT16* p3 = &m_helper3.pix16(y);
if (y % 2 != screen.machine().primary_screen->frame_number() % 2)
continue; /* video display is interlaced */
@@ -264,10 +262,10 @@ SCREEN_VBLANK( tank8 )
if (p1[x] == 0x11)
index |= 0x20;
- if (y - get_y_pos(state, sprite_num) >= 8)
+ if (y - get_y_pos(this, sprite_num) >= 8)
index |= 0x40; /* collision on bottom side */
- if (x - get_x_pos(state, sprite_num) >= 8)
+ if (x - get_x_pos(this, sprite_num) >= 8)
index |= 0x80; /* collision on right side */
}
diff --git a/src/mame/video/tankbatt.c b/src/mame/video/tankbatt.c
index a966c30c242..ce9f720c835 100644
--- a/src/mame/video/tankbatt.c
+++ b/src/mame/video/tankbatt.c
@@ -99,10 +99,9 @@ static void draw_bullets(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( tankbatt )
+UINT32 tankbatt_state::screen_update_tankbatt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tankbatt_state *state = screen.machine().driver_data<tankbatt_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_bullets(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/tankbust.c b/src/mame/video/tankbust.c
index d7fc231a5a9..07cc2537c3f 100644
--- a/src/mame/video/tankbust.c
+++ b/src/mame/video/tankbust.c
@@ -221,27 +221,26 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
-SCREEN_UPDATE_IND16( tankbust )
+UINT32 tankbust_state::screen_update_tankbust(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tankbust_state *state = screen.machine().driver_data<tankbust_state>();
#if 0
int i;
for (i=0; i<0x800; i++)
{
- int tile_attrib = state->m_colorram[i];
+ int tile_attrib = m_colorram[i];
if ( (tile_attrib&8) || (tile_attrib&0x80) )
{
- state->m_bg_tilemap->mark_tile_dirty(i);
+ m_bg_tilemap->mark_tile_dirty(i);
}
}
#endif
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
- state->m_txt_tilemap->draw(bitmap, cliprect, 0,0);
+ m_txt_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/video/taotaido.c b/src/mame/video/taotaido.c
index 13f517c4394..c5cd48e683d 100644
--- a/src/mame/video/taotaido.c
+++ b/src/mame/video/taotaido.c
@@ -192,11 +192,10 @@ void taotaido_state::video_start()
}
-SCREEN_UPDATE_IND16(taotaido)
+UINT32 taotaido_state::screen_update_taotaido(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- taotaido_state *state = screen.machine().driver_data<taotaido_state>();
-// state->m_bg_tilemap->set_scrollx(0,(state->m_scrollram[0x380/2]>>4)); // the values put here end up being wrong every other frame
-// state->m_bg_tilemap->set_scrolly(0,(state->m_scrollram[0x382/2]>>4)); // the values put here end up being wrong every other frame
+// m_bg_tilemap->set_scrollx(0,(m_scrollram[0x380/2]>>4)); // the values put here end up being wrong every other frame
+// m_bg_tilemap->set_scrolly(0,(m_scrollram[0x382/2]>>4)); // the values put here end up being wrong every other frame
/* not amazingly efficient however it should be functional for row select and linescroll */
int line;
@@ -209,28 +208,27 @@ SCREEN_UPDATE_IND16(taotaido)
{
clip.min_y = clip.max_y = line;
- state->m_bg_tilemap->set_scrollx(0,((state->m_scrollram[(0x00+4*line)/2])>>4)+30);
- state->m_bg_tilemap->set_scrolly(0,((state->m_scrollram[(0x02+4*line)/2])>>4)-line);
+ m_bg_tilemap->set_scrollx(0,((m_scrollram[(0x00+4*line)/2])>>4)+30);
+ m_bg_tilemap->set_scrolly(0,((m_scrollram[(0x02+4*line)/2])>>4)-line);
- state->m_bg_tilemap->draw(bitmap, clip, 0,0);
+ m_bg_tilemap->draw(bitmap, clip, 0,0);
}
draw_sprites(screen.machine(), bitmap,cliprect);
return 0;
}
-SCREEN_VBLANK( taotaido )
+void taotaido_state::screen_eof_taotaido(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- taotaido_state *state = screen.machine().driver_data<taotaido_state>();
/* sprites need to be delayed by 2 frames? */
- memcpy(state->m_spriteram2_older,state->m_spriteram2_old,0x10000);
- memcpy(state->m_spriteram2_old,state->m_spriteram2,0x10000);
+ memcpy(m_spriteram2_older,m_spriteram2_old,0x10000);
+ memcpy(m_spriteram2_old,m_spriteram2,0x10000);
- memcpy(state->m_spriteram_older,state->m_spriteram_old,0x2000);
- memcpy(state->m_spriteram_old,state->m_spriteram,0x2000);
+ memcpy(m_spriteram_older,m_spriteram_old,0x2000);
+ memcpy(m_spriteram_old,m_spriteram,0x2000);
}
}
diff --git a/src/mame/video/targeth.c b/src/mame/video/targeth.c
index a01e06f4692..e14f2a936d8 100644
--- a/src/mame/video/targeth.c
+++ b/src/mame/video/targeth.c
@@ -129,17 +129,16 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
***************************************************************************/
-SCREEN_UPDATE_IND16( targeth )
+UINT32 targeth_state::screen_update_targeth(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- targeth_state *state = screen.machine().driver_data<targeth_state>();
/* set scroll registers */
- state->m_pant[0]->set_scrolly(0, state->m_vregs[0]);
- state->m_pant[0]->set_scrollx(0, state->m_vregs[1] + 0x04);
- state->m_pant[1]->set_scrolly(0, state->m_vregs[2]);
- state->m_pant[1]->set_scrollx(0, state->m_vregs[3]);
+ m_pant[0]->set_scrolly(0, m_vregs[0]);
+ m_pant[0]->set_scrollx(0, m_vregs[1] + 0x04);
+ m_pant[1]->set_scrolly(0, m_vregs[2]);
+ m_pant[1]->set_scrollx(0, m_vregs[3]);
- state->m_pant[1]->draw(bitmap, cliprect, 0,0);
- state->m_pant[0]->draw(bitmap, cliprect, 0,0);
+ m_pant[1]->draw(bitmap, cliprect, 0,0);
+ m_pant[0]->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect);
return 0;
diff --git a/src/mame/video/tatsumi.c b/src/mame/video/tatsumi.c
index ec0889f732b..88fb72c9ef4 100644
--- a/src/mame/video/tatsumi.c
+++ b/src/mame/video/tatsumi.c
@@ -1062,87 +1062,83 @@ static void draw_ground(running_machine &machine, bitmap_rgb32 &dst, const recta
#endif
/**********************************************************************/
-SCREEN_UPDATE_RGB32( apache3 )
+UINT32 tatsumi_state::screen_update_apache3(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- tatsumi_state *state = screen.machine().driver_data<tatsumi_state>();
update_cluts(screen.machine(), 1024, 0, 2048);
- state->m_tx_layer->set_scrollx(0,24);
+ m_tx_layer->set_scrollx(0,24);
bitmap.fill(screen.machine().pens[0], cliprect);
- draw_sky(screen.machine(), bitmap, cliprect, 256, state->m_apache3_rotate_ctrl[1]);
+ draw_sky(screen.machine(), bitmap, cliprect, 256, m_apache3_rotate_ctrl[1]);
// draw_ground(screen.machine(), bitmap, cliprect);
- draw_sprites(screen.machine(), bitmap,cliprect,0, (state->m_sprite_control_ram[0x20]&0x1000) ? 0x1000 : 0);
- state->m_tx_layer->draw(bitmap, cliprect, 0,0);
+ draw_sprites(screen.machine(), bitmap,cliprect,0, (m_sprite_control_ram[0x20]&0x1000) ? 0x1000 : 0);
+ m_tx_layer->draw(bitmap, cliprect, 0,0);
return 0;
}
-SCREEN_UPDATE_RGB32( roundup5 )
+UINT32 tatsumi_state::screen_update_roundup5(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- tatsumi_state *state = screen.machine().driver_data<tatsumi_state>();
-// UINT16 bg_x_scroll=state->m_roundup5_unknown1[0];
-// UINT16 bg_y_scroll=state->m_roundup5_unknown2[0];
+// UINT16 bg_x_scroll=m_roundup5_unknown1[0];
+// UINT16 bg_y_scroll=m_roundup5_unknown2[0];
update_cluts(screen.machine(), 1024, 512, 4096);
- state->m_tx_layer->set_scrollx(0,24);
- state->m_tx_layer->set_scrolly(0,0); //(((state->m_roundupt_crt_reg[0xe]<<8)|state->m_roundupt_crt_reg[0xf])>>5) + 96);
+ m_tx_layer->set_scrollx(0,24);
+ m_tx_layer->set_scrolly(0,0); //(((m_roundupt_crt_reg[0xe]<<8)|m_roundupt_crt_reg[0xf])>>5) + 96);
bitmap.fill(screen.machine().pens[384], cliprect); // todo
screen.machine().priority_bitmap.fill(0, cliprect);
- draw_sprites(screen.machine(), screen.machine().priority_bitmap,cliprect,1,(state->m_sprite_control_ram[0xe0]&0x1000) ? 0x1000 : 0); // Alpha pass only
+ draw_sprites(screen.machine(), screen.machine().priority_bitmap,cliprect,1,(m_sprite_control_ram[0xe0]&0x1000) ? 0x1000 : 0); // Alpha pass only
draw_road(screen.machine(), bitmap,cliprect,screen.machine().priority_bitmap);
- draw_sprites(screen.machine(), bitmap,cliprect,0,(state->m_sprite_control_ram[0xe0]&0x1000) ? 0x1000 : 0); // Full pass
- state->m_tx_layer->draw(bitmap, cliprect, 0,0);
+ draw_sprites(screen.machine(), bitmap,cliprect,0,(m_sprite_control_ram[0xe0]&0x1000) ? 0x1000 : 0); // Full pass
+ m_tx_layer->draw(bitmap, cliprect, 0,0);
return 0;
}
-SCREEN_UPDATE_RGB32( cyclwarr )
+UINT32 tatsumi_state::screen_update_cyclwarr(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- tatsumi_state *state = screen.machine().driver_data<tatsumi_state>();
- state->m_bigfight_bank=state->m_bigfight_a40000[0];
- if (state->m_bigfight_bank!=state->m_bigfight_last_bank)
+ m_bigfight_bank=m_bigfight_a40000[0];
+ if (m_bigfight_bank!=m_bigfight_last_bank)
{
- state->m_layer0->mark_all_dirty();
- state->m_layer1->mark_all_dirty();
- state->m_layer2->mark_all_dirty();
- state->m_layer3->mark_all_dirty();
- state->m_bigfight_last_bank=state->m_bigfight_bank;
+ m_layer0->mark_all_dirty();
+ m_layer1->mark_all_dirty();
+ m_layer2->mark_all_dirty();
+ m_layer3->mark_all_dirty();
+ m_bigfight_last_bank=m_bigfight_bank;
}
bitmap.fill(screen.machine().pens[0], cliprect);
- draw_bg(screen.machine(), bitmap, state->m_layer3, &state->m_cyclwarr_videoram1[0x000], &state->m_cyclwarr_videoram1[0x100], state->m_cyclwarr_videoram1, state->m_bigfight_a40000[0], 8, -0x80, 512, 4096);
- draw_bg(screen.machine(), bitmap, state->m_layer2, &state->m_cyclwarr_videoram1[0x200], &state->m_cyclwarr_videoram1[0x300], state->m_cyclwarr_videoram1, state->m_bigfight_a40000[0], 8, -0x80, 512, 4096);
- draw_bg(screen.machine(), bitmap, state->m_layer1, &state->m_cyclwarr_videoram0[0x000], &state->m_cyclwarr_videoram0[0x100], state->m_cyclwarr_videoram0, state->m_bigfight_a40000[0], 8, -0x40, 1024, 2048);
+ draw_bg(screen.machine(), bitmap, m_layer3, &m_cyclwarr_videoram1[0x000], &m_cyclwarr_videoram1[0x100], m_cyclwarr_videoram1, m_bigfight_a40000[0], 8, -0x80, 512, 4096);
+ draw_bg(screen.machine(), bitmap, m_layer2, &m_cyclwarr_videoram1[0x200], &m_cyclwarr_videoram1[0x300], m_cyclwarr_videoram1, m_bigfight_a40000[0], 8, -0x80, 512, 4096);
+ draw_bg(screen.machine(), bitmap, m_layer1, &m_cyclwarr_videoram0[0x000], &m_cyclwarr_videoram0[0x100], m_cyclwarr_videoram0, m_bigfight_a40000[0], 8, -0x40, 1024, 2048);
update_cluts(screen.machine(), 8192, 4096, 8192);
- draw_sprites(screen.machine(), bitmap,cliprect,0,(state->m_sprite_control_ram[0xe0]&0x1000) ? 0x1000 : 0);
- draw_bg(screen.machine(), bitmap, state->m_layer0, &state->m_cyclwarr_videoram0[0x200], &state->m_cyclwarr_videoram0[0x300], state->m_cyclwarr_videoram0, state->m_bigfight_a40000[0], 0x10, -0x80, 512, 4096);
+ draw_sprites(screen.machine(), bitmap,cliprect,0,(m_sprite_control_ram[0xe0]&0x1000) ? 0x1000 : 0);
+ draw_bg(screen.machine(), bitmap, m_layer0, &m_cyclwarr_videoram0[0x200], &m_cyclwarr_videoram0[0x300], m_cyclwarr_videoram0, m_bigfight_a40000[0], 0x10, -0x80, 512, 4096);
return 0;
}
-SCREEN_UPDATE_RGB32( bigfight )
+UINT32 tatsumi_state::screen_update_bigfight(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- tatsumi_state *state = screen.machine().driver_data<tatsumi_state>();
- state->m_bigfight_bank=state->m_bigfight_a40000[0];
- if (state->m_bigfight_bank!=state->m_bigfight_last_bank)
+ m_bigfight_bank=m_bigfight_a40000[0];
+ if (m_bigfight_bank!=m_bigfight_last_bank)
{
- state->m_layer0->mark_all_dirty();
- state->m_layer1->mark_all_dirty();
- state->m_layer2->mark_all_dirty();
- state->m_layer3->mark_all_dirty();
- state->m_bigfight_last_bank=state->m_bigfight_bank;
+ m_layer0->mark_all_dirty();
+ m_layer1->mark_all_dirty();
+ m_layer2->mark_all_dirty();
+ m_layer3->mark_all_dirty();
+ m_bigfight_last_bank=m_bigfight_bank;
}
bitmap.fill(screen.machine().pens[0], cliprect);
- draw_bg(screen.machine(), bitmap, state->m_layer3, &state->m_cyclwarr_videoram1[0x000], &state->m_cyclwarr_videoram1[0x100], state->m_cyclwarr_videoram1, state->m_bigfight_a40000[0], 8, -0x40, 1024, 2048);
- draw_bg(screen.machine(), bitmap, state->m_layer2, &state->m_cyclwarr_videoram1[0x200], &state->m_cyclwarr_videoram1[0x300], state->m_cyclwarr_videoram1, state->m_bigfight_a40000[0], 8, -0x40, 1024, 2048);
- draw_bg(screen.machine(), bitmap, state->m_layer1, &state->m_cyclwarr_videoram0[0x000], &state->m_cyclwarr_videoram0[0x100], state->m_cyclwarr_videoram0, state->m_bigfight_a40000[0], 8, -0x40, 1024, 2048);
+ draw_bg(screen.machine(), bitmap, m_layer3, &m_cyclwarr_videoram1[0x000], &m_cyclwarr_videoram1[0x100], m_cyclwarr_videoram1, m_bigfight_a40000[0], 8, -0x40, 1024, 2048);
+ draw_bg(screen.machine(), bitmap, m_layer2, &m_cyclwarr_videoram1[0x200], &m_cyclwarr_videoram1[0x300], m_cyclwarr_videoram1, m_bigfight_a40000[0], 8, -0x40, 1024, 2048);
+ draw_bg(screen.machine(), bitmap, m_layer1, &m_cyclwarr_videoram0[0x000], &m_cyclwarr_videoram0[0x100], m_cyclwarr_videoram0, m_bigfight_a40000[0], 8, -0x40, 1024, 2048);
update_cluts(screen.machine(), 8192, 4096, 8192);
- draw_sprites(screen.machine(), bitmap,cliprect,0,(state->m_sprite_control_ram[0xe0]&0x1000) ? 0x1000 : 0);
- draw_bg(screen.machine(), bitmap, state->m_layer0, &state->m_cyclwarr_videoram0[0x200], &state->m_cyclwarr_videoram0[0x300], state->m_cyclwarr_videoram0, state->m_bigfight_a40000[0], 0x10, -0x40, 1024, 2048);
+ draw_sprites(screen.machine(), bitmap,cliprect,0,(m_sprite_control_ram[0xe0]&0x1000) ? 0x1000 : 0);
+ draw_bg(screen.machine(), bitmap, m_layer0, &m_cyclwarr_videoram0[0x200], &m_cyclwarr_videoram0[0x300], m_cyclwarr_videoram0, m_bigfight_a40000[0], 0x10, -0x40, 1024, 2048);
return 0;
}
diff --git a/src/mame/video/taxidriv.c b/src/mame/video/taxidriv.c
index 647a53c7627..75984260acd 100644
--- a/src/mame/video/taxidriv.c
+++ b/src/mame/video/taxidriv.c
@@ -9,21 +9,20 @@ WRITE8_MEMBER(taxidriv_state::taxidriv_spritectrl_w)
-SCREEN_UPDATE_IND16( taxidriv )
+UINT32 taxidriv_state::screen_update_taxidriv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- taxidriv_state *state = screen.machine().driver_data<taxidriv_state>();
int offs;
int sx,sy;
- if (state->m_bghide)
+ if (m_bghide)
{
bitmap.fill(0, cliprect);
/* kludge to fix scroll after death */
- state->m_scroll[0] = state->m_scroll[1] = state->m_scroll[2] = state->m_scroll[3] = 0;
- state->m_spritectrl[2] = state->m_spritectrl[5] = state->m_spritectrl[8] = 0;
+ m_scroll[0] = m_scroll[1] = m_scroll[2] = m_scroll[3] = 0;
+ m_spritectrl[2] = m_spritectrl[5] = m_spritectrl[8] = 0;
}
else
{
@@ -33,10 +32,10 @@ SCREEN_UPDATE_IND16( taxidriv )
sy = offs / 32;
drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[3],
- state->m_vram3[offs],
+ m_vram3[offs],
0,
0,0,
- (sx*8-state->m_scroll[0])&0xff,(sy*8-state->m_scroll[1])&0xff);
+ (sx*8-m_scroll[0])&0xff,(sy*8-m_scroll[1])&0xff);
}
for (offs = 0;offs < 0x400;offs++)
@@ -45,22 +44,22 @@ SCREEN_UPDATE_IND16( taxidriv )
sy = offs / 32;
drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[2],
- state->m_vram2[offs]+256*state->m_vram2[offs+0x400],
+ m_vram2[offs]+256*m_vram2[offs+0x400],
0,
0,0,
- (sx*8-state->m_scroll[2])&0xff,(sy*8-state->m_scroll[3])&0xff,0);
+ (sx*8-m_scroll[2])&0xff,(sy*8-m_scroll[3])&0xff,0);
}
- if (state->m_spritectrl[2] & 4)
+ if (m_spritectrl[2] & 4)
{
for (offs = 0;offs < 0x1000;offs++)
{
int color;
- sx = ((offs/2) % 64-state->m_spritectrl[0]-256*(state->m_spritectrl[2]&1))&0x1ff;
- sy = ((offs/2) / 64-state->m_spritectrl[1]-128*(state->m_spritectrl[2]&2))&0x1ff;
+ sx = ((offs/2) % 64-m_spritectrl[0]-256*(m_spritectrl[2]&1))&0x1ff;
+ sy = ((offs/2) / 64-m_spritectrl[1]-128*(m_spritectrl[2]&2))&0x1ff;
- color = (state->m_vram5[offs/4]>>(2*(offs&3)))&0x03;
+ color = (m_vram5[offs/4]>>(2*(offs&3)))&0x03;
if (color)
{
if (sx > 0 && sx < 256 && sy > 0 && sy < 256)
@@ -69,16 +68,16 @@ SCREEN_UPDATE_IND16( taxidriv )
}
}
- if (state->m_spritectrl[5] & 4)
+ if (m_spritectrl[5] & 4)
{
for (offs = 0;offs < 0x1000;offs++)
{
int color;
- sx = ((offs/2) % 64-state->m_spritectrl[3]-256*(state->m_spritectrl[5]&1))&0x1ff;
- sy = ((offs/2) / 64-state->m_spritectrl[4]-128*(state->m_spritectrl[5]&2))&0x1ff;
+ sx = ((offs/2) % 64-m_spritectrl[3]-256*(m_spritectrl[5]&1))&0x1ff;
+ sy = ((offs/2) / 64-m_spritectrl[4]-128*(m_spritectrl[5]&2))&0x1ff;
- color = (state->m_vram6[offs/4]>>(2*(offs&3)))&0x03;
+ color = (m_vram6[offs/4]>>(2*(offs&3)))&0x03;
if (color)
{
if (sx > 0 && sx < 256 && sy > 0 && sy < 256)
@@ -87,16 +86,16 @@ SCREEN_UPDATE_IND16( taxidriv )
}
}
- if (state->m_spritectrl[8] & 4)
+ if (m_spritectrl[8] & 4)
{
for (offs = 0;offs < 0x1000;offs++)
{
int color;
- sx = ((offs/2) % 64-state->m_spritectrl[6]-256*(state->m_spritectrl[8]&1))&0x1ff;
- sy = ((offs/2) / 64-state->m_spritectrl[7]-128*(state->m_spritectrl[8]&2))&0x1ff;
+ sx = ((offs/2) % 64-m_spritectrl[6]-256*(m_spritectrl[8]&1))&0x1ff;
+ sy = ((offs/2) / 64-m_spritectrl[7]-128*(m_spritectrl[8]&2))&0x1ff;
- color = (state->m_vram7[offs/4]>>(2*(offs&3)))&0x03;
+ color = (m_vram7[offs/4]>>(2*(offs&3)))&0x03;
if (color)
{
if (sx > 0 && sx < 256 && sy > 0 && sy < 256)
@@ -111,7 +110,7 @@ SCREEN_UPDATE_IND16( taxidriv )
sy = offs / 32;
drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[1],
- state->m_vram1[offs],
+ m_vram1[offs],
0,
0,0,
sx*8,sy*8,0);
@@ -124,7 +123,7 @@ SCREEN_UPDATE_IND16( taxidriv )
sx = (offs/2) % 64;
sy = (offs/2) / 64;
- color = (state->m_vram4[offs/4]>>(2*(offs&3)))&0x03;
+ color = (m_vram4[offs/4]>>(2*(offs&3)))&0x03;
if (color)
{
bitmap.pix16(sy, sx) = 2 * color;
@@ -138,7 +137,7 @@ SCREEN_UPDATE_IND16( taxidriv )
sy = offs / 32;
drawgfx_transpen(bitmap,cliprect,screen.machine().gfx[0],
- state->m_vram0[offs],
+ m_vram0[offs],
0,
0,0,
sx*8,sy*8,0);
diff --git a/src/mame/video/tbowl.c b/src/mame/video/tbowl.c
index 46114e51a63..af5e0bec401 100644
--- a/src/mame/video/tbowl.c
+++ b/src/mame/video/tbowl.c
@@ -199,42 +199,40 @@ void tbowl_state::video_start()
}
-SCREEN_UPDATE_IND16( tbowl_left )
+UINT32 tbowl_state::screen_update_tbowl_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tbowl_state *state = screen.machine().driver_data<tbowl_state>();
- state->m_bg_tilemap->set_scrollx(0, state->m_xscroll );
- state->m_bg_tilemap->set_scrolly(0, state->m_yscroll );
- state->m_bg2_tilemap->set_scrollx(0, state->m_bg2xscroll );
- state->m_bg2_tilemap->set_scrolly(0, state->m_bg2yscroll );
- state->m_tx_tilemap->set_scrollx(0, 0 );
- state->m_tx_tilemap->set_scrolly(0, 0 );
+ m_bg_tilemap->set_scrollx(0, m_xscroll );
+ m_bg_tilemap->set_scrolly(0, m_yscroll );
+ m_bg2_tilemap->set_scrollx(0, m_bg2xscroll );
+ m_bg2_tilemap->set_scrolly(0, m_bg2yscroll );
+ m_tx_tilemap->set_scrollx(0, 0 );
+ m_tx_tilemap->set_scrolly(0, 0 );
bitmap.fill(0x100, cliprect); /* is there a register controling the colour? looks odd when screen is blank */
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect, 0);
- state->m_bg2_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg2_tilemap->draw(bitmap, cliprect, 0,0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
-SCREEN_UPDATE_IND16( tbowl_right )
+UINT32 tbowl_state::screen_update_tbowl_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tbowl_state *state = screen.machine().driver_data<tbowl_state>();
- state->m_bg_tilemap->set_scrollx(0, state->m_xscroll+32*8 );
- state->m_bg_tilemap->set_scrolly(0, state->m_yscroll );
- state->m_bg2_tilemap->set_scrollx(0, state->m_bg2xscroll+32*8 );
- state->m_bg2_tilemap->set_scrolly(0, state->m_bg2yscroll );
- state->m_tx_tilemap->set_scrollx(0, 32*8 );
- state->m_tx_tilemap->set_scrolly(0, 0 );
+ m_bg_tilemap->set_scrollx(0, m_xscroll+32*8 );
+ m_bg_tilemap->set_scrolly(0, m_yscroll );
+ m_bg2_tilemap->set_scrollx(0, m_bg2xscroll+32*8 );
+ m_bg2_tilemap->set_scrolly(0, m_bg2yscroll );
+ m_tx_tilemap->set_scrollx(0, 32*8 );
+ m_tx_tilemap->set_scrolly(0, 0 );
bitmap.fill(0x100, cliprect); /* is there a register controling the colour? looks odd when screen is blank */
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect, 32*8);
- state->m_bg2_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg2_tilemap->draw(bitmap, cliprect, 0,0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/video/tceptor.c b/src/mame/video/tceptor.c
index bef73fd73f0..10546de961f 100644
--- a/src/mame/video/tceptor.c
+++ b/src/mame/video/tceptor.c
@@ -510,59 +510,57 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
-SCREEN_UPDATE_IND16( tceptor_2d )
+UINT32 tceptor_state::screen_update_tceptor_2d(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tceptor_state *state = screen.machine().driver_data<tceptor_state>();
rectangle rect;
int pri;
- int bg_center = 144 - ((((state->m_bg1_scroll_x + state->m_bg2_scroll_x ) & 0x1ff) - 288) / 2);
+ int bg_center = 144 - ((((m_bg1_scroll_x + m_bg2_scroll_x ) & 0x1ff) - 288) / 2);
// left background
rect = cliprect;
rect.max_x = bg_center;
- state->m_bg1_tilemap->set_scrollx(0, state->m_bg1_scroll_x + 12);
- state->m_bg1_tilemap->set_scrolly(0, state->m_bg1_scroll_y + 20); //32?
- state->m_bg1_tilemap->draw(bitmap, rect, 0, 0);
+ m_bg1_tilemap->set_scrollx(0, m_bg1_scroll_x + 12);
+ m_bg1_tilemap->set_scrolly(0, m_bg1_scroll_y + 20); //32?
+ m_bg1_tilemap->draw(bitmap, rect, 0, 0);
// right background
rect.min_x = bg_center;
rect.max_x = cliprect.max_x;
- state->m_bg2_tilemap->set_scrollx(0, state->m_bg2_scroll_x + 20);
- state->m_bg2_tilemap->set_scrolly(0, state->m_bg2_scroll_y + 20); // 32?
- state->m_bg2_tilemap->draw(bitmap, rect, 0, 0);
+ m_bg2_tilemap->set_scrollx(0, m_bg2_scroll_x + 20);
+ m_bg2_tilemap->set_scrolly(0, m_bg2_scroll_y + 20); // 32?
+ m_bg2_tilemap->draw(bitmap, rect, 0, 0);
for (pri = 0; pri < 8; pri++)
{
- state->m_c45_road->draw(bitmap, cliprect, pri * 2);
- state->m_c45_road->draw(bitmap, cliprect, pri * 2 + 1);
+ m_c45_road->draw(bitmap, cliprect, pri * 2);
+ m_c45_road->draw(bitmap, cliprect, pri * 2 + 1);
draw_sprites(screen.machine(), bitmap, cliprect, pri);
}
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( tceptor_3d_left )
+UINT32 tceptor_state::screen_update_tceptor_3d_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
if ((screen.frame_number() & 1) == 1)
return UPDATE_HAS_NOT_CHANGED;
- return SCREEN_UPDATE16_CALL( tceptor_2d );
+ return SCREEN_UPDATE16_CALL_MEMBER( tceptor_2d );
}
-SCREEN_UPDATE_IND16( tceptor_3d_right )
+UINT32 tceptor_state::screen_update_tceptor_3d_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
if ((screen.frame_number() & 1) == 0)
return UPDATE_HAS_NOT_CHANGED;
- return SCREEN_UPDATE16_CALL( tceptor_2d );
+ return SCREEN_UPDATE16_CALL_MEMBER( tceptor_2d );
}
-SCREEN_VBLANK( tceptor )
+void tceptor_state::screen_eof_tceptor(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- tceptor_state *state = screen.machine().driver_data<tceptor_state>();
- memcpy(state->m_sprite_ram_buffered, state->m_sprite_ram, 0x200);
+ memcpy(m_sprite_ram_buffered, m_sprite_ram, 0x200);
}
}
diff --git a/src/mame/video/tecmo.c b/src/mame/video/tecmo.c
index 73705795271..09b4638c1cb 100644
--- a/src/mame/video/tecmo.c
+++ b/src/mame/video/tecmo.c
@@ -237,14 +237,13 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re
}
-SCREEN_UPDATE_IND16( tecmo )
+UINT32 tecmo_state::screen_update_tecmo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tecmo_state *state = screen.machine().driver_data<tecmo_state>();
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(0x100, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,1);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,2);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0,4);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,1);
+ m_fg_tilemap->draw(bitmap, cliprect, 0,2);
+ m_tx_tilemap->draw(bitmap, cliprect, 0,4);
draw_sprites(screen.machine(), bitmap,cliprect);
return 0;
diff --git a/src/mame/video/tecmo16.c b/src/mame/video/tecmo16.c
index 26c14d9acdb..ca3fa787b42 100644
--- a/src/mame/video/tecmo16.c
+++ b/src/mame/video/tecmo16.c
@@ -466,27 +466,26 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap_bg, bitm
/******************************************************************************/
-SCREEN_UPDATE_RGB32( tecmo16 )
+UINT32 tecmo16_state::screen_update_tecmo16(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- tecmo16_state *state = screen.machine().driver_data<tecmo16_state>();
screen.machine().priority_bitmap.fill(0, cliprect);
- state->m_tile_bitmap_bg.fill(0x300, cliprect);
- state->m_tile_bitmap_fg.fill(0, cliprect);
- state->m_sprite_bitmap.fill(0, cliprect);
+ m_tile_bitmap_bg.fill(0x300, cliprect);
+ m_tile_bitmap_fg.fill(0, cliprect);
+ m_sprite_bitmap.fill(0, cliprect);
/* draw tilemaps into a 16-bit bitmap */
- state->m_bg_tilemap->draw(state->m_tile_bitmap_bg, cliprect, 0, 1);
- state->m_fg_tilemap->draw(state->m_tile_bitmap_fg, cliprect, 0, 2);
+ m_bg_tilemap->draw(m_tile_bitmap_bg, cliprect, 0, 1);
+ m_fg_tilemap->draw(m_tile_bitmap_fg, cliprect, 0, 2);
/* draw the blended tiles at a lower priority
so sprites covered by them will still be drawn */
- state->m_fg_tilemap->draw(state->m_tile_bitmap_fg, cliprect, 1, 0);
- state->m_tx_tilemap->draw(state->m_tile_bitmap_fg, cliprect, 0, 4);
+ m_fg_tilemap->draw(m_tile_bitmap_fg, cliprect, 1, 0);
+ m_tx_tilemap->draw(m_tile_bitmap_fg, cliprect, 0, 4);
/* draw sprites into a 16-bit bitmap */
- draw_sprites(screen.machine(), state->m_tile_bitmap_bg, state->m_tile_bitmap_fg, state->m_sprite_bitmap, cliprect);
+ draw_sprites(screen.machine(), m_tile_bitmap_bg, m_tile_bitmap_fg, m_sprite_bitmap, cliprect);
/* mix & blend the tilemaps and sprites into a 32-bit bitmap */
- blendbitmaps(screen.machine(), bitmap, state->m_tile_bitmap_bg, state->m_tile_bitmap_fg, state->m_sprite_bitmap, 0, 0, cliprect);
+ blendbitmaps(screen.machine(), bitmap, m_tile_bitmap_bg, m_tile_bitmap_fg, m_sprite_bitmap, 0, 0, cliprect);
return 0;
}
diff --git a/src/mame/video/tecmosys.c b/src/mame/video/tecmosys.c
index 5e631ab8bb1..58bdc97158d 100644
--- a/src/mame/video/tecmosys.c
+++ b/src/mame/video/tecmosys.c
@@ -285,45 +285,44 @@ static void tecmosys_do_final_mix(running_machine &machine, bitmap_rgb32 &bitmap
}
-SCREEN_UPDATE_RGB32(tecmosys)
+UINT32 tecmosys_state::screen_update_tecmosys(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- tecmosys_state *state = screen.machine().driver_data<tecmosys_state>();
bitmap.fill(screen.machine().pens[0x4000], cliprect);
- state->m_bg0tilemap->set_scrolly(0, state->m_c80000regs[1]+16);
- state->m_bg0tilemap->set_scrollx(0, state->m_c80000regs[0]+104);
+ m_bg0tilemap->set_scrolly(0, m_c80000regs[1]+16);
+ m_bg0tilemap->set_scrollx(0, m_c80000regs[0]+104);
- state->m_bg1tilemap->set_scrolly(0, state->m_a80000regs[1]+17);
- state->m_bg1tilemap->set_scrollx(0, state->m_a80000regs[0]+106);
+ m_bg1tilemap->set_scrolly(0, m_a80000regs[1]+17);
+ m_bg1tilemap->set_scrollx(0, m_a80000regs[0]+106);
- state->m_bg2tilemap->set_scrolly(0, state->m_b00000regs[1]+17);
- state->m_bg2tilemap->set_scrollx(0, state->m_b00000regs[0]+106);
+ m_bg2tilemap->set_scrolly(0, m_b00000regs[1]+17);
+ m_bg2tilemap->set_scrollx(0, m_b00000regs[0]+106);
- state->m_tmp_tilemap_composebitmap.fill(0, cliprect);
+ m_tmp_tilemap_composebitmap.fill(0, cliprect);
- state->m_tmp_tilemap_renderbitmap.fill(0, cliprect);
- state->m_bg0tilemap->draw(state->m_tmp_tilemap_renderbitmap, cliprect, 0,0);
- tecmosys_tilemap_copy_to_compose(state, 0x0000);
+ m_tmp_tilemap_renderbitmap.fill(0, cliprect);
+ m_bg0tilemap->draw(m_tmp_tilemap_renderbitmap, cliprect, 0,0);
+ tecmosys_tilemap_copy_to_compose(this, 0x0000);
- state->m_tmp_tilemap_renderbitmap.fill(0, cliprect);
- state->m_bg1tilemap->draw(state->m_tmp_tilemap_renderbitmap, cliprect, 0,0);
- tecmosys_tilemap_copy_to_compose(state, 0x4000);
+ m_tmp_tilemap_renderbitmap.fill(0, cliprect);
+ m_bg1tilemap->draw(m_tmp_tilemap_renderbitmap, cliprect, 0,0);
+ tecmosys_tilemap_copy_to_compose(this, 0x4000);
- state->m_tmp_tilemap_renderbitmap.fill(0, cliprect);
- state->m_bg2tilemap->draw(state->m_tmp_tilemap_renderbitmap, cliprect, 0,0);
- tecmosys_tilemap_copy_to_compose(state, 0x8000);
+ m_tmp_tilemap_renderbitmap.fill(0, cliprect);
+ m_bg2tilemap->draw(m_tmp_tilemap_renderbitmap, cliprect, 0,0);
+ tecmosys_tilemap_copy_to_compose(this, 0x8000);
- state->m_tmp_tilemap_renderbitmap.fill(0, cliprect);
- state->m_txt_tilemap->draw(state->m_tmp_tilemap_renderbitmap, cliprect, 0,0);
- tecmosys_tilemap_copy_to_compose(state, 0xc000);
+ m_tmp_tilemap_renderbitmap.fill(0, cliprect);
+ m_txt_tilemap->draw(m_tmp_tilemap_renderbitmap, cliprect, 0,0);
+ tecmosys_tilemap_copy_to_compose(this, 0xc000);
tecmosys_do_final_mix(screen.machine(), bitmap);
// prepare sprites for NEXT frame - causes 1 frame palette errors, but prevents sprite lag in tkdensho, which is correct?
- tecmosys_render_sprites_to_bitmap(screen.machine(), bitmap, state->m_880000regs[0x0], state->m_880000regs[0x1]);
+ tecmosys_render_sprites_to_bitmap(screen.machine(), bitmap, m_880000regs[0x0], m_880000regs[0x1]);
return 0;
}
diff --git a/src/mame/video/tehkanwc.c b/src/mame/video/tehkanwc.c
index bf215b1985a..0821e304622 100644
--- a/src/mame/video/tehkanwc.c
+++ b/src/mame/video/tehkanwc.c
@@ -154,15 +154,14 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( tehkanwc )
+UINT32 tehkanwc_state::screen_update_tehkanwc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tehkanwc_state *state = screen.machine().driver_data<tehkanwc_state>();
- state->m_bg_tilemap->set_scrollx(0, state->m_scroll_x[0] + 256 * state->m_scroll_x[1]);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->set_scrollx(0, m_scroll_x[0] + 256 * m_scroll_x[1]);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 1, 0);
- gridiron_draw_led(screen.machine(), bitmap, cliprect, state->m_led0, 0);
- gridiron_draw_led(screen.machine(), bitmap, cliprect, state->m_led1, 1);
+ m_fg_tilemap->draw(bitmap, cliprect, 1, 0);
+ gridiron_draw_led(screen.machine(), bitmap, cliprect, m_led0, 0);
+ gridiron_draw_led(screen.machine(), bitmap, cliprect, m_led1, 1);
return 0;
}
diff --git a/src/mame/video/terracre.c b/src/mame/video/terracre.c
index 6541c611065..d50ddb1c9d4 100644
--- a/src/mame/video/terracre.c
+++ b/src/mame/video/terracre.c
@@ -194,15 +194,14 @@ void terracre_state::video_start()
state_save_register_global(machine(), m_yscroll);
}
-SCREEN_UPDATE_IND16( amazon )
+UINT32 terracre_state::screen_update_amazon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- terracre_state *state = screen.machine().driver_data<terracre_state>();
- if( state->m_xscroll&0x2000 )
+ if( m_xscroll&0x2000 )
bitmap.fill(get_black_pen(screen.machine()), cliprect );
else
- state->m_background->draw(bitmap, cliprect, 0, 0 );
+ m_background->draw(bitmap, cliprect, 0, 0 );
draw_sprites(screen.machine(), bitmap,cliprect );
- state->m_foreground->draw(bitmap, cliprect, 0, 0 );
+ m_foreground->draw(bitmap, cliprect, 0, 0 );
return 0;
}
diff --git a/src/mame/video/tetrisp2.c b/src/mame/video/tetrisp2.c
index d5b2c4300b9..a87cce00569 100644
--- a/src/mame/video/tetrisp2.c
+++ b/src/mame/video/tetrisp2.c
@@ -419,25 +419,24 @@ static void tetrisp2_draw_sprites( running_machine &machine, _BitmapClass &bitma
***************************************************************************/
-SCREEN_UPDATE_IND16( tetrisp2 )
+UINT32 tetrisp2_state::screen_update_tetrisp2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tetrisp2_state *state = screen.machine().driver_data<tetrisp2_state>();
int flipscreen;
int asc_pri;
int scr_pri;
int rot_pri;
int rot_ofsx, rot_ofsy;
- flipscreen = (state->m_systemregs[0x00] & 0x02);
+ flipscreen = (m_systemregs[0x00] & 0x02);
/* Black background color */
bitmap.fill(0, cliprect);
screen.machine().priority_bitmap.fill(0);
/* Flip Screen */
- if (flipscreen != state->m_flipscreen_old)
+ if (flipscreen != m_flipscreen_old)
{
- state->m_flipscreen_old = flipscreen;
+ m_flipscreen_old = flipscreen;
screen.machine().tilemap().set_flip_all(flipscreen ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0);
}
@@ -453,77 +452,76 @@ SCREEN_UPDATE_IND16( tetrisp2 )
rot_ofsy = 0x400;
}
- state->m_tilemap_bg->set_scrollx(0, (((state->m_scroll_bg[ 0 ] + 0x0014) + state->m_scroll_bg[ 2 ] ) & 0xffff));
- state->m_tilemap_bg->set_scrolly(0, (((state->m_scroll_bg[ 3 ] + 0x0000) + state->m_scroll_bg[ 5 ] ) & 0xffff));
+ m_tilemap_bg->set_scrollx(0, (((m_scroll_bg[ 0 ] + 0x0014) + m_scroll_bg[ 2 ] ) & 0xffff));
+ m_tilemap_bg->set_scrolly(0, (((m_scroll_bg[ 3 ] + 0x0000) + m_scroll_bg[ 5 ] ) & 0xffff));
- state->m_tilemap_fg->set_scrollx(0, state->m_scroll_fg[ 2 ]);
- state->m_tilemap_fg->set_scrolly(0, state->m_scroll_fg[ 5 ]);
+ m_tilemap_fg->set_scrollx(0, m_scroll_fg[ 2 ]);
+ m_tilemap_fg->set_scrolly(0, m_scroll_fg[ 5 ]);
- state->m_tilemap_rot->set_scrollx(0, (state->m_rotregs[ 0 ] - rot_ofsx));
- state->m_tilemap_rot->set_scrolly(0, (state->m_rotregs[ 2 ] - rot_ofsy));
+ m_tilemap_rot->set_scrollx(0, (m_rotregs[ 0 ] - rot_ofsx));
+ m_tilemap_rot->set_scrolly(0, (m_rotregs[ 2 ] - rot_ofsy));
asc_pri = scr_pri = rot_pri = 0;
- if((state->m_priority[0x2b00 / 2] & 0x00ff) == 0x0034)
+ if((m_priority[0x2b00 / 2] & 0x00ff) == 0x0034)
asc_pri++;
else
rot_pri++;
- if((state->m_priority[0x2e00 / 2] & 0x00ff) == 0x0034)
+ if((m_priority[0x2e00 / 2] & 0x00ff) == 0x0034)
asc_pri++;
else
scr_pri++;
- if((state->m_priority[0x3a00 / 2] & 0x00ff) == 0x000c)
+ if((m_priority[0x3a00 / 2] & 0x00ff) == 0x000c)
scr_pri++;
else
rot_pri++;
if (rot_pri == 0)
- state->m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
+ m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
else if (scr_pri == 0)
- state->m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
+ m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
else if (asc_pri == 0)
- state->m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
+ m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
if (rot_pri == 1)
- state->m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
+ m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
else if (scr_pri == 1)
- state->m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
+ m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
else if (asc_pri == 1)
- state->m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
+ m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
if (rot_pri == 2)
- state->m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
+ m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
else if (scr_pri == 2)
- state->m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
+ m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
else if (asc_pri == 2)
- state->m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
+ m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
- tetrisp2_draw_sprites( screen.machine(), bitmap, screen.machine().priority_bitmap, cliprect, state->m_priority,
- state->m_spriteram, state->m_spriteram.bytes(), 0, (state->m_systemregs[0x00] & 0x02) );
+ tetrisp2_draw_sprites( screen.machine(), bitmap, screen.machine().priority_bitmap, cliprect, m_priority,
+ m_spriteram, m_spriteram.bytes(), 0, (m_systemregs[0x00] & 0x02) );
return 0;
}
-SCREEN_UPDATE_IND16( rockntread )
+UINT32 tetrisp2_state::screen_update_rockntread(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tetrisp2_state *state = screen.machine().driver_data<tetrisp2_state>();
int flipscreen;
int asc_pri;
int scr_pri;
int rot_pri;
int rot_ofsx, rot_ofsy;
- flipscreen = (state->m_systemregs[0x00] & 0x02);
+ flipscreen = (m_systemregs[0x00] & 0x02);
/* Black background color */
bitmap.fill(0, cliprect);
screen.machine().priority_bitmap.fill(0);
/* Flip Screen */
- if (flipscreen != state->m_flipscreen_old)
+ if (flipscreen != m_flipscreen_old)
{
- state->m_flipscreen_old = flipscreen;
+ m_flipscreen_old = flipscreen;
screen.machine().tilemap().set_flip_all(flipscreen ? (TILEMAP_FLIPX | TILEMAP_FLIPY) : 0);
}
@@ -539,135 +537,133 @@ SCREEN_UPDATE_IND16( rockntread )
rot_ofsy = 0x400;
}
- state->m_tilemap_bg->set_scrollx(0, (((state->m_scroll_bg[ 0 ] + 0x0014) + state->m_scroll_bg[ 2 ] ) & 0xffff));
- state->m_tilemap_bg->set_scrolly(0, (((state->m_scroll_bg[ 3 ] + 0x0000) + state->m_scroll_bg[ 5 ] ) & 0xffff));
+ m_tilemap_bg->set_scrollx(0, (((m_scroll_bg[ 0 ] + 0x0014) + m_scroll_bg[ 2 ] ) & 0xffff));
+ m_tilemap_bg->set_scrolly(0, (((m_scroll_bg[ 3 ] + 0x0000) + m_scroll_bg[ 5 ] ) & 0xffff));
- state->m_tilemap_fg->set_scrollx(0, state->m_scroll_fg[ 2 ]);
- state->m_tilemap_fg->set_scrolly(0, state->m_scroll_fg[ 5 ]);
+ m_tilemap_fg->set_scrollx(0, m_scroll_fg[ 2 ]);
+ m_tilemap_fg->set_scrolly(0, m_scroll_fg[ 5 ]);
- state->m_tilemap_rot->set_scrollx(0, (state->m_rotregs[ 0 ] - rot_ofsx));
- state->m_tilemap_rot->set_scrolly(0, (state->m_rotregs[ 2 ] - rot_ofsy));
+ m_tilemap_rot->set_scrollx(0, (m_rotregs[ 0 ] - rot_ofsx));
+ m_tilemap_rot->set_scrolly(0, (m_rotregs[ 2 ] - rot_ofsy));
asc_pri = scr_pri = rot_pri = 0;
- if((state->m_priority[0x2b00 / 2] & 0x00ff) == 0x0034)
+ if((m_priority[0x2b00 / 2] & 0x00ff) == 0x0034)
asc_pri++;
else
rot_pri++;
- if((state->m_priority[0x2e00 / 2] & 0x00ff) == 0x0034)
+ if((m_priority[0x2e00 / 2] & 0x00ff) == 0x0034)
asc_pri++;
else
scr_pri++;
- if((state->m_priority[0x3a00 / 2] & 0x00ff) == 0x000c)
+ if((m_priority[0x3a00 / 2] & 0x00ff) == 0x000c)
scr_pri++;
else
rot_pri++;
if (rot_pri == 0)
- state->m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
+ m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
else if (scr_pri == 0)
- state->m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
+ m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
else if (asc_pri == 0)
- state->m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
+ m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
if (rot_pri == 1)
- state->m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
+ m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
else if (scr_pri == 1)
- state->m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
+ m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
else if (asc_pri == 1)
- state->m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
+ m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
if (rot_pri == 2)
- state->m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
+ m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
else if (scr_pri == 2)
- state->m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
+ m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
else if (asc_pri == 2)
- state->m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
+ m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
- tetrisp2_draw_sprites( screen.machine(), bitmap, screen.machine().priority_bitmap, cliprect, state->m_priority,
- state->m_spriteram, state->m_spriteram.bytes(), 0, (state->m_systemregs[0x00] & 0x02) );
+ tetrisp2_draw_sprites( screen.machine(), bitmap, screen.machine().priority_bitmap, cliprect, m_priority,
+ m_spriteram, m_spriteram.bytes(), 0, (m_systemregs[0x00] & 0x02) );
return 0;
}
-SCREEN_UPDATE_RGB32( rocknms_left )
+UINT32 tetrisp2_state::screen_update_rocknms_left(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- tetrisp2_state *state = screen.machine().driver_data<tetrisp2_state>();
int asc_pri;
int scr_pri;
int rot_pri;
- state->m_tilemap_sub_bg->set_scrollx(0, state->m_rocknms_sub_scroll_bg[ 2 ] + 0x000);
- state->m_tilemap_sub_bg->set_scrolly(0, state->m_rocknms_sub_scroll_bg[ 5 ] + 0x000);
- state->m_tilemap_sub_fg->set_scrollx(0, state->m_rocknms_sub_scroll_fg[ 2 ] + 0x000);
- state->m_tilemap_sub_fg->set_scrolly(0, state->m_rocknms_sub_scroll_fg[ 5 ] + 0x000);
- state->m_tilemap_sub_rot->set_scrollx(0, state->m_rocknms_sub_rotregs[ 0 ] + 0x400);
- state->m_tilemap_sub_rot->set_scrolly(0, state->m_rocknms_sub_rotregs[ 2 ] + 0x400);
+ m_tilemap_sub_bg->set_scrollx(0, m_rocknms_sub_scroll_bg[ 2 ] + 0x000);
+ m_tilemap_sub_bg->set_scrolly(0, m_rocknms_sub_scroll_bg[ 5 ] + 0x000);
+ m_tilemap_sub_fg->set_scrollx(0, m_rocknms_sub_scroll_fg[ 2 ] + 0x000);
+ m_tilemap_sub_fg->set_scrolly(0, m_rocknms_sub_scroll_fg[ 5 ] + 0x000);
+ m_tilemap_sub_rot->set_scrollx(0, m_rocknms_sub_rotregs[ 0 ] + 0x400);
+ m_tilemap_sub_rot->set_scrolly(0, m_rocknms_sub_rotregs[ 2 ] + 0x400);
bitmap.fill(screen.machine().pens[0x0000], cliprect);
screen.machine().priority_bitmap.fill(0, cliprect);
asc_pri = scr_pri = rot_pri = 0;
- if((state->m_rocknms_sub_priority[0x2b00 / 2] & 0x00ff) == 0x0034)
+ if((m_rocknms_sub_priority[0x2b00 / 2] & 0x00ff) == 0x0034)
asc_pri++;
else
rot_pri++;
- if((state->m_rocknms_sub_priority[0x2e00 / 2] & 0x00ff) == 0x0034)
+ if((m_rocknms_sub_priority[0x2e00 / 2] & 0x00ff) == 0x0034)
asc_pri++;
else
scr_pri++;
- if((state->m_rocknms_sub_priority[0x3a00 / 2] & 0x00ff) == 0x000c)
+ if((m_rocknms_sub_priority[0x3a00 / 2] & 0x00ff) == 0x000c)
scr_pri++;
else
rot_pri++;
if (rot_pri == 0)
- state->m_tilemap_sub_rot->draw(bitmap, cliprect, 0, 1 << 1);
+ m_tilemap_sub_rot->draw(bitmap, cliprect, 0, 1 << 1);
else if (scr_pri == 0)
- state->m_tilemap_sub_bg->draw(bitmap, cliprect, 0, 1 << 0);
+ m_tilemap_sub_bg->draw(bitmap, cliprect, 0, 1 << 0);
else if (asc_pri == 0)
- state->m_tilemap_sub_fg->draw(bitmap, cliprect, 0, 1 << 2);
+ m_tilemap_sub_fg->draw(bitmap, cliprect, 0, 1 << 2);
if (rot_pri == 1)
- state->m_tilemap_sub_rot->draw(bitmap, cliprect, 0, 1 << 1);
+ m_tilemap_sub_rot->draw(bitmap, cliprect, 0, 1 << 1);
else if (scr_pri == 1)
- state->m_tilemap_sub_bg->draw(bitmap, cliprect, 0, 1 << 0);
+ m_tilemap_sub_bg->draw(bitmap, cliprect, 0, 1 << 0);
else if (asc_pri == 1)
- state->m_tilemap_sub_fg->draw(bitmap, cliprect, 0, 1 << 2);
+ m_tilemap_sub_fg->draw(bitmap, cliprect, 0, 1 << 2);
if (rot_pri == 2)
- state->m_tilemap_sub_rot->draw(bitmap, cliprect, 0, 1 << 1);
+ m_tilemap_sub_rot->draw(bitmap, cliprect, 0, 1 << 1);
else if (scr_pri == 2)
- state->m_tilemap_sub_bg->draw(bitmap, cliprect, 0, 1 << 0);
+ m_tilemap_sub_bg->draw(bitmap, cliprect, 0, 1 << 0);
else if (asc_pri == 2)
- state->m_tilemap_sub_fg->draw(bitmap, cliprect, 0, 1 << 2);
+ m_tilemap_sub_fg->draw(bitmap, cliprect, 0, 1 << 2);
- tetrisp2_draw_sprites( screen.machine(), bitmap, screen.machine().priority_bitmap, cliprect, state->m_priority,
- state->m_spriteram2, state->m_spriteram2.bytes(), 4, (state->m_systemregs[0x00] & 0x02) );
+ tetrisp2_draw_sprites( screen.machine(), bitmap, screen.machine().priority_bitmap, cliprect, m_priority,
+ m_spriteram2, m_spriteram2.bytes(), 4, (m_systemregs[0x00] & 0x02) );
return 0;
}
-SCREEN_UPDATE_RGB32( rocknms_right )
+UINT32 tetrisp2_state::screen_update_rocknms_right(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- tetrisp2_state *state = screen.machine().driver_data<tetrisp2_state>();
int asc_pri;
int scr_pri;
int rot_pri;
- state->m_tilemap_bg->set_scrollx(0, state->m_scroll_bg[ 2 ] + 0x000);
- state->m_tilemap_bg->set_scrolly(0, state->m_scroll_bg[ 5 ] + 0x000);
- state->m_tilemap_fg->set_scrollx(0, state->m_scroll_fg[ 2 ] + 0x000);
- state->m_tilemap_fg->set_scrolly(0, state->m_scroll_fg[ 5 ] + 0x000);
- state->m_tilemap_rot->set_scrollx(0, state->m_rotregs[ 0 ] + 0x400);
- state->m_tilemap_rot->set_scrolly(0, state->m_rotregs[ 2 ] + 0x400);
+ m_tilemap_bg->set_scrollx(0, m_scroll_bg[ 2 ] + 0x000);
+ m_tilemap_bg->set_scrolly(0, m_scroll_bg[ 5 ] + 0x000);
+ m_tilemap_fg->set_scrollx(0, m_scroll_fg[ 2 ] + 0x000);
+ m_tilemap_fg->set_scrolly(0, m_scroll_fg[ 5 ] + 0x000);
+ m_tilemap_rot->set_scrollx(0, m_rotregs[ 0 ] + 0x400);
+ m_tilemap_rot->set_scrolly(0, m_rotregs[ 2 ] + 0x400);
/* Black background color */
bitmap.fill(screen.machine().pens[0x0000], cliprect);
@@ -675,44 +671,44 @@ SCREEN_UPDATE_RGB32( rocknms_right )
asc_pri = scr_pri = rot_pri = 0;
- if((state->m_priority[0x2b00 / 2] & 0x00ff) == 0x0034)
+ if((m_priority[0x2b00 / 2] & 0x00ff) == 0x0034)
asc_pri++;
else
rot_pri++;
- if((state->m_priority[0x2e00 / 2] & 0x00ff) == 0x0034)
+ if((m_priority[0x2e00 / 2] & 0x00ff) == 0x0034)
asc_pri++;
else
scr_pri++;
- if((state->m_priority[0x3a00 / 2] & 0x00ff) == 0x000c)
+ if((m_priority[0x3a00 / 2] & 0x00ff) == 0x000c)
scr_pri++;
else
rot_pri++;
if (rot_pri == 0)
- state->m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
+ m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
else if (scr_pri == 0)
- state->m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
+ m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
else if (asc_pri == 0)
- state->m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
+ m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
if (rot_pri == 1)
- state->m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
+ m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
else if (scr_pri == 1)
- state->m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
+ m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
else if (asc_pri == 1)
- state->m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
+ m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
if (rot_pri == 2)
- state->m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
+ m_tilemap_rot->draw(bitmap, cliprect, 0, 1 << 1);
else if (scr_pri == 2)
- state->m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
+ m_tilemap_bg->draw(bitmap, cliprect, 0, 1 << 0);
else if (asc_pri == 2)
- state->m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
+ m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
- tetrisp2_draw_sprites( screen.machine(), bitmap, screen.machine().priority_bitmap, cliprect, state->m_priority,
- state->m_spriteram, state->m_spriteram.bytes(), 0, (state->m_systemregs[0x00] & 0x02) );
+ tetrisp2_draw_sprites( screen.machine(), bitmap, screen.machine().priority_bitmap, cliprect, m_priority,
+ m_spriteram, m_spriteram.bytes(), 0, (m_systemregs[0x00] & 0x02) );
return 0;
}
@@ -761,40 +757,37 @@ VIDEO_START_MEMBER(stepstag_state,stepstag)
ms32_rearrange_sprites(machine(), "sprites_vert");
}
-SCREEN_UPDATE_IND16( stepstag_left )
+UINT32 stepstag_state::screen_update_stepstag_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- stepstag_state *state = screen.machine().driver_data<stepstag_state>();
bitmap.fill(0, cliprect);
screen.machine().priority_bitmap.fill(0);
- tetrisp2_draw_sprites( screen.machine(), bitmap, screen.machine().priority_bitmap, cliprect, state->m_priority,
- state->m_spriteram, state->m_spriteram.bytes(), 1, (state->m_systemregs[0x00] & 0x02) );
+ tetrisp2_draw_sprites( screen.machine(), bitmap, screen.machine().priority_bitmap, cliprect, m_priority,
+ m_spriteram, m_spriteram.bytes(), 1, (m_systemregs[0x00] & 0x02) );
return 0;
}
-SCREEN_UPDATE_IND16( stepstag_right )
+UINT32 stepstag_state::screen_update_stepstag_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- stepstag_state *state = screen.machine().driver_data<stepstag_state>();
bitmap.fill(0, cliprect);
screen.machine().priority_bitmap.fill(0);
- tetrisp2_draw_sprites( screen.machine(), bitmap, screen.machine().priority_bitmap, cliprect, state->m_priority,
- state->m_spriteram3, state->m_spriteram3.bytes(), 1, (state->m_systemregs[0x00] & 0x02) );
+ tetrisp2_draw_sprites( screen.machine(), bitmap, screen.machine().priority_bitmap, cliprect, m_priority,
+ m_spriteram3, m_spriteram3.bytes(), 1, (m_systemregs[0x00] & 0x02) );
return 0;
}
-SCREEN_UPDATE_IND16( stepstag_mid )
+UINT32 stepstag_state::screen_update_stepstag_mid(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- stepstag_state *state = screen.machine().driver_data<stepstag_state>();
bitmap.fill(0, cliprect);
screen.machine().priority_bitmap.fill(0);
- tetrisp2_draw_sprites( screen.machine(), bitmap, screen.machine().priority_bitmap, cliprect, state->m_priority,
- state->m_spriteram2, state->m_spriteram2.bytes(), 0, (state->m_systemregs[0x00] & 0x02) );
+ tetrisp2_draw_sprites( screen.machine(), bitmap, screen.machine().priority_bitmap, cliprect, m_priority,
+ m_spriteram2, m_spriteram2.bytes(), 0, (m_systemregs[0x00] & 0x02) );
- state->m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
+ m_tilemap_fg->draw(bitmap, cliprect, 0, 1 << 2);
return 0;
}
diff --git a/src/mame/video/thedeep.c b/src/mame/video/thedeep.c
index fda1cb79152..68b25bb87ad 100644
--- a/src/mame/video/thedeep.c
+++ b/src/mame/video/thedeep.c
@@ -205,25 +205,24 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
***************************************************************************/
-SCREEN_UPDATE_IND16( thedeep )
+UINT32 thedeep_state::screen_update_thedeep(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- thedeep_state *state = screen.machine().driver_data<thedeep_state>();
- int scrollx = state->m_scroll[0] + (state->m_scroll[1]<<8);
- int scrolly = state->m_scroll[2] + (state->m_scroll[3]<<8);
+ int scrollx = m_scroll[0] + (m_scroll[1]<<8);
+ int scrolly = m_scroll[2] + (m_scroll[3]<<8);
int x;
- state->m_tilemap_0->set_scrollx(0, scrollx);
+ m_tilemap_0->set_scrollx(0, scrollx);
for (x = 0; x < 0x20; x++)
{
- int y = state->m_scroll2[x*2+0] + (state->m_scroll2[x*2+1]<<8);
- state->m_tilemap_0->set_scrolly(x, y + scrolly);
+ int y = m_scroll2[x*2+0] + (m_scroll2[x*2+1]<<8);
+ m_tilemap_0->set_scrolly(x, y + scrolly);
}
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- state->m_tilemap_0->draw(bitmap, cliprect, 0,0);
+ m_tilemap_0->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect);
- state->m_tilemap_1->draw(bitmap, cliprect, 0,0);
+ m_tilemap_1->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/video/thepit.c b/src/mame/video/thepit.c
index 48bf8863e2c..65ee47dd0a7 100644
--- a/src/mame/video/thepit.c
+++ b/src/mame/video/thepit.c
@@ -276,32 +276,31 @@ static void draw_sprites(running_machine &machine,
}
-SCREEN_UPDATE_IND16( thepit )
+UINT32 thepit_state::screen_update_thepit(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- thepit_state *state = screen.machine().driver_data<thepit_state>();
offs_t offs;
for (offs = 0; offs < 32; offs++)
{
- int xshift = state->m_flip_screen_x ? 128 : 0;
- int yshift = state->m_flip_screen_y ? -8 : 0;
+ int xshift = m_flip_screen_x ? 128 : 0;
+ int yshift = m_flip_screen_y ? -8 : 0;
- state->m_tilemap->set_scrollx(offs, xshift);
- state->m_solid_tilemap->set_scrollx(offs, xshift);
+ m_tilemap->set_scrollx(offs, xshift);
+ m_solid_tilemap->set_scrollx(offs, xshift);
- state->m_tilemap->set_scrolly(offs, yshift + state->m_attributesram[offs << 1]);
- state->m_solid_tilemap->set_scrolly(offs, yshift + state->m_attributesram[offs << 1]);
+ m_tilemap->set_scrolly(offs, yshift + m_attributesram[offs << 1]);
+ m_solid_tilemap->set_scrolly(offs, yshift + m_attributesram[offs << 1]);
}
/* low priority tiles */
- state->m_solid_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_solid_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tilemap->draw(bitmap, cliprect, 0, 0);
/* low priority sprites */
draw_sprites(screen.machine(), bitmap, cliprect, 0);
/* high priority tiles */
- state->m_solid_tilemap->draw(bitmap, cliprect, 1, 1);
+ m_solid_tilemap->draw(bitmap, cliprect, 1, 1);
/* high priority sprites */
draw_sprites(screen.machine(), bitmap, cliprect, 1);
diff --git a/src/mame/video/thief.c b/src/mame/video/thief.c
index 93ebb208de2..a9285979d6a 100644
--- a/src/mame/video/thief.c
+++ b/src/mame/video/thief.c
@@ -99,11 +99,10 @@ void thief_state::video_start(){
m_coprocessor.context_ram = auto_alloc_array(machine(), UINT8, 0x400 );
}
-SCREEN_UPDATE_IND16( thief ){
- thief_state *state = screen.machine().driver_data<thief_state>();
- UINT8 *videoram = state->m_videoram;
+UINT32 thief_state::screen_update_thief(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){
+ UINT8 *videoram = m_videoram;
UINT32 offs;
- int flipscreen = state->m_video_control&1;
+ int flipscreen = m_video_control&1;
const UINT8 *source = videoram;
if (tms9927_screen_reset(screen.machine().device("tms")))
@@ -112,7 +111,7 @@ SCREEN_UPDATE_IND16( thief ){
return 0;
}
- if( state->m_video_control&4 ) /* visible page */
+ if( m_video_control&4 ) /* visible page */
source += 0x2000*4;
for( offs=0; offs<0x2000; offs++ ){
diff --git a/src/mame/video/thoop2.c b/src/mame/video/thoop2.c
index 2911c17590c..b896d535550 100644
--- a/src/mame/video/thoop2.c
+++ b/src/mame/video/thoop2.c
@@ -195,42 +195,41 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
***************************************************************************/
-SCREEN_UPDATE_IND16( thoop2 )
+UINT32 thoop2_state::screen_update_thoop2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- thoop2_state *state = screen.machine().driver_data<thoop2_state>();
/* set scroll registers */
- state->m_pant[0]->set_scrolly(0, state->m_vregs[0]);
- state->m_pant[0]->set_scrollx(0, state->m_vregs[1]+4);
- state->m_pant[1]->set_scrolly(0, state->m_vregs[2]);
- state->m_pant[1]->set_scrollx(0, state->m_vregs[3]);
+ m_pant[0]->set_scrolly(0, m_vregs[0]);
+ m_pant[0]->set_scrollx(0, m_vregs[1]+4);
+ m_pant[1]->set_scrolly(0, m_vregs[2]);
+ m_pant[1]->set_scrollx(0, m_vregs[3]);
thoop2_sort_sprites(screen.machine());
bitmap.fill(0, cliprect );
- state->m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3,0);
- state->m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3,0);
+ m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3,0);
+ m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 3,0);
draw_sprites(screen.machine(), bitmap,cliprect,3);
- state->m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3,0);
- state->m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3,0);
+ m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3,0);
+ m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 3,0);
- state->m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2,0);
- state->m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2,0);
+ m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2,0);
+ m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 2,0);
draw_sprites(screen.machine(), bitmap,cliprect,2);
- state->m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2,0);
- state->m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2,0);
+ m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2,0);
+ m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 2,0);
- state->m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1,0);
- state->m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1,0);
+ m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1,0);
+ m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 1,0);
draw_sprites(screen.machine(), bitmap,cliprect,1);
- state->m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1,0);
- state->m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1,0);
+ m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1,0);
+ m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 1,0);
- state->m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0,0);
- state->m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0,0);
+ m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0,0);
+ m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1 | 0,0);
draw_sprites(screen.machine(), bitmap,cliprect,0);
- state->m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0,0);
- state->m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0,0);
+ m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0,0);
+ m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0 | 0,0);
draw_sprites(screen.machine(), bitmap,cliprect,4);
return 0;
diff --git a/src/mame/video/thunderj.c b/src/mame/video/thunderj.c
index c4639014327..3b62608ab9f 100644
--- a/src/mame/video/thunderj.c
+++ b/src/mame/video/thunderj.c
@@ -118,9 +118,8 @@ VIDEO_START_MEMBER(thunderj_state,thunderj)
*
*************************************/
-SCREEN_UPDATE_IND16( thunderj )
+UINT32 thunderj_state::screen_update_thunderj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- thunderj_state *state = screen.machine().driver_data<thunderj_state>();
bitmap_ind8 &priority_bitmap = screen.machine().priority_bitmap;
atarimo_rect_list rectlist;
bitmap_ind16 *mobitmap;
@@ -128,14 +127,14 @@ SCREEN_UPDATE_IND16( thunderj )
/* draw the playfield */
priority_bitmap.fill(0, cliprect);
- state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0x00);
- state->m_playfield_tilemap->draw(bitmap, cliprect, 1, 0x01);
- state->m_playfield_tilemap->draw(bitmap, cliprect, 2, 0x02);
- state->m_playfield_tilemap->draw(bitmap, cliprect, 3, 0x03);
- state->m_playfield2_tilemap->draw(bitmap, cliprect, 0, 0x80);
- state->m_playfield2_tilemap->draw(bitmap, cliprect, 1, 0x84);
- state->m_playfield2_tilemap->draw(bitmap, cliprect, 2, 0x88);
- state->m_playfield2_tilemap->draw(bitmap, cliprect, 3, 0x8c);
+ m_playfield_tilemap->draw(bitmap, cliprect, 0, 0x00);
+ m_playfield_tilemap->draw(bitmap, cliprect, 1, 0x01);
+ m_playfield_tilemap->draw(bitmap, cliprect, 2, 0x02);
+ m_playfield_tilemap->draw(bitmap, cliprect, 3, 0x03);
+ m_playfield2_tilemap->draw(bitmap, cliprect, 0, 0x80);
+ m_playfield2_tilemap->draw(bitmap, cliprect, 1, 0x84);
+ m_playfield2_tilemap->draw(bitmap, cliprect, 2, 0x88);
+ m_playfield2_tilemap->draw(bitmap, cliprect, 3, 0x8c);
/* draw and merge the MO */
mobitmap = atarimo_render(0, cliprect, &rectlist);
@@ -234,7 +233,7 @@ SCREEN_UPDATE_IND16( thunderj )
}
/* add the alpha on top */
- state->m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
/* now go back and process the upper bit of MO priority */
rectlist.rect -= rectlist.numrects;
diff --git a/src/mame/video/thunderx.c b/src/mame/video/thunderx.c
index 8e85e55e616..33270ffd6da 100644
--- a/src/mame/video/thunderx.c
+++ b/src/mame/video/thunderx.c
@@ -65,28 +65,27 @@ void thunderx_state::video_start()
***************************************************************************/
-SCREEN_UPDATE_IND16( scontra )
+UINT32 thunderx_state::screen_update_scontra(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- thunderx_state *state = screen.machine().driver_data<thunderx_state>();
- k052109_tilemap_update(state->m_k052109);
+ k052109_tilemap_update(m_k052109);
screen.machine().priority_bitmap.fill(0, cliprect);
/* The background color is always from layer 1 - but it's always black anyway */
-// bitmap.fill(16 * state->m_layer_colorbase[1], cliprect);
- if (state->m_priority)
+// bitmap.fill(16 * m_layer_colorbase[1], cliprect);
+ if (m_priority)
{
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE, 1);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, 0, 2);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE, 1);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, 0, 2);
}
else
{
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 1);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, 0, 2);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, TILEMAP_DRAW_OPAQUE, 1);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, 0, 2);
}
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, 0, 4);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, 0, 4);
- k051960_sprites_draw(state->m_k051960, bitmap, cliprect, -1, -1);
+ k051960_sprites_draw(m_k051960, bitmap, cliprect, -1, -1);
return 0;
}
diff --git a/src/mame/video/tiamc1.c b/src/mame/video/tiamc1.c
index b97a3ba02a8..412049b3020 100644
--- a/src/mame/video/tiamc1.c
+++ b/src/mame/video/tiamc1.c
@@ -176,29 +176,28 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( tiamc1 )
+UINT32 tiamc1_state::screen_update_tiamc1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tiamc1_state *state = screen.machine().driver_data<tiamc1_state>();
#if 0
int i;
for (i = 0; i < 32; i++)
{
- state->m_bg_tilemap1->set_scrolly(i, state->m_bg_vshift ^ 0xff);
- state->m_bg_tilemap2->set_scrolly(i, state->m_bg_vshift ^ 0xff);
+ m_bg_tilemap1->set_scrolly(i, m_bg_vshift ^ 0xff);
+ m_bg_tilemap2->set_scrolly(i, m_bg_vshift ^ 0xff);
}
for (i = 0; i < 32; i++)
{
- state->m_bg_tilemap1->set_scrollx(i, state->m_bg_hshift ^ 0xff);
- state->m_bg_tilemap2->set_scrollx(i, state->m_bg_hshift ^ 0xff);
+ m_bg_tilemap1->set_scrollx(i, m_bg_hshift ^ 0xff);
+ m_bg_tilemap2->set_scrollx(i, m_bg_hshift ^ 0xff);
}
#endif
- if (state->m_layers_ctrl & 0x80)
- state->m_bg_tilemap2->draw(bitmap, cliprect, 0, 0);
+ if (m_layers_ctrl & 0x80)
+ m_bg_tilemap2->draw(bitmap, cliprect, 0, 0);
else
- state->m_bg_tilemap1->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap1->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
diff --git a/src/mame/video/tigeroad.c b/src/mame/video/tigeroad.c
index 96af6a2dbe6..a49c0cb35e1 100644
--- a/src/mame/video/tigeroad.c
+++ b/src/mame/video/tigeroad.c
@@ -155,13 +155,12 @@ void tigeroad_state::video_start()
m_fg_tilemap->set_transparent_pen(3);
}
-SCREEN_UPDATE_IND16( tigeroad )
+UINT32 tigeroad_state::screen_update_tigeroad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tigeroad_state *state = screen.machine().driver_data<tigeroad_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
draw_sprites(screen.machine(), bitmap, cliprect, 0);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 1);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 1);
//draw_sprites(screen.machine(), bitmap, cliprect, 1); draw priority sprites?
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 2);
return 0;
}
diff --git a/src/mame/video/timelimt.c b/src/mame/video/timelimt.c
index b4c1b2cfbdc..505c252d3ad 100644
--- a/src/mame/video/timelimt.c
+++ b/src/mame/video/timelimt.c
@@ -136,15 +136,14 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
-SCREEN_UPDATE_IND16( timelimt )
+UINT32 timelimt_state::screen_update_timelimt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- timelimt_state *state = screen.machine().driver_data<timelimt_state>();
- state->m_bg_tilemap->set_scrollx(0, state->m_scrollx);
- state->m_bg_tilemap->set_scrolly(0, state->m_scrolly);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->set_scrollx(0, m_scrollx);
+ m_bg_tilemap->set_scrolly(0, m_scrolly);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/timeplt.c b/src/mame/video/timeplt.c
index 9d541d3485d..ee40fcc06d4 100644
--- a/src/mame/video/timeplt.c
+++ b/src/mame/video/timeplt.c
@@ -204,12 +204,11 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
*
*************************************/
-SCREEN_UPDATE_IND16( timeplt )
+UINT32 timeplt_state::screen_update_timeplt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- timeplt_state *state = screen.machine().driver_data<timeplt_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 1, 0);
return 0;
}
diff --git a/src/mame/video/tmnt.c b/src/mame/video/tmnt.c
index 9b88d50b19d..809fb4e6557 100644
--- a/src/mame/video/tmnt.c
+++ b/src/mame/video/tmnt.c
@@ -557,96 +557,92 @@ WRITE16_MEMBER(tmnt_state::tmnt_priority_w)
***************************************************************************/
-SCREEN_UPDATE_IND16( mia )
+UINT32 tmnt_state::screen_update_mia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tmnt_state *state = screen.machine().driver_data<tmnt_state>();
- k052109_tilemap_update(state->m_k052109);
+ k052109_tilemap_update(m_k052109);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE,0);
- if ((state->m_tmnt_priorityflag & 1) == 1) k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 0, 0);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, 0, 0);
- if ((state->m_tmnt_priorityflag & 1) == 0) k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 0, 0);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, 0, 0);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE,0);
+ if ((m_tmnt_priorityflag & 1) == 1) k051960_sprites_draw(m_k051960, bitmap, cliprect, 0, 0);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, 0, 0);
+ if ((m_tmnt_priorityflag & 1) == 0) k051960_sprites_draw(m_k051960, bitmap, cliprect, 0, 0);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( tmnt )
+UINT32 tmnt_state::screen_update_tmnt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tmnt_state *state = screen.machine().driver_data<tmnt_state>();
- k052109_tilemap_update(state->m_k052109);
+ k052109_tilemap_update(m_k052109);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE,0);
- if ((state->m_tmnt_priorityflag & 1) == 1) k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 0, 0);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 1, 0, 0);
- if ((state->m_tmnt_priorityflag & 1) == 0) k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 0, 0);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, 0, 0, 0);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 2, TILEMAP_DRAW_OPAQUE,0);
+ if ((m_tmnt_priorityflag & 1) == 1) k051960_sprites_draw(m_k051960, bitmap, cliprect, 0, 0);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 1, 0, 0);
+ if ((m_tmnt_priorityflag & 1) == 0) k051960_sprites_draw(m_k051960, bitmap, cliprect, 0, 0);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, 0, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( punkshot )
+UINT32 tmnt_state::screen_update_punkshot(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tmnt_state *state = screen.machine().driver_data<tmnt_state>();
- state->m_sprite_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI1);
- state->m_layer_colorbase[0] = k053251_get_palette_index(state->m_k053251, K053251_CI2);
- state->m_layer_colorbase[1] = k053251_get_palette_index(state->m_k053251, K053251_CI4);
- state->m_layer_colorbase[2] = k053251_get_palette_index(state->m_k053251, K053251_CI3);
+ m_sprite_colorbase = k053251_get_palette_index(m_k053251, K053251_CI1);
+ m_layer_colorbase[0] = k053251_get_palette_index(m_k053251, K053251_CI2);
+ m_layer_colorbase[1] = k053251_get_palette_index(m_k053251, K053251_CI4);
+ m_layer_colorbase[2] = k053251_get_palette_index(m_k053251, K053251_CI3);
- k052109_tilemap_update(state->m_k052109);
+ k052109_tilemap_update(m_k052109);
- state->m_sorted_layer[0] = 0;
- state->m_layerpri[0] = k053251_get_priority(state->m_k053251, K053251_CI2);
- state->m_sorted_layer[1] = 1;
- state->m_layerpri[1] = k053251_get_priority(state->m_k053251, K053251_CI4);
- state->m_sorted_layer[2] = 2;
- state->m_layerpri[2] = k053251_get_priority(state->m_k053251, K053251_CI3);
+ m_sorted_layer[0] = 0;
+ m_layerpri[0] = k053251_get_priority(m_k053251, K053251_CI2);
+ m_sorted_layer[1] = 1;
+ m_layerpri[1] = k053251_get_priority(m_k053251, K053251_CI4);
+ m_sorted_layer[2] = 2;
+ m_layerpri[2] = k053251_get_priority(m_k053251, K053251_CI3);
- konami_sortlayers3(state->m_sorted_layer, state->m_layerpri);
+ konami_sortlayers3(m_sorted_layer, m_layerpri);
screen.machine().priority_bitmap.fill(0, cliprect);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, state->m_sorted_layer[0], TILEMAP_DRAW_OPAQUE, 1);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, state->m_sorted_layer[1], 0, 2);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, state->m_sorted_layer[2], 0, 4);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, m_sorted_layer[0], TILEMAP_DRAW_OPAQUE, 1);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, m_sorted_layer[1], 0, 2);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, m_sorted_layer[2], 0, 4);
- k051960_sprites_draw(state->m_k051960, bitmap, cliprect, -1, -1);
+ k051960_sprites_draw(m_k051960, bitmap, cliprect, -1, -1);
return 0;
}
-SCREEN_UPDATE_IND16( lgtnfght )
+UINT32 tmnt_state::screen_update_lgtnfght(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tmnt_state *state = screen.machine().driver_data<tmnt_state>();
int bg_colorbase;
- bg_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI0);
- state->m_sprite_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI1);
- state->m_layer_colorbase[0] = k053251_get_palette_index(state->m_k053251, K053251_CI2);
- state->m_layer_colorbase[1] = k053251_get_palette_index(state->m_k053251, K053251_CI4);
- state->m_layer_colorbase[2] = k053251_get_palette_index(state->m_k053251, K053251_CI3);
+ bg_colorbase = k053251_get_palette_index(m_k053251, K053251_CI0);
+ m_sprite_colorbase = k053251_get_palette_index(m_k053251, K053251_CI1);
+ m_layer_colorbase[0] = k053251_get_palette_index(m_k053251, K053251_CI2);
+ m_layer_colorbase[1] = k053251_get_palette_index(m_k053251, K053251_CI4);
+ m_layer_colorbase[2] = k053251_get_palette_index(m_k053251, K053251_CI3);
- k052109_tilemap_update(state->m_k052109);
+ k052109_tilemap_update(m_k052109);
- state->m_sorted_layer[0] = 0;
- state->m_layerpri[0] = k053251_get_priority(state->m_k053251, K053251_CI2);
- state->m_sorted_layer[1] = 1;
- state->m_layerpri[1] = k053251_get_priority(state->m_k053251, K053251_CI4);
- state->m_sorted_layer[2] = 2;
- state->m_layerpri[2] = k053251_get_priority(state->m_k053251, K053251_CI3);
+ m_sorted_layer[0] = 0;
+ m_layerpri[0] = k053251_get_priority(m_k053251, K053251_CI2);
+ m_sorted_layer[1] = 1;
+ m_layerpri[1] = k053251_get_priority(m_k053251, K053251_CI4);
+ m_sorted_layer[2] = 2;
+ m_layerpri[2] = k053251_get_priority(m_k053251, K053251_CI3);
- konami_sortlayers3(state->m_sorted_layer, state->m_layerpri);
+ konami_sortlayers3(m_sorted_layer, m_layerpri);
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(16 * bg_colorbase, cliprect);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, state->m_sorted_layer[0], 0, 1);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, state->m_sorted_layer[1], 0, 2);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, state->m_sorted_layer[2], 0, 4);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, m_sorted_layer[0], 0, 1);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, m_sorted_layer[1], 0, 2);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, m_sorted_layer[2], 0, 4);
- k053245_sprites_draw(state->m_k053245, bitmap, cliprect);
+ k053245_sprites_draw(m_k053245, bitmap, cliprect);
return 0;
}
@@ -664,76 +660,74 @@ popmessage("%04x", m_glfgreat_pixel);
return m_glfgreat_pixel & 0xff;
}
-SCREEN_UPDATE_IND16( glfgreat )
+UINT32 tmnt_state::screen_update_glfgreat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tmnt_state *state = screen.machine().driver_data<tmnt_state>();
int bg_colorbase;
- bg_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI0);
- state->m_sprite_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI1);
- state->m_layer_colorbase[0] = k053251_get_palette_index(state->m_k053251, K053251_CI2);
- state->m_layer_colorbase[1] = k053251_get_palette_index(state->m_k053251, K053251_CI3) + 8; /* weird... */
- state->m_layer_colorbase[2] = k053251_get_palette_index(state->m_k053251, K053251_CI4);
+ bg_colorbase = k053251_get_palette_index(m_k053251, K053251_CI0);
+ m_sprite_colorbase = k053251_get_palette_index(m_k053251, K053251_CI1);
+ m_layer_colorbase[0] = k053251_get_palette_index(m_k053251, K053251_CI2);
+ m_layer_colorbase[1] = k053251_get_palette_index(m_k053251, K053251_CI3) + 8; /* weird... */
+ m_layer_colorbase[2] = k053251_get_palette_index(m_k053251, K053251_CI4);
- k052109_tilemap_update(state->m_k052109);
+ k052109_tilemap_update(m_k052109);
- state->m_sorted_layer[0] = 0;
- state->m_layerpri[0] = k053251_get_priority(state->m_k053251, K053251_CI2);
- state->m_sorted_layer[1] = 1;
- state->m_layerpri[1] = k053251_get_priority(state->m_k053251, K053251_CI3);
- state->m_sorted_layer[2] = 2;
- state->m_layerpri[2] = k053251_get_priority(state->m_k053251, K053251_CI4);
+ m_sorted_layer[0] = 0;
+ m_layerpri[0] = k053251_get_priority(m_k053251, K053251_CI2);
+ m_sorted_layer[1] = 1;
+ m_layerpri[1] = k053251_get_priority(m_k053251, K053251_CI3);
+ m_sorted_layer[2] = 2;
+ m_layerpri[2] = k053251_get_priority(m_k053251, K053251_CI4);
- konami_sortlayers3(state->m_sorted_layer, state->m_layerpri);
+ konami_sortlayers3(m_sorted_layer, m_layerpri);
/* not sure about the 053936 priority, but it seems to work */
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(16 * bg_colorbase, cliprect);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, state->m_sorted_layer[0], 0, 1);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, m_sorted_layer[0], 0, 1);
- if (state->m_layerpri[0] >= 0x30 && state->m_layerpri[1] < 0x30)
+ if (m_layerpri[0] >= 0x30 && m_layerpri[1] < 0x30)
{
- k053936_zoom_draw(state->m_k053936, bitmap, cliprect, state->m_roz_tilemap, 0, 1, 1);
- state->m_glfgreat_pixel = bitmap.pix16(0x80, 0x105);
+ k053936_zoom_draw(m_k053936, bitmap, cliprect, m_roz_tilemap, 0, 1, 1);
+ m_glfgreat_pixel = bitmap.pix16(0x80, 0x105);
}
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, state->m_sorted_layer[1], 0, 2);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, m_sorted_layer[1], 0, 2);
- if (state->m_layerpri[1] >= 0x30 && state->m_layerpri[2] < 0x30)
+ if (m_layerpri[1] >= 0x30 && m_layerpri[2] < 0x30)
{
- k053936_zoom_draw(state->m_k053936, bitmap, cliprect, state->m_roz_tilemap, 0, 1, 1);
- state->m_glfgreat_pixel = bitmap.pix16(0x80, 0x105);
+ k053936_zoom_draw(m_k053936, bitmap, cliprect, m_roz_tilemap, 0, 1, 1);
+ m_glfgreat_pixel = bitmap.pix16(0x80, 0x105);
}
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, state->m_sorted_layer[2], 0, 4);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, m_sorted_layer[2], 0, 4);
- if (state->m_layerpri[2] >= 0x30)
+ if (m_layerpri[2] >= 0x30)
{
- k053936_zoom_draw(state->m_k053936, bitmap, cliprect, state->m_roz_tilemap, 0, 1, 1);
- state->m_glfgreat_pixel = bitmap.pix16(0x80, 0x105);
+ k053936_zoom_draw(m_k053936, bitmap, cliprect, m_roz_tilemap, 0, 1, 1);
+ m_glfgreat_pixel = bitmap.pix16(0x80, 0x105);
}
- k053245_sprites_draw(state->m_k053245, bitmap, cliprect);
+ k053245_sprites_draw(m_k053245, bitmap, cliprect);
return 0;
}
-SCREEN_UPDATE_IND16( tmnt2 )
+UINT32 tmnt_state::screen_update_tmnt2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tmnt_state *state = screen.machine().driver_data<tmnt_state>();
double brt;
int i, newdim, newen, cb, ce;
- newdim = state->m_dim_v | ((~state->m_dim_c & 0x10) >> 1);
- newen = (k053251_get_priority(state->m_k053251, 5) && k053251_get_priority(state->m_k053251, 5) != 0x3e);
+ newdim = m_dim_v | ((~m_dim_c & 0x10) >> 1);
+ newen = (k053251_get_priority(m_k053251, 5) && k053251_get_priority(m_k053251, 5) != 0x3e);
- if (newdim != state->m_lastdim || newen != state->m_lasten)
+ if (newdim != m_lastdim || newen != m_lasten)
{
brt = 1.0;
if (newen)
brt -= (1.0 - PALETTE_DEFAULT_SHADOW_FACTOR) * newdim / 8;
- state->m_lastdim = newdim;
- state->m_lasten = newen;
+ m_lastdim = newdim;
+ m_lasten = newen;
/*
Only affect the background and sprites, not text layer.
@@ -744,7 +738,7 @@ SCREEN_UPDATE_IND16( tmnt2 )
*/
// find the text layer's palette range
- cb = state->m_layer_colorbase[state->m_sorted_layer[2]] << 4;
+ cb = m_layer_colorbase[m_sorted_layer[2]] << 4;
ce = cb + 128;
// dim all colors before it
@@ -760,46 +754,45 @@ SCREEN_UPDATE_IND16( tmnt2 )
palette_set_pen_contrast(screen.machine(), i, brt);
// toggle shadow/highlight
- if (~state->m_dim_c & 0x10)
+ if (~m_dim_c & 0x10)
palette_set_shadow_mode(screen.machine(), 1);
else
palette_set_shadow_mode(screen.machine(), 0);
}
- SCREEN_UPDATE16_CALL(lgtnfght);
+ SCREEN_UPDATE16_CALL_MEMBER(lgtnfght);
return 0;
}
-SCREEN_UPDATE_IND16( thndrx2 )
+UINT32 tmnt_state::screen_update_thndrx2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tmnt_state *state = screen.machine().driver_data<tmnt_state>();
int bg_colorbase;
- bg_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI0);
- state->m_sprite_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI1);
- state->m_layer_colorbase[0] = k053251_get_palette_index(state->m_k053251, K053251_CI2);
- state->m_layer_colorbase[1] = k053251_get_palette_index(state->m_k053251, K053251_CI4);
- state->m_layer_colorbase[2] = k053251_get_palette_index(state->m_k053251, K053251_CI3);
+ bg_colorbase = k053251_get_palette_index(m_k053251, K053251_CI0);
+ m_sprite_colorbase = k053251_get_palette_index(m_k053251, K053251_CI1);
+ m_layer_colorbase[0] = k053251_get_palette_index(m_k053251, K053251_CI2);
+ m_layer_colorbase[1] = k053251_get_palette_index(m_k053251, K053251_CI4);
+ m_layer_colorbase[2] = k053251_get_palette_index(m_k053251, K053251_CI3);
- k052109_tilemap_update(state->m_k052109);
+ k052109_tilemap_update(m_k052109);
- state->m_sorted_layer[0] = 0;
- state->m_layerpri[0] = k053251_get_priority(state->m_k053251, K053251_CI2);
- state->m_sorted_layer[1] = 1;
- state->m_layerpri[1] = k053251_get_priority(state->m_k053251, K053251_CI4);
- state->m_sorted_layer[2] = 2;
- state->m_layerpri[2] = k053251_get_priority(state->m_k053251, K053251_CI3);
+ m_sorted_layer[0] = 0;
+ m_layerpri[0] = k053251_get_priority(m_k053251, K053251_CI2);
+ m_sorted_layer[1] = 1;
+ m_layerpri[1] = k053251_get_priority(m_k053251, K053251_CI4);
+ m_sorted_layer[2] = 2;
+ m_layerpri[2] = k053251_get_priority(m_k053251, K053251_CI3);
- konami_sortlayers3(state->m_sorted_layer, state->m_layerpri);
+ konami_sortlayers3(m_sorted_layer, m_layerpri);
screen.machine().priority_bitmap.fill(0, cliprect);
bitmap.fill(16 * bg_colorbase, cliprect);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, state->m_sorted_layer[0], 0, 1);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, state->m_sorted_layer[1], 0, 2);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, state->m_sorted_layer[2], 0, 4);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, m_sorted_layer[0], 0, 1);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, m_sorted_layer[1], 0, 2);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, m_sorted_layer[2], 0, 4);
- k051960_sprites_draw(state->m_k051960, bitmap, cliprect, -1, -1);
+ k051960_sprites_draw(m_k051960, bitmap, cliprect, -1, -1);
return 0;
}
@@ -811,12 +804,11 @@ SCREEN_UPDATE_IND16( thndrx2 )
***************************************************************************/
-SCREEN_VBLANK( blswhstl )
+void tmnt_state::screen_eof_blswhstl(screen_device &screen, bool state)
{
// on rising edge
- if (vblank_on)
+ if (state)
{
- tmnt_state *state = screen.machine().driver_data<tmnt_state>();
- k053245_clear_buffer(state->m_k053245);
+ k053245_clear_buffer(m_k053245);
}
}
diff --git a/src/mame/video/tnzs.c b/src/mame/video/tnzs.c
index 2b4d02436bb..5cf6d34f097 100644
--- a/src/mame/video/tnzs.c
+++ b/src/mame/video/tnzs.c
@@ -43,20 +43,20 @@ PALETTE_INIT_MEMBER(tnzs_state,arknoid2)
}
-SCREEN_UPDATE_IND16( tnzs )
+UINT32 tnzs_state::screen_update_tnzs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bitmap.fill(0x1f0, cliprect);
- screen.machine().device<seta001_device>("spritegen")->set_fg_yoffsets( -0x12, 0x0e );
- screen.machine().device<seta001_device>("spritegen")->set_bg_yoffsets( 0x1, -0x1 );
+ machine().device<seta001_device>("spritegen")->set_fg_yoffsets( -0x12, 0x0e );
+ machine().device<seta001_device>("spritegen")->set_bg_yoffsets( 0x1, -0x1 );
- screen.machine().device<seta001_device>("spritegen")->seta001_draw_sprites(screen.machine(), bitmap, cliprect, 0x800, 0 );
+ machine().device<seta001_device>("spritegen")->seta001_draw_sprites(screen.machine(), bitmap, cliprect, 0x800, 0 );
return 0;
}
-SCREEN_VBLANK( tnzs )
+void tnzs_state::screen_eof_tnzs(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
- screen.machine().device<seta001_device>("spritegen")->tnzs_eof();
+ if (state)
+ machine().device<seta001_device>("spritegen")->tnzs_eof();
}
diff --git a/src/mame/video/toaplan1.c b/src/mame/video/toaplan1.c
index da48e79c377..dbed7ac9429 100644
--- a/src/mame/video/toaplan1.c
+++ b/src/mame/video/toaplan1.c
@@ -1130,33 +1130,31 @@ static void rallybik_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap
Draw the game screen in the given bitmap_ind16.
***************************************************************************/
-SCREEN_UPDATE_IND16( rallybik )
+UINT32 toaplan1_state::screen_update_rallybik(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- toaplan1_state *state = screen.machine().driver_data<toaplan1_state>();
int priority;
toaplan1_log_vram(screen.machine());
bitmap.fill(0x120, cliprect);
- state->m_pf1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 0, 0);
- state->m_pf1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 1, 0);
+ m_pf1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 0, 0);
+ m_pf1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 1, 0);
for (priority = 1; priority < 16; priority++)
{
- state->m_pf4_tilemap->draw(bitmap, cliprect, priority, 0);
- state->m_pf3_tilemap->draw(bitmap, cliprect, priority, 0);
- state->m_pf2_tilemap->draw(bitmap, cliprect, priority, 0);
- state->m_pf1_tilemap->draw(bitmap, cliprect, priority, 0);
+ m_pf4_tilemap->draw(bitmap, cliprect, priority, 0);
+ m_pf3_tilemap->draw(bitmap, cliprect, priority, 0);
+ m_pf2_tilemap->draw(bitmap, cliprect, priority, 0);
+ m_pf1_tilemap->draw(bitmap, cliprect, priority, 0);
rallybik_draw_sprites(screen.machine(), bitmap,cliprect,priority << 8);
}
return 0;
}
-SCREEN_UPDATE_IND16( toaplan1 )
+UINT32 toaplan1_state::screen_update_toaplan1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- toaplan1_state *state = screen.machine().driver_data<toaplan1_state>();
int priority;
toaplan1_log_vram(screen.machine());
@@ -1165,15 +1163,15 @@ SCREEN_UPDATE_IND16( toaplan1 )
bitmap.fill(0x120, cliprect);
// it's really correct?
- state->m_pf1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 0, 0);
- state->m_pf1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 1, 0);
+ m_pf1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 0, 0);
+ m_pf1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE | 1, 0);
for (priority = 1; priority < 16; priority++)
{
- state->m_pf4_tilemap->draw(bitmap, cliprect, priority, priority, 0);
- state->m_pf3_tilemap->draw(bitmap, cliprect, priority, priority, 0);
- state->m_pf2_tilemap->draw(bitmap, cliprect, priority, priority, 0);
- state->m_pf1_tilemap->draw(bitmap, cliprect, priority, priority, 0);
+ m_pf4_tilemap->draw(bitmap, cliprect, priority, priority, 0);
+ m_pf3_tilemap->draw(bitmap, cliprect, priority, priority, 0);
+ m_pf2_tilemap->draw(bitmap, cliprect, priority, priority, 0);
+ m_pf1_tilemap->draw(bitmap, cliprect, priority, priority, 0);
}
draw_sprites(screen.machine(), bitmap, cliprect);
@@ -1186,38 +1184,35 @@ SCREEN_UPDATE_IND16( toaplan1 )
assume it happens automatically every frame, at the end of vblank
****************************************************************************/
-SCREEN_VBLANK( rallybik )
+void toaplan1_state::screen_eof_rallybik(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- toaplan1_state *state = screen.machine().driver_data<toaplan1_state>();
- memcpy(state->m_buffered_spriteram, state->m_spriteram, state->m_spriteram.bytes());
+ memcpy(m_buffered_spriteram, m_spriteram, m_spriteram.bytes());
}
}
-SCREEN_VBLANK( toaplan1 )
+void toaplan1_state::screen_eof_toaplan1(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- toaplan1_state *state = screen.machine().driver_data<toaplan1_state>();
- memcpy(state->m_buffered_spriteram, state->m_spriteram, state->m_spriteram.bytes());
- memcpy(state->m_buffered_spritesizeram16, state->m_spritesizeram16, TOAPLAN1_SPRITESIZERAM_SIZE);
+ memcpy(m_buffered_spriteram, m_spriteram, m_spriteram.bytes());
+ memcpy(m_buffered_spritesizeram16, m_spritesizeram16, TOAPLAN1_SPRITESIZERAM_SIZE);
}
}
-SCREEN_VBLANK( samesame )
+void toaplan1_state::screen_eof_samesame(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- toaplan1_state *state = screen.machine().driver_data<toaplan1_state>();
- memcpy(state->m_buffered_spriteram, state->m_spriteram, state->m_spriteram.bytes());
- memcpy(state->m_buffered_spritesizeram16, state->m_spritesizeram16, TOAPLAN1_SPRITESIZERAM_SIZE);
+ memcpy(m_buffered_spriteram, m_spriteram, m_spriteram.bytes());
+ memcpy(m_buffered_spritesizeram16, m_spritesizeram16, TOAPLAN1_SPRITESIZERAM_SIZE);
screen.machine().device("maincpu")->execute().set_input_line(M68K_IRQ_2, HOLD_LINE); /* Frame done */
}
}
diff --git a/src/mame/video/toaplan2.c b/src/mame/video/toaplan2.c
index 36ebb963cb0..e0c7db1aeca 100644
--- a/src/mame/video/toaplan2.c
+++ b/src/mame/video/toaplan2.c
@@ -286,21 +286,20 @@ WRITE16_MEMBER(toaplan2_state::batrider_objectbank_w)
}
// Dogyuun doesn't appear to require fancy mixing?
-SCREEN_UPDATE_IND16( toaplan2_dual )
+UINT32 toaplan2_state::screen_update_toaplan2_dual(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- toaplan2_state *state = screen.machine().driver_data<toaplan2_state>();
- if (state->m_vdp1)
+ if (m_vdp1)
{
bitmap.fill(0, cliprect);
- state->m_custom_priority_bitmap.fill(0, cliprect);
- state->m_vdp1->gp9001_render_vdp(screen.machine(), bitmap, cliprect);
+ m_custom_priority_bitmap.fill(0, cliprect);
+ m_vdp1->gp9001_render_vdp(screen.machine(), bitmap, cliprect);
}
- if (state->m_vdp0)
+ if (m_vdp0)
{
// bitmap.fill(0, cliprect);
- state->m_custom_priority_bitmap.fill(0, cliprect);
- state->m_vdp0->gp9001_render_vdp(screen.machine(), bitmap, cliprect);
+ m_custom_priority_bitmap.fill(0, cliprect);
+ m_vdp0->gp9001_render_vdp(screen.machine(), bitmap, cliprect);
}
@@ -309,24 +308,23 @@ SCREEN_UPDATE_IND16( toaplan2_dual )
// renders to 2 bitmaps, and mixes output
-SCREEN_UPDATE_IND16( toaplan2_mixed )
+UINT32 toaplan2_state::screen_update_toaplan2_mixed(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- toaplan2_state *state = screen.machine().driver_data<toaplan2_state>();
// bitmap.fill(0, cliprect);
// gp9001_custom_priority_bitmap->fill(0, cliprect);
- if (state->m_vdp0)
+ if (m_vdp0)
{
bitmap.fill(0, cliprect);
- state->m_custom_priority_bitmap.fill(0, cliprect);
- state->m_vdp0->gp9001_render_vdp(screen.machine(), bitmap, cliprect);
+ m_custom_priority_bitmap.fill(0, cliprect);
+ m_vdp0->gp9001_render_vdp(screen.machine(), bitmap, cliprect);
}
- if (state->m_vdp1)
+ if (m_vdp1)
{
- state->m_secondary_render_bitmap.fill(0, cliprect);
- state->m_custom_priority_bitmap.fill(0, cliprect);
- state->m_vdp1->gp9001_render_vdp(screen.machine(), state->m_secondary_render_bitmap, cliprect);
+ m_secondary_render_bitmap.fill(0, cliprect);
+ m_custom_priority_bitmap.fill(0, cliprect);
+ m_vdp1->gp9001_render_vdp(screen.machine(), m_secondary_render_bitmap, cliprect);
}
@@ -341,7 +339,7 @@ SCREEN_UPDATE_IND16( toaplan2_mixed )
// on that do.
//
- if (state->m_vdp0 && state->m_vdp1)
+ if (m_vdp0 && m_vdp1)
{
int width = screen.width();
int height = screen.height();
@@ -352,7 +350,7 @@ SCREEN_UPDATE_IND16( toaplan2_mixed )
for (y=0;y<height;y++)
{
src_vdp0 = &bitmap.pix16(y);
- src_vdp1 = &state->m_secondary_render_bitmap.pix16(y);
+ src_vdp1 = &m_secondary_render_bitmap.pix16(y);
for (x=0;x<width;x++)
{
@@ -409,35 +407,32 @@ SCREEN_UPDATE_IND16( toaplan2_mixed )
return 0;
}
-SCREEN_UPDATE_IND16( toaplan2 )
+UINT32 toaplan2_state::screen_update_toaplan2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- toaplan2_state *state = screen.machine().driver_data<toaplan2_state>();
- if (state->m_vdp0)
+ if (m_vdp0)
{
bitmap.fill(0, cliprect);
- state->m_custom_priority_bitmap.fill(0, cliprect);
- state->m_vdp0->gp9001_render_vdp(screen.machine(), bitmap, cliprect);
+ m_custom_priority_bitmap.fill(0, cliprect);
+ m_vdp0->gp9001_render_vdp(screen.machine(), bitmap, cliprect);
}
return 0;
}
-SCREEN_UPDATE_IND16( truxton2 )
+UINT32 toaplan2_state::screen_update_truxton2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- toaplan2_state *state = screen.machine().driver_data<toaplan2_state>();
- SCREEN_UPDATE16_CALL(toaplan2);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
+ SCREEN_UPDATE16_CALL_MEMBER(toaplan2);
+ m_tx_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( batrider )
+UINT32 toaplan2_state::screen_update_batrider(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- toaplan2_state *state = screen.machine().driver_data<toaplan2_state>();
- SCREEN_UPDATE16_CALL( toaplan2 );
+ SCREEN_UPDATE16_CALL_MEMBER( toaplan2 );
int line;
rectangle clip;
@@ -448,42 +443,41 @@ SCREEN_UPDATE_IND16( batrider )
/* used for 'for use in' and '8ing' screen on bbakraid, raizing on batrider */
for (line = 0; line < 256;line++)
{
- if (state->m_tx_flip)
+ if (m_tx_flip)
{
clip.min_y = clip.max_y = 256 - line;
- state->m_tx_tilemap->set_scrolly(0, 256 - line + state->m_txvideoram16_offs[256 - line]);
+ m_tx_tilemap->set_scrolly(0, 256 - line + m_txvideoram16_offs[256 - line]);
}
else
{
clip.min_y = clip.max_y = line;
- state->m_tx_tilemap->set_scrolly(0, - line + state->m_txvideoram16_offs[ line]);
+ m_tx_tilemap->set_scrolly(0, - line + m_txvideoram16_offs[ line]);
}
- state->m_tx_tilemap->draw(bitmap, clip, 0, 0);
+ m_tx_tilemap->draw(bitmap, clip, 0, 0);
}
return 0;
}
-SCREEN_UPDATE_IND16( dogyuun )
+UINT32 toaplan2_state::screen_update_dogyuun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- SCREEN_UPDATE16_CALL( toaplan2_dual );
+ SCREEN_UPDATE16_CALL_MEMBER( toaplan2_dual );
return 0;
}
-SCREEN_UPDATE_IND16( batsugun )
+UINT32 toaplan2_state::screen_update_batsugun(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- SCREEN_UPDATE16_CALL( toaplan2_mixed );
+ SCREEN_UPDATE16_CALL_MEMBER( toaplan2_mixed );
return 0;
}
-SCREEN_VBLANK( toaplan2 )
+void toaplan2_state::screen_eof_toaplan2(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- toaplan2_state *state = screen.machine().driver_data<toaplan2_state>();
- if (state->m_vdp0) state->m_vdp0->gp9001_screen_eof();
- if (state->m_vdp1) state->m_vdp1->gp9001_screen_eof();
+ if (m_vdp0) m_vdp0->gp9001_screen_eof();
+ if (m_vdp1) m_vdp1->gp9001_screen_eof();
}
}
diff --git a/src/mame/video/toki.c b/src/mame/video/toki.c
index cd18668f057..85769ceac65 100644
--- a/src/mame/video/toki.c
+++ b/src/mame/video/toki.c
@@ -251,60 +251,58 @@ static void tokib_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,co
*
*************************************/
-SCREEN_UPDATE_IND16( toki )
+UINT32 toki_state::screen_update_toki(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- toki_state *state = screen.machine().driver_data<toki_state>();
int background_y_scroll,foreground_y_scroll,background_x_scroll,foreground_x_scroll;
- background_x_scroll=((state->m_scrollram16[0x06] &0x7f) << 1)
- |((state->m_scrollram16[0x06] &0x80) >> 7)
- |((state->m_scrollram16[0x05] &0x10) << 4);
- background_y_scroll=((state->m_scrollram16[0x0d]&0x10)<<4)+((state->m_scrollram16[0x0e]&0x7f)<<1)+((state->m_scrollram16[0x0e]&0x80)>>7);
+ background_x_scroll=((m_scrollram16[0x06] &0x7f) << 1)
+ |((m_scrollram16[0x06] &0x80) >> 7)
+ |((m_scrollram16[0x05] &0x10) << 4);
+ background_y_scroll=((m_scrollram16[0x0d]&0x10)<<4)+((m_scrollram16[0x0e]&0x7f)<<1)+((m_scrollram16[0x0e]&0x80)>>7);
- state->m_background_layer->set_scrollx(0, background_x_scroll );
- state->m_background_layer->set_scrolly(0, background_y_scroll );
+ m_background_layer->set_scrollx(0, background_x_scroll );
+ m_background_layer->set_scrolly(0, background_y_scroll );
- foreground_x_scroll= ((state->m_scrollram16[0x16] &0x7f) << 1)
- |((state->m_scrollram16[0x16] &0x80) >> 7)
- |((state->m_scrollram16[0x15] &0x10) << 4);
- foreground_y_scroll=((state->m_scrollram16[0x1d]&0x10)<<4)+((state->m_scrollram16[0x1e]&0x7f)<<1)+((state->m_scrollram16[0x1e]&0x80)>>7);
+ foreground_x_scroll= ((m_scrollram16[0x16] &0x7f) << 1)
+ |((m_scrollram16[0x16] &0x80) >> 7)
+ |((m_scrollram16[0x15] &0x10) << 4);
+ foreground_y_scroll=((m_scrollram16[0x1d]&0x10)<<4)+((m_scrollram16[0x1e]&0x7f)<<1)+((m_scrollram16[0x1e]&0x80)>>7);
- state->m_foreground_layer->set_scrollx(0, foreground_x_scroll );
- state->m_foreground_layer->set_scrolly(0, foreground_y_scroll );
+ m_foreground_layer->set_scrollx(0, foreground_x_scroll );
+ m_foreground_layer->set_scrolly(0, foreground_y_scroll );
- state->flip_screen_set((state->m_scrollram16[0x28]&0x8000)==0);
+ flip_screen_set((m_scrollram16[0x28]&0x8000)==0);
- if (state->m_scrollram16[0x28]&0x100) {
- state->m_background_layer->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
- state->m_foreground_layer->draw(bitmap, cliprect, 0,0);
+ if (m_scrollram16[0x28]&0x100) {
+ m_background_layer->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
+ m_foreground_layer->draw(bitmap, cliprect, 0,0);
} else {
- state->m_foreground_layer->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
- state->m_background_layer->draw(bitmap, cliprect, 0,0);
+ m_foreground_layer->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
+ m_background_layer->draw(bitmap, cliprect, 0,0);
}
toki_draw_sprites(screen.machine(), bitmap,cliprect);
- state->m_text_layer->draw(bitmap, cliprect, 0,0);
+ m_text_layer->draw(bitmap, cliprect, 0,0);
return 0;
}
-SCREEN_UPDATE_IND16( tokib )
+UINT32 toki_state::screen_update_tokib(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- toki_state *state = screen.machine().driver_data<toki_state>();
- state->m_foreground_layer->set_scroll_rows(1);
- state->m_background_layer->set_scroll_rows(1);
- state->m_background_layer->set_scrolly(0, state->m_scrollram16[0]+1 );
- state->m_background_layer->set_scrollx(0, state->m_scrollram16[1]-0x103 );
- state->m_foreground_layer->set_scrolly(0, state->m_scrollram16[2]+1 );
- state->m_foreground_layer->set_scrollx(0, state->m_scrollram16[3]-0x101 );
-
- if (state->m_scrollram16[3]&0x2000) {
- state->m_background_layer->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
- state->m_foreground_layer->draw(bitmap, cliprect, 0,0);
+ m_foreground_layer->set_scroll_rows(1);
+ m_background_layer->set_scroll_rows(1);
+ m_background_layer->set_scrolly(0, m_scrollram16[0]+1 );
+ m_background_layer->set_scrollx(0, m_scrollram16[1]-0x103 );
+ m_foreground_layer->set_scrolly(0, m_scrollram16[2]+1 );
+ m_foreground_layer->set_scrollx(0, m_scrollram16[3]-0x101 );
+
+ if (m_scrollram16[3]&0x2000) {
+ m_background_layer->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
+ m_foreground_layer->draw(bitmap, cliprect, 0,0);
} else {
- state->m_foreground_layer->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
- state->m_background_layer->draw(bitmap, cliprect, 0,0);
+ m_foreground_layer->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
+ m_background_layer->draw(bitmap, cliprect, 0,0);
}
tokib_draw_sprites(screen.machine(), bitmap,cliprect);
- state->m_text_layer->draw(bitmap, cliprect, 0,0);
+ m_text_layer->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/video/toobin.c b/src/mame/video/toobin.c
index 74708b13404..3dcc69ebc96 100644
--- a/src/mame/video/toobin.c
+++ b/src/mame/video/toobin.c
@@ -225,9 +225,8 @@ WRITE16_HANDLER( toobin_slip_w )
*
*************************************/
-SCREEN_UPDATE_RGB32( toobin )
+UINT32 toobin_state::screen_update_toobin(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- toobin_state *state = screen.machine().driver_data<toobin_state>();
bitmap_ind8 &priority_bitmap = screen.machine().priority_bitmap;
const rgb_t *palette = palette_entry_list_adjusted(screen.machine().palette);
atarimo_rect_list rectlist;
@@ -236,10 +235,10 @@ SCREEN_UPDATE_RGB32( toobin )
/* draw the playfield */
priority_bitmap.fill(0, cliprect);
- state->m_playfield_tilemap->draw(state->m_pfbitmap, cliprect, 0, 0);
- state->m_playfield_tilemap->draw(state->m_pfbitmap, cliprect, 1, 1);
- state->m_playfield_tilemap->draw(state->m_pfbitmap, cliprect, 2, 2);
- state->m_playfield_tilemap->draw(state->m_pfbitmap, cliprect, 3, 3);
+ m_playfield_tilemap->draw(m_pfbitmap, cliprect, 0, 0);
+ m_playfield_tilemap->draw(m_pfbitmap, cliprect, 1, 1);
+ m_playfield_tilemap->draw(m_pfbitmap, cliprect, 2, 2);
+ m_playfield_tilemap->draw(m_pfbitmap, cliprect, 3, 3);
/* draw and merge the MO */
mobitmap = atarimo_render(0, cliprect, &rectlist);
@@ -247,7 +246,7 @@ SCREEN_UPDATE_RGB32( toobin )
{
UINT32 *dest = &bitmap.pix32(y);
UINT16 *mo = &mobitmap->pix16(y);
- UINT16 *pf = &state->m_pfbitmap.pix16(y);
+ UINT16 *pf = &m_pfbitmap.pix16(y);
UINT8 *pri = &priority_bitmap.pix8(y);
for (x = cliprect.min_x; x <= cliprect.max_x; x++)
{
@@ -272,6 +271,6 @@ SCREEN_UPDATE_RGB32( toobin )
}
/* add the alpha on top */
- state->m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/topspeed.c b/src/mame/video/topspeed.c
index 7bf9d49beba..102ffebe2ba 100644
--- a/src/mame/video/topspeed.c
+++ b/src/mame/video/topspeed.c
@@ -109,45 +109,44 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
/***************************************************************************/
-SCREEN_UPDATE_IND16( topspeed )
+UINT32 topspeed_state::screen_update_topspeed(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- topspeed_state *state = screen.machine().driver_data<topspeed_state>();
UINT8 layer[4];
#ifdef MAME_DEBUG
if (screen.machine().input().code_pressed_once (KEYCODE_V))
{
- state->m_dislayer[0] ^= 1;
- popmessage("bg: %01x", state->m_dislayer[0]);
+ m_dislayer[0] ^= 1;
+ popmessage("bg: %01x", m_dislayer[0]);
}
if (screen.machine().input().code_pressed_once (KEYCODE_B))
{
- state->m_dislayer[1] ^= 1;
- popmessage("fg: %01x", state->m_dislayer[1]);
+ m_dislayer[1] ^= 1;
+ popmessage("fg: %01x", m_dislayer[1]);
}
if (screen.machine().input().code_pressed_once (KEYCODE_N))
{
- state->m_dislayer[2] ^= 1;
- popmessage("bg2: %01x", state->m_dislayer[2]);
+ m_dislayer[2] ^= 1;
+ popmessage("bg2: %01x", m_dislayer[2]);
}
if (screen.machine().input().code_pressed_once (KEYCODE_M))
{
- state->m_dislayer[3] ^= 1;
- popmessage("fg2: %01x", state->m_dislayer[3]);
+ m_dislayer[3] ^= 1;
+ popmessage("fg2: %01x", m_dislayer[3]);
}
if (screen.machine().input().code_pressed_once (KEYCODE_C))
{
- state->m_dislayer[4] ^= 1;
- popmessage("sprites: %01x", state->m_dislayer[4]);
+ m_dislayer[4] ^= 1;
+ popmessage("sprites: %01x", m_dislayer[4]);
}
#endif
- pc080sn_tilemap_update(state->m_pc080sn_1);
- pc080sn_tilemap_update(state->m_pc080sn_2);
+ pc080sn_tilemap_update(m_pc080sn_1);
+ pc080sn_tilemap_update(m_pc080sn_2);
/* Tilemap layer priority seems hardwired (the order is odd, too) */
layer[0] = 1;
@@ -159,27 +158,27 @@ SCREEN_UPDATE_IND16( topspeed )
bitmap.fill(0, cliprect);
#ifdef MAME_DEBUG
- if (state->m_dislayer[3] == 0)
+ if (m_dislayer[3] == 0)
#endif
- pc080sn_tilemap_draw(state->m_pc080sn_2, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
+ pc080sn_tilemap_draw(m_pc080sn_2, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
#ifdef MAME_DEBUG
- if (state->m_dislayer[2] == 0)
+ if (m_dislayer[2] == 0)
#endif
- pc080sn_tilemap_draw_special(state->m_pc080sn_2, bitmap, cliprect, layer[1], 0, 2, state->m_raster_ctrl);
+ pc080sn_tilemap_draw_special(m_pc080sn_2, bitmap, cliprect, layer[1], 0, 2, m_raster_ctrl);
#ifdef MAME_DEBUG
- if (state->m_dislayer[1] == 0)
+ if (m_dislayer[1] == 0)
#endif
- pc080sn_tilemap_draw_special(state->m_pc080sn_1, bitmap, cliprect, layer[2], 0, 4, state->m_raster_ctrl + 0x100);
+ pc080sn_tilemap_draw_special(m_pc080sn_1, bitmap, cliprect, layer[2], 0, 4, m_raster_ctrl + 0x100);
#ifdef MAME_DEBUG
- if (state->m_dislayer[0] == 0)
+ if (m_dislayer[0] == 0)
#endif
- pc080sn_tilemap_draw(state->m_pc080sn_1, bitmap, cliprect, layer[3], 0, 8);
+ pc080sn_tilemap_draw(m_pc080sn_1, bitmap, cliprect, layer[3], 0, 8);
#ifdef MAME_DEBUG
- if (state->m_dislayer[4] == 0)
+ if (m_dislayer[4] == 0)
#endif
draw_sprites(screen.machine(), bitmap,cliprect);
diff --git a/src/mame/video/toypop.c b/src/mame/video/toypop.c
index 01378d914f1..043563bdc85 100644
--- a/src/mame/video/toypop.c
+++ b/src/mame/video/toypop.c
@@ -270,11 +270,10 @@ void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const rectangl
}
-SCREEN_UPDATE_IND16( toypop )
+UINT32 toypop_state::screen_update_toypop(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- toypop_state *state = screen.machine().driver_data<toypop_state>();
draw_background(screen.machine(), bitmap);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
- draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram);
return 0;
}
diff --git a/src/mame/video/tp84.c b/src/mame/video/tp84.c
index f468c6cbb46..f578556929a 100644
--- a/src/mame/video/tp84.c
+++ b/src/mame/video/tp84.c
@@ -172,9 +172,8 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
-SCREEN_UPDATE_IND16( tp84 )
+UINT32 tp84_state::screen_update_tp84(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tp84_state *state = screen.machine().driver_data<tp84_state>();
rectangle clip = cliprect;
const rectangle &visarea = screen.visible_area();
@@ -182,25 +181,25 @@ SCREEN_UPDATE_IND16( tp84 )
{
screen.machine().tilemap().mark_all_dirty();
- state->m_bg_tilemap->set_scrollx(0, *state->m_scroll_x);
- state->m_bg_tilemap->set_scrolly(0, *state->m_scroll_y);
+ m_bg_tilemap->set_scrollx(0, *m_scroll_x);
+ m_bg_tilemap->set_scrolly(0, *m_scroll_y);
- screen.machine().tilemap().set_flip_all(((*state->m_flipscreen_x & 0x01) ? TILEMAP_FLIPX : 0) |
- ((*state->m_flipscreen_y & 0x01) ? TILEMAP_FLIPY : 0));
+ screen.machine().tilemap().set_flip_all(((*m_flipscreen_x & 0x01) ? TILEMAP_FLIPX : 0) |
+ ((*m_flipscreen_y & 0x01) ? TILEMAP_FLIPY : 0));
}
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
/* draw top status region */
clip.min_x = visarea.min_x;
clip.max_x = visarea.min_x + 15;
- state->m_fg_tilemap->draw(bitmap, clip, 0, 0);
+ m_fg_tilemap->draw(bitmap, clip, 0, 0);
/* draw bottom status region */
clip.min_x = visarea.max_x - 15;
clip.max_x = visarea.max_x;
- state->m_fg_tilemap->draw(bitmap, clip, 0, 0);
+ m_fg_tilemap->draw(bitmap, clip, 0, 0);
return 0;
}
diff --git a/src/mame/video/trackfld.c b/src/mame/video/trackfld.c
index afa5c61704c..86139e284ad 100644
--- a/src/mame/video/trackfld.c
+++ b/src/mame/video/trackfld.c
@@ -243,19 +243,18 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
-SCREEN_UPDATE_IND16( trackfld )
+UINT32 trackfld_state::screen_update_trackfld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- trackfld_state *state = screen.machine().driver_data<trackfld_state>();
int row, scrollx;
for (row = 0; row < 32; row++)
{
- scrollx = state->m_scroll[row] + 256 * (state->m_scroll2[row] & 0x01);
- if (state->flip_screen()) scrollx = -scrollx;
- state->m_bg_tilemap->set_scrollx(row, scrollx);
+ scrollx = m_scroll[row] + 256 * (m_scroll2[row] & 0x01);
+ if (flip_screen()) scrollx = -scrollx;
+ m_bg_tilemap->set_scrollx(row, scrollx);
}
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/travrusa.c b/src/mame/video/travrusa.c
index 93bd2ec64b1..a61456f6724 100644
--- a/src/mame/video/travrusa.c
+++ b/src/mame/video/travrusa.c
@@ -329,11 +329,10 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re
}
-SCREEN_UPDATE_IND16( travrusa )
+UINT32 travrusa_state::screen_update_travrusa(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- travrusa_state *state = screen.machine().driver_data<travrusa_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER1, 0);
draw_sprites(screen.machine(), bitmap,cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_LAYER0, 0);
return 0;
}
diff --git a/src/mame/video/triplhnt.c b/src/mame/video/triplhnt.c
index 3226f3bd17b..caf469c8222 100644
--- a/src/mame/video/triplhnt.c
+++ b/src/mame/video/triplhnt.c
@@ -103,19 +103,18 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
-SCREEN_UPDATE_IND16( triplhnt )
+UINT32 triplhnt_state::screen_update_triplhnt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- triplhnt_state *state = screen.machine().driver_data<triplhnt_state>();
device_t *discrete = screen.machine().device("discrete");
- state->m_bg_tilemap->mark_all_dirty();
+ m_bg_tilemap->mark_all_dirty();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
address_space &space = screen.machine().driver_data()->generic_space();
- discrete_sound_w(discrete, space, TRIPLHNT_BEAR_ROAR_DATA, state->m_playfield_ram[0xfa] & 15);
- discrete_sound_w(discrete, space, TRIPLHNT_SHOT_DATA, state->m_playfield_ram[0xfc] & 15);
+ discrete_sound_w(discrete, space, TRIPLHNT_BEAR_ROAR_DATA, m_playfield_ram[0xfa] & 15);
+ discrete_sound_w(discrete, space, TRIPLHNT_SHOT_DATA, m_playfield_ram[0xfc] & 15);
return 0;
}
diff --git a/src/mame/video/truco.c b/src/mame/video/truco.c
index 486fca15156..c6e023c2aee 100644
--- a/src/mame/video/truco.c
+++ b/src/mame/video/truco.c
@@ -31,10 +31,9 @@ void truco_state::palette_init()
}
}
-SCREEN_UPDATE_IND16( truco )
+UINT32 truco_state::screen_update_truco(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- truco_state *state = screen.machine().driver_data<truco_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
UINT8 *vid = videoram;
int x, y;
diff --git a/src/mame/video/trucocl.c b/src/mame/video/trucocl.c
index 3853ba63294..0a71abc9670 100644
--- a/src/mame/video/trucocl.c
+++ b/src/mame/video/trucocl.c
@@ -76,9 +76,8 @@ void trucocl_state::video_start()
m_bg_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(trucocl_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 32, 32 );
}
-SCREEN_UPDATE_IND16( trucocl )
+UINT32 trucocl_state::screen_update_trucocl(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- trucocl_state *state = screen.machine().driver_data<trucocl_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/tryout.c b/src/mame/video/tryout.c
index 284f5296219..77deba5855e 100644
--- a/src/mame/video/tryout.c
+++ b/src/mame/video/tryout.c
@@ -227,36 +227,35 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re
}
}
-SCREEN_UPDATE_IND16( tryout )
+UINT32 tryout_state::screen_update_tryout(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tryout_state *state = screen.machine().driver_data<tryout_state>();
int scrollx = 0;
- if (!state->flip_screen())
- state->m_fg_tilemap->set_scrollx(0, 16); /* Assumed hard-wired */
+ if (!flip_screen())
+ m_fg_tilemap->set_scrollx(0, 16); /* Assumed hard-wired */
else
- state->m_fg_tilemap->set_scrollx(0, -8); /* Assumed hard-wired */
+ m_fg_tilemap->set_scrollx(0, -8); /* Assumed hard-wired */
- scrollx = state->m_gfx_control[1] + ((state->m_gfx_control[0]&1)<<8) + ((state->m_gfx_control[0]&4)<<7) - ((state->m_gfx_control[0] & 2) ? 0 : 0x100);
+ scrollx = m_gfx_control[1] + ((m_gfx_control[0]&1)<<8) + ((m_gfx_control[0]&4)<<7) - ((m_gfx_control[0] & 2) ? 0 : 0x100);
/* wrap-around */
- if(state->m_gfx_control[1] == 0) { scrollx+=0x100; }
+ if(m_gfx_control[1] == 0) { scrollx+=0x100; }
- state->m_bg_tilemap->set_scrollx(0, scrollx+2); /* why +2? hard-wired? */
- state->m_bg_tilemap->set_scrolly(0, -state->m_gfx_control[2]);
+ m_bg_tilemap->set_scrollx(0, scrollx+2); /* why +2? hard-wired? */
+ m_bg_tilemap->set_scrolly(0, -m_gfx_control[2]);
- if(!(state->m_gfx_control[0] & 0x8)) // screen disable
+ if(!(m_gfx_control[0] & 0x8)) // screen disable
{
/* TODO: Color might be different, needs a video from an original pcb. */
bitmap.fill(screen.machine().pens[0x10], cliprect);
}
else
{
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect);
}
-// popmessage("%02x %02x %02x %02x",state->m_gfx_control[0],state->m_gfx_control[1],state->m_gfx_control[2],scrollx);
+// popmessage("%02x %02x %02x %02x",m_gfx_control[0],m_gfx_control[1],m_gfx_control[2],scrollx);
return 0;
}
diff --git a/src/mame/video/tsamurai.c b/src/mame/video/tsamurai.c
index 8d4f061d952..95bf43576b3 100644
--- a/src/mame/video/tsamurai.c
+++ b/src/mame/video/tsamurai.c
@@ -186,16 +186,15 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( tsamurai )
+UINT32 tsamurai_state::screen_update_tsamurai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tsamurai_state *state = screen.machine().driver_data<tsamurai_state>();
int i;
/* Do the column scroll used for the "660" logo on the title screen */
- state->m_foreground->set_scroll_cols(32);
+ m_foreground->set_scroll_cols(32);
for (i = 0 ; i < 32 ; i++)
{
- state->m_foreground->set_scrolly(i, state->m_colorram[i*2]);
+ m_foreground->set_scrolly(i, m_colorram[i*2]);
}
/* end of column scroll code */
@@ -207,10 +206,10 @@ SCREEN_UPDATE_IND16( tsamurai )
Note that the background color register isn't well understood
(screenshots would be helpful)
*/
- bitmap.fill(state->m_bgcolor, cliprect);
- state->m_background->draw(bitmap, cliprect, 0,0);
+ bitmap.fill(m_bgcolor, cliprect);
+ m_background->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect);
- state->m_foreground->draw(bitmap, cliprect, 0,0);
+ m_foreground->draw(bitmap, cliprect, 0,0);
return 0;
}
@@ -248,20 +247,19 @@ VIDEO_START_MEMBER(tsamurai_state,vsgongf)
m_foreground = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(tsamurai_state::get_vsgongf_tile_info),this),TILEMAP_SCAN_ROWS,8,8,32,32);
}
-SCREEN_UPDATE_IND16( vsgongf )
+UINT32 tsamurai_state::screen_update_vsgongf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tsamurai_state *state = screen.machine().driver_data<tsamurai_state>();
#ifdef MAME_DEBUG
if( screen.machine().input().code_pressed( KEYCODE_Q ) ){
while( screen.machine().input().code_pressed( KEYCODE_Q ) ){
- state->m_key_count++;
- state->m_vsgongf_color = state->m_key_count;
- state->m_foreground ->mark_all_dirty();
+ m_key_count++;
+ m_vsgongf_color = m_key_count;
+ m_foreground ->mark_all_dirty();
}
}
#endif
- state->m_foreground->draw(bitmap, cliprect, 0,0);
+ m_foreground->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(),bitmap,cliprect);
return 0;
}
diff --git a/src/mame/video/tubep.c b/src/mame/video/tubep.c
index af48171bf94..fee2cfcbddc 100644
--- a/src/mame/video/tubep.c
+++ b/src/mame/video/tubep.c
@@ -577,16 +577,15 @@ void tubep_vblank_end(running_machine &machine)
}
-SCREEN_UPDATE_IND16( tubep )
+UINT32 tubep_state::screen_update_tubep(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tubep_state *state = screen.machine().driver_data<tubep_state>();
- int DISP_ = state->m_DISP^1;
+ int DISP_ = m_DISP^1;
pen_t pen_base = 32; //change it later
UINT32 v;
UINT8 *text_gfx_base = screen.machine().root_device().memregion("gfx1")->base();
- UINT8 *romBxx = state->memregion("user1")->base() + 0x2000*state->m_background_romsel;
+ UINT8 *romBxx = memregion("user1")->base() + 0x2000*m_background_romsel;
/* logerror(" update: from DISP=%i y_min=%3i y_max=%3i\n", DISP_, cliprect.min_y, cliprect.max_y+1); */
@@ -602,14 +601,14 @@ SCREEN_UPDATE_IND16( tubep )
sp_data2 = sp_data1;
sp_data1 = sp_data0;
- sp_data0 = state->m_spritemap[ h + v*256 +(DISP_*256*256) ];
+ sp_data0 = m_spritemap[ h + v*256 +(DISP_*256*256) ];
text_offs = ((v >> 3) << 6) | ((h >> 3) << 1);
- text_code = state->m_textram[text_offs];
+ text_code = m_textram[text_offs];
text_gfx_data = text_gfx_base[(text_code << 3) | (v & 0x07)];
if (text_gfx_data & (0x80 >> (h & 0x07)))
- bitmap.pix16(v, h) = (state->m_textram[text_offs + 1] & 0x0f) | state->m_color_A4;
+ bitmap.pix16(v, h) = (m_textram[text_offs + 1] & 0x0f) | m_color_A4;
else
{
UINT32 bg_data;
@@ -623,10 +622,10 @@ SCREEN_UPDATE_IND16( tubep )
UINT8 romB_data_h = romBxx[ 0x4000 + 0x4000*rom_select + romB_addr ];
/* romB_data_h = output of LS374 @B3 or @B4 */
- UINT32 VR_addr = ((romB_data_h + state->m_ls175_b7) & 0xfe) << 2;
+ UINT32 VR_addr = ((romB_data_h + m_ls175_b7) & 0xfe) << 2;
/* VR_addr = output of LS157s @B1 and @B6 */
- UINT8 xor_logic = (((h^v)&0x80)>>7) ^ (state->m_background_romsel & (((v&0x80)>>7)^1));
+ UINT8 xor_logic = (((h^v)&0x80)>>7) ^ (m_background_romsel & (((v&0x80)>>7)^1));
/* read from ROMs: B1/2 */
UINT8 romB_data_l = romBxx[ romB_addr ] ^ (xor_logic?0xff:0x00);
@@ -634,11 +633,11 @@ SCREEN_UPDATE_IND16( tubep )
UINT8 ls157_b11 = (romB_data_l >> ((rom_select==0)?4:0))&0x0f;
- UINT8 ls283_b12 = (ls157_b11 + state->m_ls175_e8) & 0x0f;
+ UINT8 ls283_b12 = (ls157_b11 + m_ls175_e8) & 0x0f;
VR_addr |= (ls283_b12>>1);
- bg_data = state->m_backgroundram[ VR_addr ];
+ bg_data = m_backgroundram[ VR_addr ];
romB_data_h>>=2;
@@ -648,7 +647,7 @@ SCREEN_UPDATE_IND16( tubep )
sp_data = sp_data1;
if (sp_data != 0x0f)
- bg_data = state->m_prom2[sp_data | state->m_color_A4];
+ bg_data = m_prom2[sp_data | m_color_A4];
bitmap.pix16(v, h) = pen_base + bg_data*64 + romB_data_h;
}
@@ -734,14 +733,13 @@ WRITE8_MEMBER(tubep_state::rjammer_background_page_w)
}
-SCREEN_UPDATE_IND16( rjammer )
+UINT32 tubep_state::screen_update_rjammer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tubep_state *state = screen.machine().driver_data<tubep_state>();
- int DISP_ = state->m_DISP^1;
+ int DISP_ = m_DISP^1;
UINT32 v;
UINT8 *text_gfx_base = screen.machine().root_device().memregion("gfx1")->base();
- UINT8 *rom13D = state->memregion("user1")->base();
+ UINT8 *rom13D = memregion("user1")->base();
UINT8 *rom11BD = rom13D+0x1000;
UINT8 *rom19C = rom13D+0x5000;
@@ -757,10 +755,10 @@ SCREEN_UPDATE_IND16( rjammer )
UINT8 pal14h4_pin18;
UINT8 pal14h4_pin13;
- UINT32 addr = (v*2) | state->m_page;
- UINT32 ram_data = state->m_rjammer_backgroundram[ addr ] + 256*(state->m_rjammer_backgroundram[ addr+1 ]&0x2f);
+ UINT32 addr = (v*2) | m_page;
+ UINT32 ram_data = m_rjammer_backgroundram[ addr ] + 256*(m_rjammer_backgroundram[ addr+1 ]&0x2f);
- addr = (v>>3) | ((state->m_ls377_data&0x1f)<<5);
+ addr = (v>>3) | ((m_ls377_data&0x1f)<<5);
pal14h4_pin13 = (rom19C[addr] >> ((v&7)^7) ) &1;
pal14h4_pin19 = (ram_data>>13) & 1;
@@ -772,14 +770,14 @@ SCREEN_UPDATE_IND16( rjammer )
sp_data2 = sp_data1;
sp_data1 = sp_data0;
- sp_data0 = state->m_spritemap[ h + v*256 +(DISP_*256*256) ];
+ sp_data0 = m_spritemap[ h + v*256 +(DISP_*256*256) ];
text_offs = ((v >> 3) << 6) | ((h >> 3) << 1);
- text_code = state->m_textram[text_offs];
+ text_code = m_textram[text_offs];
text_gfx_data = text_gfx_base[(text_code << 3) | (v & 0x07)];
if (text_gfx_data & (0x80 >> (h & 0x07)))
- bitmap.pix16(v, h) = 0x10 | (state->m_textram[text_offs + 1] & 0x0f);
+ bitmap.pix16(v, h) = 0x10 | (m_textram[text_offs + 1] & 0x0f);
else
{
UINT32 sp_data;
@@ -814,7 +812,7 @@ SCREEN_UPDATE_IND16( rjammer )
else
bg_data = (rom11_data>>4) & 0x0f;
- addr = (h>>3) | (state->m_ls377_data<<5);
+ addr = (h>>3) | (m_ls377_data<<5);
pal14h4_pin18 = (rom19C[addr] >> ((h&7)^7) ) &1;
/*
diff --git a/src/mame/video/tumbleb.c b/src/mame/video/tumbleb.c
index 6b0c102a37c..4c194d8e8d5 100644
--- a/src/mame/video/tumbleb.c
+++ b/src/mame/video/tumbleb.c
@@ -322,20 +322,19 @@ void tumbleb_draw_common(running_machine &machine, bitmap_ind16 &bitmap, const r
machine.device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, state->m_spriteram.bytes()/2);
}
-SCREEN_UPDATE_IND16( tumblepb )
+UINT32 tumbleb_state::screen_update_tumblepb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tumbleb_state *state = screen.machine().driver_data<tumbleb_state>();
int offs, offs2;
- state->m_flipscreen = state->m_control_0[0] & 0x80;
- screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
+ m_flipscreen = m_control_0[0] & 0x80;
+ screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
- if (state->m_flipscreen)
+ if (m_flipscreen)
offs = 1;
else
offs = -1;
- if (state->m_flipscreen)
+ if (m_flipscreen)
offs2 = -3;
else
offs2 = -5;
@@ -345,20 +344,19 @@ SCREEN_UPDATE_IND16( tumblepb )
return 0;
}
-SCREEN_UPDATE_IND16( jumpkids )
+UINT32 tumbleb_state::screen_update_jumpkids(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tumbleb_state *state = screen.machine().driver_data<tumbleb_state>();
int offs, offs2;
- state->m_flipscreen = state->m_control_0[0] & 0x80;
- screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
+ m_flipscreen = m_control_0[0] & 0x80;
+ screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
- if (state->m_flipscreen)
+ if (m_flipscreen)
offs = 1;
else
offs = -1;
- if (state->m_flipscreen)
+ if (m_flipscreen)
offs2 = -3;
else
offs2 = -5;
@@ -367,20 +365,19 @@ SCREEN_UPDATE_IND16( jumpkids )
return 0;
}
-SCREEN_UPDATE_IND16( semicom )
+UINT32 tumbleb_state::screen_update_semicom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tumbleb_state *state = screen.machine().driver_data<tumbleb_state>();
int offs, offs2;
- state->m_flipscreen = state->m_control_0[0] & 0x80;
- screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
+ m_flipscreen = m_control_0[0] & 0x80;
+ screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
- if (state->m_flipscreen)
+ if (m_flipscreen)
offs = 1;
else
offs = -1;
- if (state->m_flipscreen)
+ if (m_flipscreen)
offs2 = -3;
else
offs2 = -5;
@@ -389,12 +386,11 @@ SCREEN_UPDATE_IND16( semicom )
return 0;
}
-SCREEN_UPDATE_IND16( semicom_altoffsets )
+UINT32 tumbleb_state::screen_update_semicom_altoffsets(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tumbleb_state *state = screen.machine().driver_data<tumbleb_state>();
int offsx, offsy, offsx2;
- state->m_flipscreen = state->m_control_0[0] & 0x80;
+ m_flipscreen = m_control_0[0] & 0x80;
offsx = -1;
offsy = 2;
@@ -405,22 +401,21 @@ SCREEN_UPDATE_IND16( semicom_altoffsets )
return 0;
}
-SCREEN_UPDATE_IND16( bcstory )
+UINT32 tumbleb_state::screen_update_bcstory(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tumbleb_state *state = screen.machine().driver_data<tumbleb_state>();
int offs, offs2;
- state->m_flipscreen = state->m_control_0[0] & 0x80;
- screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
+ m_flipscreen = m_control_0[0] & 0x80;
+ screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
/* not sure of this */
- if (state->m_flipscreen)
+ if (m_flipscreen)
offs = 1;
else
offs = 8;
/* not sure of this */
- if (state->m_flipscreen)
+ if (m_flipscreen)
offs2 = -3;
else
offs2 = 8;
@@ -429,13 +424,12 @@ SCREEN_UPDATE_IND16( bcstory )
return 0;
}
-SCREEN_UPDATE_IND16( semibase )
+UINT32 tumbleb_state::screen_update_semibase(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tumbleb_state *state = screen.machine().driver_data<tumbleb_state>();
int offs, offs2;
- state->m_flipscreen = state->m_control_0[0] & 0x80;
- screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
+ m_flipscreen = m_control_0[0] & 0x80;
+ screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
offs = -1;
offs2 = -2;
@@ -444,36 +438,34 @@ SCREEN_UPDATE_IND16( semibase )
return 0;
}
-SCREEN_UPDATE_IND16( sdfight )
+UINT32 tumbleb_state::screen_update_sdfight(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tumbleb_state *state = screen.machine().driver_data<tumbleb_state>();
int offs, offs2;
- state->m_flipscreen = state->m_control_0[0] & 0x80;
- screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
+ m_flipscreen = m_control_0[0] & 0x80;
+ screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
offs = -1;
offs2 = -5; // foreground scroll..
tumbleb_draw_common(screen.machine(),bitmap,cliprect, offs2, -16, offs, 0);
- screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, state->m_spriteram.bytes()/2);
+ screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, m_spriteram.bytes()/2);
return 0;
}
-SCREEN_UPDATE_IND16( fncywld )
+UINT32 tumbleb_state::screen_update_fncywld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tumbleb_state *state = screen.machine().driver_data<tumbleb_state>();
int offs, offs2;
- state->m_flipscreen = state->m_control_0[0] & 0x80;
- screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
+ m_flipscreen = m_control_0[0] & 0x80;
+ screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
- if (state->m_flipscreen)
+ if (m_flipscreen)
offs = 1;
else
offs = -1;
- if (state->m_flipscreen)
+ if (m_flipscreen)
offs2 = -3;
else
offs2 = -5;
@@ -483,20 +475,19 @@ SCREEN_UPDATE_IND16( fncywld )
return 0;
}
-SCREEN_UPDATE_IND16( pangpang )
+UINT32 tumbleb_state::screen_update_pangpang(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tumbleb_state *state = screen.machine().driver_data<tumbleb_state>();
int offs, offs2;
- state->m_flipscreen = state->m_control_0[0] & 0x80;
- screen.machine().tilemap().set_flip_all(state->m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
+ m_flipscreen = m_control_0[0] & 0x80;
+ screen.machine().tilemap().set_flip_all(m_flipscreen ? (TILEMAP_FLIPY | TILEMAP_FLIPX) : 0);
- if (state->m_flipscreen)
+ if (m_flipscreen)
offs = 1;
else
offs = -1;
- if (state->m_flipscreen)
+ if (m_flipscreen)
offs2 = -3;
else
offs2 = -5;
@@ -507,19 +498,18 @@ SCREEN_UPDATE_IND16( pangpang )
-SCREEN_UPDATE_IND16( suprtrio )
+UINT32 tumbleb_state::screen_update_suprtrio(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tumbleb_state *state = screen.machine().driver_data<tumbleb_state>();
- state->m_pf1_alt_tilemap->set_scrollx(0, -state->m_control[1] - 6);
- state->m_pf1_alt_tilemap->set_scrolly(0, -state->m_control[2]);
- state->m_pf2_tilemap->set_scrollx(0, -state->m_control[3] - 2);
- state->m_pf2_tilemap->set_scrolly(0, -state->m_control[4]);
+ m_pf1_alt_tilemap->set_scrollx(0, -m_control[1] - 6);
+ m_pf1_alt_tilemap->set_scrolly(0, -m_control[2]);
+ m_pf2_tilemap->set_scrollx(0, -m_control[3] - 2);
+ m_pf2_tilemap->set_scrolly(0, -m_control[4]);
- state->m_pf2_tilemap->draw(bitmap, cliprect, 0, 0);
- state->m_pf1_alt_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_pf2_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_pf1_alt_tilemap->draw(bitmap, cliprect, 0, 0);
- screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, state->m_spriteram.bytes()/2);
+ screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, m_spriteram.bytes()/2);
return 0;
}
diff --git a/src/mame/video/tumblep.c b/src/mame/video/tumblep.c
index 681aaa57fb0..189a35127a3 100644
--- a/src/mame/video/tumblep.c
+++ b/src/mame/video/tumblep.c
@@ -19,20 +19,19 @@ to switch between 8*8 tiles and 16*16 tiles.
#include "video/decospr.h"
-SCREEN_UPDATE_IND16( tumblep )
+UINT32 tumblep_state::screen_update_tumblep(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tumblep_state *state = screen.machine().driver_data<tumblep_state>();
address_space &space = screen.machine().driver_data()->generic_space();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
+ UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
- state->flip_screen_set(BIT(flip, 7));
- deco16ic_pf_update(state->m_deco_tilegen1, state->m_pf1_rowscroll, state->m_pf2_rowscroll);
+ flip_screen_set(BIT(flip, 7));
+ deco16ic_pf_update(m_deco_tilegen1, m_pf1_rowscroll, m_pf2_rowscroll);
bitmap.fill(256, cliprect); /* not verified */
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
- screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, state->m_spriteram, 0x400);
+ screen.machine().device<decospr_device>("spritegen")->draw_sprites(bitmap, cliprect, m_spriteram, 0x400);
return 0;
}
diff --git a/src/mame/video/tunhunt.c b/src/mame/video/tunhunt.c
index ec4dbd19b08..469f5d26055 100644
--- a/src/mame/video/tunhunt.c
+++ b/src/mame/video/tunhunt.c
@@ -374,9 +374,8 @@ static void draw_shell(running_machine &machine,
255-hposition-16,vstart-32,0 );
}
-SCREEN_UPDATE_IND16( tunhunt )
+UINT32 tunhunt_state::screen_update_tunhunt(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tunhunt_state *state = screen.machine().driver_data<tunhunt_state>();
set_pens(screen.machine());
draw_box(screen.machine(), bitmap, cliprect);
@@ -384,21 +383,21 @@ SCREEN_UPDATE_IND16( tunhunt )
draw_motion_object(screen.machine(), bitmap, cliprect);
draw_shell(screen.machine(), bitmap, cliprect,
- state->m_workram[SHL0PC], /* picture code */
- state->m_workram[SHEL0H], /* hposition */
- state->m_workram[SHL0V], /* vstart */
- state->m_workram[SHL0VS], /* vstop */
- state->m_workram[SHL0ST], /* vstretch */
- state->m_control&0x08 ); /* hstretch */
+ m_workram[SHL0PC], /* picture code */
+ m_workram[SHEL0H], /* hposition */
+ m_workram[SHL0V], /* vstart */
+ m_workram[SHL0VS], /* vstop */
+ m_workram[SHL0ST], /* vstretch */
+ m_control&0x08 ); /* hstretch */
draw_shell(screen.machine(), bitmap, cliprect,
- state->m_workram[SHL1PC], /* picture code */
- state->m_workram[SHEL1H], /* hposition */
- state->m_workram[SHL1V], /* vstart */
- state->m_workram[SHL1VS], /* vstop */
- state->m_workram[SHL1ST], /* vstretch */
- state->m_control&0x10 ); /* hstretch */
-
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_workram[SHL1PC], /* picture code */
+ m_workram[SHEL1H], /* hposition */
+ m_workram[SHL1V], /* vstart */
+ m_workram[SHL1VS], /* vstop */
+ m_workram[SHL1ST], /* vstretch */
+ m_control&0x10 ); /* hstretch */
+
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/turbo.c b/src/mame/video/turbo.c
index 1b298ae2a96..059fe52e125 100644
--- a/src/mame/video/turbo.c
+++ b/src/mame/video/turbo.c
@@ -397,12 +397,11 @@ static UINT32 turbo_get_sprite_bits(const UINT8 *sprite_gfxdata, UINT8 road, spr
*
*************************************/
-SCREEN_UPDATE_IND16( turbo )
+UINT32 turbo_state::screen_update_turbo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- turbo_state *state = screen.machine().driver_data<turbo_state>();
- bitmap_ind16 &fgpixmap = state->m_fg_tilemap->pixmap();
+ bitmap_ind16 &fgpixmap = m_fg_tilemap->pixmap();
const UINT8 *road_gfxdata = screen.machine().root_device().memregion("gfx3")->base();
- const UINT8 *prom_base = state->memregion("proms")->base();
+ const UINT8 *prom_base = memregion("proms")->base();
const UINT8 *pr1114 = prom_base + 0x000;
const UINT8 *pr1115 = prom_base + 0x020;
const UINT8 *pr1116 = prom_base + 0x040;
@@ -422,15 +421,15 @@ SCREEN_UPDATE_IND16( turbo )
sprite_info sprinfo;
/* compute the Y sum between opa and the current scanline (p. 141) */
- int va = (y + state->m_turbo_opa) & 0xff;
+ int va = (y + m_turbo_opa) & 0xff;
/* the upper bit of OPC inverts the road (p. 141) */
- if (!(state->m_turbo_opc & 0x80))
+ if (!(m_turbo_opc & 0x80))
va ^= 0xff;
/* compute the sprite information; we use y-1 since this info was computed during HBLANK */
/* on the previous scanline */
- turbo_prepare_sprites(screen.machine(), state, y, &sprinfo);
+ turbo_prepare_sprites(screen.machine(), this, y, &sprinfo);
/* loop over columns */
for (x = 0; x <= cliprect.max_x; x += TURBO_X_SCALE)
@@ -442,25 +441,25 @@ SCREEN_UPDATE_IND16( turbo )
UINT16 he;
/* load the bitmask from the sprite position for both halves of the sprites (p. 139) */
- he = state->m_sprite_position[xx] | (state->m_sprite_position[xx + 0x100] << 8);
+ he = m_sprite_position[xx] | (m_sprite_position[xx + 0x100] << 8);
/* the AND of the line enable and horizontal enable is clocked and held in LST0-7 (p. 143) */
he &= sprinfo.ve;
sprinfo.lst |= he | (he >> 8);
/* compute the X sum between opb and the current column; only the carry matters (p. 141) */
- carry = (xx + state->m_turbo_opb) >> 8;
+ carry = (xx + m_turbo_opb) >> 8;
/* the carry selects which inputs to use (p. 141) */
if (carry)
{
- sel = state->m_turbo_ipb;
- coch = state->m_turbo_ipc >> 4;
+ sel = m_turbo_ipb;
+ coch = m_turbo_ipc >> 4;
}
else
{
- sel = state->m_turbo_ipa;
- coch = state->m_turbo_ipc & 15;
+ sel = m_turbo_ipa;
+ coch = m_turbo_ipc & 15;
}
/* look up AREA1 and AREA2 (p. 142) */
@@ -489,7 +488,7 @@ SCREEN_UPDATE_IND16( turbo )
/* look up AREA5 (p. 141) */
offs = (xx >> 3) | /* A0- A4 = H3-H7 */
- ((state->m_turbo_opc & 0x3f) << 5); /* A5-A10 = OPC0-5 */
+ ((m_turbo_opc & 0x3f) << 5); /* A5-A10 = OPC0-5 */
areatmp = road_gfxdata[0x4000 | offs];
areatmp = (areatmp << (xx & 7)) & 0x80;
@@ -505,7 +504,7 @@ SCREEN_UPDATE_IND16( turbo )
/* also use the coch value to look up color info in IC13/PR1114 and IC21/PR1117 (p. 144) */
offs = (coch & 0x0f) | /* A0-A3: CONT0-3 = COCH0-3 */
- ((state->m_turbo_fbcol & 0x01) << 4); /* A4: COL0 */
+ ((m_turbo_fbcol & 0x01) << 4); /* A4: COL0 */
bacol = pr1114[offs] | (pr1117[offs] << 8);
/* at this point, do the character lookup; due to the shift register loading in */
@@ -526,14 +525,14 @@ SCREEN_UPDATE_IND16( turbo )
/* CDG0-7 = D8 -D15 */
/* CDR0-7 = D16-D23 */
/* PLB0-7 = D24-D31 */
- sprbits = turbo_get_sprite_bits(state->m_gfx1->base(), road, &sprinfo);
+ sprbits = turbo_get_sprite_bits(m_gfx1->base(), road, &sprinfo);
/* perform collision detection here via lookup in IC20/PR1116 (p. 144) */
- state->m_turbo_collision |= pr1116[((sprbits >> 24) & 7) | (slipar_acciar >> 1)];
+ m_turbo_collision |= pr1116[((sprbits >> 24) & 7) | (slipar_acciar >> 1)];
/* look up the sprite priority in IC11/PR1122 (p. 144) */
priority = ((sprbits & 0xfe000000) >> 25) | /* A0-A6: PLB1-7 */
- ((state->m_turbo_fbpla & 0x07) << 7); /* A7-A9: PLA0-2 */
+ ((m_turbo_fbpla & 0x07) << 7); /* A7-A9: PLA0-2 */
priority = pr1122[priority];
/* use that to look up the overall priority in IC12/PR1123 (p. 144) */
@@ -542,7 +541,7 @@ SCREEN_UPDATE_IND16( turbo )
((foreraw & 0x80) >> 3) | /* A4: PLBE */
((forebits & 0x08) << 2) | /* A5: PLBF */
((babit & 0x07) << 6) | /* A6-A8: BABIT1-3 */
- ((state->m_turbo_fbpla & 0x08) << 6); /* A9: PLA3 */
+ ((m_turbo_fbpla & 0x08) << 6); /* A9: PLA3 */
mx = pr1123[mx];
/* the MX output selects one of 16 inputs; build up a 16-bit pattern to match */
@@ -570,7 +569,7 @@ SCREEN_UPDATE_IND16( turbo )
(((~red >> mx) & 1) << 4) | /* A4: CDR */
(((~grn >> mx) & 1) << 5) | /* A5: CDG */
(((~blu >> mx) & 1) << 6) | /* A6: CDB */
- ((state->m_turbo_fbcol & 6) << 6); /* A7-A8: COL1-2 */
+ ((m_turbo_fbcol & 6) << 6); /* A7-A8: COL1-2 */
dest[x + ix] = pr1121[offs];
}
}
@@ -751,11 +750,10 @@ static UINT32 subroc3d_get_sprite_bits(const UINT8 *sprite_gfxdata, sprite_info
*
*************************************/
-SCREEN_UPDATE_IND16( subroc3d )
+UINT32 turbo_state::screen_update_subroc3d(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- turbo_state *state = screen.machine().driver_data<turbo_state>();
- bitmap_ind16 &fgpixmap = state->m_fg_tilemap->pixmap();
- const UINT8 *prom_base = state->memregion("proms")->base();
+ bitmap_ind16 &fgpixmap = m_fg_tilemap->pixmap();
+ const UINT8 *prom_base = memregion("proms")->base();
const UINT8 *pr1419 = prom_base + 0x000;
const UINT8 *pr1620 = prom_base + 0x200;
const UINT8 *pr1450 = prom_base + 0x500;
@@ -771,7 +769,7 @@ SCREEN_UPDATE_IND16( subroc3d )
/* compute the sprite information; we use y-1 since this info was computed during HBLANK */
/* on the previous scanline */
- subroc3d_prepare_sprites(screen.machine(), state, y, &sprinfo);
+ subroc3d_prepare_sprites(screen.machine(), this, y, &sprinfo);
/* loop over columns */
for (x = 0; x <= cliprect.max_x; x += TURBO_X_SCALE)
@@ -783,14 +781,14 @@ SCREEN_UPDATE_IND16( subroc3d )
UINT32 sprbits;
/* load the bitmask from the sprite position for both halves of the sprites (p. 143) */
- he = state->m_sprite_position[xx * 2] | (state->m_sprite_position[xx * 2 + 1] << 8);
+ he = m_sprite_position[xx * 2] | (m_sprite_position[xx * 2 + 1] << 8);
/* the AND of the line enable and horizontal enable is clocked and held in LST0-7 (p. 143) */
he &= sprinfo.ve;
sprinfo.lst |= he | (he >> 8);
/* at this point, do the character lookup */
- if (!state->m_subroc3d_flip)
+ if (!m_subroc3d_flip)
foreraw = fore[xx];
else
foreraw = fore[(pr1454[(xx >> 3) & 0x1f] << 3) | (xx & 0x07)];
@@ -811,15 +809,15 @@ SCREEN_UPDATE_IND16( subroc3d )
/* CDB0-7 = D8 -D15 */
/* CDC0-7 = D16-D23 */
/* CDD0-7 = D24-D31 */
- sprbits = subroc3d_get_sprite_bits(state->m_gfx1->base(), &sprinfo, &plb);
+ sprbits = subroc3d_get_sprite_bits(m_gfx1->base(), &sprinfo, &plb);
/* MUX0-3 is selected by PLY0-3 and the sprite enable bits, and is the output */
/* of IC21/PR1450 (p. 141), unless MPLB = 0, in which case the values are grounded (p. 141) */
if (mplb)
{
offs = (plb ^ 0xff) | /* A0-A7: /PLB0-7 */
- ((state->m_subroc3d_ply & 0x02) << 7); /* A8: PLY1 */
- mux = pr1450[offs] >> ((state->m_subroc3d_ply & 0x01) * 4);
+ ((m_subroc3d_ply & 0x02) << 7); /* A8: PLY1 */
+ mux = pr1450[offs] >> ((m_subroc3d_ply & 0x01) * 4);
}
else
mux = 0;
@@ -837,7 +835,7 @@ SCREEN_UPDATE_IND16( subroc3d )
/* we then go through a muxer to select one of the 16 outputs computed above (p. 141) */
offs = (finalbits & 0x0f) | /* A0-A3: CD0-CD3 */
((mux & 0x08) << 1) | /* A4: MUX3 */
- (state->m_subroc3d_col << 5); /* A5-A8: COL0-COL3 */
+ (m_subroc3d_col << 5); /* A5-A8: COL0-COL3 */
dest[x + ix] = pr1419[offs];
}
}
@@ -970,12 +968,11 @@ static UINT32 buckrog_get_sprite_bits(const UINT8 *sprite_gfxdata, sprite_info *
*
*************************************/
-SCREEN_UPDATE_IND16( buckrog )
+UINT32 turbo_state::screen_update_buckrog(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- turbo_state *state = screen.machine().driver_data<turbo_state>();
- bitmap_ind16 &fgpixmap = state->m_fg_tilemap->pixmap();
+ bitmap_ind16 &fgpixmap = m_fg_tilemap->pixmap();
const UINT8 *bgcolor = screen.machine().root_device().memregion("gfx3")->base();
- const UINT8 *prom_base = state->memregion("proms")->base();
+ const UINT8 *prom_base = memregion("proms")->base();
const UINT8 *pr5194 = prom_base + 0x000;
const UINT8 *pr5198 = prom_base + 0x500;
const UINT8 *pr5199 = prom_base + 0x700;
@@ -990,7 +987,7 @@ SCREEN_UPDATE_IND16( buckrog )
/* compute the sprite information; we use y-1 since this info was computed during HBLANK */
/* on the previous scanline */
- buckrog_prepare_sprites(screen.machine(), state, y, &sprinfo);
+ buckrog_prepare_sprites(screen.machine(), this, y, &sprinfo);
/* loop over columns */
for (x = 0; x <= cliprect.max_x; x += TURBO_X_SCALE)
@@ -1002,7 +999,7 @@ SCREEN_UPDATE_IND16( buckrog )
int palbits, offs, ix;
/* load the bitmask from the sprite position for both halves of the sprites (p. 143) */
- he = state->m_sprite_position[xx * 2] | (state->m_sprite_position[xx * 2 + 1] << 8);
+ he = m_sprite_position[xx * 2] | (m_sprite_position[xx * 2 + 1] << 8);
/* the AND of the line enable and horizontal enable is clocked and held in LST0-7 (p. 143) */
he &= sprinfo.ve;
@@ -1012,11 +1009,11 @@ SCREEN_UPDATE_IND16( buckrog )
foreraw = fore[(pr5194[((xx >> 3) - 1) & 0x1f] << 3) | (xx & 0x07)];
offs = ((foreraw & 0x03) << 0) | /* A0-A1: BIT0-1 */
((foreraw & 0xf8) >> 1) | /* A2-A6: BANK3-7 */
- ((state->m_buckrog_fchg & 0x03) << 7); /* A7-A9: FCHG0-2 */
+ ((m_buckrog_fchg & 0x03) << 7); /* A7-A9: FCHG0-2 */
forebits = pr5198[offs];
/* fetch the STAR bit */
- star = state->m_buckrog_bitmap_ram[y * 256 + xx];
+ star = m_buckrog_bitmap_ram[y * 256 + xx];
/* now that we have done all the per-5MHz pixel work, mix the sprites at the scale factor */
for (ix = 0; ix < TURBO_X_SCALE; ix++)
@@ -1027,7 +1024,7 @@ SCREEN_UPDATE_IND16( buckrog )
/* CDB0-7 = D8 -D15 */
/* CDC0-7 = D16-D23 */
/* CDD0-7 = D24-D31 */
- sprbits = buckrog_get_sprite_bits(state->m_gfx1->base(), &sprinfo, &plb);
+ sprbits = buckrog_get_sprite_bits(m_gfx1->base(), &sprinfo, &plb);
/* the PLB bits go into an LS148 8-to-1 decoder and become MUX0-3 (PROM board SH 2/10) */
if (plb == 0)
@@ -1061,7 +1058,7 @@ SCREEN_UPDATE_IND16( buckrog )
{
offs = (cd & 0x0f) | /* A0-A3: CD0-3 */
((mux & 0x07) << 4) | /* A4-A6: MUX0-2 */
- ((state->m_buckrog_obch & 0x07) << 7); /* A7-A9: OBCH0-2 */
+ ((m_buckrog_obch & 0x07) << 7); /* A7-A9: OBCH0-2 */
palbits = pr5199[offs];
}
@@ -1082,7 +1079,7 @@ SCREEN_UPDATE_IND16( buckrog )
/* otherwise, CHNG = 3 */
else
{
- palbits = bgcolor[y | ((state->m_buckrog_mov & 0x1f) << 8)];
+ palbits = bgcolor[y | ((m_buckrog_mov & 0x1f) << 8)];
palbits = (palbits & 0xc0) | ((palbits & 0x30) << 4) | ((palbits & 0x0f) << 2);
}
diff --git a/src/mame/video/tutankhm.c b/src/mame/video/tutankhm.c
index a6e5be58ee7..34a632ff2c6 100644
--- a/src/mame/video/tutankhm.c
+++ b/src/mame/video/tutankhm.c
@@ -57,11 +57,10 @@ static void get_pens( running_machine &machine, pen_t *pens )
*
*************************************/
-SCREEN_UPDATE_RGB32( tutankhm )
+UINT32 tutankhm_state::screen_update_tutankhm(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- tutankhm_state *state = screen.machine().driver_data<tutankhm_state>();
- int xorx = state->m_flip_x ? 255 : 0;
- int xory = state->m_flip_y ? 255 : 0;
+ int xorx = m_flip_x ? 255 : 0;
+ int xory = m_flip_y ? 255 : 0;
pen_t pens[NUM_PENS];
int x, y;
@@ -74,9 +73,9 @@ SCREEN_UPDATE_RGB32( tutankhm )
for (x = cliprect.min_x; x <= cliprect.max_x; x++)
{
UINT8 effx = x ^ xorx;
- UINT8 yscroll = (effx < 192) ? *state->m_scroll : 0;
+ UINT8 yscroll = (effx < 192) ? *m_scroll : 0;
UINT8 effy = (y ^ xory) + yscroll;
- UINT8 vrambyte = state->m_videoram[effy * 128 + effx / 2];
+ UINT8 vrambyte = m_videoram[effy * 128 + effx / 2];
UINT8 shifted = vrambyte >> (4 * (effx % 2));
dst[x] = pens[shifted & 0x0f];
}
diff --git a/src/mame/video/twin16.c b/src/mame/video/twin16.c
index 7969d3b4a58..6a649d95b2f 100644
--- a/src/mame/video/twin16.c
+++ b/src/mame/video/twin16.c
@@ -514,43 +514,41 @@ VIDEO_START_MEMBER(twin16_state,twin16)
state_save_register_global(machine(), m_sprite_busy);
}
-SCREEN_UPDATE_IND16( twin16 )
+UINT32 twin16_state::screen_update_twin16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- twin16_state *state = screen.machine().driver_data<twin16_state>();
int text_flip=0;
- if (state->m_video_register&TWIN16_SCREEN_FLIPX) text_flip|=TILEMAP_FLIPX;
- if (state->m_video_register&TWIN16_SCREEN_FLIPY) text_flip|=TILEMAP_FLIPY;
+ if (m_video_register&TWIN16_SCREEN_FLIPX) text_flip|=TILEMAP_FLIPX;
+ if (m_video_register&TWIN16_SCREEN_FLIPY) text_flip|=TILEMAP_FLIPY;
screen.machine().priority_bitmap.fill(0, cliprect);
draw_layer( screen.machine(), bitmap, 1 );
draw_layer( screen.machine(), bitmap, 0 );
draw_sprites( screen.machine(), bitmap );
- if (text_flip) state->m_text_tilemap->set_flip(text_flip);
- state->m_text_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (text_flip) m_text_tilemap->set_flip(text_flip);
+ m_text_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_VBLANK( twin16 )
+void twin16_state::screen_eof_twin16(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- twin16_state *state = screen.machine().driver_data<twin16_state>();
twin16_set_sprite_timer(screen.machine());
if (twin16_spriteram_process_enable(screen.machine())) {
- if (state->m_need_process_spriteram) twin16_spriteram_process(screen.machine());
- state->m_need_process_spriteram = 1;
+ if (m_need_process_spriteram) twin16_spriteram_process(screen.machine());
+ m_need_process_spriteram = 1;
/* if the sprite preprocessor is used, sprite ram is copied to an external buffer first,
as evidenced by 1-frame sprite lag in gradius2 and devilw otherwise, though there's probably
more to it than that */
- memcpy(&state->m_spriteram->buffer()[0x1800],state->m_sprite_buffer,0x800*sizeof(UINT16));
- memcpy(state->m_sprite_buffer,&state->m_spriteram->live()[0x1800],0x800*sizeof(UINT16));
+ memcpy(&m_spriteram->buffer()[0x1800],m_sprite_buffer,0x800*sizeof(UINT16));
+ memcpy(m_sprite_buffer,&m_spriteram->live()[0x1800],0x800*sizeof(UINT16));
}
else {
- state->m_spriteram->copy();
+ m_spriteram->copy();
}
}
}
diff --git a/src/mame/video/twincobr.c b/src/mame/video/twincobr.c
index 8d0f66396be..7882557f93e 100644
--- a/src/mame/video/twincobr.c
+++ b/src/mame/video/twincobr.c
@@ -493,20 +493,19 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
Draw the game screen in the given bitmap_ind16.
***************************************************************************/
-SCREEN_UPDATE_IND16( toaplan0 )
+UINT32 twincobr_state::screen_update_toaplan0(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- twincobr_state *state = screen.machine().driver_data<twincobr_state>();
twincobr_log_vram(screen.machine());
- if (state->m_wardner_sprite_hack) wardner_sprite_priority_hack(screen.machine());
+ if (m_wardner_sprite_hack) wardner_sprite_priority_hack(screen.machine());
bitmap.fill(0, cliprect);
- state->m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
+ m_bg_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
draw_sprites(screen.machine(), bitmap,cliprect,0x0400);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect,0x0800);
- state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect,0x0c00);
return 0;
}
diff --git a/src/mame/video/tx1.c b/src/mame/video/tx1.c
index a41a14404a8..ba00c2f53d3 100644
--- a/src/mame/video/tx1.c
+++ b/src/mame/video/tx1.c
@@ -1119,15 +1119,14 @@ VIDEO_START_MEMBER(tx1_state,tx1)
m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS));
}
-SCREEN_VBLANK( tx1 )
+void tx1_state::screen_eof_tx1(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- tx1_state *state = screen.machine().driver_data<tx1_state>();
/* /VSYNC: Update TZ113 */
- state->m_vregs.slin_val += state->m_vregs.slin_inc;
+ m_vregs.slin_val += m_vregs.slin_inc;
}
}
@@ -1182,27 +1181,26 @@ static void tx1_combine_layers(running_machine &machine, bitmap_ind16 &bitmap, i
}
}
-SCREEN_UPDATE_IND16( tx1_left )
+UINT32 tx1_state::screen_update_tx1_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tx1_state *state = screen.machine().driver_data<tx1_state>();
- memset(state->m_obj_bmp, 0, 768*240);
+ memset(m_obj_bmp, 0, 768*240);
- tx1_draw_char(screen.machine(), state->m_chr_bmp);
- tx1_draw_road(screen.machine(), state->m_rod_bmp);
- tx1_draw_objects(screen.machine(), state->m_obj_bmp);
+ tx1_draw_char(screen.machine(), m_chr_bmp);
+ tx1_draw_road(screen.machine(), m_rod_bmp);
+ tx1_draw_objects(screen.machine(), m_obj_bmp);
tx1_combine_layers(screen.machine(), bitmap, 0);
return 0;
}
-SCREEN_UPDATE_IND16( tx1_middle )
+UINT32 tx1_state::screen_update_tx1_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
tx1_combine_layers(screen.machine(), bitmap, 1);
return 0;
}
-SCREEN_UPDATE_IND16( tx1_right )
+UINT32 tx1_state::screen_update_tx1_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
tx1_combine_layers(screen.machine(), bitmap, 2);
return 0;
@@ -3023,57 +3021,54 @@ VIDEO_START_MEMBER(tx1_state,buggybjr)
m_interrupt_timer->adjust(machine().primary_screen->time_until_pos(CURSOR_YPOS, CURSOR_XPOS));
}
-SCREEN_VBLANK( buggyboy )
+void tx1_state::screen_eof_buggyboy(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- tx1_state *state = screen.machine().driver_data<tx1_state>();
/* /VSYNC: Update TZ113 @ 219 */
- state->m_vregs.slin_val += state->m_vregs.slin_inc;
+ m_vregs.slin_val += m_vregs.slin_inc;
/* /VSYNC: Clear wave LFSR */
- state->m_vregs.wave_lfsr = 0;
+ m_vregs.wave_lfsr = 0;
}
}
-SCREEN_UPDATE_IND16( buggyboy_left )
+UINT32 tx1_state::screen_update_buggyboy_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tx1_state *state = screen.machine().driver_data<tx1_state>();
- memset(state->m_obj_bmp, 0, 768*240);
- memset(state->m_rod_bmp, 0, 768*240);
+ memset(m_obj_bmp, 0, 768*240);
+ memset(m_rod_bmp, 0, 768*240);
- buggyboy_draw_char(screen.machine(), state->m_chr_bmp, 1);
- buggyboy_draw_road(screen.machine(), state->m_rod_bmp);
- buggyboy_draw_objs(screen.machine(), state->m_obj_bmp, 1);
+ buggyboy_draw_char(screen.machine(), m_chr_bmp, 1);
+ buggyboy_draw_road(screen.machine(), m_rod_bmp);
+ buggyboy_draw_objs(screen.machine(), m_obj_bmp, 1);
bb_combine_layers(screen.machine(), bitmap, 0);
return 0;
}
-SCREEN_UPDATE_IND16( buggyboy_middle )
+UINT32 tx1_state::screen_update_buggyboy_middle(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bb_combine_layers(screen.machine(), bitmap, 1);
return 0;
}
-SCREEN_UPDATE_IND16( buggyboy_right )
+UINT32 tx1_state::screen_update_buggyboy_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
bb_combine_layers(screen.machine(), bitmap, 2);
return 0;
}
-SCREEN_UPDATE_IND16( buggybjr )
+UINT32 tx1_state::screen_update_buggybjr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tx1_state *state = screen.machine().driver_data<tx1_state>();
- memset(state->m_obj_bmp, 0, 256*240);
+ memset(m_obj_bmp, 0, 256*240);
- buggyboy_draw_char(screen.machine(), state->m_chr_bmp, 0);
- buggybjr_draw_road(screen.machine(), state->m_rod_bmp, 0);
- buggyboy_draw_objs(screen.machine(), state->m_obj_bmp, 0);
+ buggyboy_draw_char(screen.machine(), m_chr_bmp, 0);
+ buggybjr_draw_road(screen.machine(), m_rod_bmp, 0);
+ buggyboy_draw_objs(screen.machine(), m_obj_bmp, 0);
bb_combine_layers(screen.machine(), bitmap, -1);
return 0;
diff --git a/src/mame/video/ultraman.c b/src/mame/video/ultraman.c
index e74e6efd357..8ba850a4e9e 100644
--- a/src/mame/video/ultraman.c
+++ b/src/mame/video/ultraman.c
@@ -120,14 +120,13 @@ WRITE16_MEMBER(ultraman_state::ultraman_gfxctrl_w)
***************************************************************************/
-SCREEN_UPDATE_IND16( ultraman )
+UINT32 ultraman_state::screen_update_ultraman(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ultraman_state *state = screen.machine().driver_data<ultraman_state>();
- k051316_zoom_draw(state->m_k051316_3, bitmap, cliprect, 0, 0);
- k051316_zoom_draw(state->m_k051316_2, bitmap, cliprect, 0, 0);
- k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 0, 0);
- k051316_zoom_draw(state->m_k051316_1, bitmap, cliprect, 0, 0);
- k051960_sprites_draw(state->m_k051960, bitmap, cliprect, 1, 1);
+ k051316_zoom_draw(m_k051316_3, bitmap, cliprect, 0, 0);
+ k051316_zoom_draw(m_k051316_2, bitmap, cliprect, 0, 0);
+ k051960_sprites_draw(m_k051960, bitmap, cliprect, 0, 0);
+ k051316_zoom_draw(m_k051316_1, bitmap, cliprect, 0, 0);
+ k051960_sprites_draw(m_k051960, bitmap, cliprect, 1, 1);
return 0;
}
diff --git a/src/mame/video/ultratnk.c b/src/mame/video/ultratnk.c
index 19deb389d1b..6476bab72c9 100644
--- a/src/mame/video/ultratnk.c
+++ b/src/mame/video/ultratnk.c
@@ -54,13 +54,12 @@ void ultratnk_state::video_start()
}
-SCREEN_UPDATE_IND16( ultratnk )
+UINT32 ultratnk_state::screen_update_ultratnk(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ultratnk_state *state = screen.machine().driver_data<ultratnk_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
int i;
- state->m_playfield->draw(bitmap, cliprect, 0, 0);
+ m_playfield->draw(bitmap, cliprect, 0, 0);
for (i = 0; i < 4; i++)
{
@@ -89,16 +88,15 @@ SCREEN_UPDATE_IND16( ultratnk )
}
-SCREEN_VBLANK( ultratnk )
+void ultratnk_state::screen_eof_ultratnk(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- ultratnk_state *state = screen.machine().driver_data<ultratnk_state>();
int i;
UINT16 BG = colortable_entry_get_value(screen.machine().colortable, 0);
device_t *discrete = screen.machine().device("discrete");
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
/* check for sprite-playfield collisions */
@@ -122,12 +120,12 @@ SCREEN_VBLANK( ultratnk )
rect &= screen.machine().primary_screen->visible_area();
- state->m_playfield->draw(state->m_helper, rect, 0, 0);
+ m_playfield->draw(m_helper, rect, 0, 0);
if (code & 4)
bank = 32;
- drawgfx_transpen(state->m_helper, rect, screen.machine().gfx[1],
+ drawgfx_transpen(m_helper, rect, screen.machine().gfx[1],
(code >> 3) | bank,
4,
0, 0,
@@ -136,8 +134,8 @@ SCREEN_VBLANK( ultratnk )
for (y = rect.min_y; y <= rect.max_y; y++)
for (x = rect.min_x; x <= rect.max_x; x++)
- if (colortable_entry_get_value(screen.machine().colortable, state->m_helper.pix16(y, x)) != BG)
- state->m_collision[i] = 1;
+ if (colortable_entry_get_value(screen.machine().colortable, m_helper.pix16(y, x)) != BG)
+ m_collision[i] = 1;
}
/* update sound status */
diff --git a/src/mame/video/undrfire.c b/src/mame/video/undrfire.c
index 12de8b3ef2d..9103dfc86ab 100644
--- a/src/mame/video/undrfire.c
+++ b/src/mame/video/undrfire.c
@@ -346,7 +346,7 @@ static void draw_sprites_cbombers(running_machine &machine, bitmap_ind16 &bitmap
SCREEN REFRESH
**************************************************************/
-SCREEN_UPDATE_IND16( undrfire )
+UINT32 undrfire_state::screen_update_undrfire(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
device_t *tc0100scn = screen.machine().device("tc0100scn");
device_t *tc0480scp = screen.machine().device("tc0480scp");
@@ -356,40 +356,39 @@ SCREEN_UPDATE_IND16( undrfire )
UINT16 priority;
#ifdef MAME_DEBUG
- undrfire_state *state = screen.machine().driver_data<undrfire_state>();
if (screen.machine().input().code_pressed_once (KEYCODE_X))
{
- state->m_dislayer[5] ^= 1;
- popmessage("piv text: %01x",state->m_dislayer[5]);
+ m_dislayer[5] ^= 1;
+ popmessage("piv text: %01x",m_dislayer[5]);
}
if (screen.machine().input().code_pressed_once (KEYCODE_C))
{
- state->m_dislayer[0] ^= 1;
- popmessage("bg0: %01x",state->m_dislayer[0]);
+ m_dislayer[0] ^= 1;
+ popmessage("bg0: %01x",m_dislayer[0]);
}
if (screen.machine().input().code_pressed_once (KEYCODE_V))
{
- state->m_dislayer[1] ^= 1;
- popmessage("bg1: %01x",state->m_dislayer[1]);
+ m_dislayer[1] ^= 1;
+ popmessage("bg1: %01x",m_dislayer[1]);
}
if (screen.machine().input().code_pressed_once (KEYCODE_B))
{
- state->m_dislayer[2] ^= 1;
- popmessage("bg2: %01x",state->m_dislayer[2]);
+ m_dislayer[2] ^= 1;
+ popmessage("bg2: %01x",m_dislayer[2]);
}
if (screen.machine().input().code_pressed_once (KEYCODE_N))
{
- state->m_dislayer[3] ^= 1;
- popmessage("bg3: %01x",state->m_dislayer[3]);
+ m_dislayer[3] ^= 1;
+ popmessage("bg3: %01x",m_dislayer[3]);
}
if (screen.machine().input().code_pressed_once (KEYCODE_M))
{
- state->m_dislayer[4] ^= 1;
- popmessage("sprites: %01x",state->m_dislayer[4]);
+ m_dislayer[4] ^= 1;
+ popmessage("sprites: %01x",m_dislayer[4]);
}
#endif
@@ -422,27 +421,27 @@ SCREEN_UPDATE_IND16( undrfire )
tc0100scn_tilemap_draw(tc0100scn, bitmap, cliprect, pivlayer[1], 0, 0);
#ifdef MAME_DEBUG
- if (state->m_dislayer[layer[0]]==0)
+ if (m_dislayer[layer[0]]==0)
#endif
tc0480scp_tilemap_draw(tc0480scp, bitmap, cliprect, layer[0], 0, 1);
#ifdef MAME_DEBUG
- if (state->m_dislayer[layer[1]]==0)
+ if (m_dislayer[layer[1]]==0)
#endif
tc0480scp_tilemap_draw(tc0480scp, bitmap, cliprect, layer[1], 0, 2);
#ifdef MAME_DEBUG
- if (state->m_dislayer[layer[2]]==0)
+ if (m_dislayer[layer[2]]==0)
#endif
tc0480scp_tilemap_draw(tc0480scp, bitmap, cliprect, layer[2], 0, 4);
#ifdef MAME_DEBUG
- if (state->m_dislayer[layer[3]]==0)
+ if (m_dislayer[layer[3]]==0)
#endif
tc0480scp_tilemap_draw(tc0480scp, bitmap, cliprect, layer[3], 0, 8);
#ifdef MAME_DEBUG
- if (state->m_dislayer[4]==0)
+ if (m_dislayer[4]==0)
#endif
/* Sprites have variable priority (we kludge this on road levels) */
{
@@ -459,7 +458,7 @@ SCREEN_UPDATE_IND16( undrfire )
}
#ifdef MAME_DEBUG
- if (state->m_dislayer[5]==0)
+ if (m_dislayer[5]==0)
#endif
tc0100scn_tilemap_draw(tc0100scn, bitmap, cliprect, pivlayer[2], 0, 0); /* piv text layer */
@@ -481,7 +480,7 @@ SCREEN_UPDATE_IND16( undrfire )
for (i = 0; i < 8; i += 1)
{
- sprintf (buf, "%02x: %04x", i, state->m_rotate_ctrl[i]);
+ sprintf (buf, "%02x: %04x", i, m_rotate_ctrl[i]);
ui_draw_text (buf, 0, i*8);
}
}
@@ -490,7 +489,7 @@ SCREEN_UPDATE_IND16( undrfire )
}
-SCREEN_UPDATE_IND16( cbombers )
+UINT32 undrfire_state::screen_update_cbombers(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
device_t *tc0100scn = screen.machine().device("tc0100scn");
device_t *tc0480scp = screen.machine().device("tc0480scp");
@@ -500,40 +499,39 @@ SCREEN_UPDATE_IND16( cbombers )
UINT16 priority;
#ifdef MAME_DEBUG
- undrfire_state *state = screen.machine().driver_data<undrfire_state>();
if (screen.machine().input().code_pressed_once (KEYCODE_X))
{
- state->m_dislayer[5] ^= 1;
- popmessage("piv text: %01x",state->m_dislayer[5]);
+ m_dislayer[5] ^= 1;
+ popmessage("piv text: %01x",m_dislayer[5]);
}
if (screen.machine().input().code_pressed_once (KEYCODE_C))
{
- state->m_dislayer[0] ^= 1;
- popmessage("bg0: %01x",state->m_dislayer[0]);
+ m_dislayer[0] ^= 1;
+ popmessage("bg0: %01x",m_dislayer[0]);
}
if (screen.machine().input().code_pressed_once (KEYCODE_V))
{
- state->m_dislayer[1] ^= 1;
- popmessage("bg1: %01x",state->m_dislayer[1]);
+ m_dislayer[1] ^= 1;
+ popmessage("bg1: %01x",m_dislayer[1]);
}
if (screen.machine().input().code_pressed_once (KEYCODE_B))
{
- state->m_dislayer[2] ^= 1;
- popmessage("bg2: %01x",state->m_dislayer[2]);
+ m_dislayer[2] ^= 1;
+ popmessage("bg2: %01x",m_dislayer[2]);
}
if (screen.machine().input().code_pressed_once (KEYCODE_N))
{
- state->m_dislayer[3] ^= 1;
- popmessage("bg3: %01x",state->m_dislayer[3]);
+ m_dislayer[3] ^= 1;
+ popmessage("bg3: %01x",m_dislayer[3]);
}
if (screen.machine().input().code_pressed_once (KEYCODE_M))
{
- state->m_dislayer[4] ^= 1;
- popmessage("sprites: %01x",state->m_dislayer[4]);
+ m_dislayer[4] ^= 1;
+ popmessage("sprites: %01x",m_dislayer[4]);
}
#endif
@@ -566,27 +564,27 @@ SCREEN_UPDATE_IND16( cbombers )
tc0100scn_tilemap_draw(tc0100scn, bitmap, cliprect, pivlayer[1], 0, 0);
#ifdef MAME_DEBUG
- if (state->m_dislayer[layer[0]]==0)
+ if (m_dislayer[layer[0]]==0)
#endif
tc0480scp_tilemap_draw(tc0480scp, bitmap, cliprect, layer[0], 0, 1);
#ifdef MAME_DEBUG
- if (state->m_dislayer[layer[1]]==0)
+ if (m_dislayer[layer[1]]==0)
#endif
tc0480scp_tilemap_draw(tc0480scp, bitmap, cliprect, layer[1], 0, 2);
#ifdef MAME_DEBUG
- if (state->m_dislayer[layer[2]]==0)
+ if (m_dislayer[layer[2]]==0)
#endif
tc0480scp_tilemap_draw(tc0480scp, bitmap, cliprect, layer[2], 0, 4);
#ifdef MAME_DEBUG
- if (state->m_dislayer[layer[3]]==0)
+ if (m_dislayer[layer[3]]==0)
#endif
tc0480scp_tilemap_draw(tc0480scp, bitmap, cliprect, layer[3], 0, 8);
#ifdef MAME_DEBUG
- if (state->m_dislayer[4]==0)
+ if (m_dislayer[4]==0)
#endif
/* Sprites have variable priority (we kludge this on road levels) */
{
@@ -603,7 +601,7 @@ SCREEN_UPDATE_IND16( cbombers )
}
#ifdef MAME_DEBUG
- if (state->m_dislayer[5]==0)
+ if (m_dislayer[5]==0)
#endif
tc0100scn_tilemap_draw(tc0100scn, bitmap, cliprect, pivlayer[2], 0, 0); /* piv text layer */
@@ -617,7 +615,7 @@ SCREEN_UPDATE_IND16( cbombers )
for (i = 0; i < 8; i += 1)
{
- sprintf (buf, "%02x: %04x", i, state->m_rotate_ctrl[i]);
+ sprintf (buf, "%02x: %04x", i, m_rotate_ctrl[i]);
ui_draw_text (buf, 0, i*8);
}
}
diff --git a/src/mame/video/unico.c b/src/mame/video/unico.c
index 233ada4ca2a..9f1ec38c8f9 100644
--- a/src/mame/video/unico.c
+++ b/src/mame/video/unico.c
@@ -337,19 +337,18 @@ static void zeropnt2_draw_sprites(running_machine &machine, bitmap_ind16 &bitmap
***************************************************************************/
-SCREEN_UPDATE_IND16( unico )
+UINT32 unico_state::screen_update_unico(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- unico_state *state = screen.machine().driver_data<unico_state>();
int layers_ctrl = -1;
- state->m_tilemap[0]->set_scrollx(0, state->m_scroll[0x00]);
- state->m_tilemap[0]->set_scrolly(0, state->m_scroll[0x01]);
+ m_tilemap[0]->set_scrollx(0, m_scroll[0x00]);
+ m_tilemap[0]->set_scrolly(0, m_scroll[0x01]);
- state->m_tilemap[1]->set_scrollx(0, state->m_scroll[0x05]);
- state->m_tilemap[1]->set_scrolly(0, state->m_scroll[0x0a]);
+ m_tilemap[1]->set_scrollx(0, m_scroll[0x05]);
+ m_tilemap[1]->set_scrolly(0, m_scroll[0x0a]);
- state->m_tilemap[2]->set_scrollx(0, state->m_scroll[0x04]);
- state->m_tilemap[2]->set_scrolly(0, state->m_scroll[0x02]);
+ m_tilemap[2]->set_scrollx(0, m_scroll[0x04]);
+ m_tilemap[2]->set_scrolly(0, m_scroll[0x02]);
#ifdef MAME_DEBUG
if ( screen.machine().input().code_pressed(KEYCODE_Z) || screen.machine().input().code_pressed(KEYCODE_X) )
@@ -367,9 +366,9 @@ if ( screen.machine().input().code_pressed(KEYCODE_Z) || screen.machine().input(
bitmap.fill(0x1f00, cliprect);
screen.machine().priority_bitmap.fill(0, cliprect);
- if (layers_ctrl & 1) state->m_tilemap[0]->draw(bitmap, cliprect, 0,1);
- if (layers_ctrl & 2) state->m_tilemap[1]->draw(bitmap, cliprect, 0,2);
- if (layers_ctrl & 4) state->m_tilemap[2]->draw(bitmap, cliprect, 0,4);
+ if (layers_ctrl & 1) m_tilemap[0]->draw(bitmap, cliprect, 0,1);
+ if (layers_ctrl & 2) m_tilemap[1]->draw(bitmap, cliprect, 0,2);
+ if (layers_ctrl & 4) m_tilemap[2]->draw(bitmap, cliprect, 0,4);
/* Sprites are drawn last, using pdrawgfx */
if (layers_ctrl & 8) unico_draw_sprites(screen.machine(), bitmap,cliprect);
@@ -377,19 +376,18 @@ if ( screen.machine().input().code_pressed(KEYCODE_Z) || screen.machine().input(
return 0;
}
-SCREEN_UPDATE_IND16( zeropnt2 )
+UINT32 unico_state::screen_update_zeropnt2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- unico_state *state = screen.machine().driver_data<unico_state>();
int layers_ctrl = -1;
- state->m_tilemap[0]->set_scrollx(0, state->m_scroll32[0] >> 16);
- state->m_tilemap[0]->set_scrolly(0, state->m_scroll32[0] & 0xffff);
+ m_tilemap[0]->set_scrollx(0, m_scroll32[0] >> 16);
+ m_tilemap[0]->set_scrolly(0, m_scroll32[0] & 0xffff);
- state->m_tilemap[1]->set_scrollx(0, state->m_scroll32[2] & 0xffff);
- state->m_tilemap[1]->set_scrolly(0, state->m_scroll32[5] >> 16);
+ m_tilemap[1]->set_scrollx(0, m_scroll32[2] & 0xffff);
+ m_tilemap[1]->set_scrolly(0, m_scroll32[5] >> 16);
- state->m_tilemap[2]->set_scrollx(0, state->m_scroll32[2] >> 16);
- state->m_tilemap[2]->set_scrolly(0, state->m_scroll32[1] >> 16);
+ m_tilemap[2]->set_scrollx(0, m_scroll32[2] >> 16);
+ m_tilemap[2]->set_scrolly(0, m_scroll32[1] >> 16);
#ifdef MAME_DEBUG
if ( screen.machine().input().code_pressed(KEYCODE_Z) || screen.machine().input().code_pressed(KEYCODE_X) )
@@ -407,9 +405,9 @@ if ( screen.machine().input().code_pressed(KEYCODE_Z) || screen.machine().input(
bitmap.fill(0x1f00, cliprect);
screen.machine().priority_bitmap.fill(0, cliprect);
- if (layers_ctrl & 1) state->m_tilemap[0]->draw(bitmap, cliprect, 0,1);
- if (layers_ctrl & 2) state->m_tilemap[1]->draw(bitmap, cliprect, 0,2);
- if (layers_ctrl & 4) state->m_tilemap[2]->draw(bitmap, cliprect, 0,4);
+ if (layers_ctrl & 1) m_tilemap[0]->draw(bitmap, cliprect, 0,1);
+ if (layers_ctrl & 2) m_tilemap[1]->draw(bitmap, cliprect, 0,2);
+ if (layers_ctrl & 4) m_tilemap[2]->draw(bitmap, cliprect, 0,4);
/* Sprites are drawn last, using pdrawgfx */
if (layers_ctrl & 8) zeropnt2_draw_sprites(screen.machine(), bitmap,cliprect);
diff --git a/src/mame/video/usgames.c b/src/mame/video/usgames.c
index ed6a5463be4..382c4445327 100644
--- a/src/mame/video/usgames.c
+++ b/src/mame/video/usgames.c
@@ -61,9 +61,8 @@ WRITE8_MEMBER(usgames_state::usgames_charram_w)
}
-SCREEN_UPDATE_IND16(usgames)
+UINT32 usgames_state::screen_update_usgames(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- usgames_state *state = screen.machine().driver_data<usgames_state>();
- state->m_tilemap->draw(bitmap, cliprect, 0,0);
+ m_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/video/vaportra.c b/src/mame/video/vaportra.c
index 2a4493e1499..21b58ac89ff 100644
--- a/src/mame/video/vaportra.c
+++ b/src/mame/video/vaportra.c
@@ -50,50 +50,49 @@ WRITE16_MEMBER(vaportra_state::vaportra_palette_24bit_b_w)
/******************************************************************************/
-SCREEN_UPDATE_IND16( vaportra )
+UINT32 vaportra_state::screen_update_vaportra(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- vaportra_state *state = screen.machine().driver_data<vaportra_state>();
address_space &space = screen.machine().driver_data()->generic_space();
- UINT16 flip = deco16ic_pf_control_r(state->m_deco_tilegen1, space, 0, 0xffff);
- int pri = state->m_priority[0] & 0x03;
+ UINT16 flip = deco16ic_pf_control_r(m_deco_tilegen1, space, 0, 0xffff);
+ int pri = m_priority[0] & 0x03;
- state->flip_screen_set(!BIT(flip, 7));
- deco16ic_pf_update(state->m_deco_tilegen1, 0, 0);
- deco16ic_pf_update(state->m_deco_tilegen2, 0, 0);
+ flip_screen_set(!BIT(flip, 7));
+ deco16ic_pf_update(m_deco_tilegen1, 0, 0);
+ deco16ic_pf_update(m_deco_tilegen2, 0, 0);
screen.machine().device<deco_mxc06_device>("spritegen")->set_pri_type(1); // force priorities to be handled in a different way for this driver for now
/* Draw playfields */
if (pri == 0)
{
- deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 0);
- screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram->buffer(), 0, state->m_priority[1], 0x0f);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 0);
+ screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram->buffer(), 0, m_priority[1], 0x0f);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
}
else if (pri == 1)
{
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 0);
- screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram->buffer(), 0, state->m_priority[1], 0x0f);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, 0, 0);
+ screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram->buffer(), 0, m_priority[1], 0x0f);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
}
else if (pri == 2)
{
- deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
- screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram->buffer(), 0, state->m_priority[1], 0x0f);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram->buffer(), 0, m_priority[1], 0x0f);
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, 0, 0);
}
else
{
- deco16ic_tilemap_1_draw(state->m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
- screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram->buffer(), 0, state->m_priority[1], 0x0f);
- deco16ic_tilemap_2_draw(state->m_deco_tilegen2, bitmap, cliprect, 0, 0);
+ deco16ic_tilemap_1_draw(m_deco_tilegen2, bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ deco16ic_tilemap_2_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram->buffer(), 0, m_priority[1], 0x0f);
+ deco16ic_tilemap_2_draw(m_deco_tilegen2, bitmap, cliprect, 0, 0);
}
- screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram->buffer(), 1, state->m_priority[1], 0x0f);
- deco16ic_tilemap_1_draw(state->m_deco_tilegen1, bitmap, cliprect, 0, 0);
+ screen.machine().device<deco_mxc06_device>("spritegen")->draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram->buffer(), 1, m_priority[1], 0x0f);
+ deco16ic_tilemap_1_draw(m_deco_tilegen1, bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/vastar.c b/src/mame/video/vastar.c
index 43c54ae82eb..3ade1f3c434 100644
--- a/src/mame/video/vastar.c
+++ b/src/mame/video/vastar.c
@@ -187,44 +187,43 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re
}
}
-SCREEN_UPDATE_IND16( vastar )
+UINT32 vastar_state::screen_update_vastar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- vastar_state *state = screen.machine().driver_data<vastar_state>();
int i;
for (i = 0;i < 32;i++)
{
- state->m_bg1_tilemap->set_scrolly(i,state->m_bg1_scroll[i]);
- state->m_bg2_tilemap->set_scrolly(i,state->m_bg2_scroll[i]);
+ m_bg1_tilemap->set_scrolly(i,m_bg1_scroll[i]);
+ m_bg2_tilemap->set_scrolly(i,m_bg2_scroll[i]);
}
- switch (*state->m_sprite_priority)
+ switch (*m_sprite_priority)
{
case 0:
- state->m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
+ m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
draw_sprites(screen.machine(), bitmap,cliprect);
- state->m_bg2_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg2_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0,0);
break;
case 2:
- state->m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
+ m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
draw_sprites(screen.machine(), bitmap,cliprect);
- state->m_bg1_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_bg2_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg1_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg2_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0,0);
break;
case 3:
- state->m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
- state->m_bg2_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
+ m_bg2_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect);
break;
default:
- logerror("Unimplemented priority %X\n", *state->m_sprite_priority);
+ logerror("Unimplemented priority %X\n", *m_sprite_priority);
break;
}
return 0;
diff --git a/src/mame/video/vball.c b/src/mame/video/vball.c
index 001a2f7fc68..db6dcc3b9ba 100644
--- a/src/mame/video/vball.c
+++ b/src/mame/video/vball.c
@@ -156,19 +156,18 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
#undef DRAW_SPRITE
-SCREEN_UPDATE_IND16( vb )
+UINT32 vball_state::screen_update_vb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- vball_state *state = screen.machine().driver_data<vball_state>();
int i;
- state->m_bg_tilemap->set_scrolly(0,state->m_vb_scrolly_hi + *state->m_vb_scrolly_lo);
+ m_bg_tilemap->set_scrolly(0,m_vb_scrolly_hi + *m_vb_scrolly_lo);
/*To get linescrolling to work properly, we must ignore the 1st two scroll values, no idea why! -SJE */
for (i = 2; i < 256; i++) {
- state->m_bg_tilemap->set_scrollx(i,state->m_vb_scrollx[i-2]);
- //logerror("scrollx[%d] = %d\n",i,state->m_vb_scrollx[i]);
+ m_bg_tilemap->set_scrollx(i,m_vb_scrollx[i-2]);
+ //logerror("scrollx[%d] = %d\n",i,m_vb_scrollx[i]);
}
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(),bitmap,cliprect);
return 0;
}
diff --git a/src/mame/video/vectrex.c b/src/mame/video/vectrex.c
index 88853eb58f9..aea4fc26316 100644
--- a/src/mame/video/vectrex.c
+++ b/src/mame/video/vectrex.c
@@ -158,27 +158,26 @@ static TIMER_CALLBACK(vectrex_refresh)
}
-SCREEN_UPDATE_RGB32(vectrex)
+UINT32 vectrex_state::screen_update_vectrex(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- vectrex_state *state = screen.machine().driver_data<vectrex_state>();
int i;
vectrex_configuration(screen.machine());
/* start black */
vector_add_point(screen.machine(),
- state->m_points[state->m_display_start].x,
- state->m_points[state->m_display_start].y,
- state->m_points[state->m_display_start].col,
+ m_points[m_display_start].x,
+ m_points[m_display_start].y,
+ m_points[m_display_start].col,
0);
- for (i = state->m_display_start; i != state->m_display_end; i = (i + 1) % NVECT)
+ for (i = m_display_start; i != m_display_end; i = (i + 1) % NVECT)
{
vector_add_point(screen.machine(),
- state->m_points[i].x,
- state->m_points[i].y,
- state->m_points[i].col,
- state->m_points[i].intensity);
+ m_points[i].x,
+ m_points[i].y,
+ m_points[i].col,
+ m_points[i].intensity);
}
SCREEN_UPDATE32_CALL(vector);
diff --git a/src/mame/video/vendetta.c b/src/mame/video/vendetta.c
index 277364dcd30..2aa8a4779a7 100644
--- a/src/mame/video/vendetta.c
+++ b/src/mame/video/vendetta.c
@@ -52,32 +52,31 @@ void vendetta_sprite_callback( running_machine &machine, int *code, int *color,
***************************************************************************/
-SCREEN_UPDATE_IND16( vendetta )
+UINT32 vendetta_state::screen_update_vendetta(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- vendetta_state *state = screen.machine().driver_data<vendetta_state>();
int layer[3];
- state->m_sprite_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI1);
- state->m_layer_colorbase[0] = k053251_get_palette_index(state->m_k053251, K053251_CI2);
- state->m_layer_colorbase[1] = k053251_get_palette_index(state->m_k053251, K053251_CI3);
- state->m_layer_colorbase[2] = k053251_get_palette_index(state->m_k053251, K053251_CI4);
+ m_sprite_colorbase = k053251_get_palette_index(m_k053251, K053251_CI1);
+ m_layer_colorbase[0] = k053251_get_palette_index(m_k053251, K053251_CI2);
+ m_layer_colorbase[1] = k053251_get_palette_index(m_k053251, K053251_CI3);
+ m_layer_colorbase[2] = k053251_get_palette_index(m_k053251, K053251_CI4);
- k052109_tilemap_update(state->m_k052109);
+ k052109_tilemap_update(m_k052109);
layer[0] = 0;
- state->m_layerpri[0] = k053251_get_priority(state->m_k053251, K053251_CI2);
+ m_layerpri[0] = k053251_get_priority(m_k053251, K053251_CI2);
layer[1] = 1;
- state->m_layerpri[1] = k053251_get_priority(state->m_k053251, K053251_CI3);
+ m_layerpri[1] = k053251_get_priority(m_k053251, K053251_CI3);
layer[2] = 2;
- state->m_layerpri[2] = k053251_get_priority(state->m_k053251, K053251_CI4);
+ m_layerpri[2] = k053251_get_priority(m_k053251, K053251_CI4);
- konami_sortlayers3(layer, state->m_layerpri);
+ konami_sortlayers3(layer, m_layerpri);
screen.machine().priority_bitmap.fill(0, cliprect);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, layer[1], 0, 2);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, layer[2], 0, 4);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, layer[1], 0, 2);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, layer[2], 0, 4);
- k053247_sprites_draw(state->m_k053246, bitmap, cliprect);
+ k053247_sprites_draw(m_k053246, bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/vicdual.c b/src/mame/video/vicdual.c
index 9fc0c497f43..627a2bfcc73 100644
--- a/src/mame/video/vicdual.c
+++ b/src/mame/video/vicdual.c
@@ -28,9 +28,8 @@ WRITE8_MEMBER(vicdual_state::vicdual_palette_bank_w)
}
-SCREEN_UPDATE_RGB32( vicdual_bw )
+UINT32 vicdual_state::screen_update_vicdual_bw(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- vicdual_state *state = screen.machine().driver_data<vicdual_state>();
UINT8 x = 0;
UINT8 y = cliprect.min_y;
UINT8 video_data = 0;
@@ -46,11 +45,11 @@ SCREEN_UPDATE_RGB32( vicdual_bw )
/* read the character code */
offs = (y >> 3 << 5) | (x >> 3);
- char_code = state->m_videoram[offs];
+ char_code = m_videoram[offs];
/* read the appropriate line of the character ram */
offs = (char_code << 3) | (y & 0x07);
- video_data = state->m_characterram[offs];
+ video_data = m_characterram[offs];
}
/* plot the current pixel */
@@ -79,10 +78,9 @@ SCREEN_UPDATE_RGB32( vicdual_bw )
}
-SCREEN_UPDATE_RGB32( vicdual_color )
+UINT32 vicdual_state::screen_update_vicdual_color(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- vicdual_state *state = screen.machine().driver_data<vicdual_state>();
- UINT8 *color_prom = (UINT8 *)state->memregion("proms")->base();
+ UINT8 *color_prom = (UINT8 *)memregion("proms")->base();
UINT8 x = 0;
UINT8 y = cliprect.min_y;
UINT8 video_data = 0;
@@ -100,14 +98,14 @@ SCREEN_UPDATE_RGB32( vicdual_color )
/* read the character code */
offs = (y >> 3 << 5) | (x >> 3);
- char_code = state->m_videoram[offs];
+ char_code = m_videoram[offs];
/* read the appropriate line of the character ram */
offs = (char_code << 3) | (y & 0x07);
- video_data = state->m_characterram[offs];
+ video_data = m_characterram[offs];
/* get the foreground and background colors from the PROM */
- offs = (char_code >> 5) | (state->m_palette_bank << 3);
+ offs = (char_code >> 5) | (m_palette_bank << 3);
back_pen = pens_from_color_prom[(color_prom[offs] >> 1) & 0x07];
fore_pen = pens_from_color_prom[(color_prom[offs] >> 5) & 0x07];
}
@@ -138,12 +136,12 @@ SCREEN_UPDATE_RGB32( vicdual_color )
}
-SCREEN_UPDATE_RGB32( vicdual_bw_or_color )
+UINT32 vicdual_state::screen_update_vicdual_bw_or_color(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
if (vicdual_is_cabinet_color(screen.machine()))
- SCREEN_UPDATE32_CALL(vicdual_color);
+ SCREEN_UPDATE32_CALL_MEMBER(vicdual_color);
else
- SCREEN_UPDATE32_CALL(vicdual_bw);
+ SCREEN_UPDATE32_CALL_MEMBER(vicdual_bw);
return 0;
}
diff --git a/src/mame/video/victory.c b/src/mame/video/victory.c
index ef9d0cefd52..0ae20ee55c0 100644
--- a/src/mame/video/victory.c
+++ b/src/mame/video/victory.c
@@ -1086,10 +1086,9 @@ static TIMER_CALLBACK( bgcoll_irq_callback )
*
*************************************/
-SCREEN_UPDATE_IND16( victory )
+UINT32 victory_state::screen_update_victory(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- victory_state *state = screen.machine().driver_data<victory_state>();
- int bgcollmask = (state->m_video_control & 4) ? 4 : 7;
+ int bgcollmask = (m_video_control & 4) ? 4 : 7;
int count = 0;
int x, y;
@@ -1104,15 +1103,15 @@ SCREEN_UPDATE_IND16( victory )
for (y = 0; y < 256; y++)
{
UINT16 *scanline = &bitmap.pix16(y);
- UINT8 sy = state->m_scrolly + y;
- UINT8 *fg = &state->m_fgbitmap[y * 256];
- UINT8 *bg = &state->m_bgbitmap[sy * 256];
+ UINT8 sy = m_scrolly + y;
+ UINT8 *fg = &m_fgbitmap[y * 256];
+ UINT8 *bg = &m_bgbitmap[sy * 256];
/* do the blending */
for (x = 0; x < 256; x++)
{
int fpix = *fg++;
- int bpix = bg[(x + state->m_scrollx) & 255];
+ int bpix = bg[(x + m_scrollx) & 255];
scanline[x] = bpix | (fpix << 3);
if (fpix && (bpix & bgcollmask) && count++ < 128)
screen.machine().scheduler().timer_set(screen.time_until_pos(y, x), FUNC(bgcoll_irq_callback), x | (y << 8));
diff --git a/src/mame/video/videopin.c b/src/mame/video/videopin.c
index 826d2da9bda..624b22b00f9 100644
--- a/src/mame/video/videopin.c
+++ b/src/mame/video/videopin.c
@@ -31,23 +31,22 @@ void videopin_state::video_start()
}
-SCREEN_UPDATE_IND16( videopin )
+UINT32 videopin_state::screen_update_videopin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- videopin_state *state = screen.machine().driver_data<videopin_state>();
int col;
int row;
- state->m_bg_tilemap->set_scrollx(0, -8); /* account for delayed loading of shift reg C6 */
+ m_bg_tilemap->set_scrollx(0, -8); /* account for delayed loading of shift reg C6 */
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
for (row = 0; row < 32; row++)
{
for (col = 0; col < 48; col++)
{
- UINT32 offset = state->m_bg_tilemap->memory_index(col, row);
+ UINT32 offset = m_bg_tilemap->memory_index(col, row);
- if (state->m_video_ram[offset] & 0x80) /* ball bit found */
+ if (m_video_ram[offset] & 0x80) /* ball bit found */
{
int x = 8 * col;
int y = 8 * row;
@@ -60,8 +59,8 @@ SCREEN_UPDATE_IND16( videopin )
rectangle rect(x, x + 15, y, y + 15);
rect &= cliprect;
- x -= state->m_ball_x;
- y -= state->m_ball_y;
+ x -= m_ball_x;
+ y -= m_ball_y;
/* ball placement is still 0.5 pixels off but don't tell anyone */
diff --git a/src/mame/video/vigilant.c b/src/mame/video/vigilant.c
index 96eccc339c5..141b69210d2 100644
--- a/src/mame/video/vigilant.c
+++ b/src/mame/video/vigilant.c
@@ -261,10 +261,9 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re
}
}
-SCREEN_UPDATE_IND16( kikcubic )
+UINT32 vigilant_state::screen_update_kikcubic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- vigilant_state *state = screen.machine().driver_data<vigilant_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
int offs;
for (offs = 0; offs < 0x1000; offs += 2)
@@ -286,9 +285,8 @@ SCREEN_UPDATE_IND16( kikcubic )
return 0;
}
-SCREEN_UPDATE_IND16( vigilant )
+UINT32 vigilant_state::screen_update_vigilant(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- vigilant_state *state = screen.machine().driver_data<vigilant_state>();
int i;
/* copy the background palette */
@@ -297,20 +295,20 @@ SCREEN_UPDATE_IND16( vigilant )
int r,g,b;
- r = (state->m_generic_paletteram_8[0x400 + 16 * state->m_rear_color + i] << 3) & 0xFF;
- g = (state->m_generic_paletteram_8[0x500 + 16 * state->m_rear_color + i] << 3) & 0xFF;
- b = (state->m_generic_paletteram_8[0x600 + 16 * state->m_rear_color + i] << 3) & 0xFF;
+ r = (m_generic_paletteram_8[0x400 + 16 * m_rear_color + i] << 3) & 0xFF;
+ g = (m_generic_paletteram_8[0x500 + 16 * m_rear_color + i] << 3) & 0xFF;
+ b = (m_generic_paletteram_8[0x600 + 16 * m_rear_color + i] << 3) & 0xFF;
palette_set_color(screen.machine(),512 + i,MAKE_RGB(r,g,b));
- r = (state->m_generic_paletteram_8[0x400 + 16 * state->m_rear_color + 32 + i] << 3) & 0xFF;
- g = (state->m_generic_paletteram_8[0x500 + 16 * state->m_rear_color + 32 + i] << 3) & 0xFF;
- b = (state->m_generic_paletteram_8[0x600 + 16 * state->m_rear_color + 32 + i] << 3) & 0xFF;
+ r = (m_generic_paletteram_8[0x400 + 16 * m_rear_color + 32 + i] << 3) & 0xFF;
+ g = (m_generic_paletteram_8[0x500 + 16 * m_rear_color + 32 + i] << 3) & 0xFF;
+ b = (m_generic_paletteram_8[0x600 + 16 * m_rear_color + 32 + i] << 3) & 0xFF;
palette_set_color(screen.machine(),512 + 16 + i,MAKE_RGB(r,g,b));
}
- if (state->m_rear_disable) /* opaque foreground */
+ if (m_rear_disable) /* opaque foreground */
{
draw_foreground(screen.machine(),bitmap,cliprect,0,1);
draw_sprites(screen.machine(),bitmap,bottomvisiblearea);
diff --git a/src/mame/video/vindictr.c b/src/mame/video/vindictr.c
index 33dc1b99e69..01eb4b27c51 100644
--- a/src/mame/video/vindictr.c
+++ b/src/mame/video/vindictr.c
@@ -216,15 +216,14 @@ void vindictr_scanline_update(screen_device &screen, int scanline)
*
*************************************/
-SCREEN_UPDATE_IND16( vindictr )
+UINT32 vindictr_state::screen_update_vindictr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- vindictr_state *state = screen.machine().driver_data<vindictr_state>();
atarimo_rect_list rectlist;
bitmap_ind16 *mobitmap;
int x, y, r;
/* draw the playfield */
- state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
/* draw and merge the MO */
mobitmap = atarimo_render(0, cliprect, &rectlist);
@@ -265,7 +264,7 @@ SCREEN_UPDATE_IND16( vindictr )
}
/* add the alpha on top */
- state->m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
/* now go back and process the upper bit of MO priority */
rectlist.rect -= rectlist.numrects;
diff --git a/src/mame/video/volfied.c b/src/mame/video/volfied.c
index 8a7e5227605..b7851e5e261 100644
--- a/src/mame/video/volfied.c
+++ b/src/mame/video/volfied.c
@@ -122,12 +122,11 @@ static void refresh_pixel_layer( running_machine &machine, bitmap_ind16 &bitmap
}
}
-SCREEN_UPDATE_IND16( volfied )
+UINT32 volfied_state::screen_update_volfied(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- volfied_state *state = screen.machine().driver_data<volfied_state>();
screen.machine().priority_bitmap.fill(0, cliprect);
refresh_pixel_layer(screen.machine(), bitmap);
- pc090oj_draw_sprites(state->m_pc090oj, bitmap, cliprect, 0);
+ pc090oj_draw_sprites(m_pc090oj, bitmap, cliprect, 0);
return 0;
}
diff --git a/src/mame/video/vulgus.c b/src/mame/video/vulgus.c
index df8fd908f24..493ebd273f1 100644
--- a/src/mame/video/vulgus.c
+++ b/src/mame/video/vulgus.c
@@ -212,14 +212,13 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re
}
}
-SCREEN_UPDATE_IND16( vulgus )
+UINT32 vulgus_state::screen_update_vulgus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- vulgus_state *state = screen.machine().driver_data<vulgus_state>();
- state->m_bg_tilemap->set_scrollx(0, state->m_scroll_low[1] + 256 * state->m_scroll_high[1]);
- state->m_bg_tilemap->set_scrolly(0, state->m_scroll_low[0] + 256 * state->m_scroll_high[0]);
+ m_bg_tilemap->set_scrollx(0, m_scroll_low[1] + 256 * m_scroll_high[1]);
+ m_bg_tilemap->set_scrolly(0, m_scroll_low[0] + 256 * m_scroll_high[0]);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/video/warpwarp.c b/src/mame/video/warpwarp.c
index 44c5eede81a..fc9846e9c52 100644
--- a/src/mame/video/warpwarp.c
+++ b/src/mame/video/warpwarp.c
@@ -235,11 +235,10 @@ static void draw_ball(running_machine &machine, bitmap_ind16 &bitmap, const rect
}
}
-SCREEN_UPDATE_IND16( geebee )
+UINT32 warpwarp_state::screen_update_geebee(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- warpwarp_state *state = screen.machine().driver_data<warpwarp_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
- draw_ball(screen.machine(), bitmap, cliprect, state->m_ball_pen);
+ draw_ball(screen.machine(), bitmap, cliprect, m_ball_pen);
return 0;
}
diff --git a/src/mame/video/warriorb.c b/src/mame/video/warriorb.c
index df06f51b9c6..a8d0f28ac75 100644
--- a/src/mame/video/warriorb.c
+++ b/src/mame/video/warriorb.c
@@ -115,5 +115,5 @@ static UINT32 update_screen(screen_device &screen, bitmap_ind16 &bitmap, const r
return 0;
}
-SCREEN_UPDATE_IND16( warriorb_left ) { return update_screen(screen, bitmap, cliprect, 40 * 8 * 0, screen.machine().driver_data<warriorb_state>()->m_tc0100scn_1); }
-SCREEN_UPDATE_IND16( warriorb_right ) { return update_screen(screen, bitmap, cliprect, 40 * 8 * 1, screen.machine().driver_data<warriorb_state>()->m_tc0100scn_2); }
+UINT32 warriorb_state::screen_update_warriorb_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 40 * 8 * 0, screen.machine().driver_data<warriorb_state>()->m_tc0100scn_1); }
+UINT32 warriorb_state::screen_update_warriorb_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect){ return update_screen(screen, bitmap, cliprect, 40 * 8 * 1, screen.machine().driver_data<warriorb_state>()->m_tc0100scn_2); }
diff --git a/src/mame/video/wc90.c b/src/mame/video/wc90.c
index 33563faa443..fd5485376c9 100644
--- a/src/mame/video/wc90.c
+++ b/src/mame/video/wc90.c
@@ -335,22 +335,21 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
#undef WC90_DRAW_SPRITE
-SCREEN_UPDATE_IND16( wc90 )
+UINT32 wc90_state::screen_update_wc90(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- wc90_state *state = screen.machine().driver_data<wc90_state>();
- state->m_bg_tilemap->set_scrollx(0,state->m_scroll2xlo[0] + 256 * state->m_scroll2xhi[0]);
- state->m_bg_tilemap->set_scrolly(0,state->m_scroll2ylo[0] + 256 * state->m_scroll2yhi[0]);
- state->m_fg_tilemap->set_scrollx(0,state->m_scroll1xlo[0] + 256 * state->m_scroll1xhi[0]);
- state->m_fg_tilemap->set_scrolly(0,state->m_scroll1ylo[0] + 256 * state->m_scroll1yhi[0]);
- state->m_tx_tilemap->set_scrollx(0,state->m_scroll0xlo[0] + 256 * state->m_scroll0xhi[0]);
- state->m_tx_tilemap->set_scrolly(0,state->m_scroll0ylo[0] + 256 * state->m_scroll0yhi[0]);
+ m_bg_tilemap->set_scrollx(0,m_scroll2xlo[0] + 256 * m_scroll2xhi[0]);
+ m_bg_tilemap->set_scrolly(0,m_scroll2ylo[0] + 256 * m_scroll2yhi[0]);
+ m_fg_tilemap->set_scrollx(0,m_scroll1xlo[0] + 256 * m_scroll1xhi[0]);
+ m_fg_tilemap->set_scrolly(0,m_scroll1ylo[0] + 256 * m_scroll1yhi[0]);
+ m_tx_tilemap->set_scrollx(0,m_scroll0xlo[0] + 256 * m_scroll0xhi[0]);
+ m_tx_tilemap->set_scrolly(0,m_scroll0ylo[0] + 256 * m_scroll0yhi[0]);
// draw_sprites(screen.machine(), bitmap,cliprect, 3 );
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect, 2 );
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect, 1 );
- state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect, 0 );
return 0;
}
diff --git a/src/mame/video/wc90b.c b/src/mame/video/wc90b.c
index d9b2f3b4ff3..9456ea6d7a8 100644
--- a/src/mame/video/wc90b.c
+++ b/src/mame/video/wc90b.c
@@ -125,18 +125,17 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( wc90b )
+UINT32 wc90b_state::screen_update_wc90b(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- wc90b_state *state = screen.machine().driver_data<wc90b_state>();
- state->m_bg_tilemap->set_scrollx(0,8 * (state->m_scroll2x[0] & 0x7f) + 256 - 4 + (state->m_scroll_x_lo[0] & 0x07));
- state->m_bg_tilemap->set_scrolly(0,state->m_scroll2y[0] + 1 + ((state->m_scroll2x[0] & 0x80) ? 256 : 0));
- state->m_fg_tilemap->set_scrollx(0,8 * (state->m_scroll1x[0] & 0x7f) + 256 - 6 + ((state->m_scroll_x_lo[0] & 0x38) >> 3));
- state->m_fg_tilemap->set_scrolly(0,state->m_scroll1y[0] + 1 + ((state->m_scroll1x[0] & 0x80) ? 256 : 0));
-
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->set_scrollx(0,8 * (m_scroll2x[0] & 0x7f) + 256 - 4 + (m_scroll_x_lo[0] & 0x07));
+ m_bg_tilemap->set_scrolly(0,m_scroll2y[0] + 1 + ((m_scroll2x[0] & 0x80) ? 256 : 0));
+ m_fg_tilemap->set_scrollx(0,8 * (m_scroll1x[0] & 0x7f) + 256 - 6 + ((m_scroll_x_lo[0] & 0x38) >> 3));
+ m_fg_tilemap->set_scrolly(0,m_scroll1y[0] + 1 + ((m_scroll1x[0] & 0x80) ? 256 : 0));
+
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect, 1 );
- state->m_tx_tilemap->draw(bitmap, cliprect, 0,0);
+ m_tx_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect, 0 );
return 0;
}
diff --git a/src/mame/video/wecleman.c b/src/mame/video/wecleman.c
index b7db1b9eaaa..745277cd8d0 100644
--- a/src/mame/video/wecleman.c
+++ b/src/mame/video/wecleman.c
@@ -1014,9 +1014,8 @@ VIDEO_START_MEMBER(wecleman_state,hotchase)
Video Updates
***************************************************************************/
-SCREEN_UPDATE_RGB32( wecleman )
+UINT32 wecleman_state::screen_update_wecleman(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- wecleman_state *state = screen.machine().driver_data<wecleman_state>();
const pen_t *mrct;
int video_on;
int fg_x, bg_x, fg_y, bg_y;
@@ -1025,29 +1024,29 @@ SCREEN_UPDATE_RGB32( wecleman )
mrct = screen.machine().pens;
- video_on = state->m_irqctrl & 0x40;
+ video_on = m_irqctrl & 0x40;
- set_led_status(screen.machine(), 0, state->m_selected_ip & 0x04); // Start lamp
+ set_led_status(screen.machine(), 0, m_selected_ip & 0x04); // Start lamp
- fg_y = (state->m_txtram[0x0f24>>1] & (TILEMAP_DIMY - 1));
- bg_y = (state->m_txtram[0x0f26>>1] & (TILEMAP_DIMY - 1));
+ fg_y = (m_txtram[0x0f24>>1] & (TILEMAP_DIMY - 1));
+ bg_y = (m_txtram[0x0f26>>1] & (TILEMAP_DIMY - 1));
- cloud_sx = state->m_txtram[0xfee>>1] + 0xb0;
+ cloud_sx = m_txtram[0xfee>>1] + 0xb0;
cloud_sy = bg_y;
- state->m_bg_tilemap->set_scrolly(0, bg_y -BMP_PAD);
- state->m_fg_tilemap->set_scrolly(0, fg_y -BMP_PAD);
+ m_bg_tilemap->set_scrolly(0, bg_y -BMP_PAD);
+ m_fg_tilemap->set_scrolly(0, fg_y -BMP_PAD);
for (i=0; i<(28<<2); i+=4)
{
- fg_x = state->m_txtram[(i+0xf80)>>1] + (0xb0 -BMP_PAD);
- bg_x = state->m_txtram[(i+0xf82)>>1] + (0xb0 -BMP_PAD);
+ fg_x = m_txtram[(i+0xf80)>>1] + (0xb0 -BMP_PAD);
+ bg_x = m_txtram[(i+0xf82)>>1] + (0xb0 -BMP_PAD);
k = i<<1;
for (j=0; j<8; j++)
{
- state->m_fg_tilemap->set_scrollx((fg_y + k + j) & (TILEMAP_DIMY - 1), fg_x);
- state->m_bg_tilemap->set_scrollx((bg_y + k + j) & (TILEMAP_DIMY - 1), bg_x);
+ m_fg_tilemap->set_scrollx((fg_y + k + j) & (TILEMAP_DIMY - 1), fg_x);
+ m_bg_tilemap->set_scrollx((bg_y + k + j) & (TILEMAP_DIMY - 1), bg_x);
}
}
@@ -1057,16 +1056,16 @@ SCREEN_UPDATE_RGB32( wecleman )
get_sprite_info(screen.machine());
- bitmap.fill(state->m_black_pen, cliprect);
+ bitmap.fill(m_black_pen, cliprect);
/* Draw the road (lines which have priority 0x02) */
if (video_on) wecleman_draw_road(screen.machine(), bitmap, cliprect, 0x02);
/* Draw the background */
- if (video_on) state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (video_on) m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
// draws the cloud layer; needs work
- if (state->m_cloud_visible)
+ if (m_cloud_visible)
{
/* palette hacks! */
((pen_t *)mrct)[0] = ((pen_t *)mrct)[0x40] = ((pen_t *)mrct)[0x200] = ((pen_t *)mrct)[0x205];
@@ -1075,23 +1074,23 @@ SCREEN_UPDATE_RGB32( wecleman )
draw_cloud(
bitmap,
screen.machine().gfx[0],
- state->m_pageram+0x1800,
+ m_pageram+0x1800,
BMP_PAD, BMP_PAD,
41, 20,
cloud_sx, cloud_sy,
6, 5,
- state->m_cloud_blend/BLEND_STEPS, 0);
+ m_cloud_blend/BLEND_STEPS, 0);
- state->m_cloud_blend += state->m_cloud_ds;
+ m_cloud_blend += m_cloud_ds;
- if (state->m_cloud_blend < BLEND_MIN)
- { state->m_cloud_blend = BLEND_MIN; state->m_cloud_ds = 0; *state->m_videostatus |= 1; }
- else if (state->m_cloud_blend > BLEND_MAX)
- { state->m_cloud_blend = BLEND_MAX; state->m_cloud_ds = 0; state->m_cloud_visible = 0; }
+ if (m_cloud_blend < BLEND_MIN)
+ { m_cloud_blend = BLEND_MIN; m_cloud_ds = 0; *m_videostatus |= 1; }
+ else if (m_cloud_blend > BLEND_MAX)
+ { m_cloud_blend = BLEND_MAX; m_cloud_ds = 0; m_cloud_visible = 0; }
}
/* Draw the foreground */
- if (video_on) state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (video_on) m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
/* Draw the road (lines which have priority 0x04) */
if (video_on) wecleman_draw_road(screen.machine(), bitmap,cliprect, 0x04);
@@ -1100,7 +1099,7 @@ SCREEN_UPDATE_RGB32( wecleman )
if (video_on) sprite_draw(screen.machine(), bitmap,cliprect);
/* Draw the text layer */
- if (video_on) state->m_txt_tilemap->draw(bitmap, cliprect, 0, 0);
+ if (video_on) m_txt_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
@@ -1108,20 +1107,19 @@ SCREEN_UPDATE_RGB32( wecleman )
Hot Chase
***************************************************************************/
-SCREEN_UPDATE_IND16( hotchase )
+UINT32 wecleman_state::screen_update_hotchase(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- wecleman_state *state = screen.machine().driver_data<wecleman_state>();
device_t *k051316_1 = screen.machine().device("k051316_1");
device_t *k051316_2 = screen.machine().device("k051316_2");
int video_on;
- video_on = state->m_irqctrl & 0x40;
+ video_on = m_irqctrl & 0x40;
- set_led_status(screen.machine(), 0, state->m_selected_ip & 0x04); // Start lamp
+ set_led_status(screen.machine(), 0, m_selected_ip & 0x04); // Start lamp
get_sprite_info(screen.machine());
- bitmap.fill(state->m_black_pen, cliprect);
+ bitmap.fill(m_black_pen, cliprect);
/* Draw the background */
if (video_on)
diff --git a/src/mame/video/welltris.c b/src/mame/video/welltris.c
index ee35801995d..548da8c5120 100644
--- a/src/mame/video/welltris.c
+++ b/src/mame/video/welltris.c
@@ -233,14 +233,13 @@ static void draw_background(running_machine &machine, bitmap_ind16 &bitmap, cons
}
}
-SCREEN_UPDATE_IND16( welltris )
+UINT32 welltris_state::screen_update_welltris(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- welltris_state *state = screen.machine().driver_data<welltris_state>();
- state->m_char_tilemap->set_scrollx(0, state->m_scrollx);
- state->m_char_tilemap->set_scrolly(0, state->m_scrolly);
+ m_char_tilemap->set_scrollx(0, m_scrollx);
+ m_char_tilemap->set_scrolly(0, m_scrolly);
draw_background(screen.machine(), bitmap, cliprect);
- state->m_char_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_char_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/wgp.c b/src/mame/video/wgp.c
index ee80ce3b7a1..57019d7d448 100644
--- a/src/mame/video/wgp.c
+++ b/src/mame/video/wgp.c
@@ -639,45 +639,44 @@ static void wgp_piv_layer_draw( running_machine &machine, bitmap_ind16 &bitmap,
SCREEN REFRESH
**************************************************************/
-SCREEN_UPDATE_IND16( wgp )
+UINT32 wgp_state::screen_update_wgp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- wgp_state *state = screen.machine().driver_data<wgp_state>();
int i;
UINT8 layer[3];
#ifdef MAME_DEBUG
if (screen.machine().input().code_pressed_once (KEYCODE_V))
{
- state->m_dislayer[0] ^= 1;
- popmessage("piv0: %01x",state->m_dislayer[0]);
+ m_dislayer[0] ^= 1;
+ popmessage("piv0: %01x",m_dislayer[0]);
}
if (screen.machine().input().code_pressed_once (KEYCODE_B))
{
- state->m_dislayer[1] ^= 1;
- popmessage("piv1: %01x",state->m_dislayer[1]);
+ m_dislayer[1] ^= 1;
+ popmessage("piv1: %01x",m_dislayer[1]);
}
if (screen.machine().input().code_pressed_once (KEYCODE_N))
{
- state->m_dislayer[2] ^= 1;
- popmessage("piv2: %01x",state->m_dislayer[2]);
+ m_dislayer[2] ^= 1;
+ popmessage("piv2: %01x",m_dislayer[2]);
}
if (screen.machine().input().code_pressed_once (KEYCODE_M))
{
- state->m_dislayer[3] ^= 1;
- popmessage("TC0100SCN top bg layer: %01x",state->m_dislayer[3]);
+ m_dislayer[3] ^= 1;
+ popmessage("TC0100SCN top bg layer: %01x",m_dislayer[3]);
}
#endif
for (i = 0; i < 3; i++)
{
- state->m_piv_tilemap[i]->set_scrollx(0, state->m_piv_scrollx[i]);
- state->m_piv_tilemap[i]->set_scrolly(0, state->m_piv_scrolly[i]);
+ m_piv_tilemap[i]->set_scrollx(0, m_piv_scrollx[i]);
+ m_piv_tilemap[i]->set_scrolly(0, m_piv_scrolly[i]);
}
- tc0100scn_tilemap_update(state->m_tc0100scn);
+ tc0100scn_tilemap_update(m_tc0100scn);
bitmap.fill(0, cliprect);
@@ -685,7 +684,7 @@ SCREEN_UPDATE_IND16( wgp )
layer[1] = 1;
layer[2] = 2;
- if (state->m_piv_ctrl_reg == 0x2d)
+ if (m_piv_ctrl_reg == 0x2d)
{
layer[1] = 2;
layer[2] = 1;
@@ -694,40 +693,40 @@ SCREEN_UPDATE_IND16( wgp )
/* We should draw the following on a 1024x1024 bitmap... */
#ifdef MAME_DEBUG
- if (state->m_dislayer[layer[0]] == 0)
+ if (m_dislayer[layer[0]] == 0)
#endif
wgp_piv_layer_draw(screen.machine(), bitmap, cliprect, layer[0], TILEMAP_DRAW_OPAQUE, 1);
#ifdef MAME_DEBUG
- if (state->m_dislayer[layer[1]] == 0)
+ if (m_dislayer[layer[1]] == 0)
#endif
wgp_piv_layer_draw(screen.machine(), bitmap, cliprect, layer[1], 0, 2);
#ifdef MAME_DEBUG
- if (state->m_dislayer[layer[2]] == 0)
+ if (m_dislayer[layer[2]] == 0)
#endif
wgp_piv_layer_draw(screen.machine(), bitmap, cliprect, layer[2], 0, 4);
draw_sprites(screen.machine(), bitmap, cliprect, 16);
/* ... then here we should apply rotation from wgp_sate_ctrl[] to the bitmap before we draw the TC0100SCN layers on it */
- layer[0] = tc0100scn_bottomlayer(state->m_tc0100scn);
+ layer[0] = tc0100scn_bottomlayer(m_tc0100scn);
layer[1] = layer[0] ^ 1;
layer[2] = 2;
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[0], 0, 0);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[0], 0, 0);
#ifdef MAME_DEBUG
- if (state->m_dislayer[3] == 0)
+ if (m_dislayer[3] == 0)
#endif
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[1], 0, 0);
- tc0100scn_tilemap_draw(state->m_tc0100scn, bitmap, cliprect, layer[2], 0, 0);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[1], 0, 0);
+ tc0100scn_tilemap_draw(m_tc0100scn, bitmap, cliprect, layer[2], 0, 0);
#if 0
{
char buf[80];
- sprintf(buf,"wgp_piv_ctrl_reg: %04x y zoom: %04x %04x %04x",state->m_piv_ctrl_reg,
- state->m_piv_zoom[0],state->m_piv_zoom[1],state->m_piv_zoom[2]);
+ sprintf(buf,"wgp_piv_ctrl_reg: %04x y zoom: %04x %04x %04x",m_piv_ctrl_reg,
+ m_piv_zoom[0],m_piv_zoom[1],m_piv_zoom[2]);
popmessage(buf);
}
#endif
diff --git a/src/mame/video/williams.c b/src/mame/video/williams.c
index 1aec3a74466..a782de07f8f 100644
--- a/src/mame/video/williams.c
+++ b/src/mame/video/williams.c
@@ -168,20 +168,19 @@ VIDEO_START_MEMBER(williams_state,williams2)
*
*************************************/
-SCREEN_UPDATE_RGB32( williams )
+UINT32 williams_state::screen_update_williams(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- williams_state *state = screen.machine().driver_data<williams_state>();
rgb_t pens[16];
int x, y;
/* precompute the palette */
for (x = 0; x < 16; x++)
- pens[x] = state->m_palette_lookup[state->m_generic_paletteram_8[x]];
+ pens[x] = m_palette_lookup[m_generic_paletteram_8[x]];
/* loop over rows */
for (y = cliprect.min_y; y <= cliprect.max_y; y++)
{
- UINT8 *source = &state->m_videoram[y];
+ UINT8 *source = &m_videoram[y];
UINT32 *dest = &bitmap.pix32(y);
/* loop over columns */
@@ -196,30 +195,29 @@ SCREEN_UPDATE_RGB32( williams )
}
-SCREEN_UPDATE_RGB32( blaster )
+UINT32 williams_state::screen_update_blaster(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- williams_state *state = screen.machine().driver_data<williams_state>();
rgb_t pens[16];
int x, y;
/* precompute the palette */
for (x = 0; x < 16; x++)
- pens[x] = state->m_palette_lookup[state->m_generic_paletteram_8[x]];
+ pens[x] = m_palette_lookup[m_generic_paletteram_8[x]];
/* if we're blitting from the top, start with a 0 for color 0 */
- if (cliprect.min_y == screen.visible_area().min_y || !(state->m_blaster_video_control & 1))
- state->m_blaster_color0 = state->m_palette_lookup[state->m_blaster_palette_0[0] ^ 0xff];
+ if (cliprect.min_y == screen.visible_area().min_y || !(m_blaster_video_control & 1))
+ m_blaster_color0 = m_palette_lookup[m_blaster_palette_0[0] ^ 0xff];
/* loop over rows */
for (y = cliprect.min_y; y <= cliprect.max_y; y++)
{
- int erase_behind = state->m_blaster_video_control & state->m_blaster_scanline_control[y] & 2;
- UINT8 *source = &state->m_videoram[y];
+ int erase_behind = m_blaster_video_control & m_blaster_scanline_control[y] & 2;
+ UINT8 *source = &m_videoram[y];
UINT32 *dest = &bitmap.pix32(y);
/* latch a new color0 pen? */
- if (state->m_blaster_video_control & state->m_blaster_scanline_control[y] & 1)
- state->m_blaster_color0 = state->m_palette_lookup[state->m_blaster_palette_0[y] ^ 0xff];
+ if (m_blaster_video_control & m_blaster_scanline_control[y] & 1)
+ m_blaster_color0 = m_palette_lookup[m_blaster_palette_0[y] ^ 0xff];
/* loop over columns */
for (x = cliprect.min_x & ~1; x <= cliprect.max_x; x += 2)
@@ -231,31 +229,30 @@ SCREEN_UPDATE_RGB32( blaster )
source[(x/2) * 256] = 0;
/* now draw */
- dest[x+0] = (pix & 0xf0) ? pens[pix >> 4] : state->m_blaster_color0 | pens[0];
- dest[x+1] = (pix & 0x0f) ? pens[pix & 0x0f] : state->m_blaster_color0 | pens[0];
+ dest[x+0] = (pix & 0xf0) ? pens[pix >> 4] : m_blaster_color0 | pens[0];
+ dest[x+1] = (pix & 0x0f) ? pens[pix & 0x0f] : m_blaster_color0 | pens[0];
}
}
return 0;
}
-SCREEN_UPDATE_RGB32( williams2 )
+UINT32 williams_state::screen_update_williams2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- williams_state *state = screen.machine().driver_data<williams_state>();
rgb_t pens[16];
int x, y;
/* draw the background */
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
/* fetch the relevant pens */
for (x = 1; x < 16; x++)
- pens[x] = palette_get_color(screen.machine(), state->m_williams2_fg_color * 16 + x);
+ pens[x] = palette_get_color(screen.machine(), m_williams2_fg_color * 16 + x);
/* loop over rows */
for (y = cliprect.min_y; y <= cliprect.max_y; y++)
{
- UINT8 *source = &state->m_videoram[y];
+ UINT8 *source = &m_videoram[y];
UINT32 *dest = &bitmap.pix32(y);
/* loop over columns */
diff --git a/src/mame/video/wiping.c b/src/mame/video/wiping.c
index f92bce300f0..c5d83d26998 100644
--- a/src/mame/video/wiping.c
+++ b/src/mame/video/wiping.c
@@ -86,10 +86,9 @@ WRITE8_MEMBER(wiping_state::wiping_flipscreen_w)
}
-SCREEN_UPDATE_IND16( wiping )
+UINT32 wiping_state::screen_update_wiping(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- wiping_state *state = screen.machine().driver_data<wiping_state>();
- UINT8 *spriteram = state->m_spriteram;
+ UINT8 *spriteram = m_spriteram;
int offs;
for (offs = 0x3ff; offs > 0; offs--)
@@ -115,16 +114,16 @@ SCREEN_UPDATE_IND16( wiping )
sy = my - 2;
}
- if (state->m_flipscreen)
+ if (m_flipscreen)
{
sx = 35 - sx;
sy = 27 - sy;
}
drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],
- state->m_videoram[offs],
- state->m_colorram[offs] & 0x3f,
- state->m_flipscreen,state->m_flipscreen,
+ m_videoram[offs],
+ m_colorram[offs] & 0x3f,
+ m_flipscreen,m_flipscreen,
sx*8,sy*8);
}
@@ -142,7 +141,7 @@ SCREEN_UPDATE_IND16( wiping )
flipy = spriteram[offs] & 0x40;
flipx = spriteram[offs] & 0x80;
- if (state->m_flipscreen)
+ if (m_flipscreen)
{
sy = 208 - sy;
flipx = !flipx;
@@ -160,7 +159,7 @@ SCREEN_UPDATE_IND16( wiping )
/* redraw high priority chars */
for (offs = 0x3ff; offs > 0; offs--)
{
- if (state->m_colorram[offs] & 0x80)
+ if (m_colorram[offs] & 0x80)
{
int mx,my,sx,sy;
@@ -183,16 +182,16 @@ SCREEN_UPDATE_IND16( wiping )
sy = my - 2;
}
- if (state->m_flipscreen)
+ if (m_flipscreen)
{
sx = 35 - sx;
sy = 27 - sy;
}
drawgfx_opaque(bitmap,cliprect,screen.machine().gfx[0],
- state->m_videoram[offs],
- state->m_colorram[offs] & 0x3f,
- state->m_flipscreen,state->m_flipscreen,
+ m_videoram[offs],
+ m_colorram[offs] & 0x3f,
+ m_flipscreen,m_flipscreen,
sx*8,sy*8);
}
}
@@ -207,7 +206,7 @@ SCREEN_UPDATE_IND16( wiping )
for (j = 0;j < 8;j++)
{
char buf[40];
- sprintf(buf,"%01x",state->m_soundregs[i*8+j]&0xf);
+ sprintf(buf,"%01x",m_soundregs[i*8+j]&0xf);
ui_draw_text(buf,j*10,i*8);
}
}
@@ -217,7 +216,7 @@ SCREEN_UPDATE_IND16( wiping )
for (j = 0;j < 8;j++)
{
char buf[40];
- sprintf(buf,"%01x",state->m_soundregs[0x2000+i*8+j]>>4);
+ sprintf(buf,"%01x",m_soundregs[0x2000+i*8+j]>>4);
ui_draw_text(buf,j*10,80+i*8);
}
}
diff --git a/src/mame/video/wiz.c b/src/mame/video/wiz.c
index df558670b99..edd82a1473e 100644
--- a/src/mame/video/wiz.c
+++ b/src/mame/video/wiz.c
@@ -201,45 +201,42 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,
}
-SCREEN_UPDATE_IND16( kungfut )
+UINT32 wiz_state::screen_update_kungfut(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- wiz_state *state = screen.machine().driver_data<wiz_state>();
- bitmap.fill(state->m_bgpen, cliprect);
- draw_background(screen.machine(), bitmap, cliprect, 2 + state->m_char_bank[0] , 0);
+ bitmap.fill(m_bgpen, cliprect);
+ draw_background(screen.machine(), bitmap, cliprect, 2 + m_char_bank[0] , 0);
draw_foreground(screen.machine(), bitmap, cliprect, 0);
- draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram2, 4);
- draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram , 5);
+ draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram2, 4);
+ draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram , 5);
return 0;
}
-SCREEN_UPDATE_IND16( wiz )
+UINT32 wiz_state::screen_update_wiz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- wiz_state *state = screen.machine().driver_data<wiz_state>();
int bank;
- bitmap.fill(state->m_bgpen, cliprect);
- draw_background(screen.machine(), bitmap, cliprect, 2 + ((state->m_char_bank[0] << 1) | state->m_char_bank[1]), 0);
+ bitmap.fill(m_bgpen, cliprect);
+ draw_background(screen.machine(), bitmap, cliprect, 2 + ((m_char_bank[0] << 1) | m_char_bank[1]), 0);
draw_foreground(screen.machine(), bitmap, cliprect, 0);
const rectangle spritevisiblearea(2*8, 32*8-1, 2*8, 30*8-1);
const rectangle spritevisibleareaflipx(0*8, 30*8-1, 2*8, 30*8-1);
- const rectangle &visible_area = state->m_flipx ? spritevisibleareaflipx : spritevisiblearea;
+ const rectangle &visible_area = m_flipx ? spritevisibleareaflipx : spritevisiblearea;
- bank = 7 + *state->m_sprite_bank;
+ bank = 7 + *m_sprite_bank;
- draw_sprites(screen.machine(), bitmap, visible_area, state->m_spriteram2, 6);
- draw_sprites(screen.machine(), bitmap, visible_area, state->m_spriteram , bank);
+ draw_sprites(screen.machine(), bitmap, visible_area, m_spriteram2, 6);
+ draw_sprites(screen.machine(), bitmap, visible_area, m_spriteram , bank);
return 0;
}
-SCREEN_UPDATE_IND16( stinger )
+UINT32 wiz_state::screen_update_stinger(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- wiz_state *state = screen.machine().driver_data<wiz_state>();
- bitmap.fill(state->m_bgpen, cliprect);
- draw_background(screen.machine(), bitmap, cliprect, 2 + state->m_char_bank[0], 1);
+ bitmap.fill(m_bgpen, cliprect);
+ draw_background(screen.machine(), bitmap, cliprect, 2 + m_char_bank[0], 1);
draw_foreground(screen.machine(), bitmap, cliprect, 1);
- draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram2, 4);
- draw_sprites(screen.machine(), bitmap, cliprect, state->m_spriteram , 5);
+ draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram2, 4);
+ draw_sprites(screen.machine(), bitmap, cliprect, m_spriteram , 5);
return 0;
}
diff --git a/src/mame/video/wolfpack.c b/src/mame/video/wolfpack.c
index dcba9c42837..7784d99e956 100644
--- a/src/mame/video/wolfpack.c
+++ b/src/mame/video/wolfpack.c
@@ -237,34 +237,33 @@ static void draw_water(colortable_t *colortable, bitmap_ind16 &bitmap, const rec
}
-SCREEN_UPDATE_IND16( wolfpack )
+UINT32 wolfpack_state::screen_update_wolfpack(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- wolfpack_state *state = screen.machine().driver_data<wolfpack_state>();
int i;
int j;
UINT8 color = 0x48;
- if (state->m_ship_size & 0x10) color += 0x13;
- if (state->m_ship_size & 0x20) color += 0x22;
- if (state->m_ship_size & 0x40) color += 0x3a;
- if (state->m_ship_size & 0x80) color += 0x48;
+ if (m_ship_size & 0x10) color += 0x13;
+ if (m_ship_size & 0x20) color += 0x22;
+ if (m_ship_size & 0x40) color += 0x3a;
+ if (m_ship_size & 0x80) color += 0x48;
colortable_palette_set_color(screen.machine().colortable, 3, MAKE_RGB(color,color,color));
colortable_palette_set_color(screen.machine().colortable, 7, MAKE_RGB(color < 0xb8 ? color + 0x48 : 0xff,
color < 0xb8 ? color + 0x48 : 0xff,
color < 0xb8 ? color + 0x48 : 0xff));
- bitmap.fill(state->m_video_invert, cliprect);
+ bitmap.fill(m_video_invert, cliprect);
for (i = 0; i < 8; i++)
for (j = 0; j < 32; j++)
{
- int code = state->m_alpha_num_ram[32 * i + j];
+ int code = m_alpha_num_ram[32 * i + j];
drawgfx_opaque(bitmap, cliprect,
screen.machine().gfx[0],
code,
- state->m_video_invert,
+ m_video_invert,
0, 0,
16 * j,
192 + 8 * i);
@@ -278,37 +277,36 @@ SCREEN_UPDATE_IND16( wolfpack )
}
-SCREEN_VBLANK( wolfpack )
+void wolfpack_state::screen_eof_wolfpack(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- wolfpack_state *state = screen.machine().driver_data<wolfpack_state>();
int x;
int y;
- state->m_helper.fill(0);
+ m_helper.fill(0);
- draw_ship(screen.machine(), state->m_helper, state->m_helper.cliprect());
+ draw_ship(screen.machine(), m_helper, m_helper.cliprect());
- for (y = 128; y < 224 - state->m_torpedo_v; y++)
+ for (y = 128; y < 224 - m_torpedo_v; y++)
{
- int x1 = 248 - state->m_torpedo_h - 1;
- int x2 = 248 - state->m_torpedo_h + 1;
+ int x1 = 248 - m_torpedo_h - 1;
+ int x2 = 248 - m_torpedo_h + 1;
for (x = 2 * x1; x < 2 * x2; x++)
{
- if (x < 0 || x >= state->m_helper.width())
+ if (x < 0 || x >= m_helper.width())
continue;
- if (y < 0 || y >= state->m_helper.height())
+ if (y < 0 || y >= m_helper.height())
continue;
- if (state->m_helper.pix16(y, x))
- state->m_collision = 1;
+ if (m_helper.pix16(y, x))
+ m_collision = 1;
}
}
- state->m_current_index += 0x300 * 262;
+ m_current_index += 0x300 * 262;
}
}
diff --git a/src/mame/video/wrally.c b/src/mame/video/wrally.c
index 9efc4ecfb27..e6ed72a0dfb 100644
--- a/src/mame/video/wrally.c
+++ b/src/mame/video/wrally.c
@@ -173,33 +173,32 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
***************************************************************************/
-SCREEN_UPDATE_IND16( wrally )
+UINT32 wrally_state::screen_update_wrally(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- wrally_state *state = screen.machine().driver_data<wrally_state>();
/* set scroll registers */
- if (!state->flip_screen()) {
- state->m_pant[0]->set_scrolly(0, state->m_vregs[0]);
- state->m_pant[0]->set_scrollx(0, state->m_vregs[1]+4);
- state->m_pant[1]->set_scrolly(0, state->m_vregs[2]);
- state->m_pant[1]->set_scrollx(0, state->m_vregs[3]);
+ if (!flip_screen()) {
+ m_pant[0]->set_scrolly(0, m_vregs[0]);
+ m_pant[0]->set_scrollx(0, m_vregs[1]+4);
+ m_pant[1]->set_scrolly(0, m_vregs[2]);
+ m_pant[1]->set_scrollx(0, m_vregs[3]);
} else {
- state->m_pant[0]->set_scrolly(0, 248 - state->m_vregs[0]);
- state->m_pant[0]->set_scrollx(0, 1024 - state->m_vregs[1] - 4);
- state->m_pant[1]->set_scrolly(0, 248 - state->m_vregs[2]);
- state->m_pant[1]->set_scrollx(0, 1024 - state->m_vregs[3]);
+ m_pant[0]->set_scrolly(0, 248 - m_vregs[0]);
+ m_pant[0]->set_scrollx(0, 1024 - m_vregs[1] - 4);
+ m_pant[1]->set_scrolly(0, 248 - m_vregs[2]);
+ m_pant[1]->set_scrollx(0, 1024 - m_vregs[3]);
}
/* draw tilemaps + sprites */
- state->m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
- state->m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0) | TILEMAP_DRAW_LAYER0,0);
- state->m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0) | TILEMAP_DRAW_LAYER1,0);
+ m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
+ m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0) | TILEMAP_DRAW_LAYER0,0);
+ m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(0) | TILEMAP_DRAW_LAYER1,0);
- state->m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1),0);
- state->m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1) | TILEMAP_DRAW_LAYER0,0);
+ m_pant[1]->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1),0);
+ m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1) | TILEMAP_DRAW_LAYER0,0);
draw_sprites(screen.machine(),bitmap,cliprect,0);
- state->m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1) | TILEMAP_DRAW_LAYER1,0);
+ m_pant[0]->draw(bitmap, cliprect, TILEMAP_DRAW_CATEGORY(1) | TILEMAP_DRAW_LAYER1,0);
draw_sprites(screen.machine(),bitmap,cliprect,1);
diff --git a/src/mame/video/wwfsstar.c b/src/mame/video/wwfsstar.c
index ff60c5348c1..5cc90721934 100644
--- a/src/mame/video/wwfsstar.c
+++ b/src/mame/video/wwfsstar.c
@@ -215,16 +215,15 @@ void wwfsstar_state::video_start()
m_fg0_tilemap->set_transparent_pen(0);
}
-SCREEN_UPDATE_IND16( wwfsstar )
+UINT32 wwfsstar_state::screen_update_wwfsstar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- wwfsstar_state *state = screen.machine().driver_data<wwfsstar_state>();
- state->m_bg0_tilemap->set_scrolly(0, state->m_scrolly );
- state->m_bg0_tilemap->set_scrollx(0, state->m_scrollx );
+ m_bg0_tilemap->set_scrolly(0, m_scrolly );
+ m_bg0_tilemap->set_scrollx(0, m_scrollx );
- state->m_bg0_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg0_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect );
- state->m_fg0_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg0_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/video/wwfwfest.c b/src/mame/video/wwfwfest.c
index 6c624af76d8..2d95b09836b 100644
--- a/src/mame/video/wwfwfest.c
+++ b/src/mame/video/wwfwfest.c
@@ -247,42 +247,41 @@ VIDEO_START_MEMBER(wwfwfest_state,wwfwfstb)
m_bg1_dx[1] = -2;
}
-SCREEN_UPDATE_IND16( wwfwfest )
+UINT32 wwfwfest_state::screen_update_wwfwfest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- wwfwfest_state *state = screen.machine().driver_data<wwfwfest_state>();
- if (state->m_pri == 0x0078) {
- state->m_bg0_tilemap->set_scrolly(0, state->m_bg0_scrolly );
- state->m_bg0_tilemap->set_scrollx(0, state->m_bg0_scrollx + state->m_bg0_dx);
- state->m_bg1_tilemap->set_scrolly(0, state->m_bg1_scrolly );
- state->m_bg1_tilemap->set_scrollx(0, state->m_bg1_scrollx + state->m_bg1_dx[0]);
+ if (m_pri == 0x0078) {
+ m_bg0_tilemap->set_scrolly(0, m_bg0_scrolly );
+ m_bg0_tilemap->set_scrollx(0, m_bg0_scrollx + m_bg0_dx);
+ m_bg1_tilemap->set_scrolly(0, m_bg1_scrolly );
+ m_bg1_tilemap->set_scrollx(0, m_bg1_scrollx + m_bg1_dx[0]);
} else {
- state->m_bg1_tilemap->set_scrolly(0, state->m_bg0_scrolly );
- state->m_bg1_tilemap->set_scrollx(0, state->m_bg0_scrollx + state->m_bg1_dx[1]);
- state->m_bg0_tilemap->set_scrolly(0, state->m_bg1_scrolly );
- state->m_bg0_tilemap->set_scrollx(0, state->m_bg1_scrollx + state->m_bg0_dx);
+ m_bg1_tilemap->set_scrolly(0, m_bg0_scrolly );
+ m_bg1_tilemap->set_scrollx(0, m_bg0_scrollx + m_bg1_dx[1]);
+ m_bg0_tilemap->set_scrolly(0, m_bg1_scrolly );
+ m_bg0_tilemap->set_scrollx(0, m_bg1_scrollx + m_bg0_dx);
}
/* todo : which bits of pri are significant to the order */
- if (state->m_pri == 0x007b) {
- state->m_bg0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
- state->m_bg1_tilemap->draw(bitmap, cliprect, 0,0);
+ if (m_pri == 0x007b) {
+ m_bg0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
+ m_bg1_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect);
- state->m_fg0_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg0_tilemap->draw(bitmap, cliprect, 0,0);
}
- if (state->m_pri == 0x007c) {
- state->m_bg0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
+ if (m_pri == 0x007c) {
+ m_bg0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
draw_sprites(screen.machine(), bitmap,cliprect);
- state->m_bg1_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_fg0_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg1_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg0_tilemap->draw(bitmap, cliprect, 0,0);
}
- if (state->m_pri == 0x0078) {
- state->m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
- state->m_bg0_tilemap->draw(bitmap, cliprect, 0,0);
+ if (m_pri == 0x0078) {
+ m_bg1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
+ m_bg0_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect);
- state->m_fg0_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg0_tilemap->draw(bitmap, cliprect, 0,0);
}
return 0;
}
diff --git a/src/mame/video/xain.c b/src/mame/video/xain.c
index 56697d5911b..1f4c2ffc942 100644
--- a/src/mame/video/xain.c
+++ b/src/mame/video/xain.c
@@ -212,58 +212,57 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re
}
}
-SCREEN_UPDATE_IND16( xain )
+UINT32 xain_state::screen_update_xain(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- xain_state *state = screen.machine().driver_data<xain_state>();
- switch (state->m_pri&0x7)
+ switch (m_pri&0x7)
{
case 0:
- state->m_bgram0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
- state->m_bgram1_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bgram0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
+ m_bgram1_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect);
- state->m_char_tilemap->draw(bitmap, cliprect, 0,0);
+ m_char_tilemap->draw(bitmap, cliprect, 0,0);
break;
case 1:
- state->m_bgram1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
- state->m_bgram0_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bgram1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
+ m_bgram0_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect);
- state->m_char_tilemap->draw(bitmap, cliprect, 0,0);
+ m_char_tilemap->draw(bitmap, cliprect, 0,0);
break;
case 2:
- state->m_char_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
- state->m_bgram0_tilemap->draw(bitmap, cliprect, 0,0);
+ m_char_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
+ m_bgram0_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect);
- state->m_bgram1_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bgram1_tilemap->draw(bitmap, cliprect, 0,0);
break;
case 3:
- state->m_char_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
- state->m_bgram1_tilemap->draw(bitmap, cliprect, 0,0);
+ m_char_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
+ m_bgram1_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect);
- state->m_bgram0_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bgram0_tilemap->draw(bitmap, cliprect, 0,0);
break;
case 4:
- state->m_bgram0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
- state->m_char_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bgram0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
+ m_char_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect);
- state->m_bgram1_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bgram1_tilemap->draw(bitmap, cliprect, 0,0);
break;
case 5:
- state->m_bgram1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
- state->m_char_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bgram1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
+ m_char_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect);
- state->m_bgram0_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bgram0_tilemap->draw(bitmap, cliprect, 0,0);
break;
case 6:
- state->m_bgram0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
+ m_bgram0_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
draw_sprites(screen.machine(), bitmap,cliprect);
- state->m_bgram1_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_char_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bgram1_tilemap->draw(bitmap, cliprect, 0,0);
+ m_char_tilemap->draw(bitmap, cliprect, 0,0);
break;
case 7:
- state->m_bgram1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
+ m_bgram1_tilemap->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE,0);
draw_sprites(screen.machine(), bitmap,cliprect);
- state->m_bgram0_tilemap->draw(bitmap, cliprect, 0,0);
- state->m_char_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bgram0_tilemap->draw(bitmap, cliprect, 0,0);
+ m_char_tilemap->draw(bitmap, cliprect, 0,0);
break;
}
return 0;
diff --git a/src/mame/video/xevious.c b/src/mame/video/xevious.c
index facbd62a49b..197178c33fc 100644
--- a/src/mame/video/xevious.c
+++ b/src/mame/video/xevious.c
@@ -495,12 +495,11 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re
}
-SCREEN_UPDATE_IND16( xevious )
+UINT32 xevious_state::screen_update_xevious(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- xevious_state *state = screen.machine().driver_data<xevious_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
draw_sprites(screen.machine(), bitmap,cliprect);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0,0);
return 0;
}
diff --git a/src/mame/video/xexex.c b/src/mame/video/xexex.c
index c9d3aea3471..17bef519986 100644
--- a/src/mame/video/xexex.c
+++ b/src/mame/video/xexex.c
@@ -45,40 +45,39 @@ void xexex_state::video_start()
k056832_set_layer_offs(m_k056832, 3, 6, 16);
}
-SCREEN_UPDATE_RGB32( xexex )
+UINT32 xexex_state::screen_update_xexex(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
static const int K053251_CI[4] = { K053251_CI1, K053251_CI2, K053251_CI3, K053251_CI4 };
- xexex_state *state = screen.machine().driver_data<xexex_state>();
int layer[4];
int bg_colorbase, new_colorbase, plane, alpha;
- state->m_sprite_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI0);
- bg_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI1);
- state->m_layer_colorbase[0] = 0x70;
+ m_sprite_colorbase = k053251_get_palette_index(m_k053251, K053251_CI0);
+ bg_colorbase = k053251_get_palette_index(m_k053251, K053251_CI1);
+ m_layer_colorbase[0] = 0x70;
for (plane = 1; plane < 4; plane++)
{
- new_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI[plane]);
- if (state->m_layer_colorbase[plane] != new_colorbase)
+ new_colorbase = k053251_get_palette_index(m_k053251, K053251_CI[plane]);
+ if (m_layer_colorbase[plane] != new_colorbase)
{
- state->m_layer_colorbase[plane] = new_colorbase;
- k056832_mark_plane_dirty(state->m_k056832, plane);
+ m_layer_colorbase[plane] = new_colorbase;
+ k056832_mark_plane_dirty(m_k056832, plane);
}
}
layer[0] = 1;
- state->m_layerpri[0] = k053251_get_priority(state->m_k053251, K053251_CI2);
+ m_layerpri[0] = k053251_get_priority(m_k053251, K053251_CI2);
layer[1] = 2;
- state->m_layerpri[1] = k053251_get_priority(state->m_k053251, K053251_CI3);
+ m_layerpri[1] = k053251_get_priority(m_k053251, K053251_CI3);
layer[2] = 3;
- state->m_layerpri[2] = k053251_get_priority(state->m_k053251, K053251_CI4);
+ m_layerpri[2] = k053251_get_priority(m_k053251, K053251_CI4);
layer[3] = -1;
- state->m_layerpri[3] = k053251_get_priority(state->m_k053251, K053251_CI1);
+ m_layerpri[3] = k053251_get_priority(m_k053251, K053251_CI1);
- konami_sortlayers4(layer, state->m_layerpri);
+ konami_sortlayers4(layer, m_layerpri);
- k054338_update_all_shadows(state->m_k054338, 0);
- k054338_fill_backcolor(state->m_k054338, bitmap, 0);
+ k054338_update_all_shadows(m_k054338, 0);
+ k054338_fill_backcolor(m_k054338, bitmap, 0);
screen.machine().priority_bitmap.fill(0, cliprect);
@@ -86,26 +85,26 @@ SCREEN_UPDATE_RGB32( xexex )
{
if (layer[plane] < 0)
{
- state->m_k053250->draw(bitmap, cliprect, bg_colorbase, 0, 1 << plane);
+ m_k053250->draw(bitmap, cliprect, bg_colorbase, 0, 1 << plane);
}
- else if (!state->m_cur_alpha || layer[plane] != 1)
+ else if (!m_cur_alpha || layer[plane] != 1)
{
- k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, layer[plane], 0, 1 << plane);
+ k056832_tilemap_draw(m_k056832, bitmap, cliprect, layer[plane], 0, 1 << plane);
}
}
- k053247_sprites_draw(state->m_k053246, bitmap, cliprect);
+ k053247_sprites_draw(m_k053246, bitmap, cliprect);
- if (state->m_cur_alpha)
+ if (m_cur_alpha)
{
- alpha = k054338_set_alpha_level(state->m_k054338, 1);
+ alpha = k054338_set_alpha_level(m_k054338, 1);
if (alpha > 0)
{
- k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, 1, TILEMAP_DRAW_ALPHA(alpha), 0);
+ k056832_tilemap_draw(m_k056832, bitmap, cliprect, 1, TILEMAP_DRAW_ALPHA(alpha), 0);
}
}
- k056832_tilemap_draw(state->m_k056832, bitmap, cliprect, 0, 0, 0);
+ k056832_tilemap_draw(m_k056832, bitmap, cliprect, 0, 0, 0);
return 0;
}
diff --git a/src/mame/video/xmen.c b/src/mame/video/xmen.c
index bac7d67c705..c071ce5a7a9 100644
--- a/src/mame/video/xmen.c
+++ b/src/mame/video/xmen.c
@@ -70,51 +70,49 @@ VIDEO_START_MEMBER(xmen_state,xmen6p)
***************************************************************************/
-SCREEN_UPDATE_IND16( xmen )
+UINT32 xmen_state::screen_update_xmen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- xmen_state *state = screen.machine().driver_data<xmen_state>();
int layer[3], bg_colorbase;
- bg_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI4);
- state->m_sprite_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI1);
- state->m_layer_colorbase[0] = k053251_get_palette_index(state->m_k053251, K053251_CI3);
- state->m_layer_colorbase[1] = k053251_get_palette_index(state->m_k053251, K053251_CI0);
- state->m_layer_colorbase[2] = k053251_get_palette_index(state->m_k053251, K053251_CI2);
+ bg_colorbase = k053251_get_palette_index(m_k053251, K053251_CI4);
+ m_sprite_colorbase = k053251_get_palette_index(m_k053251, K053251_CI1);
+ m_layer_colorbase[0] = k053251_get_palette_index(m_k053251, K053251_CI3);
+ m_layer_colorbase[1] = k053251_get_palette_index(m_k053251, K053251_CI0);
+ m_layer_colorbase[2] = k053251_get_palette_index(m_k053251, K053251_CI2);
- k052109_tilemap_update(state->m_k052109);
+ k052109_tilemap_update(m_k052109);
layer[0] = 0;
- state->m_layerpri[0] = k053251_get_priority(state->m_k053251, K053251_CI3);
+ m_layerpri[0] = k053251_get_priority(m_k053251, K053251_CI3);
layer[1] = 1;
- state->m_layerpri[1] = k053251_get_priority(state->m_k053251, K053251_CI0);
+ m_layerpri[1] = k053251_get_priority(m_k053251, K053251_CI0);
layer[2] = 2;
- state->m_layerpri[2] = k053251_get_priority(state->m_k053251, K053251_CI2);
+ m_layerpri[2] = k053251_get_priority(m_k053251, K053251_CI2);
- konami_sortlayers3(layer, state->m_layerpri);
+ konami_sortlayers3(layer, m_layerpri);
screen.machine().priority_bitmap.fill(0, cliprect);
/* note the '+1' in the background color!!! */
bitmap.fill(16 * bg_colorbase + 1, cliprect);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, layer[0], 0, 1);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, layer[1], 0, 2);
- k052109_tilemap_draw(state->m_k052109, bitmap, cliprect, layer[2], 0, 4);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, layer[0], 0, 1);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, layer[1], 0, 2);
+ k052109_tilemap_draw(m_k052109, bitmap, cliprect, layer[2], 0, 4);
/* this isn't supported anymore and it is unsure if still needed; keeping here for reference
pdrawgfx_shadow_lowpri = 1; fix shadows of boulders in front of feet */
- k053247_sprites_draw(state->m_k053246, bitmap, cliprect);
+ k053247_sprites_draw(m_k053246, bitmap, cliprect);
return 0;
}
-SCREEN_UPDATE_IND16( xmen6p_left )
+UINT32 xmen_state::screen_update_xmen6p_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- xmen_state *state = screen.machine().driver_data<xmen_state>();
int x, y;
for(y = 0; y < 32 * 8; y++)
{
UINT16* line_dest = &bitmap.pix16(y);
- UINT16* line_src = &state->m_screen_left->pix16(y);
+ UINT16* line_src = &m_screen_left->pix16(y);
for (x = 12 * 8; x < 52 * 8; x++)
line_dest[x] = line_src[x];
@@ -123,15 +121,14 @@ SCREEN_UPDATE_IND16( xmen6p_left )
return 0;
}
-SCREEN_UPDATE_IND16( xmen6p_right )
+UINT32 xmen_state::screen_update_xmen6p_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- xmen_state *state = screen.machine().driver_data<xmen_state>();
int x, y;
for(y = 0; y < 32 * 8; y++)
{
UINT16* line_dest = &bitmap.pix16(y);
- UINT16* line_src = &state->m_screen_right->pix16(y);
+ UINT16* line_src = &m_screen_right->pix16(y);
for (x = 12 * 8; x < 52 * 8; x++)
line_dest[x] = line_src[x];
@@ -141,12 +138,11 @@ SCREEN_UPDATE_IND16( xmen6p_right )
}
/* my lefts and rights are mixed up in several places.. */
-SCREEN_VBLANK( xmen6p )
+void xmen_state::screen_eof_xmen6p(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- xmen_state *state = screen.machine().driver_data<xmen_state>();
int layer[3], bg_colorbase;
bitmap_ind16 * renderbitmap;
rectangle cliprect;
@@ -163,7 +159,7 @@ SCREEN_VBLANK( xmen6p )
{
/* copy the desired spritelist to the chip */
- memcpy(state->m_k053247_ram, state->m_xmen6p_spriteramright, 0x1000);
+ memcpy(m_k053247_ram, m_xmen6p_spriteramright, 0x1000);
/* we write the entire content of the tileram to the chip to ensure
everything gets marked as dirty and the desired tilemap is rendered
@@ -172,16 +168,16 @@ SCREEN_VBLANK( xmen6p )
for (offset = 0; offset < (0xc000 / 2); offset++)
{
// K052109_lsb_w
- k052109_w(state->m_k052109, space, offset, state->m_xmen6p_tilemapright[offset] & 0x00ff);
+ k052109_w(m_k052109, space, offset, m_xmen6p_tilemapright[offset] & 0x00ff);
}
- renderbitmap = state->m_screen_right;
+ renderbitmap = m_screen_right;
}
else
{
/* copy the desired spritelist to the chip */
- memcpy(state->m_k053247_ram, state->m_xmen6p_spriteramleft, 0x1000);
+ memcpy(m_k053247_ram, m_xmen6p_spriteramleft, 0x1000);
/* we write the entire content of the tileram to the chip to ensure
everything gets marked as dirty and the desired tilemap is rendered
@@ -191,40 +187,40 @@ SCREEN_VBLANK( xmen6p )
for (offset = 0; offset < (0xc000 / 2); offset++)
{
// K052109_lsb_w
- k052109_w(state->m_k052109, space, offset, state->m_xmen6p_tilemapleft[offset] & 0x00ff);
+ k052109_w(m_k052109, space, offset, m_xmen6p_tilemapleft[offset] & 0x00ff);
}
- renderbitmap = state->m_screen_left;
+ renderbitmap = m_screen_left;
}
- bg_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI4);
- state->m_sprite_colorbase = k053251_get_palette_index(state->m_k053251, K053251_CI1);
- state->m_layer_colorbase[0] = k053251_get_palette_index(state->m_k053251, K053251_CI3);
- state->m_layer_colorbase[1] = k053251_get_palette_index(state->m_k053251, K053251_CI0);
- state->m_layer_colorbase[2] = k053251_get_palette_index(state->m_k053251, K053251_CI2);
+ bg_colorbase = k053251_get_palette_index(m_k053251, K053251_CI4);
+ m_sprite_colorbase = k053251_get_palette_index(m_k053251, K053251_CI1);
+ m_layer_colorbase[0] = k053251_get_palette_index(m_k053251, K053251_CI3);
+ m_layer_colorbase[1] = k053251_get_palette_index(m_k053251, K053251_CI0);
+ m_layer_colorbase[2] = k053251_get_palette_index(m_k053251, K053251_CI2);
- k052109_tilemap_update(state->m_k052109);
+ k052109_tilemap_update(m_k052109);
layer[0] = 0;
- state->m_layerpri[0] = k053251_get_priority(state->m_k053251, K053251_CI3);
+ m_layerpri[0] = k053251_get_priority(m_k053251, K053251_CI3);
layer[1] = 1;
- state->m_layerpri[1] = k053251_get_priority(state->m_k053251, K053251_CI0);
+ m_layerpri[1] = k053251_get_priority(m_k053251, K053251_CI0);
layer[2] = 2;
- state->m_layerpri[2] = k053251_get_priority(state->m_k053251, K053251_CI2);
+ m_layerpri[2] = k053251_get_priority(m_k053251, K053251_CI2);
- konami_sortlayers3(layer, state->m_layerpri);
+ konami_sortlayers3(layer, m_layerpri);
screen.machine().priority_bitmap.fill(0, cliprect);
/* note the '+1' in the background color!!! */
renderbitmap->fill(16 * bg_colorbase + 1, cliprect);
- k052109_tilemap_draw(state->m_k052109, *renderbitmap, cliprect, layer[0], 0, 1);
- k052109_tilemap_draw(state->m_k052109, *renderbitmap, cliprect, layer[1], 0, 2);
- k052109_tilemap_draw(state->m_k052109, *renderbitmap, cliprect, layer[2], 0, 4);
+ k052109_tilemap_draw(m_k052109, *renderbitmap, cliprect, layer[0], 0, 1);
+ k052109_tilemap_draw(m_k052109, *renderbitmap, cliprect, layer[1], 0, 2);
+ k052109_tilemap_draw(m_k052109, *renderbitmap, cliprect, layer[2], 0, 4);
/* this isn't supported anymore and it is unsure if still needed; keeping here for reference
pdrawgfx_shadow_lowpri = 1; fix shadows of boulders in front of feet */
- k053247_sprites_draw(state->m_k053246, *renderbitmap, cliprect);
+ k053247_sprites_draw(m_k053246, *renderbitmap, cliprect);
}
}
diff --git a/src/mame/video/xorworld.c b/src/mame/video/xorworld.c
index 8707fe03714..d28596db00e 100644
--- a/src/mame/video/xorworld.c
+++ b/src/mame/video/xorworld.c
@@ -111,10 +111,9 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
}
}
-SCREEN_UPDATE_IND16( xorworld )
+UINT32 xorworld_state::screen_update_xorworld(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- xorworld_state *state = screen.machine().driver_data<xorworld_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/xxmissio.c b/src/mame/video/xxmissio.c
index d2ce281c21b..ac470deaa58 100644
--- a/src/mame/video/xxmissio.c
+++ b/src/mame/video/xxmissio.c
@@ -130,18 +130,17 @@ static void draw_sprites(bitmap_ind16 &bitmap, const rectangle &cliprect, gfx_el
}
-SCREEN_UPDATE_IND16( xxmissio )
+UINT32 xxmissio_state::screen_update_xxmissio(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- xxmissio_state *state = screen.machine().driver_data<xxmissio_state>();
screen.machine().tilemap().mark_all_dirty();
- screen.machine().tilemap().set_flip_all(state->m_flipscreen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
+ screen.machine().tilemap().set_flip_all(m_flipscreen ? TILEMAP_FLIPX | TILEMAP_FLIPY : 0);
- state->m_bg_tilemap->set_scrollx(0, state->m_xscroll * 2);
- state->m_bg_tilemap->set_scrolly(0, state->m_yscroll);
+ m_bg_tilemap->set_scrollx(0, m_xscroll * 2);
+ m_bg_tilemap->set_scrolly(0, m_yscroll);
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(bitmap, cliprect, screen.machine().gfx[1]);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/xybots.c b/src/mame/video/xybots.c
index 05b31aa909f..e5500275902 100644
--- a/src/mame/video/xybots.c
+++ b/src/mame/video/xybots.c
@@ -101,15 +101,14 @@ VIDEO_START_MEMBER(xybots_state,xybots)
*
*************************************/
-SCREEN_UPDATE_IND16( xybots )
+UINT32 xybots_state::screen_update_xybots(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- xybots_state *state = screen.machine().driver_data<xybots_state>();
atarimo_rect_list rectlist;
bitmap_ind16 *mobitmap;
int x, y, r;
/* draw the playfield */
- state->m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_playfield_tilemap->draw(bitmap, cliprect, 0, 0);
/* draw and merge the MO */
mobitmap = atarimo_render(0, cliprect, &rectlist);
@@ -163,6 +162,6 @@ SCREEN_UPDATE_IND16( xybots )
}
/* add the alpha on top */
- state->m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_alpha_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/xyonix.c b/src/mame/video/xyonix.c
index 556b8d71369..15d2fe0c22c 100644
--- a/src/mame/video/xyonix.c
+++ b/src/mame/video/xyonix.c
@@ -54,10 +54,9 @@ void xyonix_state::video_start()
m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(xyonix_state::get_xyonix_tile_info),this), TILEMAP_SCAN_ROWS, 4, 8, 80, 32);
}
-SCREEN_UPDATE_IND16(xyonix)
+UINT32 xyonix_state::screen_update_xyonix(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- xyonix_state *state = screen.machine().driver_data<xyonix_state>();
- state->m_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/yiear.c b/src/mame/video/yiear.c
index c93cd698222..6b06e6a4c91 100644
--- a/src/mame/video/yiear.c
+++ b/src/mame/video/yiear.c
@@ -138,11 +138,10 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
}
}
-SCREEN_UPDATE_IND16( yiear )
+UINT32 yiear_state::screen_update_yiear(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- yiear_state *state = screen.machine().driver_data<yiear_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/yunsun16.c b/src/mame/video/yunsun16.c
index 93375d1fb7d..497bce486b2 100644
--- a/src/mame/video/yunsun16.c
+++ b/src/mame/video/yunsun16.c
@@ -195,33 +195,32 @@ static void draw_sprites( running_machine &machine, bitmap_ind16 &bitmap, const
***************************************************************************/
-SCREEN_UPDATE_IND16( yunsun16 )
+UINT32 yunsun16_state::screen_update_yunsun16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- yunsun16_state *state = screen.machine().driver_data<yunsun16_state>();
- state->m_tilemap_0->set_scrollx(0, state->m_scrollram_0[0]);
- state->m_tilemap_0->set_scrolly(0, state->m_scrollram_0[1]);
+ m_tilemap_0->set_scrollx(0, m_scrollram_0[0]);
+ m_tilemap_0->set_scrolly(0, m_scrollram_0[1]);
- state->m_tilemap_1->set_scrollx(0, state->m_scrollram_1[0]);
- state->m_tilemap_1->set_scrolly(0, state->m_scrollram_1[1]);
+ m_tilemap_1->set_scrollx(0, m_scrollram_1[0]);
+ m_tilemap_1->set_scrolly(0, m_scrollram_1[1]);
- //popmessage("%04X", *state->m_priorityram);
+ //popmessage("%04X", *m_priorityram);
screen.machine().priority_bitmap.fill(0, cliprect);
- if ((*state->m_priorityram & 0x0c) == 4)
+ if ((*m_priorityram & 0x0c) == 4)
{
/* The color of the this layer's transparent pen goes below everything */
- state->m_tilemap_0->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- state->m_tilemap_0->draw(bitmap, cliprect, 0, 1);
- state->m_tilemap_1->draw(bitmap, cliprect, 0, 2);
+ m_tilemap_0->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ m_tilemap_0->draw(bitmap, cliprect, 0, 1);
+ m_tilemap_1->draw(bitmap, cliprect, 0, 2);
}
- else if ((*state->m_priorityram & 0x0c) == 8)
+ else if ((*m_priorityram & 0x0c) == 8)
{
/* The color of the this layer's transparent pen goes below everything */
- state->m_tilemap_1->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
- state->m_tilemap_1->draw(bitmap, cliprect, 0, 1);
- state->m_tilemap_0->draw(bitmap, cliprect, 0, 2);
+ m_tilemap_1->draw(bitmap, cliprect, TILEMAP_DRAW_OPAQUE, 0);
+ m_tilemap_1->draw(bitmap, cliprect, 0, 1);
+ m_tilemap_0->draw(bitmap, cliprect, 0, 2);
}
draw_sprites(screen.machine(), bitmap, cliprect);
diff --git a/src/mame/video/yunsung8.c b/src/mame/video/yunsung8.c
index e9feeabfa26..4670190c9e4 100644
--- a/src/mame/video/yunsung8.c
+++ b/src/mame/video/yunsung8.c
@@ -188,10 +188,9 @@ void yunsung8_state::video_start()
***************************************************************************/
-SCREEN_UPDATE_IND16( yunsung8 )
+UINT32 yunsung8_state::screen_update_yunsung8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- yunsung8_state *state = screen.machine().driver_data<yunsung8_state>();
- int layers_ctrl = (~state->m_layers_ctrl) >> 4;
+ int layers_ctrl = (~m_layers_ctrl) >> 4;
#ifdef MAME_DEBUG
if (screen.machine().input().code_pressed(KEYCODE_Z))
@@ -204,12 +203,12 @@ if (screen.machine().input().code_pressed(KEYCODE_Z))
#endif
if (layers_ctrl & 1)
- state->m_tilemap_0->draw(bitmap, cliprect, 0, 0);
+ m_tilemap_0->draw(bitmap, cliprect, 0, 0);
else
bitmap.fill(0, cliprect);
if (layers_ctrl & 2)
- state->m_tilemap_1->draw(bitmap, cliprect, 0, 0);
+ m_tilemap_1->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mame/video/zac2650.c b/src/mame/video/zac2650.c
index 04c3534b7d0..907903e41e8 100644
--- a/src/mame/video/zac2650.c
+++ b/src/mame/video/zac2650.c
@@ -201,10 +201,9 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
// if(SpriteCollision(machine, 2,4)) state->m_CollisionSprite |= 0x01; /* Not Used */
}
-SCREEN_UPDATE_IND16( tinvader )
+UINT32 zac2650_state::screen_update_tinvader(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- zac2650_state *state = screen.machine().driver_data<zac2650_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
draw_sprites(screen.machine(), bitmap, cliprect);
return 0;
}
diff --git a/src/mame/video/zaccaria.c b/src/mame/video/zaccaria.c
index f606f43a5b3..453566bc7da 100644
--- a/src/mame/video/zaccaria.c
+++ b/src/mame/video/zaccaria.c
@@ -241,16 +241,15 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap,const re
}
}
-SCREEN_UPDATE_IND16( zaccaria )
+UINT32 zaccaria_state::screen_update_zaccaria(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- zaccaria_state *state = screen.machine().driver_data<zaccaria_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0,0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0,0);
// 3 layers of sprites, each with their own palette and priorities
// Not perfect yet, does spriteram(1) layer have a priority bit somewhere?
- draw_sprites(screen.machine(),bitmap,cliprect,state->m_spriteram2,2,1);
- draw_sprites(screen.machine(),bitmap,cliprect,state->m_spriteram,1,0);
- draw_sprites(screen.machine(),bitmap,cliprect,state->m_spriteram2+0x20,0,1);
+ draw_sprites(screen.machine(),bitmap,cliprect,m_spriteram2,2,1);
+ draw_sprites(screen.machine(),bitmap,cliprect,m_spriteram,1,0);
+ draw_sprites(screen.machine(),bitmap,cliprect,m_spriteram2+0x20,0,1);
return 0;
}
diff --git a/src/mame/video/zaxxon.c b/src/mame/video/zaxxon.c
index 0fbfe975500..e34a38c3711 100644
--- a/src/mame/video/zaxxon.c
+++ b/src/mame/video/zaxxon.c
@@ -460,45 +460,41 @@ static void draw_sprites(running_machine &machine, bitmap_ind16 &bitmap, const r
*
*************************************/
-SCREEN_UPDATE_IND16( zaxxon )
+UINT32 zaxxon_state::screen_update_zaxxon(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- zaxxon_state *state = screen.machine().driver_data<zaxxon_state>();
draw_background(screen.machine(), bitmap, cliprect, TRUE);
draw_sprites(screen.machine(), bitmap, cliprect, 0x140, 0x180);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( futspy )
+UINT32 zaxxon_state::screen_update_futspy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- zaxxon_state *state = screen.machine().driver_data<zaxxon_state>();
draw_background(screen.machine(), bitmap, cliprect, TRUE);
draw_sprites(screen.machine(), bitmap, cliprect, 0x180, 0x180);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( razmataz )
+UINT32 zaxxon_state::screen_update_razmataz(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- zaxxon_state *state = screen.machine().driver_data<zaxxon_state>();
draw_background(screen.machine(), bitmap, cliprect, FALSE);
draw_sprites(screen.machine(), bitmap, cliprect, 0x140, 0x180);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
-SCREEN_UPDATE_IND16( congo )
+UINT32 zaxxon_state::screen_update_congo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- zaxxon_state *state = screen.machine().driver_data<zaxxon_state>();
draw_background(screen.machine(), bitmap, cliprect, TRUE);
draw_sprites(screen.machine(), bitmap, cliprect, 0x280, 0x180);
- state->m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_fg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mess/drivers/a51xx.c b/src/mess/drivers/a51xx.c
index 868135dac7c..5de04fb26c5 100644
--- a/src/mess/drivers/a51xx.c
+++ b/src/mess/drivers/a51xx.c
@@ -23,6 +23,8 @@ public:
virtual void video_start();
DECLARE_MACHINE_RESET(a5130);
DECLARE_VIDEO_START(a5130);
+ UINT32 screen_update_a5120(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_a5130(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -62,7 +64,7 @@ void a51xx_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( a5120 )
+UINT32 a51xx_state::screen_update_a5120(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -81,7 +83,7 @@ VIDEO_START_MEMBER(a51xx_state,a5130)
{
}
-static SCREEN_UPDATE_IND16( a5130 )
+UINT32 a51xx_state::screen_update_a5130(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -117,7 +119,7 @@ static MACHINE_CONFIG_START( a5120, a51xx_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(a5120)
+ MCFG_SCREEN_UPDATE_DRIVER(a51xx_state, screen_update_a5120)
MCFG_GFXDECODE(a51xx)
MCFG_PALETTE_LENGTH(2)
@@ -135,7 +137,7 @@ static MACHINE_CONFIG_DERIVED( a5130, a5120 )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(a5130)
+ MCFG_SCREEN_UPDATE_DRIVER(a51xx_state, screen_update_a5130)
MCFG_VIDEO_START_OVERRIDE(a51xx_state,a5130)
MACHINE_CONFIG_END
diff --git a/src/mess/drivers/a7150.c b/src/mess/drivers/a7150.c
index b4ef32ad738..adf62789a01 100644
--- a/src/mess/drivers/a7150.c
+++ b/src/mess/drivers/a7150.c
@@ -20,6 +20,7 @@ public:
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_a7150(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -42,7 +43,7 @@ void a7150_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( a7150 )
+UINT32 a7150_state::screen_update_a7150(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -59,7 +60,7 @@ static MACHINE_CONFIG_START( a7150, a7150_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(a7150)
+ MCFG_SCREEN_UPDATE_DRIVER(a7150_state, screen_update_a7150)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/a7800.c b/src/mess/drivers/a7800.c
index 6643305ddef..bd37c089338 100644
--- a/src/mess/drivers/a7800.c
+++ b/src/mess/drivers/a7800.c
@@ -262,7 +262,7 @@ static MACHINE_CONFIG_START( a7800_ntsc, a7800_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640,262)
MCFG_SCREEN_VISIBLE_AREA(0,319,25,45+204)
- MCFG_SCREEN_UPDATE_STATIC(a7800)
+ MCFG_SCREEN_UPDATE_DRIVER(a7800_state, screen_update_a7800)
MCFG_PALETTE_LENGTH(ARRAY_LENGTH(a7800_palette))
diff --git a/src/mess/drivers/ac1.c b/src/mess/drivers/ac1.c
index 7c076870148..b7955daa34d 100644
--- a/src/mess/drivers/ac1.c
+++ b/src/mess/drivers/ac1.c
@@ -134,7 +134,7 @@ static MACHINE_CONFIG_START( ac1, ac1_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(64*6, 16*8)
MCFG_SCREEN_VISIBLE_AREA(0, 64*6-1, 0, 16*8-1)
- MCFG_SCREEN_UPDATE_STATIC(ac1)
+ MCFG_SCREEN_UPDATE_DRIVER(ac1_state, screen_update_ac1)
MCFG_GFXDECODE( ac1 )
@@ -157,7 +157,7 @@ static MACHINE_CONFIG_DERIVED( ac1_32, ac1 )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_SIZE(64*6, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 64*6-1, 0, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(ac1_32)
+ MCFG_SCREEN_UPDATE_DRIVER(ac1_state, screen_update_ac1_32)
MACHINE_CONFIG_END
/* ROM definition */
diff --git a/src/mess/drivers/ami1200.c b/src/mess/drivers/ami1200.c
index 97720df08b6..42862f776a2 100644
--- a/src/mess/drivers/ami1200.c
+++ b/src/mess/drivers/ami1200.c
@@ -301,7 +301,7 @@ static MACHINE_CONFIG_START( a1200n, ami1200_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(512*2, 312)
MCFG_SCREEN_VISIBLE_AREA((129-8-8)*2, (449+8-1+8)*2, 44-8, 300+8-1)
- MCFG_SCREEN_UPDATE_STATIC(amiga_aga)
+ MCFG_SCREEN_UPDATE_DRIVER(ami1200_state, screen_update_amiga_aga)
MCFG_VIDEO_START_OVERRIDE(ami1200_state,amiga_aga)
diff --git a/src/mess/drivers/amiga.c b/src/mess/drivers/amiga.c
index 3f689dd2867..240a465167f 100644
--- a/src/mess/drivers/amiga.c
+++ b/src/mess/drivers/amiga.c
@@ -397,7 +397,7 @@ static MACHINE_CONFIG_START( ntsc, amiga_state )
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_SCREEN_SIZE(228*4, 262)
MCFG_SCREEN_VISIBLE_AREA(214, (228*4)-1, 34, 262-1)
- MCFG_SCREEN_UPDATE_STATIC(amiga)
+ MCFG_SCREEN_UPDATE_DRIVER(amiga_state, screen_update_amiga)
MCFG_PALETTE_LENGTH(4096)
MCFG_PALETTE_INIT_OVERRIDE(amiga_state, amiga )
diff --git a/src/mess/drivers/amstrad.c b/src/mess/drivers/amstrad.c
index 00353b6c64e..5a3bca79f59 100644
--- a/src/mess/drivers/amstrad.c
+++ b/src/mess/drivers/amstrad.c
@@ -891,8 +891,8 @@ static MACHINE_CONFIG_START( amstrad, amstrad_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS( XTAL_16MHz, 1024, 32, 32 + 640 + 64, 312, 56 + 15, 200 + 15 )
- MCFG_SCREEN_UPDATE_STATIC(amstrad)
- MCFG_SCREEN_VBLANK_STATIC(amstrad)
+ MCFG_SCREEN_UPDATE_DRIVER(amstrad_state, screen_update_amstrad)
+ MCFG_SCREEN_VBLANK_DRIVER(amstrad_state, screen_eof_amstrad)
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
@@ -957,8 +957,8 @@ static MACHINE_CONFIG_START( cpcplus, amstrad_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS( ( XTAL_40MHz * 2 ) / 5, 1024, 32, 32 + 640 + 64, 312, 56 + 15, 200 + 15 )
- MCFG_SCREEN_UPDATE_STATIC(amstrad)
- MCFG_SCREEN_VBLANK_STATIC(amstrad)
+ MCFG_SCREEN_UPDATE_DRIVER(amstrad_state, screen_update_amstrad)
+ MCFG_SCREEN_VBLANK_DRIVER(amstrad_state, screen_eof_amstrad)
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
@@ -1015,8 +1015,8 @@ static MACHINE_CONFIG_START( gx4000, amstrad_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS( ( XTAL_40MHz * 2 ) / 5, 1024, 32, 32 + 640 + 64, 312, 56 + 15, 200 + 15 )
- MCFG_SCREEN_UPDATE_STATIC(amstrad)
- MCFG_SCREEN_VBLANK_STATIC(amstrad)
+ MCFG_SCREEN_UPDATE_DRIVER(amstrad_state, screen_update_amstrad)
+ MCFG_SCREEN_VBLANK_DRIVER(amstrad_state, screen_eof_amstrad)
MCFG_VIDEO_ATTRIBUTES(VIDEO_ALWAYS_UPDATE)
diff --git a/src/mess/drivers/apexc.c b/src/mess/drivers/apexc.c
index acae1e12d0a..a4abc82eba8 100644
--- a/src/mess/drivers/apexc.c
+++ b/src/mess/drivers/apexc.c
@@ -31,6 +31,7 @@ public:
virtual void machine_start();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_apexc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -591,18 +592,17 @@ static void apexc_draw_string(running_machine &machine, bitmap_ind16 &bitmap, co
}
-static SCREEN_UPDATE_IND16( apexc )
+UINT32 apexc_state::screen_update_apexc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- apexc_state *state = screen.machine().driver_data<apexc_state>();
int i;
char the_char;
- bitmap.fill(0, /*machine.visible_area*/panel_window);
+ bitmap.fill(0, /*machine().visible_area*/panel_window);
apexc_draw_string(screen.machine(), bitmap, "power", 8, 0, 0);
apexc_draw_string(screen.machine(), bitmap, "running", 8, 8, 0);
apexc_draw_string(screen.machine(), bitmap, "data :", 0, 24, 0);
- copybitmap(bitmap, *state->m_bitmap, 0, 0, 0, 0, teletyper_window);
+ copybitmap(bitmap, *m_bitmap, 0, 0, 0, 0, teletyper_window);
apexc_draw_led(bitmap, 0, 0, 1);
@@ -611,7 +611,7 @@ static SCREEN_UPDATE_IND16( apexc )
for (i=0; i<32; i++)
{
- apexc_draw_led(bitmap, i*8, 32, (state->m_panel_data_reg << i) & 0x80000000UL);
+ apexc_draw_led(bitmap, i*8, 32, (m_panel_data_reg << i) & 0x80000000UL);
the_char = '0' + ((i + 1) % 10);
apexc_draw_char(screen.machine(), bitmap, the_char, i*8, 40, 0);
if (((i + 1) % 10) == 0)
@@ -879,7 +879,7 @@ static MACHINE_CONFIG_START( apexc, apexc_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(256, 192)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 192-1)
- MCFG_SCREEN_UPDATE_STATIC(apexc)
+ MCFG_SCREEN_UPDATE_DRIVER(apexc_state, screen_update_apexc)
MCFG_GFXDECODE(apexc)
MCFG_PALETTE_LENGTH(APEXC_PALETTE_SIZE)
diff --git a/src/mess/drivers/apogee.c b/src/mess/drivers/apogee.c
index 29024e8b3e1..17fe0d78a6f 100644
--- a/src/mess/drivers/apogee.c
+++ b/src/mess/drivers/apogee.c
@@ -178,7 +178,7 @@ static MACHINE_CONFIG_START( apogee, apogee_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(78*6, 30*10)
MCFG_SCREEN_VISIBLE_AREA(0, 78*6-1, 0, 30*10-1)
- MCFG_SCREEN_UPDATE_STATIC(radio86)
+ MCFG_SCREEN_UPDATE_DRIVER(radio86_state, screen_update_radio86)
MCFG_GFXDECODE(apogee)
MCFG_PALETTE_LENGTH(3)
diff --git a/src/mess/drivers/apple1.c b/src/mess/drivers/apple1.c
index cc01b9f9cdf..032a51ec53d 100644
--- a/src/mess/drivers/apple1.c
+++ b/src/mess/drivers/apple1.c
@@ -297,7 +297,7 @@ static MACHINE_CONFIG_START( apple1, apple1_state )
overscan here. */
MCFG_SCREEN_SIZE(40 * 7, 24 * 8)
MCFG_SCREEN_VISIBLE_AREA(0, 40 * 7 - 1, 0, 24 * 8 - 1)
- MCFG_SCREEN_UPDATE_STATIC(apple1)
+ MCFG_SCREEN_UPDATE_DRIVER(apple1_state, screen_update_apple1)
MCFG_GFXDECODE(apple1)
diff --git a/src/mess/drivers/apple2.c b/src/mess/drivers/apple2.c
index 60b7ea91a53..4cfb3d84112 100644
--- a/src/mess/drivers/apple2.c
+++ b/src/mess/drivers/apple2.c
@@ -652,7 +652,7 @@ static MACHINE_CONFIG_START( apple2_common, apple2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(280*2, 192)
MCFG_SCREEN_VISIBLE_AREA(0, (280*2)-1,0,192-1)
- MCFG_SCREEN_UPDATE_STATIC(apple2)
+ MCFG_SCREEN_UPDATE_DRIVER(apple2_state, screen_update_apple2)
MCFG_PALETTE_LENGTH(ARRAY_LENGTH(apple2_palette))
MCFG_PALETTE_INIT_OVERRIDE(apple2_state,apple2)
diff --git a/src/mess/drivers/apple2gs.c b/src/mess/drivers/apple2gs.c
index e3dbb12c39d..9fd8360c0aa 100644
--- a/src/mess/drivers/apple2gs.c
+++ b/src/mess/drivers/apple2gs.c
@@ -243,7 +243,7 @@ static MACHINE_CONFIG_START( apple2gs, apple2gs_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(704, 262) // 640+32+32 for the borders
MCFG_SCREEN_VISIBLE_AREA(0,703,0,230)
- MCFG_SCREEN_UPDATE_STATIC( apple2gs )
+ MCFG_SCREEN_UPDATE_DRIVER(apple2gs_state, screen_update_apple2gs)
MCFG_PALETTE_LENGTH( 16+256 )
MCFG_GFXDECODE( apple2gs )
diff --git a/src/mess/drivers/apple3.c b/src/mess/drivers/apple3.c
index ebf0c6bf209..6ff4fbeedd8 100644
--- a/src/mess/drivers/apple3.c
+++ b/src/mess/drivers/apple3.c
@@ -82,7 +82,7 @@ static MACHINE_CONFIG_START( apple3, apple3_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(280*2, 192)
MCFG_SCREEN_VISIBLE_AREA(0, (280*2)-1,0,192-1)
- MCFG_SCREEN_UPDATE_STATIC( apple3 )
+ MCFG_SCREEN_UPDATE_DRIVER(apple3_state, screen_update_apple3)
MCFG_PALETTE_LENGTH(16)
MCFG_PALETTE_INIT_OVERRIDE(apple3_state, apple2 )
diff --git a/src/mess/drivers/apricot.c b/src/mess/drivers/apricot.c
index 7b4b6e7dda8..04009cec4c7 100644
--- a/src/mess/drivers/apricot.c
+++ b/src/mess/drivers/apricot.c
@@ -64,6 +64,7 @@ public:
required_shared_ptr<UINT16> m_screen_buffer;
DECLARE_DRIVER_INIT(apricot);
virtual void palette_init();
+ UINT32 screen_update_apricot(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -183,12 +184,11 @@ static const wd17xx_interface apricot_wd17xx_intf =
VIDEO EMULATION
***************************************************************************/
-static SCREEN_UPDATE_RGB32( apricot )
+UINT32 apricot_state::screen_update_apricot(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- apricot_state *state = screen.machine().driver_data<apricot_state>();
- if (!state->m_display_on)
- state->m_crtc->screen_update( screen, bitmap, cliprect);
+ if (!m_display_on)
+ m_crtc->screen_update( screen, bitmap, cliprect);
else
bitmap.fill(0, cliprect);
@@ -376,7 +376,7 @@ static MACHINE_CONFIG_START( apricot, apricot_state )
MCFG_SCREEN_SIZE(800, 400)
MCFG_SCREEN_VISIBLE_AREA(0, 800-1, 0, 400-1)
MCFG_SCREEN_REFRESH_RATE(72)
- MCFG_SCREEN_UPDATE_STATIC(apricot)
+ MCFG_SCREEN_UPDATE_DRIVER(apricot_state, screen_update_apricot)
MCFG_PALETTE_LENGTH(3)
/* sound hardware */
diff --git a/src/mess/drivers/aquarius.c b/src/mess/drivers/aquarius.c
index a92000c1088..c75118658f8 100644
--- a/src/mess/drivers/aquarius.c
+++ b/src/mess/drivers/aquarius.c
@@ -405,7 +405,7 @@ static MACHINE_CONFIG_START( aquarius, aquarius_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2800))
MCFG_SCREEN_SIZE(40 * 8, 25 * 8)
MCFG_SCREEN_VISIBLE_AREA(0, 40 * 8 - 1, 0 * 8, 25 * 8 - 1)
- MCFG_SCREEN_UPDATE_STATIC( aquarius )
+ MCFG_SCREEN_UPDATE_DRIVER(aquarius_state, screen_update_aquarius)
MCFG_GFXDECODE( aquarius )
MCFG_PALETTE_LENGTH(512)
diff --git a/src/mess/drivers/arcadia.c b/src/mess/drivers/arcadia.c
index b288f87ac5d..219c6e10d44 100644
--- a/src/mess/drivers/arcadia.c
+++ b/src/mess/drivers/arcadia.c
@@ -539,7 +539,7 @@ static MACHINE_CONFIG_START( arcadia, arcadia_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(128+2*XPOS, 262)
MCFG_SCREEN_VISIBLE_AREA(0, 2*XPOS+128-1, 0, 262-1)
- MCFG_SCREEN_UPDATE_STATIC( arcadia )
+ MCFG_SCREEN_UPDATE_DRIVER(arcadia_state, screen_update_arcadia)
MCFG_GFXDECODE( arcadia )
MCFG_PALETTE_LENGTH(ARRAY_LENGTH(arcadia_palette))
diff --git a/src/mess/drivers/astrocde.c b/src/mess/drivers/astrocde.c
index 8ff035f8e75..51a135c190e 100644
--- a/src/mess/drivers/astrocde.c
+++ b/src/mess/drivers/astrocde.c
@@ -248,7 +248,7 @@ static MACHINE_CONFIG_START( astrocde, astrocde_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(ASTROCADE_CLOCK, 455, 0, 352, 262, 0, 240)
- MCFG_SCREEN_UPDATE_STATIC(astrocde)
+ MCFG_SCREEN_UPDATE_DRIVER(astrocde_state, screen_update_astrocde)
MCFG_PALETTE_LENGTH(512)
diff --git a/src/mess/drivers/b2m.c b/src/mess/drivers/b2m.c
index 578b216186b..198c19c54b4 100644
--- a/src/mess/drivers/b2m.c
+++ b/src/mess/drivers/b2m.c
@@ -213,7 +213,7 @@ static MACHINE_CONFIG_START( b2m, b2m_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(384, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(b2m)
+ MCFG_SCREEN_UPDATE_DRIVER(b2m_state, screen_update_b2m)
MCFG_PALETTE_LENGTH(4)
diff --git a/src/mess/drivers/bcs3.c b/src/mess/drivers/bcs3.c
index da8f8f78352..25d8b6dc83e 100644
--- a/src/mess/drivers/bcs3.c
+++ b/src/mess/drivers/bcs3.c
@@ -31,6 +31,10 @@ public:
DECLARE_READ8_MEMBER(bcs3_keyboard_r);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_bcs3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_bcs3a(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_bcs3b(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_bcs3c(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
READ8_MEMBER( bcs3_state::bcs3_keyboard_r )
@@ -216,9 +220,8 @@ void bcs3_state::video_start()
m_p_chargen = memregion("chargen")->base();
}
-static SCREEN_UPDATE_IND16( bcs3 )
+UINT32 bcs3_state::screen_update_bcs3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bcs3_state *state = screen.machine().driver_data<bcs3_state>();
UINT8 y,ra,chr,gfx,rat;
UINT16 sy=0,ma=0,x;
@@ -233,10 +236,10 @@ static SCREEN_UPDATE_IND16( bcs3 )
{
if (ra < 8)
{
- chr = state->m_p_videoram[x] & 0x7f;
+ chr = m_p_videoram[x] & 0x7f;
/* get pattern of pixels for that character scanline */
- gfx = state->m_p_chargen[(chr<<3) | rat ] ^ 0xff;
+ gfx = m_p_chargen[(chr<<3) | rat ] ^ 0xff;
}
else
gfx = 0xff;
@@ -259,12 +262,11 @@ static SCREEN_UPDATE_IND16( bcs3 )
/* This has 100 lines of screen data. I'm assuming that it only shows a portion of this,
with the cursor always in sight. */
-static SCREEN_UPDATE_IND16( bcs3a )
+UINT32 bcs3_state::screen_update_bcs3a(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bcs3_state *state = screen.machine().driver_data<bcs3_state>();
UINT8 y,ra,chr,gfx,rat;
UINT16 sy=0,ma=128,x;
- UINT16 cursor = (state->m_p_videoram[0x7a] | (state->m_p_videoram[0x7b] << 8)) - 0x3c80; // get cursor relative position
+ UINT16 cursor = (m_p_videoram[0x7a] | (m_p_videoram[0x7b] << 8)) - 0x3c80; // get cursor relative position
rat = cursor / 30;
if (rat > 11) ma = (rat-11) * 30 + 128;
@@ -279,10 +281,10 @@ static SCREEN_UPDATE_IND16( bcs3a )
{
if (ra < 8)
{
- chr = state->m_p_videoram[x] & 0x7f;
+ chr = m_p_videoram[x] & 0x7f;
/* get pattern of pixels for that character scanline */
- gfx = state->m_p_chargen[(chr<<3) | rat ] ^ 0xff;
+ gfx = m_p_chargen[(chr<<3) | rat ] ^ 0xff;
}
else
gfx = 0xff;
@@ -303,12 +305,11 @@ static SCREEN_UPDATE_IND16( bcs3a )
return 0;
}
-static SCREEN_UPDATE_IND16( bcs3b )
+UINT32 bcs3_state::screen_update_bcs3b(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bcs3_state *state = screen.machine().driver_data<bcs3_state>();
UINT8 y,ra,chr,gfx,rat;
UINT16 sy=0,ma=128,x;
- UINT16 cursor = (state->m_p_videoram[0x7a] | (state->m_p_videoram[0x7b] << 8)) - 0x3c80; // get cursor relative position
+ UINT16 cursor = (m_p_videoram[0x7a] | (m_p_videoram[0x7b] << 8)) - 0x3c80; // get cursor relative position
rat = cursor / 41;
if (rat > 23) ma = (rat-23) * 41 + 128;
@@ -323,10 +324,10 @@ static SCREEN_UPDATE_IND16( bcs3b )
{
if (ra < 8)
{
- chr = state->m_p_videoram[x] & 0x7f;
+ chr = m_p_videoram[x] & 0x7f;
/* get pattern of pixels for that character scanline */
- gfx = state->m_p_chargen[(chr<<3) | rat ] ^ 0xff;
+ gfx = m_p_chargen[(chr<<3) | rat ] ^ 0xff;
}
else
gfx = 0xff;
@@ -347,12 +348,11 @@ static SCREEN_UPDATE_IND16( bcs3b )
return 0;
}
-static SCREEN_UPDATE_IND16( bcs3c )
+UINT32 bcs3_state::screen_update_bcs3c(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bcs3_state *state = screen.machine().driver_data<bcs3_state>();
UINT8 y,ra,chr,gfx,rat;
UINT16 sy=0,ma=0xb4,x;
- UINT16 cursor = (state->m_p_videoram[0x08] | (state->m_p_videoram[0x09] << 8)) - 0x3c80; // get cursor relative position
+ UINT16 cursor = (m_p_videoram[0x08] | (m_p_videoram[0x09] << 8)) - 0x3c80; // get cursor relative position
rat = cursor / 30;
if (rat > 11) ma = (rat-11) * 30 + 0xb4;
@@ -367,10 +367,10 @@ static SCREEN_UPDATE_IND16( bcs3c )
{
if (ra < 8)
{
- chr = state->m_p_videoram[x] & 0x7f;
+ chr = m_p_videoram[x] & 0x7f;
/* get pattern of pixels for that character scanline */
- gfx = state->m_p_chargen[(chr<<3) | rat ] ^ 0xff;
+ gfx = m_p_chargen[(chr<<3) | rat ] ^ 0xff;
}
else
gfx = 0xff;
@@ -423,7 +423,7 @@ static MACHINE_CONFIG_START( bcs3, bcs3_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(28*8, 12*10)
MCFG_SCREEN_VISIBLE_AREA(0,28*8-1,0,12*10-1)
- MCFG_SCREEN_UPDATE_STATIC(bcs3)
+ MCFG_SCREEN_UPDATE_DRIVER(bcs3_state, screen_update_bcs3)
MCFG_GFXDECODE(bcs3)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
@@ -437,7 +437,7 @@ static MACHINE_CONFIG_DERIVED( bcs3a, bcs3 )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_SIZE(29*8, 12*10)
MCFG_SCREEN_VISIBLE_AREA(0,29*8-1,0,12*10-1)
- MCFG_SCREEN_UPDATE_STATIC(bcs3a)
+ MCFG_SCREEN_UPDATE_DRIVER(bcs3_state, screen_update_bcs3a)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( bcs3b, bcs3 )
@@ -448,7 +448,7 @@ static MACHINE_CONFIG_DERIVED( bcs3b, bcs3 )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_SIZE(40*8, 24*10)
MCFG_SCREEN_VISIBLE_AREA(0,40*8-1,0,24*10-1)
- MCFG_SCREEN_UPDATE_STATIC(bcs3b)
+ MCFG_SCREEN_UPDATE_DRIVER(bcs3_state, screen_update_bcs3b)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( bcs3c, bcs3 )
@@ -459,7 +459,7 @@ static MACHINE_CONFIG_DERIVED( bcs3c, bcs3 )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_SIZE(29*8, 12*10)
MCFG_SCREEN_VISIBLE_AREA(0,29*8-1,0,12*10-1)
- MCFG_SCREEN_UPDATE_STATIC(bcs3c)
+ MCFG_SCREEN_UPDATE_DRIVER(bcs3_state, screen_update_bcs3c)
MACHINE_CONFIG_END
/* ROM definition */
diff --git a/src/mess/drivers/bk.c b/src/mess/drivers/bk.c
index 3b41c24c0ca..05f659c1da2 100644
--- a/src/mess/drivers/bk.c
+++ b/src/mess/drivers/bk.c
@@ -183,7 +183,7 @@ static MACHINE_CONFIG_START( bk0010, bk_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(bk0010)
+ MCFG_SCREEN_UPDATE_DRIVER(bk_state, screen_update_bk0010)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/bmjr.c b/src/mess/drivers/bmjr.c
index 19422d6fa7c..d87da0d3cd7 100644
--- a/src/mess/drivers/bmjr.c
+++ b/src/mess/drivers/bmjr.c
@@ -52,6 +52,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_bmjr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -61,12 +62,11 @@ void bmjr_state::video_start()
m_p_chargen = memregion("chargen")->base();
}
-static SCREEN_UPDATE_IND16( bmjr )
+UINT32 bmjr_state::screen_update_bmjr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bmjr_state *state = screen.machine().driver_data<bmjr_state>();
UINT8 y,ra,chr,gfx,fg=4;
UINT16 sy=0,ma=0x100,x;
- UINT8 inv = (state->m_xor_display) ? 0xff : 0;
+ UINT8 inv = (m_xor_display) ? 0xff : 0;
for(y = 0; y < 24; y++ )
{
@@ -76,8 +76,8 @@ static SCREEN_UPDATE_IND16( bmjr )
for (x = ma; x < ma + 32; x++)
{
- chr = state->m_p_wram[x];
- gfx = state->m_p_chargen[(chr<<3) | ra] ^ inv;
+ chr = m_p_wram[x];
+ gfx = m_p_chargen[(chr<<3) | ra] ^ inv;
/* Display a scanline of a character */
*p++ = BIT(gfx, 7) ? fg : 0;
@@ -356,7 +356,7 @@ static MACHINE_CONFIG_START( bmjr, bmjr_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(256, 192)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 192-1)
- MCFG_SCREEN_UPDATE_STATIC(bmjr)
+ MCFG_SCREEN_UPDATE_DRIVER(bmjr_state, screen_update_bmjr)
MCFG_PALETTE_LENGTH(8)
MCFG_GFXDECODE(bmjr)
diff --git a/src/mess/drivers/bml3.c b/src/mess/drivers/bml3.c
index 966d771ba9f..0d2a0218296 100644
--- a/src/mess/drivers/bml3.c
+++ b/src/mess/drivers/bml3.c
@@ -111,24 +111,26 @@ protected:
virtual void machine_start();
virtual void video_start();
virtual void palette_init();
+public:
+ UINT32 screen_update_bml3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
-#define mc6845_h_char_total (state->m_crtc_vreg[0])
-#define mc6845_h_display (state->m_crtc_vreg[1])
-#define mc6845_h_sync_pos (state->m_crtc_vreg[2])
-#define mc6845_sync_width (state->m_crtc_vreg[3])
-#define mc6845_v_char_total (state->m_crtc_vreg[4])
-#define mc6845_v_total_adj (state->m_crtc_vreg[5])
-#define mc6845_v_display (state->m_crtc_vreg[6])
-#define mc6845_v_sync_pos (state->m_crtc_vreg[7])
-#define mc6845_mode_ctrl (state->m_crtc_vreg[8])
-#define mc6845_tile_height (state->m_crtc_vreg[9]+1)
-#define mc6845_cursor_y_start (state->m_crtc_vreg[0x0a])
-#define mc6845_cursor_y_end (state->m_crtc_vreg[0x0b])
-#define mc6845_start_addr (((state->m_crtc_vreg[0x0c]<<8) & 0x3f00) | (state->m_crtc_vreg[0x0d] & 0xff))
-#define mc6845_cursor_addr (((state->m_crtc_vreg[0x0e]<<8) & 0x3f00) | (state->m_crtc_vreg[0x0f] & 0xff))
-#define mc6845_light_pen_addr (((state->m_crtc_vreg[0x10]<<8) & 0x3f00) | (state->m_crtc_vreg[0x11] & 0xff))
-#define mc6845_update_addr (((state->m_crtc_vreg[0x12]<<8) & 0x3f00) | (state->m_crtc_vreg[0x13] & 0xff))
+#define mc6845_h_char_total (m_crtc_vreg[0])
+#define mc6845_h_display (m_crtc_vreg[1])
+#define mc6845_h_sync_pos (m_crtc_vreg[2])
+#define mc6845_sync_width (m_crtc_vreg[3])
+#define mc6845_v_char_total (m_crtc_vreg[4])
+#define mc6845_v_total_adj (m_crtc_vreg[5])
+#define mc6845_v_display (m_crtc_vreg[6])
+#define mc6845_v_sync_pos (m_crtc_vreg[7])
+#define mc6845_mode_ctrl (m_crtc_vreg[8])
+#define mc6845_tile_height (m_crtc_vreg[9]+1)
+#define mc6845_cursor_y_start (m_crtc_vreg[0x0a])
+#define mc6845_cursor_y_end (m_crtc_vreg[0x0b])
+#define mc6845_start_addr (((m_crtc_vreg[0x0c]<<8) & 0x3f00) | (m_crtc_vreg[0x0d] & 0xff))
+#define mc6845_cursor_addr (((m_crtc_vreg[0x0e]<<8) & 0x3f00) | (m_crtc_vreg[0x0f] & 0xff))
+#define mc6845_light_pen_addr (((m_crtc_vreg[0x10]<<8) & 0x3f00) | (m_crtc_vreg[0x11] & 0xff))
+#define mc6845_update_addr (((m_crtc_vreg[0x12]<<8) & 0x3f00) | (m_crtc_vreg[0x13] & 0xff))
void bml3_state::video_start()
@@ -136,20 +138,19 @@ void bml3_state::video_start()
m_p_chargen = memregion("chargen")->base();
}
-static SCREEN_UPDATE_IND16( bml3 )
+UINT32 bml3_state::screen_update_bml3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bml3_state *state = screen.machine().driver_data<bml3_state>();
int x,y,count;
int xi,yi;
int width; //,height;
- UINT8 *vram = state->memregion("vram")->base();
+ UINT8 *vram = memregion("vram")->base();
count = 0x0000;
- width = (state->m_hres_reg & 0x80) ? 80 : 40;
-// height = (state->m_vres_reg & 0x08) ? 1 : 0;
+ width = (m_hres_reg & 0x80) ? 80 : 40;
+// height = (m_vres_reg & 0x08) ? 1 : 0;
-// popmessage("%02x %02x",state->m_hres_reg,state->m_vres_reg);
+// popmessage("%02x %02x",m_hres_reg,m_vres_reg);
for(y=0;y<25;y++)
{
@@ -168,9 +169,9 @@ static SCREEN_UPDATE_IND16( bml3 )
int pen;
if(reverse)
- pen = (state->m_p_chargen[tile*16+yi*2+tile_bank] >> (7-xi) & 1) ? 0 : color;
+ pen = (m_p_chargen[tile*16+yi*2+tile_bank] >> (7-xi) & 1) ? 0 : color;
else
- pen = (state->m_p_chargen[tile*16+yi*2+tile_bank] >> (7-xi) & 1) ? color : 0;
+ pen = (m_p_chargen[tile*16+yi*2+tile_bank] >> (7-xi) & 1) ? color : 0;
bitmap.pix16(y*mc6845_tile_height+yi, x*8+xi) = pen;
}
@@ -899,7 +900,7 @@ static MACHINE_CONFIG_START( bml3, bml3_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1)
- MCFG_SCREEN_UPDATE_STATIC(bml3)
+ MCFG_SCREEN_UPDATE_DRIVER(bml3_state, screen_update_bml3)
MCFG_PALETTE_LENGTH(8)
MCFG_GFXDECODE(bml3)
diff --git a/src/mess/drivers/busicom.c b/src/mess/drivers/busicom.c
index b22c4319d8a..483c364ccf9 100644
--- a/src/mess/drivers/busicom.c
+++ b/src/mess/drivers/busicom.c
@@ -224,7 +224,7 @@ static MACHINE_CONFIG_START( busicom, busicom_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(40*17, 44*11)
MCFG_SCREEN_VISIBLE_AREA(0, 40*17-1, 0, 44*11-1)
- MCFG_SCREEN_UPDATE_STATIC(busicom)
+ MCFG_SCREEN_UPDATE_DRIVER(busicom_state, screen_update_busicom)
MCFG_PALETTE_LENGTH(16)
diff --git a/src/mess/drivers/c65.c b/src/mess/drivers/c65.c
index 76aeba4af8b..cf52f64af08 100644
--- a/src/mess/drivers/c65.c
+++ b/src/mess/drivers/c65.c
@@ -232,7 +232,7 @@ static CBM_IEC_INTERFACE( cbm_iec_intf )
*
*************************************/
-static SCREEN_UPDATE_IND16( c65 )
+UINT32 c65_state::screen_update_c65(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
device_t *vic3 = screen.machine().device("vic3");
@@ -317,7 +317,7 @@ static MACHINE_CONFIG_START( c65, c65_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(525 * 2, 520 * 2)
MCFG_SCREEN_VISIBLE_AREA(VIC6567_STARTVISIBLECOLUMNS ,(VIC6567_STARTVISIBLECOLUMNS + VIC6567_VISIBLECOLUMNS - 1) * 2, VIC6567_STARTVISIBLELINES, VIC6567_STARTVISIBLELINES + VIC6567_VISIBLELINES - 1)
- MCFG_SCREEN_UPDATE_STATIC( c65 )
+ MCFG_SCREEN_UPDATE_DRIVER(c65_state, screen_update_c65)
MCFG_PALETTE_LENGTH(0x100)
MCFG_PALETTE_INIT_OVERRIDE(c65_state, c65 )
diff --git a/src/mess/drivers/casloopy.c b/src/mess/drivers/casloopy.c
index 771d2d8d23b..546801dd0e3 100644
--- a/src/mess/drivers/casloopy.c
+++ b/src/mess/drivers/casloopy.c
@@ -155,6 +155,7 @@ public:
DECLARE_DRIVER_INIT(casloopy);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_casloopy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -164,7 +165,7 @@ void casloopy_state::video_start()
}
-static SCREEN_UPDATE_IND16( casloopy )
+UINT32 casloopy_state::screen_update_casloopy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -207,7 +208,7 @@ static MACHINE_CONFIG_START( casloopy, casloopy_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(casloopy)
+ MCFG_SCREEN_UPDATE_DRIVER(casloopy_state, screen_update_casloopy)
MCFG_PALETTE_LENGTH(512)
diff --git a/src/mess/drivers/cat.c b/src/mess/drivers/cat.c
index f3497642717..fc4968f9065 100644
--- a/src/mess/drivers/cat.c
+++ b/src/mess/drivers/cat.c
@@ -69,6 +69,8 @@ public:
DECLARE_MACHINE_START(swyft);
DECLARE_MACHINE_RESET(swyft);
DECLARE_VIDEO_START(swyft);
+ UINT32 screen_update_cat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_swyft(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
WRITE16_MEMBER( cat_state::cat_video_status_w )
@@ -324,21 +326,20 @@ VIDEO_START_MEMBER(cat_state,cat)
{
}
-static SCREEN_UPDATE_IND16( cat )
+UINT32 cat_state::screen_update_cat(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cat_state *state = screen.machine().driver_data<cat_state>();
UINT16 code;
int y, x, b;
int addr = 0;
- if (state->m_video_enable == 1)
+ if (m_video_enable == 1)
{
for (y = 0; y < 344; y++)
{
int horpos = 0;
for (x = 0; x < 42; x++)
{
- code = state->m_p_videoram[addr++];
+ code = m_p_videoram[addr++];
for (b = 15; b >= 0; b--)
{
bitmap.pix16(y, horpos++) = (code >> b) & 0x01;
@@ -370,9 +371,8 @@ VIDEO_START_MEMBER(cat_state,swyft)
{
}
-static SCREEN_UPDATE_IND16( swyft )
+UINT32 cat_state::screen_update_swyft(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cat_state *state = screen.machine().driver_data<cat_state>();
UINT16 code;
int y, x, b;
@@ -382,7 +382,7 @@ static SCREEN_UPDATE_IND16( swyft )
int horpos = 0;
for (x = 0; x < 20; x++)
{
- code = state->m_p_videoram[addr++];
+ code = m_p_videoram[addr++];
for (b = 15; b >= 0; b--)
{
bitmap.pix16(y, horpos++) = (code >> b) & 0x01;
@@ -440,7 +440,7 @@ static MACHINE_CONFIG_START( cat, cat_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(672, 344)
MCFG_SCREEN_VISIBLE_AREA(0, 672-1, 0, 344-1)
- MCFG_SCREEN_UPDATE_STATIC(cat)
+ MCFG_SCREEN_UPDATE_DRIVER(cat_state, screen_update_cat)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
@@ -467,7 +467,7 @@ static MACHINE_CONFIG_START( swyft, cat_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(320, 242)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 242-1)
- MCFG_SCREEN_UPDATE_STATIC(swyft)
+ MCFG_SCREEN_UPDATE_DRIVER(cat_state, screen_update_swyft)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/cfx9850.c b/src/mess/drivers/cfx9850.c
index 06878088cc0..30d93e7b944 100644
--- a/src/mess/drivers/cfx9850.c
+++ b/src/mess/drivers/cfx9850.c
@@ -37,6 +37,7 @@ public:
required_shared_ptr<UINT8> m_display_ram;
UINT16 m_ko; /* KO lines KO1 - KO14 */
virtual void palette_init();
+ UINT32 screen_update_cfx9850(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -195,9 +196,8 @@ void cfx9850_state::palette_init()
}
-static SCREEN_UPDATE_IND16( cfx9850 )
+UINT32 cfx9850_state::screen_update_cfx9850(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cfx9850_state *state = screen.machine().driver_data<cfx9850_state>();
UINT16 offset = 0;
for ( int i = 0; i < 16; i++ )
@@ -206,8 +206,8 @@ static SCREEN_UPDATE_IND16( cfx9850 )
for ( int j = 0; j < 64; j++ )
{
- UINT8 data1 = state->m_display_ram[ offset ];
- UINT8 data2 = state->m_display_ram[ offset + 0x400 ];
+ UINT8 data1 = m_display_ram[ offset ];
+ UINT8 data2 = m_display_ram[ offset + 0x400 ];
for ( int b = 0; b < 8; b++ )
{
@@ -233,7 +233,7 @@ static MACHINE_CONFIG_START( cfx9850, cfx9850_state )
MCFG_SCREEN_REFRESH_RATE( 60 )
MCFG_SCREEN_SIZE( 128, 64 )
MCFG_SCREEN_VISIBLE_AREA( 0, 127, 0, 63 )
- MCFG_SCREEN_UPDATE_STATIC( cfx9850 )
+ MCFG_SCREEN_UPDATE_DRIVER(cfx9850_state, screen_update_cfx9850)
MCFG_DEFAULT_LAYOUT(layout_lcd)
diff --git a/src/mess/drivers/cgenie.c b/src/mess/drivers/cgenie.c
index 540ebfa8628..c43f7714010 100644
--- a/src/mess/drivers/cgenie.c
+++ b/src/mess/drivers/cgenie.c
@@ -534,7 +534,7 @@ static MACHINE_CONFIG_START( cgenie_common, cgenie_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(48*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0*8, 48*8-1,0*8,32*8-1)
- MCFG_SCREEN_UPDATE_STATIC( cgenie )
+ MCFG_SCREEN_UPDATE_DRIVER(cgenie_state, screen_update_cgenie)
MCFG_GFXDECODE( cgenie )
MCFG_PALETTE_LENGTH(108)
diff --git a/src/mess/drivers/channelf.c b/src/mess/drivers/channelf.c
index d9e292a2610..9e49f25ac50 100644
--- a/src/mess/drivers/channelf.c
+++ b/src/mess/drivers/channelf.c
@@ -270,7 +270,7 @@ static MACHINE_CONFIG_START( channelf, channelf_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(128, 64)
MCFG_SCREEN_VISIBLE_AREA(4, 112 - 7, 4, 64 - 3)
- MCFG_SCREEN_UPDATE_STATIC( channelf )
+ MCFG_SCREEN_UPDATE_DRIVER(channelf_state, screen_update_channelf)
MCFG_PALETTE_LENGTH(8)
@@ -296,7 +296,7 @@ static MACHINE_CONFIG_START( sabavdpl, channelf_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(PAL_VBLANK_TIME)) /* approximate */
MCFG_SCREEN_SIZE(128, 64)
MCFG_SCREEN_VISIBLE_AREA(4, 112 - 7, 4, 64 - 3)
- MCFG_SCREEN_UPDATE_STATIC( channelf )
+ MCFG_SCREEN_UPDATE_DRIVER(channelf_state, screen_update_channelf)
MCFG_PALETTE_LENGTH(8)
@@ -323,7 +323,7 @@ static MACHINE_CONFIG_START( channlf2, channelf_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(128, 64)
MCFG_SCREEN_VISIBLE_AREA(4, 112 - 7, 4, 64 - 3)
- MCFG_SCREEN_UPDATE_STATIC( channelf )
+ MCFG_SCREEN_UPDATE_DRIVER(channelf_state, screen_update_channelf)
MCFG_PALETTE_LENGTH(8)
@@ -350,7 +350,7 @@ static MACHINE_CONFIG_START( sabavpl2, channelf_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(PAL_VBLANK_TIME)) /* not accurate */
MCFG_SCREEN_SIZE(128, 64)
MCFG_SCREEN_VISIBLE_AREA(4, 112 - 7, 4, 64 - 3)
- MCFG_SCREEN_UPDATE_STATIC( channelf )
+ MCFG_SCREEN_UPDATE_DRIVER(channelf_state, screen_update_channelf)
MCFG_PALETTE_LENGTH(8)
diff --git a/src/mess/drivers/codata.c b/src/mess/drivers/codata.c
index 919b8c42335..58dd49a5897 100644
--- a/src/mess/drivers/codata.c
+++ b/src/mess/drivers/codata.c
@@ -20,6 +20,7 @@ public:
required_shared_ptr<UINT16> m_p_base;
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_codata(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -49,7 +50,7 @@ void codata_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( codata )
+UINT32 codata_state::screen_update_codata(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -66,7 +67,7 @@ static MACHINE_CONFIG_START( codata, codata_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(codata)
+ MCFG_SCREEN_UPDATE_DRIVER(codata_state, screen_update_codata)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/compis.c b/src/mess/drivers/compis.c
index 88abaa356ca..69b7d6f158e 100644
--- a/src/mess/drivers/compis.c
+++ b/src/mess/drivers/compis.c
@@ -82,11 +82,10 @@ void compis_state::palette_init()
palette_set_color(machine(), 2, MAKE_RGB(0x00, 0xff, 0x00)); // highlight
}
-static SCREEN_UPDATE_IND16( compis2 ) // temporary
+UINT32 compis_state::screen_update_compis2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)// temporary
{
- compis_state *state = screen.machine().driver_data<compis_state>();
UINT8 *m_p_chargen;
- m_p_chargen = state->memregion("maincpu")->base()+0xca70; //bios0
+ m_p_chargen = memregion("maincpu")->base()+0xca70; //bios0
if (m_p_chargen[0x214] != 0x08) m_p_chargen+= 0x10; //bios1
UINT8 y,ra,chr,gfx;
UINT16 sy=0,ma=0,x;
@@ -99,7 +98,7 @@ static SCREEN_UPDATE_IND16( compis2 ) // temporary
for (x = ma; x < ma + 240; x+=3)
{
- chr = state->m_video_ram[x & 0x1ffff];
+ chr = m_video_ram[x & 0x1ffff];
if (chr < 0x20)
gfx = 0;
@@ -414,7 +413,7 @@ static MACHINE_CONFIG_START( compis2, compis_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 400)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 400-1)
- MCFG_SCREEN_UPDATE_STATIC(compis2)
+ MCFG_SCREEN_UPDATE_DRIVER(compis_state, screen_update_compis2)
MCFG_PALETTE_LENGTH(3)
/* Devices */
diff --git a/src/mess/drivers/comquest.c b/src/mess/drivers/comquest.c
index 569d57757b1..db5da1abe30 100644
--- a/src/mess/drivers/comquest.c
+++ b/src/mess/drivers/comquest.c
@@ -252,7 +252,7 @@ static MACHINE_CONFIG_START( comquest, comquest_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(64*4, 128) /* 160 x 102 */
MCFG_SCREEN_VISIBLE_AREA(0, 64*4-1, 0, 128-1)
- MCFG_SCREEN_UPDATE_STATIC( comquest )
+ MCFG_SCREEN_UPDATE_DRIVER(comquest_state, screen_update_comquest)
MCFG_GFXDECODE( comquest )
MCFG_PALETTE_LENGTH(2)
diff --git a/src/mess/drivers/concept.c b/src/mess/drivers/concept.c
index 69c355a6169..e5dfd7b248c 100644
--- a/src/mess/drivers/concept.c
+++ b/src/mess/drivers/concept.c
@@ -130,7 +130,7 @@ static MACHINE_CONFIG_START( concept, concept_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(720, 560)
MCFG_SCREEN_VISIBLE_AREA(0, 720-1, 0, 560-1)
- MCFG_SCREEN_UPDATE_STATIC(concept)
+ MCFG_SCREEN_UPDATE_DRIVER(concept_state, screen_update_concept)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/cortex.c b/src/mess/drivers/cortex.c
index b18a4105732..62c7af3cf47 100644
--- a/src/mess/drivers/cortex.c
+++ b/src/mess/drivers/cortex.c
@@ -29,6 +29,7 @@ public:
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_cortex(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
static ADDRESS_MAP_START( cortex_mem, AS_PROGRAM, 8, cortex_state )
@@ -54,7 +55,7 @@ void cortex_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( cortex )
+UINT32 cortex_state::screen_update_cortex(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -82,7 +83,7 @@ static MACHINE_CONFIG_START( cortex, cortex_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(cortex)
+ MCFG_SCREEN_UPDATE_DRIVER(cortex_state, screen_update_cortex)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
MACHINE_CONFIG_END
diff --git a/src/mess/drivers/craft.c b/src/mess/drivers/craft.c
index 058b8394d15..afa92d084f6 100644
--- a/src/mess/drivers/craft.c
+++ b/src/mess/drivers/craft.c
@@ -73,6 +73,7 @@ public:
DECLARE_WRITE8_MEMBER(avr8_write);
DECLARE_DRIVER_INIT(craft);
virtual void machine_reset();
+ UINT32 screen_update_craft(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
void craft_state::machine_start()
@@ -951,7 +952,7 @@ INPUT_PORTS_END
* Video hardware *
\****************************************************/
-static SCREEN_UPDATE_RGB32( craft )
+UINT32 craft_state::screen_update_craft(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -996,7 +997,7 @@ static MACHINE_CONFIG_START( craft, craft_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1395)) /* accurate */
MCFG_SCREEN_SIZE(634, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 633, 0, 479)
- MCFG_SCREEN_UPDATE_STATIC(craft)
+ MCFG_SCREEN_UPDATE_DRIVER(craft_state, screen_update_craft)
MCFG_PALETTE_LENGTH(0x1000)
diff --git a/src/mess/drivers/cxhumax.c b/src/mess/drivers/cxhumax.c
index 255c06d8197..130e2979584 100644
--- a/src/mess/drivers/cxhumax.c
+++ b/src/mess/drivers/cxhumax.c
@@ -890,17 +890,16 @@ INLINE UINT32 ycc_to_rgb(UINT32 ycc)
return MAKE_RGB(clamp16_shift8(r), clamp16_shift8(g), clamp16_shift8(b));
}
-static SCREEN_UPDATE_RGB32( cxhumax )
+UINT32 cxhumax_state::screen_update_cxhumax(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
int i, j;
- cxhumax_state *state = screen.machine().driver_data<cxhumax_state>();
- UINT32 osd_pointer = state->m_drm1_regs[DRM_OSD_PTR_REG];
+ UINT32 osd_pointer = m_drm1_regs[DRM_OSD_PTR_REG];
if(osd_pointer)
{
- UINT32 *ram = state->m_ram;
+ UINT32 *ram = m_ram;
UINT32 *osd_header = &ram[osd_pointer/4];
UINT8 *vbuf = (UINT8*)(&ram[osd_header[3]/4]);
UINT32 *palette = &ram[osd_header[7]/4];
@@ -917,11 +916,11 @@ static SCREEN_UPDATE_RGB32( cxhumax )
UINT32 ydisp_last = (y_position_and_region_alpha >> 12) & 0x7ff;
UINT32 ydisp_start = y_position_and_region_alpha & 0x7ff;
- /* UINT32 first_x = state->m_drm0_regs[DRM_ACTIVE_X_REG] & 0xffff;
- UINT32 last_x = (state->m_drm0_regs[DRM_ACTIVE_X_REG] >> 16) & 0xffff;
+ /* UINT32 first_x = m_drm0_regs[DRM_ACTIVE_X_REG] & 0xffff;
+ UINT32 last_x = (m_drm0_regs[DRM_ACTIVE_X_REG] >> 16) & 0xffff;
- UINT32 first_y = state->m_drm0_regs[DRM_ACTIVE_Y_REG] & 0xfff;
- UINT32 last_y = (state->m_drm0_regs[DRM_ACTIVE_Y_REG] >> 16) & 0xfff;*/
+ UINT32 first_y = m_drm0_regs[DRM_ACTIVE_Y_REG] & 0xfff;
+ UINT32 last_y = (m_drm0_regs[DRM_ACTIVE_Y_REG] >> 16) & 0xfff;*/
for (j=ydisp_start; j <= ydisp_last; j++)
{
@@ -932,7 +931,7 @@ static SCREEN_UPDATE_RGB32( cxhumax )
if ((i <= (xdisp_start + ximg_width)) && (j <= (ydisp_start + yimg_height))) {
bmp[i] = palette[vbuf[i+((j-ydisp_start)*ximg_width)]];
} else {
- bmp[i] = ycc_to_rgb(state->m_drm1_regs[DRM_BCKGND_REG]);
+ bmp[i] = ycc_to_rgb(m_drm1_regs[DRM_BCKGND_REG]);
}
}
}
@@ -1076,7 +1075,7 @@ static MACHINE_CONFIG_START( cxhumax, cxhumax_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(1920, 1080)
MCFG_SCREEN_VISIBLE_AREA(0, 1920-1, 0, 1080-1)
- MCFG_SCREEN_UPDATE_STATIC(cxhumax)
+ MCFG_SCREEN_UPDATE_DRIVER(cxhumax_state, screen_update_cxhumax)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/cybiko.c b/src/mess/drivers/cybiko.c
index 9ab29604d74..64a1c5e845f 100644
--- a/src/mess/drivers/cybiko.c
+++ b/src/mess/drivers/cybiko.c
@@ -299,7 +299,7 @@ void cybiko_state::palette_init()
// SCREEN UPDATE //
////////////////////
-static SCREEN_UPDATE_IND16( cybiko )
+UINT32 cybiko_state::screen_update_cybiko(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
hd66421_device *hd66421 = screen.machine().device<hd66421_device>( "hd66421" );
hd66421->update_screen(bitmap, cliprect);
@@ -321,7 +321,7 @@ static MACHINE_CONFIG_START( cybikov1, cybiko_state )
MCFG_SCREEN_REFRESH_RATE( 60 )
MCFG_SCREEN_SIZE( HD66421_WIDTH, HD66421_HEIGHT )
MCFG_SCREEN_VISIBLE_AREA( 0, HD66421_WIDTH - 1, 0, HD66421_HEIGHT - 1 )
- MCFG_SCREEN_UPDATE_STATIC(cybiko)
+ MCFG_SCREEN_UPDATE_DRIVER(cybiko_state, screen_update_cybiko)
// video
MCFG_HD66421_ADD("hd66421")
diff --git a/src/mess/drivers/d6800.c b/src/mess/drivers/d6800.c
index 46b5434bf3a..8bf884d14f4 100644
--- a/src/mess/drivers/d6800.c
+++ b/src/mess/drivers/d6800.c
@@ -78,6 +78,8 @@ private:
UINT8 m_portb;
virtual void machine_start();
virtual void machine_reset();
+public:
+ UINT32 screen_update_d6800(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -152,9 +154,8 @@ INPUT_PORTS_END
/* Video */
-static SCREEN_UPDATE_IND16( d6800 )
+UINT32 d6800_state::screen_update_d6800(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- d6800_state *state = screen.machine().driver_data<d6800_state>();
UINT8 x,y,gfx=0;
for (y = 0; y < 32; y++)
@@ -163,8 +164,8 @@ static SCREEN_UPDATE_IND16( d6800 )
for (x = 0; x < 8; x++)
{
- if (state->m_screen_on)
- gfx = state->m_videoram[ x | (y<<3)];
+ if (m_screen_on)
+ gfx = m_videoram[ x | (y<<3)];
*p++ = BIT(gfx, 7);
*p++ = BIT(gfx, 6);
@@ -367,7 +368,7 @@ static MACHINE_CONFIG_START( d6800, d6800_state )
MCFG_SCREEN_REFRESH_RATE(50)
MCFG_SCREEN_SIZE(64, 32)
MCFG_SCREEN_VISIBLE_AREA(0, 63, 0, 31)
- MCFG_SCREEN_UPDATE_STATIC(d6800)
+ MCFG_SCREEN_UPDATE_DRIVER(d6800_state, screen_update_d6800)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/dai.c b/src/mess/drivers/dai.c
index 423e043a633..7bf93f242dd 100644
--- a/src/mess/drivers/dai.c
+++ b/src/mess/drivers/dai.c
@@ -213,7 +213,7 @@ static MACHINE_CONFIG_START( dai, dai_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(1056, 542)
MCFG_SCREEN_VISIBLE_AREA(0, 1056-1, 0, 302-1)
- MCFG_SCREEN_UPDATE_STATIC( dai )
+ MCFG_SCREEN_UPDATE_DRIVER(dai_state, screen_update_dai)
MCFG_GFXDECODE(dai)
MCFG_PALETTE_LENGTH(sizeof (dai_palette) / 3)
diff --git a/src/mess/drivers/dc.c b/src/mess/drivers/dc.c
index 3211402a94c..bd01b59021f 100644
--- a/src/mess/drivers/dc.c
+++ b/src/mess/drivers/dc.c
@@ -253,7 +253,7 @@ static MACHINE_CONFIG_START( dc, dc_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */)
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(dc)
+ MCFG_SCREEN_UPDATE_DRIVER(dc_state, screen_update_dc)
MCFG_PALETTE_LENGTH(0x1000)
diff --git a/src/mess/drivers/dct11em.c b/src/mess/drivers/dct11em.c
index d27e15848c5..b5369208a3a 100644
--- a/src/mess/drivers/dct11em.c
+++ b/src/mess/drivers/dct11em.c
@@ -16,6 +16,7 @@ public:
: driver_device(mconfig, type, tag) { }
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_dct11em(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
static ADDRESS_MAP_START( dct11em_mem, AS_PROGRAM, 16, dct11em_state )
@@ -38,7 +39,7 @@ void dct11em_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( dct11em )
+UINT32 dct11em_state::screen_update_dct11em(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -61,7 +62,7 @@ static MACHINE_CONFIG_START( dct11em, dct11em_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(dct11em)
+ MCFG_SCREEN_UPDATE_DRIVER(dct11em_state, screen_update_dct11em)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
MACHINE_CONFIG_END
diff --git a/src/mess/drivers/dm7000.c b/src/mess/drivers/dm7000.c
index 64483cb8c21..0c4a2f38de5 100644
--- a/src/mess/drivers/dm7000.c
+++ b/src/mess/drivers/dm7000.c
@@ -263,7 +263,7 @@ void dm7000_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( dm7000 )
+UINT32 dm7000_state::screen_update_dm7000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -323,7 +323,7 @@ static MACHINE_CONFIG_START( dm7000, dm7000_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(dm7000)
+ MCFG_SCREEN_UPDATE_DRIVER(dm7000_state, screen_update_dm7000)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/dms5000.c b/src/mess/drivers/dms5000.c
index 400e84f247d..2198d39e639 100644
--- a/src/mess/drivers/dms5000.c
+++ b/src/mess/drivers/dms5000.c
@@ -18,6 +18,7 @@ public:
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_dms5000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -44,7 +45,7 @@ void dms5000_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( dms5000 )
+UINT32 dms5000_state::screen_update_dms5000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -62,7 +63,7 @@ static MACHINE_CONFIG_START( dms5000, dms5000_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(dms5000)
+ MCFG_SCREEN_UPDATE_DRIVER(dms5000_state, screen_update_dms5000)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
MACHINE_CONFIG_END
diff --git a/src/mess/drivers/einstein.c b/src/mess/drivers/einstein.c
index 0bb93b12554..28dc76d8f69 100644
--- a/src/mess/drivers/einstein.c
+++ b/src/mess/drivers/einstein.c
@@ -480,11 +480,10 @@ MACHINE_START_MEMBER(einstein_state,einstein2)
VIDEO EMULATION
***************************************************************************/
-static SCREEN_UPDATE_RGB32( einstein2 )
+UINT32 einstein_state::screen_update_einstein2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- einstein_state *einstein = screen.machine().driver_data<einstein_state>();
- if (&screen == einstein->m_color_screen)
+ if (&screen == m_color_screen)
{
tms9929a_device *tms9929a = screen.machine().device<tms9929a_device>( "tms9929a" );
const rgb_t *palette = palette_entry_list_raw(bitmap.palette());
@@ -493,8 +492,8 @@ static SCREEN_UPDATE_RGB32( einstein2 )
for (int x = cliprect.min_x; x <= cliprect.max_x; x++)
bitmap.pix32(y, x) = palette[src.pix16(y, x)];
}
- else if (&screen == einstein->m_crtc_screen)
- einstein->m_mc6845->screen_update( screen, bitmap, cliprect);
+ else if (&screen == m_crtc_screen)
+ m_mc6845->screen_update( screen, bitmap, cliprect);
else
fatalerror("Unknown screen '%s'\n", screen.tag());
@@ -842,7 +841,7 @@ static MACHINE_CONFIG_DERIVED( einstei2, einstein )
MCFG_SCREEN_SIZE(640, 400)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 400-1)
MCFG_SCREEN_REFRESH_RATE(50)
- MCFG_SCREEN_UPDATE_STATIC(einstein2)
+ MCFG_SCREEN_UPDATE_DRIVER(einstein_state, screen_update_einstein2)
MCFG_GFXDECODE(einstei2)
/* 2 additional colors for the 80 column screen */
diff --git a/src/mess/drivers/electron.c b/src/mess/drivers/electron.c
index 28c3fce666e..532b7a335cf 100644
--- a/src/mess/drivers/electron.c
+++ b/src/mess/drivers/electron.c
@@ -185,7 +185,7 @@ static MACHINE_CONFIG_START( electron, electron_state )
MCFG_SCREEN_REFRESH_RATE( 50.08 )
MCFG_SCREEN_SIZE( 640, 312 )
MCFG_SCREEN_VISIBLE_AREA( 0, 640-1, 0, 256-1 )
- MCFG_SCREEN_UPDATE_STATIC(electron)
+ MCFG_SCREEN_UPDATE_DRIVER(electron_state, screen_update_electron)
MCFG_PALETTE_LENGTH( 16 )
diff --git a/src/mess/drivers/elwro800.c b/src/mess/drivers/elwro800.c
index fcf9282babb..2d14569800c 100644
--- a/src/mess/drivers/elwro800.c
+++ b/src/mess/drivers/elwro800.c
@@ -49,7 +49,7 @@ public:
DECLARE_WRITE8_MEMBER(elwro800jr_fdc_control_w);
DECLARE_READ8_MEMBER(elwro800jr_io_r);
DECLARE_WRITE8_MEMBER(elwro800jr_io_w);
- DECLARE_MACHINE_RESET(elwro800);
+ DECLARE_MACHINE_RESET(elwro800);
};
@@ -588,8 +588,8 @@ static MACHINE_CONFIG_START( elwro800, elwro800_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(SPEC_SCREEN_WIDTH, SPEC_SCREEN_HEIGHT)
MCFG_SCREEN_VISIBLE_AREA(0, SPEC_SCREEN_WIDTH-1, 0, SPEC_SCREEN_HEIGHT-1)
- MCFG_SCREEN_UPDATE_STATIC( spectrum )
- MCFG_SCREEN_VBLANK_STATIC( spectrum )
+ MCFG_SCREEN_UPDATE_DRIVER(elwro800_state, screen_update_spectrum )
+ MCFG_SCREEN_VBLANK_DRIVER(elwro800_state, screen_eof_spectrum)
MCFG_PALETTE_LENGTH(16)
MCFG_PALETTE_INIT_OVERRIDE(elwro800_state, spectrum )
diff --git a/src/mess/drivers/enterp.c b/src/mess/drivers/enterp.c
index 1ff333dced3..86831071474 100644
--- a/src/mess/drivers/enterp.c
+++ b/src/mess/drivers/enterp.c
@@ -457,7 +457,7 @@ static MACHINE_CONFIG_START( ep64, ep_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(ENTERPRISE_SCREEN_WIDTH, ENTERPRISE_SCREEN_HEIGHT)
MCFG_SCREEN_VISIBLE_AREA(0, ENTERPRISE_SCREEN_WIDTH-1, 0, ENTERPRISE_SCREEN_HEIGHT-1)
- MCFG_SCREEN_UPDATE_STATIC(epnick)
+ MCFG_SCREEN_UPDATE_DRIVER(ep_state, screen_update_epnick)
MCFG_PALETTE_LENGTH(NICK_PALETTE_SIZE)
diff --git a/src/mess/drivers/fm7.c b/src/mess/drivers/fm7.c
index 792d5d6252c..dee1158dd2e 100644
--- a/src/mess/drivers/fm7.c
+++ b/src/mess/drivers/fm7.c
@@ -2053,7 +2053,7 @@ static MACHINE_CONFIG_START( fm7, fm7_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 200)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
- MCFG_SCREEN_UPDATE_STATIC(fm7)
+ MCFG_SCREEN_UPDATE_DRIVER(fm7_state, screen_update_fm7)
MCFG_PALETTE_LENGTH(8)
@@ -2095,7 +2095,7 @@ static MACHINE_CONFIG_START( fm8, fm7_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 200)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
- MCFG_SCREEN_UPDATE_STATIC(fm7)
+ MCFG_SCREEN_UPDATE_DRIVER(fm7_state, screen_update_fm7)
MCFG_PALETTE_LENGTH(8)
@@ -2137,7 +2137,7 @@ static MACHINE_CONFIG_START( fm77av, fm7_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 200)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
- MCFG_SCREEN_UPDATE_STATIC(fm7)
+ MCFG_SCREEN_UPDATE_DRIVER(fm7_state, screen_update_fm7)
MCFG_PALETTE_LENGTH(8 + 4096)
@@ -2184,7 +2184,7 @@ static MACHINE_CONFIG_START( fm11, fm7_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 200)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
- MCFG_SCREEN_UPDATE_STATIC(fm7)
+ MCFG_SCREEN_UPDATE_DRIVER(fm7_state, screen_update_fm7)
MCFG_PALETTE_LENGTH(8)
@@ -2225,7 +2225,7 @@ static MACHINE_CONFIG_START( fm16beta, fm7_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 200)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
- MCFG_SCREEN_UPDATE_STATIC(fm7)
+ MCFG_SCREEN_UPDATE_DRIVER(fm7_state, screen_update_fm7)
MCFG_PALETTE_LENGTH(8)
diff --git a/src/mess/drivers/fp6000.c b/src/mess/drivers/fp6000.c
index ca2d6b9bc7c..e7c3bb55d4e 100644
--- a/src/mess/drivers/fp6000.c
+++ b/src/mess/drivers/fp6000.c
@@ -51,36 +51,36 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_fp6000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
void fp6000_state::video_start()
{
}
-#define mc6845_h_char_total (state->m_crtc_vreg[0])
-#define mc6845_h_display (state->m_crtc_vreg[1])
-#define mc6845_h_sync_pos (state->m_crtc_vreg[2])
-#define mc6845_sync_width (state->m_crtc_vreg[3])
-#define mc6845_v_char_total (state->m_crtc_vreg[4])
-#define mc6845_v_total_adj (state->m_crtc_vreg[5])
-#define mc6845_v_display (state->m_crtc_vreg[6])
-#define mc6845_v_sync_pos (state->m_crtc_vreg[7])
-#define mc6845_mode_ctrl (state->m_crtc_vreg[8])
-#define mc6845_tile_height (state->m_crtc_vreg[9]+1)
-#define mc6845_cursor_y_start (state->m_crtc_vreg[0x0a])
-#define mc6845_cursor_y_end (state->m_crtc_vreg[0x0b])
-#define mc6845_start_addr (((state->m_crtc_vreg[0x0c]<<8) & 0x3f00) | (state->m_crtc_vreg[0x0d] & 0xff))
-#define mc6845_cursor_addr (((state->m_crtc_vreg[0x0e]<<8) & 0x3f00) | (state->m_crtc_vreg[0x0f] & 0xff))
-#define mc6845_light_pen_addr (((state->m_crtc_vreg[0x10]<<8) & 0x3f00) | (state->m_crtc_vreg[0x11] & 0xff))
-#define mc6845_update_addr (((state->m_crtc_vreg[0x12]<<8) & 0x3f00) | (state->m_crtc_vreg[0x13] & 0xff))
-
-
-static SCREEN_UPDATE_IND16( fp6000 )
+#define mc6845_h_char_total (m_crtc_vreg[0])
+#define mc6845_h_display (m_crtc_vreg[1])
+#define mc6845_h_sync_pos (m_crtc_vreg[2])
+#define mc6845_sync_width (m_crtc_vreg[3])
+#define mc6845_v_char_total (m_crtc_vreg[4])
+#define mc6845_v_total_adj (m_crtc_vreg[5])
+#define mc6845_v_display (m_crtc_vreg[6])
+#define mc6845_v_sync_pos (m_crtc_vreg[7])
+#define mc6845_mode_ctrl (m_crtc_vreg[8])
+#define mc6845_tile_height (m_crtc_vreg[9]+1)
+#define mc6845_cursor_y_start (m_crtc_vreg[0x0a])
+#define mc6845_cursor_y_end (m_crtc_vreg[0x0b])
+#define mc6845_start_addr (((m_crtc_vreg[0x0c]<<8) & 0x3f00) | (m_crtc_vreg[0x0d] & 0xff))
+#define mc6845_cursor_addr (((m_crtc_vreg[0x0e]<<8) & 0x3f00) | (m_crtc_vreg[0x0f] & 0xff))
+#define mc6845_light_pen_addr (((m_crtc_vreg[0x10]<<8) & 0x3f00) | (m_crtc_vreg[0x11] & 0xff))
+#define mc6845_update_addr (((m_crtc_vreg[0x12]<<8) & 0x3f00) | (m_crtc_vreg[0x13] & 0xff))
+
+
+UINT32 fp6000_state::screen_update_fp6000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- fp6000_state *state = screen.machine().driver_data<fp6000_state>();
int x,y;
int xi,yi;
- UINT8 *gfx_rom = state->memregion("pcg")->base();
+ UINT8 *gfx_rom = memregion("pcg")->base();
UINT32 count;
count = 0;
@@ -91,7 +91,7 @@ static SCREEN_UPDATE_IND16( fp6000 )
{
for(xi=0;xi<4;xi++)
{
- int dot = (state->m_gvram[count] >> (12-xi*4)) & 0xf;
+ int dot = (m_gvram[count] >> (12-xi*4)) & 0xf;
if(y < 400 && x*4+xi < 640) /* TODO: safety check */
bitmap.pix16(y, x*4+xi) = screen.machine().pens[dot];
@@ -105,8 +105,8 @@ static SCREEN_UPDATE_IND16( fp6000 )
{
for(x=0;x<mc6845_h_display;x++)
{
- int tile = state->m_vram[x+y*mc6845_h_display] & 0xff;
- int color = (state->m_vram[x+y*mc6845_h_display] & 0x700) >> 8;
+ int tile = m_vram[x+y*mc6845_h_display] & 0xff;
+ int color = (m_vram[x+y*mc6845_h_display] & 0x700) >> 8;
int pen;
for(yi=0;yi<mc6845_tile_height;yi++)
@@ -314,7 +314,7 @@ static MACHINE_CONFIG_START( fp6000, fp6000_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(fp6000)
+ MCFG_SCREEN_UPDATE_DRIVER(fp6000_state, screen_update_fp6000)
MCFG_MC6845_ADD("crtc", H46505, 16000000/5, mc6845_intf) /* unknown clock, hand tuned to get ~60 fps */
diff --git a/src/mess/drivers/galaxy.c b/src/mess/drivers/galaxy.c
index b728eb4f30a..36960f6019b 100644
--- a/src/mess/drivers/galaxy.c
+++ b/src/mess/drivers/galaxy.c
@@ -196,7 +196,7 @@ static MACHINE_CONFIG_START( galaxy, galaxy_state )
/* video hardware */
MCFG_SCREEN_SIZE(384, 212)
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 208-1)
- MCFG_SCREEN_UPDATE_STATIC( galaxy )
+ MCFG_SCREEN_UPDATE_DRIVER(galaxy_state, screen_update_galaxy)
MCFG_GFXDECODE(galaxy)
MCFG_PALETTE_LENGTH(2)
@@ -232,7 +232,7 @@ static MACHINE_CONFIG_START( galaxyp, galaxy_state )
/* video hardware */
MCFG_SCREEN_SIZE(384, 208)
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 208-1)
- MCFG_SCREEN_UPDATE_STATIC( galaxy )
+ MCFG_SCREEN_UPDATE_DRIVER(galaxy_state, screen_update_galaxy)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT( black_and_white )
diff --git a/src/mess/drivers/galeb.c b/src/mess/drivers/galeb.c
index 63f1ed137f3..a85b31f4fe0 100644
--- a/src/mess/drivers/galeb.c
+++ b/src/mess/drivers/galeb.c
@@ -136,7 +136,7 @@ static MACHINE_CONFIG_START( galeb, galeb_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(48*8, 16*8)
MCFG_SCREEN_VISIBLE_AREA(0, 48*8-1, 0, 16*8-1)
- MCFG_SCREEN_UPDATE_STATIC(galeb)
+ MCFG_SCREEN_UPDATE_DRIVER(galeb_state, screen_update_galeb)
MCFG_GFXDECODE( galeb )
diff --git a/src/mess/drivers/gamepock.c b/src/mess/drivers/gamepock.c
index 607d33ea25e..830ed214814 100644
--- a/src/mess/drivers/gamepock.c
+++ b/src/mess/drivers/gamepock.c
@@ -85,7 +85,7 @@ static MACHINE_CONFIG_START( gamepock, gamepock_state )
MCFG_SCREEN_REFRESH_RATE( 60 )
MCFG_SCREEN_SIZE( 75, 64 )
MCFG_SCREEN_VISIBLE_AREA( 0, 74, 0, 63 )
- MCFG_SCREEN_UPDATE_STATIC( gamepock )
+ MCFG_SCREEN_UPDATE_DRIVER(gamepock_state, screen_update_gamepock)
MCFG_DEFAULT_LAYOUT(layout_lcd)
diff --git a/src/mess/drivers/gmaster.c b/src/mess/drivers/gmaster.c
index 0f482927ee9..3e0bda8ab9e 100644
--- a/src/mess/drivers/gmaster.c
+++ b/src/mess/drivers/gmaster.c
@@ -172,16 +172,15 @@ void gmaster_state::palette_init()
}
}
-static SCREEN_UPDATE_IND16( gmaster )
+UINT32 gmaster_state::screen_update_gmaster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- gmaster_state *state = screen.machine().driver_data<gmaster_state>();
int x,y;
// plot_box(bitmap, 0, 0, 64/*bitmap.width*/, bitmap.height, 0); //xmess rounds up to 64 pixel
- for (y = 0; y < ARRAY_LENGTH(state->m_video.pixels); y++)
+ for (y = 0; y < ARRAY_LENGTH(m_video.pixels); y++)
{
- for (x = 0; x < ARRAY_LENGTH(state->m_video.pixels[0]); x++)
+ for (x = 0; x < ARRAY_LENGTH(m_video.pixels[0]); x++)
{
- UINT8 d = state->m_video.pixels[y][x];
+ UINT8 d = m_video.pixels[y][x];
UINT16 *line;
line = &bitmap.pix16((y * 8), x);
@@ -228,7 +227,7 @@ static MACHINE_CONFIG_START( gmaster, gmaster_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(64, 64)
MCFG_SCREEN_VISIBLE_AREA(0, 64-1-3, 0, 64-1)
- MCFG_SCREEN_UPDATE_STATIC(gmaster)
+ MCFG_SCREEN_UPDATE_DRIVER(gmaster_state, screen_update_gmaster)
MCFG_PALETTE_LENGTH(sizeof(gmaster_palette)/sizeof(gmaster_palette[0]))
MCFG_DEFAULT_LAYOUT(layout_lcd)
diff --git a/src/mess/drivers/gp2x.c b/src/mess/drivers/gp2x.c
index a7d3de91942..336a339b347 100644
--- a/src/mess/drivers/gp2x.c
+++ b/src/mess/drivers/gp2x.c
@@ -49,6 +49,7 @@ public:
UINT32 m_nand_stage;
UINT32 m_nand_ptr_temp;
UINT32 m_timer;
+ UINT32 screen_update_gp2x(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -140,24 +141,23 @@ static const char *const gp2x_regnames[0x200] =
"YUV Source region A H",
};
#endif
-static SCREEN_UPDATE_RGB32( gp2x )
+UINT32 gp2x_state::screen_update_gp2x(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- gp2x_state *state = screen.machine().driver_data<gp2x_state>();
// display enabled?
- if (state->m_vidregs[0] & 1)
+ if (m_vidregs[0] & 1)
{
// only support RGB still image layer for now
- if (state->m_vidregs[0x80/2] & 4)
+ if (m_vidregs[0x80/2] & 4)
{
int x, y;
- UINT16 *vram = (UINT16 *)&state->m_ram[0x2100000/4];
+ UINT16 *vram = (UINT16 *)&m_ram[0x2100000/4];
/* printf("RGB still image 1 enabled, bpp %d, size is %d %d %d %d\n",
- (state->m_vidregs[(0xda/2)]>>9)&3,
- state->m_vidregs[(0xe2/2)],
- state->m_vidregs[(0xe4/2)],
- state->m_vidregs[(0xe6/2)],
- state->m_vidregs[(0xe8/2)]);*/
+ (m_vidregs[(0xda/2)]>>9)&3,
+ m_vidregs[(0xe2/2)],
+ m_vidregs[(0xe4/2)],
+ m_vidregs[(0xe6/2)],
+ m_vidregs[(0xe8/2)]);*/
for (y = 0; y < 240; y++)
@@ -362,7 +362,7 @@ static MACHINE_CONFIG_START( gp2x, gp2x_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(gp2x)
+ MCFG_SCREEN_UPDATE_DRIVER(gp2x_state, screen_update_gp2x)
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
MACHINE_CONFIG_END
diff --git a/src/mess/drivers/gp32.c b/src/mess/drivers/gp32.c
index 2928f382ecd..ff16c798ab9 100644
--- a/src/mess/drivers/gp32.c
+++ b/src/mess/drivers/gp32.c
@@ -291,12 +291,10 @@ void gp32_state::video_start()
machine().primary_screen->register_screen_bitmap(m_bitmap);
}
-static SCREEN_UPDATE_RGB32( gp32 )
+UINT32 gp32_state::screen_update_gp32(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- gp32_state *state = screen.machine().driver_data<gp32_state>();
- running_machine &machine = screen.machine();
- copybitmap(bitmap, state->m_bitmap, 0, 0, 0, 0, cliprect);
- s3c240x_lcd_dma_init( machine);
+ copybitmap(bitmap, m_bitmap, 0, 0, 0, 0, cliprect);
+ s3c240x_lcd_dma_init( machine());
return 0;
}
@@ -1746,7 +1744,7 @@ static MACHINE_CONFIG_START( gp32, gp32_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(240, 320)
MCFG_SCREEN_VISIBLE_AREA(0, 239, 0, 319)
- MCFG_SCREEN_UPDATE_STATIC(gp32)
+ MCFG_SCREEN_UPDATE_DRIVER(gp32_state, screen_update_gp32)
/* 320x240 is 4:3 but ROT270 causes an aspect ratio of 3:4 by default */
MCFG_DEFAULT_LAYOUT(layout_lcd_rot)
diff --git a/src/mess/drivers/hec2hrp.c b/src/mess/drivers/hec2hrp.c
index d9b4ae80880..0eed66f9b7a 100644
--- a/src/mess/drivers/hec2hrp.c
+++ b/src/mess/drivers/hec2hrp.c
@@ -450,7 +450,7 @@ static MACHINE_CONFIG_START( hec2hr, hec2hrp_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(400)) /* 2500 not accurate */
MCFG_SCREEN_SIZE(512, 230)
MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227)
- MCFG_SCREEN_UPDATE_STATIC(hec2hrp)
+ MCFG_SCREEN_UPDATE_DRIVER(hec2hrp_state, screen_update_hec2hrp)
MCFG_PALETTE_LENGTH(16)
MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp)
@@ -493,7 +493,7 @@ static MACHINE_CONFIG_START( hec2hrp, hec2hrp_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(400)) /* 2500 not accurate */
MCFG_SCREEN_SIZE(512, 230)
MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227)
- MCFG_SCREEN_UPDATE_STATIC(hec2hrp)
+ MCFG_SCREEN_UPDATE_DRIVER(hec2hrp_state, screen_update_hec2hrp)
MCFG_PALETTE_LENGTH(16)
MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp)
@@ -543,7 +543,7 @@ static MACHINE_CONFIG_START( hec2mx40, hec2hrp_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(400)) /* 2500 not accurate */
MCFG_SCREEN_SIZE(512, 230)
MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227)
- MCFG_SCREEN_UPDATE_STATIC(hec2hrp)
+ MCFG_SCREEN_UPDATE_DRIVER(hec2hrp_state, screen_update_hec2hrp)
MCFG_PALETTE_LENGTH(16)
MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp)
@@ -592,7 +592,7 @@ static MACHINE_CONFIG_START( hec2hrx, hec2hrp_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(400)) /* 2500 not accurate */
MCFG_SCREEN_SIZE(512, 230)
MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227)
- MCFG_SCREEN_UPDATE_STATIC(hec2hrp)
+ MCFG_SCREEN_UPDATE_DRIVER(hec2hrp_state, screen_update_hec2hrp)
MCFG_PALETTE_LENGTH(16)
MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp)
@@ -639,7 +639,7 @@ static MACHINE_CONFIG_START( hec2mdhrx, hec2hrp_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(400)) /* 2500 not accurate */
MCFG_SCREEN_SIZE(512, 230)
MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227)
- MCFG_SCREEN_UPDATE_STATIC(hec2hrp)
+ MCFG_SCREEN_UPDATE_DRIVER(hec2hrp_state, screen_update_hec2hrp)
MCFG_PALETTE_LENGTH(16)
MCFG_PALETTE_INIT(black_and_white)
@@ -690,7 +690,7 @@ static MACHINE_CONFIG_START( hec2mx80, hec2hrp_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(400)) /* 2500 not accurate */
MCFG_SCREEN_SIZE(512, 230)
MCFG_SCREEN_VISIBLE_AREA(0, 243, 0, 227)
- MCFG_SCREEN_UPDATE_STATIC(hec2hrp)
+ MCFG_SCREEN_UPDATE_DRIVER(hec2hrp_state, screen_update_hec2hrp)
MCFG_PALETTE_LENGTH(16)
MCFG_VIDEO_START_OVERRIDE(hec2hrp_state,hec2hrp)
diff --git a/src/mess/drivers/homelab.c b/src/mess/drivers/homelab.c
index 5e2824e2f02..88ba03d727c 100644
--- a/src/mess/drivers/homelab.c
+++ b/src/mess/drivers/homelab.c
@@ -71,6 +71,8 @@ public:
DECLARE_VIDEO_START(homelab3);
DECLARE_MACHINE_RESET(brailab4);
DECLARE_VIDEO_START(brailab4);
+ UINT32 screen_update_homelab2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_homelab3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
static INTERRUPT_GEN( homelab_frame )
@@ -558,9 +560,8 @@ VIDEO_START_MEMBER(homelab_state,brailab4)
m_p_videoram = memregion("maincpu")->base()+0x17800;
}
-static SCREEN_UPDATE_IND16( homelab2 )
+UINT32 homelab_state::screen_update_homelab2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- homelab_state *state = screen.machine().driver_data<homelab_state>();
UINT8 y,ra,chr,gfx;
UINT16 sy=0,ma=0,x;
@@ -572,8 +573,8 @@ static SCREEN_UPDATE_IND16( homelab2 )
for (x = ma; x < ma + 40; x++)
{
- chr = state->m_p_videoram[x]; // get char in videoram
- gfx = state->m_p_chargen[chr | (ra<<8)]; // get dot pattern in chargen
+ chr = m_p_videoram[x]; // get char in videoram
+ gfx = m_p_chargen[chr | (ra<<8)]; // get dot pattern in chargen
/* Display a scanline of a character */
*p++ = BIT(gfx, 7);
@@ -591,9 +592,8 @@ static SCREEN_UPDATE_IND16( homelab2 )
return 0;
}
-static SCREEN_UPDATE_IND16( homelab3 )
+UINT32 homelab_state::screen_update_homelab3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- homelab_state *state = screen.machine().driver_data<homelab_state>();
UINT8 y,ra,chr,gfx;
UINT16 sy=0,ma=0,x;
@@ -605,8 +605,8 @@ static SCREEN_UPDATE_IND16( homelab3 )
for (x = ma; x < ma + 64; x++)
{
- chr = state->m_p_videoram[x]; // get char in videoram
- gfx = state->m_p_chargen[chr | (ra<<8)]; // get dot pattern in chargen
+ chr = m_p_videoram[x]; // get char in videoram
+ gfx = m_p_chargen[chr | (ra<<8)]; // get dot pattern in chargen
/* Display a scanline of a character */
*p++ = BIT(gfx, 7);
@@ -750,7 +750,7 @@ static MACHINE_CONFIG_START( homelab, homelab_state )
MCFG_SCREEN_SIZE(40*8, 25*8)
MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 25*8-1)
MCFG_VIDEO_START_OVERRIDE(homelab_state,homelab2)
- MCFG_SCREEN_UPDATE_STATIC(homelab2)
+ MCFG_SCREEN_UPDATE_DRIVER(homelab_state, screen_update_homelab2)
MCFG_GFXDECODE(homelab)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(monochrome_green)
@@ -780,7 +780,7 @@ static MACHINE_CONFIG_START( homelab3, homelab_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1)
MCFG_VIDEO_START_OVERRIDE(homelab_state,homelab3)
- MCFG_SCREEN_UPDATE_STATIC(homelab3)
+ MCFG_SCREEN_UPDATE_DRIVER(homelab_state, screen_update_homelab3)
MCFG_GFXDECODE(homelab)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(monochrome_green)
@@ -810,7 +810,7 @@ static MACHINE_CONFIG_START( brailab4, homelab_state )
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1)
MCFG_VIDEO_START_OVERRIDE(homelab_state,brailab4)
- MCFG_SCREEN_UPDATE_STATIC(homelab3)
+ MCFG_SCREEN_UPDATE_DRIVER(homelab_state, screen_update_homelab3)
MCFG_GFXDECODE(homelab)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(monochrome_green)
diff --git a/src/mess/drivers/hp16500.c b/src/mess/drivers/hp16500.c
index c247e2992a8..ed98893ca18 100644
--- a/src/mess/drivers/hp16500.c
+++ b/src/mess/drivers/hp16500.c
@@ -29,6 +29,7 @@ public:
: driver_device(mconfig, type, tag) { }
virtual void video_start();
+ UINT32 screen_update_hp16500(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -42,7 +43,7 @@ void hp16500_state::video_start()
{
}
-static SCREEN_UPDATE_RGB32( hp16500 )
+UINT32 hp16500_state::screen_update_hp16500(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -58,7 +59,7 @@ static MACHINE_CONFIG_START( hp16500, hp16500_state )
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_SCREEN_SIZE(1024, 768)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(hp16500)
+ MCFG_SCREEN_UPDATE_DRIVER(hp16500_state, screen_update_hp16500)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mess/drivers/hp48.c b/src/mess/drivers/hp48.c
index 73cff196b74..ec4f9eb5d19 100644
--- a/src/mess/drivers/hp48.c
+++ b/src/mess/drivers/hp48.c
@@ -953,7 +953,7 @@ static MACHINE_CONFIG_START( hp48_common, hp48_state )
MCFG_SCREEN_VBLANK_TIME(0)
MCFG_SCREEN_SIZE ( 131, 64 )
MCFG_SCREEN_VISIBLE_AREA( 0, 130, 0, 63 )
- MCFG_SCREEN_UPDATE_STATIC( hp48 )
+ MCFG_SCREEN_UPDATE_DRIVER(hp48_state, screen_update_hp48)
MCFG_PALETTE_LENGTH( 256 ) /* monochrome, but with varying contrast and grayscale */
diff --git a/src/mess/drivers/hp9k.c b/src/mess/drivers/hp9k.c
index e9f929e8248..e09d9cbf704 100644
--- a/src/mess/drivers/hp9k.c
+++ b/src/mess/drivers/hp9k.c
@@ -27,6 +27,7 @@ public:
required_shared_ptr<UINT16> m_p_videoram;
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_hp9k(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -71,7 +72,7 @@ void hp9k_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( hp9k )
+UINT32 hp9k_state::screen_update_hp9k(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -88,7 +89,7 @@ static MACHINE_CONFIG_START( hp9k, hp9k_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(hp9k)
+ MCFG_SCREEN_UPDATE_DRIVER(hp9k_state, screen_update_hp9k)
MCFG_GFXDECODE(hp9k)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/hx20.c b/src/mess/drivers/hx20.c
index ad43c688edd..75b12ef5f07 100644
--- a/src/mess/drivers/hx20.c
+++ b/src/mess/drivers/hx20.c
@@ -18,6 +18,7 @@ public:
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_ehx20(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -39,7 +40,7 @@ void hx20_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( ehx20 )
+UINT32 hx20_state::screen_update_ehx20(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -102,7 +103,7 @@ static MACHINE_CONFIG_START( ehx20, hx20_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(ehx20)
+ MCFG_SCREEN_UPDATE_DRIVER(hx20_state, screen_update_ehx20)
MCFG_GFXDECODE(hx20)
MCFG_PALETTE_LENGTH(2)
diff --git a/src/mess/drivers/interact.c b/src/mess/drivers/interact.c
index 0c395f5a20b..4d0705bff84 100644
--- a/src/mess/drivers/interact.c
+++ b/src/mess/drivers/interact.c
@@ -72,6 +72,7 @@ public:
required_shared_ptr<UINT8> m_videoram;
DECLARE_MACHINE_START(interact);
DECLARE_MACHINE_RESET(interact);
+ UINT32 screen_update_interact(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -129,10 +130,9 @@ MACHINE_START_MEMBER(interact_state,interact)
hector_init(machine());
}
-static SCREEN_UPDATE_IND16( interact )
+UINT32 interact_state::screen_update_interact(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- interact_state *state = screen.machine().driver_data<interact_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
screen.set_visible_area(0, 113, 0, 75);
hector_hr( screen.machine(), bitmap, videoram, 77, 32);
return 0;
@@ -154,7 +154,7 @@ static MACHINE_CONFIG_START( interact, interact_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(256, 79)
MCFG_SCREEN_VISIBLE_AREA(0, 112, 0, 77)
- MCFG_SCREEN_UPDATE_STATIC(interact)
+ MCFG_SCREEN_UPDATE_DRIVER(interact_state, screen_update_interact)
MCFG_PALETTE_LENGTH(16) /* 8 colours, but only 4 at a time*/
@@ -195,7 +195,7 @@ static MACHINE_CONFIG_START( hector1, interact_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(256, 79)
MCFG_SCREEN_VISIBLE_AREA(0, 112, 0, 77)
- MCFG_SCREEN_UPDATE_STATIC(interact)
+ MCFG_SCREEN_UPDATE_DRIVER(interact_state, screen_update_interact)
MCFG_PALETTE_LENGTH(16) /* 8 colours, but only 4 at a time*/
diff --git a/src/mess/drivers/intv.c b/src/mess/drivers/intv.c
index c6c965044d7..98097935096 100644
--- a/src/mess/drivers/intv.c
+++ b/src/mess/drivers/intv.c
@@ -819,7 +819,7 @@ static MACHINE_CONFIG_START( intv, intv_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(59.92)
//MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2400)) /* not accurate */
- MCFG_SCREEN_UPDATE_STATIC(intv)
+ MCFG_SCREEN_UPDATE_DRIVER(intv_state, screen_update_intv)
MCFG_SCREEN_SIZE((STIC_OVERSCAN_LEFT_WIDTH+STIC_BACKTAB_WIDTH*STIC_CARD_WIDTH-1+STIC_OVERSCAN_RIGHT_WIDTH)*STIC_X_SCALE*INTV_X_SCALE, (STIC_OVERSCAN_TOP_HEIGHT+STIC_BACKTAB_HEIGHT*STIC_CARD_HEIGHT+STIC_OVERSCAN_BOTTOM_HEIGHT)*STIC_Y_SCALE*INTV_Y_SCALE)
MCFG_SCREEN_VISIBLE_AREA(0, (STIC_OVERSCAN_LEFT_WIDTH+STIC_BACKTAB_WIDTH*STIC_CARD_WIDTH-1+STIC_OVERSCAN_RIGHT_WIDTH)*STIC_X_SCALE*INTV_X_SCALE-1, 0, (STIC_OVERSCAN_TOP_HEIGHT+STIC_BACKTAB_HEIGHT*STIC_CARD_HEIGHT+STIC_OVERSCAN_BOTTOM_HEIGHT)*STIC_Y_SCALE*INTV_Y_SCALE-1)
@@ -883,7 +883,7 @@ static MACHINE_CONFIG_DERIVED( intvkbd, intv )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_SIZE((STIC_OVERSCAN_LEFT_WIDTH+STIC_BACKTAB_WIDTH*STIC_CARD_WIDTH-1+STIC_OVERSCAN_RIGHT_WIDTH)*STIC_X_SCALE*INTVKBD_X_SCALE, (STIC_OVERSCAN_TOP_HEIGHT+STIC_BACKTAB_HEIGHT*STIC_CARD_HEIGHT+STIC_OVERSCAN_BOTTOM_HEIGHT)*STIC_Y_SCALE*INTVKBD_Y_SCALE)
MCFG_SCREEN_VISIBLE_AREA(0, (STIC_OVERSCAN_LEFT_WIDTH+STIC_BACKTAB_WIDTH*STIC_CARD_WIDTH-1+STIC_OVERSCAN_RIGHT_WIDTH)*STIC_X_SCALE*INTVKBD_X_SCALE-1, 0, (STIC_OVERSCAN_TOP_HEIGHT+STIC_BACKTAB_HEIGHT*STIC_CARD_HEIGHT+STIC_OVERSCAN_BOTTOM_HEIGHT)*STIC_Y_SCALE*INTVKBD_Y_SCALE-1)
- MCFG_SCREEN_UPDATE_STATIC(intvkbd)
+ MCFG_SCREEN_UPDATE_DRIVER(intv_state, screen_update_intvkbd)
/* cartridge */
MCFG_DEVICE_REMOVE("cart")
diff --git a/src/mess/drivers/ip20.c b/src/mess/drivers/ip20.c
index 317a9327f1a..9038ef93898 100644
--- a/src/mess/drivers/ip20.c
+++ b/src/mess/drivers/ip20.c
@@ -62,6 +62,7 @@ public:
DECLARE_DRIVER_INIT(ip204415);
virtual void machine_start();
virtual void video_start();
+ UINT32 screen_update_ip204415(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -84,7 +85,7 @@ void ip20_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( ip204415 )
+UINT32 ip20_state::screen_update_ip204415(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -593,7 +594,7 @@ static MACHINE_CONFIG_START( ip204415, ip20_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(800, 600)
MCFG_SCREEN_VISIBLE_AREA(0, 799, 0, 599)
- MCFG_SCREEN_UPDATE_STATIC( ip204415 )
+ MCFG_SCREEN_UPDATE_DRIVER(ip20_state, screen_update_ip204415)
MCFG_PALETTE_LENGTH(65536)
diff --git a/src/mess/drivers/ipds.c b/src/mess/drivers/ipds.c
index 02d3f44b7aa..27a5f89a9b8 100644
--- a/src/mess/drivers/ipds.c
+++ b/src/mess/drivers/ipds.c
@@ -32,6 +32,7 @@ public:
bitmap_ind16 m_bitmap;
virtual void video_start();
virtual void machine_reset();
+ UINT32 screen_update_ipds(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
READ8_MEMBER( ipds_state::ipds_b0_r )
@@ -114,12 +115,11 @@ const i8275_interface ipds_i8275_interface =
ipds_display_pixels
};
-static SCREEN_UPDATE_IND16( ipds )
+UINT32 ipds_state::screen_update_ipds(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ipds_state *state = screen.machine().driver_data<ipds_state>();
device_t *devconf = screen.machine().device("i8275");
i8275_update( devconf, bitmap, cliprect);
- copybitmap(bitmap, state->m_bitmap, 0, 0, 0, 0, cliprect);
+ copybitmap(bitmap, m_bitmap, 0, 0, 0, 0, cliprect);
return 0;
}
@@ -165,7 +165,7 @@ static MACHINE_CONFIG_START( ipds, ipds_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(ipds)
+ MCFG_SCREEN_UPDATE_DRIVER(ipds_state, screen_update_ipds)
MCFG_GFXDECODE(ipds)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(monochrome_green)
diff --git a/src/mess/drivers/jr100.c b/src/mess/drivers/jr100.c
index 28e6bf2fb3d..e140030143a 100644
--- a/src/mess/drivers/jr100.c
+++ b/src/mess/drivers/jr100.c
@@ -42,6 +42,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_jr100(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -173,22 +174,21 @@ void jr100_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( jr100 )
+UINT32 jr100_state::screen_update_jr100(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- jr100_state *state = screen.machine().driver_data<jr100_state>();
int x,y,xi,yi;
- UINT8 *rom_pcg = state->memregion("maincpu")->base() + 0xe000;
+ UINT8 *rom_pcg = memregion("maincpu")->base() + 0xe000;
for (y = 0; y < 24; y++)
{
for (x = 0; x < 32; x++)
{
- UINT8 tile = state->m_vram[x + y*32];
+ UINT8 tile = m_vram[x + y*32];
UINT8 attr = tile >> 7;
// ATTR is inverted for normal char or use PCG in case of CMODE1
UINT8 *gfx_data = rom_pcg;
- if (state->m_use_pcg && attr) {
- gfx_data = state->m_pcg;
+ if (m_use_pcg && attr) {
+ gfx_data = m_pcg;
attr = 0; // clear attr so bellow code stay same
}
tile &= 0x7f;
@@ -365,7 +365,7 @@ static MACHINE_CONFIG_START( jr100, jr100_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(256, 192) /* border size not accurate */
MCFG_SCREEN_VISIBLE_AREA(0, 256 - 1, 0, 192 - 1)
- MCFG_SCREEN_UPDATE_STATIC(jr100)
+ MCFG_SCREEN_UPDATE_DRIVER(jr100_state, screen_update_jr100)
MCFG_GFXDECODE(jr100)
MCFG_PALETTE_LENGTH(2)
diff --git a/src/mess/drivers/jr200.c b/src/mess/drivers/jr200.c
index fd810839766..d1c5aa28e9f 100644
--- a/src/mess/drivers/jr200.c
+++ b/src/mess/drivers/jr200.c
@@ -52,6 +52,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_jr200(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -117,19 +118,18 @@ void jr200_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( jr200 )
+UINT32 jr200_state::screen_update_jr200(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- jr200_state *state = screen.machine().driver_data<jr200_state>();
int x,y,xi,yi,pen;
- bitmap.fill(state->m_border_col, cliprect);
+ bitmap.fill(m_border_col, cliprect);
for (y = 0; y < 24; y++)
{
for (x = 0; x < 32; x++)
{
- UINT8 tile = state->m_vram[x + y*32];
- UINT8 attr = state->m_cram[x + y*32];
+ UINT8 tile = m_vram[x + y*32];
+ UINT8 attr = m_cram[x + y*32];
for(yi=0;yi<8;yi++)
{
@@ -516,7 +516,7 @@ static MACHINE_CONFIG_START( jr200, jr200_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(16 + 256 + 16, 16 + 192 + 16) /* border size not accurate */
MCFG_SCREEN_VISIBLE_AREA(0, 16 + 256 + 16 - 1, 0, 16 + 192 + 16 - 1)
- MCFG_SCREEN_UPDATE_STATIC(jr200)
+ MCFG_SCREEN_UPDATE_DRIVER(jr200_state, screen_update_jr200)
MCFG_GFXDECODE(jr200)
MCFG_PALETTE_LENGTH(8)
diff --git a/src/mess/drivers/kaypro.c b/src/mess/drivers/kaypro.c
index 1d747d32548..4f85564c886 100644
--- a/src/mess/drivers/kaypro.c
+++ b/src/mess/drivers/kaypro.c
@@ -252,7 +252,7 @@ static MACHINE_CONFIG_START( kayproii, kaypro_state )
MCFG_SCREEN_SIZE(80*7, 24*10)
MCFG_SCREEN_VISIBLE_AREA(0,80*7-1,0,24*10-1)
MCFG_VIDEO_START_OVERRIDE(kaypro_state, kaypro )
- MCFG_SCREEN_UPDATE_STATIC( kayproii )
+ MCFG_SCREEN_UPDATE_DRIVER(kaypro_state, screen_update_kayproii)
MCFG_GFXDECODE(kayproii)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(monochrome_green)
@@ -296,7 +296,7 @@ static MACHINE_CONFIG_START( kaypro2x, kaypro_state )
MCFG_SCREEN_SIZE(80*8, 25*16)
MCFG_SCREEN_VISIBLE_AREA(0,80*8-1,0,25*16-1)
MCFG_VIDEO_START_OVERRIDE(kaypro_state, kaypro )
- MCFG_SCREEN_UPDATE_STATIC( kaypro2x )
+ MCFG_SCREEN_UPDATE_DRIVER(kaypro_state, screen_update_kaypro2x)
MCFG_GFXDECODE(kaypro2x)
MCFG_PALETTE_LENGTH(3)
MCFG_PALETTE_INIT_OVERRIDE(kaypro_state,kaypro)
@@ -320,7 +320,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( omni2, kaypro4 )
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC( omni2 )
+ MCFG_SCREEN_UPDATE_DRIVER(kaypro_state, screen_update_omni2)
MACHINE_CONFIG_END
/***********************************************************
diff --git a/src/mess/drivers/konin.c b/src/mess/drivers/konin.c
index 0f131eb9b1b..5e342eb9fb2 100644
--- a/src/mess/drivers/konin.c
+++ b/src/mess/drivers/konin.c
@@ -39,6 +39,7 @@ public:
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_konin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
static ADDRESS_MAP_START( konin_mem, AS_PROGRAM, 8, konin_state )
@@ -65,7 +66,7 @@ void konin_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( konin )
+UINT32 konin_state::screen_update_konin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -83,7 +84,7 @@ static MACHINE_CONFIG_START( konin, konin_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(konin)
+ MCFG_SCREEN_UPDATE_DRIVER(konin_state, screen_update_konin)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
MACHINE_CONFIG_END
diff --git a/src/mess/drivers/kramermc.c b/src/mess/drivers/kramermc.c
index 6239359e654..06e7da7dd56 100644
--- a/src/mess/drivers/kramermc.c
+++ b/src/mess/drivers/kramermc.c
@@ -118,7 +118,7 @@ static MACHINE_CONFIG_START( kramermc, kramermc_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(64*8, 16*8)
MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 16*8-1)
- MCFG_SCREEN_UPDATE_STATIC(kramermc)
+ MCFG_SCREEN_UPDATE_DRIVER(kramermc_state, screen_update_kramermc)
MCFG_GFXDECODE( kramermc )
diff --git a/src/mess/drivers/lisa.c b/src/mess/drivers/lisa.c
index 2f350a7c728..e811d5fef85 100644
--- a/src/mess/drivers/lisa.c
+++ b/src/mess/drivers/lisa.c
@@ -156,7 +156,7 @@ static MACHINE_CONFIG_START( lisa, lisa_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(880, 380)
MCFG_SCREEN_VISIBLE_AREA(0, 720-1, 0, 364-1)
- MCFG_SCREEN_UPDATE_STATIC(lisa)
+ MCFG_SCREEN_UPDATE_DRIVER(lisa_state, screen_update_lisa)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/llc.c b/src/mess/drivers/llc.c
index 07034d1d917..c22ee35a9d1 100644
--- a/src/mess/drivers/llc.c
+++ b/src/mess/drivers/llc.c
@@ -211,7 +211,7 @@ static MACHINE_CONFIG_START( llc1, llc_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(64*8, 16*8)
MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 16*8-1)
- MCFG_SCREEN_UPDATE_STATIC(llc1)
+ MCFG_SCREEN_UPDATE_DRIVER(llc_state, screen_update_llc1)
MCFG_GFXDECODE(llc1)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
@@ -238,7 +238,7 @@ static MACHINE_CONFIG_START( llc2, llc_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(llc2)
+ MCFG_SCREEN_UPDATE_DRIVER(llc_state, screen_update_llc2)
MCFG_GFXDECODE(llc2)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/lviv.c b/src/mess/drivers/lviv.c
index d0db3da5162..bfd6c59a820 100644
--- a/src/mess/drivers/lviv.c
+++ b/src/mess/drivers/lviv.c
@@ -445,7 +445,7 @@ static MACHINE_CONFIG_START( lviv, lviv_state )
/* video hardware */
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC( lviv )
+ MCFG_SCREEN_UPDATE_DRIVER(lviv_state, screen_update_lviv)
MCFG_PALETTE_LENGTH(sizeof (lviv_palette) / 3)
diff --git a/src/mess/drivers/m20.c b/src/mess/drivers/m20.c
index 5dff929d1fa..e32a4ac7be0 100644
--- a/src/mess/drivers/m20.c
+++ b/src/mess/drivers/m20.c
@@ -94,6 +94,7 @@ private:
public:
DECLARE_DRIVER_INIT(m20);
virtual void video_start();
+ UINT32 screen_update_m20(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -105,9 +106,8 @@ void m20_state::video_start()
{
}
-static SCREEN_UPDATE_RGB32( m20 )
+UINT32 m20_state::screen_update_m20(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- m20_state *state = screen.machine().driver_data<m20_state>();
int x,y,i;
UINT8 pen;
UINT32 count;
@@ -122,7 +122,7 @@ static SCREEN_UPDATE_RGB32( m20 )
{
for (i = 0; i < 16; i++)
{
- pen = (state->m_p_videoram[count]) >> (15 - i) & 1;
+ pen = (m_p_videoram[count]) >> (15 - i) & 1;
if (screen.visible_area().contains(x + i, y))
bitmap.pix32(y, x + i) = screen.machine().pens[pen];
@@ -546,7 +546,7 @@ static MACHINE_CONFIG_START( m20, m20_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(m20)
+ MCFG_SCREEN_UPDATE_DRIVER(m20_state, screen_update_m20)
MCFG_PALETTE_LENGTH(4)
/* Devices */
diff --git a/src/mess/drivers/m79152pc.c b/src/mess/drivers/m79152pc.c
index 7fbeba1e4bc..b9238a01a9e 100644
--- a/src/mess/drivers/m79152pc.c
+++ b/src/mess/drivers/m79152pc.c
@@ -24,6 +24,7 @@ public:
required_shared_ptr<UINT8> m_p_attributes;
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_m79152pc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
static ADDRESS_MAP_START(m79152pc_mem, AS_PROGRAM, 8, m79152pc_state)
@@ -53,10 +54,9 @@ void m79152pc_state::video_start()
m_p_chargen = memregion("chargen")->base()+4;
}
-static SCREEN_UPDATE_IND16( m79152pc )
+UINT32 m79152pc_state::screen_update_m79152pc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
// Attributes are unknown so are not implemented
- m79152pc_state *state = screen.machine().driver_data<m79152pc_state>();
UINT8 y,ra,chr,gfx; //,attr;
UINT16 sy=0,ma=0,x;
@@ -68,9 +68,9 @@ static SCREEN_UPDATE_IND16( m79152pc )
for (x = ma; x < ma + 80; x++)
{
- chr = state->m_p_videoram[x];
- //attr = state->m_p_attributes[x];
- gfx = state->m_p_chargen[(chr<<4) | ra ];
+ chr = m_p_videoram[x];
+ //attr = m_p_attributes[x];
+ gfx = m_p_chargen[(chr<<4) | ra ];
/* Display a scanline of a character */
*p++ = BIT(gfx, 7);
@@ -119,7 +119,7 @@ static MACHINE_CONFIG_START( m79152pc, m79152pc_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 300)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 300-1)
- MCFG_SCREEN_UPDATE_STATIC(m79152pc)
+ MCFG_SCREEN_UPDATE_DRIVER(m79152pc_state, screen_update_m79152pc)
MCFG_GFXDECODE(m79152pc)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/mac.c b/src/mess/drivers/mac.c
index dff689de30f..c837634eeac 100644
--- a/src/mess/drivers/mac.c
+++ b/src/mess/drivers/mac.c
@@ -886,7 +886,7 @@ static MACHINE_CONFIG_START( mac512ke, mac_state )
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_SCREEN_SIZE(MAC_H_TOTAL, MAC_V_TOTAL)
MCFG_SCREEN_VISIBLE_AREA(0, MAC_H_VIS-1, 0, MAC_V_VIS-1)
- MCFG_SCREEN_UPDATE_STATIC(mac)
+ MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_mac)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT_OVERRIDE(mac_state,mac)
@@ -969,7 +969,7 @@ static MACHINE_CONFIG_START( macprtb, mac_state )
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_SCREEN_SIZE(700, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 399)
- MCFG_SCREEN_UPDATE_STATIC(macprtb)
+ MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macprtb)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT_OVERRIDE(mac_state,mac)
@@ -1121,7 +1121,7 @@ static MACHINE_CONFIG_DERIVED( maclc, macii )
MCFG_SCREEN_RAW_PARAMS(25175000, 800, 0, 640, 525, 0, 480)
MCFG_SCREEN_SIZE(1024,768)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(macrbvvram)
+ MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macrbvvram)
MCFG_RAM_MODIFY(RAM_TAG)
MCFG_RAM_DEFAULT_SIZE("2M")
@@ -1170,7 +1170,7 @@ static MACHINE_CONFIG_DERIVED( maclc3, maclc )
MCFG_VIDEO_RESET_OVERRIDE(mac_state,macsonora)
MCFG_SCREEN_MODIFY(MAC_SCREEN_NAME)
- MCFG_SCREEN_UPDATE_STATIC(macrbvvram)
+ MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macrbvvram)
MCFG_RAM_MODIFY(RAM_TAG)
MCFG_RAM_DEFAULT_SIZE("4M")
@@ -1199,7 +1199,7 @@ static MACHINE_CONFIG_DERIVED( maciivx, maclc )
MCFG_VIDEO_RESET_OVERRIDE(mac_state,macrbv)
MCFG_SCREEN_MODIFY(MAC_SCREEN_NAME)
- MCFG_SCREEN_UPDATE_STATIC(macrbvvram)
+ MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macrbvvram)
MCFG_NUBUS_BUS_ADD("nubus", "maincpu", nubus_intf)
MCFG_NUBUS_SLOT_ADD("nubus","nbc", mac_nubus_cards, NULL, NULL)
@@ -1223,7 +1223,7 @@ static MACHINE_CONFIG_DERIVED( maciivi, maclc )
MCFG_VIDEO_RESET_OVERRIDE(mac_state,macrbv)
MCFG_SCREEN_MODIFY(MAC_SCREEN_NAME)
- MCFG_SCREEN_UPDATE_STATIC(macrbvvram)
+ MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macrbvvram)
MCFG_NUBUS_BUS_ADD("nubus", "maincpu", nubus_intf)
MCFG_NUBUS_SLOT_ADD("nubus","nbc", mac_nubus_cards, NULL, NULL)
@@ -1265,7 +1265,7 @@ static MACHINE_CONFIG_START( macse30, mac_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1260))
MCFG_SCREEN_SIZE(MAC_H_TOTAL, MAC_V_TOTAL)
MCFG_SCREEN_VISIBLE_AREA(0, MAC_H_VIS-1, 0, MAC_V_VIS-1)
- MCFG_SCREEN_UPDATE_STATIC(macse30)
+ MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macse30)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT_OVERRIDE(mac_state,mac)
@@ -1316,7 +1316,7 @@ static MACHINE_CONFIG_START( macpb140, mac_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1260))
MCFG_SCREEN_SIZE(700, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 399)
- MCFG_SCREEN_UPDATE_STATIC(macpb140)
+ MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macpb140)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT_OVERRIDE(mac_state,mac)
@@ -1387,7 +1387,7 @@ static MACHINE_CONFIG_START( macpb160, mac_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1260))
MCFG_SCREEN_SIZE(700, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 399)
- MCFG_SCREEN_UPDATE_STATIC(macpb160)
+ MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macpb160)
MCFG_PALETTE_LENGTH(16)
MCFG_PALETTE_INIT_OVERRIDE(mac_state,macgsc)
@@ -1442,7 +1442,7 @@ static MACHINE_CONFIG_DERIVED( macpb180c, macpb160 )
MCFG_SCREEN_MODIFY(MAC_SCREEN_NAME)
MCFG_SCREEN_SIZE(800, 525)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(macpbwd)
+ MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macpbwd)
MCFG_RAM_MODIFY(RAM_TAG)
MCFG_RAM_DEFAULT_SIZE("4M")
@@ -1469,7 +1469,7 @@ static MACHINE_CONFIG_DERIVED( macclas2, maclc )
MCFG_SCREEN_MODIFY(MAC_SCREEN_NAME)
MCFG_SCREEN_SIZE(MAC_H_TOTAL, MAC_V_TOTAL)
MCFG_SCREEN_VISIBLE_AREA(0, MAC_H_VIS-1, 0, MAC_V_VIS-1)
- MCFG_SCREEN_UPDATE_STATIC(macrbv)
+ MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macrbv)
MCFG_ASC_REPLACE("asc", C15M, ASC_TYPE_EAGLE, mac_asc_irq)
MCFG_SOUND_ROUTE(0, "lspeaker", 1.0)
@@ -1502,7 +1502,7 @@ static MACHINE_CONFIG_DERIVED( maciici, macii )
MCFG_SCREEN_RAW_PARAMS(25175000, 800, 0, 640, 525, 0, 480)
MCFG_SCREEN_SIZE(640, 870)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(macrbv)
+ MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macrbv)
MCFG_DEFAULT_LAYOUT(layout_mac)
/* internal ram */
@@ -1534,7 +1534,7 @@ static MACHINE_CONFIG_DERIVED( maciisi, macii )
MCFG_SCREEN_RAW_PARAMS(25175000, 800, 0, 640, 525, 0, 480)
MCFG_SCREEN_SIZE(640, 870)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(macrbv)
+ MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macrbv)
/* internal ram */
MCFG_RAM_MODIFY(RAM_TAG)
@@ -1558,7 +1558,7 @@ static MACHINE_CONFIG_START( pwrmac, mac_state )
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_BEFORE_VBLANK)
MCFG_SCREEN_SIZE(1024, 768)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(macrbv)
+ MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macrbv)
MCFG_PALETTE_LENGTH(256)
@@ -1606,7 +1606,7 @@ static MACHINE_CONFIG_START( macqd700, mac_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1260))
MCFG_SCREEN_SIZE(1152, 870)
MCFG_SCREEN_VISIBLE_AREA(0, 1152-1, 0, 870-1)
- MCFG_SCREEN_UPDATE_STATIC(macdafb)
+ MCFG_SCREEN_UPDATE_DRIVER(mac_state, screen_update_macdafb)
MCFG_VIDEO_START_OVERRIDE(mac_state,macdafb)
MCFG_VIDEO_RESET_OVERRIDE(mac_state,macdafb)
diff --git a/src/mess/drivers/macpci.c b/src/mess/drivers/macpci.c
index 551e8fb02ab..b28794bb0d6 100644
--- a/src/mess/drivers/macpci.c
+++ b/src/mess/drivers/macpci.c
@@ -87,7 +87,7 @@ static VIDEO_START( pippin )
{
}
-static SCREEN_UPDATE_IND16( pippin )
+UINT32 macpci_state::screen_update_pippin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -116,7 +116,7 @@ static MACHINE_CONFIG_START( pippin, macpci_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(pippin)
+ MCFG_SCREEN_UPDATE_DRIVER(macpci_state, screen_update_pippin)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/mbc200.c b/src/mess/drivers/mbc200.c
index ac7ea7c2fa2..9dbc74ce6f8 100644
--- a/src/mess/drivers/mbc200.c
+++ b/src/mess/drivers/mbc200.c
@@ -62,6 +62,7 @@ public:
required_shared_ptr<UINT8> m_vram;
virtual void video_start();
+ UINT32 screen_update_mbc200(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -150,9 +151,8 @@ void mbc200_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( mbc200 )
+UINT32 mbc200_state::screen_update_mbc200(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mbc200_state *state = screen.machine().driver_data<mbc200_state>();
int x,y,xi,yi;
int count;
@@ -167,7 +167,7 @@ static SCREEN_UPDATE_IND16( mbc200 )
for(xi=0;xi<8;xi++)
{
UINT8 dot;
- dot = (state->m_vram[count] >> (7-xi)) & 1;
+ dot = (m_vram[count] >> (7-xi)) & 1;
if(y*4+yi < 400 && x*8+xi < 640) /* TODO: safety check */
bitmap.pix16(y*4+yi, x*8+xi) = screen.machine().pens[dot];
@@ -263,7 +263,7 @@ static MACHINE_CONFIG_START( mbc200, mbc200_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 400)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 400-1)
- MCFG_SCREEN_UPDATE_STATIC(mbc200)
+ MCFG_SCREEN_UPDATE_DRIVER(mbc200_state, screen_update_mbc200)
MCFG_GFXDECODE(mbc200)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/mbc55x.c b/src/mess/drivers/mbc55x.c
index 11aa6dcbebb..04f8247a8ef 100644
--- a/src/mess/drivers/mbc55x.c
+++ b/src/mess/drivers/mbc55x.c
@@ -239,7 +239,7 @@ static MACHINE_CONFIG_START( mbc55x, mbc55x_state )
MCFG_SCREEN_ADD(SCREEN_TAG, RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL_14_31818MHz,896,0,300,262,0,200)
MCFG_SCREEN_UPDATE_DEVICE(VID_MC6845_NAME, mc6845_device, screen_update)
- MCFG_SCREEN_VBLANK_STATIC(mbc55x)
+ MCFG_SCREEN_VBLANK_DRIVER(mbc55x_state, screen_eof_mbc55x)
MCFG_PALETTE_LENGTH(SCREEN_NO_COLOURS * 3)
diff --git a/src/mess/drivers/mbee.c b/src/mess/drivers/mbee.c
index 06492d3cde4..d9b41e4d9c3 100644
--- a/src/mess/drivers/mbee.c
+++ b/src/mess/drivers/mbee.c
@@ -682,7 +682,7 @@ static MACHINE_CONFIG_START( mbee, mbee_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(250)) /* not accurate */
MCFG_SCREEN_SIZE(64*8, 19*16) /* need at least 17 lines for NET */
MCFG_SCREEN_VISIBLE_AREA(0*8, 64*8-1, 0, 19*16-1)
- MCFG_SCREEN_UPDATE_STATIC(mbee)
+ MCFG_SCREEN_UPDATE_DRIVER(mbee_state, screen_update_mbee)
MCFG_GFXDECODE(mbee)
MCFG_PALETTE_LENGTH(2)
@@ -723,7 +723,7 @@ static MACHINE_CONFIG_START( mbeeic, mbee_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(250)) /* not accurate */
MCFG_SCREEN_SIZE(80*8, 310)
MCFG_SCREEN_VISIBLE_AREA(0, 80*8-1, 0, 19*16-1)
- MCFG_SCREEN_UPDATE_STATIC(mbee)
+ MCFG_SCREEN_UPDATE_DRIVER(mbee_state, screen_update_mbee)
MCFG_GFXDECODE(mbeeic)
MCFG_PALETTE_LENGTH(96)
diff --git a/src/mess/drivers/mc80.c b/src/mess/drivers/mc80.c
index adb671b9fde..7e7ee6a822c 100644
--- a/src/mess/drivers/mc80.c
+++ b/src/mess/drivers/mc80.c
@@ -173,7 +173,7 @@ static MACHINE_CONFIG_START( mc8020, mc80_state )
MCFG_SCREEN_SIZE(32*6, 16*8)
MCFG_SCREEN_VISIBLE_AREA(0, 32*6-1, 0, 16*8-1)
MCFG_VIDEO_START_OVERRIDE(mc80_state,mc8020)
- MCFG_SCREEN_UPDATE_STATIC(mc8020)
+ MCFG_SCREEN_UPDATE_DRIVER(mc80_state, screen_update_mc8020)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
@@ -199,7 +199,7 @@ static MACHINE_CONFIG_START( mc8030, mc80_state )
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
MCFG_VIDEO_START_OVERRIDE(mc80_state,mc8030)
- MCFG_SCREEN_UPDATE_STATIC(mc8030)
+ MCFG_SCREEN_UPDATE_DRIVER(mc80_state, screen_update_mc8030)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/microtan.c b/src/mess/drivers/microtan.c
index af9d4203fc3..8725c67e40d 100644
--- a/src/mess/drivers/microtan.c
+++ b/src/mess/drivers/microtan.c
@@ -228,7 +228,7 @@ static MACHINE_CONFIG_START( microtan, microtan_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(32*8, 16*16)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*16, 16*16-1)
- MCFG_SCREEN_UPDATE_STATIC(microtan)
+ MCFG_SCREEN_UPDATE_DRIVER(microtan_state, screen_update_microtan)
MCFG_GFXDECODE(microtan)
MCFG_PALETTE_LENGTH(2)
diff --git a/src/mess/drivers/mikro80.c b/src/mess/drivers/mikro80.c
index 4b587e8200a..c2d08dcbc66 100644
--- a/src/mess/drivers/mikro80.c
+++ b/src/mess/drivers/mikro80.c
@@ -183,7 +183,7 @@ static MACHINE_CONFIG_START( mikro80, mikro80_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(64*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(mikro80)
+ MCFG_SCREEN_UPDATE_DRIVER(mikro80_state, screen_update_mikro80)
MCFG_GFXDECODE(mikro80)
MCFG_PALETTE_LENGTH(2)
diff --git a/src/mess/drivers/mikrosha.c b/src/mess/drivers/mikrosha.c
index 5ea8e2a054e..145ed3ac09c 100644
--- a/src/mess/drivers/mikrosha.c
+++ b/src/mess/drivers/mikrosha.c
@@ -216,7 +216,7 @@ static MACHINE_CONFIG_START( mikrosha, mikrosha_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(78*6, 30*10)
MCFG_SCREEN_VISIBLE_AREA(0, 78*6-1, 0, 30*10-1)
- MCFG_SCREEN_UPDATE_STATIC(radio86)
+ MCFG_SCREEN_UPDATE_DRIVER(radio86_state, screen_update_radio86)
MCFG_GFXDECODE(mikrosha)
MCFG_PALETTE_LENGTH(3)
diff --git a/src/mess/drivers/mirage.c b/src/mess/drivers/mirage.c
index f6d03968010..144c6f528c8 100644
--- a/src/mess/drivers/mirage.c
+++ b/src/mess/drivers/mirage.c
@@ -95,6 +95,7 @@ public:
void fdc_intrq_w(bool state);
DECLARE_DRIVER_INIT(mirage);
virtual void video_start();
+ UINT32 screen_update_mirage(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
const floppy_format_type mirage_state::floppy_formats[] = {
@@ -124,7 +125,7 @@ void mirage_state::video_start()
{
}
-static SCREEN_UPDATE_RGB32( mirage )
+UINT32 mirage_state::screen_update_mirage(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -250,7 +251,7 @@ static MACHINE_CONFIG_START( mirage, mirage_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_UPDATE_STATIC(mirage)
+ MCFG_SCREEN_UPDATE_DRIVER(mirage_state, screen_update_mirage)
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 1, 239)
diff --git a/src/mess/drivers/mk85.c b/src/mess/drivers/mk85.c
index 2a1bf97ee16..3cc9bd83be1 100644
--- a/src/mess/drivers/mk85.c
+++ b/src/mess/drivers/mk85.c
@@ -29,6 +29,7 @@ public:
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_mk85(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -51,7 +52,7 @@ void mk85_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( mk85 )
+UINT32 mk85_state::screen_update_mk85(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -74,7 +75,7 @@ static MACHINE_CONFIG_START( mk85, mk85_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(mk85)
+ MCFG_SCREEN_UPDATE_DRIVER(mk85_state, screen_update_mk85)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
MACHINE_CONFIG_END
diff --git a/src/mess/drivers/mk90.c b/src/mess/drivers/mk90.c
index 4e7b7c745a2..7f56f31912b 100644
--- a/src/mess/drivers/mk90.c
+++ b/src/mess/drivers/mk90.c
@@ -26,6 +26,7 @@ public:
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_mk90(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -56,7 +57,7 @@ void mk90_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( mk90 )
+UINT32 mk90_state::screen_update_mk90(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -79,7 +80,7 @@ static MACHINE_CONFIG_START( mk90, mk90_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(mk90)
+ MCFG_SCREEN_UPDATE_DRIVER(mk90_state, screen_update_mk90)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
MACHINE_CONFIG_END
diff --git a/src/mess/drivers/ms0515.c b/src/mess/drivers/ms0515.c
index 6bb628feb1a..c96f24adfe6 100644
--- a/src/mess/drivers/ms0515.c
+++ b/src/mess/drivers/ms0515.c
@@ -33,6 +33,7 @@ public:
UINT8 m_sysreg;
int m_blink;
virtual void palette_init();
+ UINT32 screen_update_ms0515(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
static ADDRESS_MAP_START(ms0515_mem, AS_PROGRAM, 16, ms0515_state)
@@ -165,19 +166,18 @@ static const floppy_interface ms0515_floppy_interface =
NULL
};
-static SCREEN_UPDATE_IND16( ms0515 )
+UINT32 ms0515_state::screen_update_ms0515(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ms0515_state *state = screen.machine().driver_data<ms0515_state>();
int y, x, b;
int addr = 0;
- if (BIT(state->m_sysreg,3)) {
+ if (BIT(m_sysreg,3)) {
for (y = 0; y < 200; y++)
{
int horpos = 0;
for (x = 0; x < 40; x++)
{
- UINT16 code = (state->m_video_ram[addr++] << 8);
- code += state->m_video_ram[addr++];
+ UINT16 code = (m_video_ram[addr++] << 8);
+ code += m_video_ram[addr++];
for (b = 0; b < 16; b++)
{
// In lower res mode we will just double pixels
@@ -191,14 +191,14 @@ static SCREEN_UPDATE_IND16( ms0515 )
int horpos = 0;
for (x = 0; x < 40; x++)
{
- UINT8 code = state->m_video_ram[addr++];
- UINT8 attr = state->m_video_ram[addr++];
+ UINT8 code = m_video_ram[addr++];
+ UINT8 attr = m_video_ram[addr++];
UINT8 fg = (attr & 7) + BIT(attr,6)*8;
UINT8 bg = ((attr >> 3) & 7) + BIT(attr,6)*8;
- if (BIT(attr,7) && (state->m_blink == 20)) {
+ if (BIT(attr,7) && (m_blink == 20)) {
UINT8 tmp = fg;
fg = bg; bg = tmp;
- state->m_blink = -1;
+ m_blink = -1;
}
for (b = 0; b < 8; b++)
{
@@ -209,7 +209,7 @@ static SCREEN_UPDATE_IND16( ms0515 )
}
}
}
- state->m_blink++;
+ m_blink++;
return 0;
}
@@ -265,7 +265,7 @@ static MACHINE_CONFIG_START( ms0515, ms0515_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 200)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
- MCFG_SCREEN_UPDATE_STATIC(ms0515)
+ MCFG_SCREEN_UPDATE_DRIVER(ms0515_state, screen_update_ms0515)
MCFG_PALETTE_LENGTH(16)
diff --git a/src/mess/drivers/multi16.c b/src/mess/drivers/multi16.c
index 3908e71b1c9..8c85f9dc531 100644
--- a/src/mess/drivers/multi16.c
+++ b/src/mess/drivers/multi16.c
@@ -32,6 +32,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_multi16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -39,27 +40,26 @@ void multi16_state::video_start()
{
}
-#define mc6845_h_char_total (state->m_crtc_vreg[0])
-#define mc6845_h_display (state->m_crtc_vreg[1])
-#define mc6845_h_sync_pos (state->m_crtc_vreg[2])
-#define mc6845_sync_width (state->m_crtc_vreg[3])
-#define mc6845_v_char_total (state->m_crtc_vreg[4])
-#define mc6845_v_total_adj (state->m_crtc_vreg[5])
-#define mc6845_v_display (state->m_crtc_vreg[6])
-#define mc6845_v_sync_pos (state->m_crtc_vreg[7])
-#define mc6845_mode_ctrl (state->m_crtc_vreg[8])
-#define mc6845_tile_height (state->m_crtc_vreg[9]+1)
-#define mc6845_cursor_y_start (state->m_crtc_vreg[0x0a])
-#define mc6845_cursor_y_end (state->m_crtc_vreg[0x0b])
-#define mc6845_start_addr (((state->m_crtc_vreg[0x0c]<<8) & 0x3f00) | (state->m_crtc_vreg[0x0d] & 0xff))
-#define mc6845_cursor_addr (((state->m_crtc_vreg[0x0e]<<8) & 0x3f00) | (state->m_crtc_vreg[0x0f] & 0xff))
-#define mc6845_light_pen_addr (((state->m_crtc_vreg[0x10]<<8) & 0x3f00) | (state->m_crtc_vreg[0x11] & 0xff))
-#define mc6845_update_addr (((state->m_crtc_vreg[0x12]<<8) & 0x3f00) | (state->m_crtc_vreg[0x13] & 0xff))
-
-
-static SCREEN_UPDATE_IND16( multi16 )
+#define mc6845_h_char_total (m_crtc_vreg[0])
+#define mc6845_h_display (m_crtc_vreg[1])
+#define mc6845_h_sync_pos (m_crtc_vreg[2])
+#define mc6845_sync_width (m_crtc_vreg[3])
+#define mc6845_v_char_total (m_crtc_vreg[4])
+#define mc6845_v_total_adj (m_crtc_vreg[5])
+#define mc6845_v_display (m_crtc_vreg[6])
+#define mc6845_v_sync_pos (m_crtc_vreg[7])
+#define mc6845_mode_ctrl (m_crtc_vreg[8])
+#define mc6845_tile_height (m_crtc_vreg[9]+1)
+#define mc6845_cursor_y_start (m_crtc_vreg[0x0a])
+#define mc6845_cursor_y_end (m_crtc_vreg[0x0b])
+#define mc6845_start_addr (((m_crtc_vreg[0x0c]<<8) & 0x3f00) | (m_crtc_vreg[0x0d] & 0xff))
+#define mc6845_cursor_addr (((m_crtc_vreg[0x0e]<<8) & 0x3f00) | (m_crtc_vreg[0x0f] & 0xff))
+#define mc6845_light_pen_addr (((m_crtc_vreg[0x10]<<8) & 0x3f00) | (m_crtc_vreg[0x11] & 0xff))
+#define mc6845_update_addr (((m_crtc_vreg[0x12]<<8) & 0x3f00) | (m_crtc_vreg[0x13] & 0xff))
+
+
+UINT32 multi16_state::screen_update_multi16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- multi16_state *state = screen.machine().driver_data<multi16_state>();
int x,y;
int count;
int xi;
@@ -72,7 +72,7 @@ static SCREEN_UPDATE_IND16( multi16 )
{
for(xi=0;xi<16;xi++)
{
- int dot = (BITSWAP16(state->m_p_vram[count],7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8) >> (15-xi)) & 0x1;
+ int dot = (BITSWAP16(m_p_vram[count],7,6,5,4,3,2,1,0,15,14,13,12,11,10,9,8) >> (15-xi)) & 0x1;
if(screen.visible_area().contains(x*16+xi, y))
bitmap.pix16(y, x*16+xi) = screen.machine().pens[dot];
@@ -171,7 +171,7 @@ static MACHINE_CONFIG_START( multi16, multi16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 200)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
- MCFG_SCREEN_UPDATE_STATIC(multi16)
+ MCFG_SCREEN_UPDATE_DRIVER(multi16_state, screen_update_multi16)
MCFG_PALETTE_LENGTH(8)
/* Devices */
diff --git a/src/mess/drivers/multi8.c b/src/mess/drivers/multi8.c
index eaf3c9c2feb..884a023c37e 100644
--- a/src/mess/drivers/multi8.c
+++ b/src/mess/drivers/multi8.c
@@ -68,24 +68,25 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_multi8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
-#define mc6845_h_char_total (state->m_crtc_vreg[0])
-#define mc6845_h_display (state->m_crtc_vreg[1])
-#define mc6845_h_sync_pos (state->m_crtc_vreg[2])
-#define mc6845_sync_width (state->m_crtc_vreg[3])
-#define mc6845_v_char_total (state->m_crtc_vreg[4])
-#define mc6845_v_total_adj (state->m_crtc_vreg[5])
-#define mc6845_v_display (state->m_crtc_vreg[6])
-#define mc6845_v_sync_pos (state->m_crtc_vreg[7])
-#define mc6845_mode_ctrl (state->m_crtc_vreg[8])
-#define mc6845_tile_height (state->m_crtc_vreg[9]+1)
-#define mc6845_cursor_y_start (state->m_crtc_vreg[0x0a])
-#define mc6845_cursor_y_end (state->m_crtc_vreg[0x0b])
-#define mc6845_start_addr (((state->m_crtc_vreg[0x0c]<<8) & 0x3f00) | (state->m_crtc_vreg[0x0d] & 0xff))
-#define mc6845_cursor_addr (((state->m_crtc_vreg[0x0e]<<8) & 0x3f00) | (state->m_crtc_vreg[0x0f] & 0xff))
-#define mc6845_light_pen_addr (((state->m_crtc_vreg[0x10]<<8) & 0x3f00) | (state->m_crtc_vreg[0x11] & 0xff))
-#define mc6845_update_addr (((state->m_crtc_vreg[0x12]<<8) & 0x3f00) | (state->m_crtc_vreg[0x13] & 0xff))
+#define mc6845_h_char_total (m_crtc_vreg[0])
+#define mc6845_h_display (m_crtc_vreg[1])
+#define mc6845_h_sync_pos (m_crtc_vreg[2])
+#define mc6845_sync_width (m_crtc_vreg[3])
+#define mc6845_v_char_total (m_crtc_vreg[4])
+#define mc6845_v_total_adj (m_crtc_vreg[5])
+#define mc6845_v_display (m_crtc_vreg[6])
+#define mc6845_v_sync_pos (m_crtc_vreg[7])
+#define mc6845_mode_ctrl (m_crtc_vreg[8])
+#define mc6845_tile_height (m_crtc_vreg[9]+1)
+#define mc6845_cursor_y_start (m_crtc_vreg[0x0a])
+#define mc6845_cursor_y_end (m_crtc_vreg[0x0b])
+#define mc6845_start_addr (((m_crtc_vreg[0x0c]<<8) & 0x3f00) | (m_crtc_vreg[0x0d] & 0xff))
+#define mc6845_cursor_addr (((m_crtc_vreg[0x0e]<<8) & 0x3f00) | (m_crtc_vreg[0x0f] & 0xff))
+#define mc6845_light_pen_addr (((m_crtc_vreg[0x10]<<8) & 0x3f00) | (m_crtc_vreg[0x11] & 0xff))
+#define mc6845_update_addr (((m_crtc_vreg[0x12]<<8) & 0x3f00) | (m_crtc_vreg[0x13] & 0xff))
void multi8_state::video_start()
{
@@ -114,16 +115,15 @@ static void multi8_draw_pixel(running_machine &machine, bitmap_ind16 &bitmap,int
bitmap.pix16(y, x) = pen;
}
-static SCREEN_UPDATE_IND16( multi8 )
+UINT32 multi8_state::screen_update_multi8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- multi8_state *state = screen.machine().driver_data<multi8_state>();
int x,y,count;
UINT8 x_width;
UINT8 xi,yi;
count = 0x0000;
- x_width = (state->m_display_reg & 0x40) ? 80 : 40;
+ x_width = (m_display_reg & 0x40) ? 80 : 40;
for(y=0; y<200; y++)
{
@@ -133,22 +133,22 @@ static SCREEN_UPDATE_IND16( multi8 )
{
int pen_r,pen_g,pen_b,color;
- pen_b = (state->m_p_vram[count | 0x0000] >> (7-xi)) & 1;
- pen_r = (state->m_p_vram[count | 0x4000] >> (7-xi)) & 1;
- pen_g = (state->m_p_vram[count | 0x8000] >> (7-xi)) & 1;
+ pen_b = (m_p_vram[count | 0x0000] >> (7-xi)) & 1;
+ pen_r = (m_p_vram[count | 0x4000] >> (7-xi)) & 1;
+ pen_g = (m_p_vram[count | 0x8000] >> (7-xi)) & 1;
- if (state->m_bw_mode)
+ if (m_bw_mode)
{
- pen_b = (state->m_display_reg & 1) ? pen_b : 0;
- pen_r = (state->m_display_reg & 2) ? pen_r : 0;
- pen_g = (state->m_display_reg & 4) ? pen_g : 0;
+ pen_b = (m_display_reg & 1) ? pen_b : 0;
+ pen_r = (m_display_reg & 2) ? pen_r : 0;
+ pen_g = (m_display_reg & 4) ? pen_g : 0;
color = ((pen_b) | (pen_r) | (pen_g)) ? 7 : 0;
}
else
color = (pen_b) | (pen_r << 1) | (pen_g << 2);
- multi8_draw_pixel(screen.machine(),bitmap, y, x*8+xi,state->m_pen_clut[color], 0);
+ multi8_draw_pixel(screen.machine(),bitmap, y, x*8+xi,m_pen_clut[color], 0);
}
count++;
}
@@ -160,9 +160,9 @@ static SCREEN_UPDATE_IND16( multi8 )
{
for(x=0; x<x_width; x++)
{
- int tile = state->m_p_vram[count];
- int attr = state->m_p_vram[count+0x800];
- int color = (state->m_display_reg & 0x80) ? 7 : (attr & 0x07);
+ int tile = m_p_vram[count];
+ int attr = m_p_vram[count+0x800];
+ int color = (m_display_reg & 0x80) ? 7 : (attr & 0x07);
for (yi=0; yi<8; yi++)
{
@@ -171,12 +171,12 @@ static SCREEN_UPDATE_IND16( multi8 )
int pen;
if(attr & 0x20)
- pen = (state->m_p_chargen[tile*8+yi] >> (7-xi) & 1) ? 0 : color;
+ pen = (m_p_chargen[tile*8+yi] >> (7-xi) & 1) ? 0 : color;
else
- pen = (state->m_p_chargen[tile*8+yi] >> (7-xi) & 1) ? color : 0;
+ pen = (m_p_chargen[tile*8+yi] >> (7-xi) & 1) ? color : 0;
if(pen)
- multi8_draw_pixel(screen.machine(),bitmap, y*mc6845_tile_height+yi, x*8+xi, pen, (state->m_display_reg & 0x40) == 0x00);
+ multi8_draw_pixel(screen.machine(),bitmap, y*mc6845_tile_height+yi, x*8+xi, pen, (m_display_reg & 0x40) == 0x00);
}
}
@@ -201,13 +201,13 @@ static SCREEN_UPDATE_IND16( multi8 )
for (yc=0; yc<(mc6845_tile_height-(mc6845_cursor_y_start & 7)); yc++)
{
for (xc=0; xc<8; xc++)
- multi8_draw_pixel(screen.machine(),bitmap, y*mc6845_tile_height+yc, x*8+xc,0x07,(state->m_display_reg & 0x40) == 0x00);
+ multi8_draw_pixel(screen.machine(),bitmap, y*mc6845_tile_height+yc, x*8+xc,0x07,(m_display_reg & 0x40) == 0x00);
}
}
}
- (state->m_display_reg & 0x40) ? count++ : count+=2;
+ (m_display_reg & 0x40) ? count++ : count+=2;
}
}
return 0;
@@ -671,7 +671,7 @@ static MACHINE_CONFIG_START( multi8, multi8_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 200)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1)
- MCFG_SCREEN_UPDATE_STATIC(multi8)
+ MCFG_SCREEN_UPDATE_DRIVER(multi8_state, screen_update_multi8)
MCFG_PALETTE_LENGTH(8)
MCFG_GFXDECODE(multi8)
diff --git a/src/mess/drivers/myb3k.c b/src/mess/drivers/myb3k.c
index d4eb99acf65..f714c5ea71b 100644
--- a/src/mess/drivers/myb3k.c
+++ b/src/mess/drivers/myb3k.c
@@ -41,41 +41,41 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_myb3k(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
void myb3k_state::video_start()
{
}
-#define mc6845_h_char_total (state->m_crtc_vreg[0])
-#define mc6845_h_display (state->m_crtc_vreg[1])
-#define mc6845_h_sync_pos (state->m_crtc_vreg[2])
-#define mc6845_sync_width (state->m_crtc_vreg[3])
-#define mc6845_v_char_total (state->m_crtc_vreg[4])
-#define mc6845_v_total_adj (state->m_crtc_vreg[5])
-#define mc6845_v_display (state->m_crtc_vreg[6])
-#define mc6845_v_sync_pos (state->m_crtc_vreg[7])
-#define mc6845_mode_ctrl (state->m_crtc_vreg[8])
-#define mc6845_tile_height (state->m_crtc_vreg[9]+1)
-#define mc6845_cursor_y_start (state->m_crtc_vreg[0x0a])
-#define mc6845_cursor_y_end (state->m_crtc_vreg[0x0b])
-#define mc6845_start_addr (((state->m_crtc_vreg[0x0c]<<8) & 0x3f00) | (state->m_crtc_vreg[0x0d] & 0xff))
-#define mc6845_cursor_addr (((state->m_crtc_vreg[0x0e]<<8) & 0x3f00) | (state->m_crtc_vreg[0x0f] & 0xff))
-#define mc6845_light_pen_addr (((state->m_crtc_vreg[0x10]<<8) & 0x3f00) | (state->m_crtc_vreg[0x11] & 0xff))
-#define mc6845_update_addr (((state->m_crtc_vreg[0x12]<<8) & 0x3f00) | (state->m_crtc_vreg[0x13] & 0xff))
-
-
-static SCREEN_UPDATE_IND16( myb3k )
+#define mc6845_h_char_total (m_crtc_vreg[0])
+#define mc6845_h_display (m_crtc_vreg[1])
+#define mc6845_h_sync_pos (m_crtc_vreg[2])
+#define mc6845_sync_width (m_crtc_vreg[3])
+#define mc6845_v_char_total (m_crtc_vreg[4])
+#define mc6845_v_total_adj (m_crtc_vreg[5])
+#define mc6845_v_display (m_crtc_vreg[6])
+#define mc6845_v_sync_pos (m_crtc_vreg[7])
+#define mc6845_mode_ctrl (m_crtc_vreg[8])
+#define mc6845_tile_height (m_crtc_vreg[9]+1)
+#define mc6845_cursor_y_start (m_crtc_vreg[0x0a])
+#define mc6845_cursor_y_end (m_crtc_vreg[0x0b])
+#define mc6845_start_addr (((m_crtc_vreg[0x0c]<<8) & 0x3f00) | (m_crtc_vreg[0x0d] & 0xff))
+#define mc6845_cursor_addr (((m_crtc_vreg[0x0e]<<8) & 0x3f00) | (m_crtc_vreg[0x0f] & 0xff))
+#define mc6845_light_pen_addr (((m_crtc_vreg[0x10]<<8) & 0x3f00) | (m_crtc_vreg[0x11] & 0xff))
+#define mc6845_update_addr (((m_crtc_vreg[0x12]<<8) & 0x3f00) | (m_crtc_vreg[0x13] & 0xff))
+
+
+UINT32 myb3k_state::screen_update_myb3k(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- myb3k_state *state = screen.machine().driver_data<myb3k_state>();
int x,y;
int xi,yi;
int dot;
int h_step;
- h_step = 64 >> (state->m_vmode & 3);
+ h_step = 64 >> (m_vmode & 3);
- //popmessage("%02x %d",state->m_vmode,h_step);
+ //popmessage("%02x %d",m_vmode,h_step);
for(y=0;y<mc6845_v_display;y++)
{
@@ -86,8 +86,8 @@ static SCREEN_UPDATE_IND16( myb3k )
{
for(xi=0;xi<8;xi++)
{
- dot = (state->m_p_vram[(x+y*mc6845_h_display)*h_step+yi+0x8000] >> (7-xi)) & 1;
- if((yi & ~7 && (!(state->m_vmode & 4))) || (yi & ~0xf && (state->m_vmode & 4)))
+ dot = (m_p_vram[(x+y*mc6845_h_display)*h_step+yi+0x8000] >> (7-xi)) & 1;
+ if((yi & ~7 && (!(m_vmode & 4))) || (yi & ~0xf && (m_vmode & 4)))
dot = 0;
if(y*mc6845_tile_height+yi < 200 && x*8+xi < 320) /* TODO: safety check */
@@ -280,7 +280,7 @@ static MACHINE_CONFIG_START( myb3k, myb3k_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(320, 200)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 200-1)
- MCFG_SCREEN_UPDATE_STATIC(myb3k)
+ MCFG_SCREEN_UPDATE_DRIVER(myb3k_state, screen_update_myb3k)
MCFG_GFXDECODE(myb3k)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/mz2000.c b/src/mess/drivers/mz2000.c
index faa6d5f6d85..3b920411cb0 100644
--- a/src/mess/drivers/mz2000.c
+++ b/src/mess/drivers/mz2000.c
@@ -78,18 +78,18 @@ public:
DECLARE_WRITE8_MEMBER(mz2000_gvram_mask_w);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_mz2000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
void mz2000_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( mz2000 )
+UINT32 mz2000_state::screen_update_mz2000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mz2000_state *state = screen.machine().driver_data<mz2000_state>();
UINT8 *tvram = screen.machine().root_device().memregion("tvram")->base();
UINT8 *gvram = screen.machine().root_device().memregion("gvram")->base();
- UINT8 *gfx_data = state->memregion("chargen")->base();
+ UINT8 *gfx_data = memregion("chargen")->base();
int x,y,xi,yi;
UINT8 x_size;
UINT32 count;
@@ -106,7 +106,7 @@ static SCREEN_UPDATE_IND16( mz2000 )
pen = ((gvram[count+0x4000] >> (xi)) & 1) ? 1 : 0; //B
pen |= ((gvram[count+0x8000] >> (xi)) & 1) ? 2 : 0; //R
pen |= ((gvram[count+0xc000] >> (xi)) & 1) ? 4 : 0; //G
- pen &= state->m_gvram_mask;
+ pen &= m_gvram_mask;
bitmap.pix16(y*2+0, x+xi) = screen.machine().pens[pen];
bitmap.pix16(y*2+1, x+xi) = screen.machine().pens[pen];
@@ -115,16 +115,16 @@ static SCREEN_UPDATE_IND16( mz2000 )
}
}
- x_size = (state->m_width80+1)*40;
+ x_size = (m_width80+1)*40;
for(y=0;y<25;y++)
{
for(x=0;x<x_size;x++)
{
UINT8 tile = tvram[y*x_size+x];
- UINT8 color = state->m_tvram_attr & 7;
+ UINT8 color = m_tvram_attr & 7;
- for(yi=0;yi<8*(state->m_hi_mode+1);yi++)
+ for(yi=0;yi<8*(m_hi_mode+1);yi++)
{
for(xi=0;xi<8;xi++)
{
@@ -133,21 +133,21 @@ static SCREEN_UPDATE_IND16( mz2000 )
UINT16 tile_offset;
res_x = x * 8 + xi;
- res_y = y * (8 *(state->m_hi_mode+1)) + yi;
+ res_y = y * (8 *(m_hi_mode+1)) + yi;
- if(res_x > 640-1 || res_y > (200*(state->m_hi_mode+1))-1)
+ if(res_x > 640-1 || res_y > (200*(m_hi_mode+1))-1)
continue;
- tile_offset = tile*(8*(state->m_hi_mode+1))+yi + (state->m_hi_mode * 0x800);
+ tile_offset = tile*(8*(m_hi_mode+1))+yi + (m_hi_mode * 0x800);
pen = ((gfx_data[tile_offset] >> (7-xi)) & 1) ? color : -1;
/* TODO: clean this up */
if(pen != -1)
{
- if(state->m_hi_mode)
+ if(m_hi_mode)
{
- if(state->m_width80 == 0)
+ if(m_width80 == 0)
{
bitmap.pix16(res_y, res_x*2+0) = screen.machine().pens[pen];
bitmap.pix16(res_y, res_x*2+1) = screen.machine().pens[pen];
@@ -159,7 +159,7 @@ static SCREEN_UPDATE_IND16( mz2000 )
}
else
{
- if(state->m_width80 == 0)
+ if(m_width80 == 0)
{
bitmap.pix16(res_y*2+0, res_x*2+0) = screen.machine().pens[pen];
bitmap.pix16(res_y*2+0, res_x*2+1) = screen.machine().pens[pen];
@@ -853,7 +853,7 @@ static MACHINE_CONFIG_START( mz2000, mz2000_state )
MCFG_GFXDECODE(mz2000)
MCFG_PALETTE_LENGTH(8)
- MCFG_SCREEN_UPDATE_STATIC(mz2000)
+ MCFG_SCREEN_UPDATE_DRIVER(mz2000_state, screen_update_mz2000)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mess/drivers/mz2500.c b/src/mess/drivers/mz2500.c
index 5a0fe177f24..2fbe4f30128 100644
--- a/src/mess/drivers/mz2500.c
+++ b/src/mess/drivers/mz2500.c
@@ -163,6 +163,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_mz2500(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -631,16 +632,15 @@ static void draw_cg_screen(running_machine &machine, bitmap_ind16 &bitmap,const
}
}
-static SCREEN_UPDATE_IND16( mz2500 )
+UINT32 mz2500_state::screen_update_mz2500(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- //mz2500_state *state = screen.machine().driver_data<mz2500_state>();
bitmap.fill(screen.machine().pens[0], cliprect); //TODO: correct?
draw_cg_screen(screen.machine(),bitmap,cliprect,0);
draw_tv_screen(screen.machine(),bitmap,cliprect);
draw_cg_screen(screen.machine(),bitmap,cliprect,1);
- // popmessage("%02x (%02x %02x) (%02x %02x) (%02x %02x) (%02x %02x)",state->m_cg_reg[0x0f],state->m_cg_reg[0x10],state->m_cg_reg[0x11],state->m_cg_reg[0x12],state->m_cg_reg[0x13],state->m_cg_reg[0x14],state->m_cg_reg[0x15],state->m_cg_reg[0x16],state->m_cg_reg[0x17]);
- // popmessage("%02x",state->m_text_reg[0x0f]);
+ // popmessage("%02x (%02x %02x) (%02x %02x) (%02x %02x) (%02x %02x)",m_cg_reg[0x0f],m_cg_reg[0x10],m_cg_reg[0x11],m_cg_reg[0x12],m_cg_reg[0x13],m_cg_reg[0x14],m_cg_reg[0x15],m_cg_reg[0x16],m_cg_reg[0x17]);
+ // popmessage("%02x",m_text_reg[0x0f]);
return 0;
@@ -2113,7 +2113,7 @@ static MACHINE_CONFIG_START( mz2500, mz2500_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL_21_4772MHz, 640+108, 0, 640, 480, 0, 200) //unknown clock / divider
- MCFG_SCREEN_UPDATE_STATIC(mz2500)
+ MCFG_SCREEN_UPDATE_DRIVER(mz2500_state, screen_update_mz2500)
MCFG_PALETTE_LENGTH(0x200)
diff --git a/src/mess/drivers/mz700.c b/src/mess/drivers/mz700.c
index 1f8ca1cfa4e..7295cba74d3 100644
--- a/src/mess/drivers/mz700.c
+++ b/src/mess/drivers/mz700.c
@@ -357,7 +357,7 @@ static MACHINE_CONFIG_START( mz700, mz_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL_17_73447MHz/2, 568, 0, 40*8, 312, 0, 25*8)
- MCFG_SCREEN_UPDATE_STATIC(mz700)
+ MCFG_SCREEN_UPDATE_DRIVER(mz_state, screen_update_mz700)
MCFG_GFXDECODE(mz700)
MCFG_PALETTE_LENGTH(256*2)
@@ -398,7 +398,7 @@ static MACHINE_CONFIG_DERIVED( mz800, mz700 )
MCFG_VIDEO_START_OVERRIDE(mz_state,mz800)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(mz800)
+ MCFG_SCREEN_UPDATE_DRIVER(mz_state, screen_update_mz800)
MCFG_SOUND_ADD("sn76489n", SN76489_NEW, XTAL_17_73447MHz/5)
MCFG_SOUND_CONFIG(psg_intf)
diff --git a/src/mess/drivers/mz80.c b/src/mess/drivers/mz80.c
index d62ffd11dee..dafbb2277a5 100644
--- a/src/mess/drivers/mz80.c
+++ b/src/mess/drivers/mz80.c
@@ -289,7 +289,7 @@ static MACHINE_CONFIG_START( mz80k, mz80_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(320, 200)
MCFG_SCREEN_VISIBLE_AREA(0, 319, 0, 199)
- MCFG_SCREEN_UPDATE_STATIC(mz80k)
+ MCFG_SCREEN_UPDATE_DRIVER(mz80_state, screen_update_mz80k)
MCFG_GFXDECODE(mz80k)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
@@ -310,13 +310,13 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( mz80kj, mz80k )
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(mz80kj)
+ MCFG_SCREEN_UPDATE_DRIVER(mz80_state, screen_update_mz80kj)
MCFG_GFXDECODE(mz80kj)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( mz80a, mz80k )
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(mz80a)
+ MCFG_SCREEN_UPDATE_DRIVER(mz80_state, screen_update_mz80a)
MACHINE_CONFIG_END
diff --git a/src/mess/drivers/n64.c b/src/mess/drivers/n64.c
index 3e52ba5ea34..00697bfd33b 100644
--- a/src/mess/drivers/n64.c
+++ b/src/mess/drivers/n64.c
@@ -279,7 +279,7 @@ static MACHINE_CONFIG_START( n64, n64_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(640, 525)
MCFG_SCREEN_VISIBLE_AREA(0, 639, 0, 239)
- MCFG_SCREEN_UPDATE_STATIC(n64)
+ MCFG_SCREEN_UPDATE_DRIVER(n64_state, screen_update_n64)
MCFG_PALETTE_LENGTH(0x1000)
diff --git a/src/mess/drivers/nascom1.c b/src/mess/drivers/nascom1.c
index 6540e052d79..02c984788cd 100644
--- a/src/mess/drivers/nascom1.c
+++ b/src/mess/drivers/nascom1.c
@@ -288,7 +288,7 @@ static MACHINE_CONFIG_START( nascom1, nascom1_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(48 * 8, 16 * 16)
MCFG_SCREEN_VISIBLE_AREA(0, 48 * 8 - 1, 0, 16 * 16 - 1)
- MCFG_SCREEN_UPDATE_STATIC(nascom1)
+ MCFG_SCREEN_UPDATE_DRIVER(nascom1_state, screen_update_nascom1)
MCFG_GFXDECODE(nascom1)
MCFG_PALETTE_LENGTH(2)
@@ -345,7 +345,7 @@ static MACHINE_CONFIG_DERIVED( nascom2, nascom1 )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_SIZE(48 * 8, 16 * 14)
MCFG_SCREEN_VISIBLE_AREA(0, 48 * 8 - 1, 0, 16 * 14 - 1)
- MCFG_SCREEN_UPDATE_STATIC(nascom2)
+ MCFG_SCREEN_UPDATE_DRIVER(nascom1_state, screen_update_nascom2)
MCFG_GFXDECODE(nascom2)
diff --git a/src/mess/drivers/nc.c b/src/mess/drivers/nc.c
index b0a870e3e7b..0e41dbffe8e 100644
--- a/src/mess/drivers/nc.c
+++ b/src/mess/drivers/nc.c
@@ -1606,7 +1606,7 @@ static MACHINE_CONFIG_START( nc100, nc_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(480, 64)
MCFG_SCREEN_VISIBLE_AREA(0, 480-1, 0, 64-1)
- MCFG_SCREEN_UPDATE_STATIC( nc )
+ MCFG_SCREEN_UPDATE_DRIVER(nc_state, screen_update_nc)
MCFG_PALETTE_LENGTH(NC_NUM_COLOURS)
MCFG_DEFAULT_LAYOUT(layout_lcd)
diff --git a/src/mess/drivers/nes.c b/src/mess/drivers/nes.c
index 92cdd77d19c..1995b033ab0 100644
--- a/src/mess/drivers/nes.c
+++ b/src/mess/drivers/nes.c
@@ -468,7 +468,7 @@ static MACHINE_CONFIG_START( nes, nes_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC((113.66/(NTSC_CLOCK/1000000)) * (PPU_VBLANK_LAST_SCANLINE_NTSC-PPU_VBLANK_FIRST_SCANLINE+1+2)))
MCFG_SCREEN_SIZE(32*8, 262)
MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 0*8, 30*8-1)
- MCFG_SCREEN_UPDATE_STATIC(nes)
+ MCFG_SCREEN_UPDATE_DRIVER(nes_state, screen_update_nes)
MCFG_PALETTE_LENGTH(4*16*8)
diff --git a/src/mess/drivers/ng_aes.c b/src/mess/drivers/ng_aes.c
index ee73bd7dc61..40901750f1d 100644
--- a/src/mess/drivers/ng_aes.c
+++ b/src/mess/drivers/ng_aes.c
@@ -1648,7 +1648,7 @@ static MACHINE_CONFIG_START( neogeo, ng_aes_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS(NEOGEO_PIXEL_CLOCK, NEOGEO_HTOTAL, NEOGEO_HBEND, NEOGEO_HBSTART, NEOGEO_VTOTAL, NEOGEO_VBEND, NEOGEO_VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(neogeo)
+ MCFG_SCREEN_UPDATE_DRIVER(ng_aes_state, screen_update_neogeo)
/* audio hardware */
MCFG_SPEAKER_STANDARD_STEREO("lspeaker", "rspeaker")
diff --git a/src/mess/drivers/ngp.c b/src/mess/drivers/ngp.c
index 3f7a90e01a5..a8abaa678ef 100644
--- a/src/mess/drivers/ngp.c
+++ b/src/mess/drivers/ngp.c
@@ -164,6 +164,7 @@ public:
DECLARE_WRITE8_MEMBER( ngp_vblank_pin_w );
DECLARE_WRITE8_MEMBER( ngp_hblank_pin_w );
DECLARE_WRITE8_MEMBER( ngp_tlcs900_to3 );
+ UINT32 screen_update_ngp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -622,11 +623,10 @@ void ngp_state::machine_reset()
}
-static SCREEN_UPDATE_IND16( ngp )
+UINT32 ngp_state::screen_update_ngp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ngp_state *state = screen.machine().driver_data<ngp_state>();
- k1ge_update( state->m_k1ge, bitmap, cliprect );
+ k1ge_update( m_k1ge, bitmap, cliprect );
return 0;
}
@@ -777,7 +777,7 @@ static MACHINE_CONFIG_START( ngp_common, ngp_state )
MCFG_SCREEN_ADD( "screen", LCD )
MCFG_SCREEN_RAW_PARAMS( XTAL_6_144MHz, 515, 0, 160 /*480*/, 199, 0, 152 )
- MCFG_SCREEN_UPDATE_STATIC( ngp )
+ MCFG_SCREEN_UPDATE_DRIVER(ngp_state, screen_update_ngp)
MCFG_DEFAULT_LAYOUT(layout_lcd)
diff --git a/src/mess/drivers/odyssey2.c b/src/mess/drivers/odyssey2.c
index 50fc1fe87b1..08bb82b2047 100644
--- a/src/mess/drivers/odyssey2.c
+++ b/src/mess/drivers/odyssey2.c
@@ -183,7 +183,7 @@ static MACHINE_CONFIG_START( odyssey2, odyssey2_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS( XTAL_7_15909MHz/2, I824X_LINE_CLOCKS, I824X_START_ACTIVE_SCAN, I824X_END_ACTIVE_SCAN, 262, I824X_START_Y, I824X_START_Y + I824X_SCREEN_HEIGHT )
- MCFG_SCREEN_UPDATE_STATIC( odyssey2 )
+ MCFG_SCREEN_UPDATE_DRIVER(odyssey2_state, screen_update_odyssey2)
MCFG_GFXDECODE( odyssey2 )
MCFG_PALETTE_LENGTH(24)
@@ -213,7 +213,7 @@ static MACHINE_CONFIG_START( videopac, odyssey2_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS( XTAL_17_73447MHz/5, I824X_LINE_CLOCKS, I824X_START_ACTIVE_SCAN, I824X_END_ACTIVE_SCAN, 312, I824X_START_Y, I824X_START_Y + I824X_SCREEN_HEIGHT )
- MCFG_SCREEN_UPDATE_STATIC( odyssey2 )
+ MCFG_SCREEN_UPDATE_DRIVER(odyssey2_state, screen_update_odyssey2)
MCFG_GFXDECODE( odyssey2 )
MCFG_PALETTE_LENGTH(24)
@@ -242,7 +242,7 @@ static MACHINE_CONFIG_START( g7400, odyssey2_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_RAW_PARAMS( 3547000*2, 448, 96, 416, 312, 39, 289 ) /* EF9340 doubles the input clock into dot clocks internally */
- MCFG_SCREEN_UPDATE_STATIC( odyssey2 )
+ MCFG_SCREEN_UPDATE_DRIVER(odyssey2_state, screen_update_odyssey2)
MCFG_GFXDECODE( odyssey2 )
MCFG_PALETTE_LENGTH(24)
diff --git a/src/mess/drivers/okean240.c b/src/mess/drivers/okean240.c
index fd6297c79b0..e6c204d9a9c 100644
--- a/src/mess/drivers/okean240.c
+++ b/src/mess/drivers/okean240.c
@@ -79,6 +79,7 @@ public:
virtual void machine_reset();
virtual void video_start();
DECLARE_DRIVER_INIT(okean240);
+ UINT32 screen_update_okean240(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
// okean240 requires bit 4 to change
@@ -390,20 +391,19 @@ void okean240_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( okean240 )
+UINT32 okean240_state::screen_update_okean240(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- okean240_state *state = screen.machine().driver_data<okean240_state>();
UINT8 gfx,ma; // ma must be 8bit
UINT16 x,y;
for (y = 0; y < 256; y++)
{
- ma = y + state->m_scroll;
+ ma = y + m_scroll;
UINT16 *p = &bitmap.pix16(y);
for (x = 0; x < 0x4000; x+=0x200)
{
- gfx = state->m_p_videoram[x|ma] | state->m_p_videoram[x|ma|0x100];
+ gfx = m_p_videoram[x|ma] | m_p_videoram[x|ma|0x100];
/* Display a scanline of a character */
*p++ = BIT(gfx, 0);
@@ -457,7 +457,7 @@ static MACHINE_CONFIG_START( okean240t, okean240_state )
MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 255)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
- MCFG_SCREEN_UPDATE_STATIC(okean240)
+ MCFG_SCREEN_UPDATE_DRIVER(okean240_state, screen_update_okean240)
MCFG_GENERIC_TERMINAL_ADD(TERMINAL_TAG, terminal_intf)
MACHINE_CONFIG_END
diff --git a/src/mess/drivers/ondra.c b/src/mess/drivers/ondra.c
index 6b9c92d0293..6e8ac3bd5a8 100644
--- a/src/mess/drivers/ondra.c
+++ b/src/mess/drivers/ondra.c
@@ -134,7 +134,7 @@ static MACHINE_CONFIG_START( ondra, ondra_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(320, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(ondra)
+ MCFG_SCREEN_UPDATE_DRIVER(ondra_state, screen_update_ondra)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/orao.c b/src/mess/drivers/orao.c
index 0eddffaf2ad..6e55ddc320e 100644
--- a/src/mess/drivers/orao.c
+++ b/src/mess/drivers/orao.c
@@ -183,7 +183,7 @@ static MACHINE_CONFIG_START( orao, orao_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(orao)
+ MCFG_SCREEN_UPDATE_DRIVER(orao_state, screen_update_orao)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/oric.c b/src/mess/drivers/oric.c
index e4c57eb3bae..6f971b4c5c0 100644
--- a/src/mess/drivers/oric.c
+++ b/src/mess/drivers/oric.c
@@ -386,7 +386,7 @@ static MACHINE_CONFIG_START( oric, oric_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(40*6, 28*8)
MCFG_SCREEN_VISIBLE_AREA(0, 40*6-1, 0, 28*8-1)
- MCFG_SCREEN_UPDATE_STATIC( oric )
+ MCFG_SCREEN_UPDATE_DRIVER(oric_state, screen_update_oric)
MCFG_PALETTE_LENGTH(8)
diff --git a/src/mess/drivers/orion.c b/src/mess/drivers/orion.c
index 13b700acdcc..29f08aaa89d 100644
--- a/src/mess/drivers/orion.c
+++ b/src/mess/drivers/orion.c
@@ -142,7 +142,7 @@ static MACHINE_CONFIG_START( orion128, orion_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(384, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(orion128)
+ MCFG_SCREEN_UPDATE_DRIVER(orion_state, screen_update_orion128)
MCFG_PALETTE_LENGTH(18)
MCFG_PALETTE_INIT_OVERRIDE(orion_state, orion128 )
@@ -198,7 +198,7 @@ static MACHINE_CONFIG_START( orionz80, orion_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(384, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(orion128)
+ MCFG_SCREEN_UPDATE_DRIVER(orion_state, screen_update_orion128)
MCFG_PALETTE_LENGTH(18)
MCFG_PALETTE_INIT_OVERRIDE(orion_state, orion128 )
@@ -253,7 +253,7 @@ static MACHINE_CONFIG_START( orionpro, orion_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(384, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(orion128)
+ MCFG_SCREEN_UPDATE_DRIVER(orion_state, screen_update_orion128)
MCFG_PALETTE_LENGTH(18)
MCFG_PALETTE_INIT_OVERRIDE(orion_state, orion128 )
diff --git a/src/mess/drivers/p112.c b/src/mess/drivers/p112.c
index 31bfeb7e488..694e61431d0 100644
--- a/src/mess/drivers/p112.c
+++ b/src/mess/drivers/p112.c
@@ -43,6 +43,7 @@ public:
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_p112(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -70,7 +71,7 @@ void p112_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( p112 )
+UINT32 p112_state::screen_update_p112(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -88,7 +89,7 @@ static MACHINE_CONFIG_START( p112, p112_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(240, 320)
MCFG_SCREEN_VISIBLE_AREA(0, 240-1, 0, 320-1)
- MCFG_SCREEN_UPDATE_STATIC(p112)
+ MCFG_SCREEN_UPDATE_DRIVER(p112_state, screen_update_p112)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/p2000t.c b/src/mess/drivers/p2000t.c
index 483abbb8386..50ecdf66a8b 100644
--- a/src/mess/drivers/p2000t.c
+++ b/src/mess/drivers/p2000t.c
@@ -259,7 +259,7 @@ static MACHINE_CONFIG_START( p2000m, p2000t_state )
MCFG_SCREEN_SIZE(80 * 12, 24 * 20)
MCFG_SCREEN_VISIBLE_AREA(0, 80 * 12 - 1, 0, 24 * 20 - 1)
MCFG_VIDEO_START_OVERRIDE(p2000t_state,p2000m)
- MCFG_SCREEN_UPDATE_STATIC(p2000m)
+ MCFG_SCREEN_UPDATE_DRIVER(p2000t_state, screen_update_p2000m)
MCFG_GFXDECODE( p2000m )
MCFG_PALETTE_LENGTH(4)
MCFG_PALETTE_INIT_OVERRIDE(p2000t_state,p2000m)
diff --git a/src/mess/drivers/partner.c b/src/mess/drivers/partner.c
index d93cdda22ec..e82e5109af9 100644
--- a/src/mess/drivers/partner.c
+++ b/src/mess/drivers/partner.c
@@ -205,7 +205,7 @@ static MACHINE_CONFIG_START( partner, partner_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(78*6, 30*10)
MCFG_SCREEN_VISIBLE_AREA(0, 78*6-1, 0, 30*10-1)
- MCFG_SCREEN_UPDATE_STATIC(radio86)
+ MCFG_SCREEN_UPDATE_DRIVER(radio86_state, screen_update_radio86)
MCFG_GFXDECODE(partner)
MCFG_PALETTE_LENGTH(3)
diff --git a/src/mess/drivers/paso1600.c b/src/mess/drivers/paso1600.c
index 5350fc3bbce..5ccfc51aacb 100644
--- a/src/mess/drivers/paso1600.c
+++ b/src/mess/drivers/paso1600.c
@@ -55,24 +55,25 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_paso1600(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
-#define mc6845_h_char_total (state->m_crtc_vreg[0])
-#define mc6845_h_display (state->m_crtc_vreg[1])
-#define mc6845_h_sync_pos (state->m_crtc_vreg[2])
-#define mc6845_sync_width (state->m_crtc_vreg[3])
-#define mc6845_v_char_total (state->m_crtc_vreg[4])
-#define mc6845_v_total_adj (state->m_crtc_vreg[5])
-#define mc6845_v_display (state->m_crtc_vreg[6])
-#define mc6845_v_sync_pos (state->m_crtc_vreg[7])
-#define mc6845_mode_ctrl (state->m_crtc_vreg[8])
-#define mc6845_tile_height (state->m_crtc_vreg[9]+1)
-#define mc6845_cursor_y_start (state->m_crtc_vreg[0x0a])
-#define mc6845_cursor_y_end (state->m_crtc_vreg[0x0b])
-#define mc6845_start_addr (((state->m_crtc_vreg[0x0c]<<8) & 0x3f00) | (state->m_crtc_vreg[0x0d] & 0xff))
-#define mc6845_cursor_addr (((state->m_crtc_vreg[0x0e]<<8) & 0x3f00) | (state->m_crtc_vreg[0x0f] & 0xff))
-#define mc6845_light_pen_addr (((state->m_crtc_vreg[0x10]<<8) & 0x3f00) | (state->m_crtc_vreg[0x11] & 0xff))
-#define mc6845_update_addr (((state->m_crtc_vreg[0x12]<<8) & 0x3f00) | (state->m_crtc_vreg[0x13] & 0xff))
+#define mc6845_h_char_total (m_crtc_vreg[0])
+#define mc6845_h_display (m_crtc_vreg[1])
+#define mc6845_h_sync_pos (m_crtc_vreg[2])
+#define mc6845_sync_width (m_crtc_vreg[3])
+#define mc6845_v_char_total (m_crtc_vreg[4])
+#define mc6845_v_total_adj (m_crtc_vreg[5])
+#define mc6845_v_display (m_crtc_vreg[6])
+#define mc6845_v_sync_pos (m_crtc_vreg[7])
+#define mc6845_mode_ctrl (m_crtc_vreg[8])
+#define mc6845_tile_height (m_crtc_vreg[9]+1)
+#define mc6845_cursor_y_start (m_crtc_vreg[0x0a])
+#define mc6845_cursor_y_end (m_crtc_vreg[0x0b])
+#define mc6845_start_addr (((m_crtc_vreg[0x0c]<<8) & 0x3f00) | (m_crtc_vreg[0x0d] & 0xff))
+#define mc6845_cursor_addr (((m_crtc_vreg[0x0e]<<8) & 0x3f00) | (m_crtc_vreg[0x0f] & 0xff))
+#define mc6845_light_pen_addr (((m_crtc_vreg[0x10]<<8) & 0x3f00) | (m_crtc_vreg[0x11] & 0xff))
+#define mc6845_update_addr (((m_crtc_vreg[0x12]<<8) & 0x3f00) | (m_crtc_vreg[0x13] & 0xff))
void paso1600_state::video_start()
@@ -81,9 +82,8 @@ void paso1600_state::video_start()
m_p_pcg = memregion("pcg")->base();
}
-static SCREEN_UPDATE_IND16( paso1600 )
+UINT32 paso1600_state::screen_update_paso1600(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- paso1600_state *state = screen.machine().driver_data<paso1600_state>();
int x,y;
int xi,yi;
#if 0
@@ -108,7 +108,7 @@ static SCREEN_UPDATE_IND16( paso1600 )
{
for(xi=0;xi<16;xi++)
{
- int pen = (state->m_p_gvram[count] >> xi) & 1;
+ int pen = (m_p_gvram[count] >> xi) & 1;
if(y < 475 && x*16+xi < 640) /* TODO: safety check */
bitmap.pix16(y, x*16+xi) = screen.machine().pens[pen];
@@ -125,15 +125,15 @@ static SCREEN_UPDATE_IND16( paso1600 )
{
for(x=0;x<mc6845_h_display;x++)
{
- int tile = state->m_p_vram[x+y*mc6845_h_display] & 0xff;
- int color = (state->m_p_vram[x+y*mc6845_h_display] & 0x700) >> 8;
+ int tile = m_p_vram[x+y*mc6845_h_display] & 0xff;
+ int color = (m_p_vram[x+y*mc6845_h_display] & 0x700) >> 8;
int pen;
for(yi=0;yi<19;yi++)
{
for(xi=0;xi<8;xi++)
{
- pen = (state->m_p_chargen[tile*8+(yi >> 1)] >> (7-xi) & 1) ? color : -1;
+ pen = (m_p_chargen[tile*8+(yi >> 1)] >> (7-xi) & 1) ? color : -1;
if(yi & 0x10)
pen = -1;
@@ -343,7 +343,7 @@ static MACHINE_CONFIG_START( paso1600, paso1600_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(paso1600)
+ MCFG_SCREEN_UPDATE_DRIVER(paso1600_state, screen_update_paso1600)
MCFG_GFXDECODE(paso1600)
MCFG_PALETTE_LENGTH(8)
// MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/pasogo.c b/src/mess/drivers/pasogo.c
index 5a5b719af1a..132df23f45b 100644
--- a/src/mess/drivers/pasogo.c
+++ b/src/mess/drivers/pasogo.c
@@ -69,6 +69,7 @@ public:
DECLARE_DRIVER_INIT(pasogo);
virtual void machine_reset();
virtual void palette_init();
+ UINT32 screen_update_pasogo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -390,7 +391,7 @@ void pasogo_state::palette_init()
}
}
-static SCREEN_UPDATE_IND16( pasogo )
+UINT32 pasogo_state::screen_update_pasogo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
//static int width=-1,height=-1;
UINT8 *rom = screen.machine().root_device().memregion("maincpu")->base()+0xb8000;
@@ -441,7 +442,7 @@ static SCREEN_UPDATE_IND16( pasogo )
if (w!=width || h!=height)
{
width=w; height=h;
-// machine.primary_screen->set_visible_area(0, width-1, 0, height-1);
+// machine().primary_screen->set_visible_area(0, width-1, 0, height-1);
screen.set_visible_area(0, width-1, 0, height-1);
}
#endif
@@ -514,7 +515,7 @@ static MACHINE_CONFIG_START( pasogo, pasogo_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(640, 400)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 400-1)
- MCFG_SCREEN_UPDATE_STATIC(pasogo)
+ MCFG_SCREEN_UPDATE_DRIVER(pasogo_state, screen_update_pasogo)
MCFG_PALETTE_LENGTH(ARRAY_LENGTH(pasogo_palette))
#if 0
diff --git a/src/mess/drivers/pasopia7.c b/src/mess/drivers/pasopia7.c
index bd968ec9d2f..01306186cab 100644
--- a/src/mess/drivers/pasopia7.c
+++ b/src/mess/drivers/pasopia7.c
@@ -109,6 +109,7 @@ public:
DECLARE_VIDEO_START(pasopia7);
DECLARE_PALETTE_INIT(p7_raster);
DECLARE_PALETTE_INIT(p7_lcd);
+ UINT32 screen_update_pasopia7(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
#define VDP_CLOCK XTAL_3_579545MHz/4
@@ -304,16 +305,15 @@ static void draw_mixed_screen(running_machine &machine, bitmap_ind16 &bitmap,con
}
}
-static SCREEN_UPDATE_IND16( pasopia7 )
+UINT32 pasopia7_state::screen_update_pasopia7(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pasopia7_state *state = screen.machine().driver_data<pasopia7_state>();
int width;
bitmap.fill(screen.machine().pens[0], cliprect);
- width = state->m_x_width ? 80 : 40;
+ width = m_x_width ? 80 : 40;
- if(state->m_gfx_mode)
+ if(m_gfx_mode)
draw_mixed_screen(screen.machine(),bitmap,cliprect,width);
else
{
@@ -1042,7 +1042,7 @@ static MACHINE_CONFIG_DERIVED( p7_raster, p7_base )
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 32-1)
MCFG_VIDEO_START_OVERRIDE(pasopia7_state,pasopia7)
- MCFG_SCREEN_UPDATE_STATIC(pasopia7)
+ MCFG_SCREEN_UPDATE_DRIVER(pasopia7_state, screen_update_pasopia7)
MCFG_PALETTE_LENGTH(8)
MCFG_PALETTE_INIT_OVERRIDE(pasopia7_state,p7_raster)
MCFG_GFXDECODE( pasopia7 )
@@ -1058,7 +1058,7 @@ static MACHINE_CONFIG_DERIVED( p7_lcd, p7_base )
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
MCFG_VIDEO_START_OVERRIDE(pasopia7_state,pasopia7)
- MCFG_SCREEN_UPDATE_STATIC(pasopia7)
+ MCFG_SCREEN_UPDATE_DRIVER(pasopia7_state, screen_update_pasopia7)
MCFG_PALETTE_LENGTH(8)
MCFG_PALETTE_INIT_OVERRIDE(pasopia7_state,p7_lcd)
MCFG_GFXDECODE( pasopia7 )
diff --git a/src/mess/drivers/pc100.c b/src/mess/drivers/pc100.c
index f600b5e1ba0..b56ce11d4be 100644
--- a/src/mess/drivers/pc100.c
+++ b/src/mess/drivers/pc100.c
@@ -63,22 +63,22 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_pc100(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
void pc100_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( pc100 )
+UINT32 pc100_state::screen_update_pc100(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pc100_state *state = screen.machine().driver_data<pc100_state>();
int x,y;
int count;
int xi;
int dot;
int pen[4],pen_i;
- count = ((state->m_crtc.vstart + 0x20) * 0x40);
+ count = ((m_crtc.vstart + 0x20) * 0x40);
for(y=0;y<512;y++)
{
@@ -89,7 +89,7 @@ static SCREEN_UPDATE_IND16( pc100 )
for(xi=0;xi<16;xi++)
{
for(pen_i=0;pen_i<4;pen_i++)
- pen[pen_i] = (state->m_vram[count+pen_i*0x10000] >> xi) & 1;
+ pen[pen_i] = (m_vram[count+pen_i*0x10000] >> xi) & 1;
dot = 0;
for(pen_i=0;pen_i<4;pen_i++)
@@ -395,7 +395,7 @@ static MACHINE_CONFIG_START( pc100, pc100_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(1024, 1024)
MCFG_SCREEN_VISIBLE_AREA(0, 768-1, 0, 512-1)
- MCFG_SCREEN_UPDATE_STATIC(pc100)
+ MCFG_SCREEN_UPDATE_DRIVER(pc100_state, screen_update_pc100)
MCFG_GFXDECODE(pc100)
MCFG_PALETTE_LENGTH(16)
// MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/pc6001.c b/src/mess/drivers/pc6001.c
index f9a5aff1e94..145a279a447 100644
--- a/src/mess/drivers/pc6001.c
+++ b/src/mess/drivers/pc6001.c
@@ -230,6 +230,9 @@ public:
DECLARE_MACHINE_RESET(pc6001m2);
DECLARE_PALETTE_INIT(pc6001m2);
DECLARE_MACHINE_RESET(pc6001sr);
+ UINT32 screen_update_pc6001(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_pc6001m2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_pc6001sr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -503,20 +506,19 @@ static void pc6001_screen_draw(running_machine &machine, bitmap_ind16 &bitmap,co
}
}
-static SCREEN_UPDATE_IND16( pc6001 )
+UINT32 pc6001_state::screen_update_pc6001(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
pc6001_screen_draw(screen.machine(),bitmap,cliprect,1);
return 0;
}
-static SCREEN_UPDATE_IND16( pc6001m2 )
+UINT32 pc6001_state::screen_update_pc6001m2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pc6001_state *state = screen.machine().driver_data<pc6001_state>();
int x,y,tile,attr;
/* note: bitmap mode have priority over everything else, check American Truck */
- if(state->m_exgfx_bitmap_mode)
+ if(m_exgfx_bitmap_mode)
{
int count,color,i;
@@ -539,8 +541,8 @@ static SCREEN_UPDATE_IND16( pc6001m2 )
color |= pal_num[(pen[0] & 3) | ((pen[1] & 3) << 2)];
#endif
- pen[0] = state->m_video_ram[count+0x0000] >> (6-i*2) & 3;
- pen[1] = state->m_video_ram[count+0x2000] >> (6-i*2) & 3;
+ pen[0] = m_video_ram[count+0x0000] >> (6-i*2) & 3;
+ pen[1] = m_video_ram[count+0x2000] >> (6-i*2) & 3;
color = 0x10;
color |= ((pen[0] & 1) << 2);
@@ -558,7 +560,7 @@ static SCREEN_UPDATE_IND16( pc6001m2 )
}
}
}
- else if(state->m_exgfx_2bpp_mode)
+ else if(m_exgfx_2bpp_mode)
{
int count,color,i;
@@ -578,22 +580,22 @@ static SCREEN_UPDATE_IND16( pc6001m2 )
color |= pal_num[(pen[0] & 1) | ((pen[1] & 1) << 1)];
#endif
- pen[0] = state->m_video_ram[count+0x0000] >> (7-i) & 1;
- pen[1] = state->m_video_ram[count+0x2000] >> (7-i) & 1;
+ pen[0] = m_video_ram[count+0x0000] >> (7-i) & 1;
+ pen[1] = m_video_ram[count+0x2000] >> (7-i) & 1;
- if(state->m_bgcol_bank & 4) //PC-6001 emulation mode
+ if(m_bgcol_bank & 4) //PC-6001 emulation mode
{
color = 0x08;
color |= (pen[0]) | (pen[1]<<1);
- color |= (state->m_bgcol_bank & 1) << 2;
+ color |= (m_bgcol_bank & 1) << 2;
}
else //Mk-2 mode
{
color = 0x10;
color |= ((pen[0] & 1) << 2);
color |= ((pen[1] & 1) >> 0);
- color |= ((state->m_bgcol_bank & 1) << 1);
- color |= ((state->m_bgcol_bank & 2) << 2);
+ color |= ((m_bgcol_bank & 1) << 1);
+ color |= ((m_bgcol_bank & 2) << 2);
}
if (cliprect.contains(x+i, y))
@@ -605,7 +607,7 @@ static SCREEN_UPDATE_IND16( pc6001m2 )
}
}
- else if(state->m_exgfx_text_mode)
+ else if(m_exgfx_text_mode)
{
int xi,yi,pen,fgcol,bgcol,color;
UINT8 *gfx_data = screen.machine().root_device().memregion("gfx1")->base();
@@ -621,8 +623,8 @@ static SCREEN_UPDATE_IND16( pc6001m2 )
---- xxxx fg color
Note that the exgfx banks a different gfx ROM
*/
- tile = state->m_video_ram[(x+(y*40))+0x400] + 0x200;
- attr = state->m_video_ram[(x+(y*40)) & 0x3ff];
+ tile = m_video_ram[(x+(y*40))+0x400] + 0x200;
+ attr = m_video_ram[(x+(y*40)) & 0x3ff];
tile+= ((attr & 0x80) << 1);
for(yi=0;yi<12;yi++)
@@ -632,7 +634,7 @@ static SCREEN_UPDATE_IND16( pc6001m2 )
pen = gfx_data[(tile*0x10)+yi]>>(7-xi) & 1;
fgcol = (attr & 0x0f) + 0x10;
- bgcol = ((attr & 0x70) >> 4) + 0x10 + ((state->m_bgcol_bank & 2) << 2);
+ bgcol = ((attr & 0x70) >> 4) + 0x10 + ((m_bgcol_bank & 2) << 2);
color = pen ? fgcol : bgcol;
@@ -645,29 +647,28 @@ static SCREEN_UPDATE_IND16( pc6001m2 )
}
else
{
- attr = state->m_video_ram[0];
+ attr = m_video_ram[0];
pc6001_screen_draw(screen.machine(),bitmap,cliprect,0);
}
return 0;
}
-static SCREEN_UPDATE_IND16( pc6001sr )
+UINT32 pc6001_state::screen_update_pc6001sr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pc6001_state *state = screen.machine().driver_data<pc6001_state>();
int x,y,tile,attr;
int xi,yi,pen,fgcol,bgcol,color;
- UINT8 *gfx_data = state->memregion("gfx1")->base();
+ UINT8 *gfx_data = memregion("gfx1")->base();
- if(state->m_sr_video_mode & 8) // text mode
+ if(m_sr_video_mode & 8) // text mode
{
for(y=0;y<20;y++)
{
for(x=0;x<40;x++)
{
- tile = state->m_video_ram[(x+(y*40))*2+0];
- attr = state->m_video_ram[(x+(y*40))*2+1];
+ tile = m_video_ram[(x+(y*40))*2+0];
+ attr = m_video_ram[(x+(y*40))*2+1];
tile+= ((attr & 0x80) << 1);
for(yi=0;yi<12;yi++)
@@ -677,7 +678,7 @@ static SCREEN_UPDATE_IND16( pc6001sr )
pen = gfx_data[(tile*0x10)+yi]>>(7-xi) & 1;
fgcol = (attr & 0x0f) + 0x10;
- bgcol = ((attr & 0x70) >> 4) + 0x10 + ((state->m_bgcol_bank & 2) << 2);
+ bgcol = ((attr & 0x70) >> 4) + 0x10 + ((m_bgcol_bank & 2) << 2);
color = pen ? fgcol : bgcol;
@@ -698,42 +699,42 @@ static SCREEN_UPDATE_IND16( pc6001sr )
{
for(x=0;x<320;x+=4)
{
- color = state->m_video_ram[count] & 0x0f;
+ color = m_video_ram[count] & 0x0f;
if (cliprect.contains(x+0, y+0))
bitmap.pix16((y+0), (x+0)) = screen.machine().pens[color+0x10];
- color = (state->m_video_ram[count] & 0xf0) >> 4;
+ color = (m_video_ram[count] & 0xf0) >> 4;
if (cliprect.contains(x+1, y+0))
bitmap.pix16((y+0), (x+1)) = screen.machine().pens[color+0x10];
- color = state->m_video_ram[count+1] & 0x0f;
+ color = m_video_ram[count+1] & 0x0f;
if (cliprect.contains(x+2, y+0))
bitmap.pix16((y+0), (x+2)) = screen.machine().pens[color+0x10];
- color = (state->m_video_ram[count+1] & 0xf0) >> 4;
+ color = (m_video_ram[count+1] & 0xf0) >> 4;
if (cliprect.contains(x+3, y+0))
bitmap.pix16((y+0), (x+3)) = screen.machine().pens[color+0x10];
- color = state->m_video_ram[count+2] & 0x0f;
+ color = m_video_ram[count+2] & 0x0f;
if (cliprect.contains(x+0, y+1))
bitmap.pix16((y+1), (x+0)) = screen.machine().pens[color+0x10];
- color = (state->m_video_ram[count+2] & 0xf0) >> 4;
+ color = (m_video_ram[count+2] & 0xf0) >> 4;
if (cliprect.contains(x+1, y+1))
bitmap.pix16((y+1), (x+1)) = screen.machine().pens[color+0x10];
- color = state->m_video_ram[count+3] & 0x0f;
+ color = m_video_ram[count+3] & 0x0f;
if (cliprect.contains(x+2, y+1))
bitmap.pix16((y+1), (x+2)) = screen.machine().pens[color+0x10];
- color = (state->m_video_ram[count+3] & 0xf0) >> 4;
+ color = (m_video_ram[count+3] & 0xf0) >> 4;
if (cliprect.contains(x+3, y+1))
bitmap.pix16((y+1), (x+3)) = screen.machine().pens[color+0x10];
@@ -2335,7 +2336,7 @@ static MACHINE_CONFIG_START( pc6001, pc6001_state )
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
- MCFG_SCREEN_UPDATE_STATIC(pc6001)
+ MCFG_SCREEN_UPDATE_DRIVER(pc6001_state, screen_update_pc6001)
// MCFG_SCREEN_REFRESH_RATE(M6847_NTSC_FRAMES_PER_SECOND)
// MCFG_SCREEN_UPDATE_STATIC(m6847)
MCFG_SCREEN_SIZE(320, 25+192+26)
@@ -2378,7 +2379,7 @@ static MACHINE_CONFIG_DERIVED( pc6001m2, pc6001 )
MCFG_MACHINE_RESET_OVERRIDE(pc6001_state,pc6001m2)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(pc6001m2)
+ MCFG_SCREEN_UPDATE_DRIVER(pc6001_state, screen_update_pc6001m2)
MCFG_PALETTE_LENGTH(16+16)
MCFG_PALETTE_INIT_OVERRIDE(pc6001_state,pc6001m2)
@@ -2405,7 +2406,7 @@ static MACHINE_CONFIG_DERIVED( pc6001sr, pc6001m2 )
MCFG_MACHINE_RESET_OVERRIDE(pc6001_state,pc6001sr)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(pc6001sr)
+ MCFG_SCREEN_UPDATE_DRIVER(pc6001_state, screen_update_pc6001sr)
/* basic machine hardware */
MCFG_CPU_REPLACE("maincpu", Z80, XTAL_3_579545MHz) //*Yes*, PC-6001 SR Z80 CPU is actually slower than older models
diff --git a/src/mess/drivers/pc88va.c b/src/mess/drivers/pc88va.c
index 81fda63c94c..8c7c8ea5b38 100644
--- a/src/mess/drivers/pc88va.c
+++ b/src/mess/drivers/pc88va.c
@@ -101,6 +101,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_pc88va(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -402,35 +403,34 @@ static void draw_text(running_machine &machine, bitmap_rgb32 &bitmap, const rect
}
}
-static SCREEN_UPDATE_RGB32( pc88va )
+UINT32 pc88va_state::screen_update_pc88va(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- pc88va_state *state = screen.machine().driver_data<pc88va_state>();
UINT8 pri,cur_pri_lv;
UINT32 screen_pri;
bitmap.fill(0, cliprect);
- if(state->m_tsp.disp_on == 0) // don't bother if we are under DSPOFF command
+ if(m_tsp.disp_on == 0) // don't bother if we are under DSPOFF command
return 0;
/*
- state->m_video_pri_reg[0]
+ m_video_pri_reg[0]
xxxx ---- ---- ---- priority 3
---- xxxx ---- ---- priority 2
---- ---- xxxx ---- priority 1
---- ---- ---- xxxx priority 0
- state->m_video_pri_reg[1]
+ m_video_pri_reg[1]
---- ---- xxxx ---- priority 5
---- ---- ---- xxxx priority 4
Note that orthogonality level is actually REVERSED than the level number it indicates, so we have to play a little with the data for an easier usage ...
*/
- screen_pri = (state->m_video_pri_reg[1] & 0x00f0) >> 4; // priority 5
- screen_pri|= (state->m_video_pri_reg[1] & 0x000f) << 4; // priority 4
- screen_pri|= (state->m_video_pri_reg[0] & 0xf000) >> 4; // priority 3
- screen_pri|= (state->m_video_pri_reg[0] & 0x0f00) << 4; // priority 2
- screen_pri|= (state->m_video_pri_reg[0] & 0x00f0) << 12; // priority 1
- screen_pri|= (state->m_video_pri_reg[0] & 0x000f) << 20; // priority 0
+ screen_pri = (m_video_pri_reg[1] & 0x00f0) >> 4; // priority 5
+ screen_pri|= (m_video_pri_reg[1] & 0x000f) << 4; // priority 4
+ screen_pri|= (m_video_pri_reg[0] & 0xf000) >> 4; // priority 3
+ screen_pri|= (m_video_pri_reg[0] & 0x0f00) << 4; // priority 2
+ screen_pri|= (m_video_pri_reg[0] & 0x00f0) << 12; // priority 1
+ screen_pri|= (m_video_pri_reg[0] & 0x000f) << 20; // priority 0
for(pri=0;pri<6;pri++)
{
@@ -448,7 +448,7 @@ static SCREEN_UPDATE_RGB32( pc88va )
switch(cur_pri_lv & 3) // (palette color mode)
{
case 0: draw_text(screen.machine(),bitmap,cliprect); break;
- case 1: if(state->m_tsp.spr_on) { draw_sprites(screen.machine(),bitmap,cliprect); } break;
+ case 1: if(m_tsp.spr_on) { draw_sprites(screen.machine(),bitmap,cliprect); } break;
case 2: /* A = graphic 0 */ break;
case 3: /* B = graphic 1 */ break;
}
@@ -1669,7 +1669,7 @@ static MACHINE_CONFIG_START( pc88va, pc88va_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
- MCFG_SCREEN_UPDATE_STATIC( pc88va )
+ MCFG_SCREEN_UPDATE_DRIVER(pc88va_state, screen_update_pc88va)
MCFG_PALETTE_LENGTH(32)
// MCFG_PALETTE_INIT_OVERRIDE(pc88va_state, pc8801 )
diff --git a/src/mess/drivers/pcw.c b/src/mess/drivers/pcw.c
index d1f91ccf999..c539786c37c 100644
--- a/src/mess/drivers/pcw.c
+++ b/src/mess/drivers/pcw.c
@@ -1331,7 +1331,7 @@ static MACHINE_CONFIG_START( pcw, pcw_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(PCW_SCREEN_WIDTH, PCW_SCREEN_HEIGHT)
MCFG_SCREEN_VISIBLE_AREA(0, PCW_SCREEN_WIDTH-1, 0, PCW_SCREEN_HEIGHT-1)
- MCFG_SCREEN_UPDATE_STATIC( pcw )
+ MCFG_SCREEN_UPDATE_DRIVER(pcw_state, screen_update_pcw)
MCFG_PALETTE_LENGTH(PCW_NUM_COLOURS)
@@ -1358,7 +1358,7 @@ static MACHINE_CONFIG_DERIVED( pcw8256, pcw )
MCFG_SCREEN_REFRESH_RATE(50)
MCFG_SCREEN_SIZE( PCW_PRINTER_WIDTH, PCW_PRINTER_HEIGHT )
MCFG_SCREEN_VISIBLE_AREA(0, PCW_PRINTER_WIDTH-1, 0, PCW_PRINTER_HEIGHT-1)
- MCFG_SCREEN_UPDATE_STATIC( pcw_printer )
+ MCFG_SCREEN_UPDATE_DRIVER(pcw_state, screen_update_pcw_printer)
MCFG_DEFAULT_LAYOUT( layout_pcw )
@@ -1369,7 +1369,7 @@ static MACHINE_CONFIG_DERIVED( pcw8512, pcw )
MCFG_SCREEN_REFRESH_RATE(50)
MCFG_SCREEN_SIZE( PCW_PRINTER_WIDTH, PCW_PRINTER_HEIGHT )
MCFG_SCREEN_VISIBLE_AREA(0, PCW_PRINTER_WIDTH-1, 0, PCW_PRINTER_HEIGHT-1)
- MCFG_SCREEN_UPDATE_STATIC( pcw_printer )
+ MCFG_SCREEN_UPDATE_DRIVER(pcw_state, screen_update_pcw_printer)
MCFG_DEFAULT_LAYOUT( layout_pcw )
diff --git a/src/mess/drivers/pcw16.c b/src/mess/drivers/pcw16.c
index 93e024c5965..357819c1a0c 100644
--- a/src/mess/drivers/pcw16.c
+++ b/src/mess/drivers/pcw16.c
@@ -1490,7 +1490,7 @@ static MACHINE_CONFIG_START( pcw16, pcw16_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(PCW16_SCREEN_WIDTH, PCW16_SCREEN_HEIGHT)
MCFG_SCREEN_VISIBLE_AREA(0, PCW16_SCREEN_WIDTH-1, 0, PCW16_SCREEN_HEIGHT-1)
- MCFG_SCREEN_UPDATE_STATIC( pcw16 )
+ MCFG_SCREEN_UPDATE_DRIVER(pcw16_state, screen_update_pcw16)
MCFG_PALETTE_LENGTH(PCW16_NUM_COLOURS)
diff --git a/src/mess/drivers/pdp1.c b/src/mess/drivers/pdp1.c
index fca2d4f6a41..94efa103cfe 100644
--- a/src/mess/drivers/pdp1.c
+++ b/src/mess/drivers/pdp1.c
@@ -1963,8 +1963,8 @@ static MACHINE_CONFIG_START( pdp1, pdp1_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(virtual_width, virtual_height)
MCFG_SCREEN_VISIBLE_AREA(0, virtual_width-1, 0, virtual_height-1)
- MCFG_SCREEN_UPDATE_STATIC(pdp1)
- MCFG_SCREEN_VBLANK_STATIC(pdp1)
+ MCFG_SCREEN_UPDATE_DRIVER(pdp1_state, screen_update_pdp1)
+ MCFG_SCREEN_VBLANK_DRIVER(pdp1_state, screen_eof_pdp1)
MCFG_CRT_ADD( "crt", pdp1_crt_interface )
MCFG_DEVICE_ADD("readt", PDP1_READTAPE, 0)
diff --git a/src/mess/drivers/pet.c b/src/mess/drivers/pet.c
index a16b0c97b7b..e071389d554 100644
--- a/src/mess/drivers/pet.c
+++ b/src/mess/drivers/pet.c
@@ -668,7 +668,7 @@ static MACHINE_CONFIG_START( pet_general, pet_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(320, 200)
MCFG_SCREEN_VISIBLE_AREA(0, 320 - 1, 0, 200 - 1)
- MCFG_SCREEN_UPDATE_STATIC( pet )
+ MCFG_SCREEN_UPDATE_DRIVER(pet_state, screen_update_pet)
MCFG_GFXDECODE( pet )
MCFG_PALETTE_LENGTH(ARRAY_LENGTH(pet_palette) / 3)
diff --git a/src/mess/drivers/pk8000.c b/src/mess/drivers/pk8000.c
index 47acbbf001a..dc36410cf1f 100644
--- a/src/mess/drivers/pk8000.c
+++ b/src/mess/drivers/pk8000.c
@@ -29,6 +29,7 @@ public:
DECLARE_READ8_MEMBER(pk8000_joy_2_r);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_pk8000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -328,7 +329,7 @@ void pk8000_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( pk8000 )
+UINT32 pk8000_state::screen_update_pk8000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return pk8000_video_update(screen, bitmap, cliprect, screen.machine().device<ram_device>(RAM_TAG)->pointer());
}
@@ -357,7 +358,7 @@ static MACHINE_CONFIG_START( pk8000, pk8000_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(256+32, 192+32)
MCFG_SCREEN_VISIBLE_AREA(0, 256+32-1, 0, 192+32-1)
- MCFG_SCREEN_UPDATE_STATIC(pk8000)
+ MCFG_SCREEN_UPDATE_DRIVER(pk8000_state, screen_update_pk8000)
MCFG_PALETTE_LENGTH(16)
MCFG_PALETTE_INIT(pk8000)
diff --git a/src/mess/drivers/pk8020.c b/src/mess/drivers/pk8020.c
index 0fce7af2f43..40714504d2d 100644
--- a/src/mess/drivers/pk8020.c
+++ b/src/mess/drivers/pk8020.c
@@ -214,7 +214,7 @@ static MACHINE_CONFIG_START( pk8020, pk8020_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(pk8020)
+ MCFG_SCREEN_UPDATE_DRIVER(pk8020_state, screen_update_pk8020)
MCFG_GFXDECODE(pk8020)
MCFG_PALETTE_LENGTH(16)
diff --git a/src/mess/drivers/pocketc.c b/src/mess/drivers/pocketc.c
index 6453c6ba292..5aa045631e1 100644
--- a/src/mess/drivers/pocketc.c
+++ b/src/mess/drivers/pocketc.c
@@ -752,7 +752,7 @@ static MACHINE_CONFIG_START( pc1401, pc1401_state )
MCFG_FRAGMENT_ADD(pocketc)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC( pc1401 )
+ MCFG_SCREEN_UPDATE_DRIVER(pc1401_state, screen_update_pc1401)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( pc1402, pc1401 )
@@ -781,7 +781,7 @@ static MACHINE_CONFIG_START( pc1250, pc1251_state )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_SIZE(608, 300)
MCFG_SCREEN_VISIBLE_AREA(0, 608-1, 0, 300-1)
- MCFG_SCREEN_UPDATE_STATIC( pc1251 )
+ MCFG_SCREEN_UPDATE_DRIVER(pc1251_state, screen_update_pc1251)
MCFG_GFXDECODE( pc1251 )
MACHINE_CONFIG_END
@@ -842,7 +842,7 @@ static MACHINE_CONFIG_START( pc1350, pc1350_state )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_SIZE(640, 252)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 252-1)
- MCFG_SCREEN_UPDATE_STATIC( pc1350 )
+ MCFG_SCREEN_UPDATE_DRIVER(pc1350_state, screen_update_pc1350)
/* internal ram */
MCFG_RAM_ADD(RAM_TAG)
@@ -881,7 +881,7 @@ static MACHINE_CONFIG_START( pc1403, pc1403_state )
MCFG_SCREEN_VISIBLE_AREA(0, 848-1, 0, 320-1)
// MCFG_SCREEN_SIZE(848, 361)
// MCFG_SCREEN_VISIBLE_AREA(0, 848-1, 0, 361-1)
- MCFG_SCREEN_UPDATE_STATIC( pc1403 )
+ MCFG_SCREEN_UPDATE_DRIVER(pc1403_state, screen_update_pc1403)
MCFG_VIDEO_START( pc1403 )
MACHINE_CONFIG_END
diff --git a/src/mess/drivers/pockstat.c b/src/mess/drivers/pockstat.c
index 4d000405022..76dbac10be1 100644
--- a/src/mess/drivers/pockstat.c
+++ b/src/mess/drivers/pockstat.c
@@ -122,6 +122,7 @@ public:
DECLARE_WRITE32_MEMBER(ps_dac_w);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_pockstat(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -925,9 +926,8 @@ void pockstat_state::machine_reset()
m_ps_flash_write_count = 0;
}
-static SCREEN_UPDATE_RGB32( pockstat )
+UINT32 pockstat_state::screen_update_pockstat(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- pockstat_state *state = screen.machine().driver_data<pockstat_state>();
int x = 0;
int y = 0;
for(y = 0; y < 32; y++)
@@ -935,9 +935,9 @@ static SCREEN_UPDATE_RGB32( pockstat )
UINT32 *scanline = &bitmap.pix32(y);
for(x = 0; x < 32; x++)
{
- if(state->m_lcd_control != 0) // Hack
+ if(m_lcd_control != 0) // Hack
{
- if(state->m_lcd_buffer[y] & (1 << x))
+ if(m_lcd_buffer[y] & (1 << x))
{
scanline[x] = 0x00000000;
}
@@ -993,7 +993,7 @@ static MACHINE_CONFIG_START( pockstat, pockstat_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(32, 32)
MCFG_SCREEN_VISIBLE_AREA(0, 32-1, 0, 32-1)
- MCFG_SCREEN_UPDATE_STATIC(pockstat)
+ MCFG_SCREEN_UPDATE_DRIVER(pockstat_state, screen_update_pockstat)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/poly88.c b/src/mess/drivers/poly88.c
index d128c0f695c..4ebbc075f4d 100644
--- a/src/mess/drivers/poly88.c
+++ b/src/mess/drivers/poly88.c
@@ -178,7 +178,7 @@ static MACHINE_CONFIG_START( poly88, poly88_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(64*10, 16*15)
MCFG_SCREEN_VISIBLE_AREA(0, 64*10-1, 0, 16*15-1)
- MCFG_SCREEN_UPDATE_STATIC(poly88)
+ MCFG_SCREEN_UPDATE_DRIVER(poly88_state, screen_update_poly88)
MCFG_GFXDECODE(poly88)
MCFG_PALETTE_LENGTH(2)
diff --git a/src/mess/drivers/pp01.c b/src/mess/drivers/pp01.c
index 13a5e50cdb6..2f1aa8f0108 100644
--- a/src/mess/drivers/pp01.c
+++ b/src/mess/drivers/pp01.c
@@ -208,7 +208,7 @@ static MACHINE_CONFIG_START( pp01, pp01_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(256, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(pp01)
+ MCFG_SCREEN_UPDATE_DRIVER(pp01_state, screen_update_pp01)
MCFG_PALETTE_LENGTH(8)
diff --git a/src/mess/drivers/primo.c b/src/mess/drivers/primo.c
index 82a670066d2..633c9bb747a 100644
--- a/src/mess/drivers/primo.c
+++ b/src/mess/drivers/primo.c
@@ -271,7 +271,7 @@ static MACHINE_CONFIG_START( primoa32, primo_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE( 256, 192 )
MCFG_SCREEN_VISIBLE_AREA( 0, 256-1, 0, 192-1 )
- MCFG_SCREEN_UPDATE_STATIC( primo )
+ MCFG_SCREEN_UPDATE_DRIVER(primo_state, screen_update_primo)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/pt68k4.c b/src/mess/drivers/pt68k4.c
index b83fdaa5fce..1bb33671fa0 100644
--- a/src/mess/drivers/pt68k4.c
+++ b/src/mess/drivers/pt68k4.c
@@ -24,6 +24,7 @@ public:
required_shared_ptr<UINT16> m_p_ram;
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_pt68k4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
static ADDRESS_MAP_START(pt68k4_mem, AS_PROGRAM, 16, pt68k4_state)
@@ -51,7 +52,7 @@ void pt68k4_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( pt68k4 )
+UINT32 pt68k4_state::screen_update_pt68k4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -68,7 +69,7 @@ static MACHINE_CONFIG_START( pt68k4, pt68k4_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(pt68k4)
+ MCFG_SCREEN_UPDATE_DRIVER(pt68k4_state, screen_update_pt68k4)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
MACHINE_CONFIG_END
diff --git a/src/mess/drivers/pv1000.c b/src/mess/drivers/pv1000.c
index e89ca985fe4..a86405a42c5 100644
--- a/src/mess/drivers/pv1000.c
+++ b/src/mess/drivers/pv1000.c
@@ -99,6 +99,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void palette_init();
+ UINT32 screen_update_pv1000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -265,20 +266,19 @@ static DEVICE_IMAGE_LOAD( pv1000_cart )
}
-static SCREEN_UPDATE_IND16( pv1000 )
+UINT32 pv1000_state::screen_update_pv1000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pv1000_state *state = screen.machine().driver_data<pv1000_state>();
int x, y;
for ( y = 0; y < 24; y++ )
{
for ( x = 0; x < 32; x++ )
{
- UINT16 tile = state->m_p_videoram[ y * 32 + x ];
+ UINT16 tile = m_p_videoram[ y * 32 + x ];
if ( tile < 0xe0 )
{
- tile += ( state->m_io_regs[7] * 8 );
+ tile += ( m_io_regs[7] * 8 );
drawgfx_opaque( bitmap, cliprect, screen.machine().gfx[0], tile, 0, 0, 0, x*8, y*8 );
}
else
@@ -418,7 +418,7 @@ static MACHINE_CONFIG_START( pv1000, pv1000_state )
/* D65010G031 - Video & sound chip */
MCFG_SCREEN_ADD( "screen", RASTER )
MCFG_SCREEN_RAW_PARAMS( 17897725/3, 380, 0, 256, 262, 0, 192 )
- MCFG_SCREEN_UPDATE_STATIC( pv1000 )
+ MCFG_SCREEN_UPDATE_DRIVER(pv1000_state, screen_update_pv1000)
MCFG_PALETTE_LENGTH( 8 )
MCFG_GFXDECODE( pv1000 )
diff --git a/src/mess/drivers/pv9234.c b/src/mess/drivers/pv9234.c
index e14fca54ae8..2ebd73a741d 100644
--- a/src/mess/drivers/pv9234.c
+++ b/src/mess/drivers/pv9234.c
@@ -35,6 +35,7 @@ public:
required_shared_ptr<UINT32> m_p_ram;
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_pv9234(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -126,7 +127,7 @@ void pv9234_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( pv9234 )
+UINT32 pv9234_state::screen_update_pv9234(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -143,7 +144,7 @@ static MACHINE_CONFIG_START( pv9234, pv9234_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(pv9234)
+ MCFG_SCREEN_UPDATE_DRIVER(pv9234_state, screen_update_pv9234)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/px4.c b/src/mess/drivers/px4.c
index da8e4f36183..3a3148cf927 100644
--- a/src/mess/drivers/px4.c
+++ b/src/mess/drivers/px4.c
@@ -165,6 +165,7 @@ public:
virtual void palette_init();
DECLARE_MACHINE_START(px4_ramdisk);
DECLARE_PALETTE_INIT(px4p);
+ UINT32 screen_update_px4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -1026,22 +1027,21 @@ READ8_MEMBER(px4_state::px4_ramdisk_control_r)
VIDEO EMULATION
***************************************************************************/
-static SCREEN_UPDATE_IND16( px4 )
+UINT32 px4_state::screen_update_px4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- px4_state *px4 = screen.machine().driver_data<px4_state>();
/* display enabled? */
- if (BIT(px4->m_yoff, 7))
+ if (BIT(m_yoff, 7))
{
int y, x;
/* get vram start address */
- UINT8 *vram = &px4->m_ram->pointer()[(px4->m_vadr & 0xf8) << 8];
+ UINT8 *vram = &m_ram->pointer()[(m_vadr & 0xf8) << 8];
for (y = 0; y < 64; y++)
{
/* adjust against y-offset */
- UINT8 row = (y - (px4->m_yoff & 0x3f)) & 0x3f;
+ UINT8 row = (y - (m_yoff & 0x3f)) & 0x3f;
for (x = 0; x < 240/8; x++)
{
@@ -1369,7 +1369,7 @@ static MACHINE_CONFIG_START( px4, px4_state )
MCFG_SCREEN_REFRESH_RATE(72)
MCFG_SCREEN_SIZE(240, 64)
MCFG_SCREEN_VISIBLE_AREA(0, 239, 0, 63)
- MCFG_SCREEN_UPDATE_STATIC(px4)
+ MCFG_SCREEN_UPDATE_DRIVER(px4_state, screen_update_px4)
MCFG_DEFAULT_LAYOUT(layout_px4)
diff --git a/src/mess/drivers/radio86.c b/src/mess/drivers/radio86.c
index 98b902061b4..e494e4edcc3 100644
--- a/src/mess/drivers/radio86.c
+++ b/src/mess/drivers/radio86.c
@@ -363,7 +363,7 @@ static MACHINE_CONFIG_START( radio86, radio86_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(78*6, 30*10)
MCFG_SCREEN_VISIBLE_AREA(0, 78*6-1, 0, 30*10-1)
- MCFG_SCREEN_UPDATE_STATIC(radio86)
+ MCFG_SCREEN_UPDATE_DRIVER(radio86_state, screen_update_radio86)
MCFG_GFXDECODE(radio86)
MCFG_PALETTE_LENGTH(3)
MCFG_PALETTE_INIT_OVERRIDE(radio86_state,radio86)
diff --git a/src/mess/drivers/rainbow.c b/src/mess/drivers/rainbow.c
index f8e832c1875..11bb6bf8757 100644
--- a/src/mess/drivers/rainbow.c
+++ b/src/mess/drivers/rainbow.c
@@ -130,6 +130,8 @@ private:
void update_kbd_irq();
virtual void machine_reset();
+public:
+ UINT32 screen_update_rainbow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
void rainbow_state::machine_start()
@@ -203,7 +205,7 @@ void rainbow_state::machine_reset()
m_kbd8251->input_callback(SERIAL_STATE_CTS); // raise clear to send
}
-static SCREEN_UPDATE_IND16( rainbow )
+UINT32 rainbow_state::screen_update_rainbow(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
device_t *devconf = screen.machine().device("vt100_video");
rainbow_video_update( devconf, bitmap, cliprect);
@@ -474,7 +476,7 @@ static MACHINE_CONFIG_START( rainbow, rainbow_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(80*10, 25*10)
MCFG_SCREEN_VISIBLE_AREA(0, 80*10-1, 0, 25*10-1)
- MCFG_SCREEN_UPDATE_STATIC(rainbow)
+ MCFG_SCREEN_UPDATE_DRIVER(rainbow_state, screen_update_rainbow)
MCFG_GFXDECODE(rainbow)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(monochrome_green)
diff --git a/src/mess/drivers/rm380z.c b/src/mess/drivers/rm380z.c
index 8378abac957..409ead8c70f 100644
--- a/src/mess/drivers/rm380z.c
+++ b/src/mess/drivers/rm380z.c
@@ -135,10 +135,9 @@ static const floppy_interface rm380z_floppy_interface =
NULL
};
-static SCREEN_UPDATE_IND16( rm380z )
+UINT32 rm380z_state::screen_update_rm380z(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- rm380z_state *state = screen.machine().driver_data<rm380z_state>();
- state->update_screen(bitmap);
+ update_screen(bitmap);
return 0;
}
@@ -157,7 +156,7 @@ static MACHINE_CONFIG_START( rm380z, rm380z_state )
MCFG_SCREEN_SIZE((RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1)), (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1)))
MCFG_SCREEN_VISIBLE_AREA(0, (RM380Z_SCREENCOLS*(RM380Z_CHDIMX+1))-1, 0, (RM380Z_SCREENROWS*(RM380Z_CHDIMY+1))-1)
- MCFG_SCREEN_UPDATE_STATIC(rm380z)
+ MCFG_SCREEN_UPDATE_DRIVER(rm380z_state, screen_update_rm380z)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/rmnimbus.c b/src/mess/drivers/rmnimbus.c
index e42ec6c3831..e1a58db6b1a 100644
--- a/src/mess/drivers/rmnimbus.c
+++ b/src/mess/drivers/rmnimbus.c
@@ -305,8 +305,8 @@ static MACHINE_CONFIG_START( nimbus, rmnimbus_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(50)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(100))
- MCFG_SCREEN_UPDATE_STATIC(nimbus)
- MCFG_SCREEN_VBLANK_STATIC(nimbus)
+ MCFG_SCREEN_UPDATE_DRIVER(rmnimbus_state, screen_update_nimbus)
+ MCFG_SCREEN_VBLANK_DRIVER(rmnimbus_state, screen_eof_nimbus)
MCFG_VIDEO_ATTRIBUTES(VIDEO_UPDATE_SCANLINE)
diff --git a/src/mess/drivers/sapi1.c b/src/mess/drivers/sapi1.c
index 6ddc84e1596..2814d11fac3 100644
--- a/src/mess/drivers/sapi1.c
+++ b/src/mess/drivers/sapi1.c
@@ -183,7 +183,7 @@ static MACHINE_CONFIG_START( sapi1, sapi1_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(40*6, 24*9)
MCFG_SCREEN_VISIBLE_AREA(0, 40*6-1, 0, 24*9-1)
- MCFG_SCREEN_UPDATE_STATIC(sapi1)
+ MCFG_SCREEN_UPDATE_DRIVER(sapi1_state, screen_update_sapi1)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
@@ -218,7 +218,7 @@ static MACHINE_CONFIG_START( sapi3, sapi1_state )
//MCFG_SCREEN_SIZE(80*6, 24*9)
//MCFG_SCREEN_VISIBLE_AREA(0, 80*6-1, 0, 24*9-1)
//MCFG_VIDEO_START_OVERRIDE(sapi1_state,sapizps3)
- //MCFG_SCREEN_UPDATE_STATIC(sapizps3)
+ MCFG_SCREEN_UPDATE_DRIVER(sapi1_state, screen_update_sapizps3)
//MCFG_PALETTE_LENGTH(2)
//MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/scv.c b/src/mess/drivers/scv.c
index 0808838535b..05fc6b94cf2 100644
--- a/src/mess/drivers/scv.c
+++ b/src/mess/drivers/scv.c
@@ -37,6 +37,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void palette_init();
+ UINT32 screen_update_scv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -566,16 +567,15 @@ INLINE void draw_block_graph( bitmap_ind16 &bitmap, UINT8 x, UINT8 y, UINT8 col
}
-static SCREEN_UPDATE_IND16( scv )
+UINT32 scv_state::screen_update_scv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- scv_state *state = screen.machine().driver_data<scv_state>();
int x, y;
- UINT8 fg = state->m_videoram[0x1403] >> 4;
- UINT8 bg = state->m_videoram[0x1403] & 0x0f;
- UINT8 gr_fg = state->m_videoram[0x1401] >> 4;
- UINT8 gr_bg = state->m_videoram[0x1401] & 0x0f;
- int clip_x = ( state->m_videoram[0x1402] & 0x0f ) * 2;
- int clip_y = state->m_videoram[0x1402] >> 4;
+ UINT8 fg = m_videoram[0x1403] >> 4;
+ UINT8 bg = m_videoram[0x1403] & 0x0f;
+ UINT8 gr_fg = m_videoram[0x1401] >> 4;
+ UINT8 gr_bg = m_videoram[0x1401] & 0x0f;
+ int clip_x = ( m_videoram[0x1402] & 0x0f ) * 2;
+ int clip_y = m_videoram[0x1402] >> 4;
/* Clear the screen */
bitmap.fill(gr_bg , cliprect);
@@ -587,36 +587,36 @@ static SCREEN_UPDATE_IND16( scv )
if ( y < clip_y )
{
- text_y = ( state->m_videoram[0x1400] & 0x80 ) ? 0 : 1;
+ text_y = ( m_videoram[0x1400] & 0x80 ) ? 0 : 1;
}
else
{
- text_y = ( state->m_videoram[0x1400] & 0x80 ) ? 1 : 0;
+ text_y = ( m_videoram[0x1400] & 0x80 ) ? 1 : 0;
}
for ( x = 0; x < 32; x++ )
{
int text_x = 0;
- UINT8 d = state->m_videoram[ 0x1000 + y * 32 + x ];
+ UINT8 d = m_videoram[ 0x1000 + y * 32 + x ];
if ( x < clip_x )
{
- text_x = ( state->m_videoram[0x1400] & 0x40 ) ? 0 : 1;
+ text_x = ( m_videoram[0x1400] & 0x40 ) ? 0 : 1;
}
else
{
- text_x = ( state->m_videoram[0x1400] & 0x40 ) ? 1 : 0;
+ text_x = ( m_videoram[0x1400] & 0x40 ) ? 1 : 0;
}
if ( text_x && text_y )
{
/* Text mode */
- UINT8 *char_data = state->memregion( "charrom" )->base() + ( d & 0x7f ) * 8;
+ UINT8 *char_data = memregion( "charrom" )->base() + ( d & 0x7f ) * 8;
draw_text( bitmap, x * 8, y * 16, char_data, fg, bg );
}
else
{
- switch ( state->m_videoram[0x1400] & 0x03 )
+ switch ( m_videoram[0x1400] & 0x03 )
{
case 0x01: /* Semi graphics mode */
draw_semi_graph( bitmap, x * 8 , y * 16 , d & 0x80, gr_fg );
@@ -642,21 +642,21 @@ static SCREEN_UPDATE_IND16( scv )
}
/* Draw sprites if enabled */
- if ( state->m_videoram[0x1400] & 0x10 )
+ if ( m_videoram[0x1400] & 0x10 )
{
- UINT8 screen_start_sprite_line = ( ( ( state->m_videoram[0x1400] & 0xf7 ) == 0x17 ) && ( ( state->m_videoram[0x1402] & 0xef ) == 0x4f ) ) ? 21 + 32 : 0 ;
+ UINT8 screen_start_sprite_line = ( ( ( m_videoram[0x1400] & 0xf7 ) == 0x17 ) && ( ( m_videoram[0x1402] & 0xef ) == 0x4f ) ) ? 21 + 32 : 0 ;
int i;
for ( i = 0; i < 128; i++ )
{
- UINT8 spr_y = state->m_videoram[ 0x1200 + i * 4 ] & 0xfe;
- UINT8 y_32 = state->m_videoram[ 0x1200 + i * 4 ] & 0x01; /* Xx32 sprite */
- UINT8 clip = state->m_videoram[ 0x1201 + i * 4 ] >> 4;
- UINT8 col = state->m_videoram[ 0x1201 + i * 4 ] & 0x0f;
- UINT8 spr_x = state->m_videoram[ 0x1202 + i * 4 ] & 0xfe;
- UINT8 x_32 = state->m_videoram[ 0x1202 + i * 4 ] & 0x01; /* 32xX sprite */
- UINT8 tile_idx = state->m_videoram[ 0x1203 + i * 4 ] & 0x7f;
- UINT8 half = state->m_videoram[ 0x1203 + i * 4] & 0x80;
+ UINT8 spr_y = m_videoram[ 0x1200 + i * 4 ] & 0xfe;
+ UINT8 y_32 = m_videoram[ 0x1200 + i * 4 ] & 0x01; /* Xx32 sprite */
+ UINT8 clip = m_videoram[ 0x1201 + i * 4 ] >> 4;
+ UINT8 col = m_videoram[ 0x1201 + i * 4 ] & 0x0f;
+ UINT8 spr_x = m_videoram[ 0x1202 + i * 4 ] & 0xfe;
+ UINT8 x_32 = m_videoram[ 0x1202 + i * 4 ] & 0x01; /* 32xX sprite */
+ UINT8 tile_idx = m_videoram[ 0x1203 + i * 4 ] & 0x7f;
+ UINT8 half = m_videoram[ 0x1203 + i * 4] & 0x80;
UINT8 left = 1;
UINT8 right = 1;
UINT8 top = 1;
@@ -704,34 +704,34 @@ static SCREEN_UPDATE_IND16( scv )
}
/* Check if 2 color sprites are enabled */
- if ( ( state->m_videoram[0x1400] & 0x20 ) && ( i & 0x20 ) )
+ if ( ( m_videoram[0x1400] & 0x20 ) && ( i & 0x20 ) )
{
/* 2 color sprite handling */
- draw_sprite( state, bitmap, spr_x, spr_y, tile_idx, col, left, right, top, bottom, clip, screen_start_sprite_line );
+ draw_sprite( this, bitmap, spr_x, spr_y, tile_idx, col, left, right, top, bottom, clip, screen_start_sprite_line );
if ( x_32 || y_32 )
{
static const UINT8 spr_2col_lut0[16] = { 0, 15, 12, 13, 10, 11, 8, 9, 6, 7, 4, 5, 2, 3, 1, 1 };
static const UINT8 spr_2col_lut1[16] = { 0, 1, 8, 11, 2, 3, 10, 9, 4, 5, 12, 13, 6, 7, 14, 15 };
- draw_sprite( state, bitmap, spr_x, spr_y, tile_idx ^ ( 8 * x_32 + y_32 ), ( i & 0x40 ) ? spr_2col_lut1[col] : spr_2col_lut0[col], left, right, top, bottom, clip, screen_start_sprite_line );
+ draw_sprite( this, bitmap, spr_x, spr_y, tile_idx ^ ( 8 * x_32 + y_32 ), ( i & 0x40 ) ? spr_2col_lut1[col] : spr_2col_lut0[col], left, right, top, bottom, clip, screen_start_sprite_line );
}
}
else
{
/* regular sprite handling */
- draw_sprite( state, bitmap, spr_x, spr_y, tile_idx, col, left, right, top, bottom, clip, screen_start_sprite_line );
+ draw_sprite( this, bitmap, spr_x, spr_y, tile_idx, col, left, right, top, bottom, clip, screen_start_sprite_line );
if ( x_32 )
{
- draw_sprite( state, bitmap, spr_x + 16, spr_y, tile_idx | 8, col, 1, 1, top, bottom, clip, screen_start_sprite_line );
+ draw_sprite( this, bitmap, spr_x + 16, spr_y, tile_idx | 8, col, 1, 1, top, bottom, clip, screen_start_sprite_line );
}
if ( y_32 )
{
clip = ( clip & 0x08 ) ? ( clip & 0x07 ) : 0;
- draw_sprite( state, bitmap, spr_x, spr_y + 16, tile_idx | 1, col, left, right, 1, 1, clip, screen_start_sprite_line );
+ draw_sprite( this, bitmap, spr_x, spr_y + 16, tile_idx | 1, col, left, right, 1, 1, clip, screen_start_sprite_line );
if ( x_32 )
{
- draw_sprite( state, bitmap, spr_x + 16, spr_y + 16, tile_idx | 9, col, 1, 1, 1, 1, clip, screen_start_sprite_line );
+ draw_sprite( this, bitmap, spr_x + 16, spr_y + 16, tile_idx | 9, col, 1, 1, 1, 1, clip, screen_start_sprite_line );
}
}
}
@@ -796,7 +796,7 @@ static MACHINE_CONFIG_START( scv, scv_state )
/* Video chip is EPOCH TV-1 */
MCFG_SCREEN_ADD( "screen", RASTER )
MCFG_SCREEN_RAW_PARAMS( XTAL_14_31818MHz/2, 456, 24, 24+192, 262, 23, 23+222 ) /* TODO: Verify */
- MCFG_SCREEN_UPDATE_STATIC( scv )
+ MCFG_SCREEN_UPDATE_DRIVER(scv_state, screen_update_scv)
MCFG_GFXDECODE(scv)
MCFG_PALETTE_LENGTH( 16 )
diff --git a/src/mess/drivers/sgi_ip6.c b/src/mess/drivers/sgi_ip6.c
index af936d02fa8..db60e1f9af6 100644
--- a/src/mess/drivers/sgi_ip6.c
+++ b/src/mess/drivers/sgi_ip6.c
@@ -41,6 +41,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_sgi_ip6(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -73,7 +74,7 @@ void sgi_ip6_state::video_start()
{
}
-static SCREEN_UPDATE_RGB32( sgi_ip6 )
+UINT32 sgi_ip6_state::screen_update_sgi_ip6(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -241,7 +242,7 @@ static MACHINE_CONFIG_START( sgi_ip6, sgi_ip6_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(sgi_ip6)
+ MCFG_SCREEN_UPDATE_DRIVER(sgi_ip6_state, screen_update_sgi_ip6)
MACHINE_CONFIG_END
diff --git a/src/mess/drivers/sm1800.c b/src/mess/drivers/sm1800.c
index 02b7ba878e0..9f59571dc0f 100644
--- a/src/mess/drivers/sm1800.c
+++ b/src/mess/drivers/sm1800.c
@@ -44,6 +44,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_sm1800(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
static ADDRESS_MAP_START(sm1800_mem, AS_PROGRAM, 8, sm1800_state)
@@ -83,12 +84,11 @@ void sm1800_state::video_start()
}
-static SCREEN_UPDATE_IND16( sm1800 )
+UINT32 sm1800_state::screen_update_sm1800(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
device_t *devconf = screen.machine().device("i8275");
- sm1800_state *state = screen.machine().driver_data<sm1800_state>();
i8275_update( devconf, bitmap, cliprect);
- copybitmap(bitmap, state->m_bitmap, 0, 0, 0, 0, cliprect);
+ copybitmap(bitmap, m_bitmap, 0, 0, 0, 0, cliprect);
return 0;
}
@@ -198,7 +198,7 @@ static MACHINE_CONFIG_START( sm1800, sm1800_state )
MCFG_SCREEN_SIZE(640, 480)
MCFG_GFXDECODE(sm1800)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(sm1800)
+ MCFG_SCREEN_UPDATE_DRIVER(sm1800_state, screen_update_sm1800)
MCFG_PALETTE_LENGTH(3)
/* Devices */
diff --git a/src/mess/drivers/smc777.c b/src/mess/drivers/smc777.c
index ae045d3f227..20cd1a91945 100644
--- a/src/mess/drivers/smc777.c
+++ b/src/mess/drivers/smc777.c
@@ -86,6 +86,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_smc777(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -97,19 +98,18 @@ void smc777_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( smc777 )
+UINT32 smc777_state::screen_update_smc777(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- smc777_state *state = screen.machine().driver_data<smc777_state>();
int x,y,yi;
UINT16 count;
UINT8 *vram = screen.machine().root_device().memregion("vram")->base();
UINT8 *attr = screen.machine().root_device().memregion("attr")->base();
- UINT8 *gram = state->memregion("fbuf")->base();
+ UINT8 *gram = memregion("fbuf")->base();
int x_width;
- bitmap.fill(screen.machine().pens[state->m_backdrop_pen], cliprect);
+ bitmap.fill(screen.machine().pens[m_backdrop_pen], cliprect);
- x_width = (state->m_display_reg & 0x80) ? 2 : 4;
+ x_width = (m_display_reg & 0x80) ? 2 : 4;
count = 0x0000;
@@ -153,7 +153,7 @@ static SCREEN_UPDATE_IND16( smc777 )
count = 0x0000;
- x_width = (state->m_display_reg & 0x80) ? 40 : 80;
+ x_width = (m_display_reg & 0x80) ? 40 : 80;
for(y=0;y<25;y++)
{
@@ -191,7 +191,7 @@ static SCREEN_UPDATE_IND16( smc777 )
UINT8 *gfx_data = screen.machine().root_device().memregion("pcg")->base();
int pen;
- pen = ((gfx_data[tile*8+yi]>>(7-xi)) & 1) ? (color+state->m_pal_mode) : bk_pen;
+ pen = ((gfx_data[tile*8+yi]>>(7-xi)) & 1) ? (color+m_pal_mode) : bk_pen;
if(pen != -1)
bitmap.pix16(y*8+CRTC_MIN_Y+yi, x*8+CRTC_MIN_X+xi) = screen.machine().pens[pen];
@@ -199,12 +199,12 @@ static SCREEN_UPDATE_IND16( smc777 )
}
// draw cursor
- if(state->m_cursor_addr == count)
+ if(m_cursor_addr == count)
{
int xc,yc,cursor_on;
cursor_on = 0;
- switch(state->m_cursor_raster & 0x60)
+ switch(m_cursor_raster & 0x60)
{
case 0x00: cursor_on = 1; break; //always on
case 0x20: cursor_on = 0; break; //always off
@@ -214,7 +214,7 @@ static SCREEN_UPDATE_IND16( smc777 )
if(cursor_on)
{
- for(yc=0;yc<(8-(state->m_cursor_raster & 7));yc++)
+ for(yc=0;yc<(8-(m_cursor_raster & 7));yc++)
{
for(xc=0;xc<8;xc++)
{
@@ -224,7 +224,7 @@ static SCREEN_UPDATE_IND16( smc777 )
}
}
- (state->m_display_reg & 0x80) ? count+=2 : count++;
+ (m_display_reg & 0x80) ? count+=2 : count++;
}
}
@@ -1088,7 +1088,7 @@ static MACHINE_CONFIG_START( smc777, smc777_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(0x400, 400)
MCFG_SCREEN_VISIBLE_AREA(0, 660-1, 0, 220-1) //normal 640 x 200 + 20 pixels for border color
- MCFG_SCREEN_UPDATE_STATIC(smc777)
+ MCFG_SCREEN_UPDATE_DRIVER(smc777_state, screen_update_smc777)
MCFG_PALETTE_LENGTH(0x10+8) //16 palette entries + 8 special colors
MCFG_GFXDECODE(smc777)
diff --git a/src/mess/drivers/sms.c b/src/mess/drivers/sms.c
index 90b32dbe2da..ef5e6ae869a 100644
--- a/src/mess/drivers/sms.c
+++ b/src/mess/drivers/sms.c
@@ -394,7 +394,7 @@ static MACHINE_CONFIG_DERIVED( sms2_ntsc, sms_ntsc_base )
MCFG_SCREEN_RAW_PARAMS(XTAL_53_693175MHz/10, \
SEGA315_5124_WIDTH , SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH - 2, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256 + 10, \
SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT + 224)
- MCFG_SCREEN_UPDATE_STATIC(sms)
+ MCFG_SCREEN_UPDATE_DRIVER(sms_state, screen_update_sms)
MCFG_PALETTE_LENGTH(SEGA315_5124_PALETTE_SIZE)
MCFG_PALETTE_INIT(sega315_5124)
@@ -413,19 +413,19 @@ static MACHINE_CONFIG_DERIVED( sms1_ntsc, sms_ntsc_base )
MCFG_SCREEN_RAW_PARAMS(XTAL_53_693175MHz/10, \
SEGA315_5124_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH - 2, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256 + 10, \
SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT + 224)
- MCFG_SCREEN_UPDATE_STATIC(sms1)
+ MCFG_SCREEN_UPDATE_DRIVER(sms_state, screen_update_sms1)
MCFG_SCREEN_ADD("left_lcd", LCD) // This is needed for SegaScope Left LCD
MCFG_SCREEN_RAW_PARAMS(XTAL_53_693175MHz/10, \
SEGA315_5124_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH - 2, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256 + 10, \
SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT + 224)
- MCFG_SCREEN_UPDATE_STATIC(sms1)
+ MCFG_SCREEN_UPDATE_DRIVER(sms_state, screen_update_sms1)
MCFG_SCREEN_ADD("right_lcd", LCD) // This is needed for SegaScope Right LCD
MCFG_SCREEN_RAW_PARAMS(XTAL_53_693175MHz/10, \
SEGA315_5124_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH - 2, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256 + 10, \
SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_224_TBORDER_HEIGHT + 224)
- MCFG_SCREEN_UPDATE_STATIC(sms1)
+ MCFG_SCREEN_UPDATE_DRIVER(sms_state, screen_update_sms1)
MCFG_DEFAULT_LAYOUT(layout_sms1)
@@ -506,7 +506,7 @@ static MACHINE_CONFIG_DERIVED( sms2_pal, sms_pal_base )
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_PAL/10, \
SEGA315_5124_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH - 2, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256 + 10, \
SEGA315_5124_HEIGHT_PAL, SEGA315_5124_TBORDER_START + SEGA315_5124_PAL_240_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_PAL_240_TBORDER_HEIGHT + 240)
- MCFG_SCREEN_UPDATE_STATIC(sms)
+ MCFG_SCREEN_UPDATE_DRIVER(sms_state, screen_update_sms)
MCFG_PALETTE_LENGTH(SEGA315_5124_PALETTE_SIZE)
MCFG_PALETTE_INIT(sega315_5124)
@@ -525,19 +525,19 @@ static MACHINE_CONFIG_DERIVED( sms1_pal, sms_pal_base )
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_PAL/10, \
SEGA315_5124_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH - 2, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256 + 10, \
SEGA315_5124_HEIGHT_PAL, SEGA315_5124_TBORDER_START + SEGA315_5124_PAL_240_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_PAL_240_TBORDER_HEIGHT + 240)
- MCFG_SCREEN_UPDATE_STATIC(sms1)
+ MCFG_SCREEN_UPDATE_DRIVER(sms_state, screen_update_sms1)
MCFG_SCREEN_ADD("left_lcd", LCD) // This is needed for SegaScope Left LCD
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_PAL/10, \
SEGA315_5124_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH - 2, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256 + 10, \
SEGA315_5124_HEIGHT_PAL, SEGA315_5124_TBORDER_START + SEGA315_5124_PAL_240_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_PAL_240_TBORDER_HEIGHT + 240)
- MCFG_SCREEN_UPDATE_STATIC(sms1)
+ MCFG_SCREEN_UPDATE_DRIVER(sms_state, screen_update_sms1)
MCFG_SCREEN_ADD("right_lcd", LCD) // This is needed for SegaScope Right LCD
MCFG_SCREEN_RAW_PARAMS(MASTER_CLOCK_PAL/10, \
SEGA315_5124_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH - 2, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 256 + 10, \
SEGA315_5124_HEIGHT_PAL, SEGA315_5124_TBORDER_START + SEGA315_5124_PAL_240_TBORDER_HEIGHT, SEGA315_5124_TBORDER_START + SEGA315_5124_PAL_240_TBORDER_HEIGHT + 240)
- MCFG_SCREEN_UPDATE_STATIC(sms1)
+ MCFG_SCREEN_UPDATE_DRIVER(sms_state, screen_update_sms1)
MCFG_PALETTE_LENGTH(SEGA315_5124_PALETTE_SIZE)
MCFG_PALETTE_INIT(sega315_5124)
@@ -586,7 +586,7 @@ static MACHINE_CONFIG_START( gamegear, sms_state )
MCFG_SCREEN_RAW_PARAMS(XTAL_53_693175MHz/10, \
SEGA315_5124_WIDTH, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 6*8, SEGA315_5124_LBORDER_START + SEGA315_5124_LBORDER_WIDTH + 26*8, \
SEGA315_5124_HEIGHT_NTSC, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_192_TBORDER_HEIGHT + 3*8, SEGA315_5124_TBORDER_START + SEGA315_5124_NTSC_192_TBORDER_HEIGHT + 21*8 )
- MCFG_SCREEN_UPDATE_STATIC(gamegear)
+ MCFG_SCREEN_UPDATE_DRIVER(sms_state, screen_update_gamegear)
MCFG_PALETTE_LENGTH(SEGA315_5378_PALETTE_SIZE)
MCFG_PALETTE_INIT(sega315_5378)
diff --git a/src/mess/drivers/socrates.c b/src/mess/drivers/socrates.c
index 145dfcb379c..6e77144dfc7 100644
--- a/src/mess/drivers/socrates.c
+++ b/src/mess/drivers/socrates.c
@@ -127,6 +127,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_socrates(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -608,9 +609,8 @@ void socrates_state::video_start()
m_scroll_offset = 0;
}
-static SCREEN_UPDATE_IND16( socrates )
+UINT32 socrates_state::screen_update_socrates(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- socrates_state *state = screen.machine().driver_data<socrates_state>();
static const UINT8 fixedcolors[8] =
{
0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0xF7
@@ -619,24 +619,24 @@ static SCREEN_UPDATE_IND16( socrates )
int lineoffset = 0; // if display ever tries to display data at 0xfxxx, offset line displayed by 0x1000
for (y = 0; y < 228; y++)
{
- if ((((y+state->m_scroll_offset)*128)&0xffff) >= 0xf000) lineoffset = 0x1000; // see comment above
+ if ((((y+m_scroll_offset)*128)&0xffff) >= 0xf000) lineoffset = 0x1000; // see comment above
for (x = 0; x < 264; x++)
{
if (x < 256)
{
- colidx = state->m_videoram[(((y+state->m_scroll_offset)*128)+(x>>1)+lineoffset)&0xffff];
+ colidx = m_videoram[(((y+m_scroll_offset)*128)+(x>>1)+lineoffset)&0xffff];
if (x&1) colidx >>=4;
colidx &= 0xF;
- if (colidx > 7) color=state->m_videoram[0xF000+(colidx<<8)+((y+state->m_scroll_offset)&0xFF)];
+ if (colidx > 7) color=m_videoram[0xF000+(colidx<<8)+((y+m_scroll_offset)&0xFF)];
else color=fixedcolors[colidx];
bitmap.pix16(y, x) = color;
}
else
{
- colidx = state->m_videoram[(((y+state->m_scroll_offset)*128)+(127)+lineoffset)&0xffff];
+ colidx = m_videoram[(((y+m_scroll_offset)*128)+(127)+lineoffset)&0xffff];
colidx >>=4;
colidx &= 0xF;
- if (colidx > 7) color=state->m_videoram[0xF000+(colidx<<8)+((y+state->m_scroll_offset)&0xFF)];
+ if (colidx > 7) color=m_videoram[0xF000+(colidx<<8)+((y+m_scroll_offset)&0xFF)];
else color=fixedcolors[colidx];
bitmap.pix16(y, x) = color;
}
@@ -934,7 +934,7 @@ static MACHINE_CONFIG_START( socrates, socrates_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(264, 228) // technically the screen size is 256x228 but super painter abuses what I suspect is a hardware bug to display repeated pixels of the very last pixel beyond this horizontal space, well into hblank
MCFG_SCREEN_VISIBLE_AREA(0, 263, 0, 219) // the last few rows are usually cut off by the screen bottom but are indeed displayed if you mess with v-hold
- MCFG_SCREEN_UPDATE_STATIC(socrates)
+ MCFG_SCREEN_UPDATE_DRIVER(socrates_state, screen_update_socrates)
MCFG_PALETTE_LENGTH(256)
diff --git a/src/mess/drivers/special.c b/src/mess/drivers/special.c
index 8a79b46826f..69da67bcab9 100644
--- a/src/mess/drivers/special.c
+++ b/src/mess/drivers/special.c
@@ -412,7 +412,7 @@ static MACHINE_CONFIG_START( special, special_state )
MCFG_SCREEN_SIZE(384, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 256-1)
MCFG_VIDEO_START_OVERRIDE(special_state,special)
- MCFG_SCREEN_UPDATE_STATIC(special)
+ MCFG_SCREEN_UPDATE_DRIVER(special_state, screen_update_special)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
@@ -435,7 +435,7 @@ static MACHINE_CONFIG_DERIVED( specialp, special )
MCFG_CPU_PROGRAM_MAP(specialp_mem)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(specialp)
+ MCFG_SCREEN_UPDATE_DRIVER(special_state, screen_update_specialp)
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
MCFG_VIDEO_START_OVERRIDE(special_state,specialp)
@@ -450,7 +450,7 @@ static MACHINE_CONFIG_DERIVED( specimx, special )
/* video hardware */
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(specimx)
+ MCFG_SCREEN_UPDATE_DRIVER(special_state, screen_update_specimx)
MCFG_VIDEO_START_OVERRIDE(special_state,specimx)
MCFG_PALETTE_LENGTH(16)
MCFG_PALETTE_INIT_OVERRIDE(special_state, specimx )
@@ -483,7 +483,7 @@ static MACHINE_CONFIG_START( erik, special_state )
MCFG_SCREEN_SIZE(384, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 384-1, 0, 256-1)
MCFG_VIDEO_START_OVERRIDE(special_state,erik)
- MCFG_SCREEN_UPDATE_STATIC(erik)
+ MCFG_SCREEN_UPDATE_DRIVER(special_state, screen_update_erik)
MCFG_PALETTE_LENGTH(8)
MCFG_PALETTE_INIT_OVERRIDE(special_state,erik)
diff --git a/src/mess/drivers/spectrum.c b/src/mess/drivers/spectrum.c
index 93c8971c9d4..32c18017e5e 100644
--- a/src/mess/drivers/spectrum.c
+++ b/src/mess/drivers/spectrum.c
@@ -719,8 +719,8 @@ MACHINE_CONFIG_START( spectrum_common, spectrum_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(SPEC_SCREEN_WIDTH, SPEC_SCREEN_HEIGHT)
MCFG_SCREEN_VISIBLE_AREA(0, SPEC_SCREEN_WIDTH-1, 0, SPEC_SCREEN_HEIGHT-1)
- MCFG_SCREEN_UPDATE_STATIC( spectrum )
- MCFG_SCREEN_VBLANK_STATIC( spectrum )
+ MCFG_SCREEN_UPDATE_DRIVER(spectrum_state, screen_update_spectrum)
+ MCFG_SCREEN_VBLANK_DRIVER(spectrum_state, screen_eof_spectrum)
MCFG_PALETTE_LENGTH(16)
MCFG_PALETTE_INIT_OVERRIDE(spectrum_state, spectrum )
diff --git a/src/mess/drivers/ssem.c b/src/mess/drivers/ssem.c
index cd01fa12c26..fe9d8d191c5 100644
--- a/src/mess/drivers/ssem.c
+++ b/src/mess/drivers/ssem.c
@@ -21,6 +21,7 @@ public:
required_shared_ptr<UINT8> m_store;
UINT8 m_store_line;
virtual void machine_reset();
+ UINT32 screen_update_ssem(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -442,9 +443,8 @@ static void glyph_print(running_machine &machine, bitmap_rgb32 &bitmap, INT32 x,
}
}
-static SCREEN_UPDATE_RGB32( ssem )
+UINT32 ssem_state::screen_update_ssem(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- ssem_state *state = screen.machine().driver_data<ssem_state>();
UINT32 line = 0;
device_t *ssem_cpu = screen.machine().device("maincpu");
UINT32 accum = ssem_cpu->state().state_int(SSEM_A);
@@ -453,19 +453,19 @@ static SCREEN_UPDATE_RGB32( ssem )
for(line = 0; line < 32; line++)
{
- word = (state->m_store[(line << 2) | 0] << 24) |
- (state->m_store[(line << 2) | 1] << 16) |
- (state->m_store[(line << 2) | 2] << 8) |
- (state->m_store[(line << 2) | 3] << 0);
+ word = (m_store[(line << 2) | 0] << 24) |
+ (m_store[(line << 2) | 1] << 16) |
+ (m_store[(line << 2) | 2] << 8) |
+ (m_store[(line << 2) | 3] << 0);
for(bit = 0; bit < 32; bit++)
{
if(word & (1 << (31 - bit)))
{
- glyph_print(screen.machine(), bitmap, bit << 3, line << 3, "%c", line == state->m_store_line ? 4 : 2);
+ glyph_print(screen.machine(), bitmap, bit << 3, line << 3, "%c", line == m_store_line ? 4 : 2);
}
else
{
- glyph_print(screen.machine(), bitmap, bit << 3, line << 3, "%c", line == state->m_store_line ? 3 : 1);
+ glyph_print(screen.machine(), bitmap, bit << 3, line << 3, "%c", line == m_store_line ? 3 : 1);
}
}
}
@@ -482,11 +482,11 @@ static SCREEN_UPDATE_RGB32( ssem )
}
}
- word = reverse((state->m_store[(state->m_store_line << 2) | 0] << 24) |
- (state->m_store[(state->m_store_line << 2) | 1] << 16) |
- (state->m_store[(state->m_store_line << 2) | 2] << 8) |
- (state->m_store[(state->m_store_line << 2) | 3] << 0));
- glyph_print(screen.machine(), bitmap, 0, 272, "LINE:%02d VALUE:%08x HALT:%d", state->m_store_line, word, ssem_cpu->state().state_int(SSEM_HALT));
+ word = reverse((m_store[(m_store_line << 2) | 0] << 24) |
+ (m_store[(m_store_line << 2) | 1] << 16) |
+ (m_store[(m_store_line << 2) | 2] << 8) |
+ (m_store[(m_store_line << 2) | 3] << 0));
+ glyph_print(screen.machine(), bitmap, 0, 272, "LINE:%02d VALUE:%08x HALT:%d", m_store_line, word, ssem_cpu->state().state_int(SSEM_HALT));
return 0;
}
@@ -642,7 +642,7 @@ static MACHINE_CONFIG_START( ssem, ssem_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(256, 280)
MCFG_SCREEN_VISIBLE_AREA(0, 255, 0, 279)
- MCFG_SCREEN_UPDATE_STATIC(ssem)
+ MCFG_SCREEN_UPDATE_DRIVER(ssem_state, screen_update_ssem)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/ssystem3.c b/src/mess/drivers/ssystem3.c
index a1e99fdfd08..367ede0f39e 100644
--- a/src/mess/drivers/ssystem3.c
+++ b/src/mess/drivers/ssystem3.c
@@ -313,7 +313,7 @@ static MACHINE_CONFIG_START( ssystem3, ssystem3_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(728, 437)
MCFG_SCREEN_VISIBLE_AREA(0, 728-1, 0, 437-1)
- MCFG_SCREEN_UPDATE_STATIC( ssystem3 )
+ MCFG_SCREEN_UPDATE_DRIVER(ssystem3_state, screen_update_ssystem3)
MCFG_PALETTE_LENGTH(242 + 32768)
diff --git a/src/mess/drivers/super80.c b/src/mess/drivers/super80.c
index 4133e7da9fc..e1109232774 100644
--- a/src/mess/drivers/super80.c
+++ b/src/mess/drivers/super80.c
@@ -642,7 +642,7 @@ static MACHINE_CONFIG_START( super80, super80_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(48.8)
MCFG_SCREEN_RAW_PARAMS(PIXEL_CLOCK, HTOTAL, HBEND, HBSTART, VTOTAL, VBEND, VBSTART)
- MCFG_SCREEN_UPDATE_STATIC(super80)
+ MCFG_SCREEN_UPDATE_DRIVER(super80_state, screen_update_super80)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(monochrome_green)
@@ -671,7 +671,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( super80d, super80 )
MCFG_GFXDECODE(super80d)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(super80d)
+ MCFG_SCREEN_UPDATE_DRIVER(super80_state, screen_update_super80d)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( super80e, super80 )
@@ -679,7 +679,7 @@ static MACHINE_CONFIG_DERIVED( super80e, super80 )
MCFG_CPU_IO_MAP(super80e_io)
MCFG_GFXDECODE(super80e)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(super80e)
+ MCFG_SCREEN_UPDATE_DRIVER(super80_state, screen_update_super80e)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( super80m, super80 )
@@ -691,8 +691,8 @@ static MACHINE_CONFIG_DERIVED( super80m, super80 )
MCFG_PALETTE_INIT_OVERRIDE(super80_state,super80m)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC(super80m)
- MCFG_SCREEN_VBLANK_STATIC(super80m)
+ MCFG_SCREEN_UPDATE_DRIVER(super80_state, screen_update_super80m)
+ MCFG_SCREEN_VBLANK_DRIVER(super80_state, screen_eof_super80m)
MACHINE_CONFIG_END
static MACHINE_CONFIG_START( super80v, super80_state )
@@ -708,8 +708,8 @@ static MACHINE_CONFIG_START( super80v, super80_state )
MCFG_SCREEN_REFRESH_RATE(50)
MCFG_SCREEN_SIZE(SUPER80V_SCREEN_WIDTH, SUPER80V_SCREEN_HEIGHT)
MCFG_SCREEN_VISIBLE_AREA(0, SUPER80V_SCREEN_WIDTH-1, 0, SUPER80V_SCREEN_HEIGHT-1)
- MCFG_SCREEN_UPDATE_STATIC(super80v)
- MCFG_SCREEN_VBLANK_STATIC(super80m)
+ MCFG_SCREEN_UPDATE_DRIVER(super80_state, screen_update_super80v)
+ MCFG_SCREEN_VBLANK_DRIVER(super80_state, screen_eof_super80m)
MCFG_PALETTE_LENGTH(16)
MCFG_PALETTE_INIT_OVERRIDE(super80_state,super80m)
diff --git a/src/mess/drivers/supracan.c b/src/mess/drivers/supracan.c
index 4a9ccd552b1..b648fe7c90d 100644
--- a/src/mess/drivers/supracan.c
+++ b/src/mess/drivers/supracan.c
@@ -200,6 +200,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_supracan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -763,9 +764,8 @@ static void supracan_suprnova_draw_roz(running_machine &machine, bitmap_ind16 &b
// Sango Fighter Intro: 03c8: 0000 0011 1100 1000 ----: ---- ---- ---- ---- 6c20 4620 ---- 0x01
// Sango Fighter Game: 03ce: 0000 0011 1100 1110 0622: 0000 0110 0010 0010 2620 4620 ---- 0x01
-static SCREEN_UPDATE_IND16( supracan )
+UINT32 supracan_state::screen_update_supracan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- supracan_state *state = (supracan_state *)screen.machine().driver_data<supracan_state>();
@@ -777,19 +777,19 @@ static SCREEN_UPDATE_IND16( supracan )
{
const rectangle &visarea = screen.visible_area();
- state->m_sprite_final_bitmap.fill(0x00, visarea);
+ m_sprite_final_bitmap.fill(0x00, visarea);
bitmap.fill(0x80, visarea);
- draw_sprites(screen.machine(), state->m_sprite_final_bitmap, visarea);
+ draw_sprites(screen.machine(), m_sprite_final_bitmap, visarea);
}
}
else
{
- state->m_sprite_final_bitmap.fill(0x00, cliprect);
+ m_sprite_final_bitmap.fill(0x00, cliprect);
bitmap.fill(0x80, cliprect);
- draw_sprites(screen.machine(), state->m_sprite_final_bitmap, cliprect);
+ draw_sprites(screen.machine(), m_sprite_final_bitmap, cliprect);
}
@@ -806,31 +806,31 @@ static SCREEN_UPDATE_IND16( supracan )
for (int layer = 3; layer >=0; layer--)
{
- // popmessage("%04x\n",state->m_video_flags);
+ // popmessage("%04x\n",m_video_flags);
int enabled = 0;
- if(state->m_video_flags & 0x04)
+ if(m_video_flags & 0x04)
if (layer==3) enabled = 1;
- if(state->m_video_flags & 0x80)
+ if(m_video_flags & 0x80)
if (layer==0) enabled = 1;
- if(state->m_video_flags & 0x40)
+ if(m_video_flags & 0x40)
if (layer==1) enabled = 1;
- if(state->m_video_flags & 0x20)
+ if(m_video_flags & 0x20)
if (layer==2) enabled = 1;
- if (layer==3) priority = ((state->m_roz_mode >> 13) & 7); // roz case
- else priority = ((state->m_tilemap_flags[layer] >> 13) & 7); // normal cases
+ if (layer==3) priority = ((m_roz_mode >> 13) & 7); // roz case
+ else priority = ((m_tilemap_flags[layer] >> 13) & 7); // normal cases
if (priority==pri)
{
// tilemap_num = layer;
which_tilemap_size = get_tilemap_dimensions(screen.machine(), xsize, ysize, layer);
- bitmap_ind16 &src_bitmap = state->m_tilemap_sizes[layer][which_tilemap_size]->pixmap();
+ bitmap_ind16 &src_bitmap = m_tilemap_sizes[layer][which_tilemap_size]->pixmap();
int gfx_region = supracan_tilemap_get_region(screen.machine(), layer);
int transmask = 0xff;
@@ -848,15 +848,15 @@ static SCREEN_UPDATE_IND16( supracan )
if (layer != 3) // standard layers, NOT roz
{
- int wrap = (state->m_tilemap_flags[layer] & 0x20);
+ int wrap = (m_tilemap_flags[layer] & 0x20);
- int scrollx = state->m_tilemap_scrollx[layer];
- int scrolly = state->m_tilemap_scrolly[layer];
+ int scrollx = m_tilemap_scrollx[layer];
+ int scrolly = m_tilemap_scrolly[layer];
if (scrollx&0x8000) scrollx-= 0x10000;
if (scrolly&0x8000) scrolly-= 0x10000;
- int mosaic_count = (state->m_tilemap_flags[layer] & 0x001c) >> 2;
+ int mosaic_count = (m_tilemap_flags[layer] & 0x001c) >> 2;
int mosaic_mask = 0xffffffff << mosaic_count;
int y,x;
@@ -896,16 +896,16 @@ static SCREEN_UPDATE_IND16( supracan )
}
else
{
- int wrap = state->m_roz_mode & 0x20;
+ int wrap = m_roz_mode & 0x20;
- int incxx = (state->m_roz_coeffa);
- int incyy = (state->m_roz_coeffd);
+ int incxx = (m_roz_coeffa);
+ int incyy = (m_roz_coeffd);
- int incxy = (state->m_roz_coeffc);
- int incyx = (state->m_roz_coeffb);
+ int incxy = (m_roz_coeffc);
+ int incyx = (m_roz_coeffb);
- int scrollx = (state->m_roz_scrollx);
- int scrolly = (state->m_roz_scrolly);
+ int scrollx = (m_roz_scrollx);
+ int scrolly = (m_roz_scrolly);
@@ -918,7 +918,7 @@ static SCREEN_UPDATE_IND16( supracan )
if (incyy & 0x8000) incyy -= 0x10000;
if (incxx & 0x8000) incxx -= 0x10000;
- //popmessage("%04x %04x\n",state->m_video_flags, state->m_roz_mode);
+ //popmessage("%04x %04x\n",m_video_flags, m_roz_mode);
// roz mode..
//4020 = enabled speedyd
@@ -930,35 +930,35 @@ static SCREEN_UPDATE_IND16( supracan )
// or is it always enabled, and only corrupt because we don't clear ram properly?
// (probably not this register?)
- if (!(state->m_roz_mode & 0x0200) && (state->m_roz_mode&0xf000) ) // HACK - Not Trusted, Acan Logo, Speedy Dragon Intro ,Speed Dragon Bonus stage need it. Monopoly and JTT *don't* causes graphical issues
+ if (!(m_roz_mode & 0x0200) && (m_roz_mode&0xf000) ) // HACK - Not Trusted, Acan Logo, Speedy Dragon Intro ,Speed Dragon Bonus stage need it. Monopoly and JTT *don't* causes graphical issues
{
// NOT accurate, causes issues when the attract mode loops and the logo is shown the 2nd time in some games - investigate
for (int y=cliprect.min_y;y<=cliprect.max_y;y++)
{
rectangle clip(cliprect.min_x, cliprect.max_x, y, y);
- scrollx = (state->m_roz_scrollx);
- scrolly = (state->m_roz_scrolly);
- incxx = (state->m_roz_coeffa);
+ scrollx = (m_roz_scrollx);
+ scrolly = (m_roz_scrolly);
+ incxx = (m_roz_coeffa);
- incxx += state->m_vram[state->m_roz_unk_base0/2 + y];
+ incxx += m_vram[m_roz_unk_base0/2 + y];
- scrollx += state->m_vram[state->m_roz_unk_base1/2 + y*2] << 16;
- scrollx += state->m_vram[state->m_roz_unk_base1/2 + y*2 + 1];
+ scrollx += m_vram[m_roz_unk_base1/2 + y*2] << 16;
+ scrollx += m_vram[m_roz_unk_base1/2 + y*2 + 1];
- scrolly += state->m_vram[state->m_roz_unk_base2/2 + y*2] << 16;
- scrolly += state->m_vram[state->m_roz_unk_base2/2 + y*2 + 1];
+ scrolly += m_vram[m_roz_unk_base2/2 + y*2] << 16;
+ scrolly += m_vram[m_roz_unk_base2/2 + y*2 + 1];
if (incxx & 0x8000) incxx -= 0x10000;
- if (state->m_vram[state->m_roz_unk_base0/2 + y]) // incxx = 0, no draw?
- supracan_suprnova_draw_roz(screen.machine(), bitmap, clip, state->m_tilemap_sizes[layer][which_tilemap_size], scrollx<<8, scrolly<<8, incxx<<8, incxy<<8, incyx<<8, incyy<<8, wrap, transmask);
+ if (m_vram[m_roz_unk_base0/2 + y]) // incxx = 0, no draw?
+ supracan_suprnova_draw_roz(screen.machine(), bitmap, clip, m_tilemap_sizes[layer][which_tilemap_size], scrollx<<8, scrolly<<8, incxx<<8, incxy<<8, incyx<<8, incyy<<8, wrap, transmask);
}
}
else
{
- supracan_suprnova_draw_roz(screen.machine(), bitmap, cliprect, state->m_tilemap_sizes[layer][which_tilemap_size], scrollx<<8, scrolly<<8, incxx<<8, incxy<<8, incyx<<8, incyy<<8, wrap, transmask);
+ supracan_suprnova_draw_roz(screen.machine(), bitmap, cliprect, m_tilemap_sizes[layer][which_tilemap_size], scrollx<<8, scrolly<<8, incxx<<8, incxy<<8, incyx<<8, incyy<<8, wrap, transmask);
}
}
}
@@ -968,11 +968,11 @@ static SCREEN_UPDATE_IND16( supracan )
// just draw the sprites on top for now
- if(state->m_video_flags & 0x08)
+ if(m_video_flags & 0x08)
{
for (int y=cliprect.min_y;y<=cliprect.max_y;y++)
{
- UINT16* src = &state->m_sprite_final_bitmap.pix16(y);
+ UINT16* src = &m_sprite_final_bitmap.pix16(y);
UINT16* dst = &bitmap.pix16(y);
for (int x=cliprect.min_x;x<=cliprect.max_x;x++)
@@ -1916,7 +1916,7 @@ static MACHINE_CONFIG_START( supracan, supracan_state )
MCFG_SCREEN_ADD( "screen", RASTER )
MCFG_SCREEN_RAW_PARAMS(XTAL_10_738635MHz/2, 348, 0, 256, 256, 0, 240 ) /* No idea if this is correct */
- MCFG_SCREEN_UPDATE_STATIC( supracan )
+ MCFG_SCREEN_UPDATE_DRIVER(supracan_state, screen_update_supracan)
MCFG_PALETTE_LENGTH( 32768 )
MCFG_GFXDECODE(supracan)
diff --git a/src/mess/drivers/svision.c b/src/mess/drivers/svision.c
index caf34954e53..d767d183ba3 100644
--- a/src/mess/drivers/svision.c
+++ b/src/mess/drivers/svision.c
@@ -350,13 +350,13 @@ PALETTE_INIT_MEMBER(svision_state,svisionp)
}
}
-static SCREEN_UPDATE_IND16( svision )
+UINT32 svision_state::screen_update_svision(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
svision_state *state = screen.machine().driver_data<svision_state>();
int x, y, i, j=XPOS/4+YPOS*0x30;
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
- if (state->BANK&8)
+ if (BANK&8)
{
for (y=0; y<160; y++)
{
@@ -382,13 +382,13 @@ static SCREEN_UPDATE_IND16( svision )
return 0;
}
-static SCREEN_UPDATE_RGB32( tvlink )
+UINT32 svision_state::screen_update_tvlink(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
svision_state *state = screen.machine().driver_data<svision_state>();
int x, y, i, j = XPOS/4+YPOS*0x30;
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
- if (state->BANK & 8)
+ if (BANK & 8)
{
for (y = 0; y < 160; y++)
{
@@ -396,10 +396,10 @@ static SCREEN_UPDATE_RGB32( tvlink )
for (x = 3 - (XPOS & 3), i = 0; x < 160 + 3 && x < XSIZE + 3; x += 4, i++)
{
UINT8 b=videoram[j+i];
- line[3]=state->m_tvlink.palette[(b>>6)&3];
- line[2]=state->m_tvlink.palette[(b>>4)&3];
- line[1]=state->m_tvlink.palette[(b>>2)&3];
- line[0]=state->m_tvlink.palette[(b>>0)&3];
+ line[3]=m_tvlink.palette[(b>>6)&3];
+ line[2]=m_tvlink.palette[(b>>4)&3];
+ line[1]=m_tvlink.palette[(b>>2)&3];
+ line[0]=m_tvlink.palette[(b>>0)&3];
line+=4;
}
j += 0x30;
@@ -522,7 +522,7 @@ static MACHINE_CONFIG_START( svision, svision_state )
MCFG_SCREEN_REFRESH_RATE(61)
MCFG_SCREEN_SIZE(3+160+3, 160)
MCFG_SCREEN_VISIBLE_AREA(3+0, 3+160-1, 0, 160-1)
- MCFG_SCREEN_UPDATE_STATIC( svision )
+ MCFG_SCREEN_UPDATE_DRIVER(svision_state, screen_update_svision)
MCFG_PALETTE_LENGTH(ARRAY_LENGTH(svision_palette) * 3)
@@ -572,7 +572,7 @@ static MACHINE_CONFIG_DERIVED( tvlinkp, svisionp )
MCFG_MACHINE_RESET_OVERRIDE(svision_state, tvlink )
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC( tvlink )
+ MCFG_SCREEN_UPDATE_DRIVER(svision_state, screen_update_tvlink)
MACHINE_CONFIG_END
diff --git a/src/mess/drivers/sys2900.c b/src/mess/drivers/sys2900.c
index 4f8e35aa21f..3ad86b67f75 100644
--- a/src/mess/drivers/sys2900.c
+++ b/src/mess/drivers/sys2900.c
@@ -46,6 +46,7 @@ public:
DECLARE_DRIVER_INIT(sys2900);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_sys2900(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -90,7 +91,7 @@ void sys2900_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( sys2900 )
+UINT32 sys2900_state::screen_update_sys2900(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -108,7 +109,7 @@ static MACHINE_CONFIG_START( sys2900, sys2900_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(sys2900)
+ MCFG_SCREEN_UPDATE_DRIVER(sys2900_state, screen_update_sys2900)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/terak.c b/src/mess/drivers/terak.c
index 5ce51f7c539..be90fdb9d69 100644
--- a/src/mess/drivers/terak.c
+++ b/src/mess/drivers/terak.c
@@ -24,6 +24,7 @@ public:
UINT16 m_data;
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_terak(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
READ16_MEMBER( terak_state::terak_fdc_status_r )
@@ -77,7 +78,7 @@ void terak_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( terak )
+UINT32 terak_state::screen_update_terak(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -100,7 +101,7 @@ static MACHINE_CONFIG_START( terak, terak_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(terak)
+ MCFG_SCREEN_UPDATE_DRIVER(terak_state, screen_update_terak)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/ti85.c b/src/mess/drivers/ti85.c
index e96c50e85f1..3e8a3c29270 100644
--- a/src/mess/drivers/ti85.c
+++ b/src/mess/drivers/ti85.c
@@ -501,7 +501,7 @@ static MACHINE_CONFIG_START( ti81, ti85_state )
MCFG_SCREEN_VBLANK_TIME(0)
MCFG_SCREEN_SIZE(96, 64)
MCFG_SCREEN_VISIBLE_AREA(0, 96-1, 0, 64-1)
- MCFG_SCREEN_UPDATE_STATIC( ti85 )
+ MCFG_SCREEN_UPDATE_DRIVER(ti85_state, screen_update_ti85)
MCFG_PALETTE_LENGTH(224)
diff --git a/src/mess/drivers/ti990_10.c b/src/mess/drivers/ti990_10.c
index bdd02a89d2a..c3b9e0cfd65 100644
--- a/src/mess/drivers/ti990_10.c
+++ b/src/mess/drivers/ti990_10.c
@@ -88,6 +88,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_ti990_10(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -153,10 +154,9 @@ void ti990_10_state::video_start()
m_terminal = machine().device("vdt911");
}
-static SCREEN_UPDATE_IND16( ti990_10 )
+UINT32 ti990_10_state::screen_update_ti990_10(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ti990_10_state *state = screen.machine().driver_data<ti990_10_state>();
- vdt911_refresh(state->m_terminal, bitmap, cliprect, 0, 0);
+ vdt911_refresh(m_terminal, bitmap, cliprect, 0, 0);
return 0;
}
@@ -224,7 +224,7 @@ static MACHINE_CONFIG_START( ti990_10, ti990_10_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(560, 280)
MCFG_SCREEN_VISIBLE_AREA(0, 560-1, 0, /*250*/280-1)
- MCFG_SCREEN_UPDATE_STATIC(ti990_10)
+ MCFG_SCREEN_UPDATE_DRIVER(ti990_10_state, screen_update_ti990_10)
/*MCFG_SCREEN_VBLANK_STATIC(name)*/
MCFG_GFXDECODE(vdt911)
diff --git a/src/mess/drivers/ti990_4.c b/src/mess/drivers/ti990_4.c
index 64752e2c5b1..ac7efce58c4 100644
--- a/src/mess/drivers/ti990_4.c
+++ b/src/mess/drivers/ti990_4.c
@@ -61,6 +61,7 @@ public:
DECLARE_DRIVER_INIT(ti990_4);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_ti990_4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -135,10 +136,9 @@ void ti990_4_state::video_start()
m_terminal = machine().device("vdt911");
}
-static SCREEN_UPDATE_IND16( ti990_4 )
+UINT32 ti990_4_state::screen_update_ti990_4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ti990_4_state *state = screen.machine().driver_data<ti990_4_state>();
- vdt911_refresh(state->m_terminal, bitmap, cliprect, 0, 0);
+ vdt911_refresh(m_terminal, bitmap, cliprect, 0, 0);
return 0;
}
@@ -155,10 +155,9 @@ void ti990_4_state::video_start()
m_terminal = machine().device("asr733");
}
-static SCREEN_UPDATE_IND16( ti990_4 )
+UINT32 ti990_4_state::screen_update_ti990_4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ti990_4_state *state = screen.machine().driver_data<ti990_4_state>();
- asr733_refresh(state->m_terminal, bitmap, 0, 0);
+ asr733_refresh(m_terminal, bitmap, 0, 0);
return 0;
}
@@ -253,7 +252,7 @@ static MACHINE_CONFIG_START( ti990_4, ti990_4_state )
MCFG_SCREEN_ADD("screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
- MCFG_SCREEN_UPDATE_STATIC(ti990_4)
+ MCFG_SCREEN_UPDATE_DRIVER(ti990_4_state, screen_update_ti990_4)
#if VIDEO_911
MCFG_SCREEN_SIZE(560, 280)
MCFG_SCREEN_VISIBLE_AREA(0, 560-1, 0, /*250*/280-1)
diff --git a/src/mess/drivers/ti99_2.c b/src/mess/drivers/ti99_2.c
index 9226b5a6d75..bbc90c4eda2 100644
--- a/src/mess/drivers/ti99_2.c
+++ b/src/mess/drivers/ti99_2.c
@@ -101,6 +101,7 @@ public:
DECLARE_DRIVER_INIT(ti99_2_32);
virtual void machine_reset();
virtual void palette_init();
+ UINT32 screen_update_ti99_2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -157,10 +158,9 @@ void ti99_2_state::palette_init()
}
-static SCREEN_UPDATE_IND16(ti99_2)
+UINT32 ti99_2_state::screen_update_ti99_2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ti99_2_state *state = screen.machine().driver_data<ti99_2_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
int i, sx, sy;
@@ -390,7 +390,7 @@ static MACHINE_CONFIG_START( ti99_2, ti99_2_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(256, 192)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 192-1)
- MCFG_SCREEN_UPDATE_STATIC(ti99_2)
+ MCFG_SCREEN_UPDATE_DRIVER(ti99_2_state, screen_update_ti99_2)
MCFG_GFXDECODE(ti99_2)
MCFG_PALETTE_LENGTH(2)
diff --git a/src/mess/drivers/tim011.c b/src/mess/drivers/tim011.c
index f107df22cb1..9b537083ec0 100644
--- a/src/mess/drivers/tim011.c
+++ b/src/mess/drivers/tim011.c
@@ -17,6 +17,7 @@ public:
: driver_device(mconfig, type, tag) { }
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_tim011(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -45,7 +46,7 @@ void tim011_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( tim011 )
+UINT32 tim011_state::screen_update_tim011(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -64,7 +65,7 @@ static MACHINE_CONFIG_START( tim011,tim011_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(512, 256)
MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 256-1)
- MCFG_SCREEN_UPDATE_STATIC(tim011)
+ MCFG_SCREEN_UPDATE_DRIVER(tim011_state, screen_update_tim011)
MCFG_PALETTE_LENGTH(4)
MCFG_PALETTE_INIT(black_and_white)
MACHINE_CONFIG_END
diff --git a/src/mess/drivers/timex.c b/src/mess/drivers/timex.c
index d9673f0b8eb..6c635ac209e 100644
--- a/src/mess/drivers/timex.c
+++ b/src/mess/drivers/timex.c
@@ -639,7 +639,7 @@ static MACHINE_CONFIG_DERIVED( ts2068, spectrum_128 )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(TS2068_SCREEN_WIDTH, TS2068_SCREEN_HEIGHT)
MCFG_SCREEN_VISIBLE_AREA(0, TS2068_SCREEN_WIDTH-1, 0, TS2068_SCREEN_HEIGHT-1)
- MCFG_SCREEN_UPDATE_STATIC( ts2068 )
+ MCFG_SCREEN_UPDATE_DRIVER(spectrum_state, screen_update_ts2068)
MCFG_GFXDECODE(ts2068)
@@ -681,7 +681,7 @@ static MACHINE_CONFIG_DERIVED( tc2048, spectrum )
MCFG_SCREEN_REFRESH_RATE(50)
MCFG_SCREEN_SIZE(TS2068_SCREEN_WIDTH, SPEC_SCREEN_HEIGHT)
MCFG_SCREEN_VISIBLE_AREA(0, TS2068_SCREEN_WIDTH-1, 0, SPEC_SCREEN_HEIGHT-1)
- MCFG_SCREEN_UPDATE_STATIC( tc2048 )
+ MCFG_SCREEN_UPDATE_DRIVER(spectrum_state, screen_update_tc2048)
MCFG_VIDEO_START_OVERRIDE(spectrum_state, spectrum_128 )
diff --git a/src/mess/drivers/tk80bs.c b/src/mess/drivers/tk80bs.c
index 328f3bd73c3..1d59d673037 100644
--- a/src/mess/drivers/tk80bs.c
+++ b/src/mess/drivers/tk80bs.c
@@ -85,6 +85,7 @@ public:
DECLARE_MACHINE_START(tk80bs);
DECLARE_MACHINE_RESET(tk80bs);
DECLARE_VIDEO_START(tk80bs);
+ UINT32 screen_update_tk80bs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/************************************************* TK80 ******************************************/
@@ -259,9 +260,8 @@ VIDEO_START_MEMBER(tk80bs_state,tk80bs)
{
}
-static SCREEN_UPDATE_IND16( tk80bs )
+UINT32 tk80bs_state::screen_update_tk80bs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tk80bs_state *state = screen.machine().driver_data<tk80bs_state>();
int x,y;
int count;
@@ -271,7 +271,7 @@ static SCREEN_UPDATE_IND16( tk80bs )
{
for(x=0;x<32;x++)
{
- int tile = state->m_p_videoram[count++];
+ int tile = m_p_videoram[count++];
drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], tile, 0, 0, 0, x*8, y*8);
}
@@ -408,7 +408,7 @@ static MACHINE_CONFIG_START( tk80bs, tk80bs_state )
MCFG_SCREEN_SIZE(256, 128)
MCFG_SCREEN_VISIBLE_AREA(0, 256-1, 0, 128-1)
MCFG_VIDEO_START_OVERRIDE(tk80bs_state,tk80bs)
- MCFG_SCREEN_UPDATE_STATIC(tk80bs)
+ MCFG_SCREEN_UPDATE_DRIVER(tk80bs_state, screen_update_tk80bs)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
MCFG_GFXDECODE(tk80bs)
diff --git a/src/mess/drivers/trs80.c b/src/mess/drivers/trs80.c
index 0816c447415..996ff96e456 100644
--- a/src/mess/drivers/trs80.c
+++ b/src/mess/drivers/trs80.c
@@ -588,7 +588,7 @@ static MACHINE_CONFIG_START( trs80, trs80_state ) // the original model I, leve
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
MCFG_SCREEN_SIZE(64*6, 16*12)
MCFG_SCREEN_VISIBLE_AREA(0,64*6-1,0,16*12-1)
- MCFG_SCREEN_UPDATE_STATIC( trs80 )
+ MCFG_SCREEN_UPDATE_DRIVER(trs80_state, screen_update_trs80)
MCFG_GFXDECODE(trs80)
MCFG_PALETTE_LENGTH(2)
@@ -631,7 +631,7 @@ static MACHINE_CONFIG_DERIVED( model3, model1 )
MCFG_GFXDECODE(trs80m4)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC( trs80m4 )
+ MCFG_SCREEN_UPDATE_DRIVER(trs80_state, screen_update_trs80m4)
MCFG_SCREEN_SIZE(80*8, 240)
MCFG_SCREEN_VISIBLE_AREA(0,80*8-1,0,239)
MACHINE_CONFIG_END
@@ -653,7 +653,7 @@ MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( ht1080z, sys80 )
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC( ht1080z )
+ MCFG_SCREEN_UPDATE_DRIVER(trs80_state, screen_update_ht1080z)
MCFG_GFXDECODE(ht1080z)
MACHINE_CONFIG_END
@@ -669,14 +669,14 @@ static MACHINE_CONFIG_DERIVED( lnw80, model1 )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_SIZE(80*6, 16*12)
MCFG_SCREEN_VISIBLE_AREA(0,80*6-1,0,16*12-1)
- MCFG_SCREEN_UPDATE_STATIC(lnw80)
+ MCFG_SCREEN_UPDATE_DRIVER(trs80_state, screen_update_lnw80)
MACHINE_CONFIG_END
static MACHINE_CONFIG_DERIVED( radionic, model1 )
MCFG_SCREEN_MODIFY("screen")
MCFG_SCREEN_SIZE(64*8, 16*16)
MCFG_SCREEN_VISIBLE_AREA(0,64*8-1,0,16*16-1)
- MCFG_SCREEN_UPDATE_STATIC( radionic )
+ MCFG_SCREEN_UPDATE_DRIVER(trs80_state, screen_update_radionic)
MCFG_GFXDECODE(radionic)
MACHINE_CONFIG_END
@@ -685,7 +685,7 @@ static MACHINE_CONFIG_DERIVED( meritum, sys80 )
MCFG_CPU_PROGRAM_MAP( meritum_map)
MCFG_CPU_IO_MAP( meritum_io)
MCFG_SCREEN_MODIFY("screen")
- MCFG_SCREEN_UPDATE_STATIC( meritum )
+ MCFG_SCREEN_UPDATE_DRIVER(trs80_state, screen_update_meritum)
MCFG_GFXDECODE(meritum)
MACHINE_CONFIG_END
diff --git a/src/mess/drivers/tx0.c b/src/mess/drivers/tx0.c
index 44fbf1be6dc..e11511fca33 100644
--- a/src/mess/drivers/tx0.c
+++ b/src/mess/drivers/tx0.c
@@ -1615,8 +1615,8 @@ static MACHINE_CONFIG_START( tx0_64kw, tx0_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(virtual_width, virtual_height)
MCFG_SCREEN_VISIBLE_AREA(0, virtual_width-1, 0, virtual_height-1)
- MCFG_SCREEN_UPDATE_STATIC(tx0)
- MCFG_SCREEN_VBLANK_STATIC(tx0)
+ MCFG_SCREEN_UPDATE_DRIVER(tx0_state, screen_update_tx0)
+ MCFG_SCREEN_VBLANK_DRIVER(tx0_state, screen_eof_tx0)
MCFG_CRT_ADD( "crt", tx0_crt_interface )
MCFG_DEVICE_ADD("readt", TX0_READTAPE, 0)
diff --git a/src/mess/drivers/uknc.c b/src/mess/drivers/uknc.c
index 6681aef8981..fda81110e48 100644
--- a/src/mess/drivers/uknc.c
+++ b/src/mess/drivers/uknc.c
@@ -18,6 +18,7 @@ public:
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_uknc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -46,7 +47,7 @@ void uknc_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( uknc )
+UINT32 uknc_state::screen_update_uknc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -74,7 +75,7 @@ static MACHINE_CONFIG_START( uknc, uknc_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(uknc)
+ MCFG_SCREEN_UPDATE_DRIVER(uknc_state, screen_update_uknc)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
MACHINE_CONFIG_END
diff --git a/src/mess/drivers/unior.c b/src/mess/drivers/unior.c
index 6617f46e1cd..8e351995e67 100644
--- a/src/mess/drivers/unior.c
+++ b/src/mess/drivers/unior.c
@@ -58,6 +58,7 @@ public:
UINT8 m_cursor_row;
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_unior(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
READ8_MEMBER( unior_state::unior_4c_r )
@@ -249,13 +250,12 @@ void unior_state::video_start()
m_p_vram = memregion("vram")->base();
}
-static SCREEN_UPDATE_IND16( unior )
+UINT32 unior_state::screen_update_unior(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- unior_state *state = screen.machine().driver_data<unior_state>();
UINT8 y,ra,gfx;
UINT16 sy=0,ma=0,x,chr;
UINT8 *videoram;
- videoram = state->m_p_videoram;
+ videoram = m_p_videoram;
static UINT8 framecnt=0;
framecnt++;
@@ -270,10 +270,10 @@ static SCREEN_UPDATE_IND16( unior )
{
chr = videoram[x+ma];
- gfx = state->m_p_chargen[(chr<<3) | ra ];
+ gfx = m_p_chargen[(chr<<3) | ra ];
/* cursor */
- if ((y == state->m_cursor_row) && (x == state->m_cursor_col) && (ra > 6) & BIT(framecnt, 3))
+ if ((y == m_cursor_row) && (x == m_cursor_col) && (ra > 6) & BIT(framecnt, 3))
gfx ^= 0xff;
/* Display a scanline of a character */
@@ -290,7 +290,7 @@ static SCREEN_UPDATE_IND16( unior )
if (y)
ma+=80;
else
- videoram = state->m_p_vram;
+ videoram = m_p_vram;
}
return 0;
}
@@ -326,7 +326,7 @@ static MACHINE_CONFIG_START( unior, unior_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 200)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 200-1)
- MCFG_SCREEN_UPDATE_STATIC(unior)
+ MCFG_SCREEN_UPDATE_DRIVER(unior_state, screen_update_unior)
MCFG_GFXDECODE(unior)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/unistar.c b/src/mess/drivers/unistar.c
index 9d29f32efac..7fd40cef930 100644
--- a/src/mess/drivers/unistar.c
+++ b/src/mess/drivers/unistar.c
@@ -18,6 +18,7 @@ public:
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_unistar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -45,7 +46,7 @@ void unistar_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( unistar )
+UINT32 unistar_state::screen_update_unistar(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -81,7 +82,7 @@ static MACHINE_CONFIG_START( unistar, unistar_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(unistar)
+ MCFG_SCREEN_UPDATE_DRIVER(unistar_state, screen_update_unistar)
MCFG_GFXDECODE(unistar)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/ut88.c b/src/mess/drivers/ut88.c
index 4efcdc72aa2..38499793cfd 100644
--- a/src/mess/drivers/ut88.c
+++ b/src/mess/drivers/ut88.c
@@ -197,7 +197,7 @@ static MACHINE_CONFIG_START( ut88, ut88_state )
MCFG_SCREEN_SIZE(64*8, 28*8)
MCFG_SCREEN_VISIBLE_AREA(0, 64*8-1, 0, 28*8-1)
MCFG_VIDEO_START_OVERRIDE(ut88_state,ut88)
- MCFG_SCREEN_UPDATE_STATIC(ut88)
+ MCFG_SCREEN_UPDATE_DRIVER(ut88_state, screen_update_ut88)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
MCFG_GFXDECODE( ut88 )
diff --git a/src/mess/drivers/uzebox.c b/src/mess/drivers/uzebox.c
index 7d3117b3efa..9ebe836c327 100644
--- a/src/mess/drivers/uzebox.c
+++ b/src/mess/drivers/uzebox.c
@@ -18,6 +18,7 @@ public:
}
DECLARE_DRIVER_INIT(uzebox);
virtual void machine_reset();
+ UINT32 screen_update_uzebox(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
/****************************************************\
* Address maps *
@@ -43,7 +44,7 @@ INPUT_PORTS_END
* Video hardware *
\****************************************************/
-static SCREEN_UPDATE_RGB32( uzebox )
+UINT32 uzebox_state::screen_update_uzebox(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -74,7 +75,7 @@ static MACHINE_CONFIG_START( uzebox, uzebox_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(1395))
MCFG_SCREEN_SIZE(634, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 633, 0, 479)
- MCFG_SCREEN_UPDATE_STATIC(uzebox)
+ MCFG_SCREEN_UPDATE_DRIVER(uzebox_state, screen_update_uzebox)
MCFG_PALETTE_LENGTH(0x1000)
diff --git a/src/mess/drivers/vboy.c b/src/mess/drivers/vboy.c
index 260376a645e..ddd0c9abe48 100644
--- a/src/mess/drivers/vboy.c
+++ b/src/mess/drivers/vboy.c
@@ -148,6 +148,8 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_vboy_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_vboy_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -484,18 +486,17 @@ UINT8 vboy_state::display_world(int num, bitmap_ind16 &bitmap, bool right, int &
return 0;
}
-static SCREEN_UPDATE_IND16( vboy_left )
+UINT32 vboy_state::screen_update_vboy_left(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- vboy_state *state = screen.machine().driver_data<vboy_state>();
- bitmap.fill(screen.machine().pens[state->m_vip_regs.BKCOL], cliprect);
+ bitmap.fill(screen.machine().pens[m_vip_regs.BKCOL], cliprect);
int cur_spt;
- if(!(state->m_vip_regs.DPCTRL & 2)) /* Don't bother if screen is off */
+ if(!(m_vip_regs.DPCTRL & 2)) /* Don't bother if screen is off */
return 0;
cur_spt = 3;
for(int i=31; i>=0; i--)
- if (state->display_world(i, bitmap, false, cur_spt)) break;
+ if (display_world(i, bitmap, false, cur_spt)) break;
if(0)
{
@@ -509,7 +510,7 @@ static SCREEN_UPDATE_IND16( vboy_left )
UINT8 pix;
int yi;
- pen = state->m_l_frame_1[(x*0x40)+(y >> 2)];
+ pen = m_l_frame_1[(x*0x40)+(y >> 2)];
yi = ((y & 0x3)*2);
pix = (pen >> yi) & 3;
@@ -521,18 +522,17 @@ static SCREEN_UPDATE_IND16( vboy_left )
return 0;
}
-static SCREEN_UPDATE_IND16( vboy_right )
+UINT32 vboy_state::screen_update_vboy_right(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- vboy_state *state = screen.machine().driver_data<vboy_state>();
- bitmap.fill(screen.machine().pens[state->m_vip_regs.BKCOL], cliprect);
+ bitmap.fill(screen.machine().pens[m_vip_regs.BKCOL], cliprect);
int cur_spt;
- if(!(state->m_vip_regs.DPCTRL & 2)) /* Don't bother if screen is off */
+ if(!(m_vip_regs.DPCTRL & 2)) /* Don't bother if screen is off */
return 0;
cur_spt = 3;
for(int i=31; i>=0; i--)
- if (state->display_world(i, bitmap, true, cur_spt)) break;
+ if (display_world(i, bitmap, true, cur_spt)) break;
return 0;
}
@@ -1442,12 +1442,12 @@ static MACHINE_CONFIG_START( vboy, vboy_state )
/* Left screen */
MCFG_SCREEN_ADD("3dleft", RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL_20MHz/2,757,0,384,264,0,224)
- MCFG_SCREEN_UPDATE_STATIC(vboy_left)
+ MCFG_SCREEN_UPDATE_DRIVER(vboy_state, screen_update_vboy_left)
/* Right screen */
MCFG_SCREEN_ADD("3dright", RASTER)
MCFG_SCREEN_RAW_PARAMS(XTAL_20MHz/2,757,0,384,264,0,224)
- MCFG_SCREEN_UPDATE_STATIC(vboy_right)
+ MCFG_SCREEN_UPDATE_DRIVER(vboy_state, screen_update_vboy_right)
/* cartridge */
MCFG_CARTSLOT_ADD("cart")
diff --git a/src/mess/drivers/vc4000.c b/src/mess/drivers/vc4000.c
index 8989b621ddc..3ecdf08f145 100644
--- a/src/mess/drivers/vc4000.c
+++ b/src/mess/drivers/vc4000.c
@@ -399,7 +399,7 @@ static MACHINE_CONFIG_START( vc4000, vc4000_state )
MCFG_SCREEN_REFRESH_RATE(50)
MCFG_SCREEN_SIZE(226, 312)
MCFG_SCREEN_VISIBLE_AREA(8, 184, 0, 269)
- MCFG_SCREEN_UPDATE_STATIC( vc4000 )
+ MCFG_SCREEN_UPDATE_DRIVER(vc4000_state, screen_update_vc4000)
MCFG_PALETTE_LENGTH(8)
diff --git a/src/mess/drivers/vector06.c b/src/mess/drivers/vector06.c
index d6a61852211..66398c6cce1 100644
--- a/src/mess/drivers/vector06.c
+++ b/src/mess/drivers/vector06.c
@@ -172,7 +172,7 @@ static MACHINE_CONFIG_START( vector06, vector06_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(256+64, 256+64)
MCFG_SCREEN_VISIBLE_AREA(0, 256+64-1, 0, 256+64-1)
- MCFG_SCREEN_UPDATE_STATIC(vector06)
+ MCFG_SCREEN_UPDATE_DRIVER(vector06_state, screen_update_vector06)
MCFG_PALETTE_LENGTH(16)
MCFG_SPEAKER_STANDARD_MONO("mono")
diff --git a/src/mess/drivers/vii.c b/src/mess/drivers/vii.c
index d8cc78ad3f6..7bd8869a43b 100644
--- a/src/mess/drivers/vii.c
+++ b/src/mess/drivers/vii.c
@@ -139,6 +139,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_vii(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
enum
@@ -411,19 +412,18 @@ static void vii_blit_sprites(running_machine &machine, bitmap_rgb32 &bitmap, con
}
}
-static SCREEN_UPDATE_RGB32( vii )
+UINT32 vii_state::screen_update_vii(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- vii_state *state = screen.machine().driver_data<vii_state>();
int i, x, y;
bitmap.fill(0, cliprect);
- memset(state->m_screen, 0, sizeof(state->m_screen));
+ memset(m_screen, 0, sizeof(m_screen));
for(i = 0; i < 4; i++)
{
- vii_blit_page(screen.machine(), bitmap, cliprect, i, 0x40 * state->m_video_regs[0x20], state->m_video_regs + 0x10);
- vii_blit_page(screen.machine(), bitmap, cliprect, i, 0x40 * state->m_video_regs[0x21], state->m_video_regs + 0x16);
+ vii_blit_page(screen.machine(), bitmap, cliprect, i, 0x40 * m_video_regs[0x20], m_video_regs + 0x10);
+ vii_blit_page(screen.machine(), bitmap, cliprect, i, 0x40 * m_video_regs[0x21], m_video_regs + 0x16);
vii_blit_sprites(screen.machine(), bitmap, cliprect, i);
}
@@ -431,7 +431,7 @@ static SCREEN_UPDATE_RGB32( vii )
{
for(x = 0; x < 320; x++)
{
- bitmap.pix32(y, x) = (state->m_screen[x + 320*y].r << 16) | (state->m_screen[x + 320*y].g << 8) | state->m_screen[x + 320*y].b;
+ bitmap.pix32(y, x) = (m_screen[x + 320*y].r << 16) | (m_screen[x + 320*y].g << 8) | m_screen[x + 320*y].b;
}
}
@@ -1101,7 +1101,7 @@ static MACHINE_CONFIG_START( vii, vii_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC( vii )
+ MCFG_SCREEN_UPDATE_DRIVER(vii_state, screen_update_vii)
MCFG_PALETTE_LENGTH(32768)
MCFG_CARTSLOT_ADD( "cart" )
@@ -1123,7 +1123,7 @@ static MACHINE_CONFIG_START( vsmile, vii_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC( vii )
+ MCFG_SCREEN_UPDATE_DRIVER(vii_state, screen_update_vii)
MCFG_PALETTE_LENGTH(32768)
MCFG_CARTSLOT_ADD( "cart" )
@@ -1150,7 +1150,7 @@ static MACHINE_CONFIG_START( batman, vii_state )
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_SIZE(320, 240)
MCFG_SCREEN_VISIBLE_AREA(0, 320-1, 0, 240-1)
- MCFG_SCREEN_UPDATE_STATIC( vii )
+ MCFG_SCREEN_UPDATE_DRIVER(vii_state, screen_update_vii)
MCFG_PALETTE_LENGTH(32768)
MACHINE_CONFIG_END
diff --git a/src/mess/drivers/vt100.c b/src/mess/drivers/vt100.c
index c232b72458d..e169290d7af 100644
--- a/src/mess/drivers/vt100.c
+++ b/src/mess/drivers/vt100.c
@@ -56,6 +56,7 @@ public:
double m_recv_baud_rate;
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_vt100(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -316,7 +317,7 @@ static INPUT_PORTS_START( vt100 )
PORT_BIT(0x80, IP_ACTIVE_HIGH, IPT_UNUSED) // Always return 0x7f on last scan line
INPUT_PORTS_END
-static SCREEN_UPDATE_IND16( vt100 )
+UINT32 vt100_state::screen_update_vt100(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
device_t *devconf = screen.machine().device("vt100_video");
vt_video_update( devconf, bitmap, cliprect);
@@ -420,7 +421,7 @@ static MACHINE_CONFIG_START( vt100, vt100_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(80*10, 25*10)
MCFG_SCREEN_VISIBLE_AREA(0, 80*10-1, 0, 25*10-1)
- MCFG_SCREEN_UPDATE_STATIC(vt100)
+ MCFG_SCREEN_UPDATE_DRIVER(vt100_state, screen_update_vt100)
MCFG_GFXDECODE(vt100)
MCFG_PALETTE_LENGTH(2)
diff --git a/src/mess/drivers/vt220.c b/src/mess/drivers/vt220.c
index d99159d8df7..32ff0ebe55f 100644
--- a/src/mess/drivers/vt220.c
+++ b/src/mess/drivers/vt220.c
@@ -19,6 +19,7 @@ public:
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_vt220(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -42,7 +43,7 @@ void vt220_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( vt220 )
+UINT32 vt220_state::screen_update_vt220(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -61,7 +62,7 @@ static MACHINE_CONFIG_START( vt220, vt220_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(vt220)
+ MCFG_SCREEN_UPDATE_DRIVER(vt220_state, screen_update_vt220)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/vt320.c b/src/mess/drivers/vt320.c
index 3c16a5e3ef0..51f5b17031d 100644
--- a/src/mess/drivers/vt320.c
+++ b/src/mess/drivers/vt320.c
@@ -19,6 +19,7 @@ public:
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_vt320(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*
@@ -68,7 +69,7 @@ void vt320_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( vt320 )
+UINT32 vt320_state::screen_update_vt320(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -87,7 +88,7 @@ static MACHINE_CONFIG_START( vt320, vt320_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(vt320)
+ MCFG_SCREEN_UPDATE_DRIVER(vt320_state, screen_update_vt320)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/vt520.c b/src/mess/drivers/vt520.c
index 09083b37bf4..cb196078c51 100644
--- a/src/mess/drivers/vt520.c
+++ b/src/mess/drivers/vt520.c
@@ -20,6 +20,7 @@ public:
DECLARE_READ8_MEMBER(vt520_some_r);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_vt520(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -62,7 +63,7 @@ void vt520_state::video_start()
{
}
-static SCREEN_UPDATE_IND16( vt520 )
+UINT32 vt520_state::screen_update_vt520(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -80,7 +81,7 @@ static MACHINE_CONFIG_START( vt520, vt520_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(802, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 802-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(vt520)
+ MCFG_SCREEN_UPDATE_DRIVER(vt520_state, screen_update_vt520)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/vta2000.c b/src/mess/drivers/vta2000.c
index 86ca3a8da1c..603f674ce5c 100644
--- a/src/mess/drivers/vta2000.c
+++ b/src/mess/drivers/vta2000.c
@@ -31,6 +31,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_vta2000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
static ADDRESS_MAP_START(vta2000_mem, AS_PROGRAM, 8, vta2000_state)
@@ -59,10 +60,9 @@ void vta2000_state::video_start()
m_p_videoram = memregion("maincpu")->base()+0x8000;
}
-static SCREEN_UPDATE_IND16( vta2000 )
+UINT32 vta2000_state::screen_update_vta2000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
/* Cursor is missing. */
{
- vta2000_state *state = screen.machine().driver_data<vta2000_state>();
static UINT8 framecnt=0;
UINT8 y,ra,gfx,attr,fg,bg;
UINT16 sy=0,ma=0,x,xx=0,chr;
@@ -78,13 +78,13 @@ static SCREEN_UPDATE_IND16( vta2000 )
xx = ma << 1;
for (x = ma; x < ma + 80; x++)
{
- chr = state->m_p_videoram[xx++];
- attr = state->m_p_videoram[xx++];
+ chr = m_p_videoram[xx++];
+ attr = m_p_videoram[xx++];
if ((chr & 0x60)==0x60)
chr+=256;
- gfx = state->m_p_chargen[(chr<<4) | ra ];
+ gfx = m_p_chargen[(chr<<4) | ra ];
bg = 0;
/* Process attributes */
@@ -163,7 +163,7 @@ static MACHINE_CONFIG_START( vta2000, vta2000_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(80*8, 25*12)
MCFG_SCREEN_VISIBLE_AREA(0, 80*8-1, 0, 25*12-1)
- MCFG_SCREEN_UPDATE_STATIC(vta2000)
+ MCFG_SCREEN_UPDATE_DRIVER(vta2000_state, screen_update_vta2000)
MCFG_PALETTE_LENGTH(3)
MCFG_GFXDECODE(vta2000)
MACHINE_CONFIG_END
diff --git a/src/mess/drivers/vtech2.c b/src/mess/drivers/vtech2.c
index f6f949a8d49..ac7e7cbc4cc 100644
--- a/src/mess/drivers/vtech2.c
+++ b/src/mess/drivers/vtech2.c
@@ -440,7 +440,7 @@ static MACHINE_CONFIG_START( laser350, vtech2_state )
MCFG_SCREEN_VBLANK_TIME(0)
MCFG_SCREEN_SIZE(88*8, 24*8+32)
MCFG_SCREEN_VISIBLE_AREA(0*8, 88*8-1, 0*8, 24*8+32-1)
- MCFG_SCREEN_UPDATE_STATIC(laser)
+ MCFG_SCREEN_UPDATE_DRIVER(vtech2_state, screen_update_laser)
MCFG_GFXDECODE( vtech2 )
MCFG_PALETTE_LENGTH(528)
diff --git a/src/mess/drivers/x1.c b/src/mess/drivers/x1.c
index 504d8eb8d69..7c6eea7b12f 100644
--- a/src/mess/drivers/x1.c
+++ b/src/mess/drivers/x1.c
@@ -542,15 +542,14 @@ static void draw_gfxbitmap(running_machine &machine, bitmap_rgb32 &bitmap,const
}
}
-SCREEN_UPDATE_RGB32( x1 )
+UINT32 x1_state::screen_update_x1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- x1_state *state = screen.machine().driver_data<x1_state>();
bitmap.fill(MAKE_ARGB(0xff,0x00,0x00,0x00), cliprect);
- draw_gfxbitmap(screen.machine(),bitmap,cliprect,state->m_scrn_reg.disp_bank,state->m_scrn_reg.pri);
+ draw_gfxbitmap(screen.machine(),bitmap,cliprect,m_scrn_reg.disp_bank,m_scrn_reg.pri);
draw_fgtilemap(screen.machine(),bitmap,cliprect);
- draw_gfxbitmap(screen.machine(),bitmap,cliprect,state->m_scrn_reg.disp_bank,state->m_scrn_reg.pri^0xff);
+ draw_gfxbitmap(screen.machine(),bitmap,cliprect,m_scrn_reg.disp_bank,m_scrn_reg.pri^0xff);
return 0;
}
@@ -2589,7 +2588,7 @@ static MACHINE_CONFIG_START( x1, x1_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(x1)
+ MCFG_SCREEN_UPDATE_DRIVER(x1_state, screen_update_x1)
MCFG_MC6845_ADD("crtc", H46505, (VDP_CLOCK/48), mc6845_intf) //unknown divider
MCFG_PALETTE_LENGTH(0x10+0x1000)
diff --git a/src/mess/drivers/x1twin.c b/src/mess/drivers/x1twin.c
index 11c2bd7fdf2..2e1187ba973 100644
--- a/src/mess/drivers/x1twin.c
+++ b/src/mess/drivers/x1twin.c
@@ -28,6 +28,7 @@ class x1twin_state : public x1_state
x1twin_state(const machine_config &mconfig, device_type type, const char *tag)
: x1_state(mconfig, type, tag)
{ }
+ UINT32 screen_update_x1pce(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -35,7 +36,7 @@ class x1twin_state : public x1_state
#define VDP_CLOCK XTAL_42_9545MHz
#define MCU_CLOCK XTAL_6MHz
-static SCREEN_UPDATE_RGB32( x1pce )
+UINT32 x1twin_state::screen_update_x1pce(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
return 0;
}
@@ -547,13 +548,13 @@ static MACHINE_CONFIG_START( x1twin, x1twin_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(x1)
+ MCFG_SCREEN_UPDATE_DRIVER(x1twin_state, screen_update_x1)
MCFG_SCREEN_ADD("pce_screen", RASTER)
MCFG_SCREEN_REFRESH_RATE(60)
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_RAW_PARAMS(PCE_MAIN_CLOCK/2, VDC_WPF, 70, 70 + 512 + 32, VDC_LPF, 14, 14+242)
- MCFG_SCREEN_UPDATE_STATIC(x1pce)
+ MCFG_SCREEN_UPDATE_DRIVER(x1twin_state, screen_update_x1pce)
MCFG_MC6845_ADD("crtc", H46505, (VDP_CLOCK/48), mc6845_intf) //unknown divider
MCFG_PALETTE_LENGTH(0x10+0x1000)
diff --git a/src/mess/drivers/x68k.c b/src/mess/drivers/x68k.c
index d3921946fdf..7c712f4d470 100644
--- a/src/mess/drivers/x68k.c
+++ b/src/mess/drivers/x68k.c
@@ -2765,7 +2765,7 @@ static MACHINE_CONFIG_FRAGMENT( x68000_base )
// MCFG_GFXDECODE(x68k)
MCFG_SCREEN_SIZE(1096, 568) // inital setting
MCFG_SCREEN_VISIBLE_AREA(0, 767, 0, 511)
- MCFG_SCREEN_UPDATE_STATIC( x68000 )
+ MCFG_SCREEN_UPDATE_DRIVER(x68k_state, screen_update_x68000)
MCFG_PALETTE_LENGTH(65536)
MCFG_PALETTE_INIT_OVERRIDE(x68k_state, x68000 )
diff --git a/src/mess/drivers/z100.c b/src/mess/drivers/z100.c
index 7b6fd1ce28b..3796c08b332 100644
--- a/src/mess/drivers/z100.c
+++ b/src/mess/drivers/z100.c
@@ -204,24 +204,25 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_z100(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
-#define mc6845_h_char_total (state->m_crtc_vreg[0])
-#define mc6845_h_display (state->m_crtc_vreg[1])
-#define mc6845_h_sync_pos (state->m_crtc_vreg[2])
-#define mc6845_sync_width (state->m_crtc_vreg[3])
-#define mc6845_v_char_total (state->m_crtc_vreg[4])
-#define mc6845_v_total_adj (state->m_crtc_vreg[5])
-#define mc6845_v_display (state->m_crtc_vreg[6])
-#define mc6845_v_sync_pos (state->m_crtc_vreg[7])
-#define mc6845_mode_ctrl (state->m_crtc_vreg[8])
-#define mc6845_tile_height (state->m_crtc_vreg[9]+1)
-#define mc6845_cursor_y_start (state->m_crtc_vreg[0x0a])
-#define mc6845_cursor_y_end (state->m_crtc_vreg[0x0b])
-#define mc6845_start_addr (((state->m_crtc_vreg[0x0c]<<8) & 0xff00) | (state->m_crtc_vreg[0x0d] & 0xff))
-#define mc6845_cursor_addr (((state->m_crtc_vreg[0x0e]<<8) & 0xff00) | (state->m_crtc_vreg[0x0f] & 0xff))
-#define mc6845_light_pen_addr (((state->m_crtc_vreg[0x10]<<8) & 0xff00) | (state->m_crtc_vreg[0x11] & 0xff))
-#define mc6845_update_addr (((state->m_crtc_vreg[0x12]<<8) & 0xff00) | (state->m_crtc_vreg[0x13] & 0xff))
+#define mc6845_h_char_total (m_crtc_vreg[0])
+#define mc6845_h_display (m_crtc_vreg[1])
+#define mc6845_h_sync_pos (m_crtc_vreg[2])
+#define mc6845_sync_width (m_crtc_vreg[3])
+#define mc6845_v_char_total (m_crtc_vreg[4])
+#define mc6845_v_total_adj (m_crtc_vreg[5])
+#define mc6845_v_display (m_crtc_vreg[6])
+#define mc6845_v_sync_pos (m_crtc_vreg[7])
+#define mc6845_mode_ctrl (m_crtc_vreg[8])
+#define mc6845_tile_height (m_crtc_vreg[9]+1)
+#define mc6845_cursor_y_start (m_crtc_vreg[0x0a])
+#define mc6845_cursor_y_end (m_crtc_vreg[0x0b])
+#define mc6845_start_addr (((m_crtc_vreg[0x0c]<<8) & 0xff00) | (m_crtc_vreg[0x0d] & 0xff))
+#define mc6845_cursor_addr (((m_crtc_vreg[0x0e]<<8) & 0xff00) | (m_crtc_vreg[0x0f] & 0xff))
+#define mc6845_light_pen_addr (((m_crtc_vreg[0x10]<<8) & 0xff00) | (m_crtc_vreg[0x11] & 0xff))
+#define mc6845_update_addr (((m_crtc_vreg[0x12]<<8) & 0xff00) | (m_crtc_vreg[0x13] & 0xff))
void z100_state::video_start()
@@ -230,9 +231,8 @@ void z100_state::video_start()
m_gvram = auto_alloc_array_clear(machine(), UINT8, 0x30000);
}
-static SCREEN_UPDATE_IND16( z100 )
+UINT32 z100_state::screen_update_z100(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- z100_state *state = screen.machine().driver_data<z100_state>();
int x,y,xi,yi;
int dot;
int i;
@@ -253,13 +253,13 @@ static SCREEN_UPDATE_IND16( z100 )
{
dot = 0;
for(i=0;i<3;i++)
- dot |= ((state->m_gvram[(base_offs & 0xffff)+0x10000*i] >> (7-xi)) & 1) << i; // b, r, g
+ dot |= ((m_gvram[(base_offs & 0xffff)+0x10000*i] >> (7-xi)) & 1) << i; // b, r, g
- dot &= state->m_display_mask;
+ dot &= m_display_mask;
/* overwrite */
- if(state->m_flash)
- dot = state->m_display_mask;
+ if(m_flash)
+ dot = m_display_mask;
if(y*mc6845_tile_height+yi < 216 && x*8+xi < 640) /* TODO: safety check */
bitmap.pix16(y*mc6845_tile_height+yi, x*8+xi) = screen.machine().pens[dot];
@@ -785,7 +785,7 @@ static MACHINE_CONFIG_START( z100, z100_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(640, 480)
MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1)
- MCFG_SCREEN_UPDATE_STATIC(z100)
+ MCFG_SCREEN_UPDATE_DRIVER(z100_state, screen_update_z100)
MCFG_PALETTE_LENGTH(8)
/* Devices */
diff --git a/src/mess/drivers/z1013.c b/src/mess/drivers/z1013.c
index 387cf71bfd5..5f71a9dbe83 100644
--- a/src/mess/drivers/z1013.c
+++ b/src/mess/drivers/z1013.c
@@ -76,6 +76,7 @@ public:
bool m_keyboard_part;
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_z1013(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -220,9 +221,8 @@ void z1013_state::video_start()
m_p_chargen = memregion("chargen")->base();
}
-SCREEN_UPDATE_IND16( z1013 )
+UINT32 z1013_state::screen_update_z1013(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- z1013_state *state = screen.machine().driver_data<z1013_state>();
UINT8 y,ra,chr,gfx;
UINT16 sy=0,ma=0,x;
@@ -234,10 +234,10 @@ SCREEN_UPDATE_IND16( z1013 )
for (x = ma; x < ma+32; x++)
{
- chr = state->m_p_videoram[x];
+ chr = m_p_videoram[x];
/* get pattern of pixels for that character scanline */
- gfx = state->m_p_chargen[(chr<<3) | ra];
+ gfx = m_p_chargen[(chr<<3) | ra];
/* Display a scanline of a character */
*p++ = BIT(gfx, 7);
@@ -404,7 +404,7 @@ static MACHINE_CONFIG_START( z1013, z1013_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(32*8, 32*8)
MCFG_SCREEN_VISIBLE_AREA(0, 32*8-1, 0, 32*8-1)
- MCFG_SCREEN_UPDATE_STATIC(z1013)
+ MCFG_SCREEN_UPDATE_DRIVER(z1013_state, screen_update_z1013)
MCFG_GFXDECODE(z1013)
MCFG_PALETTE_LENGTH(2)
MCFG_PALETTE_INIT(black_and_white)
diff --git a/src/mess/drivers/z9001.c b/src/mess/drivers/z9001.c
index 6d3cb09f07d..b35e2edbafd 100644
--- a/src/mess/drivers/z9001.c
+++ b/src/mess/drivers/z9001.c
@@ -64,6 +64,7 @@ public:
virtual void machine_reset();
//virtual void machine_start();
virtual void video_start();
+ UINT32 screen_update_z9001(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
static ADDRESS_MAP_START(z9001_mem, AS_PROGRAM, 8, z9001_state)
@@ -158,12 +159,11 @@ void z9001_state::video_start()
m_p_chargen = memregion("chargen")->base();
}
-static SCREEN_UPDATE_IND16( z9001 )
+UINT32 z9001_state::screen_update_z9001(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- z9001_state *state = screen.machine().driver_data<z9001_state>();
UINT8 y,ra,chr,gfx,col,fg,bg;
UINT16 sy=0,ma=0,x;
- state->m_framecnt++;
+ m_framecnt++;
for(y = 0; y < 24; y++ )
{
@@ -173,14 +173,14 @@ static SCREEN_UPDATE_IND16( z9001 )
for (x = ma; x < ma + 40; x++)
{
- chr = state->m_p_videoram[x]; // get char in videoram
- gfx = state->m_p_chargen[(chr<<3) | ra]; // get dot pattern in chargen
- col = state->m_p_colorram[x];
+ chr = m_p_videoram[x]; // get char in videoram
+ gfx = m_p_chargen[(chr<<3) | ra]; // get dot pattern in chargen
+ col = m_p_colorram[x];
fg = col>>4;
bg = col&15;
/* Check for flashing - swap bg & fg */
- if ((BIT(col, 7)) && (state->m_framecnt & 0x10))
+ if ((BIT(col, 7)) && (m_framecnt & 0x10))
{
bg = fg;
fg = col&15;
@@ -244,7 +244,7 @@ static MACHINE_CONFIG_START( z9001, z9001_state )
MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */
MCFG_SCREEN_SIZE(40*8, 24*8)
MCFG_SCREEN_VISIBLE_AREA(0, 40*8-1, 0, 24*8-1)
- MCFG_SCREEN_UPDATE_STATIC(z9001)
+ MCFG_SCREEN_UPDATE_DRIVER(z9001_state, screen_update_z9001)
MCFG_GFXDECODE(z9001)
MCFG_PALETTE_LENGTH(16)
diff --git a/src/mess/drivers/zx.c b/src/mess/drivers/zx.c
index e9051fefab2..6f5d2bd68aa 100644
--- a/src/mess/drivers/zx.c
+++ b/src/mess/drivers/zx.c
@@ -393,7 +393,7 @@ static MACHINE_CONFIG_START( zx80, zx_state )
MCFG_SCREEN_UPDATE_DRIVER(zx_state, screen_update)
MCFG_SCREEN_SIZE(ZX81_PIXELS_PER_SCANLINE, ZX81_PAL_SCANLINES)
MCFG_SCREEN_VISIBLE_AREA(0, ZX81_PIXELS_PER_SCANLINE-1, 0, ZX81_PAL_SCANLINES-1)
- MCFG_SCREEN_VBLANK_STATIC(zx)
+ MCFG_SCREEN_VBLANK_DRIVER(zx_state, screen_eof_zx)
MCFG_GFXDECODE(zx80)
MCFG_PALETTE_LENGTH(4)
diff --git a/src/mess/includes/a7800.h b/src/mess/includes/a7800.h
index c6deab4d495..4bf42981192 100644
--- a/src/mess/includes/a7800.h
+++ b/src/mess/includes/a7800.h
@@ -65,13 +65,14 @@ public:
virtual void video_start();
virtual void palette_init();
DECLARE_PALETTE_INIT(a7800p);
+ UINT32 screen_update_a7800(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/a7800.c -----------*/
-SCREEN_UPDATE_IND16( a7800 );
+
TIMER_DEVICE_CALLBACK( a7800_interrupt );
diff --git a/src/mess/includes/abc1600.h b/src/mess/includes/abc1600.h
index 6efadb90f11..9d6e8f7a4bf 100644
--- a/src/mess/includes/abc1600.h
+++ b/src/mess/includes/abc1600.h
@@ -244,6 +244,7 @@ public:
int m_rmc; // row match count
int m_cmc; // column match count
int m_amm; // active mover mask
+ UINT32 screen_update_abc1600(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/ac1.h b/src/mess/includes/ac1.h
index dffcfa4ba1d..94b36b0bcc1 100644
--- a/src/mess/includes/ac1.h
+++ b/src/mess/includes/ac1.h
@@ -20,6 +20,8 @@ public:
DECLARE_DRIVER_INIT(ac1);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_ac1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_ac1_32(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -34,8 +36,8 @@ extern const z80pio_interface ac1_z80pio_intf;
extern const gfx_layout ac1_charlayout;
-SCREEN_UPDATE_IND16( ac1 );
-SCREEN_UPDATE_IND16( ac1_32 );
+
+
#endif /* AC1_h_ */
diff --git a/src/mess/includes/ace.h b/src/mess/includes/ace.h
index be5a7b430f8..f36a2b5e2f9 100644
--- a/src/mess/includes/ace.h
+++ b/src/mess/includes/ace.h
@@ -57,6 +57,7 @@ public:
required_shared_ptr<UINT8> m_video_ram;
required_shared_ptr<UINT8> m_char_ram;
+ UINT32 screen_update_ace(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
#endif /* ACE_H_ */
diff --git a/src/mess/includes/amstrad.h b/src/mess/includes/amstrad.h
index 04fae18e18b..10c873b9fa7 100644
--- a/src/mess/includes/amstrad.h
+++ b/src/mess/includes/amstrad.h
@@ -167,6 +167,8 @@ public:
DECLARE_MACHINE_START(aleste);
DECLARE_MACHINE_RESET(aleste);
DECLARE_PALETTE_INIT(aleste);
+ UINT32 screen_update_amstrad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_amstrad(screen_device &screen, bool state);
};
@@ -205,8 +207,8 @@ extern const mc6845_interface amstrad_mc6845_intf;
extern const mc6845_interface amstrad_plus_mc6845_intf;
-SCREEN_UPDATE_IND16( amstrad );
-SCREEN_VBLANK( amstrad );
+
+
SLOT_INTERFACE_START(cpc_exp_cards)
diff --git a/src/mess/includes/apple1.h b/src/mess/includes/apple1.h
index 61966536e40..2cd3acc8b45 100644
--- a/src/mess/includes/apple1.h
+++ b/src/mess/includes/apple1.h
@@ -47,6 +47,7 @@ public:
TILE_GET_INFO_MEMBER(terminal_gettileinfo);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_apple1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -62,7 +63,7 @@ SNAPSHOT_LOAD( apple1 );
/*----------- defined in video/apple1.c -----------*/
-SCREEN_UPDATE_IND16( apple1 );
+
void apple1_vh_dsp_w (running_machine &machine, int data);
void apple1_vh_dsp_clr (running_machine &machine);
diff --git a/src/mess/includes/apple2.h b/src/mess/includes/apple2.h
index 24e4b06e711..da0e7ab9491 100644
--- a/src/mess/includes/apple2.h
+++ b/src/mess/includes/apple2.h
@@ -241,6 +241,7 @@ public:
DECLARE_MACHINE_START(tk2000);
DECLARE_MACHINE_START(laser128);
DECLARE_MACHINE_START(space84);
+ UINT32 screen_update_apple2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -288,6 +289,6 @@ void apple2_video_start(running_machine &machine, const UINT8 *vram, size_t vram
-SCREEN_UPDATE_IND16( apple2 );
+
#endif /* APPLE2_H_ */
diff --git a/src/mess/includes/apple2gs.h b/src/mess/includes/apple2gs.h
index ec5a3abe91f..0509c2f97c4 100644
--- a/src/mess/includes/apple2gs.h
+++ b/src/mess/includes/apple2gs.h
@@ -141,6 +141,7 @@ public:
DECLARE_PALETTE_INIT(apple2gs);
DECLARE_MACHINE_START(apple2gsr1);
DECLARE_MACHINE_START(apple2gscommon);
+ UINT32 screen_update_apple2gs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -156,7 +157,7 @@ void apple2gs_doc_irq(device_t *device, int state);
/*----------- defined in video/apple2gs.c -----------*/
-SCREEN_UPDATE_IND16( apple2gs );
+
#endif /* APPLE2GS_H_ */
diff --git a/src/mess/includes/apple3.h b/src/mess/includes/apple3.h
index b38eaaa5613..223b26b8b82 100644
--- a/src/mess/includes/apple3.h
+++ b/src/mess/includes/apple3.h
@@ -59,6 +59,7 @@ public:
DECLARE_DRIVER_INIT(apple3);
DECLARE_MACHINE_RESET(apple3);
DECLARE_VIDEO_START(apple3);
+ UINT32 screen_update_apple3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -77,7 +78,7 @@ INTERRUPT_GEN( apple3_interrupt );
/*----------- defined in video/apple3.c -----------*/
-SCREEN_UPDATE_IND16( apple3 );
+
void apple3_write_charmem(running_machine &machine);
diff --git a/src/mess/includes/aquarius.h b/src/mess/includes/aquarius.h
index c3b4dcc79ed..e5c823fa7c5 100644
--- a/src/mess/includes/aquarius.h
+++ b/src/mess/includes/aquarius.h
@@ -36,6 +36,7 @@ public:
TILE_GET_INFO_MEMBER(aquarius_gettileinfo);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_aquarius(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -44,6 +45,6 @@ public:
-SCREEN_UPDATE_IND16( aquarius );
+
#endif /* AQUARIUS_H_ */
diff --git a/src/mess/includes/arcadia.h b/src/mess/includes/arcadia.h
index d77ce9480b5..c73515099c4 100644
--- a/src/mess/includes/arcadia.h
+++ b/src/mess/includes/arcadia.h
@@ -80,6 +80,7 @@ public:
DECLARE_DRIVER_INIT(arcadia);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_arcadia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/b2m.h b/src/mess/includes/b2m.h
index 1b9168dc60e..83516e3f502 100644
--- a/src/mess/includes/b2m.h
+++ b/src/mess/includes/b2m.h
@@ -48,6 +48,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_b2m(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in machine/b2m.c -----------*/
diff --git a/src/mess/includes/bbc.h b/src/mess/includes/bbc.h
index 4d4acb42be4..a756b10849a 100644
--- a/src/mess/includes/bbc.h
+++ b/src/mess/includes/bbc.h
@@ -281,6 +281,7 @@ public:
DECLARE_MACHINE_START(bbcbp);
DECLARE_MACHINE_RESET(bbcbp);
DECLARE_VIDEO_START(bbcbp);
+ UINT32 screen_update_bbc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -336,7 +337,7 @@ extern const uPD7002_interface bbc_uPD7002;
-SCREEN_UPDATE_IND16( bbc );
+
void bbc_set_video_memory_lookups(running_machine &machine, int ramsize);
void bbc_setscreenstart(running_machine &machine, int b4, int b5);
diff --git a/src/mess/includes/bk.h b/src/mess/includes/bk.h
index 70ec16ebc2d..9fe8bcbc957 100644
--- a/src/mess/includes/bk.h
+++ b/src/mess/includes/bk.h
@@ -36,6 +36,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_bk0010(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/busicom.h b/src/mess/includes/busicom.h
index 739f0b7396d..7cbebc3a90b 100644
--- a/src/mess/includes/busicom.h
+++ b/src/mess/includes/busicom.h
@@ -30,6 +30,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_busicom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/c65.h b/src/mess/includes/c65.h
index e1547718fc2..90b0eb10290 100644
--- a/src/mess/includes/c65.h
+++ b/src/mess/includes/c65.h
@@ -64,6 +64,7 @@ public:
DECLARE_READ8_MEMBER( sid_poty_r );
DECLARE_MACHINE_START(c65);
DECLARE_PALETTE_INIT(c65);
+ UINT32 screen_update_c65(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/cgc7900.h b/src/mess/includes/cgc7900.h
index 00374e7047f..c565cffb285 100644
--- a/src/mess/includes/cgc7900.h
+++ b/src/mess/includes/cgc7900.h
@@ -88,6 +88,7 @@ public:
required_shared_ptr<UINT16> m_color_status_bg;
required_shared_ptr<UINT16> m_roll_overlay;
int m_blink;
+ UINT32 screen_update_cgc7900(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/cgc7900.c -----------*/
diff --git a/src/mess/includes/cgenie.h b/src/mess/includes/cgenie.h
index cfeb603e63f..7cbe8407a8d 100644
--- a/src/mess/includes/cgenie.h
+++ b/src/mess/includes/cgenie.h
@@ -70,6 +70,7 @@ public:
virtual void video_start();
DECLARE_PALETTE_INIT(cgenie);
DECLARE_PALETTE_INIT(cgenienz);
+ UINT32 screen_update_cgenie(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -124,7 +125,7 @@ DECLARE_WRITE8_HANDLER ( cgenie_videoram_w );
/*----------- defined in video/cgenie.c -----------*/
-SCREEN_UPDATE_IND16( cgenie );
+
DECLARE_READ8_HANDLER ( cgenie_index_r );
DECLARE_READ8_HANDLER ( cgenie_register_r );
diff --git a/src/mess/includes/channelf.h b/src/mess/includes/channelf.h
index d49cd3879fa..15022d5f211 100644
--- a/src/mess/includes/channelf.h
+++ b/src/mess/includes/channelf.h
@@ -50,6 +50,7 @@ public:
UINT8 port_read_with_latch(UINT8 ext, UINT8 latch_state);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_channelf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -57,7 +58,7 @@ public:
-SCREEN_UPDATE_IND16( channelf );
+
/*----------- defined in audio/channelf.c -----------*/
diff --git a/src/mess/includes/compis.h b/src/mess/includes/compis.h
index 7375fbd68ec..732c21a2fa9 100644
--- a/src/mess/includes/compis.h
+++ b/src/mess/includes/compis.h
@@ -186,6 +186,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void palette_init();
+ UINT32 screen_update_compis2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/comquest.h b/src/mess/includes/comquest.h
index 7e3b41381f8..c984bc605b6 100644
--- a/src/mess/includes/comquest.h
+++ b/src/mess/includes/comquest.h
@@ -24,13 +24,14 @@ public:
DECLARE_WRITE8_MEMBER(comquest_write);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_comquest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/comquest.c -----------*/
-SCREEN_UPDATE_IND16( comquest );
+
#endif /* COMQUEST_H_ */
diff --git a/src/mess/includes/concept.h b/src/mess/includes/concept.h
index 7cbd5a4d935..fa8bfe21290 100644
--- a/src/mess/includes/concept.h
+++ b/src/mess/includes/concept.h
@@ -55,6 +55,7 @@ public:
DECLARE_WRITE8_MEMBER(concept_hdc_reg_w);
virtual void machine_start();
virtual void video_start();
+ UINT32 screen_update_concept(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -65,7 +66,7 @@ extern const wd17xx_interface concept_wd17xx_interface;
-SCREEN_UPDATE_IND16(concept);
+
INTERRUPT_GEN( concept_interrupt );
diff --git a/src/mess/includes/cxhumax.h b/src/mess/includes/cxhumax.h
index ca5da0d57b8..2edc045c49d 100644
--- a/src/mess/includes/cxhumax.h
+++ b/src/mess/includes/cxhumax.h
@@ -151,6 +151,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_cxhumax(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
#define INTDEST 0 // Interrupt destination (1=IRQ, 0=FIQ)
diff --git a/src/mess/includes/cybiko.h b/src/mess/includes/cybiko.h
index a200a60a644..ccfb98f76f0 100644
--- a/src/mess/includes/cybiko.h
+++ b/src/mess/includes/cybiko.h
@@ -86,6 +86,7 @@ public:
DECLARE_MACHINE_RESET(cybikov2);
DECLARE_MACHINE_START(cybikoxt);
DECLARE_MACHINE_RESET(cybikoxt);
+ UINT32 screen_update_cybiko(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/dai.h b/src/mess/includes/dai.h
index bf0c1e03e57..e914b733c4b 100644
--- a/src/mess/includes/dai.h
+++ b/src/mess/includes/dai.h
@@ -80,6 +80,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_dai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -98,7 +99,7 @@ extern const tms5501_interface dai_tms5501_interface;
extern const unsigned char dai_palette[16*3];
-SCREEN_UPDATE_IND16( dai );
+
diff --git a/src/mess/includes/dm7000.h b/src/mess/includes/dm7000.h
index 1286edfbd9a..b9b23621225 100644
--- a/src/mess/includes/dm7000.h
+++ b/src/mess/includes/dm7000.h
@@ -42,6 +42,7 @@ public:
UINT32 dcr[1024];
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_dm7000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/* */
diff --git a/src/mess/includes/einstein.h b/src/mess/includes/einstein.h
index 37446f74d24..a5391312c16 100644
--- a/src/mess/includes/einstein.h
+++ b/src/mess/includes/einstein.h
@@ -82,6 +82,7 @@ public:
virtual void machine_reset();
DECLARE_MACHINE_START(einstein2);
DECLARE_MACHINE_RESET(einstein2);
+ UINT32 screen_update_einstein2(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/electron.h b/src/mess/includes/electron.h
index 62a857d866e..d4e662b733c 100644
--- a/src/mess/includes/electron.h
+++ b/src/mess/includes/electron.h
@@ -74,6 +74,7 @@ public:
virtual void machine_start();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_electron(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -87,7 +88,7 @@ void electron_interrupt_handler(running_machine &machine, int mode, int interrup
/*----------- defined in video/electron.c -----------*/
-SCREEN_UPDATE_IND16( electron );
+
#endif /* ELECTRON_H_ */
diff --git a/src/mess/includes/enterp.h b/src/mess/includes/enterp.h
index 0e64eee4b6e..514d09d2cc9 100644
--- a/src/mess/includes/enterp.h
+++ b/src/mess/includes/enterp.h
@@ -31,6 +31,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_epnick(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -38,7 +39,7 @@ public:
-SCREEN_UPDATE_IND16( epnick );
+
DECLARE_WRITE8_HANDLER( epnick_reg_w );
diff --git a/src/mess/includes/fm7.h b/src/mess/includes/fm7.h
index 693f1693715..0c96598c329 100644
--- a/src/mess/includes/fm7.h
+++ b/src/mess/includes/fm7.h
@@ -238,6 +238,7 @@ public:
DECLARE_MACHINE_START(fm77av);
DECLARE_MACHINE_START(fm11);
DECLARE_MACHINE_START(fm16);
+ UINT32 screen_update_fm7(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -256,7 +257,7 @@ TIMER_CALLBACK( fm77av_vsync );
-SCREEN_UPDATE_IND16( fm7 );
+
#endif /*FM7_H_*/
diff --git a/src/mess/includes/galaxy.h b/src/mess/includes/galaxy.h
index 48389ccf9d9..1271624a4b2 100644
--- a/src/mess/includes/galaxy.h
+++ b/src/mess/includes/galaxy.h
@@ -31,6 +31,7 @@ public:
virtual void video_start();
DECLARE_MACHINE_RESET(galaxy);
DECLARE_MACHINE_RESET(galaxyp);
+ UINT32 screen_update_galaxy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -47,7 +48,7 @@ SNAPSHOT_LOAD( galaxy );
/*----------- defined in video/galaxy.c -----------*/
-SCREEN_UPDATE_IND16( galaxy );
+
void galaxy_set_timer(running_machine &machine);
diff --git a/src/mess/includes/galeb.h b/src/mess/includes/galeb.h
index d79b184ef67..4a48e548fcc 100644
--- a/src/mess/includes/galeb.h
+++ b/src/mess/includes/galeb.h
@@ -18,6 +18,7 @@ public:
required_shared_ptr<UINT8> m_video_ram;
DECLARE_READ8_MEMBER(galeb_keyboard_r);
virtual void video_start();
+ UINT32 screen_update_galeb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/galeb.c -----------*/
diff --git a/src/mess/includes/gamepock.h b/src/mess/includes/gamepock.h
index 4130d1f7255..37a544dd5fb 100644
--- a/src/mess/includes/gamepock.h
+++ b/src/mess/includes/gamepock.h
@@ -29,12 +29,13 @@ public:
DECLARE_READ8_MEMBER( port_b_r );
DECLARE_WRITE8_MEMBER( port_b_w );
DECLARE_READ8_MEMBER( port_c_r );
+ UINT32 screen_update_gamepock(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in machine/gamepock.c -----------*/
-SCREEN_UPDATE_IND16( gamepock );
+
int gamepock_io_callback( device_t *device, int ioline, int state );
diff --git a/src/mess/includes/gmaster.h b/src/mess/includes/gmaster.h
index 1f1b5960a08..34b9af6167b 100644
--- a/src/mess/includes/gmaster.h
+++ b/src/mess/includes/gmaster.h
@@ -31,6 +31,7 @@ public:
DECLARE_WRITE8_MEMBER(gmaster_port_w);
DECLARE_DRIVER_INIT(gmaster);
virtual void palette_init();
+ UINT32 screen_update_gmaster(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/gp32.h b/src/mess/includes/gp32.h
index 048bca837cd..7e09a05cdd5 100644
--- a/src/mess/includes/gp32.h
+++ b/src/mess/includes/gp32.h
@@ -163,6 +163,7 @@ public:
DECLARE_WRITE32_MEMBER(s3c240x_mmc_w);
virtual void machine_start();
virtual void machine_reset();
+ UINT32 screen_update_gp32(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/hec2hrp.h b/src/mess/includes/hec2hrp.h
index 0dd08ae2064..6eeae173b3e 100644
--- a/src/mess/includes/hec2hrp.h
+++ b/src/mess/includes/hec2hrp.h
@@ -136,6 +136,7 @@ public:
DECLARE_MACHINE_RESET(hec2hrx);
DECLARE_MACHINE_START(hec2mdhrx);
DECLARE_MACHINE_RESET(hec2mdhrx);
+ UINT32 screen_update_hec2hrp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in machine/hec2hrp.c -----------*/
@@ -154,7 +155,7 @@ DECLARE_READ8_HANDLER( hector_mx_io_port_r );
void hector_80c(running_machine &machine, bitmap_ind16 &bitmap, UINT8 *page, int ymax, int yram) ;
void hector_hr(running_machine &machine, bitmap_ind16 &bitmap, UINT8 *page, int ymax, int yram) ;
-SCREEN_UPDATE_IND16( hec2hrp );
+
/* Sound function*/
extern const sn76477_interface hector_sn76477_interface;
diff --git a/src/mess/includes/hp48.h b/src/mess/includes/hp48.h
index d70054ebba5..845cd232814 100644
--- a/src/mess/includes/hp48.h
+++ b/src/mess/includes/hp48.h
@@ -75,6 +75,7 @@ public:
DECLARE_MACHINE_START(hp48gp);
DECLARE_MACHINE_START(hp48sx);
DECLARE_MACHINE_START(hp48s);
+ UINT32 screen_update_hp48(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -183,20 +184,3 @@ extern const device_type HP48_PORT;
MCFG_DEVICE_ADD(_tag, HP48_PORT, 0) \
MCFG_DEVICE_CONFIG(_intrf)
-/****************************** machine ******************************/
-
-
-extern MACHINE_START( hp48s );
-extern MACHINE_START( hp48sx );
-extern MACHINE_START( hp48g );
-extern MACHINE_START( hp48gx );
-extern MACHINE_START( hp48gp );
-
-extern MACHINE_RESET( hp48 );
-
-/*----------- defined in video/hp48.c -----------*/
-
-/****************************** video ********************************/
-
-extern SCREEN_UPDATE_IND16 ( hp48 );
-extern PALETTE_INIT ( hp48 );
diff --git a/src/mess/includes/intv.h b/src/mess/includes/intv.h
index 33ff2ab93ae..0b47397ca67 100644
--- a/src/mess/includes/intv.h
+++ b/src/mess/includes/intv.h
@@ -130,6 +130,8 @@ public:
virtual void video_start();
virtual void palette_init();
DECLARE_MACHINE_RESET(intvecs);
+ UINT32 screen_update_intv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_intvkbd(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/intv.c -----------*/
diff --git a/src/mess/includes/kaypro.h b/src/mess/includes/kaypro.h
index 71f33745bed..1c6d2327001 100644
--- a/src/mess/includes/kaypro.h
+++ b/src/mess/includes/kaypro.h
@@ -75,6 +75,9 @@ public:
DECLARE_MACHINE_RESET(kaypro2x);
DECLARE_PALETTE_INIT(kaypro);
DECLARE_MACHINE_RESET(kay_kbd);
+ UINT32 screen_update_kayproii(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_kaypro2x(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_omni2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -111,6 +114,6 @@ QUICKLOAD_LOAD( kaypro2x );
MC6845_UPDATE_ROW( kaypro2x_update_row );
-SCREEN_UPDATE_IND16( kayproii );
-SCREEN_UPDATE_IND16( omni2 );
-SCREEN_UPDATE_RGB32( kaypro2x );
+
+
+
diff --git a/src/mess/includes/kramermc.h b/src/mess/includes/kramermc.h
index 52ce6832d82..54d18bffaff 100644
--- a/src/mess/includes/kramermc.h
+++ b/src/mess/includes/kramermc.h
@@ -19,6 +19,7 @@ public:
DECLARE_DRIVER_INIT(kramermc);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_kramermc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -33,7 +34,7 @@ extern const z80pio_interface kramermc_z80pio_intf;
extern const gfx_layout kramermc_charlayout;
-SCREEN_UPDATE_IND16( kramermc );
+
#endif /* KRAMERMC_h_ */
diff --git a/src/mess/includes/lisa.h b/src/mess/includes/lisa.h
index 3c56892ed96..5279b3ecb1e 100644
--- a/src/mess/includes/lisa.h
+++ b/src/mess/includes/lisa.h
@@ -163,6 +163,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_lisa(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -172,7 +173,7 @@ extern const via6522_interface lisa_via6522_0_intf;
extern const via6522_interface lisa_via6522_1_intf;
-SCREEN_UPDATE_IND16( lisa );
+
extern NVRAM_HANDLER(lisa);
diff --git a/src/mess/includes/llc.h b/src/mess/includes/llc.h
index 4882c6450cd..359910f05d0 100644
--- a/src/mess/includes/llc.h
+++ b/src/mess/includes/llc.h
@@ -51,6 +51,8 @@ public:
DECLARE_MACHINE_START(llc1);
DECLARE_MACHINE_RESET(llc1);
DECLARE_MACHINE_RESET(llc2);
+ UINT32 screen_update_llc1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_llc2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/lviv.h b/src/mess/includes/lviv.h
index a7a8fda2597..bbf60d1d2ff 100644
--- a/src/mess/includes/lviv.h
+++ b/src/mess/includes/lviv.h
@@ -26,6 +26,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_lviv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/mac.h b/src/mess/includes/mac.h
index 803be472ea8..374d2e66c68 100644
--- a/src/mess/includes/mac.h
+++ b/src/mess/includes/mac.h
@@ -162,15 +162,15 @@ NVRAM_HANDLER( mac );
-SCREEN_UPDATE_IND16( mac );
-SCREEN_UPDATE_IND16( macse30 );
-SCREEN_UPDATE_IND16( macprtb );
-SCREEN_UPDATE_IND16( macpb140 );
-SCREEN_UPDATE_IND16( macpb160 );
-SCREEN_UPDATE_RGB32( macrbv );
-SCREEN_UPDATE_RGB32( macrbvvram );
-SCREEN_UPDATE_RGB32( macdafb );
-SCREEN_UPDATE_RGB32( macpbwd );
+
+
+
+
+
+
+
+
+
@@ -513,6 +513,15 @@ public:
DECLARE_VIDEO_RESET(macsonora);
DECLARE_VIDEO_RESET(maceagle);
DECLARE_VIDEO_START(macrbv);
+ UINT32 screen_update_mac(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_macprtb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_macse30(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_macpb140(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_macpb160(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_macrbv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_macdafb(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_macrbvvram(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_macpbwd(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
#endif /* MAC_H_ */
diff --git a/src/mess/includes/macpci.h b/src/mess/includes/macpci.h
index 03449d28fed..df88bcc94b4 100644
--- a/src/mess/includes/macpci.h
+++ b/src/mess/includes/macpci.h
@@ -157,6 +157,7 @@ private:
public:
emu_timer *m_scanline_timer;
+ UINT32 screen_update_pippin(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
#endif /* PCIMAC_H_ */
diff --git a/src/mess/includes/mbc55x.h b/src/mess/includes/mbc55x.h
index d07a4f38a48..a309247f292 100644
--- a/src/mess/includes/mbc55x.h
+++ b/src/mess/includes/mbc55x.h
@@ -156,6 +156,7 @@ public:
virtual void video_start();
virtual void video_reset();
virtual void palette_init();
+ void screen_eof_mbc55x(screen_device &screen, bool state);
};
/* IO chips */
@@ -221,7 +222,7 @@ DECLARE_READ16_HANDLER (mbc55x_video_io_r);
DECLARE_WRITE16_HANDLER (mbc55x_video_io_w);
-SCREEN_VBLANK( mbc55x );
+
#define RED 0
diff --git a/src/mess/includes/mbee.h b/src/mess/includes/mbee.h
index a7bc61b3b33..80b503e8f8a 100644
--- a/src/mess/includes/mbee.h
+++ b/src/mess/includes/mbee.h
@@ -140,6 +140,7 @@ public:
DECLARE_MACHINE_RESET(mbee128);
DECLARE_MACHINE_RESET(mbee256);
DECLARE_MACHINE_RESET(mbeett);
+ UINT32 screen_update_mbee(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -167,11 +168,11 @@ MC6845_ON_UPDATE_ADDR_CHANGED( mbee_update_addr );
MC6845_ON_UPDATE_ADDR_CHANGED( mbee256_update_addr );
-SCREEN_UPDATE_RGB32( mbee );
-SCREEN_UPDATE_RGB32( mbeeic );
-SCREEN_UPDATE_RGB32( mbeeppc );
+
+
+
diff --git a/src/mess/includes/mc80.h b/src/mess/includes/mc80.h
index e207771be77..b148b88d411 100644
--- a/src/mess/includes/mc80.h
+++ b/src/mess/includes/mc80.h
@@ -42,6 +42,8 @@ public:
DECLARE_VIDEO_START(mc8020);
DECLARE_MACHINE_RESET(mc8030);
DECLARE_VIDEO_START(mc8030);
+ UINT32 screen_update_mc8020(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_mc8030(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/microtan.h b/src/mess/includes/microtan.h
index 89b7c0f8056..5e9364ec3c5 100644
--- a/src/mess/includes/microtan.h
+++ b/src/mess/includes/microtan.h
@@ -51,6 +51,7 @@ public:
TILE_GET_INFO_MEMBER(get_bg_tile_info);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_microtan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/mikro80.h b/src/mess/includes/mikro80.h
index 3b5c5d5e9a6..6fdff219b56 100644
--- a/src/mess/includes/mikro80.h
+++ b/src/mess/includes/mikro80.h
@@ -33,6 +33,7 @@ public:
DECLARE_DRIVER_INIT(mikro80);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_mikro80(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/mikromik.h b/src/mess/includes/mikromik.h
index 2b4041ee503..2d8e604e846 100644
--- a/src/mess/includes/mikromik.h
+++ b/src/mess/includes/mikromik.h
@@ -112,6 +112,7 @@ public:
int m_recall;
int m_dack3;
int m_tc;
+ UINT32 screen_update_mm1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/mz700.h b/src/mess/includes/mz700.h
index eb4a3024897..6662b646427 100644
--- a/src/mess/includes/mz700.h
+++ b/src/mess/includes/mz700.h
@@ -79,6 +79,8 @@ public:
virtual void machine_start();
virtual void palette_init();
DECLARE_VIDEO_START(mz800);
+ UINT32 screen_update_mz700(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_mz800(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -101,9 +103,9 @@ extern const z80pio_interface mz800_z80pio_config;
/*----------- defined in video/mz700.c -----------*/
-SCREEN_UPDATE_IND16( mz700 );
-SCREEN_UPDATE_IND16( mz800 );
+
+
#endif /* MZ700_H_ */
diff --git a/src/mess/includes/mz80.h b/src/mess/includes/mz80.h
index 33475e4882f..5abbe180e75 100644
--- a/src/mess/includes/mz80.h
+++ b/src/mess/includes/mz80.h
@@ -54,6 +54,9 @@ public:
DECLARE_DRIVER_INIT(mz80k);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_mz80k(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_mz80kj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_mz80a(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/nascom1.h b/src/mess/includes/nascom1.h
index 4c16edb3e75..840cd70d2c8 100644
--- a/src/mess/includes/nascom1.h
+++ b/src/mess/includes/nascom1.h
@@ -48,6 +48,8 @@ public:
DECLARE_READ8_MEMBER(nascom1_port_02_r);
DECLARE_DRIVER_INIT(nascom1);
virtual void machine_reset();
+ UINT32 screen_update_nascom1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_nascom2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -69,8 +71,8 @@ DECLARE_WRITE8_DEVICE_HANDLER( nascom1_hd6402_so );
/*----------- defined in video/nascom1.c -----------*/
-SCREEN_UPDATE_IND16( nascom1 );
-SCREEN_UPDATE_IND16( nascom2 );
+
+
#endif /* NASCOM1_H_ */
diff --git a/src/mess/includes/nc.h b/src/mess/includes/nc.h
index 8972812000f..e0d3bd5c485 100644
--- a/src/mess/includes/nc.h
+++ b/src/mess/includes/nc.h
@@ -79,6 +79,7 @@ public:
virtual void palette_init();
DECLARE_MACHINE_START(nc200);
DECLARE_MACHINE_RESET(nc200);
+ UINT32 screen_update_nc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/nes.h b/src/mess/includes/nes.h
index 029eab0e6da..8bd309eaced 100644
--- a/src/mess/includes/nes.h
+++ b/src/mess/includes/nes.h
@@ -259,6 +259,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_nes(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -285,7 +286,7 @@ void nes_partialhash(hash_collection &dest, const unsigned char *data, unsigned
-SCREEN_UPDATE_IND16( nes );
+
#endif /* NES_H_ */
diff --git a/src/mess/includes/odyssey2.h b/src/mess/includes/odyssey2.h
index b0077fa6251..514047e869a 100644
--- a/src/mess/includes/odyssey2.h
+++ b/src/mess/includes/odyssey2.h
@@ -114,6 +114,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_odyssey2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -122,7 +123,7 @@ public:
extern const UINT8 odyssey2_colors[];
-SCREEN_UPDATE_IND16( odyssey2 );
+
STREAM_UPDATE( odyssey2_sh_update );
diff --git a/src/mess/includes/ondra.h b/src/mess/includes/ondra.h
index 69e1cce81cc..84aaf746b75 100644
--- a/src/mess/includes/ondra.h
+++ b/src/mess/includes/ondra.h
@@ -23,6 +23,7 @@ public:
virtual void machine_start();
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_ondra(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/orao.h b/src/mess/includes/orao.h
index f59aec1bbaa..5d4c8cb7fcd 100644
--- a/src/mess/includes/orao.h
+++ b/src/mess/includes/orao.h
@@ -24,6 +24,7 @@ public:
DECLARE_DRIVER_INIT(orao103);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_orao(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/oric.h b/src/mess/includes/oric.h
index 6d5d75a9531..370605b2bf2 100644
--- a/src/mess/includes/oric.h
+++ b/src/mess/includes/oric.h
@@ -107,6 +107,7 @@ public:
virtual void video_start();
virtual void palette_init();
DECLARE_MACHINE_START(telestrat);
+ UINT32 screen_update_oric(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -127,7 +128,7 @@ extern const wd17xx_interface oric_wd17xx_interface;
/*----------- defined in video/oric.c -----------*/
-SCREEN_UPDATE_IND16( oric );
+
#endif /* ORIC_H_ */
diff --git a/src/mess/includes/orion.h b/src/mess/includes/orion.h
index 8c388370b21..2a0c5dfff52 100644
--- a/src/mess/includes/orion.h
+++ b/src/mess/includes/orion.h
@@ -62,6 +62,7 @@ public:
DECLARE_MACHINE_START(orionz80);
DECLARE_MACHINE_RESET(orionz80);
DECLARE_MACHINE_RESET(orionpro);
+ UINT32 screen_update_orion128(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/p2000t.h b/src/mess/includes/p2000t.h
index b9c5a5dc995..1709abaceab 100644
--- a/src/mess/includes/p2000t.h
+++ b/src/mess/includes/p2000t.h
@@ -43,6 +43,7 @@ public:
INT8 m_frame_count;
DECLARE_VIDEO_START(p2000m);
DECLARE_PALETTE_INIT(p2000m);
+ UINT32 screen_update_p2000m(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/pc1251.h b/src/mess/includes/pc1251.h
index ff69f24eb97..0fa894a190e 100644
--- a/src/mess/includes/pc1251.h
+++ b/src/mess/includes/pc1251.h
@@ -26,6 +26,7 @@ public:
UINT8 m_reg[0x100];
DECLARE_DRIVER_INIT(pc1251);
+ UINT32 screen_update_pc1251(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -47,7 +48,7 @@ MACHINE_START( pc1251 );
DECLARE_READ8_HANDLER(pc1251_lcd_read);
DECLARE_WRITE8_HANDLER(pc1251_lcd_write);
-SCREEN_UPDATE_IND16( pc1251 );
+
#endif /* PC1251_H_ */
diff --git a/src/mess/includes/pc1350.h b/src/mess/includes/pc1350.h
index e7caf96f4cd..1603afc2b18 100644
--- a/src/mess/includes/pc1350.h
+++ b/src/mess/includes/pc1350.h
@@ -24,6 +24,7 @@ public:
UINT8 m_outb;
int m_power;
UINT8 m_reg[0x1000];
+ UINT32 screen_update_pc1350(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -44,7 +45,7 @@ MACHINE_START( pc1350 );
DECLARE_READ8_HANDLER(pc1350_lcd_read);
DECLARE_WRITE8_HANDLER(pc1350_lcd_write);
-SCREEN_UPDATE_IND16( pc1350 );
+
int pc1350_keyboard_line_r(running_machine &machine);
diff --git a/src/mess/includes/pc1401.h b/src/mess/includes/pc1401.h
index ad11249aa1a..3be86862f39 100644
--- a/src/mess/includes/pc1401.h
+++ b/src/mess/includes/pc1401.h
@@ -26,6 +26,7 @@ public:
int m_power;
UINT8 m_reg[0x100];
DECLARE_DRIVER_INIT(pc1401);
+ UINT32 screen_update_pc1401(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -46,7 +47,7 @@ MACHINE_START( pc1401 );
DECLARE_READ8_HANDLER(pc1401_lcd_read);
DECLARE_WRITE8_HANDLER(pc1401_lcd_write);
-SCREEN_UPDATE_IND16( pc1401 );
+
#endif /* PC1401_H_ */
diff --git a/src/mess/includes/pc1403.h b/src/mess/includes/pc1403.h
index 7fb18a7fe1e..b7b2494d36c 100644
--- a/src/mess/includes/pc1403.h
+++ b/src/mess/includes/pc1403.h
@@ -29,6 +29,7 @@ public:
UINT8 m_reg[0x100];
DECLARE_DRIVER_INIT(pc1403);
+ UINT32 screen_update_pc1403(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -51,7 +52,7 @@ DECLARE_WRITE8_HANDLER(pc1403_asic_write);
/*----------- defined in video/pc1403.c -----------*/
VIDEO_START( pc1403 );
-SCREEN_UPDATE_IND16( pc1403 );
+
DECLARE_READ8_HANDLER(pc1403_lcd_read);
DECLARE_WRITE8_HANDLER(pc1403_lcd_write);
diff --git a/src/mess/includes/pc1512.h b/src/mess/includes/pc1512.h
index 1a1598746b6..397aeac27e8 100644
--- a/src/mess/includes/pc1512.h
+++ b/src/mess/includes/pc1512.h
@@ -210,6 +210,7 @@ public:
// sound state
int m_speaker_drive;
+ UINT32 screen_update_pc1512(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
class pc1640_state : public pc1512_state
diff --git a/src/mess/includes/pcw.h b/src/mess/includes/pcw.h
index 1b2a20a4b02..e70599b0e72 100644
--- a/src/mess/includes/pcw.h
+++ b/src/mess/includes/pcw.h
@@ -99,6 +99,8 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_pcw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_pcw_printer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/pcw16.h b/src/mess/includes/pcw16.h
index 5580c195fd2..f97bba6027a 100644
--- a/src/mess/includes/pcw16.h
+++ b/src/mess/includes/pcw16.h
@@ -98,6 +98,7 @@ public:
virtual void machine_start();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_pcw16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/pdp1.h b/src/mess/includes/pdp1.h
index 216076b13ab..4a157838ee2 100644
--- a/src/mess/includes/pdp1.h
+++ b/src/mess/includes/pdp1.h
@@ -259,6 +259,8 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_pdp1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_pdp1(screen_device &screen, bool state);
};
@@ -266,8 +268,8 @@ public:
/*----------- defined in video/pdp1.c -----------*/
-SCREEN_VBLANK( pdp1 );
-SCREEN_UPDATE_IND16( pdp1 );
+
+
void pdp1_plot(running_machine &machine, int x, int y);
void pdp1_typewriter_drawchar(running_machine &machine, int character);
diff --git a/src/mess/includes/pet.h b/src/mess/includes/pet.h
index 42e6b5b4a99..cbae4639734 100644
--- a/src/mess/includes/pet.h
+++ b/src/mess/includes/pet.h
@@ -55,6 +55,7 @@ public:
virtual void machine_reset();
virtual void palette_init();
DECLARE_VIDEO_START(pet_crtc);
+ UINT32 screen_update_pet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/pet.c -----------*/
@@ -63,7 +64,7 @@ public:
void pet_vh_init (running_machine &machine);
void pet80_vh_init (running_machine &machine);
void superpet_vh_init (running_machine &machine);
-SCREEN_UPDATE_IND16( pet );
+
MC6845_UPDATE_ROW( pet40_update_row );
MC6845_UPDATE_ROW( pet80_update_row );
WRITE_LINE_DEVICE_HANDLER( pet_display_enable_changed );
diff --git a/src/mess/includes/pk8020.h b/src/mess/includes/pk8020.h
index f546c01dd79..dc5e13aede3 100644
--- a/src/mess/includes/pk8020.h
+++ b/src/mess/includes/pk8020.h
@@ -44,6 +44,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_pk8020(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/poly88.h b/src/mess/includes/poly88.h
index de84f09a430..946041eb36c 100644
--- a/src/mess/includes/poly88.h
+++ b/src/mess/includes/poly88.h
@@ -33,6 +33,7 @@ public:
DECLARE_DRIVER_INIT(poly88);
virtual void machine_reset();
virtual void video_start();
+ UINT32 screen_update_poly88(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/pp01.h b/src/mess/includes/pp01.h
index 8cead57cbdf..8172fe8918b 100644
--- a/src/mess/includes/pp01.h
+++ b/src/mess/includes/pp01.h
@@ -33,6 +33,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_pp01(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/primo.h b/src/mess/includes/primo.h
index 9dad8bc5259..a6c33493714 100644
--- a/src/mess/includes/primo.h
+++ b/src/mess/includes/primo.h
@@ -33,6 +33,7 @@ public:
DECLARE_DRIVER_INIT(primo32);
virtual void machine_reset();
DECLARE_MACHINE_RESET(primob);
+ UINT32 screen_update_primo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/px8.h b/src/mess/includes/px8.h
index 9a2d62117fb..ccb1c328afa 100644
--- a/src/mess/includes/px8.h
+++ b/src/mess/includes/px8.h
@@ -78,6 +78,7 @@ public:
/* keyboard state */
int m_ksc; /* keyboard scan column */
virtual void palette_init();
+ UINT32 screen_update_px8(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
#endif
diff --git a/src/mess/includes/radio86.h b/src/mess/includes/radio86.h
index 474d53c7e7f..a9024886d76 100644
--- a/src/mess/includes/radio86.h
+++ b/src/mess/includes/radio86.h
@@ -38,6 +38,7 @@ public:
DECLARE_DRIVER_INIT(radio86);
DECLARE_MACHINE_RESET(radio86);
DECLARE_PALETTE_INIT(radio86);
+ UINT32 screen_update_radio86(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -49,10 +50,6 @@ INPUT_PORTS_EXTERN( ms7007 );
/*----------- defined in machine/radio86.c -----------*/
-extern MACHINE_RESET( radio86 );
-
-
-
extern const i8255_interface radio86_ppi8255_interface_1;
extern const i8255_interface radio86_ppi8255_interface_2;
extern const i8255_interface rk7007_ppi8255_interface;
@@ -78,7 +75,4 @@ extern I8275_DISPLAY_PIXELS(partner_display_pixels);
extern I8275_DISPLAY_PIXELS(mikrosha_display_pixels);
extern I8275_DISPLAY_PIXELS(apogee_display_pixels);
-extern SCREEN_UPDATE_IND16( radio86 );
-extern PALETTE_INIT( radio86 );
-
#endif /* radio86_H_ */
diff --git a/src/mess/includes/rm380z.h b/src/mess/includes/rm380z.h
index add77a280a0..f5e9de2cf65 100644
--- a/src/mess/includes/rm380z.h
+++ b/src/mess/includes/rm380z.h
@@ -124,6 +124,7 @@ public:
void config_memory_map();
int keyboard_decode();
void update_screen(bitmap_ind16 &bitmap);
+ UINT32 screen_update_rm380z(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/rmnimbus.h b/src/mess/includes/rmnimbus.h
index e70dd9d6b83..c7565a5a2d1 100644
--- a/src/mess/includes/rmnimbus.h
+++ b/src/mess/includes/rmnimbus.h
@@ -226,6 +226,8 @@ public:
virtual void video_start();
virtual void video_reset();
virtual void palette_init();
+ UINT32 screen_update_nimbus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_nimbus(screen_device &screen, bool state);
};
@@ -436,8 +438,8 @@ WRITE_LINE_DEVICE_HANDLER(nimbus_ack_w);
-SCREEN_VBLANK( nimbus );
-SCREEN_UPDATE_IND16( nimbus );
+
+
#define RED 0
diff --git a/src/mess/includes/sapi1.h b/src/mess/includes/sapi1.h
index 2b5505e07ed..0325194c57b 100644
--- a/src/mess/includes/sapi1.h
+++ b/src/mess/includes/sapi1.h
@@ -42,6 +42,8 @@ public:
DECLARE_VIDEO_START(sapi1);
DECLARE_MACHINE_RESET(sapizps3);
DECLARE_VIDEO_START(sapizps3);
+ UINT32 screen_update_sapi1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_sapizps3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
/*----------- defined in video/sapi1.c -----------*/
diff --git a/src/mess/includes/sms.h b/src/mess/includes/sms.h
index f1421bd90ef..aa85e69253f 100644
--- a/src/mess/includes/sms.h
+++ b/src/mess/includes/sms.h
@@ -181,6 +181,9 @@ public:
DECLARE_MACHINE_RESET(sms);
DECLARE_VIDEO_START(gamegear);
DECLARE_VIDEO_START(sms1);
+ UINT32 screen_update_gamegear(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_sms(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_sms1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -212,8 +215,8 @@ DEVICE_IMAGE_LOAD( sms_cart );
-SCREEN_UPDATE_RGB32( sms1 );
-SCREEN_UPDATE_RGB32( sms );
-SCREEN_UPDATE_RGB32( gamegear );
+
+
+
#endif /* SMS_H_ */
diff --git a/src/mess/includes/special.h b/src/mess/includes/special.h
index f7b3339b4bf..38f74b3dc73 100644
--- a/src/mess/includes/special.h
+++ b/src/mess/includes/special.h
@@ -90,6 +90,10 @@ public:
DECLARE_MACHINE_RESET(specimx);
DECLARE_VIDEO_START(specimx);
DECLARE_PALETTE_INIT(specimx);
+ UINT32 screen_update_special(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_erik(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_specialp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_specimx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -108,16 +112,16 @@ extern const i8255_interface specialist_ppi8255_interface;
/*----------- defined in video/special.c -----------*/
-SCREEN_UPDATE_IND16( special );
-SCREEN_UPDATE_IND16( specialp );
-SCREEN_UPDATE_IND16( specimx );
-SCREEN_UPDATE_IND16( erik );
+
+
+
+
diff --git a/src/mess/includes/spectrum.h b/src/mess/includes/spectrum.h
index c06f582ba88..bd8d29ee101 100644
--- a/src/mess/includes/spectrum.h
+++ b/src/mess/includes/spectrum.h
@@ -119,6 +119,10 @@ public:
DECLARE_MACHINE_RESET(spectrum_plus3);
DECLARE_MACHINE_RESET(ts2068);
DECLARE_VIDEO_START(ts2068);
+ UINT32 screen_update_spectrum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_tc2048(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_ts2068(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_spectrum(screen_device &screen, bool state);
};
@@ -152,8 +156,8 @@ void ts2068_update_memory(running_machine &machine);
-SCREEN_UPDATE_IND16( spectrum );
-SCREEN_VBLANK( spectrum );
+
+
void spectrum_border_force_redraw (running_machine &machine);
void spectrum_border_set_last_color (running_machine &machine, int NewColor);
@@ -173,8 +177,8 @@ EVENT_LIST_ITEM *spectrum_EventList_GetFirstItem(running_machine &machine);
/*----------- defined in video/timex.c -----------*/
-SCREEN_UPDATE_IND16( ts2068 );
-SCREEN_UPDATE_IND16( tc2048 );
+
+
#endif /* __SPECTRUM_H__ */
diff --git a/src/mess/includes/ssystem3.h b/src/mess/includes/ssystem3.h
index 41955981c84..719f0ebe809 100644
--- a/src/mess/includes/ssystem3.h
+++ b/src/mess/includes/ssystem3.h
@@ -47,6 +47,7 @@ public:
DECLARE_DRIVER_INIT(ssystem3);
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_ssystem3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/super80.h b/src/mess/includes/super80.h
index 6bbb60d12cb..ca64d7ba2ca 100644
--- a/src/mess/includes/super80.h
+++ b/src/mess/includes/super80.h
@@ -80,20 +80,26 @@ public:
DECLARE_VIDEO_START(super80);
DECLARE_VIDEO_START(super80v);
DECLARE_PALETTE_INIT(super80m);
+ UINT32 screen_update_super80(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_super80v(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_super80d(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_super80e(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_super80m(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_super80m(screen_device &screen, bool state);
};
/*----------- defined in video/super80.c -----------*/
-SCREEN_UPDATE_IND16( super80 );
-SCREEN_UPDATE_IND16( super80d );
-SCREEN_UPDATE_IND16( super80e );
-SCREEN_UPDATE_IND16( super80m );
-SCREEN_VBLANK( super80m );
-SCREEN_UPDATE_RGB32( super80v );
+
+
+
+
+
+
MC6845_UPDATE_ROW( super80v_update_row );
/*----------- defined in machine/super80.c -----------*/
diff --git a/src/mess/includes/svision.h b/src/mess/includes/svision.h
index d30c399d603..8553d3a45b3 100644
--- a/src/mess/includes/svision.h
+++ b/src/mess/includes/svision.h
@@ -54,6 +54,8 @@ public:
DECLARE_PALETTE_INIT(svisionp);
DECLARE_PALETTE_INIT(svisionn);
DECLARE_MACHINE_RESET(tvlink);
+ UINT32 screen_update_svision(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_tvlink(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/tdv2324.h b/src/mess/includes/tdv2324.h
index d89f83b3817..6e443fd6dfc 100644
--- a/src/mess/includes/tdv2324.h
+++ b/src/mess/includes/tdv2324.h
@@ -79,6 +79,7 @@ public:
// video state
required_shared_ptr<UINT8> m_video_ram;
+ UINT32 screen_update_tdv2324(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/ti85.h b/src/mess/includes/ti85.h
index 41483e50409..7712ed4c5d6 100644
--- a/src/mess/includes/ti85.h
+++ b/src/mess/includes/ti85.h
@@ -101,6 +101,7 @@ public:
DECLARE_PALETTE_INIT(ti82);
DECLARE_MACHINE_START(ti86);
DECLARE_MACHINE_START(ti83p);
+ UINT32 screen_update_ti85(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -120,7 +121,7 @@ SNAPSHOT_LOAD( ti8x );
/*----------- defined in video/ti85.c -----------*/
-SCREEN_UPDATE_IND16( ti85 );
+
diff --git a/src/mess/includes/trs80.h b/src/mess/includes/trs80.h
index becd393d721..e7c79e06175 100644
--- a/src/mess/includes/trs80.h
+++ b/src/mess/includes/trs80.h
@@ -116,6 +116,12 @@ public:
DECLARE_MACHINE_RESET(trs80m4);
DECLARE_MACHINE_RESET(lnw80);
DECLARE_PALETTE_INIT(lnw80);
+ UINT32 screen_update_trs80(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_trs80m4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_ht1080z(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_lnw80(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_radionic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ UINT32 screen_update_meritum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -137,12 +143,12 @@ INTERRUPT_GEN( trs80_fdc_interrupt );
/*----------- defined in video/trs80.c -----------*/
-SCREEN_UPDATE_IND16( trs80 );
-SCREEN_UPDATE_IND16( ht1080z );
-SCREEN_UPDATE_IND16( meritum );
-SCREEN_UPDATE_IND16( lnw80 );
-SCREEN_UPDATE_IND16( radionic );
-SCREEN_UPDATE_IND16( trs80m4 );
+
+
+
+
+
+
diff --git a/src/mess/includes/tx0.h b/src/mess/includes/tx0.h
index 9b96d1872c0..076c8fbe391 100644
--- a/src/mess/includes/tx0.h
+++ b/src/mess/includes/tx0.h
@@ -150,14 +150,16 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_tx0(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
+ void screen_eof_tx0(screen_device &screen, bool state);
};
/*----------- defined in video/tx0.c -----------*/
-SCREEN_VBLANK( tx0 );
-SCREEN_UPDATE_IND16( tx0 );
+
+
void tx0_plot(running_machine &machine, int x, int y);
void tx0_typewriter_drawchar(running_machine &machine, int character);
diff --git a/src/mess/includes/ut88.h b/src/mess/includes/ut88.h
index 2648dd97070..6e5ff167450 100644
--- a/src/mess/includes/ut88.h
+++ b/src/mess/includes/ut88.h
@@ -47,6 +47,7 @@ public:
DECLARE_VIDEO_START(ut88);
DECLARE_MACHINE_START(ut88mini);
DECLARE_MACHINE_RESET(ut88mini);
+ UINT32 screen_update_ut88(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/vc4000.h b/src/mess/includes/vc4000.h
index 3610a15669b..0b53af7497b 100644
--- a/src/mess/includes/vc4000.h
+++ b/src/mess/includes/vc4000.h
@@ -96,6 +96,7 @@ public:
optional_device<cassette_image_device> m_cass;
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_vc4000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/vector06.h b/src/mess/includes/vector06.h
index 265c392df54..b7ce257616b 100644
--- a/src/mess/includes/vector06.h
+++ b/src/mess/includes/vector06.h
@@ -63,6 +63,7 @@ public:
virtual void machine_reset();
virtual void video_start();
virtual void palette_init();
+ UINT32 screen_update_vector06(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/vixen.h b/src/mess/includes/vixen.h
index b7cfcc3c9b9..c5e9e1f3e58 100644
--- a/src/mess/includes/vixen.h
+++ b/src/mess/includes/vixen.h
@@ -104,6 +104,7 @@ public:
const UINT8 *m_sync_rom;
const UINT8 *m_char_rom;
DECLARE_DRIVER_INIT(vixen);
+ UINT32 screen_update_vixen(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
#endif
diff --git a/src/mess/includes/vtech2.h b/src/mess/includes/vtech2.h
index 3445ca3905f..56b466b5ec2 100644
--- a/src/mess/includes/vtech2.h
+++ b/src/mess/includes/vtech2.h
@@ -54,6 +54,7 @@ public:
virtual void palette_init();
DECLARE_MACHINE_RESET(laser500);
DECLARE_MACHINE_RESET(laser700);
+ UINT32 screen_update_laser(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
diff --git a/src/mess/includes/x1.h b/src/mess/includes/x1.h
index a87a96ba33c..13f7fbf9859 100644
--- a/src/mess/includes/x1.h
+++ b/src/mess/includes/x1.h
@@ -199,6 +199,7 @@ public:
DECLARE_VIDEO_START(x1);
DECLARE_PALETTE_INIT(x1);
DECLARE_MACHINE_RESET(x1turbo);
+ UINT32 screen_update_x1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
};
@@ -206,7 +207,7 @@ public:
/*----------- shared with x1twin.c -----------*/
-SCREEN_UPDATE_RGB32( x1 );
+
TIMER_DEVICE_CALLBACK(x1_keyboard_callback);
TIMER_CALLBACK(x1_rtc_increment);
diff --git a/src/mess/includes/x68k.h b/src/mess/includes/x68k.h
index 8a764766e72..c19c7b4ef5c 100644
--- a/src/mess/includes/x68k.h
+++ b/src/mess/includes/x68k.h
@@ -266,6 +266,7 @@ public:
DECLARE_MACHINE_START(x68000);
DECLARE_VIDEO_START(x68000);
DECLARE_PALETTE_INIT(x68000);
+ UINT32 screen_update_x68000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect);
};
@@ -300,7 +301,7 @@ DECLARE_WRITE32_HANDLER( x68k_gvram32_w );
DECLARE_READ32_HANDLER( x68k_gvram32_r );
DECLARE_WRITE32_HANDLER( x68k_tvram32_w );
DECLARE_READ32_HANDLER( x68k_tvram32_r );
-SCREEN_UPDATE_IND16( x68000 );
+
diff --git a/src/mess/includes/zx.h b/src/mess/includes/zx.h
index 10bcc3e5ddd..92359f4b27b 100644
--- a/src/mess/includes/zx.h
+++ b/src/mess/includes/zx.h
@@ -57,6 +57,7 @@ public:
DECLARE_PALETTE_INIT(ts1000);
DECLARE_MACHINE_RESET(pc8300);
DECLARE_MACHINE_RESET(pow3000);
+ void screen_eof_zx(screen_device &screen, bool state);
};
@@ -69,7 +70,7 @@ public:
/*----------- defined in video/zx.c -----------*/
-SCREEN_VBLANK( zx );
+
void zx_ula_bkgnd(running_machine &machine, int color);
void zx_ula_r(running_machine &machine, int offs, const char *region, const UINT8 param);
diff --git a/src/mess/machine/amstrad.c b/src/mess/machine/amstrad.c
index f682f042217..c5d2fac1988 100644
--- a/src/mess/machine/amstrad.c
+++ b/src/mess/machine/amstrad.c
@@ -1073,10 +1073,9 @@ VIDEO_START_MEMBER(amstrad_state,amstrad)
}
-SCREEN_UPDATE_IND16( amstrad )
+UINT32 amstrad_state::screen_update_amstrad(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- amstrad_state *state = screen.machine().driver_data<amstrad_state>();
- copybitmap( bitmap, *state->m_gate_array.bitmap, 0, 0, 0, 0, cliprect );
+ copybitmap( bitmap, *m_gate_array.bitmap, 0, 0, 0, 0, cliprect );
return 0;
}
@@ -2418,10 +2417,10 @@ static void kccomp_reset_machine(running_machine &machine)
}
-SCREEN_VBLANK( amstrad )
+void amstrad_state::screen_eof_amstrad(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
cpc_multiface2_device* mface2 = dynamic_cast<cpc_multiface2_device*>(get_expansion_device(screen.machine(),"multiface2"));
diff --git a/src/mess/machine/concept.c b/src/mess/machine/concept.c
index ff5c244b2ce..f7c5596b619 100644
--- a/src/mess/machine/concept.c
+++ b/src/mess/machine/concept.c
@@ -99,11 +99,10 @@ void concept_state::video_start()
{
}
-SCREEN_UPDATE_IND16(concept)
+UINT32 concept_state::screen_update_concept(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
/* resolution is 720*560 */
- concept_state *state = screen.machine().driver_data<concept_state>();
- UINT16 *videoram = state->m_videoram;
+ UINT16 *videoram = m_videoram;
int x, y;
UINT16 *line;
diff --git a/src/mess/machine/gamepock.c b/src/mess/machine/gamepock.c
index 5d39d6d59b1..dca3cb379a2 100644
--- a/src/mess/machine/gamepock.c
+++ b/src/mess/machine/gamepock.c
@@ -138,73 +138,72 @@ void gamepock_state::machine_reset()
hd44102ch_init( 2 );
}
-SCREEN_UPDATE_IND16( gamepock )
+UINT32 gamepock_state::screen_update_gamepock(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- gamepock_state *state = screen.machine().driver_data<gamepock_state>();
UINT8 ad;
int i,j;
/* Handle HD44102CH #0 */
- ad = state->m_hd44102ch[0].start_page;
+ ad = m_hd44102ch[0].start_page;
for ( i = 0; i < 4; i++ )
{
for ( j = 0; j < 50; j++ )
{
- bitmap.pix16(i * 8 + 0, 49 - j ) = ( state->m_hd44102ch[0].ram[ad+j] & 0x01 ) ? 0 : 1;
- bitmap.pix16(i * 8 + 1, 49 - j ) = ( state->m_hd44102ch[0].ram[ad+j] & 0x02 ) ? 0 : 1;
- bitmap.pix16(i * 8 + 2, 49 - j ) = ( state->m_hd44102ch[0].ram[ad+j] & 0x04 ) ? 0 : 1;
- bitmap.pix16(i * 8 + 3, 49 - j ) = ( state->m_hd44102ch[0].ram[ad+j] & 0x08 ) ? 0 : 1;
- bitmap.pix16(i * 8 + 4, 49 - j ) = ( state->m_hd44102ch[0].ram[ad+j] & 0x10 ) ? 0 : 1;
- bitmap.pix16(i * 8 + 5, 49 - j ) = ( state->m_hd44102ch[0].ram[ad+j] & 0x20 ) ? 0 : 1;
- bitmap.pix16(i * 8 + 6, 49 - j ) = ( state->m_hd44102ch[0].ram[ad+j] & 0x40 ) ? 0 : 1;
- bitmap.pix16(i * 8 + 7, 49 - j ) = ( state->m_hd44102ch[0].ram[ad+j] & 0x80 ) ? 0 : 1;
+ bitmap.pix16(i * 8 + 0, 49 - j ) = ( m_hd44102ch[0].ram[ad+j] & 0x01 ) ? 0 : 1;
+ bitmap.pix16(i * 8 + 1, 49 - j ) = ( m_hd44102ch[0].ram[ad+j] & 0x02 ) ? 0 : 1;
+ bitmap.pix16(i * 8 + 2, 49 - j ) = ( m_hd44102ch[0].ram[ad+j] & 0x04 ) ? 0 : 1;
+ bitmap.pix16(i * 8 + 3, 49 - j ) = ( m_hd44102ch[0].ram[ad+j] & 0x08 ) ? 0 : 1;
+ bitmap.pix16(i * 8 + 4, 49 - j ) = ( m_hd44102ch[0].ram[ad+j] & 0x10 ) ? 0 : 1;
+ bitmap.pix16(i * 8 + 5, 49 - j ) = ( m_hd44102ch[0].ram[ad+j] & 0x20 ) ? 0 : 1;
+ bitmap.pix16(i * 8 + 6, 49 - j ) = ( m_hd44102ch[0].ram[ad+j] & 0x40 ) ? 0 : 1;
+ bitmap.pix16(i * 8 + 7, 49 - j ) = ( m_hd44102ch[0].ram[ad+j] & 0x80 ) ? 0 : 1;
}
ad += 0x40;
}
/* Handle HD44102CH #1 */
- ad = state->m_hd44102ch[1].start_page;
+ ad = m_hd44102ch[1].start_page;
for ( i = 4; i < 8; i++ )
{
for ( j = 0; j < 50; j++ )
{
- bitmap.pix16(i * 8 + 0, j ) = ( state->m_hd44102ch[1].ram[ad+j] & 0x01 ) ? 0 : 1;
- bitmap.pix16(i * 8 + 1, j ) = ( state->m_hd44102ch[1].ram[ad+j] & 0x02 ) ? 0 : 1;
- bitmap.pix16(i * 8 + 2, j ) = ( state->m_hd44102ch[1].ram[ad+j] & 0x04 ) ? 0 : 1;
- bitmap.pix16(i * 8 + 3, j ) = ( state->m_hd44102ch[1].ram[ad+j] & 0x08 ) ? 0 : 1;
- bitmap.pix16(i * 8 + 4, j ) = ( state->m_hd44102ch[1].ram[ad+j] & 0x10 ) ? 0 : 1;
- bitmap.pix16(i * 8 + 5, j ) = ( state->m_hd44102ch[1].ram[ad+j] & 0x20 ) ? 0 : 1;
- bitmap.pix16(i * 8 + 6, j ) = ( state->m_hd44102ch[1].ram[ad+j] & 0x40 ) ? 0 : 1;
- bitmap.pix16(i * 8 + 7, j ) = ( state->m_hd44102ch[1].ram[ad+j] & 0x80 ) ? 0 : 1;
+ bitmap.pix16(i * 8 + 0, j ) = ( m_hd44102ch[1].ram[ad+j] & 0x01 ) ? 0 : 1;
+ bitmap.pix16(i * 8 + 1, j ) = ( m_hd44102ch[1].ram[ad+j] & 0x02 ) ? 0 : 1;
+ bitmap.pix16(i * 8 + 2, j ) = ( m_hd44102ch[1].ram[ad+j] & 0x04 ) ? 0 : 1;
+ bitmap.pix16(i * 8 + 3, j ) = ( m_hd44102ch[1].ram[ad+j] & 0x08 ) ? 0 : 1;
+ bitmap.pix16(i * 8 + 4, j ) = ( m_hd44102ch[1].ram[ad+j] & 0x10 ) ? 0 : 1;
+ bitmap.pix16(i * 8 + 5, j ) = ( m_hd44102ch[1].ram[ad+j] & 0x20 ) ? 0 : 1;
+ bitmap.pix16(i * 8 + 6, j ) = ( m_hd44102ch[1].ram[ad+j] & 0x40 ) ? 0 : 1;
+ bitmap.pix16(i * 8 + 7, j ) = ( m_hd44102ch[1].ram[ad+j] & 0x80 ) ? 0 : 1;
}
ad += 0x40;
}
/* Handle HD44102CH #2 */
- ad = state->m_hd44102ch[2].start_page;
+ ad = m_hd44102ch[2].start_page;
for ( i = 0; i < 4; i++ )
{
for ( j = 0; j < 25; j++ )
{
- bitmap.pix16(i * 8 + 0, 50 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x01 ) ? 0 : 1;
- bitmap.pix16(i * 8 + 1, 50 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x02 ) ? 0 : 1;
- bitmap.pix16(i * 8 + 2, 50 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x04 ) ? 0 : 1;
- bitmap.pix16(i * 8 + 3, 50 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x08 ) ? 0 : 1;
- bitmap.pix16(i * 8 + 4, 50 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x10 ) ? 0 : 1;
- bitmap.pix16(i * 8 + 5, 50 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x20 ) ? 0 : 1;
- bitmap.pix16(i * 8 + 6, 50 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x40 ) ? 0 : 1;
- bitmap.pix16(i * 8 + 7, 50 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x80 ) ? 0 : 1;
+ bitmap.pix16(i * 8 + 0, 50 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x01 ) ? 0 : 1;
+ bitmap.pix16(i * 8 + 1, 50 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x02 ) ? 0 : 1;
+ bitmap.pix16(i * 8 + 2, 50 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x04 ) ? 0 : 1;
+ bitmap.pix16(i * 8 + 3, 50 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x08 ) ? 0 : 1;
+ bitmap.pix16(i * 8 + 4, 50 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x10 ) ? 0 : 1;
+ bitmap.pix16(i * 8 + 5, 50 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x20 ) ? 0 : 1;
+ bitmap.pix16(i * 8 + 6, 50 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x40 ) ? 0 : 1;
+ bitmap.pix16(i * 8 + 7, 50 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x80 ) ? 0 : 1;
}
for ( j = 25; j < 50; j++ )
{
- bitmap.pix16(32 + i * 8 + 0, 25 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x01 ) ? 0 : 1;
- bitmap.pix16(32 + i * 8 + 1, 25 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x02 ) ? 0 : 1;
- bitmap.pix16(32 + i * 8 + 2, 25 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x04 ) ? 0 : 1;
- bitmap.pix16(32 + i * 8 + 3, 25 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x08 ) ? 0 : 1;
- bitmap.pix16(32 + i * 8 + 4, 25 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x10 ) ? 0 : 1;
- bitmap.pix16(32 + i * 8 + 5, 25 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x20 ) ? 0 : 1;
- bitmap.pix16(32 + i * 8 + 6, 25 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x40 ) ? 0 : 1;
- bitmap.pix16(32 + i * 8 + 7, 25 + j ) = ( state->m_hd44102ch[2].ram[ad+j] & 0x80 ) ? 0 : 1;
+ bitmap.pix16(32 + i * 8 + 0, 25 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x01 ) ? 0 : 1;
+ bitmap.pix16(32 + i * 8 + 1, 25 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x02 ) ? 0 : 1;
+ bitmap.pix16(32 + i * 8 + 2, 25 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x04 ) ? 0 : 1;
+ bitmap.pix16(32 + i * 8 + 3, 25 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x08 ) ? 0 : 1;
+ bitmap.pix16(32 + i * 8 + 4, 25 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x10 ) ? 0 : 1;
+ bitmap.pix16(32 + i * 8 + 5, 25 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x20 ) ? 0 : 1;
+ bitmap.pix16(32 + i * 8 + 6, 25 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x40 ) ? 0 : 1;
+ bitmap.pix16(32 + i * 8 + 7, 25 + j ) = ( m_hd44102ch[2].ram[ad+j] & 0x80 ) ? 0 : 1;
}
ad += 0x40;
}
diff --git a/src/mess/machine/lisa.c b/src/mess/machine/lisa.c
index f993ee07d86..ff26992f048 100644
--- a/src/mess/machine/lisa.c
+++ b/src/mess/machine/lisa.c
@@ -821,18 +821,17 @@ void lisa_state::video_start()
/*
Video update
*/
-SCREEN_UPDATE_IND16( lisa )
+UINT32 lisa_state::screen_update_lisa(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- lisa_state *state = screen.machine().driver_data<lisa_state>();
UINT16 *v;
int x, y;
/* resolution is 720*364 on lisa, vs 608*431 on mac XL */
- int resx = (state->m_features.has_mac_xl_video) ? 608 : 720; /* width */
- int resy = (state->m_features.has_mac_xl_video) ? 431 : 364; /* height */
+ int resx = (m_features.has_mac_xl_video) ? 608 : 720; /* width */
+ int resy = (m_features.has_mac_xl_video) ? 431 : 364; /* height */
UINT8 line_buffer[720];
- v = state->m_videoram_ptr;
+ v = m_videoram_ptr;
for (y = 0; y < resy; y++)
{
diff --git a/src/mess/machine/sms.c b/src/mess/machine/sms.c
index 5b71684f899..57b9b9edfbd 100644
--- a/src/mess/machine/sms.c
+++ b/src/mess/machine/sms.c
@@ -2184,37 +2184,36 @@ VIDEO_START_MEMBER(sms_state,sms1)
save_item(NAME(m_prevright_bitmap));
}
-SCREEN_UPDATE_RGB32( sms1 )
+UINT32 sms_state::screen_update_sms1(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- sms_state *state = screen.machine().driver_data<sms_state>();
UINT8 sscope = 0;
UINT8 sscope_binocular_hack;
UINT8 occluded_view = 0;
- if (&screen != state->m_main_scr)
+ if (&screen != m_main_scr)
{
sscope = screen.machine().root_device().ioport("SEGASCOPE")->read_safe(0x00);
if (!sscope)
{
occluded_view = 1;
}
- else if (&screen == state->m_left_lcd)
+ else if (&screen == m_left_lcd)
{
// with SegaScope, sscope_state 0 = left screen OFF, right screen ON
- if (!(state->m_sscope_state & 0x01))
+ if (!(m_sscope_state & 0x01))
occluded_view = 1;
}
else // it's right LCD
{
// with SegaScope, sscope_state 1 = left screen ON, right screen OFF
- if (state->m_sscope_state & 0x01)
+ if (m_sscope_state & 0x01)
occluded_view = 1;
}
}
if (!occluded_view)
{
- state->m_vdp->screen_update(screen, bitmap, cliprect);
+ m_vdp->screen_update(screen, bitmap, cliprect);
// HACK: fake 3D->2D handling (if enabled, it repeats each frame twice on the selected lens)
// save a copy of current bitmap for the binocular hack
@@ -2222,15 +2221,15 @@ SCREEN_UPDATE_RGB32( sms1 )
{
sscope_binocular_hack = screen.machine().root_device().ioport("SSCOPE_BINOCULAR")->read_safe(0x00);
- if (&screen == state->m_left_lcd)
+ if (&screen == m_left_lcd)
{
if (sscope_binocular_hack & 0x01)
- copybitmap(state->m_prevleft_bitmap, bitmap, 0, 0, 0, 0, cliprect);
+ copybitmap(m_prevleft_bitmap, bitmap, 0, 0, 0, 0, cliprect);
}
else // it's right LCD
{
if (sscope_binocular_hack & 0x02)
- copybitmap(state->m_prevright_bitmap, bitmap, 0, 0, 0, 0, cliprect);
+ copybitmap(m_prevright_bitmap, bitmap, 0, 0, 0, 0, cliprect);
}
}
}
@@ -2242,11 +2241,11 @@ SCREEN_UPDATE_RGB32( sms1 )
{
sscope_binocular_hack = screen.machine().root_device().ioport("SSCOPE_BINOCULAR")->read_safe(0x00);
- if (&screen == state->m_left_lcd)
+ if (&screen == m_left_lcd)
{
if (sscope_binocular_hack & 0x01)
{
- copybitmap(bitmap, state->m_prevleft_bitmap, 0, 0, 0, 0, cliprect);
+ copybitmap(bitmap, m_prevleft_bitmap, 0, 0, 0, 0, cliprect);
return 0;
}
}
@@ -2254,7 +2253,7 @@ SCREEN_UPDATE_RGB32( sms1 )
{
if (sscope_binocular_hack & 0x02)
{
- copybitmap(bitmap, state->m_prevright_bitmap, 0, 0, 0, 0, cliprect);
+ copybitmap(bitmap, m_prevright_bitmap, 0, 0, 0, 0, cliprect);
return 0;
}
}
@@ -2265,10 +2264,9 @@ SCREEN_UPDATE_RGB32( sms1 )
return 0;
}
-SCREEN_UPDATE_RGB32( sms )
+UINT32 sms_state::screen_update_sms(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- sms_state *state = screen.machine().driver_data<sms_state>();
- state->m_vdp->screen_update(screen, bitmap, cliprect);
+ m_vdp->screen_update(screen, bitmap, cliprect);
return 0;
}
@@ -2280,14 +2278,13 @@ VIDEO_START_MEMBER(sms_state,gamegear)
save_item(NAME(m_prev_bitmap));
}
-SCREEN_UPDATE_RGB32( gamegear )
+UINT32 sms_state::screen_update_gamegear(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- sms_state *state = screen.machine().driver_data<sms_state>();
int width = screen.width();
int height = screen.height();
int x, y;
- bitmap_rgb32 &vdp_bitmap = state->m_vdp->get_bitmap();
+ bitmap_rgb32 &vdp_bitmap = m_vdp->get_bitmap();
// HACK: fake LCD persistence effect
// (it would be better to generalize this in the core, to be used for all LCD systems)
@@ -2295,7 +2292,7 @@ SCREEN_UPDATE_RGB32( gamegear )
{
UINT32 *linedst = &bitmap.pix32(y);
UINT32 *line0 = &vdp_bitmap.pix32(y);
- UINT32 *line1 = &state->m_prev_bitmap.pix32(y);
+ UINT32 *line1 = &m_prev_bitmap.pix32(y);
for (x = 0; x < width; x++)
{
UINT32 color0 = line0[x];
@@ -2312,7 +2309,7 @@ SCREEN_UPDATE_RGB32( gamegear )
linedst[x] = (r << 16) | (g << 8) | b;
}
}
- copybitmap(state->m_prev_bitmap, vdp_bitmap, 0, 0, 0, 0, cliprect);
+ copybitmap(m_prev_bitmap, vdp_bitmap, 0, 0, 0, 0, cliprect);
return 0;
}
diff --git a/src/mess/video/a7800.c b/src/mess/video/a7800.c
index 0e05127d4cb..ddbd97463d2 100644
--- a/src/mess/video/a7800.c
+++ b/src/mess/video/a7800.c
@@ -428,11 +428,10 @@ TIMER_DEVICE_CALLBACK( a7800_interrupt )
***************************************************************************/
/* This routine is called at the start of vblank to refresh the screen */
-SCREEN_UPDATE_IND16( a7800 )
+UINT32 a7800_state::screen_update_a7800(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- a7800_state *state = screen.machine().driver_data<a7800_state>();
- state->m_maria_scanline = 0;
- copybitmap(bitmap, state->m_bitmap, 0, 0, 0, 0, cliprect);
+ m_maria_scanline = 0;
+ copybitmap(bitmap, m_bitmap, 0, 0, 0, 0, cliprect);
return 0;
}
diff --git a/src/mess/video/ac1.c b/src/mess/video/ac1.c
index 728cc44cfd2..e7fd46ddd62 100644
--- a/src/mess/video/ac1.c
+++ b/src/mess/video/ac1.c
@@ -26,7 +26,7 @@ void ac1_state::video_start()
{
}
-SCREEN_UPDATE_IND16( ac1 )
+UINT32 ac1_state::screen_update_ac1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int x,y;
address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
@@ -42,7 +42,7 @@ SCREEN_UPDATE_IND16( ac1 )
return 0;
}
-SCREEN_UPDATE_IND16( ac1_32 )
+UINT32 ac1_state::screen_update_ac1_32(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int x,y;
address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
diff --git a/src/mess/video/apple1.c b/src/mess/video/apple1.c
index f094ccecd4a..428db6b6002 100644
--- a/src/mess/video/apple1.c
+++ b/src/mess/video/apple1.c
@@ -391,10 +391,9 @@ static void apple1_vh_cursor_blink (running_machine &machine)
}
}
-SCREEN_UPDATE_IND16( apple1 )
+UINT32 apple1_state::screen_update_apple1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- apple1_state *state = screen.machine().driver_data<apple1_state>();
apple1_vh_cursor_blink(screen.machine());
- terminal_draw(screen.machine(), bitmap, cliprect, state->m_terminal);
+ terminal_draw(screen.machine(), bitmap, cliprect, m_terminal);
return 0;
}
diff --git a/src/mess/video/apple2.c b/src/mess/video/apple2.c
index b7f89132d65..0f5e170b6af 100644
--- a/src/mess/video/apple2.c
+++ b/src/mess/video/apple2.c
@@ -472,64 +472,62 @@ VIDEO_START_MEMBER(apple2_state,apple2e)
}
-SCREEN_UPDATE_IND16( apple2 )
+UINT32 apple2_state::screen_update_apple2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- apple2_state *state = screen.machine().driver_data<apple2_state>();
int page;
UINT32 new_a2;
- running_machine &machine = screen.machine();
- /* calculate the state->m_flash value */
- state->m_flash = ((screen.machine().time() * 4).seconds & 1) ? 1 : 0;
+ /* calculate the m_flash value */
+ m_flash = ((screen.machine().time() * 4).seconds & 1) ? 1 : 0;
/* read out relevant softswitch variables; to see what has changed */
- new_a2 = effective_a2(state);
+ new_a2 = effective_a2(this);
if (new_a2 & VAR_80STORE)
new_a2 &= ~VAR_PAGE2;
new_a2 &= VAR_TEXT | VAR_MIXED | VAR_HIRES | VAR_DHIRES | VAR_80COL | VAR_PAGE2 | VAR_ALTCHARSET;
- if (ALWAYS_REFRESH || (new_a2 != state->m_old_a2))
+ if (ALWAYS_REFRESH || (new_a2 != m_old_a2))
{
- state->m_old_a2 = new_a2;
+ m_old_a2 = new_a2;
}
/* choose which page to use */
page = (new_a2 & VAR_PAGE2) ? 1 : 0;
/* choose the video mode to draw */
- if (effective_a2(state) & VAR_TEXT)
+ if (effective_a2(this) & VAR_TEXT)
{
/* text screen - TK2000 uses HGR for text */
- if (state->m_machinetype == TK2000)
+ if (m_machinetype == TK2000)
{
- apple2_hires_draw(machine, bitmap, cliprect, page, 0, 191);
+ apple2_hires_draw(machine(), bitmap, cliprect, page, 0, 191);
}
else
{
- apple2_text_draw(machine, bitmap, cliprect, page, 0, 191);
+ apple2_text_draw(machine(), bitmap, cliprect, page, 0, 191);
}
}
- else if ((effective_a2(state) & VAR_HIRES) && (effective_a2(state) & VAR_MIXED))
+ else if ((effective_a2(this) & VAR_HIRES) && (effective_a2(this) & VAR_MIXED))
{
/* hi-res on top; text at bottom */
- apple2_hires_draw(machine, bitmap, cliprect, page, 0, 159);
- apple2_text_draw(machine, bitmap, cliprect, page, 160, 191);
+ apple2_hires_draw(machine(), bitmap, cliprect, page, 0, 159);
+ apple2_text_draw(machine(), bitmap, cliprect, page, 160, 191);
}
- else if (effective_a2(state) & VAR_HIRES)
+ else if (effective_a2(this) & VAR_HIRES)
{
/* hi-res screen */
- apple2_hires_draw(machine, bitmap, cliprect, page, 0, 191);
+ apple2_hires_draw(machine(), bitmap, cliprect, page, 0, 191);
}
- else if (effective_a2(state) & VAR_MIXED)
+ else if (effective_a2(this) & VAR_MIXED)
{
/* lo-res on top; text at bottom */
- apple2_lores_draw(machine, bitmap, cliprect, page, 0, 159);
- apple2_text_draw(machine, bitmap, cliprect, page, 160, 191);
+ apple2_lores_draw(machine(), bitmap, cliprect, page, 0, 159);
+ apple2_text_draw(machine(), bitmap, cliprect, page, 160, 191);
}
else
{
/* lo-res screen */
- apple2_lores_draw(machine, bitmap, cliprect, page, 0, 191);
+ apple2_lores_draw(machine(), bitmap, cliprect, page, 0, 191);
}
return 0;
}
diff --git a/src/mess/video/apple2gs.c b/src/mess/video/apple2gs.c
index cf8e684ca50..0d4ddfdd4f0 100644
--- a/src/mess/video/apple2gs.c
+++ b/src/mess/video/apple2gs.c
@@ -24,9 +24,8 @@ VIDEO_START_MEMBER(apple2gs_state,apple2gs)
-SCREEN_UPDATE_IND16( apple2gs )
+UINT32 apple2gs_state::screen_update_apple2gs(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- apple2gs_state *state = screen.machine().driver_data<apple2gs_state>();
const UINT8 *vram;
UINT16 *scanline;
UINT8 scb, b;
@@ -36,7 +35,7 @@ SCREEN_UPDATE_IND16( apple2gs )
beamy = cliprect.min_y;
- if (state->m_newvideo & 0x80)
+ if (m_newvideo & 0x80)
{
// in top or bottom border?
if ((beamy < BORDER_TOP) || (beamy >= 200+BORDER_TOP))
@@ -50,24 +49,24 @@ SCREEN_UPDATE_IND16( apple2gs )
scanline = &bitmap.pix16(beamy);
for (col = 0; col < BORDER_LEFT+BORDER_RIGHT+640; col++)
{
- scanline[col] = state->m_bordercolor;
+ scanline[col] = m_bordercolor;
}
}
else // regular screen area
{
int shrline = beamy - BORDER_TOP;
- scb = state->m_slowmem[0x19D00 + shrline];
+ scb = m_slowmem[0x19D00 + shrline];
palette = ((scb & 0x0f) << 4) + 16;
- vram = &state->m_slowmem[0x12000 + (shrline * 160)];
+ vram = &m_slowmem[0x12000 + (shrline * 160)];
scanline = &bitmap.pix16(beamy);
// draw left and right borders
for (col = 0; col < BORDER_LEFT; col++)
{
- scanline[col] = state->m_bordercolor;
- scanline[col+BORDER_LEFT+640] = state->m_bordercolor;
+ scanline[col] = m_bordercolor;
+ scanline[col+BORDER_LEFT+640] = m_bordercolor;
}
if (scb & 0x80) // 640 mode
@@ -115,20 +114,19 @@ SCREEN_UPDATE_IND16( apple2gs )
/* call legacy Apple II video rendering at scanline 0 to draw into the off-screen buffer */
if (beamy == 0)
{
- apple2_state *a2state = screen.machine().driver_data<apple2_state>();
// check if DHR should be monochrome 560x192
- if (state->m_newvideo & 0x20)
+ if (m_newvideo & 0x20)
{
- a2state->m_monochrome_dhr = true;
+ m_monochrome_dhr = true;
}
else
{
- a2state->m_monochrome_dhr = false;
+ m_monochrome_dhr = false;
}
rectangle new_cliprect(0, 559, 0, 191);
- SCREEN_UPDATE_NAME(apple2)(NULL, screen, *state->m_legacy_gfx, new_cliprect);
+ screen_update_apple2(screen, *m_legacy_gfx, new_cliprect);
}
if ((beamy < (BORDER_TOP+4)) || (beamy >= (192+4+BORDER_TOP)))
@@ -141,7 +139,7 @@ SCREEN_UPDATE_IND16( apple2gs )
scanline = &bitmap.pix16(beamy);
for (col = 0; col < BORDER_LEFT+BORDER_RIGHT+640; col++)
{
- scanline[col] = state->m_bordercolor;
+ scanline[col] = m_bordercolor;
}
}
else
@@ -151,11 +149,11 @@ SCREEN_UPDATE_IND16( apple2gs )
// draw left and right borders
for (col = 0; col < BORDER_LEFT + 40; col++)
{
- scanline[col] = state->m_bordercolor;
- scanline[col+BORDER_LEFT+600] = state->m_bordercolor;
+ scanline[col] = m_bordercolor;
+ scanline[col+BORDER_LEFT+600] = m_bordercolor;
}
- memcpy(scanline + 40 + BORDER_LEFT, &state->m_legacy_gfx->pix16(beamy-(BORDER_TOP+4)), 560 * sizeof(UINT16));
+ memcpy(scanline + 40 + BORDER_LEFT, &m_legacy_gfx->pix16(beamy-(BORDER_TOP+4)), 560 * sizeof(UINT16));
}
}
return 0;
diff --git a/src/mess/video/apple3.c b/src/mess/video/apple3.c
index 8cc15336dea..f14c2c1cd3e 100644
--- a/src/mess/video/apple3.c
+++ b/src/mess/video/apple3.c
@@ -363,10 +363,9 @@ static void apple3_video_graphics_chires(running_machine &machine,bitmap_ind16 &
-SCREEN_UPDATE_IND16( apple3 )
+UINT32 apple3_state::screen_update_apple3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- apple3_state *state = screen.machine().driver_data<apple3_state>();
- switch(state->m_flags & (VAR_VM3|VAR_VM1|VAR_VM0))
+ switch(m_flags & (VAR_VM3|VAR_VM1|VAR_VM0))
{
case 0:
case VAR_VM0:
diff --git a/src/mess/video/aquarius.c b/src/mess/video/aquarius.c
index 5999d1c4867..16e5bb877bd 100644
--- a/src/mess/video/aquarius.c
+++ b/src/mess/video/aquarius.c
@@ -93,10 +93,9 @@ void aquarius_state::video_start()
m_tilemap = &machine().tilemap().create(tilemap_get_info_delegate(FUNC(aquarius_state::aquarius_gettileinfo),this), TILEMAP_SCAN_ROWS, 8, 8, 40, 25);
}
-SCREEN_UPDATE_IND16( aquarius )
+UINT32 aquarius_state::screen_update_aquarius(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- aquarius_state *state = screen.machine().driver_data<aquarius_state>();
- state->m_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mess/video/arcadia.c b/src/mess/video/arcadia.c
index d46866171bc..b7ccdb6a4e5 100644
--- a/src/mess/video/arcadia.c
+++ b/src/mess/video/arcadia.c
@@ -673,9 +673,8 @@ READ8_MEMBER( arcadia_state::arcadia_vsync_r )
return m_line>=216 ? 0x80 : 0 ;
}
-SCREEN_UPDATE_IND16( arcadia )
+UINT32 arcadia_state::screen_update_arcadia(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- arcadia_state *state = screen.machine().driver_data<arcadia_state>();
- copybitmap(bitmap, *state->m_bitmap, 0, 0, 0, 0, cliprect);
+ copybitmap(bitmap, *m_bitmap, 0, 0, 0, 0, cliprect);
return 0;
}
diff --git a/src/mess/video/b2m.c b/src/mess/video/b2m.c
index 11aa14e966d..f1d3b4b972f 100644
--- a/src/mess/video/b2m.c
+++ b/src/mess/video/b2m.c
@@ -15,9 +15,8 @@ void b2m_state::video_start()
{
}
-SCREEN_UPDATE_IND16( b2m )
+UINT32 b2m_state::screen_update_b2m(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- b2m_state *state = screen.machine().driver_data<b2m_state>();
UINT8 code1;
UINT8 code2;
UINT8 col;
@@ -28,12 +27,12 @@ SCREEN_UPDATE_IND16( b2m )
{
for (y = 0; y < 256; y++)
{
- if (state->m_b2m_video_page==0) {
- code1 = ram[0x11000 + x*256 + ((y + state->m_b2m_video_scroll) & 0xff)];
- code2 = ram[0x15000 + x*256 + ((y + state->m_b2m_video_scroll) & 0xff)];
+ if (m_b2m_video_page==0) {
+ code1 = ram[0x11000 + x*256 + ((y + m_b2m_video_scroll) & 0xff)];
+ code2 = ram[0x15000 + x*256 + ((y + m_b2m_video_scroll) & 0xff)];
} else {
- code1 = ram[0x19000 + x*256 + ((y + state->m_b2m_video_scroll) & 0xff)];
- code2 = ram[0x1d000 + x*256 + ((y + state->m_b2m_video_scroll) & 0xff)];
+ code1 = ram[0x19000 + x*256 + ((y + m_b2m_video_scroll) & 0xff)];
+ code2 = ram[0x1d000 + x*256 + ((y + m_b2m_video_scroll) & 0xff)];
}
for (b = 7; b >= 0; b--)
{
diff --git a/src/mess/video/bbc.c b/src/mess/video/bbc.c
index e132ede0151..7a8530fadf7 100644
--- a/src/mess/video/bbc.c
+++ b/src/mess/video/bbc.c
@@ -637,7 +637,7 @@ WRITE8_MEMBER(bbc_state::bbc_6845_w)
-SCREEN_UPDATE_IND16( bbc )
+UINT32 bbc_state::screen_update_bbc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
mc6845_device *mc6845 = screen.machine().device<mc6845_device>("mc6845");
@@ -647,7 +647,6 @@ SCREEN_UPDATE_IND16( bbc )
- bbc_state *state = screen.machine().driver_data<bbc_state>();
long c;
//logerror ("Box %d by %d \n",cliprect.min_y,cliprect.max_y);
@@ -655,15 +654,15 @@ SCREEN_UPDATE_IND16( bbc )
c = 0; // this is used to time out the screen redraw, in the case that the 6845 is in some way out state.
- state->m_BBC_bitmap=bitmap;
+ m_BBC_bitmap=bitmap;
- state->m_BBC_display_left=&state->m_BBC_bitmap->pix16(0);
- state->m_BBC_display_right=state->m_BBC_display_left;
- state->m_BBC_display=state->m_BBC_display_left;
+ m_BBC_display_left=&m_BBC_bitmap->pix16(0);
+ m_BBC_display_right=m_BBC_display_left;
+ m_BBC_display=m_BBC_display_left;
// loop until the end of the Vertical Sync pulse
// or until a timeout (this catches the 6845 with silly register values that would not give a VSYNC signal)
- while((state->m_BBC_VSync)&&(c<60000))
+ while((m_BBC_VSync)&&(c<60000))
{
// Clock the 6845
m6845_clock(screen.machine());
@@ -673,12 +672,12 @@ SCREEN_UPDATE_IND16( bbc )
// loop until the Vertical Sync pulse goes high
// or until a timeout (this catches the 6845 with silly register values that would not give a VSYNC signal)
- while((!state->m_BBC_VSync)&&(c<60000))
+ while((!m_BBC_VSync)&&(c<60000))
{
- if ((state->m_y_screen_pos>=cliprect.min_y) && (state->m_y_screen_pos<=cliprect.max_y)) (state->m_draw_function)(screen.machine());
+ if ((m_y_screen_pos>=cliprect.min_y) && (m_y_screen_pos<=cliprect.max_y)) (m_draw_function)(screen.machine());
// and check the cursor
- if (state->m_VideoULA_CR) BBC_Clock_CR(state);
+ if (m_VideoULA_CR) BBC_Clock_CR(this);
// Clock the 6845
m6845_clock(screen.machine());
diff --git a/src/mess/video/bk.c b/src/mess/video/bk.c
index 90a99053021..6c494184cfa 100644
--- a/src/mess/video/bk.c
+++ b/src/mess/video/bk.c
@@ -15,20 +15,19 @@ void bk_state::video_start()
{
}
-SCREEN_UPDATE_IND16( bk0010 )
+UINT32 bk_state::screen_update_bk0010(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- bk_state *state = screen.machine().driver_data<bk_state>();
UINT16 code;
int y, x, b;
int nOfs;
- nOfs = (state->m_scrool - 728) % 256;
+ nOfs = (m_scrool - 728) % 256;
for (y = 0; y < 256; y++)
{
for (x = 0; x < 32; x++)
{
- code = state->m_bk0010_video_ram[((y+nOfs) %256)*32 + x];
+ code = m_bk0010_video_ram[((y+nOfs) %256)*32 + x];
for (b = 0; b < 16; b++)
{
bitmap.pix16(y, x*16 + b) = (code >> b) & 0x01;
diff --git a/src/mess/video/busicom.c b/src/mess/video/busicom.c
index 1ad7c87d983..d52b508e3db 100644
--- a/src/mess/video/busicom.c
+++ b/src/mess/video/busicom.c
@@ -1816,17 +1816,16 @@ void busicom_state::video_start()
{
}
-SCREEN_UPDATE_IND16( busicom )
+UINT32 busicom_state::screen_update_busicom(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- busicom_state *state = screen.machine().driver_data<busicom_state>();
int y, x, b, j;
//34x44
for (y = 0; y < 11; y++)
{
- UINT8 col = 8 * state->m_printer_line_color[y];
+ UINT8 col = 8 * m_printer_line_color[y];
for (x = 0; x < 17; x++)
{
- UINT8 chr = state->m_printer_line[y][x];
+ UINT8 chr = m_printer_line[y][x];
for (j = 0; j < 44; j++) {
for (b = 0; b < 34; b++)
{
diff --git a/src/mess/video/cgenie.c b/src/mess/video/cgenie.c
index 043d97a35a8..c63085a5ef3 100644
--- a/src/mess/video/cgenie.c
+++ b/src/mess/video/cgenie.c
@@ -410,10 +410,9 @@ static void cgenie_refresh_tv_set(running_machine &machine, bitmap_ind16 &bitmap
/***************************************************************************
Draw the game screen in the given bitmap_ind16.
***************************************************************************/
-SCREEN_UPDATE_IND16( cgenie )
+UINT32 cgenie_state::screen_update_cgenie(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- cgenie_state *state = screen.machine().driver_data<cgenie_state>();
- if( state->m_tv_mode )
+ if( m_tv_mode )
cgenie_refresh_tv_set(screen.machine(), bitmap, cliprect);
else
cgenie_refresh_monitor(screen.machine(), bitmap, cliprect);
diff --git a/src/mess/video/channelf.c b/src/mess/video/channelf.c
index 77ae2567158..930a36ed29d 100644
--- a/src/mess/video/channelf.c
+++ b/src/mess/video/channelf.c
@@ -47,9 +47,8 @@ static int recalc_palette_offset(int reg1, int reg2)
return ((reg2&0x2)|(reg1>>1)) << 2;
}
-SCREEN_UPDATE_IND16( channelf )
+UINT32 channelf_state::screen_update_channelf(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- channelf_state *state = screen.machine().driver_data<channelf_state>();
UINT8 y,col;
UINT16 ma=0,x;
int palette_offset;
@@ -57,11 +56,11 @@ SCREEN_UPDATE_IND16( channelf )
for(y = 0; y < 64; y++ )
{
UINT16 *p = &bitmap.pix16(y);
- palette_offset = recalc_palette_offset(state->m_p_videoram[y*128+125]&3, state->m_p_videoram[y*128+126]&3);
+ palette_offset = recalc_palette_offset(m_p_videoram[y*128+125]&3, m_p_videoram[y*128+126]&3);
for (x = ma; x < ma + 128; x++)
{
- col = palette_offset+(state->m_p_videoram[x|(y<<7)]&3);
+ col = palette_offset+(m_p_videoram[x|(y<<7)]&3);
*p++ = colormap[col];
}
ma+=128;
diff --git a/src/mess/video/comquest.c b/src/mess/video/comquest.c
index 109b075fd69..c0f666aa908 100644
--- a/src/mess/video/comquest.c
+++ b/src/mess/video/comquest.c
@@ -6,7 +6,7 @@ void comquest_state::video_start()
{
}
-SCREEN_UPDATE_IND16( comquest )
+UINT32 comquest_state::screen_update_comquest(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int x, y, j;
diff --git a/src/mess/video/dai.c b/src/mess/video/dai.c
index f173e60f121..edd6e947ece 100644
--- a/src/mess/video/dai.c
+++ b/src/mess/video/dai.c
@@ -55,13 +55,12 @@ void dai_state::video_start()
{
}
-SCREEN_UPDATE_IND16( dai )
+UINT32 dai_state::screen_update_dai(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- dai_state *state = screen.machine().driver_data<dai_state>();
address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
int i, j, k, l;
- UINT8* char_rom = state->memregion("gfx1")->base();
+ UINT8* char_rom = memregion("gfx1")->base();
UINT16 dai_video_memory_start = 0xbfff;
UINT16 dai_scan_lines = 604; /* scan lines of PAL tv */
@@ -110,7 +109,7 @@ SCREEN_UPDATE_IND16( dai )
unit_mode = (colour & 0x40) >> 6;
if (colour & 0x80)
- state->m_4_colours_palette[(colour & 0x30) >> 4] = colour & 0x0f;
+ m_4_colours_palette[(colour & 0x30) >> 4] = colour & 0x0f;
switch (display_mode)
{
@@ -132,7 +131,7 @@ SCREEN_UPDATE_IND16( dai )
{
for (k=0; k<8; k++)
{
- current_colour = state->m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
+ current_colour = m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
for (l=0; l<12; l++)
bitmap.pix16(current_scan_line/2 + j, (i*8+k)*12+l) = current_colour;
}
@@ -149,7 +148,7 @@ SCREEN_UPDATE_IND16( dai )
{
for (k=0; k<8; k++)
{
- current_colour = state->m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
+ current_colour = m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
for (l=0; l<12; l++)
bitmap.pix16(current_scan_line/2 + j, (i*8+k)*12+l) = current_colour;
}
@@ -171,7 +170,7 @@ SCREEN_UPDATE_IND16( dai )
{
for (k=0; k<8; k++)
{
- current_colour = state->m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
+ current_colour = m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
for (l=0; l<6; l++)
bitmap.pix16(current_scan_line/2 + j, (i*8+k)*6+l) = current_colour;
}
@@ -188,7 +187,7 @@ SCREEN_UPDATE_IND16( dai )
{
for (k=0; k<8; k++)
{
- current_colour = state->m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
+ current_colour = m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
for (l=0; l<6; l++)
bitmap.pix16(current_scan_line/2 + j, (i*8+k)*6+l) = current_colour;
}
@@ -210,7 +209,7 @@ SCREEN_UPDATE_IND16( dai )
{
for (k=0; k<8; k++)
{
- current_colour = state->m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
+ current_colour = m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
for (l=0; l<3; l++)
bitmap.pix16(current_scan_line/2 + j, (i*8+k)*3+l) = current_colour;
}
@@ -226,7 +225,7 @@ SCREEN_UPDATE_IND16( dai )
{
for (k=0; k<8; k++)
{
- current_colour = state->m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
+ current_colour = m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
for (l=0; l<3; l++)
bitmap.pix16(current_scan_line/2 + j, (i*8+k)*3+l) = current_colour;
}
@@ -248,7 +247,7 @@ SCREEN_UPDATE_IND16( dai )
{
for (k=0; k<8; k++)
{
- current_colour = state->m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
+ current_colour = m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
for (l=0; l<2; l++)
bitmap.pix16(current_scan_line/2 + j, (i*8+k)*2+l) = current_colour;
}
@@ -264,7 +263,7 @@ SCREEN_UPDATE_IND16( dai )
{
for (k=0; k<8; k++)
{
- current_colour = state->m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
+ current_colour = m_4_colours_palette[(((current_data_1>>(7-k)) & 0x01)<<1) | ((current_data_2>>(7-k)) & 0x01)];
for (l=0; l<2; l++)
bitmap.pix16(current_scan_line/2 + j, (i*8+k)*2+l) = current_colour;
}
@@ -293,7 +292,7 @@ SCREEN_UPDATE_IND16( dai )
{
for (k=0; k<8; k++)
{
- current_colour = state->m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
+ current_colour = m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
for (l=0; l<12; l++)
bitmap.pix16(current_scan_line/2 + j, (i*8+k)*12+l) = current_colour;
}
@@ -311,7 +310,7 @@ SCREEN_UPDATE_IND16( dai )
{
for (k=0; k<8; k++)
{
- current_colour = state->m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
+ current_colour = m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
for (l=0; l<12; l++)
bitmap.pix16(current_scan_line/2 + j, (i*8+k)*12+l) = current_colour;
}
@@ -334,7 +333,7 @@ SCREEN_UPDATE_IND16( dai )
{
for (k=0; k<8; k++)
{
- current_colour = state->m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
+ current_colour = m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
for (l=0; l<6; l++)
bitmap.pix16(current_scan_line/2 + j, (i*8+k)*6+l) = current_colour;
}
@@ -352,7 +351,7 @@ SCREEN_UPDATE_IND16( dai )
{
for (k=0; k<8; k++)
{
- current_colour = state->m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
+ current_colour = m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
for (l=0; l<6; l++)
bitmap.pix16(current_scan_line/2 + j, (i*8+k)*6+l) = current_colour;
}
@@ -375,7 +374,7 @@ SCREEN_UPDATE_IND16( dai )
{
for (k=0; k<8; k++)
{
- current_colour = state->m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
+ current_colour = m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
for (l=0; l<3; l++)
bitmap.pix16(current_scan_line/2 + j, (i*8+k)*3+l) = current_colour;
}
@@ -392,7 +391,7 @@ SCREEN_UPDATE_IND16( dai )
{
for (k=0; k<8; k++)
{
- current_colour = state->m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
+ current_colour = m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
for (l=0; l<3; l++)
bitmap.pix16(current_scan_line/2 + j, (i*8+k)*3+l) = current_colour;
}
@@ -414,7 +413,7 @@ SCREEN_UPDATE_IND16( dai )
{
for (k=0; k<8; k++)
{
- current_colour = state->m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
+ current_colour = m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
for (l=0; l<2; l++)
bitmap.pix16(current_scan_line/2 + j, (i*8+k)*2+l) = current_colour;
}
@@ -431,7 +430,7 @@ SCREEN_UPDATE_IND16( dai )
{
for (k=0; k<8; k++)
{
- current_colour = state->m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
+ current_colour = m_4_colours_palette[(((current_data_2 >> k)&0x01)<<1) | ((char_rom[current_data_1*16+j]>>k) & 0x01)];
for (l=0; l<2; l++)
bitmap.pix16(current_scan_line/2 + j, (i*8+k)*2+l) = current_colour;
}
diff --git a/src/mess/video/electron.c b/src/mess/video/electron.c
index dab1fe654c6..c29ff0eb2b6 100644
--- a/src/mess/video/electron.c
+++ b/src/mess/video/electron.c
@@ -59,9 +59,8 @@ INLINE void electron_plot_pixel(bitmap_ind16 &bitmap, int x, int y, UINT32 color
bitmap.pix16(y, x) = (UINT16)color;
}
-SCREEN_UPDATE_IND16( electron )
+UINT32 electron_state::screen_update_electron(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- electron_state *state = screen.machine().driver_data<electron_state>();
int i;
int x = 0;
int pal[16];
@@ -70,30 +69,30 @@ SCREEN_UPDATE_IND16( electron )
r.min_y = r.max_y = scanline;
/* set up palette */
- switch( state->m_ula.screen_mode )
+ switch( m_ula.screen_mode )
{
case 0: case 3: case 4: case 6: case 7: /* 2 colour mode */
- pal[0] = state->m_ula.current_pal[0];
- pal[1] = state->m_ula.current_pal[8];
+ pal[0] = m_ula.current_pal[0];
+ pal[1] = m_ula.current_pal[8];
break;
case 1: case 5: /* 4 colour mode */
- pal[0] = state->m_ula.current_pal[0];
- pal[1] = state->m_ula.current_pal[2];
- pal[2] = state->m_ula.current_pal[8];
- pal[3] = state->m_ula.current_pal[10];
+ pal[0] = m_ula.current_pal[0];
+ pal[1] = m_ula.current_pal[2];
+ pal[2] = m_ula.current_pal[8];
+ pal[3] = m_ula.current_pal[10];
break;
case 2: /* 16 colour mode */
for( i = 0; i < 16; i++ )
- pal[i] = state->m_ula.current_pal[i];
+ pal[i] = m_ula.current_pal[i];
}
/* draw line */
- switch( state->m_ula.screen_mode )
+ switch( m_ula.screen_mode )
{
case 0:
for( i = 0; i < 80; i++ )
{
- UINT8 pattern = read_vram( state, state->m_ula.screen_addr + (i << 3) );
+ UINT8 pattern = read_vram( this, m_ula.screen_addr + (i << 3) );
electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>7)& 1] );
electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>6)& 1] );
electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>5)& 1] );
@@ -103,45 +102,45 @@ SCREEN_UPDATE_IND16( electron )
electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>1)& 1] );
electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>0)& 1] );
}
- state->m_ula.screen_addr++;
+ m_ula.screen_addr++;
if ( ( scanline & 0x07 ) == 7 )
- state->m_ula.screen_addr += 0x278;
+ m_ula.screen_addr += 0x278;
break;
case 1:
for( i = 0; i < 80; i++ )
{
- UINT8 pattern = read_vram( state, state->m_ula.screen_addr + i * 8 );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>3]] );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>3]] );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>2]] );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>2]] );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>1]] );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>1]] );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>0]] );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>0]] );
+ UINT8 pattern = read_vram( this, m_ula.screen_addr + i * 8 );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>3]] );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>3]] );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>2]] );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>2]] );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>1]] );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>1]] );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>0]] );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>0]] );
}
- state->m_ula.screen_addr++;
+ m_ula.screen_addr++;
if ( ( scanline & 0x07 ) == 7 )
- state->m_ula.screen_addr += 0x278;
+ m_ula.screen_addr += 0x278;
break;
case 2:
for( i = 0; i < 80; i++ )
{
- UINT8 pattern = read_vram( state, state->m_ula.screen_addr + i * 8 );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map16[pattern>>1]] );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map16[pattern>>1]] );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map16[pattern>>1]] );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map16[pattern>>1]] );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map16[pattern>>0]] );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map16[pattern>>0]] );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map16[pattern>>0]] );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map16[pattern>>0]] );
+ UINT8 pattern = read_vram( this, m_ula.screen_addr + i * 8 );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map16[pattern>>1]] );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map16[pattern>>1]] );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map16[pattern>>1]] );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map16[pattern>>1]] );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map16[pattern>>0]] );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map16[pattern>>0]] );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map16[pattern>>0]] );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map16[pattern>>0]] );
}
- state->m_ula.screen_addr++;
+ m_ula.screen_addr++;
if ( ( scanline & 0x07 ) == 7 )
- state->m_ula.screen_addr += 0x278;
+ m_ula.screen_addr += 0x278;
break;
case 3:
@@ -151,7 +150,7 @@ SCREEN_UPDATE_IND16( electron )
{
for( i = 0; i < 80; i++ )
{
- UINT8 pattern = read_vram( state, state->m_ula.screen_addr + i * 8 );
+ UINT8 pattern = read_vram( this, m_ula.screen_addr + i * 8 );
electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>7)&1] );
electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>6)&1] );
electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>5)&1] );
@@ -161,17 +160,17 @@ SCREEN_UPDATE_IND16( electron )
electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>1)&1] );
electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>0)&1] );
}
- state->m_ula.screen_addr++;
+ m_ula.screen_addr++;
}
if ( scanline % 10 == 9 )
- state->m_ula.screen_addr += 0x278;
+ m_ula.screen_addr += 0x278;
break;
case 4:
case 7:
for( i = 0; i < 40; i++ )
{
- UINT8 pattern = read_vram( state, state->m_ula.screen_addr + i * 8 );
+ UINT8 pattern = read_vram( this, m_ula.screen_addr + i * 8 );
electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>7)&1] );
electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>7)&1] );
electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>6)&1] );
@@ -189,35 +188,35 @@ SCREEN_UPDATE_IND16( electron )
electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>0)&1] );
electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>0)&1] );
}
- state->m_ula.screen_addr++;
+ m_ula.screen_addr++;
if ( ( scanline & 0x07 ) == 7 )
- state->m_ula.screen_addr += 0x138;
+ m_ula.screen_addr += 0x138;
break;
case 5:
for( i = 0; i < 40; i++ )
{
- UINT8 pattern = read_vram( state, state->m_ula.screen_addr + i * 8 );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>3]] );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>3]] );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>3]] );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>3]] );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>2]] );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>2]] );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>2]] );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>2]] );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>1]] );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>1]] );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>1]] );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>1]] );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>0]] );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>0]] );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>0]] );
- electron_plot_pixel( bitmap, x++, scanline, pal[state->m_map4[pattern>>0]] );
+ UINT8 pattern = read_vram( this, m_ula.screen_addr + i * 8 );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>3]] );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>3]] );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>3]] );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>3]] );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>2]] );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>2]] );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>2]] );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>2]] );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>1]] );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>1]] );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>1]] );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>1]] );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>0]] );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>0]] );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>0]] );
+ electron_plot_pixel( bitmap, x++, scanline, pal[m_map4[pattern>>0]] );
}
- state->m_ula.screen_addr++;
+ m_ula.screen_addr++;
if ( ( scanline & 0x07 ) == 7 )
- state->m_ula.screen_addr += 0x138;
+ m_ula.screen_addr += 0x138;
break;
case 6:
@@ -227,7 +226,7 @@ SCREEN_UPDATE_IND16( electron )
{
for( i = 0; i < 40; i++ )
{
- UINT8 pattern = read_vram( state, state->m_ula.screen_addr + i * 8 );
+ UINT8 pattern = read_vram( this, m_ula.screen_addr + i * 8 );
electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>7)&1] );
electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>7)&1] );
electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>6)&1] );
@@ -245,9 +244,9 @@ SCREEN_UPDATE_IND16( electron )
electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>0)&1] );
electron_plot_pixel( bitmap, x++, scanline, pal[(pattern>>0)&1] );
}
- state->m_ula.screen_addr++;
+ m_ula.screen_addr++;
if ( ( scanline % 10 ) == 7 )
- state->m_ula.screen_addr += 0x138;
+ m_ula.screen_addr += 0x138;
}
break;
}
diff --git a/src/mess/video/epnick.c b/src/mess/video/epnick.c
index 0e50d3aeabc..ffd3e419050 100644
--- a/src/mess/video/epnick.c
+++ b/src/mess/video/epnick.c
@@ -1034,10 +1034,9 @@ void ep_state::video_start()
}
-SCREEN_UPDATE_IND16( epnick )
+UINT32 ep_state::screen_update_epnick(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ep_state *state = screen.machine().driver_data<ep_state>();
- Nick_DoScreen(state->nick,state->m_bitmap);
- copybitmap(bitmap, state->m_bitmap, 0, 0, 0, 0, cliprect);
+ Nick_DoScreen(nick,m_bitmap);
+ copybitmap(bitmap, m_bitmap, 0, 0, 0, 0, cliprect);
return 0;
}
diff --git a/src/mess/video/fm7.c b/src/mess/video/fm7.c
index bad68be3a12..c52ba43a7eb 100644
--- a/src/mess/video/fm7.c
+++ b/src/mess/video/fm7.c
@@ -1511,9 +1511,8 @@ void fm7_state::video_start()
m_video.vsync_flag = 0;
}
-SCREEN_UPDATE_IND16( fm7 )
+UINT32 fm7_state::screen_update_fm7(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- fm7_state *state = screen.machine().driver_data<fm7_state>();
UINT8 code_r = 0,code_g = 0,code_b = 0;
UINT8 code_r2 = 0,code_g2 = 0,code_b2 = 0;
UINT8 code_r3 = 0,code_g3 = 0,code_b3 = 0;
@@ -1522,38 +1521,38 @@ SCREEN_UPDATE_IND16( fm7 )
int y, x, b;
UINT16 page = 0x0000;
- if(state->m_video.display_video_page != 0)
+ if(m_video.display_video_page != 0)
page = 0xc000;
- if(state->m_video.crt_enable == 0)
+ if(m_video.crt_enable == 0)
return 0;
- if(state->m_video.modestatus & 0x40) // 320x200 mode
+ if(m_video.modestatus & 0x40) // 320x200 mode
{
for (y = 0; y < 200; y++)
{
for (x = 0; x < 40; x++)
{
- if(!(state->m_video.multi_page & 0x40))
+ if(!(m_video.multi_page & 0x40))
{
- code_r = state->m_video_ram[0x8000 + ((y*40 + x + state->m_video.vram_offset) & 0x1fff)];
- code_r2 = state->m_video_ram[0xa000 + ((y*40 + x + state->m_video.vram_offset) & 0x1fff)];
- code_r3 = state->m_video_ram[0x14000 + ((y*40 + x + state->m_video.vram_offset2) & 0x1fff)];
- code_r4 = state->m_video_ram[0x16000 + ((y*40 + x + state->m_video.vram_offset2) & 0x1fff)];
+ code_r = m_video_ram[0x8000 + ((y*40 + x + m_video.vram_offset) & 0x1fff)];
+ code_r2 = m_video_ram[0xa000 + ((y*40 + x + m_video.vram_offset) & 0x1fff)];
+ code_r3 = m_video_ram[0x14000 + ((y*40 + x + m_video.vram_offset2) & 0x1fff)];
+ code_r4 = m_video_ram[0x16000 + ((y*40 + x + m_video.vram_offset2) & 0x1fff)];
}
- if(!(state->m_video.multi_page & 0x20))
+ if(!(m_video.multi_page & 0x20))
{
- code_g = state->m_video_ram[0x4000 + ((y*40 + x + state->m_video.vram_offset) & 0x1fff)];
- code_g2 = state->m_video_ram[0x6000 + ((y*40 + x + state->m_video.vram_offset) & 0x1fff)];
- code_g3 = state->m_video_ram[0x10000 + ((y*40 + x + state->m_video.vram_offset2) & 0x1fff)];
- code_g4 = state->m_video_ram[0x12000 + ((y*40 + x + state->m_video.vram_offset2) & 0x1fff)];
+ code_g = m_video_ram[0x4000 + ((y*40 + x + m_video.vram_offset) & 0x1fff)];
+ code_g2 = m_video_ram[0x6000 + ((y*40 + x + m_video.vram_offset) & 0x1fff)];
+ code_g3 = m_video_ram[0x10000 + ((y*40 + x + m_video.vram_offset2) & 0x1fff)];
+ code_g4 = m_video_ram[0x12000 + ((y*40 + x + m_video.vram_offset2) & 0x1fff)];
}
- if(!(state->m_video.multi_page & 0x10))
+ if(!(m_video.multi_page & 0x10))
{
- code_b = state->m_video_ram[0x0000 + ((y*40 + x + state->m_video.vram_offset) & 0x1fff)];
- code_b2 = state->m_video_ram[0x2000 + ((y*40 + x + state->m_video.vram_offset) & 0x1fff)];
- code_b3 = state->m_video_ram[0xc000 + ((y*40 + x + state->m_video.vram_offset2) & 0x1fff)];
- code_b4 = state->m_video_ram[0xe000 + ((y*40 + x + state->m_video.vram_offset2) & 0x1fff)];
+ code_b = m_video_ram[0x0000 + ((y*40 + x + m_video.vram_offset) & 0x1fff)];
+ code_b2 = m_video_ram[0x2000 + ((y*40 + x + m_video.vram_offset) & 0x1fff)];
+ code_b3 = m_video_ram[0xc000 + ((y*40 + x + m_video.vram_offset2) & 0x1fff)];
+ code_b4 = m_video_ram[0xe000 + ((y*40 + x + m_video.vram_offset2) & 0x1fff)];
}
for (b = 0; b < 8; b++)
{
@@ -1572,12 +1571,12 @@ SCREEN_UPDATE_IND16( fm7 )
{
for (x = 0; x < 80; x++)
{
- if(!(state->m_video.multi_page & 0x40))
- code_r = state->m_video_ram[page + 0x8000 + ((y*80 + x + state->m_video.vram_offset) & 0x3fff)];
- if(!(state->m_video.multi_page & 0x20))
- code_g = state->m_video_ram[page + 0x4000 + ((y*80 + x + state->m_video.vram_offset) & 0x3fff)];
- if(!(state->m_video.multi_page & 0x10))
- code_b = state->m_video_ram[page + 0x0000 + ((y*80 + x + state->m_video.vram_offset) & 0x3fff)];
+ if(!(m_video.multi_page & 0x40))
+ code_r = m_video_ram[page + 0x8000 + ((y*80 + x + m_video.vram_offset) & 0x3fff)];
+ if(!(m_video.multi_page & 0x20))
+ code_g = m_video_ram[page + 0x4000 + ((y*80 + x + m_video.vram_offset) & 0x3fff)];
+ if(!(m_video.multi_page & 0x10))
+ code_b = m_video_ram[page + 0x0000 + ((y*80 + x + m_video.vram_offset) & 0x3fff)];
for (b = 0; b < 8; b++)
{
col = (((code_r >> b) & 0x01) ? 4 : 0) + (((code_g >> b) & 0x01) ? 2 : 0) + (((code_b >> b) & 0x01) ? 1 : 0);
diff --git a/src/mess/video/galaxy.c b/src/mess/video/galaxy.c
index 08bae05ecd7..eaef0105ca9 100644
--- a/src/mess/video/galaxy.c
+++ b/src/mess/video/galaxy.c
@@ -120,17 +120,16 @@ void galaxy_state::video_start()
machine().primary_screen->register_screen_bitmap(m_bitmap);
}
-SCREEN_UPDATE_IND16( galaxy )
+UINT32 galaxy_state::screen_update_galaxy(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- galaxy_state *state = screen.machine().driver_data<galaxy_state>();
- state->m_gal_video_timer->adjust(attotime::zero, 0, attotime::never);
- if (state->m_interrupts_enabled == FALSE)
+ m_gal_video_timer->adjust(attotime::zero, 0, attotime::never);
+ if (m_interrupts_enabled == FALSE)
{
const rectangle black_area(0, 384 - 1, 0, 208 - 1);
- state->m_bitmap.fill(0, black_area);
+ m_bitmap.fill(0, black_area);
}
- state->m_interrupts_enabled = FALSE;
- copybitmap(bitmap, state->m_bitmap, 0, 0, 0, 0, cliprect);
+ m_interrupts_enabled = FALSE;
+ copybitmap(bitmap, m_bitmap, 0, 0, 0, 0, cliprect);
return 0;
}
diff --git a/src/mess/video/galeb.c b/src/mess/video/galeb.c
index 697033d4f0b..8ffc5362f88 100644
--- a/src/mess/video/galeb.c
+++ b/src/mess/video/galeb.c
@@ -27,16 +27,15 @@ void galeb_state::video_start()
{
}
-SCREEN_UPDATE_IND16( galeb )
+UINT32 galeb_state::screen_update_galeb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- galeb_state *state = screen.machine().driver_data<galeb_state>();
int x,y;
for(y = 0; y < 16; y++ )
{
for(x = 0; x < 48; x++ )
{
- int code = state->m_video_ram[15 + x + y*64];
+ int code = m_video_ram[15 + x + y*64];
drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], code , 0, 0,0, x*8,y*8);
}
}
diff --git a/src/mess/video/hec2video.c b/src/mess/video/hec2video.c
index 693d5a74733..b1e72725bfc 100644
--- a/src/mess/video/hec2video.c
+++ b/src/mess/video/hec2video.c
@@ -116,14 +116,13 @@ VIDEO_START_MEMBER(hec2hrp_state,hec2hrp)
Init_Hector_Palette(machine());
}
-SCREEN_UPDATE_IND16( hec2hrp )
+UINT32 hec2hrp_state::screen_update_hec2hrp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- hec2hrp_state *state = screen.machine().driver_data<hec2hrp_state>();
- UINT8 *videoram = state->m_videoram;
- UINT8 *videoram_HR = state->m_hector_videoram;
- if (state->m_hector_flag_hr==1)
+ UINT8 *videoram = m_videoram;
+ UINT8 *videoram_HR = m_hector_videoram;
+ if (m_hector_flag_hr==1)
{
- if (state->m_hector_flag_80c==0)
+ if (m_hector_flag_80c==0)
{
screen.set_visible_area(0, 243, 0, 227);
hector_hr( screen.machine(), bitmap , &videoram_HR[0], 227, 64);
diff --git a/src/mess/video/hp48.c b/src/mess/video/hp48.c
index bf932171ccf..195f2534e20 100644
--- a/src/mess/video/hp48.c
+++ b/src/mess/video/hp48.c
@@ -127,7 +127,7 @@ void hp48_state::palette_init()
draw_pixel; draw_pixel; draw_pixel; draw_pixel;
-SCREEN_UPDATE_IND16 ( hp48 )
+UINT32 hp48_state::screen_update_hp48(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
hp48_state *state = screen.machine().driver_data<hp48_state>();
address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
@@ -189,14 +189,14 @@ SCREEN_UPDATE_IND16 ( hp48 )
int acc = 0;
for ( i = 0; i < HP48_NB_SCREENS; i++ )
{
- acc += state->m_screens[ i ][ y ][ x+8 ];
+ acc += m_screens[ i ][ y ][ x+8 ];
}
acc = (acc * 255) / (33 * HP48_NB_SCREENS);
bitmap.pix16(y, x ) = acc;
}
}
- state->m_cur_screen = (state->m_cur_screen + 1) % HP48_NB_SCREENS;
+ m_cur_screen = (m_cur_screen + 1) % HP48_NB_SCREENS;
return 0;
}
diff --git a/src/mess/video/intv.c b/src/mess/video/intv.c
index 7c9ac63300d..993a69b45de 100644
--- a/src/mess/video/intv.c
+++ b/src/mess/video/intv.c
@@ -774,28 +774,26 @@ WRITE8_MEMBER( intv_state::intvkbd_tms9927_w )
}
}
-SCREEN_UPDATE_IND16( intv )
+UINT32 intv_state::screen_update_intv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- intv_state *state = screen.machine().driver_data<intv_state>();
- copybitmap(bitmap, state->m_bitmap, 0, 0, 0, 0, cliprect);
+ copybitmap(bitmap, m_bitmap, 0, 0, 0, 0, cliprect);
return 0;
}
-SCREEN_UPDATE_IND16( intvkbd )
+UINT32 intv_state::screen_update_intvkbd(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- intv_state *state = screen.machine().driver_data<intv_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
int x,y,offs;
int current_row;
// char c;
/* Draw the underlying INTV screen first */
- copybitmap(bitmap, state->m_bitmap, 0, 0, 0, 0, cliprect);
+ copybitmap(bitmap, m_bitmap, 0, 0, 0, 0, cliprect);
/* if the intvkbd text is not blanked, overlay it */
- if (!state->m_intvkbd_text_blanked)
+ if (!m_intvkbd_text_blanked)
{
- current_row = (state->m_tms9927_last_row + 1) % state->m_tms9927_num_rows;
+ current_row = (m_tms9927_last_row + 1) % m_tms9927_num_rows;
for(y=0;y<24;y++)
{
for(x=0;x<40;x++)
@@ -808,7 +806,7 @@ SCREEN_UPDATE_IND16( intvkbd )
0,0,
x<<3,y<<3, 0);
}
- if (current_row == state->m_tms9927_cursor_row)
+ if (current_row == m_tms9927_cursor_row)
{
/* draw the cursor as a solid white block */
/* (should use a filled rect here!) */
@@ -817,35 +815,35 @@ SCREEN_UPDATE_IND16( intvkbd )
191, /* a block */
7, /* white */
0,0,
- (state->m_tms9927_cursor_col-1)<<3,y<<3, 0);
+ (m_tms9927_cursor_col-1)<<3,y<<3, 0);
}
- current_row = (current_row + 1) % state->m_tms9927_num_rows;
+ current_row = (current_row + 1) % m_tms9927_num_rows;
}
}
#if 0
// debugging
- c = tape_motor_mode_desc[state->m_tape_motor_mode][0];
- drawgfx_transpen(bitmap,&machine.screen[0].visarea, machine.gfx[1],
+ c = tape_motor_mode_desc[m_tape_motor_mode][0];
+ drawgfx_transpen(bitmap,&machine().screen[0].visarea, machine().gfx[1],
c,
1,
0,0,
0*8,0*8, 0);
for(y=0;y<5;y++)
{
- drawgfx_transpen(bitmap,&machine.screen[0].visarea, machine.gfx[1],
- state->m_tape_unknown_write[y]+'0',
+ drawgfx_transpen(bitmap,&machine().screen[0].visarea, machine().gfx[1],
+ m_tape_unknown_write[y]+'0',
1,
0,0,
0*8,(y+2)*8, 0);
}
- drawgfx_transpen(bitmap,&machine.screen[0].visarea, machine.gfx[1],
- state->m_tape_unknown_write[5]+'0',
+ drawgfx_transpen(bitmap,&machine().screen[0].visarea, machine().gfx[1],
+ m_tape_unknown_write[5]+'0',
1,
0,0,
0*8,8*8, 0);
- drawgfx_transpen(bitmap,&machine.screen[0].visarea, machine.gfx[1],
- state->m_tape_interrupts_enabled+'0',
+ drawgfx_transpen(bitmap,&machine().screen[0].visarea, machine().gfx[1],
+ m_tape_interrupts_enabled+'0',
1,
0,0,
0*8,10*8, 0);
diff --git a/src/mess/video/kaypro.c b/src/mess/video/kaypro.c
index 2f222056691..1ae2c33df65 100644
--- a/src/mess/video/kaypro.c
+++ b/src/mess/video/kaypro.c
@@ -16,9 +16,8 @@ PALETTE_INIT_MEMBER(kaypro_state,kaypro)
palette_set_color(machine(), 2, MAKE_RGB(0, 110, 0)); /* low intensity green */
}
-SCREEN_UPDATE_IND16( kayproii )
+UINT32 kaypro_state::screen_update_kayproii(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- kaypro_state *state = screen.machine().driver_data<kaypro_state>();
/* The display consists of 80 columns and 24 rows. Each row is allocated 128 bytes of ram,
but only the first 80 are used. The total video ram therefore is 0x0c00 bytes.
There is one video attribute: bit 7 causes blinking. The first half of the
@@ -29,7 +28,7 @@ SCREEN_UPDATE_IND16( kayproii )
UINT8 y,ra,chr,gfx;
UINT16 sy=0,ma=0,x;
- state->m_framecnt++;
+ m_framecnt++;
for (y = 0; y < 24; y++)
{
@@ -43,14 +42,14 @@ SCREEN_UPDATE_IND16( kayproii )
if (ra < 8)
{
- chr = state->m_p_videoram[x]^0x80;
+ chr = m_p_videoram[x]^0x80;
/* Take care of flashing characters */
- if ((chr < 0x80) && (state->m_framecnt & 0x08))
+ if ((chr < 0x80) && (m_framecnt & 0x08))
chr |= 0x80;
/* get pattern of pixels for that character scanline */
- gfx = state->m_p_chargen[(chr<<3) | ra ];
+ gfx = m_p_chargen[(chr<<3) | ra ];
}
/* Display a scanline of a character (7 pixels) */
@@ -68,13 +67,12 @@ SCREEN_UPDATE_IND16( kayproii )
return 0;
}
-SCREEN_UPDATE_IND16( omni2 )
+UINT32 kaypro_state::screen_update_omni2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- kaypro_state *state = screen.machine().driver_data<kaypro_state>();
UINT8 y,ra,chr,gfx;
UINT16 sy=0,ma=0,x;
- state->m_framecnt++;
+ m_framecnt++;
for (y = 0; y < 24; y++)
{
@@ -88,14 +86,14 @@ SCREEN_UPDATE_IND16( omni2 )
if (ra < 8)
{
- chr = state->m_p_videoram[x];
+ chr = m_p_videoram[x];
/* Take care of flashing characters */
- if ((chr > 0x7f) && (state->m_framecnt & 0x08))
+ if ((chr > 0x7f) && (m_framecnt & 0x08))
chr |= 0x80;
/* get pattern of pixels for that character scanline */
- gfx = state->m_p_chargen[(chr<<3) | ra ];
+ gfx = m_p_chargen[(chr<<3) | ra ];
}
/* Display a scanline of a character (7 pixels) */
@@ -113,14 +111,13 @@ SCREEN_UPDATE_IND16( omni2 )
return 0;
}
-SCREEN_UPDATE_RGB32( kaypro2x )
+UINT32 kaypro_state::screen_update_kaypro2x(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- kaypro_state *state = screen.machine().driver_data<kaypro_state>();
- state->m_framecnt++;
- state->m_speed = state->m_mc6845_reg[10]&0x20;
- state->m_flash = state->m_mc6845_reg[10]&0x40; // cursor modes
- state->m_cursor = (state->m_mc6845_reg[14]<<8) | state->m_mc6845_reg[15]; // get cursor position
- state->m_crtc->screen_update(screen, bitmap, cliprect);
+ m_framecnt++;
+ m_speed = m_mc6845_reg[10]&0x20;
+ m_flash = m_mc6845_reg[10]&0x40; // cursor modes
+ m_cursor = (m_mc6845_reg[14]<<8) | m_mc6845_reg[15]; // get cursor position
+ m_crtc->screen_update(screen, bitmap, cliprect);
return 0;
}
diff --git a/src/mess/video/kramermc.c b/src/mess/video/kramermc.c
index da08a453071..a059c141f8f 100644
--- a/src/mess/video/kramermc.c
+++ b/src/mess/video/kramermc.c
@@ -27,7 +27,7 @@ void kramermc_state::video_start()
{
}
-SCREEN_UPDATE_IND16( kramermc )
+UINT32 kramermc_state::screen_update_kramermc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int x,y;
address_space &space = *screen.machine().device("maincpu")->memory().space(AS_PROGRAM);
diff --git a/src/mess/video/llc.c b/src/mess/video/llc.c
index 21bf45b51c1..2a226a57444 100644
--- a/src/mess/video/llc.c
+++ b/src/mess/video/llc.c
@@ -15,9 +15,8 @@ void llc_state::video_start()
m_p_chargen = memregion("chargen")->base();
}
-SCREEN_UPDATE_IND16( llc1 )
+UINT32 llc_state::screen_update_llc1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- llc_state *state = screen.machine().driver_data<llc_state>();
UINT8 y,ra,chr,gfx,inv;
UINT16 sy=0,ma=0,x;
@@ -29,11 +28,11 @@ SCREEN_UPDATE_IND16( llc1 )
for (x = ma; x < ma + 64; x++)
{
- inv = (state->m_p_videoram[x] & 0x80) ? 0xff : 0;
- chr = state->m_p_videoram[x] & 0x7f;
+ inv = (m_p_videoram[x] & 0x80) ? 0xff : 0;
+ chr = m_p_videoram[x] & 0x7f;
/* get pattern of pixels for that character scanline */
- gfx = state->m_p_chargen[ chr | (ra << 7) ] ^ inv;
+ gfx = m_p_chargen[ chr | (ra << 7) ] ^ inv;
/* Display a scanline of a character (8 pixels) */
*p++ = BIT(gfx, 7);
@@ -51,10 +50,9 @@ SCREEN_UPDATE_IND16( llc1 )
return 0;
}
-SCREEN_UPDATE_IND16( llc2 )
+UINT32 llc_state::screen_update_llc2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- llc_state *state = screen.machine().driver_data<llc_state>();
- UINT8 y,ra,chr,gfx,inv, inv1=state->m_rv ? 0xff : 0;
+ UINT8 y,ra,chr,gfx,inv, inv1=m_rv ? 0xff : 0;
UINT16 sy=0,ma=0,x;
for (y = 0; y < 32; y++)
@@ -66,7 +64,7 @@ SCREEN_UPDATE_IND16( llc2 )
for (x = ma; x < ma + 64; x++)
{
- chr = state->m_p_videoram[x];
+ chr = m_p_videoram[x];
if (chr==0x11) // inverse on
{
inv=0xff;
@@ -77,7 +75,7 @@ SCREEN_UPDATE_IND16( llc2 )
inv=0;
/* get pattern of pixels for that character scanline */
- gfx = state->m_p_chargen[ (chr << 3) | ra ] ^ inv ^ inv1;
+ gfx = m_p_chargen[ (chr << 3) | ra ] ^ inv ^ inv1;
/* Display a scanline of a character (8 pixels) */
*p++ = BIT(gfx, 7);
diff --git a/src/mess/video/lviv.c b/src/mess/video/lviv.c
index c1b5ea3a515..711daa4c599 100644
--- a/src/mess/video/lviv.c
+++ b/src/mess/video/lviv.c
@@ -63,9 +63,8 @@ void lviv_state::video_start()
{
}
-SCREEN_UPDATE_IND16( lviv )
+UINT32 lviv_state::screen_update_lviv(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- lviv_state *state = screen.machine().driver_data<lviv_state>();
int x,y;
int pen;
UINT8 data;
@@ -73,18 +72,18 @@ SCREEN_UPDATE_IND16( lviv )
for (y=0; y<256; y++)
for (x=0; x<256; x+=4)
{
- data = state->m_video_ram[y*64+x/4];
+ data = m_video_ram[y*64+x/4];
- pen = state->m_colortable[0][((data & 0x08) >> 3) | ((data & 0x80) >> (3+3))];
+ pen = m_colortable[0][((data & 0x08) >> 3) | ((data & 0x80) >> (3+3))];
bitmap.pix16(y, x + 0) = pen;
- pen = state->m_colortable[0][((data & 0x04) >> 2) | ((data & 0x40) >> (2+3))];
+ pen = m_colortable[0][((data & 0x04) >> 2) | ((data & 0x40) >> (2+3))];
bitmap.pix16(y, x + 1) = pen;
- pen = state->m_colortable[0][((data & 0x02) >> 1) | ((data & 0x20) >> (1+3))];
+ pen = m_colortable[0][((data & 0x02) >> 1) | ((data & 0x20) >> (1+3))];
bitmap.pix16(y, x + 2) = pen;
- pen = state->m_colortable[0][((data & 0x01) >> 0) | ((data & 0x10) >> (0+3))];
+ pen = m_colortable[0][((data & 0x01) >> 0) | ((data & 0x10) >> (0+3))];
bitmap.pix16(y, x + 3) = pen;
}
return 0;
diff --git a/src/mess/video/mac.c b/src/mess/video/mac.c
index 8446b0b6a54..0f973e1b3c8 100644
--- a/src/mess/video/mac.c
+++ b/src/mess/video/mac.c
@@ -78,16 +78,15 @@ VIDEO_START_MEMBER(mac_state,mac)
#define MAC_MAIN_SCREEN_BUF_OFFSET 0x5900
#define MAC_ALT_SCREEN_BUF_OFFSET 0xD900
-SCREEN_UPDATE_IND16( mac )
+UINT32 mac_state::screen_update_mac(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
UINT32 video_base;
const UINT16 *video_ram;
UINT16 word;
UINT16 *line;
int y, x, b;
- mac_state *state = screen.machine().driver_data<mac_state>();
- video_base = screen.machine().device<ram_device>(RAM_TAG)->size() - (state->m_screen_buffer ? MAC_MAIN_SCREEN_BUF_OFFSET : MAC_ALT_SCREEN_BUF_OFFSET);
+ video_base = screen.machine().device<ram_device>(RAM_TAG)->size() - (m_screen_buffer ? MAC_MAIN_SCREEN_BUF_OFFSET : MAC_ALT_SCREEN_BUF_OFFSET);
video_ram = (const UINT16 *) (screen.machine().device<ram_device>(RAM_TAG)->pointer() + video_base);
for (y = 0; y < MAC_V_VIS; y++)
@@ -106,17 +105,16 @@ SCREEN_UPDATE_IND16( mac )
return 0;
}
-SCREEN_UPDATE_IND16( macse30 )
+UINT32 mac_state::screen_update_macse30(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
UINT32 video_base;
const UINT16 *video_ram;
UINT16 word;
UINT16 *line;
int y, x, b;
- mac_state *state = screen.machine().driver_data<mac_state>();
- video_base = state->m_screen_buffer ? 0x8000 : 0;
- video_ram = (const UINT16 *) &state->m_vram[video_base/4];
+ video_base = m_screen_buffer ? 0x8000 : 0;
+ video_ram = (const UINT16 *) &m_vram[video_base/4];
for (y = 0; y < MAC_V_VIS; y++)
{
@@ -134,15 +132,14 @@ SCREEN_UPDATE_IND16( macse30 )
return 0;
}
-SCREEN_UPDATE_IND16( macprtb )
+UINT32 mac_state::screen_update_macprtb(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
const UINT16 *video_ram;
UINT16 word;
UINT16 *line;
int y, x, b;
- mac_state *state = screen.machine().driver_data<mac_state>();
- video_ram = (const UINT16 *) state->m_vram16.target();
+ video_ram = (const UINT16 *) m_vram16.target();
for (y = 0; y < 400; y++)
{
@@ -160,15 +157,14 @@ SCREEN_UPDATE_IND16( macprtb )
return 0;
}
-SCREEN_UPDATE_IND16( macpb140 )
+UINT32 mac_state::screen_update_macpb140(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
const UINT16 *video_ram;
UINT16 word;
UINT16 *line;
int y, x, b;
- mac_state *state = screen.machine().driver_data<mac_state>();
- video_ram = (const UINT16 *) state->m_vram.target();
+ video_ram = (const UINT16 *) m_vram.target();
for (y = 0; y < 400; y++)
{
@@ -186,13 +182,12 @@ SCREEN_UPDATE_IND16( macpb140 )
return 0;
}
-SCREEN_UPDATE_IND16( macpb160 )
+UINT32 mac_state::screen_update_macpb160(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
UINT16 *line;
int y, x;
UINT8 pixels;
- mac_state *state = screen.machine().driver_data<mac_state>();
- UINT8 *vram8 = (UINT8 *)state->m_vram.target();
+ UINT8 *vram8 = (UINT8 *)m_vram.target();
for (y = 0; y < 400; y++)
{
@@ -374,14 +369,13 @@ VIDEO_START_MEMBER(mac_state,macv8)
m_rbv_type = RBV_TYPE_V8;
}
-SCREEN_UPDATE_RGB32( macrbv )
+UINT32 mac_state::screen_update_macrbv(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
UINT32 *scanline;
int x, y, hres, vres;
- mac_state *mac = screen.machine().driver_data<mac_state>();
UINT8 *vram8 = (UINT8 *)screen.machine().device<ram_device>(RAM_TAG)->pointer();
- switch (mac->m_rbv_montype)
+ switch (m_rbv_montype)
{
case 32: // classic II built-in display
hres = MAC_H_VIS;
@@ -406,7 +400,7 @@ SCREEN_UPDATE_RGB32( macrbv )
break;
}
- switch (mac->m_rbv_regs[0x10] & 7)
+ switch (m_rbv_regs[0x10] & 7)
{
case 0: // 1bpp
{
@@ -419,14 +413,14 @@ SCREEN_UPDATE_RGB32( macrbv )
{
pixels = vram8[(y * (hres/8)) + ((x/8)^3)];
- *scanline++ = mac->m_rbv_palette[0xfe|(pixels>>7)];
- *scanline++ = mac->m_rbv_palette[0xfe|((pixels>>6)&1)];
- *scanline++ = mac->m_rbv_palette[0xfe|((pixels>>5)&1)];
- *scanline++ = mac->m_rbv_palette[0xfe|((pixels>>4)&1)];
- *scanline++ = mac->m_rbv_palette[0xfe|((pixels>>3)&1)];
- *scanline++ = mac->m_rbv_palette[0xfe|((pixels>>2)&1)];
- *scanline++ = mac->m_rbv_palette[0xfe|((pixels>>1)&1)];
- *scanline++ = mac->m_rbv_palette[0xfe|(pixels&1)];
+ *scanline++ = m_rbv_palette[0xfe|(pixels>>7)];
+ *scanline++ = m_rbv_palette[0xfe|((pixels>>6)&1)];
+ *scanline++ = m_rbv_palette[0xfe|((pixels>>5)&1)];
+ *scanline++ = m_rbv_palette[0xfe|((pixels>>4)&1)];
+ *scanline++ = m_rbv_palette[0xfe|((pixels>>3)&1)];
+ *scanline++ = m_rbv_palette[0xfe|((pixels>>2)&1)];
+ *scanline++ = m_rbv_palette[0xfe|((pixels>>1)&1)];
+ *scanline++ = m_rbv_palette[0xfe|(pixels&1)];
}
}
}
@@ -443,10 +437,10 @@ SCREEN_UPDATE_RGB32( macrbv )
{
pixels = vram8[(y * (hres/4)) + (BYTE4_XOR_BE(x))];
- *scanline++ = mac->m_rbv_palette[0xfc|((pixels>>6)&3)];
- *scanline++ = mac->m_rbv_palette[0xfc|((pixels>>4)&3)];
- *scanline++ = mac->m_rbv_palette[0xfc|((pixels>>2)&3)];
- *scanline++ = mac->m_rbv_palette[0xfc|(pixels&3)];
+ *scanline++ = m_rbv_palette[0xfc|((pixels>>6)&3)];
+ *scanline++ = m_rbv_palette[0xfc|((pixels>>4)&3)];
+ *scanline++ = m_rbv_palette[0xfc|((pixels>>2)&3)];
+ *scanline++ = m_rbv_palette[0xfc|(pixels&3)];
}
}
}
@@ -464,8 +458,8 @@ SCREEN_UPDATE_RGB32( macrbv )
{
pixels = vram8[(y * (hres/2)) + (BYTE4_XOR_BE(x))];
- *scanline++ = mac->m_rbv_palette[0xf0|(pixels>>4)];
- *scanline++ = mac->m_rbv_palette[0xf0|(pixels&0xf)];
+ *scanline++ = m_rbv_palette[0xf0|(pixels>>4)];
+ *scanline++ = m_rbv_palette[0xf0|(pixels&0xf)];
}
}
}
@@ -482,7 +476,7 @@ SCREEN_UPDATE_RGB32( macrbv )
for (x = 0; x < hres; x++)
{
pixels = vram8[(y * hres) + (BYTE4_XOR_BE(x))];
- *scanline++ = mac->m_rbv_palette[pixels];
+ *scanline++ = m_rbv_palette[pixels];
}
}
}
@@ -491,25 +485,24 @@ SCREEN_UPDATE_RGB32( macrbv )
return 0;
}
-SCREEN_UPDATE_RGB32( macrbvvram )
+UINT32 mac_state::screen_update_macrbvvram(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
UINT32 *scanline;
int x, y;
- mac_state *mac = screen.machine().driver_data<mac_state>();
UINT8 mode = 0;
- switch (mac->m_rbv_type)
+ switch (m_rbv_type)
{
case RBV_TYPE_RBV:
case RBV_TYPE_V8:
- mode = mac->m_rbv_regs[0x10] & 7;
+ mode = m_rbv_regs[0x10] & 7;
break;
case RBV_TYPE_SONORA:
- mode = mac->m_sonora_vctl[1] & 7;
+ mode = m_sonora_vctl[1] & 7;
// forced blank?
- if (mac->m_sonora_vctl[0] & 0x80)
+ if (m_sonora_vctl[0] & 0x80)
{
return 0;
}
@@ -520,10 +513,10 @@ SCREEN_UPDATE_RGB32( macrbvvram )
{
case 0: // 1bpp
{
- UINT8 *vram8 = (UINT8 *)mac->m_vram.target();
+ UINT8 *vram8 = (UINT8 *)m_vram.target();
UINT8 pixels;
- if (mac->m_rbv_type == RBV_TYPE_SONORA)
+ if (m_rbv_type == RBV_TYPE_SONORA)
{
for (y = 0; y < 480; y++)
{
@@ -532,14 +525,14 @@ SCREEN_UPDATE_RGB32( macrbvvram )
{
pixels = vram8[(y * 80) + ((x/8)^3)];
- *scanline++ = mac->m_rbv_palette[0x7f|(pixels&0x80)];
- *scanline++ = mac->m_rbv_palette[0x7f|((pixels<<1)&0x80)];
- *scanline++ = mac->m_rbv_palette[0x7f|((pixels<<2)&0x80)];
- *scanline++ = mac->m_rbv_palette[0x7f|((pixels<<3)&0x80)];
- *scanline++ = mac->m_rbv_palette[0x7f|((pixels<<4)&0x80)];
- *scanline++ = mac->m_rbv_palette[0x7f|((pixels<<5)&0x80)];
- *scanline++ = mac->m_rbv_palette[0x7f|((pixels<<6)&0x80)];
- *scanline++ = mac->m_rbv_palette[0x7f|((pixels<<7)&0x80)];
+ *scanline++ = m_rbv_palette[0x7f|(pixels&0x80)];
+ *scanline++ = m_rbv_palette[0x7f|((pixels<<1)&0x80)];
+ *scanline++ = m_rbv_palette[0x7f|((pixels<<2)&0x80)];
+ *scanline++ = m_rbv_palette[0x7f|((pixels<<3)&0x80)];
+ *scanline++ = m_rbv_palette[0x7f|((pixels<<4)&0x80)];
+ *scanline++ = m_rbv_palette[0x7f|((pixels<<5)&0x80)];
+ *scanline++ = m_rbv_palette[0x7f|((pixels<<6)&0x80)];
+ *scanline++ = m_rbv_palette[0x7f|((pixels<<7)&0x80)];
}
}
}
@@ -552,14 +545,14 @@ SCREEN_UPDATE_RGB32( macrbvvram )
{
pixels = vram8[(y * 0x400) + ((x/8)^3)];
- *scanline++ = mac->m_rbv_palette[0x7f|(pixels&0x80)];
- *scanline++ = mac->m_rbv_palette[0x7f|((pixels<<1)&0x80)];
- *scanline++ = mac->m_rbv_palette[0x7f|((pixels<<2)&0x80)];
- *scanline++ = mac->m_rbv_palette[0x7f|((pixels<<3)&0x80)];
- *scanline++ = mac->m_rbv_palette[0x7f|((pixels<<4)&0x80)];
- *scanline++ = mac->m_rbv_palette[0x7f|((pixels<<5)&0x80)];
- *scanline++ = mac->m_rbv_palette[0x7f|((pixels<<6)&0x80)];
- *scanline++ = mac->m_rbv_palette[0x7f|((pixels<<7)&0x80)];
+ *scanline++ = m_rbv_palette[0x7f|(pixels&0x80)];
+ *scanline++ = m_rbv_palette[0x7f|((pixels<<1)&0x80)];
+ *scanline++ = m_rbv_palette[0x7f|((pixels<<2)&0x80)];
+ *scanline++ = m_rbv_palette[0x7f|((pixels<<3)&0x80)];
+ *scanline++ = m_rbv_palette[0x7f|((pixels<<4)&0x80)];
+ *scanline++ = m_rbv_palette[0x7f|((pixels<<5)&0x80)];
+ *scanline++ = m_rbv_palette[0x7f|((pixels<<6)&0x80)];
+ *scanline++ = m_rbv_palette[0x7f|((pixels<<7)&0x80)];
}
}
}
@@ -568,7 +561,7 @@ SCREEN_UPDATE_RGB32( macrbvvram )
case 1: // 2bpp
{
- UINT8 *vram8 = (UINT8 *)mac->m_vram.target();
+ UINT8 *vram8 = (UINT8 *)m_vram.target();
UINT8 pixels;
for (y = 0; y < 480; y++)
@@ -578,10 +571,10 @@ SCREEN_UPDATE_RGB32( macrbvvram )
{
pixels = vram8[(y * 160) + (BYTE4_XOR_BE(x))];
- *scanline++ = mac->m_rbv_palette[0xfc|((pixels>>6)&3)];
- *scanline++ = mac->m_rbv_palette[0xfc|((pixels>>4)&3)];
- *scanline++ = mac->m_rbv_palette[0xfc|((pixels>>2)&3)];
- *scanline++ = mac->m_rbv_palette[0xfc|(pixels&3)];
+ *scanline++ = m_rbv_palette[0xfc|((pixels>>6)&3)];
+ *scanline++ = m_rbv_palette[0xfc|((pixels>>4)&3)];
+ *scanline++ = m_rbv_palette[0xfc|((pixels>>2)&3)];
+ *scanline++ = m_rbv_palette[0xfc|(pixels&3)];
}
}
}
@@ -589,7 +582,7 @@ SCREEN_UPDATE_RGB32( macrbvvram )
case 2: // 4bpp
{
- UINT8 *vram8 = (UINT8 *)mac->m_vram.target();
+ UINT8 *vram8 = (UINT8 *)m_vram.target();
UINT8 pixels;
for (y = 0; y < 480; y++)
@@ -600,8 +593,8 @@ SCREEN_UPDATE_RGB32( macrbvvram )
{
pixels = vram8[(y * 320) + (BYTE4_XOR_BE(x))];
- *scanline++ = mac->m_rbv_palette[0xf0|(pixels>>4)];
- *scanline++ = mac->m_rbv_palette[0xf0|(pixels&0xf)];
+ *scanline++ = m_rbv_palette[0xf0|(pixels>>4)];
+ *scanline++ = m_rbv_palette[0xf0|(pixels&0xf)];
}
}
}
@@ -609,10 +602,10 @@ SCREEN_UPDATE_RGB32( macrbvvram )
case 3: // 8bpp
{
- UINT8 *vram8 = (UINT8 *)mac->m_vram.target();
+ UINT8 *vram8 = (UINT8 *)m_vram.target();
UINT8 pixels;
- if (mac->m_rbv_type == RBV_TYPE_SONORA)
+ if (m_rbv_type == RBV_TYPE_SONORA)
{
for (y = 0; y < 480; y++)
{
@@ -621,7 +614,7 @@ SCREEN_UPDATE_RGB32( macrbvvram )
for (x = 0; x < 640; x++)
{
pixels = vram8[(y * 0x280) + (BYTE4_XOR_BE(x))];
- *scanline++ = mac->m_rbv_palette[pixels];
+ *scanline++ = m_rbv_palette[pixels];
}
}
}
@@ -634,7 +627,7 @@ SCREEN_UPDATE_RGB32( macrbvvram )
for (x = 0; x < 640; x++)
{
pixels = vram8[(y * 2048) + (BYTE4_XOR_BE(x))];
- *scanline++ = mac->m_rbv_palette[pixels];
+ *scanline++ = m_rbv_palette[pixels];
}
}
}
@@ -855,35 +848,34 @@ WRITE32_MEMBER(mac_state::dafb_dac_w)
}
}
-SCREEN_UPDATE_RGB32( macdafb )
+UINT32 mac_state::screen_update_macdafb(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
UINT32 *scanline;
int x, y;
- mac_state *mac = screen.machine().driver_data<mac_state>();
- switch (mac->m_dafb_mode)
+ switch (m_dafb_mode)
{
case 0: // 1bpp
{
- UINT8 *vram8 = (UINT8 *)mac->m_vram.target();
+ UINT8 *vram8 = (UINT8 *)m_vram.target();
UINT8 pixels;
- vram8 += mac->m_dafb_base;
+ vram8 += m_dafb_base;
for (y = 0; y < 870; y++)
{
scanline = &bitmap.pix32(y);
for (x = 0; x < 1152; x+=8)
{
- pixels = vram8[(y * mac->m_dafb_stride) + ((x/8)^3)];
-
- *scanline++ = mac->m_rbv_palette[(pixels>>7)&1];
- *scanline++ = mac->m_rbv_palette[(pixels>>6)&1];
- *scanline++ = mac->m_rbv_palette[(pixels>>5)&1];
- *scanline++ = mac->m_rbv_palette[(pixels>>4)&1];
- *scanline++ = mac->m_rbv_palette[(pixels>>3)&1];
- *scanline++ = mac->m_rbv_palette[(pixels>>2)&1];
- *scanline++ = mac->m_rbv_palette[(pixels>>1)&1];
- *scanline++ = mac->m_rbv_palette[(pixels&1)];
+ pixels = vram8[(y * m_dafb_stride) + ((x/8)^3)];
+
+ *scanline++ = m_rbv_palette[(pixels>>7)&1];
+ *scanline++ = m_rbv_palette[(pixels>>6)&1];
+ *scanline++ = m_rbv_palette[(pixels>>5)&1];
+ *scanline++ = m_rbv_palette[(pixels>>4)&1];
+ *scanline++ = m_rbv_palette[(pixels>>3)&1];
+ *scanline++ = m_rbv_palette[(pixels>>2)&1];
+ *scanline++ = m_rbv_palette[(pixels>>1)&1];
+ *scanline++ = m_rbv_palette[(pixels&1)];
}
}
}
@@ -891,21 +883,21 @@ SCREEN_UPDATE_RGB32( macdafb )
case 1: // 2bpp
{
- UINT8 *vram8 = (UINT8 *)mac->m_vram.target();
+ UINT8 *vram8 = (UINT8 *)m_vram.target();
UINT8 pixels;
- vram8 += mac->m_dafb_base;
+ vram8 += m_dafb_base;
for (y = 0; y < 870; y++)
{
scanline = &bitmap.pix32(y);
for (x = 0; x < 1152/4; x++)
{
- pixels = vram8[(y * mac->m_dafb_stride) + (BYTE4_XOR_BE(x))];
+ pixels = vram8[(y * m_dafb_stride) + (BYTE4_XOR_BE(x))];
- *scanline++ = mac->m_rbv_palette[((pixels>>6)&3)];
- *scanline++ = mac->m_rbv_palette[((pixels>>4)&3)];
- *scanline++ = mac->m_rbv_palette[((pixels>>2)&3)];
- *scanline++ = mac->m_rbv_palette[(pixels&3)];
+ *scanline++ = m_rbv_palette[((pixels>>6)&3)];
+ *scanline++ = m_rbv_palette[((pixels>>4)&3)];
+ *scanline++ = m_rbv_palette[((pixels>>2)&3)];
+ *scanline++ = m_rbv_palette[(pixels&3)];
}
}
}
@@ -913,9 +905,9 @@ SCREEN_UPDATE_RGB32( macdafb )
case 2: // 4bpp
{
- UINT8 *vram8 = (UINT8 *)mac->m_vram.target();
+ UINT8 *vram8 = (UINT8 *)m_vram.target();
UINT8 pixels;
- vram8 += mac->m_dafb_base;
+ vram8 += m_dafb_base;
for (y = 0; y < 870; y++)
{
@@ -923,10 +915,10 @@ SCREEN_UPDATE_RGB32( macdafb )
for (x = 0; x < 1152/2; x++)
{
- pixels = vram8[(y * mac->m_dafb_stride) + (BYTE4_XOR_BE(x))];
+ pixels = vram8[(y * m_dafb_stride) + (BYTE4_XOR_BE(x))];
- *scanline++ = mac->m_rbv_palette[(pixels>>4)];
- *scanline++ = mac->m_rbv_palette[(pixels&0xf)];
+ *scanline++ = m_rbv_palette[(pixels>>4)];
+ *scanline++ = m_rbv_palette[(pixels&0xf)];
}
}
}
@@ -934,9 +926,9 @@ SCREEN_UPDATE_RGB32( macdafb )
case 3: // 8bpp
{
- UINT8 *vram8 = (UINT8 *)mac->m_vram.target();
+ UINT8 *vram8 = (UINT8 *)m_vram.target();
UINT8 pixels;
- vram8 += mac->m_dafb_base;
+ vram8 += m_dafb_base;
for (y = 0; y < 870; y++)
{
@@ -944,8 +936,8 @@ SCREEN_UPDATE_RGB32( macdafb )
for (x = 0; x < 1152; x++)
{
- pixels = vram8[(y * mac->m_dafb_stride) + (BYTE4_XOR_BE(x))];
- *scanline++ = mac->m_rbv_palette[pixels];
+ pixels = vram8[(y * m_dafb_stride) + (BYTE4_XOR_BE(x))];
+ *scanline++ = m_rbv_palette[pixels];
}
}
}
@@ -957,7 +949,7 @@ SCREEN_UPDATE_RGB32( macdafb )
UINT32 *base;
scanline = &bitmap.pix32(y);
- base = (UINT32 *)&mac->m_vram[(y * (mac->m_dafb_stride/4)) + (mac->m_dafb_base/4)];
+ base = (UINT32 *)&m_vram[(y * (m_dafb_stride/4)) + (m_dafb_base/4)];
for (x = 0; x < 640; x++)
{
*scanline++ = *base++;
@@ -969,12 +961,11 @@ SCREEN_UPDATE_RGB32( macdafb )
return 0;
}
-SCREEN_UPDATE_RGB32( macpbwd ) /* Color PowerBooks using an off-the-shelf WD video chipset */
+UINT32 mac_state::screen_update_macpbwd(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)/* Color PowerBooks using an off-the-shelf WD video chipset */
{
UINT32 *scanline;
int x, y;
- mac_state *mac = screen.machine().driver_data<mac_state>();
- UINT8 *vram8 = (UINT8 *)mac->m_vram.target();
+ UINT8 *vram8 = (UINT8 *)m_vram.target();
UINT8 pixels;
// vram8 += 0x40000;
@@ -985,7 +976,7 @@ SCREEN_UPDATE_RGB32( macpbwd ) /* Color PowerBooks using an off-the-shelf WD
for (x = 0; x < 640; x++)
{
pixels = vram8[(y * 640) + (BYTE4_XOR_BE(x))];
- *scanline++ = mac->m_rbv_palette[pixels];
+ *scanline++ = m_rbv_palette[pixels];
}
}
diff --git a/src/mess/video/mbc55x.c b/src/mess/video/mbc55x.c
index 4a6dc4ff0f5..67b6019a755 100644
--- a/src/mess/video/mbc55x.c
+++ b/src/mess/video/mbc55x.c
@@ -193,7 +193,7 @@ void mbc55x_state::video_reset()
logerror("Video reset\n");
}
-SCREEN_VBLANK( mbc55x )
+void mbc55x_state::screen_eof_mbc55x(screen_device &screen, bool state)
{
// logerror("SCREEN_VBLANK( mbc55x )\n");
}
diff --git a/src/mess/video/mbee.c b/src/mess/video/mbee.c
index f3402c6cd43..81d46cd5895 100644
--- a/src/mess/video/mbee.c
+++ b/src/mess/video/mbee.c
@@ -383,13 +383,12 @@ VIDEO_START_MEMBER(mbee_state,mbeeppc)
m_is_premium = 1;
}
-SCREEN_UPDATE_RGB32( mbee )
+UINT32 mbee_state::screen_update_mbee(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- mbee_state *state = screen.machine().driver_data<mbee_state>();
- state->m_framecnt++;
- state->m_speed = state->m_sy6545_reg[10]&0x20, state->m_flash = state->m_sy6545_reg[10]&0x40; // cursor modes
- state->m_cursor = (state->m_sy6545_reg[14]<<8) | state->m_sy6545_reg[15]; // get cursor position
- state->m_crtc->screen_update(screen, bitmap, cliprect);
+ m_framecnt++;
+ m_speed = m_sy6545_reg[10]&0x20, m_flash = m_sy6545_reg[10]&0x40; // cursor modes
+ m_cursor = (m_sy6545_reg[14]<<8) | m_sy6545_reg[15]; // get cursor position
+ m_crtc->screen_update(screen, bitmap, cliprect);
return 0;
}
diff --git a/src/mess/video/mc80.c b/src/mess/video/mc80.c
index 604b9f338ca..92f996c8788 100644
--- a/src/mess/video/mc80.c
+++ b/src/mess/video/mc80.c
@@ -96,9 +96,8 @@ VIDEO_START_MEMBER(mc80_state,mc8020)
{
}
-SCREEN_UPDATE_IND16( mc8020 )
+UINT32 mc80_state::screen_update_mc8020(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mc80_state *state = screen.machine().driver_data<mc80_state>();
UINT8 y,ra,chr,gfx;
UINT16 sy=0,ma=0,x;
@@ -112,7 +111,7 @@ SCREEN_UPDATE_IND16( mc8020 )
{
if (ra > 3 && ra < 12)
{
- chr = state->m_p_videoram[x];
+ chr = m_p_videoram[x];
gfx = prom[(chr<<3) | (ra-4)];
}
else
@@ -142,9 +141,8 @@ VIDEO_START_MEMBER(mc80_state,mc8030)
m_p_videoram.set_target(memregion("vram")->base(),m_p_videoram.bytes());
}
-SCREEN_UPDATE_IND16( mc8030 )
+UINT32 mc80_state::screen_update_mc8030(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mc80_state *state = screen.machine().driver_data<mc80_state>();
UINT8 gfx;
UINT16 y=0,ma=0,x;
@@ -154,7 +152,7 @@ SCREEN_UPDATE_IND16( mc8030 )
{
for (x = ma; x < ma + 64; x++)
{
- gfx = state->m_p_videoram[x^0x3fff];
+ gfx = m_p_videoram[x^0x3fff];
/* Display a scanline of a character */
*p++ = BIT(gfx, 7);
diff --git a/src/mess/video/microtan.c b/src/mess/video/microtan.c
index d39e7c77a71..8c250604aec 100644
--- a/src/mess/video/microtan.c
+++ b/src/mess/video/microtan.c
@@ -48,9 +48,8 @@ void microtan_state::video_start()
m_chunky_graphics = 0;
}
-SCREEN_UPDATE_IND16( microtan )
+UINT32 microtan_state::screen_update_microtan(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- microtan_state *state = screen.machine().driver_data<microtan_state>();
- state->m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
+ m_bg_tilemap->draw(bitmap, cliprect, 0, 0);
return 0;
}
diff --git a/src/mess/video/mikro80.c b/src/mess/video/mikro80.c
index 519e255b6f2..209dca9b4b0 100644
--- a/src/mess/video/mikro80.c
+++ b/src/mess/video/mikro80.c
@@ -15,10 +15,9 @@ void mikro80_state::video_start()
{
}
-SCREEN_UPDATE_IND16( mikro80 )
+UINT32 mikro80_state::screen_update_mikro80(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mikro80_state *state = screen.machine().driver_data<mikro80_state>();
- UINT8 *gfx = state->memregion("gfx1")->base();
+ UINT8 *gfx = memregion("gfx1")->base();
int x,y,b;
for(y = 0; y < 32*8; y++ )
@@ -26,8 +25,8 @@ SCREEN_UPDATE_IND16( mikro80 )
for(x = 0; x < 64; x++ )
{
int addr = x + (y / 8)*64;
- UINT8 code = gfx[state->m_video_ram [addr]*8+ (y % 8)];
- UINT8 attr = state->m_cursor_ram[addr+1] & 0x80 ? 1 : 0;
+ UINT8 code = gfx[m_video_ram [addr]*8+ (y % 8)];
+ UINT8 attr = m_cursor_ram[addr+1] & 0x80 ? 1 : 0;
for (b = 7; b >= 0; b--)
{
UINT8 col = (code >> b) & 0x01;
diff --git a/src/mess/video/mz700.c b/src/mess/video/mz700.c
index 96d1164d7d3..e10b1dbd201 100644
--- a/src/mess/video/mz700.c
+++ b/src/mess/video/mz700.c
@@ -46,12 +46,10 @@ void mz_state::palette_init()
}
-SCREEN_UPDATE_IND16( mz700 )
+UINT32 mz_state::screen_update_mz700(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mz_state *state = screen.machine().driver_data<mz_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
int offs;
- mz_state *mz = screen.machine().driver_data<mz_state>();
bitmap.fill(get_black_pen(screen.machine()), cliprect);
@@ -62,7 +60,7 @@ SCREEN_UPDATE_IND16( mz700 )
sy = (offs / 40) * 8;
sx = (offs % 40) * 8;
- color = mz->m_colorram[offs];
+ color = m_colorram[offs];
code = videoram[offs] | (color & 0x80) << 1;
drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], code, color, 0, 0, sx, sy);
@@ -81,19 +79,17 @@ VIDEO_START_MEMBER(mz_state,mz800)
machine().gfx[0]->set_source(m_cgram);
}
-SCREEN_UPDATE_IND16( mz800 )
+UINT32 mz_state::screen_update_mz800(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mz_state *state = screen.machine().driver_data<mz_state>();
- UINT8 *videoram = state->m_videoram;
- mz_state *mz = screen.machine().driver_data<mz_state>();
+ UINT8 *videoram = m_videoram;
bitmap.fill(get_black_pen(screen.machine()), cliprect);
- if (mz->m_mz700_mode)
- return SCREEN_UPDATE16_CALL(mz700);
+ if (m_mz700_mode)
+ return SCREEN_UPDATE16_CALL_MEMBER(mz700);
else
{
- if (mz->m_hires_mode)
+ if (m_hires_mode)
{
}
diff --git a/src/mess/video/mz80.c b/src/mess/video/mz80.c
index 0f849b592e7..bcf756a3971 100644
--- a/src/mess/video/mz80.c
+++ b/src/mess/video/mz80.c
@@ -36,11 +36,10 @@ void mz80_state::video_start()
m_p_chargen = memregion("chargen")->base();
}
-SCREEN_UPDATE_IND16( mz80k )
+UINT32 mz80_state::screen_update_mz80k(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mz80_state *state = screen.machine().driver_data<mz80_state>();
- state->m_mz80k_vertical ^= 1;
- state->m_mz80k_cursor_cnt++;
+ m_mz80k_vertical ^= 1;
+ m_mz80k_cursor_cnt++;
UINT8 y,ra,chr,gfx;
UINT16 x,sy=0,ma=0;
@@ -52,8 +51,8 @@ SCREEN_UPDATE_IND16( mz80k )
for (x = ma; x < ma + 40; x++)
{
- chr = state->m_p_videoram[x];
- gfx = state->m_p_chargen[(chr<<3) | ra];
+ chr = m_p_videoram[x];
+ gfx = m_p_chargen[(chr<<3) | ra];
/* Display a scanline of a character */
*p++ = BIT(gfx, 7);
@@ -72,11 +71,10 @@ SCREEN_UPDATE_IND16( mz80k )
}
// same as above except bits are in reverse order
-SCREEN_UPDATE_IND16( mz80kj )
+UINT32 mz80_state::screen_update_mz80kj(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mz80_state *state = screen.machine().driver_data<mz80_state>();
- state->m_mz80k_vertical ^= 1;
- state->m_mz80k_cursor_cnt++;
+ m_mz80k_vertical ^= 1;
+ m_mz80k_cursor_cnt++;
UINT8 y,ra,chr,gfx;
UINT16 x,sy=0,ma=0;
@@ -88,8 +86,8 @@ SCREEN_UPDATE_IND16( mz80kj )
for (x = ma; x < ma + 40; x++)
{
- chr = state->m_p_videoram[x];
- gfx = state->m_p_chargen[(chr<<3) | ra];
+ chr = m_p_videoram[x];
+ gfx = m_p_chargen[(chr<<3) | ra];
/* Display a scanline of a character */
*p++ = BIT(gfx, 0);
@@ -108,13 +106,12 @@ SCREEN_UPDATE_IND16( mz80kj )
}
// has twice as much video ram and uses a scroll register
-SCREEN_UPDATE_IND16( mz80a )
+UINT32 mz80_state::screen_update_mz80a(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- mz80_state *state = screen.machine().driver_data<mz80_state>();
- state->m_mz80k_vertical ^= 1;
- state->m_mz80k_cursor_cnt++;
+ m_mz80k_vertical ^= 1;
+ m_mz80k_cursor_cnt++;
UINT8 y,ra,chr,gfx;
- UINT16 x,sy=0, ma=state->m_p_ram[0x17d] | (state->m_p_ram[0x17e] << 8);
+ UINT16 x,sy=0, ma=m_p_ram[0x17d] | (m_p_ram[0x17e] << 8);
for(y = 0; y < 25; y++ )
{
@@ -124,8 +121,8 @@ SCREEN_UPDATE_IND16( mz80a )
for (x = ma; x < ma + 40; x++)
{
- chr = state->m_p_videoram[x&0x7ff];
- gfx = state->m_p_chargen[(chr<<3) | ra];
+ chr = m_p_videoram[x&0x7ff];
+ gfx = m_p_chargen[(chr<<3) | ra];
/* Display a scanline of a character */
*p++ = BIT(gfx, 7);
diff --git a/src/mess/video/nascom1.c b/src/mess/video/nascom1.c
index 9382f0eb5e0..27e6e8e3662 100644
--- a/src/mess/video/nascom1.c
+++ b/src/mess/video/nascom1.c
@@ -9,10 +9,9 @@
#include "emu.h"
#include "includes/nascom1.h"
-SCREEN_UPDATE_IND16( nascom1 )
+UINT32 nascom1_state::screen_update_nascom1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- nascom1_state *state = screen.machine().driver_data<nascom1_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
int sy, sx;
for (sx = 0; sx < 48; sx++)
@@ -34,10 +33,9 @@ SCREEN_UPDATE_IND16( nascom1 )
return 0;
}
-SCREEN_UPDATE_IND16( nascom2 )
+UINT32 nascom1_state::screen_update_nascom2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- nascom1_state *state = screen.machine().driver_data<nascom1_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
int sy, sx;
for (sx = 0; sx < 48; sx++)
diff --git a/src/mess/video/nc.c b/src/mess/video/nc.c
index 8ca065f23bc..e011d6dbfe0 100644
--- a/src/mess/video/nc.c
+++ b/src/mess/video/nc.c
@@ -53,21 +53,20 @@ void nc200_video_set_backlight(running_machine &machine, int state)
Do NOT call osd_update_display() from this function,
it will be called by the main emulation engine.
***************************************************************************/
-SCREEN_UPDATE_IND16( nc )
+UINT32 nc_state::screen_update_nc(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- nc_state *state = screen.machine().driver_data<nc_state>();
int y;
int b;
int x;
int height, width;
int pens[2];
- if (state->m_type==NC_TYPE_200)
+ if (m_type==NC_TYPE_200)
{
height = NC200_SCREEN_HEIGHT;
width = NC200_SCREEN_WIDTH;
- if (state->m_nc200_backlight)
+ if (m_nc200_backlight)
{
pens[0] = 2;
pens[1] = 3;
@@ -91,7 +90,7 @@ SCREEN_UPDATE_IND16( nc )
{
int by;
/* 64 bytes per line */
- char *line_ptr = ((char*)screen.machine().device<ram_device>(RAM_TAG)->pointer()) + state->m_display_memory_start + (y<<6);
+ char *line_ptr = ((char*)screen.machine().device<ram_device>(RAM_TAG)->pointer()) + m_display_memory_start + (y<<6);
x = 0;
for (by=0; by<width>>3; by++)
diff --git a/src/mess/video/nes.c b/src/mess/video/nes.c
index b819a7979bd..be9dc008668 100644
--- a/src/mess/video/nes.c
+++ b/src/mess/video/nes.c
@@ -37,32 +37,31 @@ void nes_state::palette_init()
***************************************************************************/
-SCREEN_UPDATE_IND16( nes )
+UINT32 nes_state::screen_update_nes(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- nes_state *state = screen.machine().driver_data<nes_state>();
/* render the ppu */
- state->m_ppu->render(bitmap, 0, 0, 0, 0);
+ m_ppu->render(bitmap, 0, 0, 0, 0);
/* if this is a disk system game, check for the flip-disk key */
- if (state->m_disk_expansion && state->m_pcb_id == NO_BOARD)
+ if (m_disk_expansion && m_pcb_id == NO_BOARD)
{
// latch this input so it doesn't go at warp speed
- if ((screen.machine().root_device().ioport("FLIPDISK")->read() & 0x01) && (!state->m_last_frame_flip))
+ if ((screen.machine().root_device().ioport("FLIPDISK")->read() & 0x01) && (!m_last_frame_flip))
{
- state->m_last_frame_flip = 1;
- state->m_fds_current_side++;
- if (state->m_fds_current_side > state->m_fds_sides)
- state->m_fds_current_side = 0;
+ m_last_frame_flip = 1;
+ m_fds_current_side++;
+ if (m_fds_current_side > m_fds_sides)
+ m_fds_current_side = 0;
- if (state->m_fds_current_side == 0)
+ if (m_fds_current_side == 0)
popmessage("No disk inserted.");
else
- popmessage("Disk set to side %d", state->m_fds_current_side);
+ popmessage("Disk set to side %d", m_fds_current_side);
}
if (!(screen.machine().root_device().ioport("FLIPDISK")->read() & 0x01))
- state->m_last_frame_flip = 0;
+ m_last_frame_flip = 0;
}
return 0;
}
diff --git a/src/mess/video/odyssey2.c b/src/mess/video/odyssey2.c
index 41bdb5ec91d..2c54b026c26 100644
--- a/src/mess/video/odyssey2.c
+++ b/src/mess/video/odyssey2.c
@@ -603,10 +603,9 @@ void odyssey2_state::video_start()
***************************************************************************/
-SCREEN_UPDATE_IND16( odyssey2 )
+UINT32 odyssey2_state::screen_update_odyssey2(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- odyssey2_state *state = screen.machine().driver_data<odyssey2_state>();
- copybitmap( bitmap, state->m_tmp_bitmap, 0, 0, 0, 0, cliprect );
+ copybitmap( bitmap, m_tmp_bitmap, 0, 0, 0, 0, cliprect );
return 0;
}
diff --git a/src/mess/video/ondra.c b/src/mess/video/ondra.c
index 558b99e9f7b..0e1087def14 100644
--- a/src/mess/video/ondra.c
+++ b/src/mess/video/ondra.c
@@ -18,14 +18,13 @@ void ondra_state::video_start()
m_video_enable = 0;
}
-SCREEN_UPDATE_IND16( ondra )
+UINT32 ondra_state::screen_update_ondra(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ondra_state *state = screen.machine().driver_data<ondra_state>();
UINT8 code1,code2;
int y, x, b;
int Vaddr = 0x2800;
- if (state->m_video_enable==1) {
+ if (m_video_enable==1) {
for (x = 0; x < 40; x++)
{
for (y = 127; y >=0; y--)
diff --git a/src/mess/video/orao.c b/src/mess/video/orao.c
index 828f285572e..31041f6eda9 100644
--- a/src/mess/video/orao.c
+++ b/src/mess/video/orao.c
@@ -14,9 +14,8 @@ void orao_state::video_start()
{
}
-SCREEN_UPDATE_IND16( orao )
+UINT32 orao_state::screen_update_orao(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- orao_state *state = screen.machine().driver_data<orao_state>();
UINT8 code;
int y, x, b;
@@ -26,7 +25,7 @@ SCREEN_UPDATE_IND16( orao )
int horpos = 0;
for (x = 0; x < 32; x++)
{
- code = state->m_video_ram[addr++];
+ code = m_video_ram[addr++];
for (b = 0; b < 8; b++)
{
bitmap.pix16(y, horpos++) = (code >> b) & 0x01;
diff --git a/src/mess/video/oric.c b/src/mess/video/oric.c
index f07136781d2..c0fc0678dd8 100644
--- a/src/mess/video/oric.c
+++ b/src/mess/video/oric.c
@@ -163,20 +163,19 @@ static void oric_vh_render_6pixels(bitmap_ind16 &bitmap, int x, UINT8 y, UINT8 f
/***************************************************************************
oric_vh_screenrefresh
***************************************************************************/
-SCREEN_UPDATE_IND16( oric )
+UINT32 oric_state::screen_update_oric(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- oric_state *state = screen.machine().driver_data<oric_state>();
UINT8 *RAM, y;
offs_t byte_offset, read_addr_base;
bool hires_active;
- RAM = state->m_ram;
+ RAM = m_ram;
/* set initial base */
- read_addr_base = state->m_vh_state.read_addr;
+ read_addr_base = m_vh_state.read_addr;
/* is hires active? */
- hires_active = BIT(state->m_vh_state.mode, 2);
+ hires_active = BIT(m_vh_state.mode, 2);
for (y = 0; y < 224; y++)
{
@@ -222,13 +221,13 @@ SCREEN_UPDATE_IND16( oric )
oric_vh_update_attribute(screen.machine(), c);
/* display background colour when attribute has been found */
- oric_vh_render_6pixels(bitmap, x, y, state->m_vh_state.active_foreground_colour, state->m_vh_state.active_background_colour, 0, (c & 0x080));
+ oric_vh_render_6pixels(bitmap, x, y, m_vh_state.active_foreground_colour, m_vh_state.active_background_colour, 0, (c & 0x080));
if (y < 200)
{
/* is hires active? */
- hires_active = BIT(state->m_vh_state.mode, 2);
- read_addr_base = state->m_vh_state.read_addr;
+ hires_active = BIT(m_vh_state.mode, 2);
+ read_addr_base = m_vh_state.read_addr;
}
}
else
@@ -238,7 +237,7 @@ SCREEN_UPDATE_IND16( oric )
{
UINT8 pixel_data = c & 0x03f;
/* plot hires pixels */
- oric_vh_render_6pixels(bitmap,x,y,state->m_vh_state.active_foreground_colour, state->m_vh_state.active_background_colour, pixel_data, BIT(c, 7));
+ oric_vh_render_6pixels(bitmap,x,y,m_vh_state.active_foreground_colour, m_vh_state.active_background_colour, pixel_data, BIT(c, 7));
}
else
{
@@ -249,7 +248,7 @@ SCREEN_UPDATE_IND16( oric )
ch_line = y & 7;
/* is double height set? */
- if (BIT(state->m_vh_state.text_attributes, 1))
+ if (BIT(m_vh_state.text_attributes, 1))
{
/* if char line is even, top half of character is displayed else bottom half */
UINT8 double_height_flag = BIT(y, 3);
@@ -259,12 +258,12 @@ SCREEN_UPDATE_IND16( oric )
}
/* fetch pixel data for this char line */
- char_data = state->m_vh_state.char_data[(char_index<<3) | ch_line] & 0x03f;
+ char_data = m_vh_state.char_data[(char_index<<3) | ch_line] & 0x03f;
/* draw! */
oric_vh_render_6pixels(bitmap,x,y,
- state->m_vh_state.active_foreground_colour,
- state->m_vh_state.active_background_colour, char_data, BIT(c, 7));
+ m_vh_state.active_foreground_colour,
+ m_vh_state.active_background_colour, char_data, BIT(c, 7));
}
}
diff --git a/src/mess/video/orion.c b/src/mess/video/orion.c
index db2a2956b3e..9ea7c54667a 100644
--- a/src/mess/video/orion.c
+++ b/src/mess/video/orion.c
@@ -16,18 +16,17 @@ VIDEO_START_MEMBER(orion_state,orion128)
{
}
-SCREEN_UPDATE_IND16( orion128 )
+UINT32 orion_state::screen_update_orion128(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- orion_state *state = screen.machine().driver_data<orion_state>();
UINT8 code1,code2,code3,code4,color,val;
int y, x,b;
- int orionproshift = (state->m_orion128_video_mode & 0x10) ? 1 : 0;
- int part1addr = (3-((state->m_orion128_video_page & 3) | orionproshift)) * 0x4000;
+ int orionproshift = (m_orion128_video_mode & 0x10) ? 1 : 0;
+ int part1addr = (3-((m_orion128_video_page & 3) | orionproshift)) * 0x4000;
int part2addr = part1addr + 0x10000;
- int video_mode = state->m_orion128_video_mode & state->m_video_mode_mask;
+ int video_mode = m_orion128_video_mode & m_video_mode_mask;
UINT8 *ram = screen.machine().device<ram_device>(RAM_TAG)->pointer();
- for (x = 0; x < state->m_orion128_video_width; x++)
+ for (x = 0; x < m_orion128_video_width; x++)
{
for (y = 0; y < 256; y++)
{
@@ -36,12 +35,12 @@ SCREEN_UPDATE_IND16( orion128 )
code3 = ram[part1addr + y + x*256 + 0x4000];
code4 = ram[part2addr + y + x*256 + 0x4000];
if ((video_mode==14) || (video_mode==15)) {
- code2 = state->m_orionpro_pseudo_color;
+ code2 = m_orionpro_pseudo_color;
}
color = 0;
for (b = 7; b >= 0; b--)
{
- switch(state->m_orion128_video_mode & state->m_video_mode_mask) {
+ switch(m_orion128_video_mode & m_video_mode_mask) {
case 0 : color = ((code1 >> b) & 0x01) ? 10 : 0; break;
case 1 : color = ((code1 >> b) & 0x01) ? 17 : 16; break;
case 4 : val = (((code1 >> b) & 0x01) << 1) + ((code2 >> b) & 0x01);
@@ -67,7 +66,7 @@ SCREEN_UPDATE_IND16( orion128 )
color = ((code1 >> b) & 0x01) ? (code2 & 0x0f) : (code2 >> 4); break;
default:
- switch(state->m_orion128_video_mode & state->m_video_mode_mask & 20) {
+ switch(m_orion128_video_mode & m_video_mode_mask & 20) {
case 16 :
color = (((code1 >> b) & 0x01) << 2) + (((code3 >> b) & 0x01) << 1) + ((code2 >> b) & 0x01);
break;
diff --git a/src/mess/video/p2000m.c b/src/mess/video/p2000m.c
index 2b073ed22fa..9b9c874239b 100644
--- a/src/mess/video/p2000m.c
+++ b/src/mess/video/p2000m.c
@@ -17,10 +17,9 @@ VIDEO_START_MEMBER(p2000t_state,p2000m)
}
-SCREEN_UPDATE_IND16( p2000m )
+UINT32 p2000t_state::screen_update_p2000m(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- p2000t_state *state = screen.machine().driver_data<p2000t_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
int offs, sx, sy, code, loop;
for (offs = 0; offs < 80 * 24; offs++)
@@ -28,7 +27,7 @@ SCREEN_UPDATE_IND16( p2000m )
sy = (offs / 80) * 20;
sx = (offs % 80) * 12;
- if ((state->m_frame_count > 25) && (videoram[offs + 2048] & 0x40))
+ if ((m_frame_count > 25) && (videoram[offs + 2048] & 0x40))
code = 32;
else
{
diff --git a/src/mess/video/pc1251.c b/src/mess/video/pc1251.c
index 98cbb376592..cea15d9a282 100644
--- a/src/mess/video/pc1251.c
+++ b/src/mess/video/pc1251.c
@@ -114,9 +114,8 @@ WRITE8_HANDLER(pc1251_lcd_write)
#define DOWN 62
#define RIGHT 68
-SCREEN_UPDATE_IND16( pc1251 )
+UINT32 pc1251_state::screen_update_pc1251(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pc1251_state *state = screen.machine().driver_data<pc1251_state>();
int x, y, i, j;
int color[2];
running_machine &machine = screen.machine();
@@ -130,34 +129,34 @@ SCREEN_UPDATE_IND16( pc1251 )
for (x=RIGHT,y=DOWN, i=0; i<60; x+=3)
{
for (j=0; j<5; j++, i++, x+=3)
- drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], state->m_reg[i],
+ drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], m_reg[i],
PC1251_CONTRAST,0,0,
x,y);
}
for (i=0x7b; i>=0x40; x+=3)
{
for (j=0; j<5; j++, i--, x+=3)
- drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], state->m_reg[i],
+ drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], m_reg[i],
PC1251_CONTRAST,0,0,
x,y);
}
pocketc_draw_special(bitmap, RIGHT+134, DOWN-10, de,
- state->m_reg[0x3c] & 0x08 ? color[1] : color[0]);
+ m_reg[0x3c] & 0x08 ? color[1] : color[0]);
pocketc_draw_special(bitmap, RIGHT+142, DOWN-10, g,
- state->m_reg[0x3c] & 0x04 ? color[1] : color[0]);
+ m_reg[0x3c] & 0x04 ? color[1] : color[0]);
pocketc_draw_special(bitmap, RIGHT+146, DOWN-10, rad,
- state->m_reg[0x3d] & 0x04 ? color[1] : color[0]);
+ m_reg[0x3d] & 0x04 ? color[1] : color[0]);
pocketc_draw_special(bitmap, RIGHT+18, DOWN-10, def,
- state->m_reg[0x3c] & 0x01 ? color[1] : color[0]);
+ m_reg[0x3c] & 0x01 ? color[1] : color[0]);
pocketc_draw_special(bitmap, RIGHT, DOWN-10, shift,
- state->m_reg[0x3d] & 0x02 ? color[1] : color[0]);
+ m_reg[0x3d] & 0x02 ? color[1] : color[0]);
pocketc_draw_special(bitmap, RIGHT+38, DOWN-10, pro,
- state->m_reg[0x3e] & 0x01 ? color[1] : color[0]);
+ m_reg[0x3e] & 0x01 ? color[1] : color[0]);
pocketc_draw_special(bitmap, RIGHT+53, DOWN-10, run,
- state->m_reg[0x3e] & 0x02 ? color[1] : color[0]);
+ m_reg[0x3e] & 0x02 ? color[1] : color[0]);
pocketc_draw_special(bitmap, RIGHT+68, DOWN-10, rsv,
- state->m_reg[0x3e] & 0x04 ? color[1] : color[0]);
+ m_reg[0x3e] & 0x04 ? color[1] : color[0]);
/* 0x3c 1 def?, 4 g, 8 de
0x3d 2 shift, 4 rad, 8 error
diff --git a/src/mess/video/pc1350.c b/src/mess/video/pc1350.c
index d31b9035913..c64a9329cc7 100644
--- a/src/mess/video/pc1350.c
+++ b/src/mess/video/pc1350.c
@@ -129,9 +129,8 @@ static const int pc1350_addr[4]={ 0, 0x40, 0x1e, 0x5e };
#define DOWN 45
#define RIGHT 76
-SCREEN_UPDATE_IND16( pc1350 )
+UINT32 pc1350_state::screen_update_pc1350(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pc1350_state *state = screen.machine().driver_data<pc1350_state>(); /* The contrast colours need some work done - select contrast level 7 for now */
int x, y=DOWN, i, j, k=0, b;
int color[4];
running_machine &machine = screen.machine();
@@ -148,23 +147,23 @@ SCREEN_UPDATE_IND16( pc1350 )
for (x=RIGHT, i=pc1350_addr[k]; i<0xa00; i+=0x200)
for (j=0; j<=0x1d; j++, x+=2)
for (b = 0; b < 8; b++)
- bitmap.plot_box(x, y + b * 2, 2, 2, color[(state->m_reg[j+i] >> b) & 1]);
+ bitmap.plot_box(x, y + b * 2, 2, 2, color[(m_reg[j+i] >> b) & 1]);
/* 783c: 0 SHIFT 1 DEF 4 RUN 5 PRO 6 JAPAN 7 SML */
/* I don't know how they really look like in the lcd */
pocketc_draw_special(bitmap, RIGHT-30, DOWN+45, shift,
- state->m_reg[0x83c] & 0x01 ? color[2] : color[3]);
+ m_reg[0x83c] & 0x01 ? color[2] : color[3]);
pocketc_draw_special(bitmap, RIGHT-30, DOWN+55, def,
- state->m_reg[0x83c] & 0x02 ? color[2] : color[3]);
+ m_reg[0x83c] & 0x02 ? color[2] : color[3]);
pocketc_draw_special(bitmap, RIGHT-30, DOWN+5, run,
- state->m_reg[0x83c] & 0x10 ? color[2] : color[3]);
+ m_reg[0x83c] & 0x10 ? color[2] : color[3]);
pocketc_draw_special(bitmap, RIGHT-30, DOWN+15, pro,
- state->m_reg[0x83c] & 0x20 ? color[2] : color[3]);
+ m_reg[0x83c] & 0x20 ? color[2] : color[3]);
pocketc_draw_special(bitmap, RIGHT-30, DOWN+25, japan,
- state->m_reg[0x83c] & 0x40 ? color[2] : color[3]);
+ m_reg[0x83c] & 0x40 ? color[2] : color[3]);
pocketc_draw_special(bitmap, RIGHT-30, DOWN+35, sml,
- state->m_reg[0x83c] & 0x80 ? color[2] : color[3]);
+ m_reg[0x83c] & 0x80 ? color[2] : color[3]);
return 0;
}
diff --git a/src/mess/video/pc1401.c b/src/mess/video/pc1401.c
index 70ceb084649..ae49a40ae83 100644
--- a/src/mess/video/pc1401.c
+++ b/src/mess/video/pc1401.c
@@ -131,9 +131,8 @@ static const POCKETC_FIGURE busy={
#define DOWN 57
#define RIGHT 114
-SCREEN_UPDATE_IND16( pc1401 )
+UINT32 pc1401_state::screen_update_pc1401(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pc1401_state *state = screen.machine().driver_data<pc1401_state>();
running_machine &machine = screen.machine();
int x, y, i, j;
int color[2];
@@ -149,64 +148,64 @@ SCREEN_UPDATE_IND16( pc1401 )
color[0] = 7;
color[1] = 8;
- if (state->m_portc&1)
+ if (m_portc&1)
{
for (x=RIGHT,y=DOWN,i=0; i<0x28;x+=2)
{
for (j=0; j<5;j++,i++,x+=2)
- drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], state->m_reg[i],CONTRAST,0,0,x,y);
+ drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], m_reg[i],CONTRAST,0,0,x,y);
}
for (i=0x67; i>=0x40;x+=2)
{
for (j=0; j<5;j++,i--,x+=2)
- drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], state->m_reg[i],CONTRAST,0,0,x,y);
+ drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], m_reg[i],CONTRAST,0,0,x,y);
}
}
pocketc_draw_special(bitmap, RIGHT+149, DOWN+24, line,
- state->m_reg[0x3c] & 0x08 ? color[1] : color[0]);
+ m_reg[0x3c] & 0x08 ? color[1] : color[0]);
pocketc_draw_special(bitmap, RIGHT, DOWN-10, busy,
- state->m_reg[0x3d] & 0x01 ? color[1] : color[0]);
+ m_reg[0x3d] & 0x01 ? color[1] : color[0]);
pocketc_draw_special(bitmap, RIGHT+18, DOWN-10, def,
- state->m_reg[0x3d] & 0x02 ? color[1] : color[0]);
+ m_reg[0x3d] & 0x02 ? color[1] : color[0]);
pocketc_draw_special(bitmap, RIGHT+43, DOWN-10,shift,
- state->m_reg[0x3d] & 0x04 ? color[1] : color[0]);
+ m_reg[0x3d] & 0x04 ? color[1] : color[0]);
pocketc_draw_special(bitmap, RIGHT+63, DOWN-10,hyp,
- state->m_reg[0x3d] & 0x08 ? color[1] : color[0]);
+ m_reg[0x3d] & 0x08 ? color[1] : color[0]);
pocketc_draw_special(bitmap, RIGHT+38, DOWN+24,line,
- state->m_reg[0x3d] & 0x10 ? color[1] : color[0]);
+ m_reg[0x3d] & 0x10 ? color[1] : color[0]);
pocketc_draw_special(bitmap, RIGHT+23, DOWN+24,line,
- state->m_reg[0x3d] & 0x20 ? color[1] : color[0]);
+ m_reg[0x3d] & 0x20 ? color[1] : color[0]);
pocketc_draw_special(bitmap, RIGHT+8, DOWN+24,line,
- state->m_reg[0x3d] & 0x40 ? color[1] : color[0]);
+ m_reg[0x3d] & 0x40 ? color[1] : color[0]);
pocketc_draw_special(bitmap, RIGHT+183, DOWN-10,e,
- state->m_reg[0x7c] & 0x01 ? color[1] : color[0]);
+ m_reg[0x7c] & 0x01 ? color[1] : color[0]);
pocketc_draw_special(bitmap, RIGHT+176, DOWN-10,m,
- state->m_reg[0x7c] & 0x02 ? color[1] : color[0]);
+ m_reg[0x7c] & 0x02 ? color[1] : color[0]);
pocketc_draw_special(bitmap, RIGHT+168, DOWN-10,braces,
- state->m_reg[0x7c] & 0x04 ? color[1] : color[0]);
+ m_reg[0x7c] & 0x04 ? color[1] : color[0]);
pocketc_draw_special(bitmap, RIGHT+138, DOWN-10,rad,
- state->m_reg[0x7c] & 0x08 ? color[1] : color[0]);
+ m_reg[0x7c] & 0x08 ? color[1] : color[0]);
pocketc_draw_special(bitmap, RIGHT+134, DOWN-10,g,
- state->m_reg[0x7c] & 0x10 ? color[1] : color[0]);
+ m_reg[0x7c] & 0x10 ? color[1] : color[0]);
pocketc_draw_special(bitmap, RIGHT+126, DOWN-10,de,
- state->m_reg[0x7c] & 0x20 ? color[1] : color[0]);
+ m_reg[0x7c] & 0x20 ? color[1] : color[0]);
pocketc_draw_special(bitmap, RIGHT+165, DOWN+24,line,
- state->m_reg[0x7c] & 0x40 ? color[1] : color[0]);
+ m_reg[0x7c] & 0x40 ? color[1] : color[0]);
/*
603c: 3 STAT
diff --git a/src/mess/video/pc1403.c b/src/mess/video/pc1403.c
index bf844af9f6a..e3569053db4 100644
--- a/src/mess/video/pc1403.c
+++ b/src/mess/video/pc1403.c
@@ -147,9 +147,8 @@ static const POCKETC_FIGURE busy={
"11 1 1 111e"
};
-SCREEN_UPDATE_IND16( pc1403 )
+UINT32 pc1403_state::screen_update_pc1403(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pc1403_state *state = screen.machine().driver_data<pc1403_state>();
running_machine &machine = screen.machine();
int x, y, i, j;
int color[3];
@@ -159,104 +158,104 @@ SCREEN_UPDATE_IND16( pc1403 )
/* HJB: we cannot initialize array with values from other arrays, thus... */
color[0] = 7; // pocketc_colortable[CONTRAST][0];
color[2] = 8; // pocketc_colortable[CONTRAST][1];
- color[1] = (state->m_portc & 1) ? color[2] : color[0];
+ color[1] = (m_portc & 1) ? color[2] : color[0];
- if (state->m_portc & 1)
+ if (m_portc & 1)
{
- for (x=state->m_RIGHT, y=state->m_DOWN, i=0; i<6*5; x+=2) {
+ for (x=m_RIGHT, y=m_DOWN, i=0; i<6*5; x+=2) {
for (j=0; j<5; j++, i++, x+=2)
- drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], state->m_reg[i],CONTRAST,0,0,
+ drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], m_reg[i],CONTRAST,0,0,
x,y);
}
for (i=9*5; i<12*5; x+=2)
{
for (j=0; j<5; j++, i++, x+=2)
- drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], state->m_reg[i],CONTRAST,0,0,
+ drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], m_reg[i],CONTRAST,0,0,
x,y);
}
for (i=6*5; i<9*5; x+=2)
{
for (j=0; j<5; j++, i++, x+=2)
- drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], state->m_reg[i],CONTRAST,0,0,
+ drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], m_reg[i],CONTRAST,0,0,
x,y);
}
for (i=0x7b-3*5; i>0x7b-6*5; x+=2)
{
for (j=0; j<5; j++, i--, x+=2)
- drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], state->m_reg[i],CONTRAST,0,0,
+ drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], m_reg[i],CONTRAST,0,0,
x,y);
}
for (i=0x7b; i>0x7b-3*5; x+=2)
{
for (j=0; j<5; j++, i--, x+=2)
- drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], state->m_reg[i],CONTRAST,0,0,
+ drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], m_reg[i],CONTRAST,0,0,
x,y);
}
for (i=0x7b-6*5; i>0x7b-12*5; x+=2)
{
for (j=0; j<5; j++, i--, x+=2)
- drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], state->m_reg[i],CONTRAST,0,0,
+ drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], m_reg[i],CONTRAST,0,0,
x,y);
}
}
/* if display is off, busy is always visible? it seems to behave like that. */
/* But if computer is off, busy is hidden. */
- if(!(state->m_portc&8))
+ if(!(m_portc&8))
{
- if (state->m_portc&1)
- pocketc_draw_special(bitmap, state->m_RIGHT, state->m_DOWN-13, busy,
- state->m_reg[0x3d] & 1 ? color[2] : color[0]);
+ if (m_portc&1)
+ pocketc_draw_special(bitmap, m_RIGHT, m_DOWN-13, busy,
+ m_reg[0x3d] & 1 ? color[2] : color[0]);
- else pocketc_draw_special(bitmap, state->m_RIGHT, state->m_DOWN-13, busy, color[2]);
+ else pocketc_draw_special(bitmap, m_RIGHT, m_DOWN-13, busy, color[2]);
}
else
- pocketc_draw_special(bitmap, state->m_RIGHT, state->m_DOWN-13, busy, color[0]);
+ pocketc_draw_special(bitmap, m_RIGHT, m_DOWN-13, busy, color[0]);
- pocketc_draw_special(bitmap, state->m_RIGHT+18, state->m_DOWN-13, def,
- state->m_reg[0x3d] & 0x02 ? color[1] : color[0]);
- pocketc_draw_special(bitmap, state->m_RIGHT+43, state->m_DOWN-13, shift,
- state->m_reg[0x3d] & 0x04 ? color[1] : color[0]);
- pocketc_draw_special(bitmap, state->m_RIGHT+63, state->m_DOWN-13, hyp,
- state->m_reg[0x3d] & 0x08 ? color[1] : color[0]);
+ pocketc_draw_special(bitmap, m_RIGHT+18, m_DOWN-13, def,
+ m_reg[0x3d] & 0x02 ? color[1] : color[0]);
+ pocketc_draw_special(bitmap, m_RIGHT+43, m_DOWN-13, shift,
+ m_reg[0x3d] & 0x04 ? color[1] : color[0]);
+ pocketc_draw_special(bitmap, m_RIGHT+63, m_DOWN-13, hyp,
+ m_reg[0x3d] & 0x08 ? color[1] : color[0]);
- pocketc_draw_special(bitmap, state->m_RIGHT+155, state->m_DOWN-13, kana,
- state->m_reg[0x3c] & 0x01 ? color[1] : color[0]);
- pocketc_draw_special(bitmap, state->m_RIGHT+167, state->m_DOWN-13, shoo,
- state->m_reg[0x3c] & 0x02 ? color[1] : color[0]);
- pocketc_draw_special(bitmap, state->m_RIGHT+178, state->m_DOWN-13, sml,
- state->m_reg[0x3c] & 0x04 ? color[1] : color[0]);
+ pocketc_draw_special(bitmap, m_RIGHT+155, m_DOWN-13, kana,
+ m_reg[0x3c] & 0x01 ? color[1] : color[0]);
+ pocketc_draw_special(bitmap, m_RIGHT+167, m_DOWN-13, shoo,
+ m_reg[0x3c] & 0x02 ? color[1] : color[0]);
+ pocketc_draw_special(bitmap, m_RIGHT+178, m_DOWN-13, sml,
+ m_reg[0x3c] & 0x04 ? color[1] : color[0]);
- pocketc_draw_special(bitmap, state->m_RIGHT+191, state->m_DOWN-13, de,
- state->m_reg[0x7c] & 0x20 ? color[1] : color[0]);
- pocketc_draw_special(bitmap, state->m_RIGHT+199, state->m_DOWN-13, g,
- state->m_reg[0x7c] & 0x10 ? color[1] : color[0]);
- pocketc_draw_special(bitmap, state->m_RIGHT+203, state->m_DOWN-13, rad,
- state->m_reg[0x7c] & 0x08 ? color[1] : color[0]);
+ pocketc_draw_special(bitmap, m_RIGHT+191, m_DOWN-13, de,
+ m_reg[0x7c] & 0x20 ? color[1] : color[0]);
+ pocketc_draw_special(bitmap, m_RIGHT+199, m_DOWN-13, g,
+ m_reg[0x7c] & 0x10 ? color[1] : color[0]);
+ pocketc_draw_special(bitmap, m_RIGHT+203, m_DOWN-13, rad,
+ m_reg[0x7c] & 0x08 ? color[1] : color[0]);
- pocketc_draw_special(bitmap, state->m_RIGHT+266, state->m_DOWN-13, braces,
- state->m_reg[0x7c] & 0x04 ? color[1] : color[0]);
- pocketc_draw_special(bitmap, state->m_RIGHT+274, state->m_DOWN-13, m,
- state->m_reg[0x7c] & 0x02 ? color[1] : color[0]);
- pocketc_draw_special(bitmap, state->m_RIGHT+281, state->m_DOWN-13, e,
- state->m_reg[0x7c] & 0x01 ? color[1] : color[0]);
+ pocketc_draw_special(bitmap, m_RIGHT+266, m_DOWN-13, braces,
+ m_reg[0x7c] & 0x04 ? color[1] : color[0]);
+ pocketc_draw_special(bitmap, m_RIGHT+274, m_DOWN-13, m,
+ m_reg[0x7c] & 0x02 ? color[1] : color[0]);
+ pocketc_draw_special(bitmap, m_RIGHT+281, m_DOWN-13, e,
+ m_reg[0x7c] & 0x01 ? color[1] : color[0]);
- pocketc_draw_special(bitmap, state->m_RIGHT+10, state->m_DOWN+27, line /* empty */,
- state->m_reg[0x3c] & 0x40 ? color[1] : color[0]);
- pocketc_draw_special(bitmap, state->m_RIGHT+31, state->m_DOWN+27, line /*calc*/,
- state->m_reg[0x3d] & 0x40 ? color[1] : color[0]);
- pocketc_draw_special(bitmap, state->m_RIGHT+52, state->m_DOWN+27, line/*run*/,
- state->m_reg[0x3d] & 0x20 ? color[1] : color[0]);
- pocketc_draw_special(bitmap, state->m_RIGHT+73, state->m_DOWN+27, line/*prog*/,
- state->m_reg[0x3d] & 0x10 ? color[1] : color[0]);
- pocketc_draw_special(bitmap, state->m_RIGHT+94, state->m_DOWN+27, line /* empty */,
- state->m_reg[0x3c] & 0x20 ? color[1] : color[0]);
+ pocketc_draw_special(bitmap, m_RIGHT+10, m_DOWN+27, line /* empty */,
+ m_reg[0x3c] & 0x40 ? color[1] : color[0]);
+ pocketc_draw_special(bitmap, m_RIGHT+31, m_DOWN+27, line /*calc*/,
+ m_reg[0x3d] & 0x40 ? color[1] : color[0]);
+ pocketc_draw_special(bitmap, m_RIGHT+52, m_DOWN+27, line/*run*/,
+ m_reg[0x3d] & 0x20 ? color[1] : color[0]);
+ pocketc_draw_special(bitmap, m_RIGHT+73, m_DOWN+27, line/*prog*/,
+ m_reg[0x3d] & 0x10 ? color[1] : color[0]);
+ pocketc_draw_special(bitmap, m_RIGHT+94, m_DOWN+27, line /* empty */,
+ m_reg[0x3c] & 0x20 ? color[1] : color[0]);
- pocketc_draw_special(bitmap, state->m_RIGHT+232, state->m_DOWN+27, line/*matrix*/,
- state->m_reg[0x3c] & 0x10 ? color[1] : color[0]);
- pocketc_draw_special(bitmap, state->m_RIGHT+253, state->m_DOWN+27, line/*stat*/,
- state->m_reg[0x3c] & 0x08 ? color[1] : color[0]);
- pocketc_draw_special(bitmap, state->m_RIGHT+274, state->m_DOWN+27, line/*print*/,
- state->m_reg[0x7c] & 0x40 ? color[1] : color[0]);
+ pocketc_draw_special(bitmap, m_RIGHT+232, m_DOWN+27, line/*matrix*/,
+ m_reg[0x3c] & 0x10 ? color[1] : color[0]);
+ pocketc_draw_special(bitmap, m_RIGHT+253, m_DOWN+27, line/*stat*/,
+ m_reg[0x3c] & 0x08 ? color[1] : color[0]);
+ pocketc_draw_special(bitmap, m_RIGHT+274, m_DOWN+27, line/*print*/,
+ m_reg[0x7c] & 0x40 ? color[1] : color[0]);
return 0;
}
diff --git a/src/mess/video/pcw.c b/src/mess/video/pcw.c
index 78f548532a3..06bc04b4495 100644
--- a/src/mess/video/pcw.c
+++ b/src/mess/video/pcw.c
@@ -52,9 +52,8 @@ void pcw_state::palette_init()
Do NOT call osd_update_display() from this function,
it will be called by the main emulation engine.
***************************************************************************/
-SCREEN_UPDATE_IND16( pcw )
+UINT32 pcw_state::screen_update_pcw(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pcw_state *state = screen.machine().driver_data<pcw_state>();
int x,y,b;
unsigned short roller_ram_offs;
unsigned char *roller_ram_ptr;
@@ -64,7 +63,7 @@ SCREEN_UPDATE_IND16( pcw )
pen1 = 1;
/* invert? */
- if (state->m_vdu_video_control_register & (1<<7))
+ if (m_vdu_video_control_register & (1<<7))
{
/* yes */
pen1^=1;
@@ -72,7 +71,7 @@ SCREEN_UPDATE_IND16( pcw )
}
/* video enable? */
- if ((state->m_vdu_video_control_register & (1<<6))!=0)
+ if ((m_vdu_video_control_register & (1<<6))!=0)
{
/* render top border */
rectangle rect(0, PCW_SCREEN_WIDTH, 0, PCW_BORDER_HEIGHT);
@@ -83,7 +82,7 @@ SCREEN_UPDATE_IND16( pcw )
bitmap.fill(pen0, rect);
/* offset to start in table */
- roller_ram_offs = (state->m_roller_ram_offset<<1);
+ roller_ram_offs = (m_roller_ram_offset<<1);
for (y=0; y<256; y++)
{
@@ -93,7 +92,7 @@ SCREEN_UPDATE_IND16( pcw )
x = PCW_BORDER_WIDTH;
- roller_ram_ptr = screen.machine().device<ram_device>(RAM_TAG)->pointer() + state->m_roller_ram_addr + roller_ram_offs;
+ roller_ram_ptr = screen.machine().device<ram_device>(RAM_TAG)->pointer() + m_roller_ram_addr + roller_ram_offs;
/* get line address */
/* b16-14 control which bank the line is to be found in, b13-3 the address in the bank (in 16-byte units), and b2-0 the offset. Thus a roller RAM address bbbxxxxxxxxxxxyyy indicates bank bbb, address 00xxxxxxxxxxx0yyy. */
@@ -166,22 +165,21 @@ SCREEN_UPDATE_IND16( pcw )
return 0;
}
-SCREEN_UPDATE_IND16( pcw_printer )
+UINT32 pcw_state::screen_update_pcw_printer(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pcw_state *state = screen.machine().driver_data<pcw_state>();
// printer output
INT32 feed;
rectangle rect(0, PCW_PRINTER_WIDTH - 1, 0, PCW_PRINTER_HEIGHT - 1);
- feed = -(state->m_paper_feed / 2);
- copyscrollbitmap(bitmap,*state->m_prn_output,0,NULL,1,&feed,rect);
- bitmap.pix16(PCW_PRINTER_HEIGHT-1, state->m_printer_headpos) = 0;
- bitmap.pix16(PCW_PRINTER_HEIGHT-2, state->m_printer_headpos) = 0;
- bitmap.pix16(PCW_PRINTER_HEIGHT-3, state->m_printer_headpos) = 0;
- bitmap.pix16(PCW_PRINTER_HEIGHT-1, state->m_printer_headpos-1) = 0;
- bitmap.pix16(PCW_PRINTER_HEIGHT-2, state->m_printer_headpos-1) = 0;
- bitmap.pix16(PCW_PRINTER_HEIGHT-1, state->m_printer_headpos+1) = 0;
- bitmap.pix16(PCW_PRINTER_HEIGHT-2, state->m_printer_headpos+1) = 0;
+ feed = -(m_paper_feed / 2);
+ copyscrollbitmap(bitmap,*m_prn_output,0,NULL,1,&feed,rect);
+ bitmap.pix16(PCW_PRINTER_HEIGHT-1, m_printer_headpos) = 0;
+ bitmap.pix16(PCW_PRINTER_HEIGHT-2, m_printer_headpos) = 0;
+ bitmap.pix16(PCW_PRINTER_HEIGHT-3, m_printer_headpos) = 0;
+ bitmap.pix16(PCW_PRINTER_HEIGHT-1, m_printer_headpos-1) = 0;
+ bitmap.pix16(PCW_PRINTER_HEIGHT-2, m_printer_headpos-1) = 0;
+ bitmap.pix16(PCW_PRINTER_HEIGHT-1, m_printer_headpos+1) = 0;
+ bitmap.pix16(PCW_PRINTER_HEIGHT-2, m_printer_headpos+1) = 0;
return 0;
}
diff --git a/src/mess/video/pcw16.c b/src/mess/video/pcw16.c
index 07587e3b3b7..19d58460a60 100644
--- a/src/mess/video/pcw16.c
+++ b/src/mess/video/pcw16.c
@@ -154,9 +154,8 @@ static void pcw16_vh_decode_mode2(pcw16_state *state, bitmap_ind16 &bitmap, int
Do NOT call osd_update_display() from this function,
it will be called by the main emulation engine.
***************************************************************************/
-SCREEN_UPDATE_IND16( pcw16 )
+UINT32 pcw16_state::screen_update_pcw16(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pcw16_state *state = screen.machine().driver_data<pcw16_state>();
UINT8 *ram = screen.machine().device<ram_device>(RAM_TAG)->pointer();
unsigned char *pScanLine = (unsigned char *)ram + 0x0fc00; //0x03c00; //0x020FC00;
@@ -165,19 +164,19 @@ SCREEN_UPDATE_IND16( pcw16 )
int border_colour;
- border_colour = state->m_video_control & 31;
+ border_colour = m_video_control & 31;
/* reverse video? */
- if (state->m_video_control & (1<<7))
+ if (m_video_control & (1<<7))
{
/* colour 0 and colour 1 need to be inverted? - what happens in mode 1 and 2 - ignored? or is bit 1 toggled,
or is whole lot toggled? */
/* force border to be colour 1 */
- border_colour = state->m_colour_palette[1];
+ border_colour = m_colour_palette[1];
}
- if ((state->m_video_control & (1<<6))==0)
+ if ((m_video_control & (1<<6))==0)
{
/* blank */
rectangle rect(0, PCW16_SCREEN_WIDTH, 0, PCW16_SCREEN_HEIGHT);
@@ -234,20 +233,20 @@ SCREEN_UPDATE_IND16( pcw16 )
{
case 0:
{
- pcw16_vh_decode_mode0(state, bitmap, x, y+PCW16_BORDER_HEIGHT, byte);
+ pcw16_vh_decode_mode0(this, bitmap, x, y+PCW16_BORDER_HEIGHT, byte);
}
break;
case 1:
{
- pcw16_vh_decode_mode1(state, bitmap, x, y+PCW16_BORDER_HEIGHT, byte);
+ pcw16_vh_decode_mode1(this, bitmap, x, y+PCW16_BORDER_HEIGHT, byte);
}
break;
case 3:
case 2:
{
- pcw16_vh_decode_mode2(state, bitmap, x, y+PCW16_BORDER_HEIGHT, byte);
+ pcw16_vh_decode_mode2(this, bitmap, x, y+PCW16_BORDER_HEIGHT, byte);
}
break;
}
diff --git a/src/mess/video/pdp1.c b/src/mess/video/pdp1.c
index d17cd45e4d4..6bce0a03b34 100644
--- a/src/mess/video/pdp1.c
+++ b/src/mess/video/pdp1.c
@@ -59,14 +59,13 @@ void pdp1_state::video_start()
}
-SCREEN_VBLANK( pdp1 )
+void pdp1_state::screen_eof_pdp1(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- pdp1_state *state = screen.machine().driver_data<pdp1_state>();
- crt_eof(state->m_crt);
+ crt_eof(m_crt);
}
}
@@ -86,17 +85,16 @@ void pdp1_plot(running_machine &machine, int x, int y)
/*
video_update_pdp1: effectively redraw the screen
*/
-SCREEN_UPDATE_IND16( pdp1 )
+UINT32 pdp1_state::screen_update_pdp1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pdp1_state *state = screen.machine().driver_data<pdp1_state>();
- pdp1_erase_lightpen(state, bitmap);
- crt_update(state->m_crt, bitmap);
- pdp1_draw_lightpen(state, bitmap);
+ pdp1_erase_lightpen(this, bitmap);
+ crt_update(m_crt, bitmap);
+ pdp1_draw_lightpen(this, bitmap);
- pdp1_draw_panel(screen.machine(), state->m_panel_bitmap);
- copybitmap(bitmap, state->m_panel_bitmap, 0, 0, panel_window_offset_x, panel_window_offset_y, cliprect);
+ pdp1_draw_panel(screen.machine(), m_panel_bitmap);
+ copybitmap(bitmap, m_panel_bitmap, 0, 0, panel_window_offset_x, panel_window_offset_y, cliprect);
- copybitmap(bitmap, state->m_typewriter_bitmap, 0, 0, typewriter_window_offset_x, typewriter_window_offset_y, cliprect);
+ copybitmap(bitmap, m_typewriter_bitmap, 0, 0, typewriter_window_offset_x, typewriter_window_offset_y, cliprect);
return 0;
}
diff --git a/src/mess/video/pet.c b/src/mess/video/pet.c
index 5e10b5be2a2..ba246e9e94e 100644
--- a/src/mess/video/pet.c
+++ b/src/mess/video/pet.c
@@ -66,17 +66,16 @@ void superpet_vh_init (running_machine &machine)
}
// commodore pet discrete video circuit
-SCREEN_UPDATE_IND16( pet )
+UINT32 pet_state::screen_update_pet(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pet_state *state = screen.machine().driver_data<pet_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
int x, y, i;
for (y=0, i=0; y<25;y++)
{
for (x=0;x<40;x++, i++)
{
- drawgfx_opaque(bitmap, cliprect,screen.machine().gfx[state->m_font],
+ drawgfx_opaque(bitmap, cliprect,screen.machine().gfx[m_font],
videoram[i], 0, 0, 0, 8*x,8*y);
}
}
diff --git a/src/mess/video/pk8020.c b/src/mess/video/pk8020.c
index a265879ea33..107d6436011 100644
--- a/src/mess/video/pk8020.c
+++ b/src/mess/video/pk8020.c
@@ -15,11 +15,10 @@ void pk8020_state::video_start()
{
}
-SCREEN_UPDATE_IND16( pk8020 )
+UINT32 pk8020_state::screen_update_pk8020(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pk8020_state *state = screen.machine().driver_data<pk8020_state>();
int y, x, b, j;
- UINT8 *gfx = state->memregion("gfx1")->base();
+ UINT8 *gfx = memregion("gfx1")->base();
UINT8 *ram = screen.machine().device<ram_device>(RAM_TAG)->pointer();
for (y = 0; y < 16; y++)
@@ -29,11 +28,11 @@ SCREEN_UPDATE_IND16( pk8020 )
UINT8 chr = ram[x +(y*64) + 0x40000];
UINT8 attr= ram[x +(y*64) + 0x40400];
for (j = 0; j < 16; j++) {
- UINT32 addr = 0x10000 + x + ((y*16+j)*64) + (state->m_video_page * 0xC000);
+ UINT32 addr = 0x10000 + x + ((y*16+j)*64) + (m_video_page * 0xC000);
UINT8 code1 = ram[addr];
UINT8 code2 = ram[addr + 0x4000];
UINT8 code3 = ram[addr + 0x8000];
- UINT8 code4 = gfx[((chr<<4) + j) + (state->m_font*0x1000)];
+ UINT8 code4 = gfx[((chr<<4) + j) + (m_font*0x1000)];
if (attr) code4 ^= 0xff;
for (b = 0; b < 8; b++)
{
diff --git a/src/mess/video/poly88.c b/src/mess/video/poly88.c
index dbbbdee9dc5..7d15990bda3 100644
--- a/src/mess/video/poly88.c
+++ b/src/mess/video/poly88.c
@@ -26,9 +26,8 @@ void poly88_state::video_start()
m_FNT = memregion("chargen")->base();
}
-SCREEN_UPDATE_IND16( poly88 )
+UINT32 poly88_state::screen_update_poly88(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- poly88_state *state = screen.machine().driver_data<poly88_state>();
int x,y,j,b;
UINT16 addr;
int xpos;
@@ -40,7 +39,7 @@ SCREEN_UPDATE_IND16( poly88 )
xpos = 0;
for(x = 0; x < 64; x++ )
{
- UINT8 code = state->m_video_ram[addr + x];
+ UINT8 code = m_video_ram[addr + x];
if ((code & 0x80)==0)
{
for(j = 0; j < 15; j++ )
@@ -78,12 +77,12 @@ SCREEN_UPDATE_IND16( poly88 )
if (mcm6571a_shift[code]==0)
{
if (j < 9)
- l = state->m_FNT[code*16 + j];
+ l = m_FNT[code*16 + j];
}
else
{
if ((j > 2) && (j < 12))
- l = state->m_FNT[code*16 + j - 3];
+ l = m_FNT[code*16 + j - 3];
}
for(b = 0; b < 7; b++ )
diff --git a/src/mess/video/pp01.c b/src/mess/video/pp01.c
index 4f03d1dda6a..90d2ee54d07 100644
--- a/src/mess/video/pp01.c
+++ b/src/mess/video/pp01.c
@@ -15,9 +15,8 @@ void pp01_state::video_start()
{
}
-SCREEN_UPDATE_IND16( pp01 )
+UINT32 pp01_state::screen_update_pp01(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- pp01_state *state = screen.machine().driver_data<pp01_state>();
UINT8 code_r,code_g,code_b;
UINT8 col;
int y, x, b;
@@ -27,9 +26,9 @@ SCREEN_UPDATE_IND16( pp01 )
{
for (x = 0; x < 32; x++)
{
- code_r = ram[0x6000 + ((y+state->m_video_scroll)&0xff)*32 + x];
- code_g = ram[0xa000 + ((y+state->m_video_scroll)&0xff)*32 + x];
- code_b = ram[0xe000 + ((y+state->m_video_scroll)&0xff)*32 + x];
+ code_r = ram[0x6000 + ((y+m_video_scroll)&0xff)*32 + x];
+ code_g = ram[0xa000 + ((y+m_video_scroll)&0xff)*32 + x];
+ code_b = ram[0xe000 + ((y+m_video_scroll)&0xff)*32 + x];
for (b = 0; b < 8; b++)
{
col = (((code_r >> b) & 0x01) ? 4 : 0) + (((code_g >> b) & 0x01) ? 2 : 0) + (((code_b >> b) & 0x01) ? 1 : 0);
diff --git a/src/mess/video/primo.c b/src/mess/video/primo.c
index 064a1c849e8..a1212ae361b 100644
--- a/src/mess/video/primo.c
+++ b/src/mess/video/primo.c
@@ -36,7 +36,7 @@ static void primo_draw_scanline(running_machine &machine,bitmap_ind16 &bitmap, i
}
-SCREEN_UPDATE_IND16( primo )
+UINT32 primo_state::screen_update_primo(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
int primo_scanline;
diff --git a/src/mess/video/radio86.c b/src/mess/video/radio86.c
index 1e80a99efe4..5c163fbf97a 100644
--- a/src/mess/video/radio86.c
+++ b/src/mess/video/radio86.c
@@ -107,12 +107,11 @@ I8275_DISPLAY_PIXELS(partner_display_pixels)
}
}
-SCREEN_UPDATE_IND16( radio86 )
+UINT32 radio86_state::screen_update_radio86(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- radio86_state *state = screen.machine().driver_data<radio86_state>();
device_t *devconf = screen.machine().device("i8275");
i8275_update( devconf, bitmap, cliprect);
- copybitmap(bitmap, state->m_bitmap, 0, 0, 0, 0, cliprect);
+ copybitmap(bitmap, m_bitmap, 0, 0, 0, 0, cliprect);
return 0;
}
diff --git a/src/mess/video/rmnimbus.c b/src/mess/video/rmnimbus.c
index cdddfa38e25..55dc0dfb6a2 100644
--- a/src/mess/video/rmnimbus.c
+++ b/src/mess/video/rmnimbus.c
@@ -651,26 +651,25 @@ void rmnimbus_state::video_reset()
logerror("Video reset\n");
}
-SCREEN_VBLANK( nimbus )
+void rmnimbus_state::screen_eof_nimbus(screen_device &screen, bool state)
{
// logerror("SCREEN_VBLANK( nimbus )\n");
}
-SCREEN_UPDATE_IND16( nimbus )
+UINT32 rmnimbus_state::screen_update_nimbus(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- rmnimbus_state *state = screen.machine().driver_data<rmnimbus_state>();
int XCoord;
int YCoord = screen.vpos();
for(XCoord=0;XCoord<SCREEN_WIDTH_PIXELS;XCoord++)
{
- bitmap.pix16(YCoord, XCoord)=state->m_video_mem[XCoord][YCoord];
+ bitmap.pix16(YCoord, XCoord)=m_video_mem[XCoord][YCoord];
}
- state->m_hs_count++;
- if((state->m_hs_count & 0x000F)>0x0A)
- state->m_hs_count&=0xFFF0;
+ m_hs_count++;
+ if((m_hs_count & 0x000F)>0x0A)
+ m_hs_count&=0xFFF0;
return 0;
}
diff --git a/src/mess/video/sapi1.c b/src/mess/video/sapi1.c
index 176c7dedaff..8944715a8a5 100644
--- a/src/mess/video/sapi1.c
+++ b/src/mess/video/sapi1.c
@@ -89,9 +89,8 @@ VIDEO_START_MEMBER(sapi1_state,sapi1)
m_refresh_counter = 0;
}
-SCREEN_UPDATE_IND16( sapi1 )
+UINT32 sapi1_state::screen_update_sapi1(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- sapi1_state *state = screen.machine().driver_data<sapi1_state>();
int x,y,j,b;
UINT16 addr;
int xpos;
@@ -102,7 +101,7 @@ SCREEN_UPDATE_IND16( sapi1 )
xpos = 0;
for(x = 0; x < 40; x++ )
{
- UINT8 code = state->m_sapi_video_ram[addr + x];
+ UINT8 code = m_sapi_video_ram[addr + x];
UINT8 attr = (code >> 6) & 3;
code &= 0x3f;
for(j = 0; j < 9; j++ )
@@ -112,14 +111,14 @@ SCREEN_UPDATE_IND16( sapi1 )
UINT8 val;
if (j==8) {
if (attr==2) {
- val = (state->m_refresh_counter & 0x20) ? 1 : 0;
+ val = (m_refresh_counter & 0x20) ? 1 : 0;
} else {
val = 0;
}
} else {
val = (MHB2501[code*8 + j] >> (5-b)) & 1;
if (attr==1) {
- val = (state->m_refresh_counter & 0x20) ? val : 0;
+ val = (m_refresh_counter & 0x20) ? val : 0;
}
}
if(attr==3) {
@@ -134,7 +133,7 @@ SCREEN_UPDATE_IND16( sapi1 )
if (xpos>=6*40) break;
}
}
- state->m_refresh_counter++;
+ m_refresh_counter++;
return 0;
}
@@ -143,7 +142,7 @@ VIDEO_START_MEMBER(sapi1_state,sapizps3)
{
}
-SCREEN_UPDATE_IND16( sapizps3 )
+UINT32 sapi1_state::screen_update_sapizps3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
return 0;
}
diff --git a/src/mess/video/special.c b/src/mess/video/special.c
index 5237ddce0ac..f50a6271789 100644
--- a/src/mess/video/special.c
+++ b/src/mess/video/special.c
@@ -14,9 +14,8 @@ VIDEO_START_MEMBER(special_state,special)
{
}
-SCREEN_UPDATE_IND16( special )
+UINT32 special_state::screen_update_special(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- special_state *state = screen.machine().driver_data<special_state>();
UINT8 code;
int y, x, b;
@@ -24,7 +23,7 @@ SCREEN_UPDATE_IND16( special )
{
for (y = 0; y < 256; y++)
{
- code = state->m_p_videoram[y + x*256];
+ code = m_p_videoram[y + x*256];
for (b = 7; b >= 0; b--)
bitmap.pix16(y, x*8+(7-b)) = (code >> b) & 0x01;
}
@@ -35,9 +34,8 @@ VIDEO_START_MEMBER(special_state,specialp)
{
}
-SCREEN_UPDATE_IND16( specialp )
+UINT32 special_state::screen_update_specialp(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- special_state *state = screen.machine().driver_data<special_state>();
UINT8 code;
int y, x, b;
@@ -45,7 +43,7 @@ SCREEN_UPDATE_IND16( specialp )
{
for (y = 0; y < 256; y++)
{
- code = state->m_p_videoram[y + x*256];
+ code = m_p_videoram[y + x*256];
for (b = 7; b >= 0; b--)
bitmap.pix16(y, x*8+(7-b)) = (code >> b) & 0x01;
}
@@ -85,9 +83,8 @@ VIDEO_START_MEMBER(special_state,specimx)
memset(m_specimx_colorram,0x70,0x3000);
}
-SCREEN_UPDATE_IND16( specimx )
+UINT32 special_state::screen_update_specimx(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- special_state *state = screen.machine().driver_data<special_state>();
UINT8 code, color;
int y, x, b;
@@ -95,8 +92,8 @@ SCREEN_UPDATE_IND16( specimx )
{
for (y = 0; y < 256; y++)
{
- code = state->m_ram->pointer()[0x9000 + y + x*256];
- color = state->m_specimx_colorram[y + x*256];
+ code = m_ram->pointer()[0x9000 + y + x*256];
+ color = m_specimx_colorram[y + x*256];
for (b = 7; b >= 0; b--)
bitmap.pix16(y, x*8+(7-b)) = ((code >> b) & 0x01)==0 ? color & 0x0f : (color >> 4)& 0x0f ;
}
@@ -125,15 +122,14 @@ VIDEO_START_MEMBER(special_state,erik)
{
}
-SCREEN_UPDATE_IND16( erik )
+UINT32 special_state::screen_update_erik(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- special_state *state = screen.machine().driver_data<special_state>();
UINT8 code1, code2, color1, color2;
int y, x, b;
UINT8 *erik_video_ram_p1, *erik_video_ram_p2;
- erik_video_ram_p1 = state->m_ram->pointer() + 0x9000;
- erik_video_ram_p2 = state->m_ram->pointer() + 0xd000;
+ erik_video_ram_p1 = m_ram->pointer() + 0x9000;
+ erik_video_ram_p2 = m_ram->pointer() + 0xd000;
for (x = 0; x < 48; x++)
{
@@ -144,8 +140,8 @@ SCREEN_UPDATE_IND16( erik )
for (b = 7; b >= 0; b--)
{
- color1 = ((code1 >> b) & 0x01)==0 ? state->m_erik_background : state->m_erik_color_1;
- color2 = ((code2 >> b) & 0x01)==0 ? state->m_erik_background : state->m_erik_color_2;
+ color1 = ((code1 >> b) & 0x01)==0 ? m_erik_background : m_erik_color_1;
+ color2 = ((code2 >> b) & 0x01)==0 ? m_erik_background : m_erik_color_2;
bitmap.pix16(y, x*8+(7-b)) = color1 | color2;
}
}
diff --git a/src/mess/video/spectrum.c b/src/mess/video/spectrum.c
index b5d32100ebe..82a6936de54 100644
--- a/src/mess/video/spectrum.c
+++ b/src/mess/video/spectrum.c
@@ -57,20 +57,19 @@ INLINE unsigned char get_display_color (unsigned char color, int invert)
/* Code to change the FLASH status every 25 frames. Note this must be
independent of frame skip etc. */
-SCREEN_VBLANK( spectrum )
+void spectrum_state::screen_eof_spectrum(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- spectrum_state *state = screen.machine().driver_data<spectrum_state>();
EVENT_LIST_ITEM *pItem;
int NumItems;
- state->m_frame_number++;
- if (state->m_frame_number >= state->m_frame_invert_count)
+ m_frame_number++;
+ if (m_frame_number >= m_frame_invert_count)
{
- state->m_frame_number = 0;
- state->m_flash_invert = !state->m_flash_invert;
+ m_frame_number = 0;
+ m_flash_invert = !m_flash_invert;
}
/* Empty event buffer for undisplayed frames noting the last border
@@ -117,27 +116,26 @@ INLINE void spectrum_plot_pixel(bitmap_ind16 &bitmap, int x, int y, UINT32 color
bitmap.pix16(y, x) = (UINT16)color;
}
-SCREEN_UPDATE_IND16( spectrum )
+UINT32 spectrum_state::screen_update_spectrum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
/* for now do a full-refresh */
- spectrum_state *state = screen.machine().driver_data<spectrum_state>();
int x, y, b, scrx, scry;
unsigned short ink, pap;
unsigned char *attr, *scr;
int full_refresh = 1;
- scr=state->m_screen_location;
+ scr=m_screen_location;
for (y=0; y<192; y++)
{
scrx=SPEC_LEFT_BORDER;
scry=((y&7) * 8) + ((y&0x38)>>3) + (y&0xC0);
- attr=state->m_screen_location + ((scry>>3)*32) + 0x1800;
+ attr=m_screen_location + ((scry>>3)*32) + 0x1800;
for (x=0;x<32;x++)
{
/* Get ink and paper colour with bright */
- if (state->m_flash_invert && (*attr & 0x80))
+ if (m_flash_invert && (*attr & 0x80))
{
ink=((*attr)>>3) & 0x0f;
pap=((*attr) & 0x07) + (((*attr)>>3) & 0x08);
@@ -165,7 +163,7 @@ SCREEN_UPDATE_IND16( spectrum )
SPEC_TOP_BORDER, SPEC_DISPLAY_YSIZE, SPEC_BOTTOM_BORDER,
SPEC_LEFT_BORDER, SPEC_DISPLAY_XSIZE, SPEC_RIGHT_BORDER,
SPEC_LEFT_BORDER_CYCLES, SPEC_DISPLAY_XSIZE_CYCLES,
- SPEC_RIGHT_BORDER_CYCLES, state->m_retrace_cycles, 200, 0xfe);
+ SPEC_RIGHT_BORDER_CYCLES, m_retrace_cycles, 200, 0xfe);
return 0;
}
diff --git a/src/mess/video/ssystem3.c b/src/mess/video/ssystem3.c
index 82d1a3186b2..086c7ec21a5 100644
--- a/src/mess/video/ssystem3.c
+++ b/src/mess/video/ssystem3.c
@@ -183,27 +183,26 @@ static void ssystem3_draw_led(bitmap_ind16 &bitmap,INT16 color, int x, int y, in
}
}
-SCREEN_UPDATE_IND16( ssystem3 )
+UINT32 ssystem3_state::screen_update_ssystem3(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ssystem3_state *state = screen.machine().driver_data<ssystem3_state>();
int i;
for (i=0; i<4; i++) {
- ssystem3_draw_7segment(bitmap, state->m_lcd.data[1+i], ssystem3_led_pos[i].x, ssystem3_led_pos[i].y);
+ ssystem3_draw_7segment(bitmap, m_lcd.data[1+i], ssystem3_led_pos[i].x, ssystem3_led_pos[i].y);
}
- ssystem3_draw_led(bitmap, state->m_lcd.data[0]&1?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '0'); //?
- ssystem3_draw_led(bitmap, state->m_lcd.data[0]&2?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '5');
- ssystem3_draw_led(bitmap, state->m_lcd.data[0]&4?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '7');
- ssystem3_draw_led(bitmap, state->m_lcd.data[0]&8?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, 'b');
- ssystem3_draw_led(bitmap, state->m_lcd.data[0]&0x10?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '9');
- ssystem3_draw_led(bitmap, state->m_lcd.data[0]&0x20?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '8');
- ssystem3_draw_led(bitmap, state->m_lcd.data[0]&0x40?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, 'c');
- ssystem3_draw_led(bitmap, state->m_lcd.data[0]&0x80?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '6');
- ssystem3_draw_led(bitmap, state->m_lcd.data[1]&1?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '2');
- ssystem3_draw_led(bitmap, state->m_lcd.data[2]&1?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '1'); //?
- ssystem3_draw_led(bitmap, state->m_lcd.data[3]&1?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '3');
- ssystem3_draw_led(bitmap, state->m_lcd.data[4]&1?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '4');
+ ssystem3_draw_led(bitmap, m_lcd.data[0]&1?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '0'); //?
+ ssystem3_draw_led(bitmap, m_lcd.data[0]&2?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '5');
+ ssystem3_draw_led(bitmap, m_lcd.data[0]&4?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '7');
+ ssystem3_draw_led(bitmap, m_lcd.data[0]&8?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, 'b');
+ ssystem3_draw_led(bitmap, m_lcd.data[0]&0x10?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '9');
+ ssystem3_draw_led(bitmap, m_lcd.data[0]&0x20?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '8');
+ ssystem3_draw_led(bitmap, m_lcd.data[0]&0x40?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, 'c');
+ ssystem3_draw_led(bitmap, m_lcd.data[0]&0x80?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '6');
+ ssystem3_draw_led(bitmap, m_lcd.data[1]&1?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '2');
+ ssystem3_draw_led(bitmap, m_lcd.data[2]&1?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '1'); //?
+ ssystem3_draw_led(bitmap, m_lcd.data[3]&1?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '3');
+ ssystem3_draw_led(bitmap, m_lcd.data[4]&1?1:0, ssystem3_led_pos[4].x, ssystem3_led_pos[4].y, '4');
if (screen.machine().root_device().ioport("Configuration")->read()&1) { // playfield(optional device)
static const int lcd_signs_on[]={
diff --git a/src/mess/video/super80.c b/src/mess/video/super80.c
index f3c0a5b8915..4f2d0a1c619 100644
--- a/src/mess/video/super80.c
+++ b/src/mess/video/super80.c
@@ -70,19 +70,18 @@ PALETTE_INIT_MEMBER(super80_state,super80m)
-SCREEN_VBLANK( super80m )
+void super80_state::screen_eof_super80m(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- super80_state *state = screen.machine().driver_data<super80_state>();
/* if we chose another palette or colour mode, enable it */
UINT8 chosen_palette = (screen.machine().root_device().ioport("CONFIG")->read() & 0x60)>>5; // read colour dipswitches
- if (chosen_palette != state->m_current_palette) // any changes?
+ if (chosen_palette != m_current_palette) // any changes?
{
- state->m_current_palette = chosen_palette; // save new palette
- if (!state->m_current_palette)
+ m_current_palette = chosen_palette; // save new palette
+ if (!m_current_palette)
palette_set_colors_rgb(screen.machine(), super80_comp_palette); // composite colour
else
palette_set_colors_rgb(screen.machine(), super80_rgb_palette); // rgb and b&w
@@ -90,16 +89,15 @@ SCREEN_VBLANK( super80m )
}
}
-SCREEN_UPDATE_IND16( super80 )
+UINT32 super80_state::screen_update_super80(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- super80_state *state = screen.machine().driver_data<super80_state>();
UINT8 y,ra,chr=32,gfx,screen_on=0;
- UINT16 sy=0,ma=state->m_vidpg,x;
- UINT8 *RAM = state->memregion("maincpu")->base();
+ UINT16 sy=0,ma=m_vidpg,x;
+ UINT8 *RAM = memregion("maincpu")->base();
- output_set_value("cass_led",(state->m_shared & 0x20) ? 1 : 0);
+ output_set_value("cass_led",(m_shared & 0x20) ? 1 : 0);
- if ((state->m_shared & 4) || (!(screen.machine().root_device().ioport("CONFIG")->read() & 4))) /* bit 2 of port F0 is high, OR user turned on config switch */
+ if ((m_shared & 4) || (!(screen.machine().root_device().ioport("CONFIG")->read() & 4))) /* bit 2 of port F0 is high, OR user turned on config switch */
screen_on++;
for (y = 0; y < 16; y++)
@@ -114,7 +112,7 @@ SCREEN_UPDATE_IND16( super80 )
chr = RAM[ma | x] & 0x3f;
/* get pattern of pixels for that character scanline */
- gfx = state->m_p_chargen[(chr<<4) | ((ra & 8) >> 3) | ((ra & 7) << 1)];
+ gfx = m_p_chargen[(chr<<4) | ((ra & 8) >> 3) | ((ra & 7) << 1)];
/* Display a scanline of a character */
*p++ = BIT(gfx, 7);
@@ -132,16 +130,15 @@ SCREEN_UPDATE_IND16( super80 )
return 0;
}
-SCREEN_UPDATE_IND16( super80d )
+UINT32 super80_state::screen_update_super80d(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- super80_state *state = screen.machine().driver_data<super80_state>();
UINT8 y,ra,chr=32,gfx,screen_on=0;
- UINT16 sy=0,ma=state->m_vidpg,x;
- UINT8 *RAM = state->memregion("maincpu")->base();
+ UINT16 sy=0,ma=m_vidpg,x;
+ UINT8 *RAM = memregion("maincpu")->base();
- output_set_value("cass_led",(state->m_shared & 0x20) ? 1 : 0);
+ output_set_value("cass_led",(m_shared & 0x20) ? 1 : 0);
- if ((state->m_shared & 4) || (!(screen.machine().root_device().ioport("CONFIG")->read() & 4))) /* bit 2 of port F0 is high, OR user turned on config switch */
+ if ((m_shared & 4) || (!(screen.machine().root_device().ioport("CONFIG")->read() & 4))) /* bit 2 of port F0 is high, OR user turned on config switch */
screen_on++;
for (y = 0; y < 16; y++)
@@ -156,7 +153,7 @@ SCREEN_UPDATE_IND16( super80d )
chr = RAM[ma | x];
/* get pattern of pixels for that character scanline */
- gfx = state->m_p_chargen[((chr & 0x7f)<<4) | ((ra & 8) >> 3) | ((ra & 7) << 1)] ^ ((chr & 0x80) ? 0xff : 0);
+ gfx = m_p_chargen[((chr & 0x7f)<<4) | ((ra & 8) >> 3) | ((ra & 7) << 1)] ^ ((chr & 0x80) ? 0xff : 0);
/* Display a scanline of a character */
*p++ = BIT(gfx, 7);
@@ -174,16 +171,15 @@ SCREEN_UPDATE_IND16( super80d )
return 0;
}
-SCREEN_UPDATE_IND16( super80e )
+UINT32 super80_state::screen_update_super80e(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- super80_state *state = screen.machine().driver_data<super80_state>();
UINT8 y,ra,chr=32,gfx,screen_on=0;
- UINT16 sy=0,ma=state->m_vidpg,x;
- UINT8 *RAM = state->memregion("maincpu")->base();
+ UINT16 sy=0,ma=m_vidpg,x;
+ UINT8 *RAM = memregion("maincpu")->base();
- output_set_value("cass_led",(state->m_shared & 0x20) ? 1 : 0);
+ output_set_value("cass_led",(m_shared & 0x20) ? 1 : 0);
- if ((state->m_shared & 4) || (!(screen.machine().root_device().ioport("CONFIG")->read() & 4))) /* bit 2 of port F0 is high, OR user turned on config switch */
+ if ((m_shared & 4) || (!(screen.machine().root_device().ioport("CONFIG")->read() & 4))) /* bit 2 of port F0 is high, OR user turned on config switch */
screen_on++;
for (y = 0; y < 16; y++)
@@ -198,7 +194,7 @@ SCREEN_UPDATE_IND16( super80e )
chr = RAM[ma | x];
/* get pattern of pixels for that character scanline */
- gfx = state->m_p_chargen[(chr<<4) | ((ra & 8) >> 3) | ((ra & 7) << 1)];
+ gfx = m_p_chargen[(chr<<4) | ((ra & 8) >> 3) | ((ra & 7) << 1)];
/* Display a scanline of a character */
*p++ = BIT(gfx, 7);
@@ -216,20 +212,19 @@ SCREEN_UPDATE_IND16( super80e )
return 0;
}
-SCREEN_UPDATE_IND16( super80m )
+UINT32 super80_state::screen_update_super80m(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- super80_state *state = screen.machine().driver_data<super80_state>();
UINT8 y,ra,chr=32,gfx,screen_on=0;
- UINT16 sy=0,ma=state->m_vidpg,x;
+ UINT16 sy=0,ma=m_vidpg,x;
UINT8 col, bg=0, fg=0, options=screen.machine().root_device().ioport("CONFIG")->read();
- UINT8 *RAM = state->memregion("maincpu")->base();
+ UINT8 *RAM = memregion("maincpu")->base();
/* get selected character generator */
- UINT8 cgen = state->m_current_charset ^ ((options & 0x10)>>4); /* bit 0 of port F1 and cgen config switch */
+ UINT8 cgen = m_current_charset ^ ((options & 0x10)>>4); /* bit 0 of port F1 and cgen config switch */
- output_set_value("cass_led",(state->m_shared & 0x20) ? 1 : 0);
+ output_set_value("cass_led",(m_shared & 0x20) ? 1 : 0);
- if ((state->m_shared & 4) || (!(options & 4))) /* bit 2 of port F0 is high, OR user turned on config switch */
+ if ((m_shared & 4) || (!(options & 4))) /* bit 2 of port F0 is high, OR user turned on config switch */
screen_on++;
if (screen_on)
@@ -260,9 +255,9 @@ SCREEN_UPDATE_IND16( super80m )
/* get pattern of pixels for that character scanline */
if (cgen)
- gfx = state->m_p_chargen[(chr<<4) | ((ra & 8) >> 3) | ((ra & 7) << 1)];
+ gfx = m_p_chargen[(chr<<4) | ((ra & 8) >> 3) | ((ra & 7) << 1)];
else
- gfx = state->m_p_chargen[0x1000 | ((chr & 0x7f)<<4) | ((ra & 8) >> 3) | ((ra & 7) << 1)] ^ ((chr & 0x80) ? 0xff : 0);
+ gfx = m_p_chargen[0x1000 | ((chr & 0x7f)<<4) | ((ra & 8) >> 3) | ((ra & 7) << 1)] ^ ((chr & 0x80) ? 0xff : 0);
/* Display a scanline of a character */
*p++ = BIT(gfx, 7) ? fg : bg;
@@ -384,15 +379,14 @@ VIDEO_START_MEMBER(super80_state,super80v)
m_p_colorram = memregion("colorram")->base();
}
-SCREEN_UPDATE_RGB32( super80v )
+UINT32 super80_state::screen_update_super80v(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect)
{
- super80_state *state = screen.machine().driver_data<super80_state>();
- state->m_framecnt++;
- state->m_speed = state->m_mc6845_reg[10]&0x20, state->m_flash = state->m_mc6845_reg[10]&0x40; // cursor modes
- state->m_cursor = (state->m_mc6845_reg[14]<<8) | state->m_mc6845_reg[15]; // get cursor position
- state->m_s_options=screen.machine().root_device().ioport("CONFIG")->read();
- output_set_value("cass_led",(state->m_shared & 0x20) ? 1 : 0);
- state->m_6845->screen_update(screen, bitmap, cliprect);
+ m_framecnt++;
+ m_speed = m_mc6845_reg[10]&0x20, m_flash = m_mc6845_reg[10]&0x40; // cursor modes
+ m_cursor = (m_mc6845_reg[14]<<8) | m_mc6845_reg[15]; // get cursor position
+ m_s_options=screen.machine().root_device().ioport("CONFIG")->read();
+ output_set_value("cass_led",(m_shared & 0x20) ? 1 : 0);
+ m_6845->screen_update(screen, bitmap, cliprect);
return 0;
}
diff --git a/src/mess/video/ti85.c b/src/mess/video/ti85.c
index b569bfd19cf..b02851b671e 100644
--- a/src/mess/video/ti85.c
+++ b/src/mess/video/ti85.c
@@ -147,43 +147,42 @@ void ti85_state::video_start()
{
}
-SCREEN_UPDATE_IND16( ti85 )
+UINT32 ti85_state::screen_update_ti85(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ti85_state *state = screen.machine().driver_data<ti85_state>();
- address_space &space = *state->m_maincpu->space(AS_PROGRAM);
+ address_space &space = *m_maincpu->space(AS_PROGRAM);
int x,y,b;
int brightnes;
int lcdmem;
- if (!state->m_LCD_status || !state->m_timer_interrupt_mask)
+ if (!m_LCD_status || !m_timer_interrupt_mask)
{
- for (y=0; y<state->m_ti_screen_y_size; y++)
- for (x=0; x<state->m_ti_screen_x_size; x++)
+ for (y=0; y<m_ti_screen_y_size; y++)
+ for (x=0; x<m_ti_screen_x_size; x++)
for (b=0; b<8; b++)
- bitmap.pix16(y, x*8+b) = ti85_palette[state->m_LCD_contrast&0x1f][6];
+ bitmap.pix16(y, x*8+b) = ti85_palette[m_LCD_contrast&0x1f][6];
return 0;
}
- lcdmem = ((state->m_LCD_memory_base & 0x3F) + 0xc0) << 0x08;
+ lcdmem = ((m_LCD_memory_base & 0x3F) + 0xc0) << 0x08;
- memcpy (state->m_frames, state->m_frames+state->m_ti_video_memory_size, sizeof (UINT8) * (state->m_ti_number_of_frames-1) * state->m_ti_video_memory_size);
+ memcpy (m_frames, m_frames+m_ti_video_memory_size, sizeof (UINT8) * (m_ti_number_of_frames-1) * m_ti_video_memory_size);
- for (y=0; y<state->m_ti_screen_y_size; y++)
- for (x=0; x<state->m_ti_screen_x_size; x++)
- *(state->m_frames+(state->m_ti_number_of_frames-1)*state->m_ti_video_memory_size+y*state->m_ti_screen_x_size+x) = space.read_byte(lcdmem+y*state->m_ti_screen_x_size+x);
+ for (y=0; y<m_ti_screen_y_size; y++)
+ for (x=0; x<m_ti_screen_x_size; x++)
+ *(m_frames+(m_ti_number_of_frames-1)*m_ti_video_memory_size+y*m_ti_screen_x_size+x) = space.read_byte(lcdmem+y*m_ti_screen_x_size+x);
- for (y=0; y<state->m_ti_screen_y_size; y++)
- for (x=0; x<state->m_ti_screen_x_size; x++)
+ for (y=0; y<m_ti_screen_y_size; y++)
+ for (x=0; x<m_ti_screen_x_size; x++)
for (b=0; b<8; b++)
{
- brightnes = ((*(state->m_frames+0*state->m_ti_video_memory_size+y*state->m_ti_screen_x_size+x)>>(7-b)) & 0x01)
- + ((*(state->m_frames+1*state->m_ti_video_memory_size+y*state->m_ti_screen_x_size+x)>>(7-b)) & 0x01)
- + ((*(state->m_frames+2*state->m_ti_video_memory_size+y*state->m_ti_screen_x_size+x)>>(7-b)) & 0x01)
- + ((*(state->m_frames+3*state->m_ti_video_memory_size+y*state->m_ti_screen_x_size+x)>>(7-b)) & 0x01)
- + ((*(state->m_frames+4*state->m_ti_video_memory_size+y*state->m_ti_screen_x_size+x)>>(7-b)) & 0x01)
- + ((*(state->m_frames+5*state->m_ti_video_memory_size+y*state->m_ti_screen_x_size+x)>>(7-b)) & 0x01);
-
- bitmap.pix16(y, x*8+b) = ti85_palette[state->m_LCD_contrast&0x1f][brightnes];
+ brightnes = ((*(m_frames+0*m_ti_video_memory_size+y*m_ti_screen_x_size+x)>>(7-b)) & 0x01)
+ + ((*(m_frames+1*m_ti_video_memory_size+y*m_ti_screen_x_size+x)>>(7-b)) & 0x01)
+ + ((*(m_frames+2*m_ti_video_memory_size+y*m_ti_screen_x_size+x)>>(7-b)) & 0x01)
+ + ((*(m_frames+3*m_ti_video_memory_size+y*m_ti_screen_x_size+x)>>(7-b)) & 0x01)
+ + ((*(m_frames+4*m_ti_video_memory_size+y*m_ti_screen_x_size+x)>>(7-b)) & 0x01)
+ + ((*(m_frames+5*m_ti_video_memory_size+y*m_ti_screen_x_size+x)>>(7-b)) & 0x01);
+
+ bitmap.pix16(y, x*8+b) = ti85_palette[m_LCD_contrast&0x1f][brightnes];
}
return 0;
}
diff --git a/src/mess/video/timex.c b/src/mess/video/timex.c
index 4ba932594a0..ab23e138c9b 100644
--- a/src/mess/video/timex.c
+++ b/src/mess/video/timex.c
@@ -178,27 +178,26 @@ static void ts2068_lores_scanline(running_machine &machine,bitmap_ind16 &bitmap,
}
}
-SCREEN_UPDATE_IND16( ts2068 )
+UINT32 spectrum_state::screen_update_ts2068(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
/* for now TS2068 will do a full-refresh */
- spectrum_state *state = screen.machine().driver_data<spectrum_state>();
int count;
int full_refresh = 1;
- if ((state->m_port_ff_data & 7) == 6)
+ if ((m_port_ff_data & 7) == 6)
{
/* 64 Column mode */
- unsigned short inkcolor = (state->m_port_ff_data & 0x38) >> 3;
+ unsigned short inkcolor = (m_port_ff_data & 0x38) >> 3;
for (count = 0; count < 192; count++)
ts2068_64col_scanline(screen.machine(),bitmap, count, TS2068_TOP_BORDER, inkcolor);
}
- else if ((state->m_port_ff_data & 7) == 2)
+ else if ((m_port_ff_data & 7) == 2)
{
/* Extended Color mode */
for (count = 0; count < 192; count++)
ts2068_hires_scanline(screen.machine(),bitmap, count, TS2068_TOP_BORDER);
}
- else if ((state->m_port_ff_data & 7) == 1)
+ else if ((m_port_ff_data & 7) == 1)
{
/* Screen 6000-7aff */
for (count = 0; count < 192; count++)
@@ -219,27 +218,26 @@ SCREEN_UPDATE_IND16( ts2068 )
return 0;
}
-SCREEN_UPDATE_IND16( tc2048 )
+UINT32 spectrum_state::screen_update_tc2048(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
/* for now TS2068 will do a full-refresh */
- spectrum_state *state = screen.machine().driver_data<spectrum_state>();
int count;
int full_refresh = 1;
- if ((state->m_port_ff_data & 7) == 6)
+ if ((m_port_ff_data & 7) == 6)
{
/* 64 Column mode */
- unsigned short inkcolor = (state->m_port_ff_data & 0x38) >> 3;
+ unsigned short inkcolor = (m_port_ff_data & 0x38) >> 3;
for (count = 0; count < 192; count++)
ts2068_64col_scanline(screen.machine(),bitmap, count, SPEC_TOP_BORDER, inkcolor);
}
- else if ((state->m_port_ff_data & 7) == 2)
+ else if ((m_port_ff_data & 7) == 2)
{
/* Extended Color mode */
for (count = 0; count < 192; count++)
ts2068_hires_scanline(screen.machine(),bitmap, count, SPEC_TOP_BORDER);
}
- else if ((state->m_port_ff_data & 7) == 1)
+ else if ((m_port_ff_data & 7) == 1)
{
/* Screen 6000-7aff */
for (count = 0; count < 192; count++)
diff --git a/src/mess/video/trs80.c b/src/mess/video/trs80.c
index 05ef2fac462..1ae8faa6e18 100644
--- a/src/mess/video/trs80.c
+++ b/src/mess/video/trs80.c
@@ -51,17 +51,16 @@ void trs80_state::video_start()
/* 7 or 8-bit video, 32/64 characters per line = trs80, trs80l2, sys80 */
-SCREEN_UPDATE_IND16( trs80 )
+UINT32 trs80_state::screen_update_trs80(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- trs80_state *state = screen.machine().driver_data<trs80_state>();
UINT8 y,ra,chr,gfx,gfxbit;
UINT16 sy=0,ma=0,x;
- UINT8 cols = BIT(state->m_mode, 0) ? 32 : 64;
- UINT8 skip = BIT(state->m_mode, 0) ? 2 : 1;
+ UINT8 cols = BIT(m_mode, 0) ? 32 : 64;
+ UINT8 skip = BIT(m_mode, 0) ? 2 : 1;
- if (state->m_mode != state->m_size_store)
+ if (m_mode != m_size_store)
{
- state->m_size_store = state->m_mode & 1;
+ m_size_store = m_mode & 1;
screen.set_visible_area(0, cols*6-1, 0, 16*12-1);
}
@@ -73,7 +72,7 @@ SCREEN_UPDATE_IND16( trs80 )
for (x = ma; x < ma + 64; x+=skip)
{
- chr = state->m_p_videoram[x];
+ chr = m_p_videoram[x];
if (chr & 0x80)
{
@@ -89,20 +88,20 @@ SCREEN_UPDATE_IND16( trs80 )
}
else
{
- if (BIT(state->m_mode, 1) & (chr < 32)) chr+=64;
+ if (BIT(m_mode, 1) & (chr < 32)) chr+=64;
// if g,j,p,q,y; lower the descender
if ((chr==0x2c)||(chr==0x3b)||(chr==0x67)||(chr==0x6a)||(chr==0x70)||(chr==0x71)||(chr==0x79))
{
if ((ra < 10) && (ra > 1))
- gfx = state->m_p_chargen[(chr<<3) | (ra-2) ];
+ gfx = m_p_chargen[(chr<<3) | (ra-2) ];
else
gfx = 0;
}
else
{
if (ra < 8)
- gfx = state->m_p_chargen[(chr<<3) | ra ];
+ gfx = m_p_chargen[(chr<<3) | ra ];
else
gfx = 0;
}
@@ -123,27 +122,26 @@ SCREEN_UPDATE_IND16( trs80 )
}
/* 8-bit video, 32/64/40/80 characters per line = trs80m3, trs80m4. */
-SCREEN_UPDATE_IND16( trs80m4 )
+UINT32 trs80_state::screen_update_trs80m4(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- trs80_state *state = screen.machine().driver_data<trs80_state>();
UINT8 y,ra,chr,gfx,gfxbit;
UINT16 sy=0,ma=0,x;
UINT8 skip=1;
- UINT8 cols = BIT(state->m_mode, 2) ? 80 : 64;
- UINT8 rows = BIT(state->m_mode, 2) ? 24 : 16;
- UINT8 lines = BIT(state->m_mode, 2) ? 10 : 12;
+ UINT8 cols = BIT(m_mode, 2) ? 80 : 64;
+ UINT8 rows = BIT(m_mode, 2) ? 24 : 16;
+ UINT8 lines = BIT(m_mode, 2) ? 10 : 12;
UINT8 s_cols = cols;
- UINT8 mask = BIT(state->m_mode, 5) ? 0xff : 0xbf; /* Select Japanese or extended chars */
+ UINT8 mask = BIT(m_mode, 5) ? 0xff : 0xbf; /* Select Japanese or extended chars */
- if (state->m_mode & 1)
+ if (m_mode & 1)
{
s_cols >>= 1;
skip = 2;
}
- if ((state->m_mode & 0x7f) != state->m_size_store)
+ if ((m_mode & 0x7f) != m_size_store)
{
- state->m_size_store = state->m_mode & 5;
+ m_size_store = m_mode & 5;
screen.set_visible_area(0, s_cols*8-1, 0, rows*lines-1);
}
@@ -155,12 +153,12 @@ SCREEN_UPDATE_IND16( trs80m4 )
for (x = ma; x < ma + cols; x+=skip)
{
- chr = state->m_p_videoram[x+state->m_start_address];
+ chr = m_p_videoram[x+m_start_address];
- if (((chr & 0xc0) == 0xc0) && (~state->m_mode & 8))
+ if (((chr & 0xc0) == 0xc0) && (~m_mode & 8))
{
if (ra < 8)
- gfx = state->m_p_chargen[((chr&mask)<<3) | ra ];
+ gfx = m_p_chargen[((chr&mask)<<3) | ra ];
else
gfx = 0;
@@ -174,7 +172,7 @@ SCREEN_UPDATE_IND16( trs80m4 )
*p++ = BIT(gfx, 0);
}
else
- if ((chr & 0x80) && (~state->m_mode & 8))
+ if ((chr & 0x80) && (~m_mode & 8))
{
gfxbit = (ra & 0x0c)>>1;
/* Display one line of a lores character */
@@ -192,12 +190,12 @@ SCREEN_UPDATE_IND16( trs80m4 )
{
/* get pattern of pixels for that character scanline */
if (ra < 8)
- gfx = state->m_p_chargen[((chr&0x7f)<<3) | ra ];
+ gfx = m_p_chargen[((chr&0x7f)<<3) | ra ];
else
gfx = 0;
/* if inverse mode, and bit 7 set, invert gfx */
- if (BIT(state->m_mode, 3) & BIT(chr, 7))
+ if (BIT(m_mode, 3) & BIT(chr, 7))
gfx ^= 0xff;
/* Display a scanline of a character */
@@ -218,17 +216,16 @@ SCREEN_UPDATE_IND16( trs80m4 )
}
/* 7 or 8-bit video, 64/32 characters per line = ht1080z, ht1080z2, ht108064 */
-SCREEN_UPDATE_IND16( ht1080z )
+UINT32 trs80_state::screen_update_ht1080z(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- trs80_state *state = screen.machine().driver_data<trs80_state>();
UINT8 y,ra,chr,gfx,gfxbit;
UINT16 sy=0,ma=0,x;
- UINT8 cols = BIT(state->m_mode, 0) ? 32 : 64;
- UINT8 skip = BIT(state->m_mode, 0) ? 2 : 1;
+ UINT8 cols = BIT(m_mode, 0) ? 32 : 64;
+ UINT8 skip = BIT(m_mode, 0) ? 2 : 1;
- if (state->m_mode != state->m_size_store)
+ if (m_mode != m_size_store)
{
- state->m_size_store = state->m_mode & 1;
+ m_size_store = m_mode & 1;
screen.set_visible_area(0, cols*6-1, 0, 16*12-1);
}
@@ -240,7 +237,7 @@ SCREEN_UPDATE_IND16( ht1080z )
for (x = ma; x < ma + 64; x+=skip)
{
- chr = state->m_p_videoram[x];
+ chr = m_p_videoram[x];
if (chr & 0x80)
{
@@ -256,10 +253,10 @@ SCREEN_UPDATE_IND16( ht1080z )
}
else
{
- if ((state->m_mode & 2) && (chr < 32)) chr+=64;
+ if ((m_mode & 2) && (chr < 32)) chr+=64;
/* get pattern of pixels for that character scanline */
- gfx = state->m_p_chargen[(chr<<4) | ra ];
+ gfx = m_p_chargen[(chr<<4) | ra ];
/* Display a scanline of a character (6 pixels) */
*p++ = BIT(gfx, 7);
@@ -277,28 +274,27 @@ SCREEN_UPDATE_IND16( ht1080z )
}
/* 8-bit video, 64/80 characters per line = lnw80 */
-SCREEN_UPDATE_IND16( lnw80 )
+UINT32 trs80_state::screen_update_lnw80(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- trs80_state *state = screen.machine().driver_data<trs80_state>();
static const UINT16 rows[] = { 0, 0x200, 0x100, 0x300, 1, 0x201, 0x101, 0x301 };
UINT8 chr,gfx,gfxbit,bg=7,fg=0;
UINT16 sy=0,ma=0,x,y,ra;
- UINT8 cols = BIT(state->m_mode, 4) ? 80 : 64;
+ UINT8 cols = BIT(m_mode, 4) ? 80 : 64;
/* Although the OS can select 32-character mode, it is not supported by hardware */
- if (state->m_mode != state->m_size_store)
+ if (m_mode != m_size_store)
{
- state->m_size_store = state->m_mode & 0x10;
+ m_size_store = m_mode & 0x10;
screen.set_visible_area(0, cols*6-1, 0, 16*12-1);
}
- if (state->m_mode & 8)
+ if (m_mode & 8)
{
bg = 0;
fg = 7;
}
- switch (state->m_mode & 0x30)
+ switch (m_mode & 0x30)
{
case 0: // MODE 0
for (y = 0; y < 16; y++)
@@ -309,7 +305,7 @@ SCREEN_UPDATE_IND16( lnw80 )
for (x = ma; x < ma + 64; x++)
{
- chr = state->m_p_videoram[x];
+ chr = m_p_videoram[x];
if (chr & 0x80)
{
@@ -327,7 +323,7 @@ SCREEN_UPDATE_IND16( lnw80 )
{
/* get pattern of pixels for that character scanline */
if (ra < 8)
- gfx = state->m_p_chargen[(chr<<1) | rows[ra] ];
+ gfx = m_p_chargen[(chr<<1) | rows[ra] ];
else
gfx = 0;
@@ -354,7 +350,7 @@ SCREEN_UPDATE_IND16( lnw80 )
for (x = 0; x < 0x40; x++)
{
- gfx = state->m_p_gfxram[ y | x | ra];
+ gfx = m_p_gfxram[ y | x | ra];
/* Display 6 pixels in normal region */
*p++ = BIT(gfx, 0) ? fg : bg;
*p++ = BIT(gfx, 1) ? fg : bg;
@@ -366,7 +362,7 @@ SCREEN_UPDATE_IND16( lnw80 )
for (x = 0; x < 0x10; x++)
{
- gfx = state->m_p_gfxram[ 0x3000 | x | (ra & 0xc00) | ((ra & 0x3000) >> 8)];
+ gfx = m_p_gfxram[ 0x3000 | x | (ra & 0xc00) | ((ra & 0x3000) >> 8)];
/* Display 6 pixels in extended region */
*p++ = BIT(gfx, 0) ? fg : bg;
*p++ = BIT(gfx, 1) ? fg : bg;
@@ -390,7 +386,7 @@ SCREEN_UPDATE_IND16( lnw80 )
for (x = 0; x < 0x40; x++)
{
- gfx = state->m_p_gfxram[ y | x | ra];
+ gfx = m_p_gfxram[ y | x | ra];
/* Display 6 pixels in normal region */
fg = (gfx & 0x38) >> 3;
*p++ = fg;
@@ -417,13 +413,13 @@ SCREEN_UPDATE_IND16( lnw80 )
for (x = 0; x < 0x40; x++)
{
- gfx = state->m_p_gfxram[ y | x | ra];
- fg = (state->m_p_videoram[ 0x3c00 | x | y ] & 0x38) >> 3;
+ gfx = m_p_gfxram[ y | x | ra];
+ fg = (m_p_videoram[ 0x3c00 | x | y ] & 0x38) >> 3;
/* Display 6 pixels in normal region */
*p++ = BIT(gfx, 0) ? fg : bg;
*p++ = BIT(gfx, 1) ? fg : bg;
*p++ = BIT(gfx, 2) ? fg : bg;
- fg = state->m_p_videoram[ 0x3c00 | x | y ] & 0x07;
+ fg = m_p_videoram[ 0x3c00 | x | y ] & 0x07;
*p++ = BIT(gfx, 3) ? fg : bg;
*p++ = BIT(gfx, 4) ? fg : bg;
*p++ = BIT(gfx, 5) ? fg : bg;
@@ -431,13 +427,13 @@ SCREEN_UPDATE_IND16( lnw80 )
for (x = 0; x < 0x10; x++)
{
- gfx = state->m_p_gfxram[ 0x3000 | x | (ra & 0xc00) | ((ra & 0x3000) >> 8)];
- fg = (state->m_p_gfxram[ 0x3c00 | x | y ] & 0x38) >> 3;
+ gfx = m_p_gfxram[ 0x3000 | x | (ra & 0xc00) | ((ra & 0x3000) >> 8)];
+ fg = (m_p_gfxram[ 0x3c00 | x | y ] & 0x38) >> 3;
/* Display 6 pixels in extended region */
*p++ = BIT(gfx, 0) ? fg : bg;
*p++ = BIT(gfx, 1) ? fg : bg;
*p++ = BIT(gfx, 2) ? fg : bg;
- fg = state->m_p_gfxram[ 0x3c00 | x | y ] & 0x07;
+ fg = m_p_gfxram[ 0x3c00 | x | y ] & 0x07;
*p++ = BIT(gfx, 3) ? fg : bg;
*p++ = BIT(gfx, 4) ? fg : bg;
*p++ = BIT(gfx, 5) ? fg : bg;
@@ -450,17 +446,16 @@ SCREEN_UPDATE_IND16( lnw80 )
}
/* lores characters are in the character generator. Each character is 8x16. */
-SCREEN_UPDATE_IND16( radionic )
+UINT32 trs80_state::screen_update_radionic(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- trs80_state *state = screen.machine().driver_data<trs80_state>();
UINT8 y,ra,chr,gfx;
UINT16 sy=0,ma=0,x;
- UINT8 cols = BIT(state->m_mode, 0) ? 32 : 64;
- UINT8 skip = BIT(state->m_mode, 0) ? 2 : 1;
+ UINT8 cols = BIT(m_mode, 0) ? 32 : 64;
+ UINT8 skip = BIT(m_mode, 0) ? 2 : 1;
- if (state->m_mode != state->m_size_store)
+ if (m_mode != m_size_store)
{
- state->m_size_store = state->m_mode & 1;
+ m_size_store = m_mode & 1;
screen.set_visible_area(0, cols*8-1, 0, 16*16-1);
}
@@ -472,10 +467,10 @@ SCREEN_UPDATE_IND16( radionic )
for (x = ma; x < ma + 64; x+=skip)
{
- chr = state->m_p_videoram[x];
+ chr = m_p_videoram[x];
/* get pattern of pixels for that character scanline */
- gfx = state->m_p_chargen[(chr<<3) | (ra & 7) | (ra & 8) << 8];
+ gfx = m_p_chargen[(chr<<3) | (ra & 7) | (ra & 8) << 8];
/* Display a scanline of a character (8 pixels) */
*p++ = BIT(gfx, 0);
@@ -493,18 +488,17 @@ SCREEN_UPDATE_IND16( radionic )
return 0;
}
-SCREEN_UPDATE_IND16( meritum )
+UINT32 trs80_state::screen_update_meritum(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
/* lores characters are in the character generator. Each character is 6x11. */
{
- trs80_state *state = screen.machine().driver_data<trs80_state>();
UINT8 y,ra,chr,gfx;
UINT16 sy=0,ma=0,x;
- UINT8 cols = BIT(state->m_mode, 0) ? 32 : 64;
- UINT8 skip = BIT(state->m_mode, 0) ? 2 : 1;
+ UINT8 cols = BIT(m_mode, 0) ? 32 : 64;
+ UINT8 skip = BIT(m_mode, 0) ? 2 : 1;
- if (state->m_mode != state->m_size_store)
+ if (m_mode != m_size_store)
{
- state->m_size_store = state->m_mode;
+ m_size_store = m_mode;
screen.set_visible_area(0, cols*6-1, 0, 16*11-1);
}
@@ -516,10 +510,10 @@ SCREEN_UPDATE_IND16( meritum )
for (x = ma; x < ma + 64; x+=skip)
{
- chr = state->m_p_videoram[x];
+ chr = m_p_videoram[x];
/* get pattern of pixels for that character scanline */
- gfx = state->m_p_chargen[(chr<<4) | ra];
+ gfx = m_p_chargen[(chr<<4) | ra];
/* Display a scanline of a character (6 pixels) */
*p++ = BIT(gfx, 5);
diff --git a/src/mess/video/tx0.c b/src/mess/video/tx0.c
index 2d11c94d076..d1b80896350 100644
--- a/src/mess/video/tx0.c
+++ b/src/mess/video/tx0.c
@@ -45,14 +45,13 @@ void tx0_state::video_start()
}
-SCREEN_VBLANK( tx0 )
+void tx0_state::screen_eof_tx0(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- tx0_state *state = screen.machine().driver_data<tx0_state>();
- crt_eof(state->m_crt);
+ crt_eof(m_crt);
}
}
@@ -74,15 +73,14 @@ void tx0_plot(running_machine &machine, int x, int y)
/*
SCREEN_UPDATE_IND16( tx0 ): effectively redraw the screen
*/
-SCREEN_UPDATE_IND16( tx0 )
+UINT32 tx0_state::screen_update_tx0(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- tx0_state *state = screen.machine().driver_data<tx0_state>();
- crt_update(state->m_crt, bitmap);
+ crt_update(m_crt, bitmap);
- tx0_draw_panel(screen.machine(), state->m_panel_bitmap);
- copybitmap(bitmap, state->m_panel_bitmap, 0, 0, panel_window_offset_x, panel_window_offset_y, cliprect);
+ tx0_draw_panel(screen.machine(), m_panel_bitmap);
+ copybitmap(bitmap, m_panel_bitmap, 0, 0, panel_window_offset_x, panel_window_offset_y, cliprect);
- copybitmap(bitmap, state->m_typewriter_bitmap, 0, 0, typewriter_window_offset_x, typewriter_window_offset_y, cliprect);
+ copybitmap(bitmap, m_typewriter_bitmap, 0, 0, typewriter_window_offset_x, typewriter_window_offset_y, cliprect);
return 0;
}
diff --git a/src/mess/video/ut88.c b/src/mess/video/ut88.c
index b4b607f0ed6..3526d66aca3 100644
--- a/src/mess/video/ut88.c
+++ b/src/mess/video/ut88.c
@@ -25,17 +25,16 @@ VIDEO_START_MEMBER(ut88_state,ut88)
{
}
-SCREEN_UPDATE_IND16( ut88 )
+UINT32 ut88_state::screen_update_ut88(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- ut88_state *state = screen.machine().driver_data<ut88_state>();
int x,y;
for(y = 0; y < 28; y++ )
{
for(x = 0; x < 64; x++ )
{
- int code = state->m_p_videoram[ x + y*64 ] & 0x7f;
- int attr = state->m_p_videoram[ x+1 + y*64 ] & 0x80;
+ int code = m_p_videoram[ x + y*64 ] & 0x7f;
+ int attr = m_p_videoram[ x+1 + y*64 ] & 0x80;
drawgfx_opaque(bitmap, cliprect, screen.machine().gfx[0], code | attr, 0, 0,0, x*8,y*8);
}
}
diff --git a/src/mess/video/vc4000.c b/src/mess/video/vc4000.c
index f01dc3b804c..34115c4319a 100644
--- a/src/mess/video/vc4000.c
+++ b/src/mess/video/vc4000.c
@@ -646,9 +646,8 @@ INTERRUPT_GEN( vc4000_video_line )
}
}
-SCREEN_UPDATE_IND16( vc4000 )
+UINT32 vc4000_state::screen_update_vc4000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- vc4000_state *state = screen.machine().driver_data<vc4000_state>();
- copybitmap(bitmap, *state->m_bitmap, 0, 0, 0, 0, cliprect);
+ copybitmap(bitmap, *m_bitmap, 0, 0, 0, 0, cliprect);
return 0;
}
diff --git a/src/mess/video/vector06.c b/src/mess/video/vector06.c
index a2ba2ad50c8..2bc4e5b6c9e 100644
--- a/src/mess/video/vector06.c
+++ b/src/mess/video/vector06.c
@@ -14,18 +14,17 @@ void vector06_state::video_start()
{
}
-SCREEN_UPDATE_IND16( vector06 )
+UINT32 vector06_state::screen_update_vector06(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- vector06_state *state = screen.machine().driver_data<vector06_state>();
UINT8 code1,code2,code3,code4;
UINT8 col;
int y, x, b,draw_y;
UINT8 *ram = screen.machine().device<ram_device>(RAM_TAG)->pointer();
- int width = (state->m_video_mode==0x00) ? 256 : 512;
+ int width = (m_video_mode==0x00) ? 256 : 512;
rectangle screen_area(0,width+64-1,0,256+64-1);
// fill border color
- bitmap.fill(state->m_color_index, screen_area);
+ bitmap.fill(m_color_index, screen_area);
// draw image
for (x = 0; x < 32; x++)
@@ -33,7 +32,7 @@ SCREEN_UPDATE_IND16( vector06 )
for (y = 0; y < 256; y++)
{
// port A of 8255 also used as scroll
- draw_y = ((255-y-state->m_keyboard_mask) & 0xff) +32;
+ draw_y = ((255-y-m_keyboard_mask) & 0xff) +32;
code1 = ram[0x8000 + x*256 + y];
code2 = ram[0xa000 + x*256 + y];
code3 = ram[0xc000 + x*256 + y];
@@ -41,7 +40,7 @@ SCREEN_UPDATE_IND16( vector06 )
for (b = 0; b < 8; b++)
{
col = ((code1 >> b) & 0x01) * 8 + ((code2 >> b) & 0x01) * 4 + ((code3 >> b) & 0x01)* 2+ ((code4 >> b) & 0x01);
- if (state->m_video_mode==0x00) {
+ if (m_video_mode==0x00) {
bitmap.pix16(draw_y, x*8+(7-b)+32) = col;
} else {
bitmap.pix16(draw_y, x*16+(7-b)*2+1+32) = ((code2 >> b) & 0x01) * 2;
diff --git a/src/mess/video/vtech2.c b/src/mess/video/vtech2.c
index a68037d2409..5ebb2b2b2ee 100644
--- a/src/mess/video/vtech2.c
+++ b/src/mess/video/vtech2.c
@@ -113,20 +113,19 @@ static const int offs_0[96] = {
0x26a0,0x2ea0,0x36a0,0x3ea0,0x27a0,0x2fa0,0x37a0,0x3fa0
};
-SCREEN_UPDATE_IND16( laser )
+UINT32 vtech2_state::screen_update_laser(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- vtech2_state *state = screen.machine().driver_data<vtech2_state>();
- UINT8 *videoram = state->m_videoram;
+ UINT8 *videoram = m_videoram;
int offs, x, y;
int full_refresh = 1;
if( full_refresh )
- bitmap.fill(((state->m_laser_bg_mode >> 4) & 15)<<1, cliprect);
+ bitmap.fill(((m_laser_bg_mode >> 4) & 15)<<1, cliprect);
- if (state->m_laser_latch & 0x08)
+ if (m_laser_latch & 0x08)
{
/* graphics modes */
- switch (state->m_laser_bg_mode & 7)
+ switch (m_laser_bg_mode & 7)
{
case 0:
case 1:
@@ -139,7 +138,7 @@ SCREEN_UPDATE_IND16( laser )
offs = offs_2[y];
for( x = 0; x < 80; x++, offs++ )
{
- int sx, sy, code, color = state->m_laser_two_color;
+ int sx, sy, code, color = m_laser_two_color;
sy = BORDER_V/2 + y;
sx = BORDER_H/2 + x * 8;
code = videoram[offs];
@@ -217,7 +216,7 @@ SCREEN_UPDATE_IND16( laser )
offs = offs_1[y];
for( x = 0; x < 40; x++, offs++ )
{
- int sx, sy, code, color = state->m_laser_two_color;
+ int sx, sy, code, color = m_laser_two_color;
sy = BORDER_V/2 + y;
sx = BORDER_H/2 + x * 16;
code = videoram[offs];
@@ -250,7 +249,7 @@ SCREEN_UPDATE_IND16( laser )
else
{
/* text modes */
- if (state->m_laser_bg_mode & 1)
+ if (m_laser_bg_mode & 1)
{
/* 80 columns text mode */
for( y = 0; y < 24; y++ )
@@ -258,7 +257,7 @@ SCREEN_UPDATE_IND16( laser )
offs = ((y & 7) << 8) + ((y >> 3) * 80);
for( x = 0; x < 80; x++, offs++ )
{
- int sx, sy, code, color = state->m_laser_two_color;
+ int sx, sy, code, color = m_laser_two_color;
sy = BORDER_V/2 + y * 8;
sx = BORDER_H/2 + x * 8;
code = videoram[0x3800+offs];
@@ -285,9 +284,9 @@ SCREEN_UPDATE_IND16( laser )
}
}
- if( state->m_laser_frame_time > 0 )
+ if( m_laser_frame_time > 0 )
{
- popmessage("%s", state->m_laser_frame_message);
+ popmessage("%s", m_laser_frame_message);
}
return 0;
}
diff --git a/src/mess/video/x68k.c b/src/mess/video/x68k.c
index 10f8cde887f..507626ff2fc 100644
--- a/src/mess/video/x68k.c
+++ b/src/mess/video/x68k.c
@@ -1160,9 +1160,8 @@ VIDEO_START_MEMBER(x68k_state,x68000)
// m_scanline_timer->adjust(attotime::zero, 0, attotime::from_hz(55.45)/568);
}
-SCREEN_UPDATE_IND16( x68000 )
+UINT32 x68k_state::screen_update_x68000(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect)
{
- x68k_state *state = screen.machine().driver_data<x68k_state>();
rectangle rect(0,0,0,0);
int priority;
int xscr,yscr;
@@ -1171,29 +1170,29 @@ SCREEN_UPDATE_IND16( x68000 )
tilemap_t* x68k_bg1;
//UINT8 *rom;
- if((state->m_spritereg[0x408] & 0x03) == 0x00) // Sprite/BG H-Res 0=8x8, 1=16x16, 2 or 3 = undefined.
+ if((m_spritereg[0x408] & 0x03) == 0x00) // Sprite/BG H-Res 0=8x8, 1=16x16, 2 or 3 = undefined.
{
- x68k_bg0 = state->m_bg0_8;
- x68k_bg1 = state->m_bg1_8;
+ x68k_bg0 = m_bg0_8;
+ x68k_bg1 = m_bg1_8;
}
else
{
- x68k_bg0 = state->m_bg0_16;
- x68k_bg1 = state->m_bg1_16;
+ x68k_bg0 = m_bg0_16;
+ x68k_bg1 = m_bg1_16;
}
-// rect.max_x=state->m_crtc.width;
-// rect.max_y=state->m_crtc.height;
+// rect.max_x=m_crtc.width;
+// rect.max_y=m_crtc.height;
bitmap.fill(0, cliprect);
- if(state->m_sysport.contrast == 0) // if monitor contrast is 0, then don't bother displaying anything
+ if(m_sysport.contrast == 0) // if monitor contrast is 0, then don't bother displaying anything
return 0;
- rect.min_x=state->m_crtc.hbegin;
- rect.min_y=state->m_crtc.vbegin;
-// rect.max_x=rect.min_x + state->m_crtc.visible_width-1;
-// rect.max_y=rect.min_y + state->m_crtc.visible_height-1;
- rect.max_x=state->m_crtc.hend;
- rect.max_y=state->m_crtc.vend;
+ rect.min_x=m_crtc.hbegin;
+ rect.min_y=m_crtc.vbegin;
+// rect.max_x=rect.min_x + m_crtc.visible_width-1;
+// rect.max_y=rect.min_y + m_crtc.visible_height-1;
+ rect.max_x=m_crtc.hend;
+ rect.max_y=m_crtc.vend;
if(rect.min_y < cliprect.min_y)
rect.min_y = cliprect.min_y;
@@ -1204,56 +1203,56 @@ SCREEN_UPDATE_IND16( x68000 )
//rom = screen.machine().root_device().memregion("user1")->base();
for(x=0;x<256;x++)
{
- if(state->m_video.tile16_dirty[x] != 0)
+ if(m_video.tile16_dirty[x] != 0)
{
screen.machine().gfx[1]->mark_dirty(x);
- state->m_video.tile16_dirty[x] = 0;
+ m_video.tile16_dirty[x] = 0;
}
- if(state->m_video.tile8_dirty[x] != 0)
+ if(m_video.tile8_dirty[x] != 0)
{
screen.machine().gfx[0]->mark_dirty(x);
- state->m_video.tile8_dirty[x] = 0;
+ m_video.tile8_dirty[x] = 0;
}
}
for(priority=3;priority>=0;priority--)
{
// Graphics screen(s)
- if(priority == state->m_video.gfx_pri)
+ if(priority == m_video.gfx_pri)
x68k_draw_gfx(screen.machine(),bitmap,rect);
// Sprite / BG Tiles
- if(priority == state->m_video.sprite_pri /*&& (state->m_spritereg[0x404] & 0x0200)*/ && (state->m_video.reg[2] & 0x0040))
+ if(priority == m_video.sprite_pri /*&& (m_spritereg[0x404] & 0x0200)*/ && (m_video.reg[2] & 0x0040))
{
x68k_draw_sprites(screen.machine(), bitmap,1,rect);
- if((state->m_spritereg[0x404] & 0x0008))
+ if((m_spritereg[0x404] & 0x0008))
{
- if((state->m_spritereg[0x404] & 0x0030) == 0x10) // BG1 TXSEL
+ if((m_spritereg[0x404] & 0x0030) == 0x10) // BG1 TXSEL
{
- x68k_bg0->set_scrollx(0,(state->m_spritereg[0x402] - state->m_crtc.hbegin - state->m_crtc.bg_hshift) & 0x3ff);
- x68k_bg0->set_scrolly(0,(state->m_spritereg[0x403] - state->m_crtc.vbegin) & 0x3ff);
+ x68k_bg0->set_scrollx(0,(m_spritereg[0x402] - m_crtc.hbegin - m_crtc.bg_hshift) & 0x3ff);
+ x68k_bg0->set_scrolly(0,(m_spritereg[0x403] - m_crtc.vbegin) & 0x3ff);
x68k_bg0->draw(bitmap,rect,0,0);
}
else
{
- x68k_bg1->set_scrollx(0,(state->m_spritereg[0x402] - state->m_crtc.hbegin - state->m_crtc.bg_hshift) & 0x3ff);
- x68k_bg1->set_scrolly(0,(state->m_spritereg[0x403] - state->m_crtc.vbegin) & 0x3ff);
+ x68k_bg1->set_scrollx(0,(m_spritereg[0x402] - m_crtc.hbegin - m_crtc.bg_hshift) & 0x3ff);
+ x68k_bg1->set_scrolly(0,(m_spritereg[0x403] - m_crtc.vbegin) & 0x3ff);
x68k_bg1->draw(bitmap,rect,0,0);
}
}
x68k_draw_sprites(screen.machine(),bitmap,2,rect);
- if((state->m_spritereg[0x404] & 0x0001))
+ if((m_spritereg[0x404] & 0x0001))
{
- if((state->m_spritereg[0x404] & 0x0006) == 0x02) // BG0 TXSEL
+ if((m_spritereg[0x404] & 0x0006) == 0x02) // BG0 TXSEL
{
- x68k_bg0->set_scrollx(0,(state->m_spritereg[0x400] - state->m_crtc.hbegin - state->m_crtc.bg_hshift) & 0x3ff);
- x68k_bg0->set_scrolly(0,(state->m_spritereg[0x401] - state->m_crtc.vbegin) & 0x3ff);
+ x68k_bg0->set_scrollx(0,(m_spritereg[0x400] - m_crtc.hbegin - m_crtc.bg_hshift) & 0x3ff);
+ x68k_bg0->set_scrolly(0,(m_spritereg[0x401] - m_crtc.vbegin) & 0x3ff);
x68k_bg0->draw(bitmap,rect,0,0);
}
else
{
- x68k_bg1->set_scrollx(0,(state->m_spritereg[0x400] - state->m_crtc.hbegin - state->m_crtc.bg_hshift) & 0x3ff);
- x68k_bg1->set_scrolly(0,(state->m_spritereg[0x401] - state->m_crtc.vbegin) & 0x3ff);
+ x68k_bg1->set_scrollx(0,(m_spritereg[0x400] - m_crtc.hbegin - m_crtc.bg_hshift) & 0x3ff);
+ x68k_bg1->set_scrolly(0,(m_spritereg[0x401] - m_crtc.vbegin) & 0x3ff);
x68k_bg1->draw(bitmap,rect,0,0);
}
}
@@ -1261,11 +1260,11 @@ SCREEN_UPDATE_IND16( x68000 )
}
// Text screen
- if(state->m_video.reg[2] & 0x0020 && priority == state->m_video.text_pri)
+ if(m_video.reg[2] & 0x0020 && priority == m_video.text_pri)
{
- xscr = (state->m_crtc.reg[10] & 0x3ff);
- yscr = (state->m_crtc.reg[11] & 0x3ff);
- if(!(state->m_crtc.reg[20] & 0x1000)) // if text layer is set to buffer, then it's not visible
+ xscr = (m_crtc.reg[10] & 0x3ff);
+ yscr = (m_crtc.reg[11] & 0x3ff);
+ if(!(m_crtc.reg[20] & 0x1000)) // if text layer is set to buffer, then it's not visible
x68k_draw_text(screen.machine(),bitmap,xscr,yscr,rect);
}
}
@@ -1273,45 +1272,45 @@ SCREEN_UPDATE_IND16( x68000 )
#ifdef MAME_DEBUG
if(screen.machine().input().code_pressed(KEYCODE_I))
{
- state->m_mfp.isra = 0;
- state->m_mfp.isrb = 0;
+ m_mfp.isra = 0;
+ m_mfp.isrb = 0;
// mfp_trigger_irq(MFP_IRQ_GPIP6);
-// machine.device("maincpu")->execute().set_input_line_and_vector(6,ASSERT_LINE,0x43);
+// machine().device("maincpu")->execute().set_input_line_and_vector(6,ASSERT_LINE,0x43);
}
if(screen.machine().input().code_pressed(KEYCODE_9))
{
- state->m_sprite_shift--;
- popmessage("Sprite shift = %i",state->m_sprite_shift);
+ m_sprite_shift--;
+ popmessage("Sprite shift = %i",m_sprite_shift);
}
if(screen.machine().input().code_pressed(KEYCODE_0))
{
- state->m_sprite_shift++;
- popmessage("Sprite shift = %i",state->m_sprite_shift);
+ m_sprite_shift++;
+ popmessage("Sprite shift = %i",m_sprite_shift);
}
#endif
#ifdef MAME_DEBUG
-// popmessage("Layer priorities [%04x] - Txt: %i Spr: %i Gfx: %i Layer Pri0-3: %i %i %i %i",state->m_video.reg[1],state->m_video.text_pri,state->m_video.sprite_pri,
-// state->m_video.gfx_pri,state->m_video.gfxlayer_pri[0],state->m_video.gfxlayer_pri[1],state->m_video.gfxlayer_pri[2],state->m_video.gfxlayer_pri[3]);
-// popmessage("CRTC regs - %i %i %i %i - %i %i %i %i - %i - %i",state->m_crtc.reg[0],state->m_crtc.reg[1],state->m_crtc.reg[2],state->m_crtc.reg[3],
-// state->m_crtc.reg[4],state->m_crtc.reg[5],state->m_crtc.reg[6],state->m_crtc.reg[7],state->m_crtc.reg[8],state->m_crtc.reg[9]);
-// popmessage("Visible resolution = %ix%i (%s) Screen size = %ix%i",state->m_crtc.visible_width,state->m_crtc.visible_height,state->m_crtc.interlace ? "Interlaced" : "Non-interlaced",state->m_crtc.video_width,state->m_crtc.video_height);
-// popmessage("VBlank : scanline = %i",state->m_scanline);
-// popmessage("CRTC/BG compare H-TOTAL %i/%i H-DISP %i/%i V-DISP %i/%i BG Res %02x",state->m_crtc.reg[0],state->m_spritereg[0x405],state->m_crtc.reg[2],state->m_spritereg[0x406],
-// state->m_crtc.reg[6],state->m_spritereg[0x407],state->m_spritereg[0x408]);
-// popmessage("IER %02x %02x IPR %02x %02x ISR %02x %02x IMR %02x %02x", state->m_mfp.iera,state->m_mfp.ierb,state->m_mfp.ipra,state->m_mfp.iprb,
-// state->m_mfp.isra,state->m_mfp.isrb,state->m_mfp.imra,state->m_mfp.imrb);
-// popmessage("BG Scroll - BG0 X %i Y %i BG1 X %i Y %i",state->m_spriteram[0x400],state->m_spriteram[0x401],state->m_spriteram[0x402],state->m_spriteram[0x403]);
-// popmessage("Keyboard buffer position = %i",state->m_keyboard.headpos);
-// popmessage("IERA = 0x%02x, IERB = 0x%02x",state->m_mfp.iera,state->m_mfp.ierb);
-// popmessage("IPRA = 0x%02x, IPRB = 0x%02x",state->m_mfp.ipra,state->m_mfp.iprb);
-// popmessage("uPD72065 status = %02x",upd765_status_r(machine, space, 0));
-// popmessage("Layer enable - 0x%02x",state->m_video.reg[2] & 0xff);
+// popmessage("Layer priorities [%04x] - Txt: %i Spr: %i Gfx: %i Layer Pri0-3: %i %i %i %i",m_video.reg[1],m_video.text_pri,m_video.sprite_pri,
+// m_video.gfx_pri,m_video.gfxlayer_pri[0],m_video.gfxlayer_pri[1],m_video.gfxlayer_pri[2],m_video.gfxlayer_pri[3]);
+// popmessage("CRTC regs - %i %i %i %i - %i %i %i %i - %i - %i",m_crtc.reg[0],m_crtc.reg[1],m_crtc.reg[2],m_crtc.reg[3],
+// m_crtc.reg[4],m_crtc.reg[5],m_crtc.reg[6],m_crtc.reg[7],m_crtc.reg[8],m_crtc.reg[9]);
+// popmessage("Visible resolution = %ix%i (%s) Screen size = %ix%i",m_crtc.visible_width,m_crtc.visible_height,m_crtc.interlace ? "Interlaced" : "Non-interlaced",m_crtc.video_width,m_crtc.video_height);
+// popmessage("VBlank : scanline = %i",m_scanline);
+// popmessage("CRTC/BG compare H-TOTAL %i/%i H-DISP %i/%i V-DISP %i/%i BG Res %02x",m_crtc.reg[0],m_spritereg[0x405],m_crtc.reg[2],m_spritereg[0x406],
+// m_crtc.reg[6],m_spritereg[0x407],m_spritereg[0x408]);
+// popmessage("IER %02x %02x IPR %02x %02x ISR %02x %02x IMR %02x %02x", m_mfp.iera,m_mfp.ierb,m_mfp.ipra,m_mfp.iprb,
+// m_mfp.isra,m_mfp.isrb,m_mfp.imra,m_mfp.imrb);
+// popmessage("BG Scroll - BG0 X %i Y %i BG1 X %i Y %i",m_spriteram[0x400],m_spriteram[0x401],m_spriteram[0x402],m_spriteram[0x403]);
+// popmessage("Keyboard buffer position = %i",m_keyboard.headpos);
+// popmessage("IERA = 0x%02x, IERB = 0x%02x",m_mfp.iera,m_mfp.ierb);
+// popmessage("IPRA = 0x%02x, IPRB = 0x%02x",m_mfp.ipra,m_mfp.iprb);
+// popmessage("uPD72065 status = %02x",upd765_status_r(machine(), space, 0));
+// popmessage("Layer enable - 0x%02x",m_video.reg[2] & 0xff);
// popmessage("Graphic layer scroll - %i, %i - %i, %i - %i, %i - %i, %i",
-// state->m_crtc.reg[12],state->m_crtc.reg[13],state->m_crtc.reg[14],state->m_crtc.reg[15],state->m_crtc.reg[16],state->m_crtc.reg[17],state->m_crtc.reg[18],state->m_crtc.reg[19]);
-// popmessage("IOC IRQ status - %02x",state->m_ioc.irqstatus);
-// popmessage("RAM: mouse data - %02x %02x %02x %02x",machine.device<ram_device>(RAM_TAG)->pointer()[0x931],machine.device<ram_device>(RAM_TAG)->pointer()[0x930],machine.device<ram_device>(RAM_TAG)->pointer()[0x933],machine.device<ram_device>(RAM_TAG)->pointer()[0x932]);
+// m_crtc.reg[12],m_crtc.reg[13],m_crtc.reg[14],m_crtc.reg[15],m_crtc.reg[16],m_crtc.reg[17],m_crtc.reg[18],m_crtc.reg[19]);
+// popmessage("IOC IRQ status - %02x",m_ioc.irqstatus);
+// popmessage("RAM: mouse data - %02x %02x %02x %02x",machine().device<ram_device>(RAM_TAG)->pointer()[0x931],machine().device<ram_device>(RAM_TAG)->pointer()[0x930],machine().device<ram_device>(RAM_TAG)->pointer()[0x933],machine().device<ram_device>(RAM_TAG)->pointer()[0x932]);
#endif
return 0;
}
diff --git a/src/mess/video/zx.c b/src/mess/video/zx.c
index aa68918f84f..2547e6f6ed3 100644
--- a/src/mess/video/zx.c
+++ b/src/mess/video/zx.c
@@ -197,15 +197,14 @@ void zx_state::video_start()
machine().primary_screen->register_screen_bitmap(m_bitmap);
}
-SCREEN_VBLANK( zx )
+void zx_state::screen_eof_zx(screen_device &screen, bool state)
{
// rising edge
- if (vblank_on)
+ if (state)
{
- zx_state *state = screen.machine().driver_data<zx_state>();
/* decrement video synchronization counter */
- if (state->m_ula_frame_vsync)
- --state->m_ula_frame_vsync;
+ if (m_ula_frame_vsync)
+ --m_ula_frame_vsync;
}
}