summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers')
-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
957 files changed, 4422 insertions, 4388 deletions
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